分布式系统一致性协议里面有一个FLP impossibility的结论,这个结论是说,在分布式系统中,异步网络(消息延迟可能任意大或丢失,消息可能乱序),只要有一个进程失效(进程死亡或者足够长时间不响应),就不可能设计出一个一致性协议。
该结论由Fisher、Lynch、Paterson三位分布式系统领域的科学家在1985年在论文Impossibility of Distributed Consensus with One Faulty Process证明。本文解读了证明过程。
Dynamo论文阅读笔记
NoSQL数据库综述和选型 阅读笔记
前一阵子看到的一篇比较详细的NoSQL数据库的综述 NoSQL Database Systems: A Survey and Decision Guidance,归类梳理了NoSQL数据库,并提供了选型决策树,非常有价值。
LockFree数据结构的内存回收性能测试 阅读笔记
最近在搞性能优化,读了一篇挺有意思的相关论文。
Performance of memory reclamation for lockless synchronization
这篇论文测试了几种LockFree数据结构的内存回收性能和简单的分析。
重新审视Paxos协议的Quorum问题
Flexible Paxos: Quorum intersection revisited 这篇论文重新审视了Paxos中关于Quorum的问题。在Basic Paxos中,要求任何quorum都有交集(通常选择多数派作为quorum)。事实上,这个要求可以放宽到Paxos的两个阶段prepare/accept阶段的quorum有交集即可。文中描述了majority, simple, grid三种quorum system。
Split-Order Hash基本原理
之前阅读论文并实现了一个可扩展的哈希表,已经在生产环境使用。这里简单描述一下思路和一些经验教训,详细的实现可以参见论文。
浅析分布式一致性模型
本文讲述分布式系统的一致性模型
浅析CAP理论
CAP理论是Eric Brewer在2000年前后提出的一个设计上的折中原则,大意是说,一个系统在Consistency、Availability、Partition Tolerance三者之间无法兼顾,必须舍弃一个。CAP理论作为一个设计折中原则,在后面的几年被人误解,因此Eric Brewer在2012年又写了一篇文章,着重解释了CAP的一些误解,一个系统并非一定要预先在CAP中彻底牺牲一个属性,更多的场景下,没有P发生时,CA可以兼得,而在P发生时,可以选择C或A中的一个,并在P结束后恢复。
gdb调试技巧-持续更新
gdb的一些调试技巧,包括打印格式、断点、gdb脚本编写和一些经验。
Raft论文解读
Raft论文解读,本文根据Raft会议论文,参考Raft博士论文,解读了部分内容。Raft跟(Multi)Paxos差别较大,相比Paxos加强了很多约束,尤其是strong leader,直接影响了Raft协议的架构。