zoukankan      html  css  js  c++  java
  • 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.收尾。设置结束状态,发起定时任务。

  • 相关阅读:
    极光推送的的栗子
    老师oracle讲义第五天
    oracle学习第五天
    ajax使用
    jstl标签的使用
    json使用
    jsp的el表达式使用
    老师oracle讲义第三天
    oracle学习第一天
    oracle学习第二天
  • 原文地址:https://www.cnblogs.com/forestwang/p/6731632.html
Copyright © 2011-2022 走看看