【ES】Elasticsearch的写入数据的过程?Translog的作用?

1,149 阅读1分钟

ES写入数据过程

路由到对应的节点以及对应的主分片时,会做以下的事: 1)将数据写到内存缓存区。 2)然后将数据写到translog缓存区。 3)每隔1s数据从buffer中refresh到FileSystemCache中,生成segment文件,一旦生成segment文件,就能通过索引查询到了。 4)refresh完,memory buffer就清空了。 5)每隔5s中,translog 从buffer flush到磁盘中。 6)定期/定量从FileSystemCache中,结合translog内容flush index到磁盘中。

在这里插入图片描述

Translog作用

ES会将每次写入数据同时写到translog日志中,防止ES宕机造成数据丢失保证可靠存储。 translog还用于提供实时CRUD。当尝试按ID检索,更新或删除文档时,它会首先检查translog中是否有任何最近的更改,然后再尝试从相关段中检索文档。 这意味着它始终可以实时访问最新的已知文档版本。

参考

Elasticsearch写入原理深入详解