lucene源码阅读——DocumentsWriterStallControl

该类用来控制DocumentWriter的健康状态,如果建立索引的速度远远大于写入硬盘的速度,该类就通过waitIfStalled方法控制新的索引线程等待,因为建立索引后的一些数据要放入内存中,所以这样就会防止内存的快速增长,而索引写入磁盘后这一内存将会被释放,如果建立索引的速度远远小于写入硬盘的速度,该类就会唤醒之前等待的索引线程,继续建立索引。

个人理解该类相当于一个水坝,索引建立相当于水流,写入磁盘相当于水坝下的河道宽度。

相关推荐