elasticSearch生命周期简述

244 阅读1分钟

1.什么是 Refresh

es在写入数据的时候,会将数据存储到一个叫 index buffer 的地方,一段时间后(默认1秒发生一次)将 index buffer 写入到 Segment(分片)的过程叫Refresh

index buffer被占满时也会触发 Refresh

2.什么是 Transaction Log

es在写入数据时,会将 Segment 写入缓存,防止数据丢失,es将数据写入 index buffer 时,也会将数据写入 Transaction Log

好处:当es断电的时候,因为 Transaction Log 已经对数据进行了一个落盘的操作,在es重新启动时会通过 Transaction Log 对数据进行 recover(恢复)

3.什么是 Flush (默认30分钟调用一次 | Transaction Log 满的时候调用 「默认521MB」)

    1. 首先会调用 Refresh, index buffer 清空,并且 Refresh
    1. 调用 fsync,将缓存中的 Segment 写入磁盘
    1. 清空删除 Transaction Log

4.什么是 Merge

Flush 操作后,会将 Segment 写入磁盘。随着时间越长,磁盘中的 Segment 会越来越多。Merger 会将 Segment 进行合并,将 .del 文件中的数据进行一个真正的删除

es会自动进行Merge的操作。 人为操作:POST my_index/_forcemerge