# Gorilla
[[Facebook]] が設計・本番展開したインメモリ [[時系列データベース]](TSDB)。ODS(Operational Data Store)の直近 26 時間分のデータを全量 RAM に保持する write-through キャッシュとして機能し、長期ストレージは HBase が担う 2 層設計。2015 年 Spring 時点で 20 億の一意時系列・毎秒 1,200 万データ点を処理、80 台のマシンで稼働。
主な特徴:
- **圧縮**: デルタ・オブ・デルタタイムスタンプ(96% が 1 ビット)+ XOR 浮動小数点値(51% が 1 ビット)= 平均 1.37 バイト/点(16 バイトから 12 倍圧縮)
- **パフォーマンス**: HBase 比クエリレイテンシ 73〜350 倍削減、ピーク時 40,000 QPS
- **データモデル**: (文字列キー, 64 ビットタイムスタンプ, 倍精度浮動小数点値)の単純な 3 タプル
- **耐障害性**: Paxos ベースの ShardManager による単一ノード障害対応 + 地理的に分離した 2 リージョンへの並行ストリーミング
Gorilla の圧縮スキーム(「Gorilla 圧縮」と呼ばれる)は後続の TSDB に広く採用された。[[HeteroTSDB]] の Flusher はこのアルゴリズムを実装してディスク KVS への書き出しに使用している。
## 関連
- 一次論文: [[@2015__VLDB__Gorilla - A Fast, Scalable, In-Memory Time Series Database]]
- 開発元: [[Facebook]]
- 第一著者: [[Tuomas Pelkonen]]
- 後継採用事例: [[HeteroTSDB]](Gorilla 圧縮を実装)
- 関連概念: [[時系列データベース]] / [[メインメモリデータベース]]