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