# OpenTSDB HBase をストレージ層に使用するオープンソースの時系列データベース。IT リソース監視用途で生まれた。LGPLv2.1+ ライセンス。REST API・Telnet・バッチインポートによるデータ投入をサポートする。バージョン 2.0 からミリ秒分解能に対応。データ検索・表示・分析のための Web インタフェースを持つ。 [[@2014__IEEE CLOUD__Scalability and Robustness of Time-Series Databases for Cloud-Native Monitoring of Industrial Processes]] での評価バージョンは 2.0 RC1(34,305 LOC、アクティビティ 21 コミット / コミッタ 2 名、2013 年 10〜12 月)。 ## ベンチマーク結果(IEEE CLOUD 2014) 6 ノードクラスタの PMU Write で 12 回の試験を行ったが、再現可能な結果を得られなかった。根本的な問題は 2 点: 1. HBase インスタンスがデータ量依存のメモリ不足に陥り、負荷量ではなく蓄積データ量に相関する 2. OpenTSDB は HBase が機能不全になった後もクライアントからのデータ受け入れを継続する(自己防衛機能の欠如)。また HBase への IPC リクエストをスロットリングしないため回復が困難になる 6 ノードでの最大容量は約 50 PMU(48.4 リクエスト/秒)と推定されるが、少なくとも 1 つの HBase インスタンスが定常負荷の約 43 分後にメモリ不足に陥る。HBase の専門的チューニングと継続的監視なしに運用可能な状態にすることは困難。 ## ベンチマーク結果(TS-Benchmark、ICDE 2021) [[@2021__ICDE__TS-Benchmark - A Benchmark for Time Series Databases]](評価バージョン 2.3、風力発電ウィンドファーム監視シナリオ)によれば、OpenTSDB は HBase の LSM ツリーを活用し小規模データセット(3.9GB)ではウィンドファーム数を増やすデータ注入テストで 2〜256 スレッドの範囲で最良のスループットを維持する(256 スレッドで飽和し始める)。しかし大規模データセット(284.5GB、3.24×10^10 データ点)のバッチロードには失敗した(HBase がクラッシュ)。データはHBaseに格納時に即座に圧縮されないため、散発的なコンパクション操作が巨大なディスク入力帯域コストを生む。クエリ性能では、リクエストを HBase に転送し結果を受け取って返す構成のためシリアライズ/デシリアライズのオーバーヘッドが大きく、閾値条件付きクエリ(Query 1.2 等)もサポートしない。この実験はシングルノード版で行われており、分散アーキテクチャ前提の OpenTSDB には不利な可能性がある(Source: [[@2021__ICDE__TS-Benchmark - A Benchmark for Time Series Databases]] §IV-D, §IV-E, §IV-F)。 ## 関連 - 概念: [[時系列データベース]] / [[時系列データベースベンチマーク]] - 論文: [[@2014__IEEE CLOUD__Scalability and Robustness of Time-Series Databases for Cloud-Native Monitoring of Industrial Processes]] / [[@2021__ICDE__TS-Benchmark - A Benchmark for Time Series Databases]] - 比較対象: [[KairosDB]] / [[Databus]] / [[InfluxDB]] / [[TimescaleDB]] / [[Druid]]