概述

  1. 溢写到文件系统缓存。当数据写到ES分片时,会首先写入到内存,然后通过内存的buffer生成一个segment,并刷到文件系统缓存中,缓存中的数据可以被检索(注意不是直接刷到磁盘),ES中默认1秒,refresh一次。
  2. 写translog保障容错。在写入到内存中的同时,也会记录translog日志,在refresh期间出现异常,会根据translog来进行数据恢复 等到文件系统缓存中的segment数据都刷到磁盘中,清空translog文件。
  3. flush到磁盘。ES默认每隔30分钟会将文件系统缓存的数据刷入到磁盘。
  4. segment合并。 Segment太多时,ES定期会将多个segment合并成为大的segment,减少索引查询时IO开销,此阶段ES会真正的物理删除(之前执行过的delete的数据)

image.pnges准实时原理描述.png