# HeteroTSDB
メトリクス保存のための [[時系列データベース]](TSDA)。[[Yuuki Tsubouchi]] らが提案。memory-based KVS と disk-based KVS を階層的に federate し、取り込みスケーラビリティ・長期保持・保守性を両立する。プロトタイプ実装 xtsdb は github.com/yuuki/xtsdb で公開、Go + Redis Cluster + Apache Cassandra。
- memory-based KVS(Redis)の hash table インデックスで time series を定数時間で挿入・更新し、メトリクス数増大に強い。disk-based KVS(Cassandra)へ古いデータを移して storage コストを下げる。([[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])
- 移行はメトリクス単位の **TTL + jitter** による細粒度方式。Flusher が time series を Gorilla 圧縮して 1 トランザクションで disk へ書き、jitter で移行負荷スパイクを回避。5 コンポーネント(Ingester / Flusher / Querier / memory-KVS / disk-KVS)。([[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])
- 8 ノードで 1 million time series の ingestion throughput が KairosDB の **3.98 倍**(420k vs 105k pt/s)。time series 数増大時の劣化も小さい。([[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])
- 2017 年 8 月に [[Hatena]] の監視 SaaS [[Mackerel]] に実投入(本番では DynamoDB + S3 の 3 層化・AWS Lambda 化)。([[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]])
## 関連
- 本ソース: [[2025__Kyoto University__Scaling Telemetry Workloads in Cloud Applications - Techniques for Instrumentation, Storage, and Mining]]
- 開発者: [[Yuuki Tsubouchi]]
- 実運用: [[Mackerel]] / [[Hatena]]
- 関連概念: [[時系列データベース]] / [[テレメトリ]]