Ch07-LevelDB 之 WAL
May 25, 2022
WAL 一般用于故障恢复,其内容就是内存里 MemTable 内容的持久化,当一个 MemTable 写满后,开启一个新的 MemTable 时,也同时会开启一个新的 WAL,当 MemTable 被 Dump 到磁盘后,相应的 WAL 可以被删除。所以说控制每次 WAL 写入磁盘的方式,便可以控制最多可能丢失的数据量。
...WAL 一般用于故障恢复,其内容就是内存里 MemTable 内容的持久化,当一个 MemTable 写满后,开启一个新的 MemTable 时,也同时会开启一个新的 WAL,当 MemTable 被 Dump 到磁盘后,相应的 WAL 可以被删除。所以说控制每次 WAL 写入磁盘的方式,便可以控制最多可能丢失的数据量。
...要想说明 Manifest 就不得不提出另一个重要的概念——Version。
...SSTable
...MemTable
...Arena 内存管理
...LevelDB 架构
...leveldb是一个key/value型的单机存储引擎,由google开发,并宣布在BSD许可下开放源代码。它是leveling+分区实现的LSM典型代表。
...std::unique_ptr
,std::shared_ptr
,std::weak_ptr
。
lvalue reference
,lvalue reference
。
virtual