kakakakakku blog

Weekly Tech Blog: Keep on Learning!

知っておくと便利な Exponential Backoff

今日は社内勉強会で「知っておくと便利な Exponential Backoff」という発表をした.前回の「知っておくと便利な Bloom Filter」に続いてのタイトルで「知っておくと便利な」シリーズを確立していきたい.

実は Exponential Backoff という名称を知ったのは結構最近のことで,以下の記事を読んでいて知った.発表の中で例に挙げた Fluentd は,エラー時に間隔を広げながらリトライするという仕組みがあり,それ自体は知っていたけど,それを Exponential Backoff と呼ぶということを知らなかった.Fluentd のコードを読んでいたら確かに Exponential Backoff と書いてあるところがあった.ほえー!

yoshidashingo.hatenablog.com

発表資料

補足

AWS SDK を使うなら Exponential Backoff が実装されているけど,使わない場合は気を付けて!と書いてある.

さらにレスポンスコードを意識する必要があることも書いてある.

docs.aws.amazon.com

Retry Throttling に関しては以下の記事を参照すると良いかと.

AWS SDK for .NET に関して言えば,4日前のブログで実装されたと紹介されていた.

Ruby で Exponential Backoff を実現するなら以下の Gem を使うのがシンプルで良さそう.特に Retries は薄くて良い.

github.com

github.com

関連記事

Exponential Backoff 以外にカーネルパラメータのチューニングのことも書いてあって勉強になった.AWS のこと調べてると結構な頻度で manabusakai さんのブログが出てくる.凄いなぁー!

blog.manabusakai.com