【专题】数据库之 ETCD

2010-08-21 topic database

PAXOS 算法从 90 年提出到现在已经有二十几年了,不过其流程过于复杂,目前较多的有 Chubby、libpaxos ,以及 Zookeeper 修改后的 Zookeeper Atomic Broadcase, ZAB 。

RAFT 是斯坦福的 Diego Ongaro、John Ousterhout 两人设计的一致性算法,在 2013 年发布了论文 《In Search of an Understandable Consensus Algorithm》,目前已经有近十多种语言的实现,其中使用较多的是 ETCD 。

  • RAFT 一个为真实世界应用建立的协议,注重落地性和可理解性。
  • 基本介绍 主要介绍 ETCD 如何使用,包括安装、部署、使用以及常见的介绍。
  • 示例源码 源码中关于如何 RAFT 协议的示例代码,直接使用的是内存数据库。
  • 源码解析 除了上述的示例代码,这里简单介绍其代码的实现。
  • 网络模块 包括了集群节点内部网络通讯,除此之外还有客户端与服务器之间的通讯。
  • 存储模块 核心的 RAFT 协议已经实现,不过存储模块需要单独实现,提供了 BoltDB 作为存储。
  • 一致性读 一致性越强,代价越高,同时应用也越友好。