April 3, 2017
Paxos
Reconfiguring a State Machine这篇论文主要讲解成员组reconfigure,即成员变更。发表时间还是2010年,相比Paxos原始论文的发表时间已经过去20年了。本博文先解读这篇论文,Raft做成员变更的方案后面另文阐述。
Reconfiguration是指在分布 ...
Read more
March 10, 2017
DistributedSystem
分布式系统一致性协议里面有一个FLP impossibility的结论,这个结论是说,在分布式系统中,异步网络(消息延迟可能任意大或丢失,消息可能乱序),只要有一个进程失效(进程死亡或者足够长时间不响应),就不可能设计出一个确定性的一致性协议。
该结论由Fisher、Lynch、Paters ...
Read more
March 10, 2017
Paxos
引言这是2013年SOSP的会议论文,讲述了一个leaderless的一致性协议EPaxos。不得不说的是,这篇论文写的实在是难读,一方面协议确实比Multi Paxos协议复杂很多,另一方面是行文上有些地方不通顺。我看的资料是会议论文和两个版本的EPaxos证明的技术报告。会议论文简洁但是 ...
Read more
March 10, 2017
Paxos
不知怎么地,前一阵子知乎上对Raft的乱序的问题的讨论就变多了。我觉得其实这个问题可讨论的东西并不多。
Raft作者觉得Multi Paxos太复杂,所以搞了一个Raft。Raft加了很多约束,其中可能最重要的一条就是只能顺序commit。
所以,顺序commit的锅,Raft是得好好背着, ...
Read more
February 10, 2017
Database
Dynamo: Amazon’s Highly Available Key-value Store
Dynamo这篇论文是2007年出来的,以前读研究生的时候读过,前两天看了一篇NoSQL综述提到了这篇论文,今天重读一遍,简单做些笔记,里面有些东西还只是简单看了下不够深入。
Dynamo系统 ...
Read more
February 10, 2017
Paxos
Flexible Paxos: Quorum intersection revisited 这篇论文重新审视了Paxos中关于Quorum的问题。在Basic Paxos中,要求任何quorum都有交集(通常选择多数派作为quorum)。事实上,这个要求可以放宽到Paxos的两个阶段prep ...
Read more
February 10, 2017
Programming
Gdb是linux下C/C++代码调试神器,本文综合了一些比较好的国内外博客,加上我自己的一些使用经验,希望能对读者有用。
使用gdb前,代码要用gcc -g选项编译以带上符号表。
调试C++程序的基本环境设置1234567set print pretty onset print ...
Read more
February 9, 2017
Database
这篇文章介绍的面很广,提到了诸多系统,不过每个点都不太细。另外虽然是16年的文章,但不知道为啥还是感觉有点陈旧了。。。简单来说,当个手册看吧,遇到具体细节问题,可以找文中提到的具体系统参考下。这里捡我感兴趣的点罗列了一下,详细内容读者可以看原文。
DBMS简史1968年第一个DBMS上线,I ...
Read more
February 8, 2017
Database
前一阵子看到的一篇比较详细的NoSQL数据库的综述 NoSQL Database Systems: A Survey and Decision Guidance,归类梳理了NoSQL数据库,并提供了选型决策树,非常有价值。仔细阅读了下,发现好多NoSQL系统连名字都没听过,汗。文中图片点击可 ...
Read more
December 10, 2016
DistributedSystem
CAP理论是Eric Brewer在2000年前后提出的一个设计上的折中原则,大意是说,一个系统在Consistency、Availability、Partition Tolerance三者之间无法兼顾,必须舍弃一个。
Eric Brewer是加州大学伯克利分校的教授,同时是Inktomi( ...
Read more