分布式系统
文章平均质量分 94
陆垚知马俐·
中国科学技术大学软件学院2020级硕士研究生。
展开
-
论文学习——链式复制
链式复制Chain Replication构建大规模分布式存储服务的一个挑战是,在扩大系统规模以提高系统的吞吐量和可用性时,随之而来的是系统节点的故障频率也会不断增加,引起整个系统频繁的配置变更;并且大规模分布式存储服务往往需要在“提供强一致性保证但会将其系统的吞吐率,以及提高系统的吞吐率但不能提供强一致性保证”之间做抉择。使用链式复制构建的大型分布式存储服务具有较高的可用性,能够在提供线性一致性保证的同时有良好的吞吐量(适合于read-mostly的系统)。基于链式复制构建的系统具有良好的可用性,原创 2021-11-18 07:43:19 · 448 阅读 · 0 评论 -
raft优化
处理只读请求对于只读请求它不会改变状态机的状态,因此可以直接执行而无需写入日志,这能够大大减少持久化导致的性能开销。但是这样可能导致leader返回过时的结果。比如,只读请求被发送到了一个处于分区中的leader,它的响应很有可能是过时的。为了解决该问题,在收到只读请求后leader需要执行如下步骤:leader在自己的任期内必须至少提交过一个当前Term的日志,这可以通过leader当选时立马提交一个no-op请求来实现。这是为了保证leader的commit index至少和其他节点的一样大。原创 2021-09-08 00:57:36 · 809 阅读 · 0 评论 -
etcd-raft的启动过程
本文基于etcd 3.1.10版本所写etcd-raft的主要模块etcd-raft 采用极简的设计理念,仅实现核心 raft 算法;将网络通信与持久化操作交给应用层来实现,即应用层负责实现 raft 节点之间的网络通信,和 raft 日志与节点状态的持久化操作。为了便于对etcd-raft 进行测试,将raft节点抽象成一个状态机。raft状态机是由事件驱动的,会引起raft状态机状态发生变化的事件主要有:定时器超时,leader选举,日志复制,成员变更。除了定时器超时之外所有的事件都封装在Me.原创 2021-09-08 00:45:49 · 356 阅读 · 0 评论 -
共识与一致性
此文为缝合的结果,来源见参考。本文为学习所用,如有侵权请告知本人。共识与一致性共识描述了分布式系统中多个节点之间,彼此对某个状态达成一致结果的过程。 在实践中,要保障系统满足不同程度的一致性,核心过程往往需要通过共识算法来达成。共识算法解决的是对某个提案(proposal)大家达成一致意见的过程。提案的含义在分布式系统中十分宽泛,如多个事件发生的顺序、某个键对应的值、谁是领导……等等。可以认为任何可以达成一致的信息都是一个提案。对于分布式系统来讲,各个节点通常都是相同的确定性状态机模型(又称.原创 2021-07-26 00:47:24 · 2928 阅读 · 0 评论