前文回顾
一个 LevelDB 实例初始化的主要任务包括:
一个 LevelDB 实例的初始化是从 DB::Open 这个函数开始的:
Status DB::Open(const Options& options, const std::string& dbname, DB** dbptr);
options - 打开/创建 LevelDB 实例的配置参数。
dbname - 保存数据的目录名。
dbptr - 初始化成功的 LevelDB 实例保存在 *dbptr。
DB::Open 的执行逻辑:
重点是第 2 步。
DBImpl::Recover 是 LevelDB 初始化的主要逻辑: