# RocksDB: 書き込み - 続き

![`smart`](RocksDBWrite02_aa_001_20220511.png)

------------------------------------------------------------
RocksDBは、ログ構造化マージツリー（LSMツリー）データ構造を使用したキーバリューデータベースです。ディスク上のファイルは複数のレイヤーに整理されており、最新のデータがレベル0（L0）レイヤーに格納されています。 L0のデータが増えると、定期的に次のレイヤー（L1）などのより大きなファイルに圧縮されます。これにより、効率的な書き込みとディスク上のデータの効率的な格納が可能になります。

データの書き込み操作が行われると、まずデータが`write-ahead logging`（WAL）に書き込まれ、耐久性を確保します。その後、メモリ内のMemTableに追加されます。MemTable内のデータは定期的にキーで整理されたソート済み文字列テーブル（SSTファイル）としてディスクにフラッシュされます。これにより、高速なポイントルックアップと効率的なディスクストレージが可能になります。

MemTableに削除または更新操作が行われたことを示すフラグが追加されます。このフラグは、読み取り操作を行う際に削除または更新されたキーをフィルタリングするために使用されます。実際の削除または更新は、MemTableのデータがディスク上のSSTファイルにマージされる圧縮プロセス中に行われます。

まとめると、RocksDBは、耐久性のためのWAL、効率的な書き込みのためのMemTable、高速なポイントルックアップと効率的なディスクストレージのためのLSMツリーを組み合わせて、効率的で信頼性の高いCRUD操作を提供しています。