Amazon Dynamo的论文做为NoSQL的分布式模型论文中的白皮书,必然也是阅读的第一篇文章,当时读完后对最终一致性,quorum-like以及hinted handoff的概念和去中心化的存储设计有一些记忆外加简单的理解,最近又读了一些有关这个最初模型的文章,大致记录一下。

Dynamo设计的几个原则:

数据分区分布采用一致性哈希(consistent hashing)算法,并结合虚拟节点的思想(virtual nodes)来抑制数据分布存在的不均匀性。

备份之间的不一致采用向量时钟(vector clock)进行冲突解决与合并。

存储过程中采用quorum-like机制,使得R + W > N来保持一致性,如果出现节点失效,采用hinted handoff策略。

当节点加入或者离开Dynamo,数据之间的校验采用merkle tree。

阅读全文…