三人行必有我师

主从节点数据一致的问题

Elasticsearch | 作者 TXYH | 发布于2020年09月12日 | 阅读数:1479

写入过程为先写入primary节点,primary节点同时向所有从节点发起一个请求。所有节点成功则返回成功。那失败了怎么办呢?

有一种说法是 节点失败了会通知master,在元数据的in sync配置中将该节点移除,该节点不再承担读请求。
那么有一个问题:那该节点什么时候能再承担读请求呢?写入出错有什么补偿措施来使其最终能和primary节点达成数据一致吗?
已邀请:

FFFrp

赞同来自:

当一个Replica故障时,ES会将其移除,当故障超过一定时间,ES会分配一个新的Replica到新的Node上,此时需要全量同步数据。但是如果之前故障的Replica回来了,就可以只回补故障之后的数据,追平后加回来即可,实现快速故障恢复。实现快速故障恢复的条件有两个,一个是能够保存故障期间所有的操作以及其顺序,另一个是能够知道从哪个点开始同步数据。第一个条件可以通过保存一定时间的Translog实现,第二个条件可以通过Checkpoint实现,所以就能够实现快速的故障恢复。
节选自https://zhuanlan.zhihu.com/p/35299145

要回复问题请先登录注册