【ろっくすでぃーびー】

RocksDB とは?

最終更新:
💡 アプリの中で、キーと値を保存するデータエンジン

Facebook(現Meta)で開発が始まった、LSMツリーを使う組み込み型の永続キーバリューストア。アプリケーションにライブラリとして組み込み、キーと値を保存する。

📌 このページのポイント
アプリに組み込む保存エンジン アプリケーション RocksDB キー → 値 代表的な書き込みの流れ MemTable メモリ上の変更 SSTファイル 書き出し WAL 復旧用のログ 設定に応じ記録 コンパクション ファイルを整理
組み込み型の配置と処理の関係を簡略化。WALとの線は対応関係で、書き込み順序を表す図ではない。SSTへの書き出しがフラッシュで、保存ファイルの整理がコンパクション。性能と耐久性は設定や用途にも依存する。
ひよこ ひよこ
RocksDBって、どんなデータベースなの?
ペンギン先生 ペンギン先生
キーと値の組でデータを保存する、組み込み型のキーバリューストアだよ。Facebookで開発が始まり、LevelDBを基に発展したものなんだ。
ひよこ ひよこ
組み込み型ってどういうこと?
ペンギン先生 ペンギン先生
アプリケーションの中にライブラリとして組み込んで使うんだ。RocksDB自体を独立したデータベースサーバーとして起動し、外からSQLを送る方式とは違うよ。MySQL向けのMyRocksは利用例の一つだね。
ひよこ ひよこ
書き込みはどう進むの?
ペンギン先生 ペンギン先生
メモリ上のMemTableに変更をためて、SSTファイルへ書き出すよ。障害後の復旧に使うWALというログにも、設定に応じて記録するんだ。メモリに置くだけで安全に保存できる、という意味ではないよ。
ひよこ ひよこ
コンパクションって何をするの?
ペンギン先生 ペンギン先生
SSTファイルの内容を読み直し、統合や不要になったデータの整理をする処理だよ。書き込みだけでなく、読み取りや保存容量にも関わるんだ。方式によって、そのバランスは変わるよ。
ひよこ ひよこ
SSDなら、いつでも速くなる?
ペンギン先生 ペンギン先生
必ずではないよ。高速ストレージや複数CPUを活かす設計だけれど、処理内容やデータ量、設定に左右されるんだ。コンパクションでも読み書きが発生するので、圧縮やキャッシュなどを含めて実際の用途で確かめる必要があるよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RocksDB」って出てきたら「アプリに組み込んで使う、キーと値の保存エンジン」と思えればだいたいOK!
📖 おまけ:英語の意味
「RocksDB」 = キーバリューストアの製品名
💬 RocksDBは製品名で、DBはDatabase(データベース)の略だよ。GoogleのLevelDBを基に、Facebookで開発が始まった保存エンジンなんだ。

参考資料

← 用語集にもどる