读LevelDB - 01 开篇&编译源码
LevelDB简介
LevelDB是Google开源的一个键值数据库,它使用C++实现,提供”字符串类型键值对“的持久化能力。
为什么选择读它?
在进入具体的”读“之前,先补充说明一个问题:为什么选择LevelDB来读?
就我自己而言,原因有两点:
1、LevelDB是数据库的一种最简实现。LevelDB只提供了对键值对的持久化和事务操作,在众多开源数据库软件中,比如MySQL、SQLite等,LevelDB可以说算是一种最简数据库实现,通过解读它可以对最关键、最必要的数据库特性做一个了解,这样在后续数据库解读中也有助于抓住主要矛盾。
2、LevelDB是一个C++库。通过读它来丰富C++运用技巧。
从源码构建
好的,现在进入正题,读代码。
读代码的第一件事,就是编译源码了。通过编译源码,可以快速了解代码的结构,搭建代码跟踪调试的环境,为下一步的流程跟踪打好基础。
LevelDB的代码仓地址是:https://github.com/google/leveldb。
从READM文档可以看到,LevelDB采用了git submodule
来管理依赖的三方件,并使用CMake作为工程的构建工具。
接下来,开始在本地环境构建工程,我的开发环境是MacOS,采用Git+CMake+CLang构建:
(1)、下载代码仓到本地(建议先fork到自己的个人仓,再从个人仓clone);
git clone --recurse-submodules https://github.com/google/leveldb.git |
加--recurse-submodules
选项,会自动clone三方库到third_party/
子目录。
(2)、构建工程;
mkdir -p build && cd build |
(3)、执行用例,检查LevelDB是否正常。
ctest |
执行结果如下:
Test project /Users/zgd/Documents/SourceCode/leveldb/build |
用例通过,源码构建完成。
好了,以上就是读LevelDB的开篇内容。