2010/08/05

Summary of "Amazon's Dynamo" for the 2nd nosql summer reading in Tokyo

第2回目の"nosql summer reading in Tokyo"では、"Eventual Consistency(結果整合性)"を提起したことで有名な、"Amazon's Dynamo"の論文を題材に読書会を開催しました。

この論文以前には、分散環境において複数のノードにレプリカ(複製)されたデータの一貫性(Consistency)を保つことは当然のことと考えられており、先に発表されたGoogleの"Big Table"は、"Strong Consistency(強い一貫性)"が前提となっています。

しかし、その1年後に発表されたAmazonの"Dynamo"は、すべてのアプリケーションが必ずしもデータの一貫性(Consistency)を求めている訳ではないという前提で開発され、そのトレードオフとして、遅延(Latency)が少ないというメリットを得ています。

この論文においては、他にも多くの分散環境に適切に対応する方法が提示されており、そのひとつに"Consistent Hashing"があります。これは、ハッシュ関数を用いて分散化されたノードに、偏りなく、均等にデータを格納するというものです。

なお、Hibariは、"Chain Replication"により"Strong Consistency(強い一貫性)を提供するという点ではDynamoとは異なりますが、この"Consistent Hashing"が実装されています。