Elstic底层Lucene原理篇之倒排索引的好处

1、不需要锁,提升并发能力,避免锁的问题
2、数据不可变,一直保存在os cache中,只要cache内存足够
3、fileter cache(一直驻留在内存,因为数据不可变)
4、可以压缩,节省cpu和IOPS的开销

倒排索引不可变的坏处:
每次都要重新构建整个索引
1、整个数据写入buffer
2、commit point
3、buffer中的数据写入新的index segment
4、等待在os cache中的index segment 被fsync强制刷到磁盘上
5、新的index sgernent被打开,供search使用
6、buffer被清空

总结:
每次commit point时,会有一个.del文件,标记了哪些segment中的哪些document被标记
为deleted了搜索的时候,会依次查询所有的segment,从旧的到新的。
例如:
被修改过的document,在旧的segment中,会标记为deleted,在新的segment中会有
其新的数据

主要瓶颈在于fsyn实际发生磁盘IO写数据到磁盘,非常耗时。