个人学习

ES原理之写读搜索流程

2020-01-19  本文已影响0人  后来丶_a24d

目录


todo

非读流程

分布式写入

es写入集群时.jpg

写流程

写入
  1. 新document首先写入内存Buffer缓存中。
  2. 每隔一段时间,执行"commitpoint"(管理多个segment,读取也是找commit point)操作,buffer写入新Segment中。
  3. 新segment写入文件系统缓存 filesystem cache。(实际上第二,第三可以理解为一步,内存 -> 文件缓存 -> 文件。)
  4. 文件系统缓存中的index segment被fsync强制刷到磁盘上,确保物理写入。
    此时,新egment被打开供search操作。
  5. 清空内存buffer,可以接收新的文档写入。


    先被存放到内存.png
refresh

删除流程

更新

段合并


读流程


search流程

1、客户端发送请求到一个coordinate node。
2、协调节点将搜索请求转发到所有的shard对应的primary shard 或 replica shard ,都可以。
3、query phase:每个shard将自己的搜索结果(其实就是一些doc id)返回给协调节点,由协调节点进行数据的合并、排序、分页等操作,产出最终结果。
4、fetch phase:接着由协调节点根据doc id去各个节点上拉取实际的document数据,最终返回给客户端。

  1. 进一步,参考本系列es深入篇
  2. 参考https://www.cnblogs.com/bonelee/p/6226185.html

参考

上一篇 下一篇

猜你喜欢

热点阅读