前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据领域里的独行侠-Dynamo风格数据库

大数据领域里的独行侠-Dynamo风格数据库

作者头像
哒呵呵
发布2020-03-13 11:56:37
9210
发布2020-03-13 11:56:37
举报
文章被收录于专栏:鸿的学习笔记鸿的学习笔记

上篇文章聊了下 Hbase ,这篇聊一下 Hbase 的“孪生兄弟”Dynamo风格的数据库,比如 Riak 、Cassandra。在大数据领域混的人大概都知道谷歌发表的 BigTable 的论文,但是对亚马逊的 Dynamo 论文就不太清楚了。当然这也有可能是因为其开源实现 Cassandra 不怎么出名有关。

在历史上,Dynamo: Amazon’s Highly Available Key-value Store是与BigTable那篇论文并驾齐驱的论文,提出了一种非常有创意的架构模式,并且在 2017 年上海举办的 SOSP 会议上获得了SIGOPS名人堂奖,意味着这篇文章对业界造就了非常深远的影响。

回到论文本身,Dynamo 是非常特立独行的论文。在大数据领域里,基本上知名的分布式系统,都选择了中心化模式。所谓中心化模式,就是有一个中心节点负责协调整个集群的活动,或者是有一个主节点负责读入写入,其余节点是读节点。为了可用性,往往在主节点也会做一个备用节点。但是本质是,还是需要一个中心节点。这种模式的好处就是容易实现,极大地降低了系统复杂度,但是缺点就是可用性不是很高,中心化节点一旦宕机了,就会导致整个系统不可用。

因此,Dynamo 在论文里就提到去中心化是 Dynamo 设计的一条重要原则:

Decentralization: An extension of symmetry, the design should favor decentralized peer-to-peer techniques over centralized control. In the past, centralized control has resulted in outages and the goal is to avoid it as much as possible. This leads to a simpler, more scalable, and more available system.

选择了去中心化的话,系统的可用性会得到极大地提升,但是也限制了数据的一致性。一般来说,Dynamo 是一个最终一致性的系统。具体的讨论在这里不展开了,感兴趣的可以看《设计数据密集型应用》一书。

这里聊聊我的感觉,谷歌刚开源 Hadoop 那一套东西时,这是用于内部系统的,而且内部系统的基础设施也会更容易得到维护,主节点不容易出现宕机等各种情况。但是呢,亚马逊做的是云,所谓云的,使用去中心化的模式会极大地提高整个系统的可用性,而不是担心某个节点宕机导致整个云不可用。这样的思想,自然而然就影响了整个的系统设计模式。

另外除了去中心化的模式外,Dynamo 作为一个键值对存储系统,还选择了哈希一致性。BigTable 的 Key 是按照顺序存储的数据,但是Dynamo 是基于哈希做的。技术细节不在此讨论,仅仅谈谈我的感受。 Dynamo 选择了哈希一致性,做了很多很有趣的改进,比如做虚拟节点等等以实现数据增长的自动扩容等问题。缺点也比较明显,比如求某一个范围内的数据时,使用哈希就比较麻烦。

这两个独特的设计在互联网圈是比较独特的,使用这样的去中心化和一致性哈希的数据库还是比较少的,因为优缺点特别明显。换句话说,读这篇文章之前,读者朋友们知道 Riak 、Cassandra 的比例应该不高,在中国的互联网圈应用的也比较少。

毕竟笔者也没真正用过这些数据库,这篇文章仅仅只是针对这篇Dynamo: Amazon’s Highly Available Key-value Store论文的一个简单的讨论。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档