4
- What is?
- What good is?
- In which situations to use it?
- There is only one or several strategy? (Example: Fibonacci backoff)
4
7
It is a strategy where each attempt or iteration of a procedure is followed by an increasing interval (optionally up to a fixed limit) in the event of failure or need for flow adjustment. Feedback is a feature (whether it comes from the previous iteration itself, or from measures taken during the procedure)
It usually serves to avoid network congestion, overload or unnecessary consumption of resources, after all, if there was a failure more than once in a row in a given interval, it is generally no use to keep insisting the same way.
Should use in any situation where repeated uncontrolled actions generate resource consumption or inefficiency.
Classic is the Ethernet protocol itself, used in virtually any modern data network.
Another scenario is for example an UDP connection, where you limit the packets until they are compatible with your output band and the reception on the other side (it is still a "fault" scenario, but it is a natural part of the adjustment protocol).
Another example scenario (less common use of the term, but same principle) is the consumption of a server API in case of failure or busy system. If two requests in a row did not reach the goal, try a longer interval between the next.
It has more common strategies, such as simply multiplying the previous interval by a factor (after all it is exponential) but nothing prevents you from creating your own.
Still, when it comes to Ethernet, these two algorithms are common:
Binary exponential backoff
Truncated Binary exponential backoff
(This second is almost the same as the previous one, but with that maximum limit I commented of interval)
Related reading:
Exponential Backoff
Network Congestion Avoidance
Control theory
Browser other questions tagged pattern-design
You are not signed in. Login or sign up in order to post.