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的数据)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM