要不要也来分享分享一下啊

translog与实时性的冲突

Elasticsearch | 作者 sev1n | 发布于2020年09月04日 | 阅读数:1200

我很好奇,一个写入请求在能被实时搜索到与translog落盘之间是怎么进行的?需要大手子点拨。
一个写入请求过来的时候,默认只需要一秒就能被搜索到数据。但是translog的落盘不一定这么快。那么是不是可以说,存在某一刻数据能被搜索到被没有被持久化?
已邀请:

burgler

赞同来自:

数据从内存refresh到os cache之后就可以被搜索了,translog是先到os cache,然后每隔一定一定时间落盘,这段时间内机器宕机的话这个间隔内的数据是会丢失的。

pony_maggie - 公众号:犀牛饲养员的技术笔记

赞同来自:

这是两个独立的东西,并没有太大关系。
refresh决定ES(或者lucene)什么时候可以被搜索到,translog决定ES存储的可靠性问题,是可能存在数据丢失的情况。
 
大部分业务场景,ES的这种数据丢失是可以接受的,因为这些场景ES基本都是作为第二存储介质(第一一般是mysql这种关系型数据库)。

guoyanbiao520

赞同来自:

translog落盘会比对段里的数据的

要回复问题请先登录注册