Elasticsearch准实时索引实现(数据写入到es分片并存储到文件中的过程)

溢写到文件系统缓存

  • 当数据写入到ES分片时,会首先写入到内存中,然后通过内存的buffer生成一个segment,并刷到文件系统缓存中,数据可以被检索(注意不是直接刷到磁盘)
  • ES中默认1秒,refresh一次

写translog保障容错

  • 在写入到内存中的同时,也会记录translog日志,在refresh期间出现异常,会根据translog来进行数据恢复
  • 等到文件系统缓存中的segment数据都刷到磁盘中,清空translog文件

flush到磁盘

  • ES默认每隔30分钟会将文件系统缓存的数据刷入到磁盘

segment合并

  • Segment太多时,ES定期会将多个segment合并成为大的segment,减少索引查询时IO开销,此阶段ES会真正的物理删除(之前执行过的delete的数据)
posted @ 2020-11-16 17:23  哈喽哈喽111111  阅读(1067)  评论(0编辑  收藏  举报