# Hindsight
遡及的サンプリング(retroactive sampling)を実装した常時稼働の軽量分散トレーシングシステム。[[Jonathan Mace]] ら([[Max Planck Institute for Software Systems]] / Emory University / Princeton University)が開発し、NSDI 2023 で発表。
## 概要
全リクエストのトレースデータをローカルメモリに生成するが、バックエンドへの取り込みは症状(エラー・テイルレイテンシ・キュー詰まり等)のトリガー発火後にのみ遅延的に行う。データプレーン(共有メモリバッファプールへの高速書き込み、tracepoint 約 8 ns)とコントロールプレーン(メタデータインデックス・ブレッドクラムトラバーサル・トリガー調整)を分離し、100% トレーシングを −3.5% 以内のスループット影響で実現する。
## 特徴
- クライアントライブラリ約 4 KLOC C + エージェント/コーディネータ約 5.5 KLOC Go
- OpenTelemetry API 互換。X-Trace との統合実績
- ノードあたり最大 55 GB/s の書き込みスループット
- 一貫性ハッシュによる過負荷時のトレース一貫性保証
- ラテラルトレース(TriggerSet)による時間的プロベナンスサポート
- アプリケーションクラッシュ時もバッファプール内データを保全
## 評価環境
- [[DeathStarBench]] Social Network(12 マイクロサービス)
- HDFS(Hadoop Distributed File System)
- MicroBricks(Alibaba トレースデータセット由来の 93 サービストポロジ)
(Source: [[@2023__NSDI__Hindsight - Tracing Edge-Cases in Distributed Systems]])