RocksDBをさまざまな言語(C++, Rust, Kotlin, Python)で利用する InstagramのCassandraのバックエンドをJVMベースのものから、RocksDBに切り替えたというニュースが少し話題になりました。 CassandraのJVMは定期的にガーベジコレクタが走って、よろしくないようです。 P99というテストケースではデフォルトのJVMからRocksDBに張り替えたところ10倍近くのパフォーマンスが得られたとのことです。 データ分析でもメモリ収まりきらないけど、Sparkのような分散システムを本格に用意する必要がない場合、NVMe上にLevelDB, RocksDBなどのKVSを用意して加工することがあります。 ローカルで動作させるには最強の速度だし、文句のつけようもない感じです。 LSMというデータ構造で動いており、比較対象としてよく現れるb-treeよ