开始

IndexWriter.commit()

u63_seg0 u63_seg1

检查pendingCommit

执行commit前的工作

u66_seg0 u66_seg1
u67_seg0 u67_seg1

synchronized(commit)开始

收集所有达到flush条件的DWPT

执行DWPT的doFlush()

u71_seg0 u71_seg1
u72_seg0 u72_seg1

synchronized(fullFlushLock)开始

更新删除信息

u75_seg0 u75_seg1

强制发布生成的段

IndexWriter处理事件

更新ReaderPool

u79_seg0 u79_seg1
u80_seg0 u80_seg1
u81_seg0 u81_seg1

设置commitUserData

u83_seg0 u83_seg1 u83_seg2 u83_seg3

更新索引文件的计数引用

u85_seg0 u85_seg1

执行commit后的工作

执行flush后的工作

执行同步磁盘工作

u89_seg0 u89_seg1
u90_seg0 u90_seg1
u91_seg0 u91_seg1

生成新的Segment_N文件

执行检查点(checkPoint)工作

设置rollbackSegments

尝试段合并

结束

u97_seg0 u97_seg1
u98_seg0 u98_seg1 u98_seg2 u98_seg3 u98_seg4 u98_seg5
u99_seg0 u99_seg1
u100_seg0 u100_seg1

synchronized(commit)结束

synchronized(fullFlushLock)结束

两阶段提交之第一阶段

两阶段提交之第二阶段

synchronized(commit)开始

synchronized(commit)结束

更新索引文件的计数引用

u108_seg0 u108_seg1
u109_seg0 u109_seg1