开始
IndexWriter.commit()
检查pendingCommit
执行commit前的工作
synchronized(commit)开始
收集所有达到flush条件的DWPT
执行DWPT的doFlush()
synchronized(fullFlushLock)开始
更新删除信息
强制发布生成的段
IndexWriter处理事件
更新ReaderPool
设置commitUserData
更新索引文件的计数引用
执行commit后的工作
执行flush后的工作
执行同步磁盘工作
尝试段合并
结束
synchronized(commit)结束
synchronized(fullFlushLock)结束
两阶段提交之第一阶段
两阶段提交之第二阶段
开始
IndexWriter.flush()
执行flush前的工作
收集所有达到flush条件的DWPT
synchronized(fullFlushLock)开始
执行DWPT的doFlush()
IndexWriter.flush()
开始
自动flush
更新删除信息
强制发布生成的段
IndexWriter处理事件
更新ReaderPool
尝试段合并
IndexWriter处理事件
自动flush
结束
结束
文档提交之commit
文档提交之flush
synchronized(commit)结束
synchronized(commit)开始
synchronized(commit)结束
生成新的Segment_N文件
执行检查点(checkPoint)工作
设置rollbackSegments
更新索引文件的计数引用