201903 Distributed Fault Tolerant System Design 学习笔记 (5) 分布式容错KV存储服务的设计与实现 - xiaoxianfaye/Learning GitHub Wiki

Overview

1 内存、单节点

2 持久化、单节点

3 一主一备(手工指定主或备)

3.1 异步replicate

3.2 同步replicate

3.3 简单流控(限制replicating列表的长度)

3.4 定时重发replicate(At Least Once)

3.5 Seq持久化

4 一主多备

4.1 复制因子

4.2 Exactly Once

5 落后备节点同步数据(OpLog)

5.1 OpLog

5.2 同步单条OpLog(one_update)

5.3 同步多条OpLog(batch_update)

5.4 同步所有OpLog(full_update)

6 主备切换

6.1 手动切换active

6.2 自动选出active

7 解耦Leader选举切换与业务代码

8 集群管理模块(db_cluster)

9 API(db_api)

9.1 一次性API

9.2 带重试策略的API(At Least Once)

10 Stop

10.1 Leader选举模块(cluster_leader)增加stop

10.2 集群管理模块(db_cluster)增加stop

11 其他语言可访问API

11.1 tcp_server

11.2 db_acceptor

11.3 db_cluster增加API

11.4 db_client

12 保证主收到的Seq的连续顺序(pending)

13 Supervisor

Homework