暗夜行者vs雪域魔王-为你揭开Dynamo分布式存储引擎神秘面纱
Dynamo 是为揭个什么东东呢?他是 Amazon 公司的一个分布式引擎。那么这个什么引擎又是布式什么?
首先,假设一个场景,存储你的引擎网站要存储用户登陆的IP。这个问题怎么解决呢?神秘传统的方法是用。数据库提供了方便的面纱操作接口,复杂的为揭查询能力以及事物的保证。
好,布式暗夜行者vs雪域魔王现在假设大家都很喜欢你的存储网站,访问的人越来越多。一个数据库已经处理不过来了。于是你安装了3台数据库主机,把用户分成了三类(男人,女人,IT人;总是有某种方法把用户分成数目大致差不多的几个部分吧)。
每次访问的时候,先看用户属于哪一类,然后直接访问存储那类用户数据的数据库。于是处理能力增加了三倍。这个时候你已经实现了一个分布式的存储引擎,Dynamo分布式存储引擎就是一个类似的东西。只是它的可靠性,可用性等方面更好一点而已。下面我们看看那个简单的分布式有什么不方便的地方,而Dynamo是如何解决的。
简单分布式系统实现可能存在的问题
先列举一下简单的分布式系统可能存在的问题吧:
1 很难扩容:如果现在业务发展迅速,3台主机撑不住了,需要加到5台主机,那要如何处理呢?首先要更改分类方法,把用户分成5类,然后重新迁移已经存在的数据。你要在网站上贴个条子,“系统维护中”,然后开始伟大的迁移工程,等到终于迁移完成,发现其实3台也不用了,用户都走光了。
2 数据可靠性无法保证:有一天,发现有一台数据库的硬盘坏了,这下麻烦就来了,本来网站就不赚钱,没用什么高档机器,只有一个定期的增量备份而已。经过一天复杂的恢复工作,你还要对部分用户说,麻烦你们把做过的事情再做一遍啊。
3 单点问题:负责把用户分类,然后决定使用哪个数据服务器的那台主机是网站的命根子啊,它如果宕机,所有的数据都不能访问了,它如果满负荷了,增加数据服务器也不会对整体性能有帮助。我好像看到一台贴满着驱邪保平安符咒的pc server。
这几个问题,看似不大,解决起来还真的不容易呢。尤其是想到自己的网站也许有一天也会和google有一样多的用户(可能因为你是天才或者google快倒闭了)。现在我们看看 Dynnamo 是怎么解决的吧。
Dynamo分布式存储引擎虚节点思想解决扩容问题
这个问题实际上是数据分布方式的问题(怎么分组)。最简单最容易想到的就是根据资源数目对数据进行哈希分布,比如算出一个哈希值,然后对资源数取模。这种简单处理的结果就是当资源数变化的时候,每个数据重新取模后,其分布方式都可能变化,从而需要迁移大量的数据。
举个简单的例子来说明一下,假设我的数据是自然数(1-20),资源现在是三台主机(A,B,C),采用取模分配方式,那么分配后A主机的数据为(1,4,7,10,13,16,19),B为(2,5,8,11,14,17,20) C(3,6,9,12,15,18) 现在增加一台主机D,重新分布后的结果是A(1,5,9,13,17) B(2,6,10,14,18) C(3,7,11,15,19) D(4,8,12,15,20) 。
可以看到,有大量的数据需要从一台主机迁移到另外一台主机。这个迁移过程是很消耗性能的。需要找到一种方式来尽可能减少对现存数据的影响(没有影响当然也不可能,那说明新添加的主机没有数据)。
Dynamo 采用的是 consistent hashing 来解决这个问题的。那么我们先来了解一下什么是consistent hashing。先想象一个圆,或者你自己的手表表面,把它看成是一个首尾相接的数轴,现在我们的数据,自然数,已经分布到这个圆上了,我们可以把我们的资源采用某种方式,随机的分布到这个圆上(图1-1)。
(责任编辑:休闲)
-
幻想MMORPR手游《Skypia》武器DIY系统首次公开2020-01-17编辑:网络 近日,IceBird Games首次公开了旗下手游新作,幻想MMORPG ...[详细]
-
《古墓丽影》桌游来了!新作《古墓丽影:真理之影》颁布2024-02-26 09:43:29编辑:Reset 这款桌面角色扮 ...[详细]
-
第一人称动作游戏《范海辛:光明猎手》上架Steam 支持简中
第一人称动作游戏《范海辛:光明猎手》上架Steam 支持简中2024-02-29 10:39:54编辑:Reset 在这个 ...[详细] -
《恶意不息》新4K高清截图分享 4月18日开启抢先体验2024-03-05 10:38:29编辑:Reset 《恶意不息》 ...[详细]
-
双人合作冒险游戏《只只大冒险》5月21日登陆Switch2020-04-24编辑:angle307 游戏中,玩家和伙伴将扮演阿古和茜拉,两个外星机器人将在地球上展 ...[详细]
-
《燧石枪:黎明之围》实机演示颁布 夏季登陆主机/PC平台2024-02-23 11:38:07编辑:Reset 玩家将扮演 ...[详细]
-
《没有被美女包围的三角恋》Steam评论区仅有4人评价 三个是差评
《没有被美女包围的三角恋》Steam评论区仅有4人评价 三个是差评2024-02-26 11:05:22编辑:Reset ...[详细] -
《龙之信条2》游戏总监发文提醒玩家要把稳剧透2024-03-07 09:58:11编辑:Reset 《龙之教条2》的发售日 ...[详细]
-
《三国:全面战争》下一个DLC将加入“南蛮”2020-04-09编辑:angle307 “南蛮”DLC加入更多内容。此外他还提到这一新DLC将会加入一些新的单位类 ...[详细]
-
不畏孤独,心有归处,狼人杀全新角色觉醒暗恋者登场!2024-03-06 13:42:26编辑:Reset 全新觉醒角色—— ...[详细]