Is Amazon’s Dynamo not DHT ?

Overlay Network (Japanese) | Google グループ

OracleCoherenceIBMのObjectGridは、よく似たクラスタ・ネットワーク上の分散Cacheのシステムです。基本は、Key/Valueマップをネット上に拡大したものです。

これらのクラスタのCache技術は、実装としては、ネットワーク上のHash-Mapで、クラスタボトルネックであるDBの遅さを解消しようとしてメモリ上にキャッシュ・データを置こうというものです。
AmazonDynamoは、ネットワーク上のHash-MapをCacheではなく、データベースそのものにしてしまえというものですので、孤立した技術ではありません。

Teracotta社のTeracottaも、バイト・コードにフックをかけて、あるオブジェクトへのアクセスを、ネットワーク上のpersistentな共有オブジェクトへのアクセスに置き換えます。これも、近い技術です。

>> DHT にも 1-hop DHT という技術があったり...
>> なんてことも、構造化オーバレイ (含 DHT) ファンとしては考えるのですが、

もっとしたたかなのは、GoogleBigtableだと思います。彼らの実装をよく見ると、テーブルを小さなtabletに分割して各ノードに分散するんですが、tabletへの書き込みは、メモリー上のテーブルへの書き込みなんです。メモリー・キャッシュが効いています。ただ、Bigtableでは、ネットワーク上に分散したtabletへのアクセスは、DHTでもハッシュでもなく、i-node風な多段のアドレス・アクセスですね。

いずれにしても、データがpersistentじゃないと、データベースの意味がないので、メモリー上のデータは、いつか、ファイルに落ちないといけないですね。そのあたりでは、BigtableはSSTableというのを使うんですが、分散データベースとしては、いいバランス感覚なのかもしれません。

SunのGlassfishというAppサーバのクラスタリングは、JXTAのGroup機能を使っています。これなんかも、意外というか、面白い話ですね。ただ、これも、クラスタのスケールが、せいぜい 10^2 とか 10^3 の程度だからだと思っています。

ただ、こうしたJXTAの使い方よりも、分散DBを分散ハッシュで実現しようというのは、王道ですね。DHTにとっては、新しい応用の展望が開けて、また理論も進むんだと思っています。

知見に富んだ議論。