开始
统计处理文档占用的内存使用量
ThreadState是否
被置为flushPending?
否
执行flush策略
全局flush是否被触发?
是
是
ThreadState是否
被置为flushPending?
从flushQueue取出
一个待flush的DWPT
是
ThreadState是否
被置为flushPending?
否
取出当前ThreadState持有的DWPT
是
否
否
是否触发删除结点
的flush?
设置flushDeletes为True
全局flush是否已经触发?
记录待处理的删除信息
DWPT是否为空
尝试调用正在等待执行doFlush
的其他DWPT
执行DWPT的doFlush
结束
是
否
是
否
否
是