-
CoralCDNの中で提案されている
-
Distributed Sloppy Hash Table
-
DHTの一つ
-
Coralでは,同じキーの下に複数の値が保存されることがある
-
各Coralノードはクラスタを形成する
- 各クラスタはRTTの直径で結ばれる
- 上位の高速クラスタに先に問い合わせる
-
Method
- Put(key, val, ttl, *levels)
- 値をセット.TTL(Time-to-live)を設定する.
- Get(key, *levels)
- 値を取得
- Nodes
- Levelで指定されたノードのクラスタに属する隣人数を返す.
- Levels
- レベルとRTT閾値を返す
- Put(key, val, ttl, *levels)
-
単順にDHTにデータを保存するのは無駄なストレージと帯域幅が浪費されてしまうので,Kademliaを拡張 1. - KademliaはIDがキーに最も近いノードに値を格納しようとする. - XOR距離に基づく - 既にデータを持っているかもしれない遠いノードを無視し,最も近いノードがデータを欲しているかどうかに関わらず格納しようとする - 結果,ストレージと帯域が無駄に消費される - 代わりに,ポインタ(実際にデータを持ってるノードのアドレス)を保持することで効率化を図る 2. - 地域と規模によって階層化されたクラスタを作ることで,近いノードから探索を始めて低レイテンシーを実現