TurboKV:Rust製の超高速組み込みキーバリューストアがfjallの最大4.4倍のスループットを記録
TurboKV: Insanely fast Rust key-value store
TurboKVは、Rustで書かれた非同期組み込みキーバリューストアです。アトミックバッチ、順序付きレンジスキャン、設定可能な永続性、圧縮、バックグラウンドコンパクションを備えています。ベンチマークでは、Durableモードでfjallの最大4.4倍、redbの数百倍のスループットを達成。macOSのF_BARRIERFSYNCによるredbのオーバーヘッドを考慮しても、その性能は際立っています。
TurboKVの永続化されたBloomフィルター形式はハードウェアAESを使用しており、x86/x86_64ターゲットでは`RUSTFLAGS="-C target-feature=+aes,+sse2"`、ARM/AArch64ターゲットでは`RUSTFLAGS="-C target-feature=+aes,+neon"`でビルドする必要があります。
HNでの議論
86- dangoodmanUT
> DbOptions::durable()
> WALに追記されるが、書き込みごとの同期はない
つまり…永続化されてないってこと? durableは「プロセスの再起動に耐える」という意味ではなく、「永続ストレージに確実に保存される」という意味だよ。例えば、この「durable」モードは停電には耐えられない。
- medv
プログラマーはいつか必ず自分でDBを作るものだ: https://github.com/antonmedv/medb
- nine_k
この途方もない速度はこれによるものだと思う:
> TurboKVの永続化されたブルームフィルタ形式はハードウェアAESを使用。
また、組み込みのLZ4圧縮も。
スキャンにはSIMDが使われていると期待している。
- Tepix
アトミックなget+delete操作は計画されていますか?
- boguscoder
組み込みという言葉はno_stdを意味することもあるが、これは完全にそうではない。それでもクールだ。