Cache stampede とは

キャッシュスタンプは、キャッシュ機構を備えた大規模並列コンピューティングシステムが非常に高い負荷を受ける場合に発生する可能性のあるカスケード障害の一種です。この動作は、時々dog-pilingとも呼ばれます。
キャッシュスタンプがどのように発生するかを理解するには、memcachedを使用してレンダリングされたページを一定期間キャッシュしてシステム負荷を軽減するWebサーバーを検討してください。単一のURLに対する負荷が特に高い状況下では、キャッシュされたコピーにアクセスすることによって要求が処理され、リソースがキャッシュされたままである限り、システムは応答し続けます。これにより、高価なレンダリング操作を最小限に抑えます。
低負荷では、キャッシュミスはレンダリング操作の単一の再計算をもたらす。キャッシュヒット率が高いため、システムは以前と同様に継続し、平均負荷は非常に低く保たれます。
しかし、非常に重い負荷の下では、そのページのキャッシュされたバージョンが期限切れになると、複数の実行スレッドがすべてそのページのコンテンツを同時にレンダリングしようとする十分な並行性がサーバーファームに存在する可能性があります。体系的に、他のサーバが同時に同じレンダリングを行っていることは、同時サーバのどれも知っていません。十分に高い負荷が存在する場合、これは、それだけで、共用リソースを使い果すことによってシステムの輻輳の崩壊をもたらすのに十分であり得る。輻輳の崩壊により、ページが完全に再レンダリングされ、再キャッシュされるのを防ぐことができます。したがって、キャッシュスタンピングは、キャッシュヒット率をゼロに減少させ、負荷が非常に重い場合に限りリソースを再生成しようとするので、システムを輻輳崩壊に継続的に保持します。
具体的な例を挙げると、考慮するページはレンダリングに3秒かかり、1秒あたり10リクエストのトラフィックがあると仮定します。キャッシュされたページが期限切れになると、30個のプロセスが同時にページのレンダリングを再計算し、レンダリングされたページでキャッシュを更新します。