Draft

Class之间关系

class-relations

Write

  1. 最终怎么写到了memTable中。
  2. WAL写的流程是什么样?

write

WriteBatch

write-batch

ColumnFamily

  1. Blob 中value和key是怎么对的上的?
  2. 数据结构之间怎么串起来的。

Write Thread

Writer的状态 write thread state

write thread过程 Write group leader 负责写入WAL日志。 memtable可能由group leader写,也有可能由各个writer 并发写。

write thread是对写线程的抽象 write thread

write impl pipelined-write impl

PreprocessWrite

preprocess write

后台压缩

MaybeScheduleFlushOrCompaction

flush-compaction

后台线程压缩

compaction job之间是怎么划分的?怎么让不同线程去compact不同部分?

backgroup-compaction

compaction picker

level compaction picker

以下两张图摘自facebook wiki leveled-compaction

level 0 compaction

level 1 compaction