[[KairosDB]](on [[Cassandra]])の[ベンチマーク](https://github.com/influxdata/influxdb-comparisons)をやっていると、メトリック系列数(カーディナリティ)を増加させて10,000 (targets) x 100 (metrics) にすると、 Out of memory errorで死ぬようになった。KairosDBのアプリケーションプロセスとCassandraプロセスが同居していて、JVMのヒープメモリサイズをCassandraしか固定してなかった。
修正した結果、ベンチマークが完走するようになると、今度は系列数が100 (targets) x 100 (metrics)のときと比較して、書き込みスループットが1/3以下になった。既存の技術に課題があるのはいいのだけど、なぜこうなるかよくわかっていない。row_keysとrow_keys_indexテーブルの書き込み回数の割合がdatapointsテーブルの1/100ぐらいまで増えたことが関係あるのかどうか。
Percona Live Open Source Database Conference 2017でのInserting 1 million metrics per second into KairosDBというトークでは、KairosDBで100k metrics/sec を達成しているという話があった。マシンスペックはCore i5 の4コア、16GB RAM SSDで、RF=1の3ノードクラスタ。
[Inserting 1 million metrics per second into KairosDB](https://www.youtube.com/watch?v=O5BVRUMsBp0)
Cassandraのスケールインオペレーションをはじめてやってる。当該ノード上でnodetool decommissionするだけのはずが、失敗することも多くてそうすると、nodetool removenode NODE_IDを実行するとうまくはずれる。