您当前的位置: 首页 > 

java持续实践

暂无认证

  • 1浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

java持续实践 发布时间:2022-02-26 19:36:50 ,浏览量:1

文章目录
      • 近实时搜索
      • es写入数据的流程

近实时搜索

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

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

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

es写入数据的流程

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

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

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

在这里插入图片描述

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0370s