5 ms·
It's not only about size, there's also workloads to take into consideration. Take FedEx, their operations are highly dynamic - per day but also per period. The
by sofixa 4y ago
It's not only about size, there's also workloads to take into consideration.
Take FedEx, their operations are highly dynamic - per day but also per period. The number of packages sent, and being transported, vary greatly between a random Tuesday 15:00 and the weeks before holidays.
In such a scenario, with your own infrastructure, you need to overprovision, by a lot, to be able to handle the heaviest load possible, and then some margin on top. And that capacity is wasted what, 90% of the year?
Meanwhile if you subcontract that part on AWS, it's their problem, and they can afford to handle it, and you only pay for what you actually use when you use it.
- whatever1 4y agoThe cost does not scale linearly with the #of packages. A table with 1 entry is not cheaper than a table with 1 million entries. The same routing algorithms have to run either they have one package or 1 million packages. Plus you need to keep the history of the operations for months if not years (meaning that you will store both holiday and random Tuesday data anyway). So where is this flexible cost exactly?
- coredog64 4y agoMay I point you to the DynamoDB docs? Costs scale along the dimensions of storage and activity. A 1 entry table is essentially free if you use on-demand RCU/WCU provisioning.
- mrep 4y agoEver heard of the traveling salesman problem because that is worse than linear, it is factorial. Granted, that is probably overkill for most people and my team (Not FedEx) just does NxN so it is only quadratic but it is definitely not constant nor even linear.
- whatever1 4y agoExactly because tsp variants are exponentially combinatorial we solve them with a strict time limit and use the best found solution. So for practical applications they are constant time.
- appletrotter 4y ago> So for practical applications they are constant time. So they should be able to handle all of this on a raspberry pi, if the size of the input has no effect on processing time.
- whatever1 4y agoYep a raspberry pi can give you A solution. It is not difficult to find a solution to routing problems, the difficult part is to get probably near optimal solution (<1% optimality gap).
- appletrotter 4y agoSo it scales with optimality but not size?
- whatever1 4y agoIt scales with the number of feasible routes for the particular problem instance you are looking at. The issue is that there are exponentially many of them and you cannot easily rule out that there is no better solution than the one you have on hand. That is why we solve these problems for as long as possible with as many resources as possible.
- Sohcahtoa82 4y ago> The same routing algorithms have to run either they have one package or 1 million packages. Certainly you know that running a routing algorithm 1 million times because you need to route 1 million packages is going to need 1 million times more CPU time than one package, right?
- whatever1 4y agoNo, it will take as much time and as many cpus as you have available, unless you manage to find the globally optimal solution earlier (practically never, for the problems that FedEx solves). The number of variables is not a predictor of time and average complexity for integer programming. We can solve some problems with millions of binaries in minutes. There are other problems with a couple of hundred of binaries that we cannot absolutely solve to optimality. Sorry that this is your typical sorting problem.
- Sohcahtoa82 4y agoI'm wondering if we're talking about different things. If it takes 1 second of CPU time to process the path for 1 package, then it will take 1 million seconds of CPU time to path find 1 million packages. You can add more CPUs to run multiple path finds in parallel (ie, use 4 CPUs to cut the wall time to 250,000 seconds), but there's still 1 million core-seconds being spent.
- magicalhippo 4y agoNot just routing. When a plane or truck arrives and is unloaded, thousands of packages have to be scanned, which triggers a cascade of messages to different systems. In addition to the routing and whatnot, customs declarations might have to be sent, track and trace gets updates (both from arrival scan and customs), there's billing etc. All this flurry of activity happens within an hour or so after the plane lands, and then it quiets down until the next plane or truck. I could easily see FedEx can save money by dynamically scaling capacity to track the arrival of their planes or trucks.
- julianozen 4y agoSeasonal demand
- tbrownaw 4y agoSomeone, somewhere, has to actually buy the computers. "Only pay for what you use" isn't magic, whatever fraction actually gets used (across all customers) has to end up paying for the whole computer. Taxis are "only pay for what you use", but owning your own car is often cheaper (even if you only use it, what, 1/12 of the day?) and more convenient.
- Aperocky 4y ago> Taxis are "only pay for what you use" Taxis are not scalable, you can't make one human drive 100 taxis. Meanwhile you can add entire new data centers with barely any extra burden on the software teams that manage them.
- kamaal 4y ago>>Someone, somewhere, has to actually buy the computers. Exactly, so as long as it's not you, you should be fine. Let AWS figure out how they wish to do it for you.
- beckingz 4y agoUntil AWS runs out of computers. It's rare, but there are enough strange instance types that it's possible.
- amluto 4y agoThis is all true, except that the markup for a rental can be so high that owning something, even for fairly low utilization, can be less expensive.
- abirch 4y agoI feel that Zipcar would be a fairer comparison to owning your own car. You could compare a taxi to your own chauffeured car. We own our own car out of convenience not cost savings.
- somethoughts 4y agoThe flip side is the approach that Amazon took with AWS. Maintain the server capacity but invent some sort of mechanism to sell any extra server capacity during the down time. Perhaps there isn't the mindset/ability to actually execute this though.