首页 > 数据库技术 > 详细

Amazon DynamoDB 设计思想(零)

时间:2014-08-20 12:33:32      阅读:396      评论:0      收藏:0      [点我收藏+]

今天我们来看看DynamoDb的设计思想。


DynamoDB主要是想要达到高可用性(availability),因为CAP理论,所以只能牺牲一致性了,但是会实现最终一致性。另外还想要达到高可扩展性(scalability)这个目标,方便进行水平扩展,也就是说高可用性和高可扩展性是DynamoDB要达到的两个目标,因为是分布式系统,所以需要对待失效处理向对待正常情况一样。


DynamoDB也不例外的利用了一致性哈希(consistent hashing)来对数据进行分区和复制。它的数据一致性是利用对象版本(object versioning)进行实现的。那我们来看看DynamoDB是怎么实现最终一致性的。


DynamoDB实现的最终一致性要解决两个问题,第一个问题是什么时候解决更新冲突,也就是说冲突是在读还是写的时候进行解决。很多数据存储系统是在写的时候进行冲突解决的,在这种情况下,如果所有的数据副本不能达成一致,那么写操作是有可能被拒绝的。而DynamoDB要实现总是可写的(always writable), 所以在读的时候进行冲突解决。


第二个问题是谁来解决更新冲突。可以使数据存储系统也可以是应用来解决冲突。如果是数据存储系统来解决冲突,那么只能使用简单的策略,如最后写有效(last write wins)。这里DynamoDB可以使应用来解决冲突,因为应用知道如何选择正确的数据,即把球踢给了应用。另外,如果应用不想解决冲突,也可以选择让DynamoDB来解决,当然它会采用最后写有效的策略来解决冲突,这样子的设计确实很灵活。


DynamoDB的几个特点:

1 总是可写的。

2 单一管理域中所有的节点都是可信的。

3 不需要层次化的命名。

4 读和写操作在99.9%的情况下都能在百毫秒的级别完成。所以它内部并不是靠多跳路由(multi hop routing),而是靠zero-hop DHT实现的。

原文:http://blog.csdn.net/hongchangfirst/article/details/26818503

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst




Amazon DynamoDB 设计思想(零),布布扣,bubuko.com

Amazon DynamoDB 设计思想(零)

原文:http://blog.csdn.net/hongchangfirst/article/details/26818503

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!