关于elasticsearch:ES近实时搜索原理

6次阅读

共计 429 个字符,预计需要花费 2 分钟才能阅读完成。

前言

Elasticsearch 的近实时搜寻是指文档的变动并不是立刻对搜寻可见,默认状况下会有 1s 的提早。

原理

当有文档新增或者批改时,Elasticsearch 会先把这种变更记录到索引缓冲区(In-memory buffer)里。

Elasticsearch 每隔 1s 进行一次 refresh,refresh 会把索引缓冲区里记录的变更以段的格局刷新到文件系统缓存,并清空索引缓冲区里的记录。

只有文档变更达到文件系统缓存中,就能够像文件一样被关上和读取了,这也就意味着,文档的变更在此时能够体现在搜寻后果中。文件系统缓存最初通过 fsync 被刷新到硬盘。

总结

索引缓冲区的作用是实现批量变更到文件系统缓存,批操作能够进步性能。文件系统缓存的引入是为了解决 fsync 的昂扬代价,如果每次索引一个文档都去执行一次 fsync 的话会造成很大的性能问题,比方:文档变更更加耗时,以及须要更长时间能力体现在搜寻后果中。

参考

https://www.elastic.co/guide/…

正文完
 0