JP7015848B2 - ディストリビューテッド・ストレージ・ネットワーク - Google Patents
ディストリビューテッド・ストレージ・ネットワーク Download PDFInfo
- Publication number
- JP7015848B2 JP7015848B2 JP2019565516A JP2019565516A JP7015848B2 JP 7015848 B2 JP7015848 B2 JP 7015848B2 JP 2019565516 A JP2019565516 A JP 2019565516A JP 2019565516 A JP2019565516 A JP 2019565516A JP 7015848 B2 JP7015848 B2 JP 7015848B2
- Authority
- JP
- Japan
- Prior art keywords
- slice
- units
- computing device
- slice name
- eds
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Correction Of Errors (AREA)
- Computer And Data Communications (AREA)
Description
前記処理モジュールは、前記操作命令に基づいて前記コンピューティング・デバイス内で動作可能なとき、
要求中のコンピューティング・デバイスから、前記DSNを介して、データ・オブジェクトを複数のディストリビューテッド・ストレージ(DS)ユニット内に格納する要求を受け取ることと、
前記データ・オブジェクトと関連したソース名、前記ソース名についての第1の値、及び提案試行識別子を含む提案メッセージを生成することと、
前記提案メッセージを前記複数のDSユニットに伝送することと、
前記提案メッセージに応答して、前記複数のDSユニットから閾値数の提案メッセージ応答を受け取ることであって、前記閾値数の提案メッセージ応答のうちの1つの提案メッセージ応答は、前記複数のDSユニットのうちの1つのDSユニットから受け取られ、前記DSユニットにより直近に受理された、前記ソース名についての第2の値に対応し、前記複数のDSユニットのうちの前記DSユニットが他のいずれかの提案メッセージを受け取ったかどうかをさらに示す、受け取ることと、
前記複数のDSユニットのうちの前記DSユニットから受け取った前記閾値数の提案メッセージ応答のうちの前記提案メッセージ応答が、前記複数のDSユニットのうちの前記DSユニットにより他の提案メッセージを受け取っていないことを示すとき、前記提案メッセージ内に含まれる前記ソース名についての前記第1の値を、前記ソース名についての永続値として採用し、前記ソース名についての前記永続値を前記要求中のコンピューティング・デバイスに通知することと、
前記複数のDSユニットのうちの前記DSユニットから受け取った前記閾値数の提案メッセージ応答のうちの前記提案メッセージ応答が、前記複数のDSユニットのうちの前記DSユニットにより、少なくとも1つの他の提案メッセージを受け取っていることを示すとき、前記複数のDSユニットからの前記閾値数の提案メッセージ応答に基づいて、前記ソース名についての第3の値を、前記ソース名についての前記永続値として採用し、前記ソース名についての前記永続値を前記要求中のコンピューティング・デバイスに通知することと、を行うように構成される。
DSNメモリ22は、地理的に異なる場所(例えば、1つはシカゴ、1つはミルウォーキー等)に、共通の場所に、又はその組み合わせで配置することができる複数のストレージ・ユニット36を含む。例えば、DSNメモリ22が8個のストレージ・ユニット36を含む場合、各ストレージ・ユニットは、異なる場所に配置される。別の例として、DSNメモリ22が8個のストレージ・ユニット36を含む場合、8個のストレージ・ユニット全てが同じ場所に配置される。さらに別の例として、DSNメモリ22が8個のストレージ・ユニット36を含む場合、第1の対のストレージ・ユニットは第1の共通の場所にあり、第2の対のストレージ・ユニットは第2の共通の場所にあり、第3の対のストレージ・ユニットは第3の共通の場所にあり、第4の対のストレージ・ユニットは第4の共通の場所にある。DSNメモリ22は、8個より多い又は少ないストレージ・ユニット36を含み得ることに留意されたい。さらに、各々のストレージ・ユニット36は、コンピューティング・コア(図2又はそのコンポーネントに示されるような)と、分散エラー符号化データを格納するための複数のメモリ・デバイスとを含むことに留意されたい。
(1)読取者は、成功裡に書き込まれた、すなわち、システムにより「受理された」値のみを戻すことができる(非自明性)。多くとも1つの受理された値があることができ、そこで、受理された値は、所定のリビジョンのための提案された後継者(successor)である(安全性);
(2)全てのクライアントは、受理された値が何であるかについての決定的な最終合意を行うことができる(一貫性);
(3)成功した書き込みの後に開始された読み取りは、常に、その書き込み又はより新しい書き込みを見る(即時性、線形化可能性(linearizability)とも呼ばれる);
(4)Compare and Swap操作は、完全に失敗するか又は完全に成功するかのいずれかである(アトミック性)。
Compare and Swapアルゴリズム(書き込み/更新/削除)
書込者:
書込者は、txid、リビジョン、データを各ストアに書き込む。ストアは、同じ契約を順守し、バロット内のあらゆるテーブルについて、どのラウンドがアクティブであるかも含むことを除き、fast-casnにおいて概説された同じバロットを返す。
write(source_name, data, proposed_revision,txid, current_round, stores[],
to_rebuild, current_revision):
for i in stores.size:
//最適化:if(current_round == 0)の場合(又は、他の誰かを再構築するとき)
slice = current_round == 0 || i in to_rebuild ? get_slice(data, i) :null
ballots[i] = write(current_revision, current_round, store[i], (txid,
proposed_revision, slice)) to all W stores.
//幾つのバロットが現在のラウンドについての首位のtxidとしてのtxidを含むかを判断する
success_count = count_my_successes(ballots, current_round)
if success_count >= Threshold.WRITE:
//我々は、current_revisionを更新するために勝利した
finalize()
return Operation.SUCCESS;
else if (count_max_successes(ballots, current_round) >=Threshold.WRITE)
or contains_finalized_slice(ballots):
//この更新のために他の誰かが我々を打ち負かした、我々のスライスを除去することが安全であるとストアに伝える
withdraw_writes()
//最適化:バロットから判断できる場合、新しいデータ又はリビジョンが何であるかのヒントを与えることができる
return Operation.RETRIABLE_FAILURE
else:
//この更新のために、我々も他の誰かも決定的には勝利していない
(競合がある)
//最初に、少なくともThreshold.WRITEの成功を有するものとして決定的に除外することはできないトランザクションのセットを判断する
potential_winners = potentially_at_wt(ballots, current_round)
if potential_winners.size() == 0:
//誰もこのラウンドにおいて書き込み閾値に達することはできなかった、我々は進行するためのリーダーを決定する必要がある
excluded_candidates = [] //まだ誰も排斥されていない
leader = sloppy_leader_election(ballots, current_round,
excluded_candidates)
while leader is all inactive and below Threshold.IDA:
excluded_leaders.append(leader)
leader = sloppy_leader_election(ballots, current_round,
excluded_leaders)
//定義上、我々はアクティブなリーダーを有する(誰もいない場合、我々は依然としてアクティブである)
else if potential_winners.size() == 1:
leader = potential_winner[0] // この潜在的な勝者は、リーダー選出もすれば勝利したであろう
won the leader election
else if potential_winners.size() > 1:
//彼らが失敗したストア上で勝利した可能性があるので、我々は、これらのいずれも勝者にすることはできない
//これは、if f > min(W - WT, WT - T)の場合にのみ生じ得る
return Operation.FAILURE;
if leader == txid:
//我々はリーダーであり、次のラウンドに入る
write(data, proposed_revision, txid, (current_round + 1), stores[],{},
current_revision)
else:
//他の誰かがリーダーである
leader_successes = count_leader_successes(ballots, current_round,
leader)
if is_inactive(leader):
if (leader_successes < Threshold.IDA):
withdraw_writes()
//潜在的な勝者は、Tより下である(再構築不能)
//これは、if f > min(W - WT, WT - T)の場合にのみ生じ得る
return Operation.FAILURE;
else:
withdraw_writes()
if (leader_successes < Threshold.WRITE):
//リーダーのデータを再構築する、それらは、Threshold.IDAより上であるが、Threshold.WRITEより下である
//リーダーを有さないストアを得る
to_rebuild = {i for i in ballots.size if not
has_leader-revision(ballots[i])}
else:
//何も再構築する必要はない
to_rebuild = {}
write(leader-data, leader-revision, leader-txid, leader_round + 1,
stores[], to_rebuild, current_revision)
else:
//リーダーはアクティブである
withdraw_writes()
write(data, proposed_revision, txid, current_round /* notcurrent_round
+ 1 !!! */, stores[], {}, current_revision)
potentially_at_wt(ballots, current_round):
return all candidates whose first place votes + num_failures >=WT
/***
* 次のラウンドに進むことができる単一の候補のリーダーを返す(リーダーが誰であるかについて幾つかのクライアントが同意しないことがある分割がある場合)
*/
sloppy_leader_election(ballots, current_round, excluded_leaders):
valid_candidates = remove_excluded_leaders(ballots, current_round,
excluded_leaders)
m = get_max_first_places_in_round(ballots, current_round,
valid_candidates)
potential_leaders = {c in valid_candidates(ballots) | num_first_places(c)
== m}
return potential_leader having the highest txid
読み取り
読取者:
書込者に非常に類似している:
read():
ballots = 読取者は、最初に、単にTのslicestorsを読み取ることができる
if 少なくとも1つのファイナライズされたスライスを有するリビジョンのTのスライスの場合:
rerutn そのリビジョン
else:
WTを達成したソースがあるまで、又はどのソースもWTを達成できなくなるまで、さらに読み取り、次いで再実行する
if WTを達成するリビジョンがある場合:
それが少なくともアクティブでないWTである場合、それを返し、そうでない場合、単に再試行する
else:
if 失敗がワイルドカードであり、どのリビジョンもWTを達成したことがあり得ない場合:
前のリビジョンにフォールバックすることができる
else:
leader = sloppy_leader_election(ballots, current_round)
if all_inactive(leader)及びリーダーがWT(失敗を有する)の唯一の可能な達成者であり、リーダーがTより上である場合:
それをWTに再構築する
else:
再試行する
アルゴリズム特性
fは、失敗したストアの数とする
書込者の進行を、成功、競争者の勝利による失敗、又は競争者が協働する場合に成功する再試行と定める
クレーム1:f<=min(WT-T,W-WT)である限り、書込者は常に進行する
利用可能なWTストアより少ない場合、書込者は、明らかに成功することはできず、従って、f<=W-WTである
Aは、競争する書込者とし、首位の投票の数Aが達成されたとする。a+f<WTの場合、我々は、アルゴリズムに記述されるように新しいラウンドを安全にオープンすることができる。そうでない場合、a+f>=WTである。a>=Tの場合、我々は、単にそのリビジョンを回復することができ、我々の書き込みは失敗する。次に、a=T-1と仮定する。我々は、AがWTを達成するのは不可能であるようになることを好む。つまり、我々は:
(W - (T - 1)) - x < WT - (T - 1)となるX個の「非A」を必要とする(A-Xにおいて勝利していないストアは、AがWTを達成するために必要な残りの勝利の量より少ないことが必要である)
=>
x > W - WT
次いで、必要な「非A」の最小数は、x = W - WT + 1である
次いで、最大のfは次のとおりとすることができる
f <= (W - (T - 1)) - X (A-num個の「非A」をまだ受理していないnum個のストアが必要)
f <= (W - (T - 1)) - (W - WT + 1)
f <= WT - T
s >= 3f + 1 (or W >= 4f + 1)
10:分散又はディストリビューテッド・ストレージ・ネットワーク(DSN)
12~16、A、B、C:コンピューティング・デバイス
18:管理ユニット
20:完全性処理ユニット
22:DSNメモリ
24:ネットワーク
26:コンピューティング・コア
30~33:ネットワーク・インターフェース
34:クライアント・モジュール
36:ストレージ・ユニット
40:データ・オブジェクト
50:処理モジュール
52:メモリ・コントローラ
54:メイン・メモリ
55:ビデオ・グラフィック処理ユニット
56:入力/出力(IO)コントローラ
58:周辺コンポーネント相互接続(PCI)インターフェース
60:IOインターフェース・モジュール
62:IOデバイス・インターフェース・モジュール
64:読み出し専用メモリ(ROM)基本入出力システム(BIOS)
66:ユニバーサル・シリアル・バス(USB)インターフェース・モジュール
68:ホスト・バス・アダプタ(HBA)インターフェース・モジュール
70:ネットワーク・インターフェース・モジュール
72:フラッシュ・インターフェース・モジュール
74:ハード・ドライブ・インターフェース・モジュール
76:DSNインターフェース・モジュール
80:スライス名
90、90-1~90-5:提案記録
92、92-1~92-5:保留中のトランザクション
94、94-1~94-5:符号化データ・スライス(EDS)
96、96-1~96-5、100、100-1~100-5:書き込み要求
98:符号化データ・スライス
102、102-1~102-5:読み取り要求
Claims (8)
- コンピューティング・デバイスであって、
ディストリビューテッド・ストレージ・ネットワーク(DSN)とインターフェース接続し、通信するように構成されたインターフェースと、
操作命令を格納するメモリと、
前記インターフェース及び前記メモリに動作可能に結合された処理モジュールと、
を含み、前記処理モジュールは、前記操作命令に基づいて前記コンピューティング・デバイス内で動作可能なとき、
要求中のコンピューティング・デバイスから、前記DSNを介して、データ・オブジェクトを複数のディストリビューテッド・ストレージ(DS)ユニット内に格納する要求を受け取ることと、
前記データ・オブジェクトと関連したスライス名、永続値として要求されている前記スライス名についての符号化データ・スライス(EDS)、及び提案試行識別子を含む提案メッセージを生成することと、
前記提案メッセージを前記複数のDSユニットに伝送することと、
前記提案メッセージに応答して、前記複数のDSユニットから閾値数の提案メッセージ応答を受け取ることであって、前記閾値数の提案メッセージ応答のうちの1つの提案メッセージ応答は、前記複数のDSユニットのうちの1つのDSユニットから受け取られ、前記DSユニットにより直近に受理された、前記スライス名についての符号化データ・スライス(EDS)に対応し、前記複数のDSユニットのうちの前記DSユニットが他のいずれかの提案メッセージを受け取ったかどうかをさらに示し、
前記複数のDSユニットのうちの前記DSユニットから受け取った前記閾値数の提案メッセージ応答のうちの前記提案メッセージ応答が、前記複数のDSユニットのうちの前記DSユニットにより他の提案メッセージを受け取っていないことを示すとき、前記提案メッセージ内に含まれる前記永続値として要求されている前記スライス名についての前記符号化データ・スライス(EDS)を、前記スライス名についての永続値として採用し、前記スライス名についての前記永続値を前記要求中のコンピューティング・デバイスに通知することと、
前記複数のDSユニットのうちの前記DSユニットから受け取った前記閾値数の提案メッセージ応答のうちの前記提案メッセージ応答が、前記複数のDSユニットのうちの前記DSユニットにより、少なくとも1つの他の提案メッセージを受け取っていることを示すとき、前記複数のDSユニットからの前記閾値数の提案メッセージ応答に基づいて、前記DSユニットにより直近に受理された、前記スライス名についての符号化データ・スライス(EDS)を、前記スライス名についての前記永続値として採用し、前記スライス名についての前記永続値を前記要求中のコンピューティング・デバイスに通知することと、
を行うように構成される、コンピューティング・デバイス。 - 前記永続値は、前記処理モジュールによる決定性関数の実行に基づいて決定される、請求項1に記載のコンピューティング・デバイス。
- 前記永続値は、前記処理モジュールにより実行されるバロット・プロセスに基づいて決定される、請求項1に記載のコンピューティング・デバイス。
- 前記バロット・プロセスは、前記提案メッセージと関連したタイムスタンプに基づいてバロット値を選択することを含む、請求項3に記載のコンピューティング・デバイス。
- 前記バロット・プロセスは、2つの潜在的な永続値をもたらし、前記永続値は、前記2つの潜在的な永続値と関連した第2の処理モジュール及び第3の処理モジュールが、それぞれ、前記処理モジュールが前記閾値数の提案メッセージを受け取った後に伝送された提案メッセージを再伝送した後、前記潜在的な永続値から選択される、請求項3に記載のコンピューティング・デバイス。
- 分散ストレージ・ネットワーク(DSN)の1つ又は複数のコンピューティング・デバイスの1つ又は複数の処理モジュールにより実行するための方法であって、前記方法は、
要求中のコンピューティング・デバイスから、前記DSNを介して、データ・オブジェクトを複数のディストリビューテッド・ストレージ(DS)ユニット内に格納する要求を受け取ることと、
前記データ・オブジェクトと関連したスライス名、永続値として要求されている前記スライス名についての符号化データ・スライス(EDS)、及び提案試行識別子を含む提案メッセージを生成することと、
前記提案メッセージを前記複数のDSユニットに伝送することと、
前記提案メッセージに応答して、前記複数のDSユニットから閾値数の提案メッセージ応答を受け取ることであって、前記閾値数の提案メッセージ応答のうちの1つの提案メッセージ応答は、前記複数のDSユニットのうちの1つのDSユニットから受け取られ、前記DSユニットにより直近に受理された、前記スライス名についての符号化データ・スライス(EDS)に対応し、前記複数のDSユニットのうちの前記DSユニットが他のいずれかの提案メッセージを受け取ったかどうかをさらに示し、
前記複数のDSユニットのうちの前記DSユニットから受け取った前記閾値数の提案メッセージ応答のうちの前記提案メッセージ応答が、前記複数のDSユニットのうちの前記DSユニットにより他の提案メッセージを受け取っていないことを示すとき、前記提案メッセージ内に含まれる前記永続値として要求されている前記スライス名についての前記符号化データ・スライス(EDS)を、前記スライス名についての永続値として採用し、前記スライス名についての前記永続値を前記要求中のコンピューティング・デバイスに通知することと、
前記複数のDSユニットのうちの前記DSユニットから受け取った前記閾値数の提案メッセージ応答のうちの前記提案メッセージ応答が、前記複数のDSユニットのうちの前記DSユニットにより、少なくとも1つの他の提案メッセージを受け取っていることを示すとき、前記複数のDSユニットからの前記閾値数の提案メッセージ応答に基づいて、前記DSユニットにより直近に受理された、前記スライス名についての符号化データ・スライス(EDS)を、前記スライス名についての前記永続値として採用し、前記スライス名についての前記永続値を前記要求中のコンピューティング・デバイスに通知することと、
を含む、方法。 - 分散ストレージ・ネットワーク(DSN)の1つ又は複数のコンピューティング・デバイスの1つ又は複数の処理モジュールにより実行するための方法であって、前記方法は、
コンピューティング・デバイスにより、分散ストレージ・ネットワーク(DSN)の閾値数のストレージ・ユニットに向けられたアクセス要求を受け取ることであって、前記アクセス要求は、スライス名と関連した符号化データ・スライス(EDS)についてのものであり、さらに、前記コンピューティング・デバイスは、前記閾値数のストレージ・ユニットのうちの少なくとも幾つかから1つ又複数の提案メッセージ応答を受け取り、
前記スライス名と関連した前記符号化データ・スライス(EDS)が、前記スライス名についての永続値であるかどうかを判断することであって、前記判断することは、前記コンピューティング・デバイスが、前記閾値数のストレージ・ユニットから閾値数の提案メッセージ応答を受け取ったことに基づき、さらに、前記判断することは、前記スライス名と関連した前記符号化データ・スライス(EDS)についてコンセンサス値が決定されたことを、前記閾値数の提案メッセージ応答が示すかどうかにも基づき、
前記スライス名と関連した前記符号化データ・スライス(EDS)が前記スライス名についての前記永続値であるとき、前記スライス名と関連した前記符号化データ・スライス(EDS)を前記アクセス要求中のコンピューティング・デバイスに伝送することと、
を含む、方法。 - 前記スライス名と関連した前記符号化データ・スライス(EDS)が前記スライス名についての前記永続値でないとき、永続値を決定することができないと判断し、前記スライス名と関連した前記符号化データ・スライス(EDS)についての前に格納した符号化データ・スライス(EDS)を選択し、前記前に格納した符号化データ・スライス(EDS)を前記アクセス要求中のコンピューティング・デバイスに伝送することをさらに含む、請求項7に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/613,531 | 2017-06-05 | ||
US15/613,531 US10372381B2 (en) | 2017-06-05 | 2017-06-05 | Implicit leader election in a distributed storage network |
PCT/IB2018/053932 WO2018224925A1 (en) | 2017-06-05 | 2018-06-01 | Distributed storage network |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020524324A JP2020524324A (ja) | 2020-08-13 |
JP7015848B2 true JP7015848B2 (ja) | 2022-02-03 |
Family
ID=64459663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019565516A Active JP7015848B2 (ja) | 2017-06-05 | 2018-06-01 | ディストリビューテッド・ストレージ・ネットワーク |
Country Status (6)
Country | Link |
---|---|
US (3) | US10372381B2 (ja) |
JP (1) | JP7015848B2 (ja) |
CN (1) | CN110663031B (ja) |
DE (1) | DE112018001561B4 (ja) |
GB (1) | GB2576468B (ja) |
WO (1) | WO2018224925A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372381B2 (en) * | 2017-06-05 | 2019-08-06 | International Business Machines Corporation | Implicit leader election in a distributed storage network |
US10671482B2 (en) * | 2017-09-12 | 2020-06-02 | Cohesity, Inc. | Providing consistency in a distributed data store |
CN111488333B (zh) * | 2020-05-18 | 2023-07-11 | 网易(杭州)网络有限公司 | 数据处理方法及装置、存储介质和电子设备 |
CN114338695B (zh) * | 2022-03-10 | 2022-05-24 | 深圳艾灵网络有限公司 | 基于多副本的领导者选举方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150319244A1 (en) | 2014-04-30 | 2015-11-05 | Cleversafe, Inc. | Retrieving multi-generational stored data in a dispersed storage network |
US20160255150A1 (en) | 2015-02-27 | 2016-09-01 | International Business Machines Corporation | Storing data in a dispersed storage network |
JP2016534471A (ja) | 2013-10-18 | 2016-11-04 | ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited | シェアード・ナッシング分散型ストレージ・システムにおけるターゲットにより駆動される独立したデータの完全性および冗長性のリカバリ |
Family Cites Families (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4092732A (en) | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US5485474A (en) | 1988-02-25 | 1996-01-16 | The President And Fellows Of Harvard College | Scheme for information dispersal and reconstruction |
US5454101A (en) | 1992-09-15 | 1995-09-26 | Universal Firmware Industries, Ltd. | Data storage system with set lists which contain elements associated with parents for defining a logical hierarchy and general record pointers identifying specific data sets |
US5987622A (en) | 1993-12-10 | 1999-11-16 | Tm Patents, Lp | Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem |
US6175571B1 (en) | 1994-07-22 | 2001-01-16 | Network Peripherals, Inc. | Distributed memory switching hub |
US5848230A (en) | 1995-05-25 | 1998-12-08 | Tandem Computers Incorporated | Continuously available computer memory systems |
US5774643A (en) | 1995-10-13 | 1998-06-30 | Digital Equipment Corporation | Enhanced raid write hole protection and recovery |
US5809285A (en) | 1995-12-21 | 1998-09-15 | Compaq Computer Corporation | Computer system having a virtual drive array controller |
US6012159A (en) | 1996-01-17 | 2000-01-04 | Kencast, Inc. | Method and system for error-free data transfer |
US5802364A (en) | 1996-04-15 | 1998-09-01 | Sun Microsystems, Inc. | Metadevice driver rename/exchange technique for a computer system incorporating a plurality of independent device drivers |
US5890156A (en) | 1996-05-02 | 1999-03-30 | Alcatel Usa, Inc. | Distributed redundant database |
US6058454A (en) | 1997-06-09 | 2000-05-02 | International Business Machines Corporation | Method and system for automatically configuring redundant arrays of disk memory devices |
US6088330A (en) | 1997-09-09 | 2000-07-11 | Bruck; Joshua | Reliable array of distributed computing nodes |
US5991414A (en) | 1997-09-12 | 1999-11-23 | International Business Machines Corporation | Method and apparatus for the secure distributed storage and retrieval of information |
US6272658B1 (en) | 1997-10-27 | 2001-08-07 | Kencast, Inc. | Method and system for reliable broadcasting of data files and streams |
JPH11161505A (ja) | 1997-12-01 | 1999-06-18 | Matsushita Electric Ind Co Ltd | メディア送出装置 |
JPH11167443A (ja) | 1997-12-02 | 1999-06-22 | Casio Comput Co Ltd | インターフェイス装置 |
US6415373B1 (en) | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6374336B1 (en) | 1997-12-24 | 2002-04-16 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
WO2000011554A1 (en) | 1998-08-19 | 2000-03-02 | Boris Nikolaevich Vilkov | A system and method for identification of transformation of memory device addresses |
US6356949B1 (en) | 1999-01-29 | 2002-03-12 | Intermec Ip Corp. | Automatic data collection device that receives data output instruction from data consumer |
US6609223B1 (en) | 1999-04-06 | 2003-08-19 | Kencast, Inc. | Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter |
US6571282B1 (en) | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
US6826711B2 (en) | 2000-02-18 | 2004-11-30 | Avamar Technologies, Inc. | System and method for data protection with multidimensional parity |
US6718361B1 (en) | 2000-04-07 | 2004-04-06 | Network Appliance Inc. | Method and apparatus for reliable and scalable distribution of data files in distributed networks |
DE60131900T2 (de) | 2000-10-26 | 2008-12-04 | Flood, James C. jun., Portland | Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten |
US7140044B2 (en) | 2000-11-13 | 2006-11-21 | Digital Doors, Inc. | Data security system and method for separation of user communities |
US7146644B2 (en) | 2000-11-13 | 2006-12-05 | Digital Doors, Inc. | Data security system and method responsive to electronic attacks |
US8176563B2 (en) | 2000-11-13 | 2012-05-08 | DigitalDoors, Inc. | Data security system and method with editor |
US7103915B2 (en) | 2000-11-13 | 2006-09-05 | Digital Doors, Inc. | Data security system and method |
GB2369206B (en) | 2000-11-18 | 2004-11-03 | Ibm | Method for rebuilding meta-data in a data storage system and a data storage system |
US6785783B2 (en) | 2000-11-30 | 2004-08-31 | International Business Machines Corporation | NUMA system with redundant main memory architecture |
US7080101B1 (en) | 2000-12-01 | 2006-07-18 | Ncr Corp. | Method and apparatus for partitioning data for storage in a database |
US20020120874A1 (en) | 2000-12-22 | 2002-08-29 | Li Shu | Method and system for secure exchange of messages |
US6857059B2 (en) | 2001-01-11 | 2005-02-15 | Yottayotta, Inc. | Storage virtualization system and methods |
US20020165942A1 (en) | 2001-01-29 | 2002-11-07 | Ulrich Thomas R. | Data path accelerator with variable parity, variable length, and variable extent parity groups |
US20030037261A1 (en) | 2001-03-26 | 2003-02-20 | Ilumin Corporation | Secured content delivery system and method |
US6879596B1 (en) | 2001-04-11 | 2005-04-12 | Applied Micro Circuits Corporation | System and method for systolic array sorting of information segments |
US7024609B2 (en) | 2001-04-20 | 2006-04-04 | Kencast, Inc. | System for protecting the transmission of live data streams, and upon reception, for reconstructing the live data streams and recording them into files |
GB2377049A (en) | 2001-06-30 | 2002-12-31 | Hewlett Packard Co | Billing for utilisation of a data storage array |
US6944785B2 (en) | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US7636724B2 (en) | 2001-08-31 | 2009-12-22 | Peerify Technologies LLC | Data storage system and method by shredding and deshredding |
US7024451B2 (en) | 2001-11-05 | 2006-04-04 | Hewlett-Packard Development Company, L.P. | System and method for maintaining consistent independent server-side state among collaborating servers |
US7003688B1 (en) | 2001-11-15 | 2006-02-21 | Xiotech Corporation | System and method for a reserved memory area shared by all redundant storage controllers |
US7171493B2 (en) | 2001-12-19 | 2007-01-30 | The Charles Stark Draper Laboratory | Camouflage of network traffic to resist attack |
US7103824B2 (en) | 2002-07-29 | 2006-09-05 | Robert Halford | Multi-dimensional data protection and mirroring method for micro level data |
US7051155B2 (en) | 2002-08-05 | 2006-05-23 | Sun Microsystems, Inc. | Method and system for striping data to accommodate integrity metadata |
US20040122917A1 (en) | 2002-12-18 | 2004-06-24 | Menon Jaishankar Moothedath | Distributed storage system for data-sharing among client computers running defferent operating system types |
US7251832B2 (en) | 2003-03-13 | 2007-07-31 | Drm Technologies, Llc | Secure streaming container |
US7185144B2 (en) | 2003-11-24 | 2007-02-27 | Network Appliance, Inc. | Semi-static distribution technique |
GB0308262D0 (en) | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
GB0308264D0 (en) | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
US7415115B2 (en) | 2003-05-14 | 2008-08-19 | Broadcom Corporation | Method and system for disaster recovery of data from a storage device |
CN101566931B (zh) | 2003-08-14 | 2011-05-18 | 克姆佩棱特科技公司 | 虚拟磁盘驱动系统和方法 |
US7899059B2 (en) | 2003-11-12 | 2011-03-01 | Agere Systems Inc. | Media delivery using quality of service differentiation within a media stream |
US8332483B2 (en) | 2003-12-15 | 2012-12-11 | International Business Machines Corporation | Apparatus, system, and method for autonomic control of grid system resources |
US7206899B2 (en) | 2003-12-29 | 2007-04-17 | Intel Corporation | Method, system, and program for managing data transfer and construction |
US7222133B1 (en) | 2004-02-05 | 2007-05-22 | Unisys Corporation | Method for reducing database recovery time |
US7240236B2 (en) | 2004-03-23 | 2007-07-03 | Archivas, Inc. | Fixed content distributed data storage using permutation ring encoding |
US7231578B2 (en) | 2004-04-02 | 2007-06-12 | Hitachi Global Storage Technologies Netherlands B.V. | Techniques for detecting and correcting errors using multiple interleave erasure pointers |
JP4446839B2 (ja) | 2004-08-30 | 2010-04-07 | 株式会社日立製作所 | ストレージ装置及びストレージ管理装置 |
US7680771B2 (en) | 2004-12-20 | 2010-03-16 | International Business Machines Corporation | Apparatus, system, and method for database provisioning |
US7386758B2 (en) | 2005-01-13 | 2008-06-10 | Hitachi, Ltd. | Method and apparatus for reconstructing data in object-based storage arrays |
US7672930B2 (en) | 2005-04-05 | 2010-03-02 | Wal-Mart Stores, Inc. | System and methods for facilitating a linear grid database with data organization by dimension |
US8285878B2 (en) | 2007-10-09 | 2012-10-09 | Cleversafe, Inc. | Block based access to a dispersed data storage network |
US7574579B2 (en) | 2005-09-30 | 2009-08-11 | Cleversafe, Inc. | Metadata management system for an information dispersed storage system |
US7546427B2 (en) | 2005-09-30 | 2009-06-09 | Cleversafe, Inc. | System for rebuilding dispersed data |
US7574570B2 (en) | 2005-09-30 | 2009-08-11 | Cleversafe Inc | Billing system for information dispersal system |
US7904475B2 (en) | 2007-10-09 | 2011-03-08 | Cleversafe, Inc. | Virtualized data storage vaults on a dispersed data storage network |
US7953937B2 (en) | 2005-09-30 | 2011-05-31 | Cleversafe, Inc. | Systems, methods, and apparatus for subdividing data for storage in a dispersed data storage grid |
US8171101B2 (en) | 2005-09-30 | 2012-05-01 | Cleversafe, Inc. | Smart access to a dispersed data storage network |
US20070214285A1 (en) | 2006-03-08 | 2007-09-13 | Omneon Video Networks | Gateway server |
US8549351B2 (en) | 2007-10-09 | 2013-10-01 | Cleversafe, Inc. | Pessimistic data reading in a dispersed storage network |
US10372686B2 (en) | 2009-12-29 | 2019-08-06 | International Business Machines Corporation | Policy-based storage in a dispersed storage network |
US9152489B2 (en) | 2009-12-29 | 2015-10-06 | Cleversafe, Inc. | Revision synchronization of a dispersed storage network |
US10104168B2 (en) | 2011-12-12 | 2018-10-16 | International Business Machines Corporation | Method for managing throughput in a distributed storage network |
JP5586718B2 (ja) * | 2012-06-19 | 2014-09-10 | 株式会社東芝 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
US10020826B2 (en) * | 2014-04-02 | 2018-07-10 | International Business Machines Corporation | Generating molecular encoding information for data storage |
US10372381B2 (en) * | 2017-06-05 | 2019-08-06 | International Business Machines Corporation | Implicit leader election in a distributed storage network |
-
2017
- 2017-06-05 US US15/613,531 patent/US10372381B2/en not_active Expired - Fee Related
-
2018
- 2018-06-01 CN CN201880034636.4A patent/CN110663031B/zh active Active
- 2018-06-01 JP JP2019565516A patent/JP7015848B2/ja active Active
- 2018-06-01 GB GB1918307.8A patent/GB2576468B/en active Active
- 2018-06-01 DE DE112018001561.0T patent/DE112018001561B4/de active Active
- 2018-06-01 WO PCT/IB2018/053932 patent/WO2018224925A1/en active Application Filing
-
2019
- 2019-07-08 US US16/504,659 patent/US11204723B2/en active Active
-
2021
- 2021-11-11 US US17/524,280 patent/US11620087B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016534471A (ja) | 2013-10-18 | 2016-11-04 | ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited | シェアード・ナッシング分散型ストレージ・システムにおけるターゲットにより駆動される独立したデータの完全性および冗長性のリカバリ |
US20150319244A1 (en) | 2014-04-30 | 2015-11-05 | Cleversafe, Inc. | Retrieving multi-generational stored data in a dispersed storage network |
US20160255150A1 (en) | 2015-02-27 | 2016-09-01 | International Business Machines Corporation | Storing data in a dispersed storage network |
Also Published As
Publication number | Publication date |
---|---|
US10372381B2 (en) | 2019-08-06 |
CN110663031A (zh) | 2020-01-07 |
US20220066644A1 (en) | 2022-03-03 |
DE112018001561B4 (de) | 2021-04-08 |
JP2020524324A (ja) | 2020-08-13 |
GB201918307D0 (en) | 2020-01-29 |
US20190332273A1 (en) | 2019-10-31 |
DE112018001561T5 (de) | 2019-12-24 |
US20180349039A1 (en) | 2018-12-06 |
CN110663031B (zh) | 2022-12-30 |
US11204723B2 (en) | 2021-12-21 |
WO2018224925A1 (en) | 2018-12-13 |
US11620087B2 (en) | 2023-04-04 |
GB2576468A (en) | 2020-02-19 |
GB2576468B (en) | 2020-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7015848B2 (ja) | ディストリビューテッド・ストレージ・ネットワーク | |
US10437671B2 (en) | Synchronizing replicated stored data | |
US20190056869A1 (en) | Utilizing fast memory devices to optimize different functions | |
US20170123848A1 (en) | Multi-task processing in a distributed storage network | |
CN108073656A (zh) | 一种数据同步方法及相关设备 | |
JP2008516343A (ja) | 冗長データストレージの再構成 | |
US10904337B2 (en) | Zone storage—resilient and efficient storage transactions | |
US10007438B2 (en) | Method and system for achieving consensus using alternate voting strategies (AVS) with incomplete information | |
US10558621B2 (en) | Lock stealing writes for improved reliability | |
US10025505B2 (en) | Accessing data in a dispersed storage network during write operations | |
US10536525B2 (en) | Consistency level driven data storage in a dispersed storage network | |
JP6931005B2 (ja) | 一貫性を有する散在ストレージ・ネットワークにおけるデータの格納 | |
US9998147B1 (en) | Method for using write intents in a distributed storage network | |
JP2018524705A (ja) | データ転送中にデータアクセス要求を処理するための方法及びシステム | |
US10157021B2 (en) | Processing incomplete data access transactions | |
US10067998B2 (en) | Distributed sync list | |
US10379961B2 (en) | Ensuring metadata and index consistency using write intents | |
US10728334B1 (en) | Compare-and-swap rebuilder for a distributed storage network | |
US20240045777A1 (en) | Processing of Data Access Requests in a Storage Network | |
US20200311047A1 (en) | Establishing distributed consensus via alternate voting strategies in a dispersed storage network | |
US20230214303A1 (en) | Synchronized Vault Management In A Distributed Storage Network | |
US10956266B2 (en) | Processing data access transactions in a dispersed storage network using source revision indicators | |
US20190079951A1 (en) | Recovering from conflicts that emerge from eventually consistent operations | |
Hope | Personal Internetworked Notary and Guardian supported by distributed data storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200609 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220124 |