APoSD 10.7 Exception aggregation

mizue
·

10.7 は例外の集約について。この項は少し長い。何日かに分けて読んだ。

例外の複雑さを減らす3番目のテクニックとして、例外を各々で処理せず、トップレベルへ伝搬し、単一の場所に集約して処理する方法を説明している。

この方法はWebサーバのリクエスト処理ではよく使われる手法なので納得感が大きい。

Webサーバ以外で、RAMCloud のリカバリ方法が紹介されている。RAMCloudは分散低レイテンシ分散ストレージだ。このRAMCloudは、さまざまな種類ごとのリカバリメカニズムはなく、代わりに、小さいエラーを大きいエラーに昇格させ、他のサーバに保存されているコピーを使ってデータを再構築する。このようにしてリカバリメカニズムの複雑性を減らすアプローチをとっている。

この場合、リカバリコストが気になるところだが、クラッシュがそんなに頻繁に起きることではないので、問題にならないとのこと。

逆に、ネットワーク通信では、パケット損失などは頻繁に発生するため、このようなアプローチは現実的ではないとのこと。

なるほど、例外集約の使い所がわかってきた。

@mizue
Healthy Programmer