Amazon Dynamo架构分析(一)



Amazon Dynamo 是一个经典的分布式Key-Value 存储系统,具备去中心化,高可用性,高扩展性的特点,但是为了达到这个目标在很多场景中牺牲了一致性。Dynamo在Amazon中得到了成功的应用,能够跨数据中心部署于上万个结点上提供服务,它的设计思想也被后续的许多分布式系统借鉴。如近来火热的Cassandra,实际上就是基本照搬了Dynamo的P2P架构,同时融合了BigTable的数据模型及存储算法。


Dynamo组合使用了多种P2P技术,下面就从最基本的DHT(Distributed Hash Table)说起。


DHT,一致性哈希

Dynamo的存储模型就是一个简单的Key-Value映射表,如何把这个表分散到大量结点上呢,简单的做法可以是hash(key)%node_number,但是这样结点数目变动的时候就需要改变所有结点上的数据分布,这对上百万个结点,可能需要频繁添加删除结点,经常出现结点失效的系统来说,是无法承受的。因此,需要一种算法,使得在系统中结点变化只是,尽量减少数据迁移的开销,Dynamo采用的就是著名的一致性哈希算法,如图



给定一个hash值空间,[0~2^32),假设分布在一个圆环上,对每个结点算出一个固定hash值,将结点置于环上,将Key K算出h

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值