深入研究Cassandra后重读Dynamo.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深入研究Cassandra后重读Dynamo

深入研究Cassandra 后 重读Dynamo Paper 2010 年7 月 Schubert Zhang 重新认真地研读了Dynamo Paper ,读的很慢,足足花了一个星期的时间。与上次读该Paper 不同,这次带着Cassandra 的实现来理解它。但最终得出了负面的结论:不认为Dynamo 的 架构是个好架构,在大规模的生产系统中,这个架构引入了太多复杂性和设计原则矛盾。或 者说Dynamo 的架构对于存储大规模的数据是不合适的。 Cassandra 社区目前还非常活跃,但通过一段时间对Cassandra 的研究、使用和理解,感 觉Dynamo 的架构约束在Cassandra 中也带来了不少问题,而为解决这些问题引入的复杂性 和维护性问题也开始突出。随着多个曾经选择Cassandra 的公司(Twitter、Flowdock 、Facebook 的rumor ,Digg 和Reddit 虽然仍在按计划倚重Cassandra,但估计难逃失败)宣布 “暂时” 离开Cassandra,我们也要重新基于我们自己的理解来审视这个架构。 记得同样出自Facebook 的Joydeep Sen Sarma (Hive 的作者之一) 曾经写过一篇blog : Dynamo: A flawed architecture 挑Dynamo 的毛病,以前没有仔细看,重新读一读发现他的评 论似乎有点吹毛求疵,啥问题也没讲清楚,没有太多参考价值。但我认为Dynamo 的架构缺 陷确实是存在的:用这种Consistency Hash 的环状拓扑来做存储系统,特别是大规模(每个节 点存储数百GB、数TB 甚至数十TB)存储系统,是不合适的。要想真的弄清楚问题,还是 要结合Cassandra 来仔细读一读Dynamo 的Paper 。 下面就个人理解,对一些问题进行粗略的讨论。 1. 采用consistent hashing 实现数据partitioning 带来的问题,Scalability 问题。 分布式存储系统必然要把数据partition/distribute 到不同的节点上存储,4.2 节和图2 描 述了基于consistent hashing 的partitioning algorithm ,那是一个类似Chord 的hash ranges 组成的ring 。但这种相对刚性的hash partitioning 方法,在节点加入、节点故障和balancing 等方面的处理是相当复杂的。 (1) 首先,设计原则中节点的动态对ring 中其他节点的影响最小的原则将被打破。 在4.2节中有这样的原则描述“The principle advantage of consistent hashing is that departure or arrival of a node only affects its immediate neighbors and other nodes remain unaffected. ”但为了 balancing和节点的能力异构的支持,打破了这个原则:“To address these issues, Dynamo uses a variant of consistent hashing (similar to the one used in [10, 20]): instead of mapping a node to a single point in the circle, each node gets assigned to multiple points in the ring. To this end, Dynamo uses the concept of “virtual nodes”. A virtual node looks like a single node in the system, but each node can be responsible for more than one virtual node. Effectively, when a new node is added to th

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档