(1)Raft算法(state machine)的正确性,可以考虑直接移植etcd raft模块的全部unit test cases(https://github.com/etcd-io/etcd/tree/master/raft),这是当前可见的为完备的raft算法测试用例集,所以pingcap的raft-rs(etcd raft的rust版)和 @我做分布式系统 的dragonboat都移植了这部分case; (2)线性一致性(linearizable):可以使用jepsen测试raft实现在各种异常(网络分区,宕机、hang等)情况是否满足线性一致性,仓库里面有很多的例子,照葫芦画瓢写一个也不难(还是很恶心的,毕竟只能用closure写),例如etcd、tidb、logcabin等等,详细的可以参考jepsen作者的文章:https://jepsen.io/analyses (3)更进一步的可能就是Chaos Engineering,给整个系统注入各种异常,看系统的表现,大的公司都有实践,其中开源的可以参考etcd的function test和dragonboat的Monkey Testing部分
(1)Raft算法(state machine)的正确性,可以考虑直接移植etcd raft模块的全部unit test cases(https://github.com/etcd-io/etcd/tree/master/raft),这是当前可见的为完备的raft算法测试用例集,所以pingcap的raft-rs(etcd raft的rust版)和 @我做分布式系统 的dragonboat都移植了这部分case; (2)线性一致性(linearizable):可以使用jepsen测试raft实现在各种异常(网络分区,宕机、hang等)情况是否满足线性一致性,仓库里面有很多的例子,照葫芦画瓢写一个也不难(还是很恶心的,毕竟只能用closure写),例如etcd、tidb、logcabin等等,详细的可以参考jepsen作者的文章:https://jepsen.io/analyses (3)更进一步的可能就是Chaos Engineering,给整个系统注入各种异常,看系统的表现,大的公司都有实践,其中开源的可以参考etcd的function test和dragonboat的Monkey Testing部分更多的内容可以看看分布式系统测试的awesome list:testing-distributed-systems
自己是做存储的,所以个人比较关注 File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution。因为sosp 10月底才开,所以论文还看不到,今天偶然发现论文作者提前放出来了,兴致勃勃的过了一遍,在这里推荐给大家。Ceph可以说是开源分布式存储的一颗明珠,尽管大大小小存在很多问题,但是从拿来主义的角度来看,无论架构设计、可扩展性、完备性、可靠性还是可运维性,都能算得上目前市面上好的选择。这篇文章总结了Ceph 过去10年后端文件系统存储的发展历程及其遇到的相关问题(1)写事务性能瓶颈,传统FileStore先WAL,再写数据存在double write;(2)文件系统meta data性能瓶颈,当单个directory下面的文件非常多的情况下,目前的文件遍历和查找性能下降非常明显;(3)适应New Storage Hardware,从HDD到SSD,再到NVME SSD,再到现在持久性内存AEP,基于内核态的传统文件系统,例如ext4,xfs等早已经'应接不暇';除此之外,还要使用一些传统文件系统可能不太关注的需求,如Copy-on-Write、checksum、EC支持、压缩等,也因为业务需求浮出水面。相比传统文件系统,现代分布式存储后端文件系统面对更多新的业务和硬件形态,也衍生了一些多新的需求。毕竟大家遇到的问题都大同小异,而且99% 的 idea 都是别人已经想到或者没用的,所以非常推荐大家读一读这篇文件,看看Ceph走过的弯路和Ceph的新解决方案BlueStore,相信这篇文章可以为大家设计分布式存储后端文件系统提供参考和帮助。这里简单介绍下Ceph BlueStore的三个基本特性(1) efcient transactions,通过append-only直接操作落盘,先写数据,在改元数据,实现无double-write事务写;(2) fast metadata operations,通过rocksdb持久化meta data解决meta data访问性能问题;(3) support for novel, backward-incompatible storage hardware,用户态,高可扩展的设计,可以适应各种硬件配置。还有更多内容,感兴趣的可以参考论文和相关的BlueStore资料或者源码。
分享这个小栈给你的朋友们,一起进步吧。
• 所有用户可根据关注领域订阅专区或所有专区
• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询
• 专区发布评论属默认订阅所评论专区(除付费小栈外)
- 热门小栈
- 新小栈
- 更多