并发
cadem
饿了么北研中心架构组负责人。公众号:dongming_cdm
展开
-
本人新书上市 《分布式系统与一致性》
好长时间没有写文章了,主要是在写一本书,书名《分布式系统与一致性》。之前写过一些分布式技术和分布式一致性的文章,但是没有系统性,所以萌生了写一本书系统讲解一下这个领域。本书通过GFS、HDFS、Google BigTable、MongoDB、RabbitMQ、Zookeeper、Google Spanner、CockroachDB这些实际的分布式系统,讲述Paxos、Raft、Zab这些分布式算法,并且基于这些实例和算法讲述分布式一致性。列举一下本书的目录,公大家参考,希望本书对大家有益。1部分 开 篇原创 2021-06-07 11:36:26 · 421 阅读 · 1 评论 -
从 GFS 失败的架构设计来看一致性的重要性
(本文最初发于https://mp.weixin.qq.com/s/GuJ6VqZJy3ONaVOWvQT9kg,现转回到自己的博客。)GFS(Google File System)是Google公司开发的一款分布式文件系统。在2003年,Google发表一篇论文详细描述了GFS的架构。GFS,MapReduce,Bigtable并称为Google的三架马车,推动了Google的高速发展。其他互...原创 2019-10-14 13:32:57 · 1191 阅读 · 0 评论 -
RabbitMQ主备复制是异步还是同步?
我们知道RabbitMQ可以配置成Queue做主从复制(按照官方的说法叫配置mirror queue),对master queue的写操作会被复制到其他slave上去(也就是复制到mirror queue上去)。这对rabbitmq的这个特性,有些人会问这样的问题,rabbitmq的主从复制是同步的还是异步的?为什么有些人会问这个问题那?原创 2017-04-01 21:04:44 · 8317 阅读 · 0 评论 -
线性一致性(Linearizability)是并发控制的基础
在我的其他几篇文章里,已经多次提到线性一致性(Linearizability),那么到底线性一致性(Linearizability)是什么?线性一致性(Linearizability)有什么用处?虽然,我们最常提到Linearizability是在讨论分布式系统的时候,但其实Linearizability是一个并发编程(concurrent programming)领域的概念。线性一致性又...原创 2018-04-13 17:52:41 · 5176 阅读 · 2 评论 -
虽然Cassandra不是CP但Cassandra是安全的
之前的一篇文章(<线性一致性(Linearizability)是并发控制的基础>),讨论过具有线性一致性的系统可以很好的控制并发访问。在另外一篇文章里(< Tunable Consistency不能让Cassandra成为CP系统>),已经讨论过,Cassandra不是一个CP系统。所以Cassandra会出现丢失更新的情况(lost write)的情况。那么Cas...原创 2018-04-13 18:50:04 · 608 阅读 · 0 评论 -
如何理解Zookeeper的顺序一致性
2017饿了么做异地多活,我的团队承担Zookeeper的异地多活改造。在此期间我听到2种不同的关于一致性的说法。一种说法是Zookeeper是最终一致性,因为由于多副本、以及保证大多数成功的Zab协议,当一个客户端进程写入一个新值,另外一个客户端进程不能保证马上就能读到这个值,但是能保证最终能读取到这个值。另外一种说法是Zookeeper的Zab协议类似于Paxos协议,并且提供了强一致性。每当...原创 2018-05-18 08:47:19 · 7532 阅读 · 25 评论