logoalt Hacker News

jdm2212yesterday at 10:33 PM3 repliesview on HN

Exponential backoff is the wrong answer in a highly available system in the typical case where (a) failure is expected and (b) you have nodes you are supposed to fail over to.


Replies

dannywyesterday at 10:59 PM

Your highly available system is probably somewhat important, otherwise you won’t have invested in making it HA.

While your premise holds for happy cases, when you do have a cascading series of outages, not using exponential backoff is just adding a self-inflicted DoS to when you do go down.

I don’t really follow your premise and can’t really articulate many cases for when you shouldn’t use exponential backoff. Maybe if you’re working at Jane St or something; or other circumstances where you can deploy immediate changes to the client; and you’re willing to trade ‘better p50 for worse outages’.

But in the case of shipped code that’s run on clients, I’ll continue exponentially backing off all the way, all the time, for everything.

show 1 reply
grim_ioyesterday at 10:38 PM

Why? You can retry, but there is nothing wrong with increasingly waiting slightly longer if we fail many times.

show 2 replies
wat10000yesterday at 10:46 PM

The whole point of exponential backoff is that the first retry can be quick.

show 1 reply