开发者社区> 问答> 正文

阿里云 Elasticsearch 云原生内核的两大核心技术是什么?

阿里云 Elasticsearch 云原生内核的两大核心技术是什么?

展开
收起
游客afijyf435noyu 2021-12-14 11:16:25 951 0
1 条回答
写回答
取消 提交回答
  • 核心技术之一:内存物理复制,实现 replica 的近实时访问 Segment 同步的实现细节 image.png

    图中描述的是 ES 物理复制的状态机,核心是为了解决 segment 同步乱序的问题。通 用的物理复制功能也是一样的实现,主要区别在于计算存储分离只需要复制实时生成的 segment,对于后续产生的 segment,强制提交 commit,确保 segment 落盘,来防止 大的 segment 进行复制。而通用的物理复制,外界的 segment 也是需要复制的,这种 segment 往往会比较大。所以这里有一个关键的优化,为了防止大 segment 复制导致的 主从可见性差距过大,主 shard 在从 shard 复制完成后才会打开最新的 segment 下图介绍了物理复制保证数据一致性的方式。 image.png

    核心是保证 checkpoint 的一致性,通过将主 shard 的 checkpoint 同步到从 shard 来实现。结合这张图可以看下流程,当数据写进来的时候,主 shard 会更新 checkpoint, 在第二步刷新 segment 时,第三步将 segment 复制到从 shard 时,会带上 checkpoint, 第四步从 shard 会用这个 checkpoint 更新自己的 local checkpoint 来保证主从 shard 使用了相同的 checkpoint,这样就实现了数据一致性的保证。

    核心技术之二:两阶段 IO fence 核心要解决的问题是防止多写。通过分布式文件系统的管控侧将异常节点加入黑名单, 直接从根本上防止了异常节点的显露。 image.png

    上图展示了整体的流程,在主 Shard 节点异常的时候,MasterNode 首先发现主 Shard 的异常,然后将主 Shard 所在的节点加入黑名单。第三步,这个节点切断了 IO 的 权限,彻底失去了写的能力。第四步,master 通知从 Shard 晋升成主 Shard。第五步, 从 Shard 晋升成主 Shard 后,就开始正常地读写数据。

    资料来源于《开源与云Elasticsearch应用剖析》下载地址:https://developer.aliyun.com/topic/download?id=1169

    2021-12-14 11:52:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云Elasticsearch体系架构与特性解析 立即下载
开源与云:Elasticsearch应用剖析 立即下载
《Elasticsearch全观测解决方案》 立即下载