leveldb头文件结构
include
└── leveldb
├── c.h => c binding
├── cache.h => cache接口
├── comparator.h => 比较器接口
├── db.h => DB接口
├── env.h => 为跨平台准备的env接口
├── filter_policy.h => fliter策略,用于缓存,请看到文档及相应实现
├── iterator.h => 迭代器,用于遍历数据库中存储的数据
├── options.h => 包含控制数据库的Options,控制读的WriteOptions,ReadOptions
├── slice.h => Slice的接口
├── status.h => leveldb中大多接口返回的Status接口
├── table.h => immutable接口
├── table_builder.h => 用于创建table的构建器接口
└── write_batch.h => 使多个写操作成为原子写的接口
1.options.h
主要有 Option: Options, ReadOptions, WriteOptions. 可以通过配置相关选项,进行性能的优化。
1.1 option
const Comparator* comparator; 默认字典排序
bool create_if_missing;默认
false,如果为
true,在数据库丢失的时候,会自动创建。
bool error_if_exists;默认
false;
true:代表如果数据库存在,会报错误。
bool paranoid_checks;默认
false.
true:代表检查比较严格,有任何歧义,都会上报错误。
Env* env; 平台兼容性相关,
Logger* info_log;
size_t write_buffer_size;
int max_open_files;
Cache* block_cache;
size_t block_size;每一个block 的大小,可以动态改变,实际的数据可能要小些。默认为
4k.
int block_restart_interval;
size_t max_file_size;
CompressionType compression;
bool reuse_logs;
const FilterPolicy* filter_policy;
1.2 ReadOptions
ReadOptions()
: verify_checksums(
false),
fill_cache(
true),
snapshot(
NULL) {
}
1.3 WriteOptions
WriteOptions()
: sync(
false) {
//是否要进行同步写,默认
false .
}
2.c.h
leveldb 中大部分代码,都通过c 语言实现了,常见的增删改查。以及一些不常用的函数接口。
3.cache.h
为了提高性能,cache是不可避免的.cache.h中提供了Cache接口.LevelDB提供了基于LRU(least recent used)策略的Cache.如果需要提供自定义的cache方法,可以继承Cache类,并实现其中的纯虚函数.