6 ms·
Those are great points! Another related law is from queuing theory: waiting time goes to infinity when utilization approaches 100%. You need your processes/mach
by remram 2y ago
Those are great points! Another related law is from queuing theory: waiting time goes to infinity when utilization approaches 100%. You need your processes/machines/engineers to have some slack otherwise some tasks will wait forever.
- eru 2y agoYou can add a measure of robustness to your optimization criteria. You can explicitly optimise for having enough slack in your utilisation to handle these unforeseen circumstances. For example, you can assign priorities to the loads on your systems, so that you can shed lower priority loads to create some slack for emergencies, without having to run your system idle under during lulls. I get what the article is trying to say, but they shouldn't write off optimisation as easily as that.
- hinkley 2y agoThe problem is that people who agree to a task being low priority still expect it to be done in nine months and all of a sudden they become high priority if that doesn’t happen. So you’re fixing the micro economics of the queue but not the macro. Queues still suck when they fill up, even if they fill with last minute jobs.
- eru 2y agoThis totally depends on the system in question and what the agreements with your users are. Eg if you are running video conferencing software, and all of a sudden you are having bandwidth problems, you typically first want to drop some finer details in the video, and then you want to drop the audio feed. In any case, if you dropped something, you leave it dropped, instead of picking it back up again a few seconds later. People don't care about past frames. (However, queuing instead of outright dropping can still makes sense in this scenario, for any information that's younger than what human reaction times can perceive.) Similarly in your scenario, you'd want to explicitly communicate to people what the expectations are. Perhaps you give out deep discounts for tasks that can be dropped (that's what eg some electriticy providers do), or you can give people 'insurance' where they get some monetary compensation if their task gets dropped. (You'd want to be careful how you design such a scheme, to avoid perverse incentives. But it's all doable.) > So you’re fixing the micro economics of the queue but not the macro. Queues still suck when they fill up, even if they fill with last minute jobs. I don't know, I had pretty positive experiences so far when eg I got bumped off a flight due to overbooking. The airline offered decent compensation. Overbooking and bumping people off _improves_ the macro situation: despite the occasional compensation you have to pay, when unexpectedly everyone who booked actually showed up, overbooking still makes the airline extra money, and via competition this is transformed into lower ticket prices. Many people love lower airfares, and have shown a strong revealed preference of putting up with a lot of stuff eg RyanAir pulls as long as they get cheap tickets.
- deleted 2y ago[deleted]
- remram 2y agoA task "shed" is one delivered with infinite latency. If that's fine for you then the theorem doesn't hurt you, do what's best for your domain. It's just something to be aware of.
- georgeburdell 2y agoYep, I used to work in a factory. Target utilization at planning time was 80%. If you over-predict your utilization, you waste money. If you under-predict, a giant queue of “not important” stuff starts to develop
- eru 2y agoFor some scenarios that's fine, and you can slash the queue whenever necessary. Eg at Google (this was ten years ago or so), we could always spend leftover networking capacity on syncing a tiny bit faster and more often between our data centres. And that would improve users' experience slightly, but it also not something that builds up a backlog. At a factory, you could always have some idle workers swipe the floor a bit more often. (Just a silly example, but there are probably some tasks like that?)
- 082349872349872 2y agoUnlike merchantmen, naval vessels were crewed at a level allowing for substantial attrition (bad attrition would be casualties; good attrition would be prize crews); I believe they traditionally (pace Churchill) had many, many activities which were incidental to force projection (eg polishing the brightwork) but could be used to occupy all hands.
- eru 2y agoYes. And, well, you can also always train more. Especially in the age of sail.
- scott_w 2y agoThis reminds me of something my mother told me she aimed for when she ran her catering businesses: she always wanted 1 serving of pie leftover at the end of every day. If she had 0, she ran the risk of turning customers away and losing money. Any more than 1 is excess waste. Having just 1 meant she’d served every possible customer and only “wasted” 1 slice.
- 2y ago
- I_AM_A_SMURF 2y agoThat tracks. I worked at a lot of places/teams where anything but a P0 was something that would never be done.
- hinkley 2y agoSolution: everything is a P0!
- jaggederest 2y agoThen you just get Little's law, which is not usually what people want. Preemption is usually considered pretty important... Much like preemptory tasks.
- hinkley 2y agoNo what you get is alcoholism. It was sarcasm.
- jaggederest 2y agoPorque no los dos? The purpose of a beverage is what it does.
- toasterlovin 2y agoI’m remembering reading once that cities are incredibly efficient in how they use resources (compared to the suburbs and rural areas, I guess), and, in light of your comment about waiting time, I’m realizing why now why they’re so unpleasant: constant resource contention.
- naming_the_user 2y agoAmusingly this is something that I see as being a huge divide in rural and urban politics. Yes, it’s inefficient. Yes, some people want that!
- fragmede 2y agoRight. Living is not an optimization problem.
- badpun 2y agoUnless not until the oil and other essential stuff run out.
- tambourine_man 2y agoOur problem is not that we are running out of stuff, but that we’re drowning on it.
- exe34 2y agowhat it means to not optimise though is that some people end up better off and many others are worse off.
- wizzwizz4 2y agoAnd what it means to optimise is also that some people end up better off and many others are worse off.
- robertclaus 2y agoInteresting. My gut reaction is that this is true in reverse: infinite wait time leads to 100% utilization. However, I feel like you can also have 100% utilization with any queue length if input=output. Is that theory just a result of a first order approximation or am I missing something?
- Aeolun 2y agoI think it comes from tasks not taking an equal amount of time, coming in at random, and not having similar priorities.
- immibis 2y agoThe average queue length is still infinity. Whatever the queue length happens to be at the start, it will stay there, and it could be any positive number up to infinity. Besides, angels can't really balance on pinheads.
- remram 2y agoThat's right, this is true no matter the queue length. If input=output on average, there is no limit on how long your queue will grow, and therefore no limit on how long queued task will wait. I don't know what you mean by reverse.
- vishnugupta 2y agoI feel that a 100% efficient system is not resilient. Even minor disruptions in subsystems lead to major breakdowns. There’s no room to absorb shocks. We saw a drastic version of this during COVID-19 induced supply chain collapse. Car manufacturers had built near 100% just in time manufacturing that they couldn’t absorb chip shortages and it took them years to get back up. It also leaves no room for experimentation. Whatever experiment can only happen outside a system not from within it.
- tacitusarc 2y agoThere is a fundamental tension between efficiency and resilience, you are completely correct. And yea, it’s a systems problem, not limited to tech. There is an odd corollary, which is that capitalistic systems which reward efficiency gains and put downward pressure to incentivize efficiency, deal with the resilience problem by creating entirely new subsystems rather than having more robust subsystems, which is fundamentally inefficient.
- hyperadvanced 2y agoThis is exactly the subthread of this conversation I’m interested in. Is what you’re saying that capitalism breaks down resilience problems into efficiency problems? I think that’s an extremely motivating line of thinking, but I’ll have to do some head scratching to figure out exactly what to make of it. On one hand, I think capitalism is really good at resilience problems (efficient markets breed resilience, there’s always an incentive to solve a market inefficiency), on the other (or perhaps in light of that) I’m not so sure those two concepts are so dialectically opposed
- tacitusarc 2y agoTo understand the effects, we first have to take a step back and recognize that efficiency and resiliency problems are both subsets of optimization problems. Efficiency is concerned with maximizing the ratio of inputs to outputs, and resiliency is concerned with minimizing risk. The fundamental tension arises because risk mitigation increases input costs. Over a given time horizon, there is an optimal amount of risk mitigation that will result in maximum aggregate profit (output minus input, not necessarily monetary). The longer the time horizon, the more additional risk mitigation is required, to prevent things like ruin risk. But here’s the rub: competition reduces the time horizon to “very very short” because it drives down the output value. So in a highly competitive market, we see companies ignore resiliency (they cannot afford to invest in it) and instead they get lucky until they don’t (another force at work here is lack of skin in the game). The market deals with this by replacing them with another firm that has not yet been subject to the ruinous risks of the previous firm. This cycle repeats again and again. Most resilient firms have some amount of monopolistic stickiness that allows them to invest more in resiliency, but it is also easy to look at those firms and see they are highly inefficient. The point is that the cycle of firms has a cost, and it is not a trivial one: capital gets reallocated, businesses as legal entities are created, sold, and destroyed, contracts have to be figured out again, supply chains are disrupted, etc. Often, the most efficient outcome for the system is if the firms had been more resilient. So there is an inefficient Nash equilibrium present in those sort of competitive markets.
- appendix-rock 2y agoFor some it may go without saying, but for the uninitiated, y’all should be reading https://en.wikipedia.org/wiki/The_Goal_(novel) https://en.wikipedia.org/wiki/The_Goal_(novel)
- amelius 2y agoSlack __or__ lower priority tasks.
- remram 2y agoTasks that never get done, yes. In other words, tasks that wait forever.