RocksDBをさまざまな言語(C++, Rust, Kotlin, Python)で利用する InstagramのCassandraのバックエンドをJVMベースのものから、RocksDBに切り替えたというニュースが少し話題になりました。 CassandraのJVMは定期的にガーベジコレクタが走って、よろしくないようです。 P99というテストケースではデフォルトのJVMからRocksDBに張り替えたところ10倍近くのパフォーマンスが得られたとのことです。 データ分析でもメモリ収まりきらないけど、Sparkのような分散システムを本格に用意する必要がない場合、NVMe上にLevelDB, RocksDBなどのKVSを用意して加工することがあります。 ローカルで動作させるには最強の速度だし、文句のつけようもない感じです。 LSMというデータ構造で動いており、比較対象としてよく現れるb-treeよ
![RocksDBをさまざまな言語(C++, Rust, Kotlin, Python)で利用する - にほんごのれんしゅう](https://cdn-ak-scissors.b.st-hatena.com/image/square/8b2c64d8800ea254faa0dbb4695fe33554066d19/height=288;version=1;width=512/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AE-2efj-mMo0dQWEvZyxn1g.png)