JP4837929B2 - 動的ピアツーピア環境における相互排除技法 - Google Patents
動的ピアツーピア環境における相互排除技法 Download PDFInfo
- Publication number
- JP4837929B2 JP4837929B2 JP2005045429A JP2005045429A JP4837929B2 JP 4837929 B2 JP4837929 B2 JP 4837929B2 JP 2005045429 A JP2005045429 A JP 2005045429A JP 2005045429 A JP2005045429 A JP 2005045429A JP 4837929 B2 JP4837929 B2 JP 4837929B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- logical
- replica
- clients
- replicas
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F24—HEATING; RANGES; VENTILATING
- F24F—AIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
- F24F13/00—Details common to, or for air-conditioning, air-humidification, ventilation or use of air currents for screening
- F24F13/02—Ducting arrangements
- F24F13/029—Duct comprising an opening for inspection, e.g. manhole
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Chemical & Material Sciences (AREA)
- Mechanical Engineering (AREA)
- Combustion & Propulsion (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
動的ピアツーピア環境において使用するための相互排除技法が記載される。一例では、相互排除技法はクライアントとピアの間の通信遅延の変動を解決するためにキューを利用する。既に述べたように、複数のクライアントから受信される、特定の資源にアクセスすることを求める要求は、クライアントとピアの間の通信遅延の変動により、異なる時刻に異なるピアに到達することがある。したがって、ピアは、資源へのアクセスを要求しているクライアントについて、それぞれのクライアントがそのようなアクセスを要求した場合等には、一貫したビューを有しないことがある。キューは、ピアが、要求がいつ受信されたかについての一貫したビューを得ることにより、キューに基づいて資源へのアクセスを提供することができるように、要求を格納するためにピアによって利用されることが可能である。
図1は、ピアツーピアネットワークを提供するように構成された環境100を示す例示的実施態様の図である。環境100は、複数のクライアント102(a)を含む。ここでaは1からAまでの任意の整数をとり得る。複数のクライアント102(a)は、ネットワーク106を通じて複数のコンピューティングデバイス104(1)〜104(B)に通信可能に接続する。この実施態様では、複数のクライアント102(a)および複数のコンピューティングデバイス104(1)〜104(B)はそれぞれ、ネットワーク106内のノードを表す。ノードは、他のノードにデータを提供する再配信ポイント、および/または、データの宛先および/またはソースであるエンドポイントのような、データを送信するための接続ポイントとみなしてもよい。
・コード(Chord)、 非特許文献2に記載。
・キャン(CAN)、 非特許文献3に記載。
・ペストリー(Pastry)、 非特許文献4に記載。
・タペストリー(Tapestry)、非特許文献5に記載。
相互排除は、ピアツーピアDHTを使用するように構成されたネットワーク環境の上に一般的なシステムおよびアプリケーションを実装するための基本的プリミティブ(primitive)の1つである。このようなプリミティブは、必要な時に1つまたは複数の任意の資源を保護するためにピアツーピアDHTの上で実行されるアプリケーションが利用するための基本的サービスも提供することができる。例えば、相互排除は、ミュータブル(mutable:易変)分散ファイルシステムのための並行処理制御メカニズムを提供することができる。ノードの追加および/または削除のような図1の環境100における変化をサポートするため、このようなプリミティブは、ピアツーピアDHTの〈内部〉に実装される。したがって、相互排除プロトコルの実装は分散していてもよい。
特定の資源に対する衝突する要求を解決するために利用可能な相互排除プロトコルについて説明する。例えば、クリティカルセクション(CS)(例えば特定の資源)の利用を希望している複数のクライアント102(a)のうちの2つ以上が、それぞれのレプリカ112(1)〜112(4)に要求を送信し、応答を待機する。それぞれのレプリカ112(1)〜112(4)は、それが他のクライアントによって所有されていない場合、リース(賃貸)を与える。それ以外の場合、それぞれのレプリカ112(1)〜112(4)は、要求を拒絶し、(拒絶された)要求側クライアントに対して、どのクライアント102(a)が現在のオーナであるかを通知する。n個のレプリカのうちのm個を所有するクライアント102(a)がこのラウンドの勝者であり、したがってクリティカルセクション(CS)へのアクセスが許可されるように、コーラムコンセンサス技法を使用することができる。ここで、mはコーラムの数であり、nはレプリカの数である。コーラムは、m>n/2等のさまざまな方法で決定することができる。従来、CSへのアクセスが許可されないクライアント、すなわちそのラウンドの「敗者」は、獲得した票(もしあれば)を解放し、バックオフ(後退)し、要求を再試行していた。
以下では、前述のアーキテクチャを利用して実施され得る相互排除技法について説明する。各手続きの態様は、ハードウェア、ファームウェア、もしくはソフトウェア、またはそれらの組合せのいずれで実施してもよい。手続きは、1つまたは複数のデバイスによって実行されるオペレーションを指定するブロックのセットとして示される。
図6は、図4および図5に関して説明したように、図2のクライアント102(a)およびレプリカ112(i)により実行される相互排除プロトコルの一実施態様のアーキテクチャ600を示すブロック図である。アーキテクチャ600は、矢印を用いて、図1のクライアント102(a)とレプリカ112(i)の間のメッセージの交換を示している。アーキテクチャ600は、クライアント102(a)およびレプリカ112(i)のそれぞれのメッセージハンドラを用いて記述することができる。それぞれの例示的オペレーションは、それぞれのデバイスにより実行される例示的な擬似コードに関連して説明される。1つまたは複数のオペレーションが独立に、および/または他のオペレーションの内部に示されているが、オペレーションは、さまざまな方法で組み合わせ、再配置することが可能である。
timestamp := GetLogicalClock(); // ランポートのクロック
for each R[i] of CS
SendRequest(R[i], id, timestamp);
}
if (Cowner = nil) {
Cowner := C;
Towner := timestamp;
}
else
Queue.Insert(C, timestamp);
SendResponse(C, Cowner, Towner);
}
resp[i].owner := owner;
resp[i].timestamp := timestamp;
winner := ComputeWinner();
if (winner = self) // 場合1
return success;
for each resp[i].owner is self {
SendYield(R[i], id);
Clear(resp[i]); // 状態をリセット
}
}
// 場合2:他が勝った場合、待機
}
}
if (C = Cowner) {
Queue.Insert(C, Towner);
RespQueue();
}
}
RespQueue() { // ヘルパルーチン
<Cowner, Towner> := Queue.Front();
SendReponse(Cowner, Cowner, Towner);
Queue.Remove(Cowner);
}
for all R[i] of CS
SendRelease(R[i], id);
}
if (C = Cowner) {
Cowner := nil;
if (not Queue.Empty())
RespQueue();
}
else if (Queue.Contains(C))
Queue.Remove(C);
}
上記の相互排除プロトコルは、図1の環境100における障害を解決するためにも利用可能である。例えば、レプリカは、前のクライアントに既に投票していたかもしれないが、それにもかかわらず、クラッシュ後に、新たなクライアントに投票(すなわち、新たな応答を発行)してもよい。そこで、安全性を破る確率を下げるために、m/nの比を高くしてもよい。別の例として、キュー内の各エントリが失われるかもしれないが、その場合、クライアントが、来ることのない応答を待機することになる可能性がある。この例に対処するため、次のセクションで説明する〈インフォームドバックオフ〉メカニズムを利用して、レプリカのメモリを再構築することができる。さらに別の例として、特定の資源(すなわちCS)を現在利用中のクライアントが終了前にクラッシュすることにより、レプリカが「身動きがとれなく」なってしまうことがある。そこで、レプリカは、更新可能なリース付きでクライアントに許可を与えてもよい。リースが満期になると、レプリカは、キュー内の次のクライアント(もしあれば)に許可を与える。さらに別の例として、クライアントとレプリカの間の信頼できない通信チャネルもまた同様の問題が生じる。
〈インフォームドバックオフ〉は、再起動されなかった他のレプリカに過負荷をかけることなく、再起動されたレプリカの状態を再構築するために利用可能なメカニズムである。要求があると、レプリカは、予想待機時間Twを予測し、それをクライアントに伝達する。予想待機時間は、次の再試行、すなわち要求再送の前に、その時間だけ待機するようにクライアントに通知する。例えば、Twの経験的計算式は、Tw=TCS×(P+1/2)である。ここで、Pはキュー内のクライアントの位置であり、TCSは、任意の2つの連続する解放オペレーションの間の時間間隔についてレプリカによって観測される平均のCS継続時間である。式中の1/2は、レプリカの現在のオーナを考慮に入れるために用いられている。一実施態様では、Twは、再試行の受信ごとに更新される。
本明細書に記載される種々のコンポーネントおよび機能は、いくつかのコンピュータを用いて実施される。図7は、参照番号702で示すコンピュータを含む、コンピュータ環境700の典型例のコンポーネントを示している。コンピュータ702は、図1の複数のクライアント102(a)および複数のコンピューティングデバイス104(1)〜104(B)と同一であっても異なっていてもよい。図7に示すコンポーネントは単なる例であり、本発明の機能の範囲に関するいかなる限定を示唆することも意図していない。本発明は、必ずしも、図7に示す特徴に依存しない。
ピアツーピアネットワークにおけるシステムダイナミズムを扱うために、論理的レプリカおよびコーラムコンセンサスを利用し得る相互排除技法について説明した。本明細書に記載の技法によって提供されるクライアントとレプリカの間の準一貫性および協調を利用して、ネットワーク遅延変動およびコンテンションを回避することができる。また、相互排除技法は、インフォームドバックオフを利用する等によって、障害にも対処する。
102 クライアント
104 コンピューティングデバイス
106 ネットワーク
108 分散ハッシュテーブル(DHT)
110 バケット
112 論理的レプリカ
202 クライアントID
204 応答配列
206 応答
208 オーナ
210 タイムスタンプ
212 オーナシップフィールド
214 キュー
216 要求
218 タイムスタンプ
304 要求
310〜316 応答
602 request(要求)オペレーション
604 SendRequestオペレーション
606 OnRequestオペレーション
608 insert(挿入)オペレーション
610 キューオペレーション
612 SendResponseオペレーション
614 OnResponseオペレーション
616 SendYieldオペレーション
618 OnYieldオペレーション
620 QueueFrontオペレーション
622 remove(移動)オペレーション
624 release(解除)オペレーション
628 OnReleaseオペレーション
630 QueueEmptyオペレーション
632 QueueContainsオペレーション
700 コンピュータ環境
702 コンピュータ
704 処理ユニット
706 システムメモリ
708 システムバス
710 読み出し専用メモリ(ROM)
712 ランダムアクセスメモリ(RAM)
714 基本入出力システム(BIOS)
716,716′ オペレーティングシステム
718,718′ アプリケーション
720,720′ ソフトウェアコンポーネント
722,722′ プログラムデータ
724 ハードディスクドライブ
726 磁気ディスクドライブ
728 リムーバブル不揮発性磁気ディスク
730 光ディスクドライブ
732 リムーバブル不揮発性光ディスク
734 データメディアインタフェース
736 キーボード
738 カメラ
740 マイクロフォン
742 入出力(I/O)インタフェース
744 モニタ
746 ビデオアダプタ
750 リモートデバイス
752 ローカルエリアネットワーク(LAN)
754 広域ネットワーク(WAN)
756 ネットワークインタフェース
758 モデム
760 リモートソフトウェアコンポーネント
Claims (29)
- 複数のクライアントと、資源を提供するコンピューティングデバイスのレプリカである複数の論理的レプリカとを備えたシステムであって、それぞれの前記論理的レプリカは、前記複数のクライアントのうちの1つのクライアントと、他のクライアントに該論理レプリカの資源へのアクセス許可を与えることができないことを示す排他的関連づけがされるように構成され、それぞれの前記論理的レプリカは、クライアントから受信した資源へのアクセスを求める要求を格納するキューを含む、システムにおいて、
それぞれの前記論理的レプリカが、第1のクライアントから、該論理的レプリカに対応するコンピューティングシステムが提供する資源へのアクセスを求める要求を受信するステップと、
それぞれの前記論理的レプリカが、該論理的レプリカに排他的に関連づけられているクライアントを示す値を含む、前記要求に対する応答を前記複数のクライアントに送信するステップと、
前記要求を受信した論理的レプリカが第2のクライアントと排他的に関連づけられている場合に、該論理的レプリカが、該論理的レプリカのキューに前記要求を格納するステップと、
移譲(Yield)メッセージを受信した論理的レプリカが、該論理的レプリカとの排他的関連付けを解放させるための移譲メッセージに応答して、該論理的レプリカのキューに格納されたこれまでの要求に基づいて、別の応答を送信するステップであって、前記移譲メッセージは、それぞれの前記クライアントが、前記複数の論理的レプリカから前記要求に対する複数の応答を受信し、前記複数の応答から、前記複数のクライアントクライアントのうちの1つに資源へのアクセスが許可されるどうかを判定することによって前記複数のクライアントのいずれも許可されないと判定される場合に、排他的に関連づけられているクライアントとして自身を示す値を含む応答を受信したクライアントによって、該応答を送信した論理的レプリカに送信される、ステップ
を含むことを特徴とする方法。 - 前記第1のクライアントは、前記第1のクライアントが前記複数の論理的レプリカのうちの所定数の論理的レプリカと排他的に関連づけられる場合に許可されることを特徴とする請求項1に記載の方法。
- 前記第1のクライアントが許可されない場合に、前記第1のクライアントは、資源へのアクセスを求める要求を再送しないことを特徴とする請求項1に記載の方法。
- 前記複数の資源が、分散ハッシュテーブル(DHT)を用いて分割され、
前記DHTが、前記複数の資源のそれぞれを複数のバケットのそれぞれのバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の複数のコンピューティングデバイスによって提供される
ことを特徴とする請求項1に記載の方法。 - それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記クライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ(障害迂回)機能を備えたことを特徴とする請求項4に記載の方法。
- コンピュータ実行可能命令を含む1つまたは複数のコンピュータ可読記録媒体において、コンピュータ上で実行される時に、該コンピュータに、請求項1に記載の方法を実行させることを特徴とするコンピュータ可読記録媒体。
- 複数のクライアントと、資源を提供するコンピューティングデバイスのレプリカである複数の論理的レプリカとを備えたシステムであって、それぞれの前記論理的レプリカは、前記複数のクライアントのうちの1つのクライアントと、他のクライアントに該論理レプリカの資源へのアクセス許可を与えることができないことを示す排他的関連づけがされるように構成され、前記論理的レプリカが別のクライアントと排他的に関連づけられる場合に、該論理的レプリカに対応するコンピューティングデバイスが提供する資源へのアクセスを求めるクライアントからの要求を格納するためのキューを含む、システムにおいて、
第1のクライアントが、複数の論理的レプリカに、特定の論理的レプリカに対応するコンピューティングデバイスが提供する資源へのアクセスを求める要求を送信するステップと、
前記第1のクライアントが、前記複数の論理的レプリカから前記要求に対する複数の応答を受信するステップであって、それぞれの前記応答は、該応答を送信した論理的レプリカに排他的に関連づけられているクライアントを示す値を含む、ステップと、
前記第1のクライアントが、前記複数の応答から、前記第1のクライアントによる前記特定の論理的レプリカに対応するコンピューティングデバイスが提供する資源へのアクセスが許可されるかどうかを判定するステップと
を含み、前記第1のクライアントが許可されない場合に、前記第1のクライアントは、資源へのアクセスを求める要求を再送しないことを特徴とする方法。 - 前記複数のクライアントのいずれも許可されない場合、排他的に関連づけられているクライアントとして自身を示す値を含む応答を受信したクライアントが、該応答を送信した論理的レプリカに、該論理的レプリカとの排他的関連付けを解放させるための移譲メッセージを送信し、
前記移譲メッセージを受信した論理的レプリカが、該論理的レプリカのキューに格納されたこれまでの要求に基づいて別の応答を送信することを特徴とする請求項7に記載の方法。 - 前記第1のクライアントは、前記第1のクライアントが前記複数の論理的レプリカのうちの所定数の論理的レプリカと排他的に関連づけられる場合に許可されることを特徴とする請求項7に記載の方法。
- DHTが、前記複数の資源を複数のバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の複数のコンピューティングデバイスによって提供され、
それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記複数のクライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ機能を提供する
ことを特徴とする請求項7に記載の方法。 - 前記キュー内のそれぞれの前記要求は、該要求がそれぞれの前記論理的レプリカによっていつ受信されたかに従って編成されることを特徴とする請求項7に記載の方法。
- コンピュータ実行可能命令を含む1つまたは複数のコンピュータ可読記録媒体において、コンピュータ上で実行される時に、該コンピュータに、請求項7に記載の方法を実行させることを特徴とするコンピュータ可読記録媒体。
- 複数のクライアントと、資源を提供するコンピューティングデバイスのレプリカである複数の論理的レプリカとを備えたシステムであって、それぞれの前記論理的レプリカは、前記複数のクライアントのうちの1つのクライアントと、他のクライアントに該論理レプリカの資源へのアクセス許可を与えることができないことを示す排他的関連づけがされるように構成され、それぞれの前記論理的レプリカは、クライアントから受信した資源へのアクセスを求める要求を格納するキューを含む、システムにおいて、
複数のクライアントのそれぞれが、複数の論理的レプリカに、特定の論理的レプリカに対応するコンピューティングデバイスが提供する資源へのアクセスを求める要求を送信するステップと、
前記複数のクライアントが、前記複数の論理的レプリカから前記要求に対する複数の応答を受信するステップであって、それぞれの前記応答は、該応答を送信した論理的レプリカに排他的に関連づけられているクライアントを示す値を含む、ステップと、
それぞれの前記クライアントが、前記複数の応答を用いて、前記複数のクライアントのうちの1つに資源へのアクセスが許可されるかどうかを判定するステップと、
前記複数のクライアントのいずれも前記1つの資源へのアクセスが許可されない場合、排他的に関連づけられているクライアントとして自身を示す値を含む応答を受信したクライアントが、該応答を送信した1つまたは複数の論理的レプリカに、該論理的レプリカとの排他的関連付けを解放させるための移譲メッセージを送信するステップと
を含み、前記移譲メッセージを受信した論理的レプリカが、該論理的レプリカのキューに格納されたこれまでの要求に基づいて別の応答を送信することを特徴とする方法。 - 前記キュー内のそれぞれの前記前の要求は、該前の要求がそれぞれの前記論理的レプリカによっていつ受信されたかに従って編成され、
前記移譲メッセージが、前記1つまたは複数の論理的レプリカに、それぞれの前記キュー内の最先の要求に基づいて前記別の応答を送信させる
ことを特徴とする請求項13に記載の方法。 - 前記移譲メッセージは、前記1つまたは複数の論理的レプリカに、前記それぞれのキューに基づいて、前記移譲メッセージを送信したクライアントとは異なるクライアントを、排他的に関連づけられているクライアントとして選択させることを特徴とする請求項13に記載の方法。
- 前記資源へのアクセスは、前記複数の論理的レプリカのうちの所定数の論理的レプリカと排他的に関連づけられる前記複数のクライアントのうちの1つに許可されることを特徴とする請求項13に記載の方法。
- 前記資源へのアクセスが許可されない1つまたは複数の他の前記クライアントは、資源へのアクセスを求める要求を再送しないことを特徴とする請求項13に記載の方法。
- 前記複数の資源が、分散ハッシュテーブル(DHT)を用いて分割され、
前記DHTが、前記複数の資源を複数のバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の複数のコンピューティングデバイスによって提供され、
それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記複数のクライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ機能を備えた
ことを特徴とする請求項13に記載の方法。 - コンピュータ実行可能命令を含む1つまたは複数のコンピュータ可読記録媒体において、コンピュータ上で実行される時に、該コンピュータに、請求項13に記載の方法を実行させることを特徴とするコンピュータ可読記録媒体。
- ネットワークと、
前記ネットワークに通信可能に結合した複数のクライアントと、
前記ネットワークに通信可能に結合し、資源を提供するコンピューティングデバイスのレプリカである複数の論理的レプリカを含む複数のコンピューティングデバイスと
を備えたシステムにおいて、それぞれの前記論理的レプリカが、
前記複数のクライアントのうちの1つのクライアントと、他のクライアントに該論理レプリカの資源へのアクセス許可を与えることができないことを示す排他的関連づけがされるように構成され、
前記論理的レプリカが別のクライアントと排他的に関連づけられる場合に、該論理的レプリカに対応するコンピューティングデバイスが提供する資源へのアクセスを求めるクライアントからの要求を格納するためのキューを含み、
該論理的レプリカに排他的に関連づけられているクライアントを示す値を含む、前記要求に対する応答を送信するように構成され、
それぞれの前記クライアントは、
複数の論理的レプリカに、該論理的レプリカの資源へのアクセスを求める要求を送信するように構成され、
前記複数の論理的レプリカから前記要求に対する複数の応答を受信するように構成され、
前記複数の応答から、該クライアントによる資源へのアクセスが許可されるどうかを判定し、該クライアントが許可されない場合に、資源へのアクセスを求める要求を再送しないように構成される
ことを特徴とするシステム。 - それぞれの前記クライアントは、前記複数の論理的レプリカのうちの所定数の論理的レプリカと排他的に関連づけられる場合に許可されることを特徴とする請求項20に記載のシステム。
- それぞれの前記クライアントは、前記複数の応答から、前記複数のクライアントのうちの1つによる1つの資源へのアクセスが許可されるかどうかを判定するように構成され、
前記複数のクライアントのいずれも許可されない場合、排他的に関連づけられているクライアントとして自身を示す値を含む応答を受信したクライアントが、該応答を送信した論理的レプリカに、該論理的レプリカとの排他的関連付けを解放させるための移譲メッセージを送信するように構成され、
前記移譲メッセージを受信した論理的レプリカは、該論理的レプリカのキューに格納されたこれまでの要求に基づいて別の応答を送信するように構成される
ことを特徴とする請求項20に記載のシステム。 - 分散ハッシュテーブルが、前記複数の資源を複数のバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の前記複数のコンピューティングデバイスによって提供され、
それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記複数のクライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ機能を備えるように構成される
ことを特徴とする請求項20に記載のシステム。 - それぞれの前記論理的レプリカが、応答を受信するための予想待機時間を提供するインフォームドバックオフメカニズムを使用するように構成され、
前記予想待機時間は、それぞれの前記要求を再送する前に前記クライアントが待機すべき時間の長さを定める
ことを特徴とする請求項20に記載のシステム。 - 前記論理的レプリカは、コーラムコンセンサスプロトコルを用いて資源へのアクセスを許可するように構成されることを特徴とする請求項23に記載のシステム。
- それぞれの前記論理的レプリカが、前記複数のコンピューティングデバイスのうちの1つまたは複数によって実行可能なピアであることを特徴とする請求項20に記載のシステム。
- 前記コーラムコンセンサスプロトコルが、前記複数の論理的レプリカのうちの所定数の論理的レプリカと排他的に関連づけられたクライアントから資源へのアクセスを許可することを特徴とする請求項20に記載のシステム。
- 資源へのアクセスを求める複数の要求を送信する手段と、
前記送信する手段を通信可能な結合でネットワーキングする手段と、
前記ネットワーキングする手段に通信可能に結合し、資源を提供する手段のレプリカである複数の論理的レプリカ手段を含む、資源を提供する手段と
を備えたシステムにおいて、それぞれの該論理的レプリカ手段は、
前記複数の要求を送信する手段のうちの1つの送信する手段と、他の送信する手段に該論理レプリカ手段の資源へのアクセス許可を与えることができないことを示す排他的関連づけがされるように構成され、
前記論理的レプリカ手段が別の送信する手段と排他的に関連づけられる場合に、該論理的レプリカ手段に対応する提供する手段が提供する資源へのアクセスを求める送信する手段からの要求を格納するためのキューを含み、
該論理的レプリカ手段に排他的に関連づけられている前記送信する手段を示す値を含む、前記複数の要求のそれぞれに対する応答を送信するように構成され、
該論理的レプリカ手段との排他的関連付けを解放させるための移譲(Yield)メッセージに応答して、該論理的レプリカ手段のキューに格納されたこれまでの要求に基づいて別の応答を送信するように構成され、
それぞれの前記送信する手段は、
複数の論理的レプリカ手段に、該論理的レプリカ手段の資源へのアクセスを求める要求を送信するように構成され、
前記複数の論理的レプリカ手段から前記要求に対する複数の応答を受信するように構成され、
前記複数の応答から、前記複数の送信する手段のうちの1つに資源へのアクセスが許可されるどうかを判定するように構成され、
前記複数の送信する手段のいずれも許可されない場合に、排他的に関連づけられている送信する手段として自身を示す値を含む応答を送信した論理的レプリカ手段に、前記移譲メッセージを送信するように構成される
ことを特徴とするシステム。 - 前記提供する手段が、
ピアツーピアネットワークを形成するように通信可能に結合した複数のコンピューティングデバイスと、
分散ハッシュテーブルと
を含み、
前記送信する手段が、複数のクライアントを含む
ことを特徴とする請求項28に記載のシステム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US54745704P | 2004-02-25 | 2004-02-25 | |
US60/547,457 | 2004-02-25 | ||
US10/886,794 | 2004-07-08 | ||
US10/886,794 US7526672B2 (en) | 2004-02-25 | 2004-07-08 | Mutual exclusion techniques in a dynamic peer-to-peer environment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005276181A JP2005276181A (ja) | 2005-10-06 |
JP4837929B2 true JP4837929B2 (ja) | 2011-12-14 |
Family
ID=34864594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005045429A Expired - Fee Related JP4837929B2 (ja) | 2004-02-25 | 2005-02-22 | 動的ピアツーピア環境における相互排除技法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7526672B2 (ja) |
EP (1) | EP1571801A3 (ja) |
JP (1) | JP4837929B2 (ja) |
KR (1) | KR101120844B1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8365301B2 (en) * | 2005-02-22 | 2013-01-29 | Microsoft Corporation | Peer-to-peer network communication |
US7849303B2 (en) * | 2005-02-22 | 2010-12-07 | Microsoft Corporation | Peer-to-peer network information storage |
TWI416901B (zh) * | 2005-11-30 | 2013-11-21 | Ibm | 故障容忍之異動處理系統 |
US20070143446A1 (en) * | 2005-12-21 | 2007-06-21 | Morris Robert P | Methods, systems, and computer program products for installing an application from one peer to another including application configuration settings and data |
US8171144B2 (en) * | 2006-02-06 | 2012-05-01 | Panasonic Corporation | AV server apparatus and connection management method |
US8041784B1 (en) * | 2006-06-27 | 2011-10-18 | Qurio Holdings, Inc. | Redundant hybrid P2P content sharing |
US8028019B2 (en) * | 2007-02-28 | 2011-09-27 | Solid State Networks, Inc. | Methods and apparatus for data transfer in networks using distributed file location indices |
US7984158B2 (en) * | 2007-03-20 | 2011-07-19 | Microsoft Corporation | Web service for coordinating actions of clients |
EP2023683B1 (en) * | 2007-08-09 | 2011-05-18 | Nokia Siemens Networks Oy | Mobile communication terminal, communication station, communication network, and communication method |
JP5171167B2 (ja) * | 2007-09-05 | 2013-03-27 | キヤノン株式会社 | 通信パラメータの設定処理を行う通信装置、当該通信装置の制御方法、並びにコンピュータプログラム |
US20090144220A1 (en) * | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | System for storing distributed hashtables |
US20090144333A1 (en) * | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | System for maintaining a database |
US20100174863A1 (en) * | 2007-11-30 | 2010-07-08 | Yahoo! Inc. | System for providing scalable in-memory caching for a distributed database |
US20090144338A1 (en) * | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | Asynchronously replicated database system using dynamic mastership |
EP2241067B1 (en) * | 2008-01-10 | 2016-09-21 | Hewlett-Packard Development Company, L.P. | Multiway peer-to-peer media streaming |
US7937482B1 (en) * | 2008-03-27 | 2011-05-03 | Amazon Technologies, Inc. | Scalable consensus protocol |
US8296398B2 (en) * | 2008-04-29 | 2012-10-23 | Overland Storage, Inc. | Peer-to-peer redundant file server system and methods |
US7992037B2 (en) * | 2008-09-11 | 2011-08-02 | Nec Laboratories America, Inc. | Scalable secondary storage systems and methods |
JP5168055B2 (ja) * | 2008-09-26 | 2013-03-21 | ブラザー工業株式会社 | 通信システム、端末装置及びコンテンツ情報取得方法 |
JP5445177B2 (ja) * | 2010-01-28 | 2014-03-19 | 富士通株式会社 | 確定クロック判定プログラム及び方法、並びにノード装置 |
US20110225120A1 (en) * | 2010-03-11 | 2011-09-15 | Yahoo! Inc. | System for maintaining a distributed database using leases |
US20110225121A1 (en) * | 2010-03-11 | 2011-09-15 | Yahoo! Inc. | System for maintaining a distributed database using constraints |
TWI464580B (zh) | 2012-12-24 | 2014-12-11 | Ind Tech Res Inst | 資料儲存方法、採用此方法的資料儲存系統及需求節點 |
EP4102431A1 (en) | 2016-04-29 | 2022-12-14 | nChain Licensing AG | Implementing logic gate functionality using a blockchain |
GB201607477D0 (en) * | 2016-04-29 | 2016-06-15 | Eitc Holdings Ltd | A method and system for controlling the performance of a contract using a distributed hash table and a peer to peer distributed ledger |
JP7124384B2 (ja) * | 2018-03-29 | 2022-08-24 | 日本電気株式会社 | 電文保証システムおよび電文保証方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553298A (en) * | 1994-04-14 | 1996-09-03 | Merryman, Deceased; Philip I. | Method and apparatus for mutual exclusion in self-directed distributed systems |
JPH0981438A (ja) * | 1995-09-20 | 1997-03-28 | Nec Corp | クライアントサーバシステムにおける自動排他制御システム |
US5913213A (en) * | 1997-06-16 | 1999-06-15 | Telefonaktiebolaget L M Ericsson | Lingering locks for replicated data objects |
JP4634547B2 (ja) * | 1998-06-30 | 2011-02-16 | 株式会社東芝 | リアルタイム情報配信方法 |
US6178441B1 (en) * | 1998-09-21 | 2001-01-23 | International Business Machines Corporation | Method and system in a computer network for the reliable and consistent ordering of client requests |
US6466978B1 (en) * | 1999-07-28 | 2002-10-15 | Matsushita Electric Industrial Co., Ltd. | Multimedia file systems using file managers located on clients for managing network attached storage devices |
US7133891B1 (en) * | 2000-05-31 | 2006-11-07 | International Business Machines Corporation | Method, system and program products for automatically connecting a client to a server of a replicated group of servers |
US7155524B1 (en) * | 2000-12-04 | 2006-12-26 | Lucent Technologies Inc. | Backoff protocols and methods for distributed mutual exclusion and ordering |
WO2003083614A2 (en) * | 2002-03-25 | 2003-10-09 | Eternal Systems, Inc. | Transparent consistent active replication of multithreaded application programs |
ATE552555T1 (de) | 2002-07-29 | 2012-04-15 | Open Invention Network Llc | Einheitliche nachrichtenanordnung für semiaktive und passive duplikation |
US7917646B2 (en) * | 2002-12-19 | 2011-03-29 | Intel Corporation | Speculative distributed conflict resolution for a cache coherency protocol |
-
2004
- 2004-07-08 US US10/886,794 patent/US7526672B2/en active Active
-
2005
- 2005-02-16 EP EP05101151A patent/EP1571801A3/en not_active Withdrawn
- 2005-02-22 JP JP2005045429A patent/JP4837929B2/ja not_active Expired - Fee Related
- 2005-02-25 KR KR1020050016148A patent/KR101120844B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP2005276181A (ja) | 2005-10-06 |
US20050188085A1 (en) | 2005-08-25 |
KR20060043196A (ko) | 2006-05-15 |
EP1571801A2 (en) | 2005-09-07 |
US7526672B2 (en) | 2009-04-28 |
EP1571801A3 (en) | 2011-03-02 |
KR101120844B1 (ko) | 2012-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4837929B2 (ja) | 動的ピアツーピア環境における相互排除技法 | |
US6487622B1 (en) | Quorum arbitrator for a high availability system | |
US8108455B2 (en) | Mobile agents in peer-to-peer networks | |
US7254608B2 (en) | Managing distribution of content using mobile agents in peer-topeer networks | |
US7328243B2 (en) | Collaborative content coherence using mobile agents in peer-to-peer networks | |
JP6059216B2 (ja) | 分散構成管理のための方法および装置 | |
JP2013102527A (ja) | フェデレーションインフラストラクチャ内の一貫性 | |
TW201007489A (en) | Peer-to-peer redundant file server system and methods | |
US20180219946A1 (en) | Leaderless consistency protocol | |
JP2014532210A (ja) | Smb2スケールアウト | |
Lin et al. | A practical distributed mutual exclusion protocol in dynamic peer-to-peer systems | |
JP5801482B2 (ja) | キーバリューストレージに対するデータの保存および読み出しを行う方法およびシステム | |
US20100322256A1 (en) | Using distributed timers in an overlay network | |
CN110663031B (zh) | 分布式存储网络 | |
CN114731297A (zh) | 用于计算设备对等方匹配的消息限制的自组织网络组 | |
Dabrowski et al. | Understanding consistency maintenance in service discovery architectures in response to message loss | |
Vardhan et al. | A demand based fault tolerant file replication model for clouds | |
Temkow et al. | PaxonDHT: Achieving consensus in distributed hash tables | |
CN100581109C (zh) | 动态对等网络环境中的互斥系统和方法 | |
Frank et al. | Picsou: Enabling Efficient Cross-Consensus Communication | |
Luntovskyy et al. | Architectural transformations in distributed systems | |
Campos et al. | Improving the scalability of DPWS-based networked infrastructures | |
Sankararaman et al. | Key consistency in DHTs | |
Jothen | Acropolis: aggregated client request ordering by Paxos | |
Gonçalves | SconeKV: Strongly CONsistEnt Key-Value Store |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110119 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110415 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110811 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20110812 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110812 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110901 |
|
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: 20110922 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110929 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141007 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees | ||
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |