elasticsearch 分片恢复经历了哪些步骤?

本文详细介绍了当服务重启或与集群断网重连时,为确保数据一致性所采用的分片同步流程。该流程主要包含五个步骤:对比索引文件差异、文件同步、清理文件、同步事务日志及收尾工作。
why

服务重启,或者与集群断网重连时,需要和集群当前的主分片的数据保持一致。

how

上图中,RecoverTarget 代表加入集群前想要同步数据的分片,RecoverSource代表当前集群中的正常分片。

同步过程本质上来说,就是通过拷贝索引文件&重放事务日志来完成的,具体的步骤如上图,我用一个实际的例子来说明。

下图是分片的文件目录树,左边的RecoverTarget,右边是RecoverSource

1.对比索引文件差异。target要把自己当前的索引文件快照发给source,然后source进行差异对比,从而确定要同步哪些文件(右边的蓝色部分)。

2.文件同步。resouce把差异文件发送给target,target收到后,把文件写入lucene中。

3.清理文件。这里要解决的问题是把清理掉原来的索引文件,把recovery.*这些临时文件还原到索引中去,从而实现索引文件一致(蓝色部分)。

4.同步tlog。在这里source负责把tlog(红色部分)的事务读出来,分组发给target,target收到后,会依次进行重放。

5.收尾。设置结束状态,发起定时任务。

 

转载于:https://www.cnblogs.com/forestwang/p/6731632.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值