开始

统计处理文档占用的内存使用量

u87_seg0 u87_seg1

ThreadState是否

被置为flushPending?

u89_seg0 u89_seg1
u90_seg0 u90_seg1

执行flush策略

全局flush是否被触发?

u94_seg0 u94_seg1
u95_seg0 u95_seg1 u95_seg2 u95_seg3

u97_seg0 u97_seg1

ThreadState是否

被置为flushPending?

从flushQueue取出

一个待flush的DWPT

u101_seg0 u101_seg1

ThreadState是否

被置为flushPending?

u104_seg0 u104_seg1

取出当前ThreadState持有的DWPT

u107_seg0 u107_seg1

u109_seg0 u109_seg1 u109_seg2 u109_seg3
u110_seg0 u110_seg1 u110_seg2 u110_seg3
u111_seg0 u111_seg1 u111_seg2 u111_seg3

u113_seg0 u113_seg1 u113_seg2 u113_seg3 u113_seg4

是否触发删除结点

flush

设置flushDeletes为True

u117_seg0 u117_seg1

全局flush是否已经触发?

记录待处理的删除信息

DWPT是否为空

尝试调用正在等待执行doFlush

的其他DWPT

执行DWPT的doFlush

结束

u124_seg0 u124_seg1
u125_seg0 u125_seg1
u126_seg0 u126_seg1
u127_seg0 u127_seg1
u128_seg0 u128_seg1
u129_seg0 u129_seg1 u129_seg2 u129_seg3 u129_seg4
u130_seg0 u130_seg1 u130_seg2 u130_seg3 u130_seg4
u131_seg0 u131_seg1
u132_seg0 u132_seg1 u132_seg2 u132_seg3