1. ROMA R akuten O n- M emory A rchitecture 楽天株式会社 楽天技術研究所 西澤無我| 2009年2月20日
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Notas del editor
ROMA は P2P で自律的に複数のノードを管理。さらに、環状にノードを並べて管理している。 各ノードはユニークなハッシュ値をもつ
ROMA ではデータの探索をクライアントが行う。 クライアントが ROMA に初めてアクセスした際、 ROMA から環情報を取得する。 この環の情報を利用して、 key の担当ノードを探索する。 このようなことができるのは、 ROMA を構成するノード数が、高々 1,000 台程度だからです。
ROMA ではデータの探索をクライアントが行う。 クライアントが ROMA に初めてアクセスした際、 ROMA から環情報を取得する。 この環の情報を利用して、 key の担当ノードを探索する。 このようなことができるのは、 ROMA を構成するノード数が、高々 1,000 台程度だからです。
その ROMA のハッシュテーブル(というか key-value store) 上のデータへアクセスする API を提供している。 アプリケーション開発者はこの ROMA クライアント API を利用することで、分散を意識せずに済む。 ROMA へデータを格納すると、実際には複数マシンのメモリ上にデータが格納される。
ROMA ではデータが格納されるノードの両隣のノードにそのデータの複製が格納される。 この左右のノードはハッシュ値こそ近いが、物理的には近い場所というわけではない。 現時点ではそこまで考慮した実装ではないが、 DC にまたがっていることも考えられる。
同じデータの複製がある中で、基本的に単一のノードのみが、そのデータの PUT/GET を引き受ける
先ほどの例では、マスターのダウンをクライアントのアクセスがある前に ROMA が気づけた場合の規則 しかし、運悪く ROMA がノードのダウンに気づく前に、クライアントがそのノードにアクセスしてくる場合がある そのような場合は、ROMA はとりあえずダーティフラグ付きのデータをクライアントに返す