存储
文章平均质量分 90
cadem
饿了么北研中心架构组负责人。公众号:dongming_cdm
展开
-
GFS的分布式哲学:HDFS的一致性成就,归功于我的失败……
截取了本人新书《分布式系统与一致性》中的一章,发在dbaplus上,转回到自己的博客。这一章,自认为是非常精彩的一章。很多分布式系统在一致性方面都不是一蹴而就的,即便它非常成功。新书链接https://item.jd.com/12856377.htmlGFS(Google File System)是Google公司开发的一种分布式文件系统。虽然GFS在Google公司内部被广泛使用,但是在相当长的一段时间里它并不为人所知。2003年,Google发表一篇论文[1]详细描述了GFS,人们才开始了.原创 2021-07-05 10:52:40 · 738 阅读 · 0 评论 -
从 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 · 1196 阅读 · 0 评论 -
NoSQL 数据库不应该放弃 Consistency
本文发于infoq,https://www.infoq.cn/article/rhzs0KI2G*Y2r9PMdeNv 。转回自己的博客。谈到 NoSQL,一定会提及一致性(Consistency),按照 CAP 定理,有些 NoSQL 数据库放弃了一致性,但是 NoSQL 放弃是必然的选择吗?从 1970’s,关系型数据库(RDB,Relational Database)被发明以来,关系型数...原创 2019-06-11 14:03:51 · 306 阅读 · 0 评论 -
如何理解Zookeeper的顺序一致性
2017饿了么做异地多活,我的团队承担Zookeeper的异地多活改造。在此期间我听到2种不同的关于一致性的说法。一种说法是Zookeeper是最终一致性,因为由于多副本、以及保证大多数成功的Zab协议,当一个客户端进程写入一个新值,另外一个客户端进程不能保证马上就能读到这个值,但是能保证最终能读取到这个值。另外一种说法是Zookeeper的Zab协议类似于Paxos协议,并且提供了强一致性。每当...原创 2018-05-18 08:47:19 · 7547 阅读 · 25 评论 -
虽然Cassandra不是CP但Cassandra是安全的
之前的一篇文章(<线性一致性(Linearizability)是并发控制的基础>),讨论过具有线性一致性的系统可以很好的控制并发访问。在另外一篇文章里(< Tunable Consistency不能让Cassandra成为CP系统>),已经讨论过,Cassandra不是一个CP系统。所以Cassandra会出现丢失更新的情况(lost write)的情况。那么Cas...原创 2018-04-13 18:50:04 · 610 阅读 · 0 评论 -
从Paxos不违反CAP来解释什么是CAP定理
CAP定理是分布式领域当中非常著名的定理,也是大家津津乐道的一个分布式定理。有些人这么理解CAP定理: 在分布式系统中, - C代表一致性 - A代表可用性, - P代表网络分区。 因为,分布式环境中,P不不可避免的,分布式系统要么选择一致性放弃可用性,要么选择可用性放弃一致性。另外,很多人也这样一个认识: Paxos协议(包括与之类似的Zab协议-zookeeper,Raf...原创 2018-04-13 18:29:31 · 1922 阅读 · 1 评论 -
线性一致性(Linearizability)是并发控制的基础
在我的其他几篇文章里,已经多次提到线性一致性(Linearizability),那么到底线性一致性(Linearizability)是什么?线性一致性(Linearizability)有什么用处?虽然,我们最常提到Linearizability是在讨论分布式系统的时候,但其实Linearizability是一个并发编程(concurrent programming)领域的概念。线性一致性又...原创 2018-04-13 17:52:41 · 5188 阅读 · 2 评论 -
Tunable Consistency不能让Cassandra成为CP系统
Cassandra有一个非常重要的特性,叫做Tunable Consistency。当RW>N时保证副本保持strong consistency,当RW=< N时系统的所有副本保持最终一致性。(关于这个特性可以参看< Cassandra的副本策略>这个文章)在Cassandra的文档中,有这样的一段话:You can tune Cassandra’s consist...原创 2018-04-13 17:23:23 · 757 阅读 · 0 评论 -
Cassandra的副本策略
我们知道Cassandra会将数据写多个副本。但是Cassndra如何将数据写入多个副本的那?这就是Cassandra的副本策略。Cassandra有一个特性叫做Tunable Consistency,用来控制副本策略。我们可以为每个读写操作设置consistency level,也可以设置全局的consistency level。Consistencly Level分为write con...原创 2018-04-13 16:56:10 · 2211 阅读 · 0 评论 -
Kafka的副本复制策略
Kafka会把topic partitions的数据复制到一组server上,当一个Server宕机时可以做自动的故障恢复(automatic failover)。实际是把日志复制到一组机器上,一种基于日志的复制状态机(这里就不讨论这个)。Kafka的每个topic portition的都会有一个leader,并且有0~n个follower。每个follower都会像一个普通的consumer...原创 2018-03-09 19:15:51 · 2762 阅读 · 0 评论 -
存储系统的分类
之前收集了一些存储产品,最近又重新整理了一下,对他们进行了简单的分类。每个对存储的分类可能不仅相同,我的分类完全按照自己的喜好来分,如和您的分类不同,仅供参考。只是做了搜集和分类,少量产品加了写介绍,希望以后有时间,加更多更详细的介绍。原创 2015-09-11 17:56:11 · 4347 阅读 · 0 评论 -
KV存储的对比
最近对各种KV存储进行一个比较,从存储引擎到存储引擎的类型,到单机版的kvstore,再到分布式kvstore集群。存储引擎的类型 类型 全称 btree LSH Log-Structured Hash Table LSM Log-Structured Merge Tree FractalTree 分型树存储引擎 类型 名称 语言 备注原创 2017-05-19 09:20:13 · 4812 阅读 · 0 评论