logoalt Hacker News

How Uber Protects Against Retry Storms

95 pointsby iscmtyesterday at 9:14 PM39 commentsview on HN

Comments

penguin_boozetoday at 8:11 AM

It's not related to the article content, but I can't help but notice the "diversity" in authorship grades: a senior staff, a (regular) senior, and a principal. I suppose grades are a key mechanism by which corporates keep their hamster wheels running.

I'm thankful that, at my $WORK, we're all software engineers by title, from the lowly interns to the CTO. Still, everybody knows who's who and whom to talk to, depending on the gravity of the issue.

show 2 replies
cynicalsecuritytoday at 9:03 AM

> Deepanshu Mehndiratta, Alok Srivastava, Vibhor Dhingra, Ankit Srivastava

It's not AI that is going to replace you, folks. Btw is it a coincide or has Uber become a family business now?

show 1 reply
prologictoday at 1:04 AM

So, effectively if A → B → C → D and D is failing, C may retry D, but B and A are discouraged from retrying the whole chain.

This is quite slever. I also really like the concept of an "Error Budget", inspired by SRE and SLO(s) no doubt :)

show 1 reply
Scoundrellertoday at 1:13 AM

Meanwhile Google keeps giving me “please wait, do not reload page” walls, so I ctrl-r as rapidly as possible. Or is that the human test and response?

show 2 replies
maxchistoyesterday at 11:02 PM

I'm suspicious of load shedding not mentioned in the article. Combine that with exp backoff in the caller and you got yourself a pretty robust starting point

show 2 replies
aftbityesterday at 10:36 PM

I'd be interested to hear other strategies in this space. I've done the naive thing of allowing retries everywhere, and gotten into retry storms. When I was next presented with the problem, I tried the other naive thing of only allowing retries from the very top level service, which led me to redoing absolutely tons of work for each failure. What's a nice middle path that doesn't add too much complexity?

show 10 replies
whatever1today at 5:28 AM

Easy. Take a larger cut from the driver for each retry.

UltraSanetoday at 1:37 AM

This feels like trying to reinvent Fibre Channel's flow control mechanism.

whoevercarestoday at 12:42 AM

Token bucket is all you need

show 1 reply
iwontberudetoday at 4:17 AM

[dead]