leveldb实现解析.pdf版
6937 点击·1 回帖
![]() | ![]() | |
![]() | 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. ParsedinternalKey (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 点击下载 | |
![]() | ![]() |