EPaxos协议解读

EPaxos协议解读

本篇博文主要描述了EPaxos command commit的过程,并且解释了为什么fast quorum的值如此奇怪。
相比Multi Paxos和Raft,EPaxos有着自己的优势,但是缺点也非常明显,EPaxos协议非常复杂,接口行为也不见得适应现在的软件栈,比如commit和execution的阶段划分更加的明确,execution逻辑很复杂,读取操作也很复杂。我个人认为EPaxos协议的一些想法还是比较有意思的,但是不太适合生产场合使用,毕竟能实现一个高效正确的Multi Paxos协议已属不易,而且EPaxos协议虽然吞吐量能有比较大的提高,但是容易发现协议中各种操作真正在实现时,会出现大量非常耗费CPU的代码,整体性能能提高到多少,我想并不太乐观。

RUM Conjecture

RUM Conjecture
《Designing Access Methods: The RUM Conjecture》 这篇论文从读、写、存储空间开销角度总结了access method设计,并提出了一个RUM猜想,认为针对其中两个开销优化,则会导致第三个优化困难。 就RUM猜想本身的可信程度而言,我个人觉得一般,不过这种三角可视化的总结非常有趣,可以一读。   What is RUM Conjecture 作者总结了Access Method的一些trade off,审视了RUM三种开销:R是read overhead,...

FLP impossibility证明 阅读笔记

FLP impossibility证明 阅读笔记

分布式系统一致性协议里面有一个FLP impossibility的结论,这个结论是说,在分布式系统中,异步网络(消息延迟可能任意大或丢失,消息可能乱序),只要有一个进程失效(进程死亡或者足够长时间不响应),就不可能设计出一个一致性协议。
该结论由Fisher、Lynch、Paterson三位分布式系统领域的科学家在1985年在论文Impossibility of Distributed Consensus with One Faulty Process证明。本文解读了证明过程。

关于事务的一点琐碎思考

关于事务的一点琐碎思考
最近又零散地看了一些mvcc/snapshot的东西,有了一些新的理解和观点,记录一下,内容比较碎,不一定正确,欢迎大家讨论拍砖。 在某些实现下,2PC会影响MVCC ? MVCC相比lock-based的并发控制,可以使得写不阻塞读。不过如果如果使用基于时间戳的行级多版本,在有分布式事务时,有可能遇到类似于下面的问题:2PC中参与者prepare之后收到协调者的commit/abort通知之前是未决的状态,该参与者不知道事务是提交...

Anna KVS中的Lattice是什么?

Anna KVS中的Lattice是什么?

Anna KVS官网对Anna的特性总结得非常到位:1. Crazy Fast, 2. Super-Scalable, 3. Flexibly Consistent。这里只关注Flexibly Consistent这一项,讲讲Anna是怎么实现灵活的consistency的。这篇博客算是论文导读,详细内容读者仍要仔细阅读论文原文 Anna: A KVS For Any Scale。
Lattice是什么,基于格怎么实现灵活的多种一致性,漫谈Consistency和Isolation Level。

重新审视Paxos协议的Quorum问题

重新审视Paxos协议的Quorum问题

Flexible Paxos: Quorum intersection revisited 这篇论文重新审视了Paxos中关于Quorum的问题。在Basic Paxos中,要求任何quorum都有交集(通常选择多数派作为quorum)。事实上,这个要求可以放宽到Paxos的两个阶段prepare/accept阶段的quorum有交集即可。文中描述了majority, simple, grid三种quorum system。

Google Spanner论文解读

Google Spanner论文解读

Google Spanner是google在2012年公开的存储系统,它的最大特点就是数据分布在全球范围内,支持外部一致性的分布式事务。本文依据论文解读了该系统的设计和实现。