Dynamo是Amazon的分布式 key-value store。

一个关键性技术就是DHT(分布式哈希表),用来处理动态增删节点的问题。一个大的hash表,上面一个散落着若干节点。每次一个key,先做一个hash,然后从这个位置开始,往下找到第一个节点。该节点对应的server就是负责处理这个key的。也就是说,每个节点负责hash环上的一段数据。

如下图所示:当删除了B,那么原来被B管理的数据都被C管理了。这样只需要挪动一小部分数据即可。不需要更改所有的节点。这样最大程度减少了数据迁移。