leveldb实现解析
目录
一、 代码目录结构 ..... 1
1. doc/ .... 1
2. include/leveldb/ ..... 1
3. db/ ..... 1
4. table/... 1
5. port/ ... 1
6. util/ ... 1
7. helper/memenv/ . 1
二、 基本概念 .. 1
1. Slice (include/leveldb/slice.h) .. 1
2. Option (include/leveldb/option.h) .... 2
3. Env (include/leveldb/env.h util/env_posix.h) 3
4. varint (util/coding.h) ..... 3
5. ValueType (db/dbformat.h) 3
6. SequnceNnumber (db/dbformat.h) . 4
7. user key. 4
8. Parsed
internalKey (db/dbformat.h) .... 4
9. InternalKey (db/dbformat.h) 4
10. LookupKey (db/dbformat.h) .. 4
11. Comparator (include/leveldb/comparator.h util/comparator.cc) .. 4
12. InternalKeyComparator (db/dbformat.h) .. 5
13. WriteBatch (db/write_batch.cc) . 5
14. Memtable (db/memtable.cc db/skiplist.h) 5
15. Sstable (table/table.cc) ... 5
16. FileMetaData (db/version_edit.h) ..... 5
17. block (table/block.cc) ..... 6
18. BlockHandle(table/format.h) 6
19. FileNumber(db/dbformat.h) 6
20. filename (db/filename.cc) .. 6
21. level-n (db/version_set.h) . 7
22. Compact (db/db_impl.cc db/version_set.cc) .... 7
23. Compaction(db/version_set.cc) .... 7
24. Version (db/version_set.cc) 8
25. VersionSet (db/version_set.cc) . 9
26. VersionEdit(db/version_edit.cc) . 10
27. VersionSet::Builder (db/version_set.cc) ..... 11
28. Manifest(descriptor)(db/version_set.cc).. 12
29. TableBuilder/BlockBuilder(table/table_builder.cc table/block_builder.cc) ... 12
30. Iterator (include/leveldb/iterator.h) . 12
三、 存储结构的格式定义与操作 .... 12
1. memtable (db/skiplist.h db/memtable) .. 12
2. block of sstable (table/block_builder.cc table/block.cc) . 14
3. sstable (table/table_bulder.cc/table.cc) .... 16
4. block of log (db/log_format.h db/log_writer.cc db/log_reader.cc) .. 18
5. log (db/log_format.h db/log_writer.cc db/log_reader.cc) 18
6. cache(util/cache.cc) .... 19
7. Snapshot (include/leveldb/snapshot.h) ..... 19
8. Iterator (include/leveldb/iterator.h) . 19
四、 主要流程 . 24
1. open ... 24
2. put .... 25
3. get .... 25
4. delete.. 26
5. snapshot 26
6. NewIterator ... 26
7. compact. 26
五、 总结 ..... 30
1. 设计/实现中的优化 ... 30
2. 可以做的优化 .. 31
点击下载