leveldb 记录格式
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
leveldb 记录格式
LevelDB中的数据记录格式分为内存格式和持久化格式。
内存中的数据存储在MemTable中,当MemTable数据达到一定大小(例如64MB)时,数据会被刷新(Flush)到持久化的存储格式中,这种格式被称为Sorted String Table(SST)。
SST文件是LevelDB的主要存储格式,其内部由若干个block组成,这些block又可以分为indexBlock和dataBlock。
indexBlock中存储了dataBlock在文件中的起始位置(offset)和大小(blockSize),而dataBlock则存储着具体的用户数据。
从整体上看,SST文件呈现出一个单层的B Tree结构,只有一层indexBlock,相比传统数据库的存储引擎(如MySQL InnoDB)要更为简单。
在LevelDB的持久化存储中,每个数据库都对应一个目录,并且每个数据库只能被一个进程打开。
该目录中的文件包括:
.ldb:数据存储文件
.log:日志文件
MANIFEST-:元数据信息
CURRENT:当前版本的元数据文件名
LOCK:文件锁,避免被多个进程打开
LOG:LevelDB日志信息
每次打开数据库时,不会加载任何.ldb文件,因此需要在内存中维持这些文件的元数据信息,这些信息会在Get/Compact操作时使用。
以上内容仅供参考,如需更多关于LevelDB的记录格式的信息,建议查阅LevelDB的官方文档或相关资料。