Amazon Web Servicesでエージェント型AIの安全性とポリシーに取り組むエンジニアのMarc Brookerは、分散システムがどのように動作し、どのように障害を起こすのかについて、エンジニアが直感的に理解できるようアニメーションを活用しています。彼は、テキストだけでは理解しにくい振る舞いも、アニメーションによって明確になると指摘しています。
ある例では、Raftクラスタのメンバーのうち一つでもストレージ層がfsync()の完了を誤って報告すると、クラスタが書き込みを失う可能性があることを示しています。Brookerが以前開発したStability Simツールは準安定障害を抽象的に示していましたが、エンジニアは本番環境で実績のあるシステムでこうした振る舞いが起こるとは疑いがちです。
その疑問に答えるため、彼は実際のシステムから取得したトレースを提示します。Micro VM上で動作するPostgres 16では、負荷の急増によってメモリがクエリで埋め尽くされ、データがページキャッシュから押し出されてディスクへ移ります。その結果、以前は毎秒20クエリを処理できていたデータベースが追いつけなくなります。etcdでは、書き込み負荷の急増によって過負荷のピアが利用不能に見え、アプリケーションレベルの再送が発生して過負荷が持続します。
さらにetcdの例では、ガベージコレクションのフィードバックループが示されています。毎秒500から1000への読み取りの急増によりGC時間が増加し、利用可能なCPUが減少します。この状態は介入なしには回復しません。Brookerは、GCを使わないランタイムでもアロケータのオーバーヘッドを通じて同様の振る舞いが起こる可能性があると考えていますが、まだ再現できていません。すべてのアニメーションは、実際のテスト環境から取得したトレースを用い、KiroおよびKiro Crewで生成されました。
出典: Hacker News · 要約:HeadlinesBriefing