# Scribe [[Meta]] の分散キューシステム。[[Logarithm]] では、ホスト側エージェントが解析・バッファしたログオブジェクトが、対応するログストリーム用の Scribe キューに書き込まれ、オブジェクト寿命が数日という耐久性保証を提供する。ingestion クラスタはこのキューからオブジェクトを読み取り、追加パースを行ってからメタデータを書き込む。Scribe の分散キューは、内部で [[LogDevice]] を耐久な replicated log として使うことで、耐久性のあるキューイングを実現している。(Source: [[@2024__EngineeringAtMeta__Logarithm - A logging engine for AI training workflows and services]]) ## Facebookのデータウェアハウスでの利用 2010年のFacebookでは、ScribeはWebサーバー数千台からログを集約する分散データバスとして使われた。 ScribeサーバーをHadoopクラスタ上で動かすScribe-Hadoop(scribeh)クラスタを構成し、ログをHDFSファイルへ書き出した。 その後のコピー処理が5〜15分間隔でログをHive-Hadoopクラスタへ移送し、Hiveの外部テーブルと日次ローダーへ接続した。(Source: [[@2010__SIGMOD__Data Warehousing and Analytics Infrastructure at Facebook]]) ログ書き込み量が急激に増加する短時間のサージが起きた場合、Scribe の分散キューがそのスパイクを吸収するバッファとして機能する。ただしキューが満杯になると、Logarithm の elasticity 機構(Shard Manager ベースの制御プレーン)がシャード数を増やすまで、対象のログストリームはログを失う可能性がある。このようなスパイクは典型的にアプリケーションコードのロギングバグ(過剰な verbosity 等)から生じる。ingestion ノードは Scribe のオフセットを [[Manifold]] にチェックポイントし、ノード障害からの復旧時には直前のチェックポイントから取り込みを再開する。(Source: [[@2024__EngineeringAtMeta__Logarithm - A logging engine for AI training workflows and services]]) ## 関連 - ソース: [[@2024__EngineeringAtMeta__Logarithm - A logging engine for AI training workflows and services]] - 開発元: [[Meta]] - 利用先: [[Logarithm]] - 依存コンポーネント: [[LogDevice]] - 関連エンティティ: [[Manifold]]