させて、
D = {1,...,d_i,...,d} denote the data items and d_i a given data element
N = {1,...,n_k,...,n} denote the storage cluster and n_k a given storage node.
We say d_i is stored by n_k, loosely denoted by d_i \in n_k.
私のレプリケーションモデルには、次の前提があります。
1-すべてのデータ項目は、初期化中に少なくとも1つの特定のノードに格納する必要があります。すなわち:
Exist at least one 1 <= k <=n s.t. P(d_i \in n_k) = 1.
2-(1)から、初期化時に、d_iが特定のノードに存在する確率は少なくとも1/nです。すなわち:
For any data item 1 <= i <= d and a random node n, P(d_i \in n) >= 1/n.
問題の記述を考えると、設計上、この分布をデータセット全体で均一にする必要があります。
3-最後に、設計上、データ項目d_iが特定のノードnに存在する確率は、データ項目間で独立している必要があります。すなわち:
P(d_i \in n | d_j \in n) = P(d_i \in n)
これは、ノード障害の確率が隣接ノード間で独立しているとは想定していないためです(たとえば、データセンターでは、隣接ノードが同じネットワークスイッチを共有しているなど)。
これらの仮定から、次のレプリケーションモデルを提案しました(d = nであり、各ノードが正確に3つの異なるデータ項目を格納する問題インスタンスの場合)。
(1)データセットのランダム置換を実行します。(2)長さ3およびストライド1のスライディングウィンドウを使用して、シャッフルされたデータセット上で回転し、データ項目を各ノードにマップします。
E.g.:
D = {A,B,C,D}
N = {1,2,3,4}
(1) {C, B, A, D}
(2) 1 -> {C, B, A}, 2 -> {B, A, D}, 3-> {A, D, C}, 4-> {D, C, B}
ランダムシャッフルにより、独立(3)および均一な分布(2)が保証されます。ストライド1のスライディングウィンドウは(1)を保証します。
与えられたノードn_kのスライディングウィンドウを順序集合w_k={w_k1、w_k2、w_k3}として示しましょう。n_kは、w_k1(w_kの最初の要素)のマスターノードであると言われます。w_k1を含む他のノードn_jは、レプリカノードです。注意:提案されたレプリケーションモデルは、任意のd_iに対して1つのマスターノードのみを保証しますが、レプリカノードの数はウィンドウの長さに依存します。
上記の例では、n_1はCのマスターノードであり、n_3とn_4のレプリカノードです。
元の問題に戻ると、このスキーマが与えられると、データが失われる可能性は、特定のデータ項目のマスターノードとすべてのレプリカが失われることであると言えます。
P(d_iが失われました)= P(d_iのマスターノードが失敗し、レプリカ1が失敗し、レプリカ2が失敗します)。
正式な証明がない場合、上記のステップ(1)の偏りのないランダム順列は次のようになります。
P(d_iが失われる)= P(d_iのマスターノードが失敗する)* P(レプリカ1が失敗する)* P(レプリカ2が失敗する)。
繰り返しますが、ランダム順列は、ノード障害の同時分布を抽象化するためのヒューリスティックです。
仮定(2)および(3)から、初期化時に、任意のd_iに対してP(d_iが失われます)=cになります。
つまり、d = n = 1000で、レプリケーション係数が3(つまり、ウィンドウの長さが3に等しい)の場合です。
P(d_iが失われる)= 1/1000 * 1/999 * 1 / 998〜10 ^ -9