0
点赞
收藏
分享

微信扫一扫

es 7.x 进阶 文档刷新 文档刷写 文档合并

RJ_Hwang 2022-02-26 阅读 74

文章目录

近实时搜索

es是按段搜索的.
最新的数据存储在最新的段上.
es不是实时的, 而是近实时的. 是基于分段搜索进行的.

数据写入的时候, 先找到协调节点, 协调节点会有路由计算规则,
hash(_id) % 分片数量
计算主分片的位置.
数据写入主分片, 之后写入副本.

延时: 主分片的延时 + 并行写入副本的最大延时

es写入数据的流程

在内存中建立索引 . —> 形成分段的数据对象. ----> 数据落磁盘 (flush) —> 用户进行查询 (必须要落盘才能查询)

索引建立完毕 -->写translog (内存中) — > 磁盘写入translog (flush)

  1. 由于es写入过程较为复杂, 因此没有和数据库一样先写日志再写索引, 避免无效日志.
  2. 由于数据在内存中并不能搜索, 在磁盘中才能搜索, 因此优化的是把内存中的数据, 写入操作系统的文件缓冲区中, 此时数据可以被查询, 并每隔半个小时落盘. 并且由于有translog , 也保证了数据的安全性.
  3. 由于不断的刷写, 会形成很多的文件段, 此时就会进行文件的合并, 提高效率. 合并的时候, 也会把标记删除的文件, 物理删除.

在这里插入图片描述

举报

相关推荐

0 条评论