JP2005276181A - 動的ピアツーピア環境における相互排除技法 - Google Patents
動的ピアツーピア環境における相互排除技法 Download PDFInfo
- Publication number
- JP2005276181A JP2005276181A JP2005045429A JP2005045429A JP2005276181A JP 2005276181 A JP2005276181 A JP 2005276181A JP 2005045429 A JP2005045429 A JP 2005045429A JP 2005045429 A JP2005045429 A JP 2005045429A JP 2005276181 A JP2005276181 A JP 2005276181A
- Authority
- JP
- Japan
- Prior art keywords
- client
- clients
- logical
- replica
- peer
- 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.)
- Granted
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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Combustion & Propulsion (AREA)
- Mechanical Engineering (AREA)
- Chemical & Material Sciences (AREA)
- Computer And Data Communications (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【解決手段】 一実施態様では、本発明の方法は、複数の論理的レプリカのそれぞれにおいて、クライアントから要求を受信することを含む。それぞれの論理的レプリカはキューを含み、1つのクライアントと排他的に関連づけられる。要求は、複数の資源のうちの1つにアクセスすることを求める要求である。論理的レプリカのうちの特定の1つが別の1つのクライアントと排他的に関連づけられていると、要求は、その特定の論理的レプリカのキューに格納される。
【選択図】 図1
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 (41)
- 複数の論理的レプリカのそれぞれにおいて、クライアントから要求を受信するステップであって、
それぞれの前記論理的レプリカが1つの前記クライアントと排他的関連づけがされるように構成され、
それぞれの前記論理的レプリカがキューを含み、
前記要求が、複数の資源のうちの1つの資源にアクセスすることを求める要求である、クライアントから要求を受信するステップと、
特定の論理的レプリカが別のクライアントと排他的に関連づけられている場合には、該特定の論理的レプリカのキューに前記要求を格納するステップと
を含むことを特徴とする方法。 - それぞれの前記論理的レプリカにおいて、該論理的レプリカの排他的関連づけを識別する、前記クライアントへ伝達するための応答を形成するステップをさらに含むことを特徴とする請求項1に記載の方法。
- それぞれの前記応答は、前記クライアントによる前記1つの資源へのアクセスが許可されるかどうかを前記クライアントが判断するための応答であることを特徴とする請求項2に記載の方法。
- それぞれの前記応答は、前記クライアントによる前記1つの資源へのアクセスが許可されるかどうかを前記クライアントが判断するための応答であり、
前記クライアントは、前記クライアントが前記複数の論理的レプリカのコーラム(quorum:定員)と排他的に関連づけられる場合に許可される
ことを特徴とする請求項2に記載の方法。 - それぞれの前記応答は、前記クライアントによる前記1つの資源へのアクセスが許可されるかどうかを前記クライアントが判断するための応答であり、
前記クライアントは、別のクライアントが許可される場合にはそれぞれの前記論理的レプリカからの別の応答を待機する
ことを特徴とする請求項2に記載の方法。 - 前記クライアントは複数のクライアントのうちの1つであり、
それぞれの前記応答は、前記複数のクライアントのうちの1つによる前記1つの資源へのアクセスが許可されるかどうかを判断するための応答であり、
前記複数のクライアントのいずれも許可されない場合には、少なくとも1つの前記クライアントが、
前記複数の論理的レプリカへの伝達、および
前記複数の論理的レプリカに別の応答を形成させること
のための移譲(Yield)メッセージを形成する
ことを特徴とする請求項2に記載の方法。 - 前記別の応答が、それぞれの前記キューに格納されたこれまでの要求から形成されることを特徴とする請求項6に記載の方法。
- 前記複数の資源が、分散ハッシュテーブル(DHT)を用いて分割され、
前記DHTが、前記複数の資源のそれぞれを複数のバケットのそれぞれのバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の複数のコンピューティングデバイスによって提供される
ことを特徴とする請求項1に記載の方法。 - それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記クライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ(障害迂回)機能を備えたことを特徴とする請求項8に記載の方法。
- コンピュータ実行可能命令を含む1つまたは複数のコンピュータ可読媒体において、コンピュータ上で実行される時に、該コンピュータに、請求項1に記載の方法を実行させることを特徴とするコンピュータ可読媒体。
- クライアントが複数の論理的レプリカへ伝達するための要求を形成するステップであって、該要求が複数の資源のうちの1つの資源を求める要求である、要求を形成するステップと、
前記クライアントにおいて、前記複数の論理的レプリカから複数の応答を受信するステップと、
前記複数の応答から、前記クライアントによる前記1つの資源の利用が許可されるかどうかを判定するステップと、
前記クライアントが、別のクライアントが許可される場合に別の要求を送信することなく別の複数の応答を待機するステップと
を含むことを特徴とする方法。 - 前記クライアントは複数のクライアントのうちの1つであり、
それぞれの前記レプリカがキューを含み、
前記複数のクライアントのいずれも許可されない場合、少なくとも1つの前記クライアントが、
前記複数の論理的レプリカへの伝達、および
前記複数の論理的レプリカにそれぞれの前記キューから別の複数の前記応答を形成させること
のための移譲メッセージを形成する
ことを特徴とする請求項11に記載の方法。 - それぞれの前記応答が、それぞれの前記論理的レプリカが前記クライアントによって所有されているかどうかを識別するように構成されることを特徴とする請求項11に記載の方法。
- それぞれの前記応答が、それぞれの前記論理的レプリカが前記クライアントによって所有されているかどうかを識別するように構成され、
前記クライアントが、前記複数の論理的レプリカのコーラムと排他的に関連づけられる場合に前記1つの資源の利用が許可される
ことを特徴とする請求項11に記載の方法。 - DHTが、前記複数の資源を複数のバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の複数のコンピューティングデバイスによって提供され、
それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記複数のクライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ機能を提供する
ことを特徴とする請求項11に記載の方法。 - それぞれの前記論理的レプリカが1つまたは複数の前記要求を格納するキューを含み、
前記キュー内のそれぞれの前記要求は、該要求がそれぞれの前記論理的レプリカによっていつ受信されたかに従って編成される
ことを特徴とする請求項11に記載の方法。 - コンピュータ実行可能命令を含む1つまたは複数のコンピュータ可読媒体において、コンピュータ上で実行される時に、該コンピュータに、請求項11に記載の方法を実行させることを特徴とするコンピュータ可読媒体。
- 複数のクライアントのそれぞれにおいて、複数の論理的レプリカへの伝達のために複数の資源のうちの1つの資源を求める要求を形成するステップと、
前記複数のクライアントにおいて、前記複数の論理的レプリカから複数の応答を受信するステップと、
それぞれの前記クライアントにおいて前記複数の応答を用いて、前記複数のクライアントのうちの1つに前記1つの資源の利用が許可されるかどうかを判定するステップと、
前記複数のクライアントのいずれも前記1つの資源の利用が許可されない場合、少なくとも1つの前記クライアントが、
前記複数の論理的レプリカのうちの1つまたは複数の論理的レプリカへの伝達、および
前記1つまたは複数の論理的レプリカのそれぞれに、1つまたは複数の前記クライアントから受信された前の要求を格納するそれぞれのキューから別の応答を形成させること
のための移譲メッセージを形成するステップと
を含むことを特徴とする方法。 - それぞれの前記応答が、それぞれの前記論理的レプリカが前記複数のクライアントのうちの1つと排他的に関連づけられているかどうかを識別するように構成され、
前記キュー内のそれぞれの前記前の要求は、該前の要求がそれぞれの前記論理的レプリカによっていつ受信されたかに従って編成され、
前記移譲メッセージが、前記1つまたは複数の論理的レプリカに、それぞれの前記キュー内の最先の前記前の要求に基づいて前記別の応答においてオーナシップを識別させる
ことを特徴とする請求項18に記載の方法。 - 前記移譲メッセージは、前記少なくとも1つのクライアントによって所有されるそれぞれの前記論理的レプリカに、前記それぞれのキューに基づいて異なる前記クライアントを選択させることを特徴とする請求項19に記載の方法。
- 前記1つの資源の利用は、前記複数のクライアントのうちの1つが前記複数の論理的レプリカのコーラムと排他的に関連づけられる場合に許可されることを特徴とする請求項18に記載の方法。
- 1つの前記クライアントによる前記資源へのアクセスが許可される場合、許可されない1つまたは複数の他の前記クライアントが別の複数の応答を待機することを特徴とする請求項18に記載の方法。
- 前記複数の資源が、分散ハッシュテーブル(DHT)を用いて分割され、
前記DHTが、前記複数の資源を複数のバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の複数のコンピューティングデバイスによって提供され、
それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記複数のクライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ機能を備えた
ことを特徴とする請求項18に記載の方法。 - コンピュータ実行可能命令を含む1つまたは複数のコンピュータ可読媒体において、コンピュータ上で実行される時に、該コンピュータに、請求項18に記載の方法を実行させることを特徴とするコンピュータ可読媒体。
- コーラムコンセンサスプロトコルを用いて資源アクセスを許可するための論理的レプリカを備えたことを特徴とするピアツーピアネットワーク。
- それぞれの前記論理的レプリカが、複数のコンピューティングデバイスのうちの1つまたは複数によって実行可能なピアであることを特徴とする請求項25に記載のピアツーピアネットワーク。
- 前記コーラムコンセンサスプロトコルが、前記論理的レプリカのコーラムと排他的に関連づけられたクライアントへの資源アクセスを許可するために用いられることを特徴とする請求項25に記載のピアツーピアネットワーク。
- それぞれの前記論理的レプリカが、資源アクセスを求める1つまたは複数のクライアントから受信される要求を格納するためのキューを含むことを特徴とする請求項25に記載のピアツーピアネットワーク。
- それぞれの前記キューは、それぞれの前記論理的レプリカが別のクライアントと排他的に関連づけられる場合に、前記1つのクライアントから受信される要求を格納するためのキューであることを特徴とする請求項28に記載のピアツーピアネットワーク。
- 前記資源アクセスが、分散ハッシュテーブルを用いて分割された複数の資源のうちの1つまたは複数に対する資源アクセスであることを特徴とする請求項25に記載のピアツーピアネットワーク。
- それぞれの前記論理的レプリカが、資源アクセスを求める要求に対する応答を受信するための予想待機時間をクライアントに提供するインフォームドバックオフメカニズムを使用し、
前記予想待機時間は、前記要求を再送する前に前記クライアントが待機すべき時間の長さを定める
ことを特徴とする請求項25に記載のピアツーピアネットワーク。 - ネットワークと、
前記ネットワークに通信可能に結合した複数のクライアントと、
前記ネットワークに通信可能に結合し複数の論理的レプリカを含む複数のコンピューティングデバイスと
を備えたシステムにおいて、それぞれの前記論理的レプリカが、
任意の一特定時刻において前記複数のクライアントのうちの1つのクライアントと排他的に関連づけられるように構成され、
前記論理的レプリカが別のクライアントと排他的に関連づけられる場合に資源にアクセスすることを求める前記1つのクライアントからの要求を格納するためのキューを含む
ことを特徴とするシステム。 - それぞれの前記論理的レプリカが、前記別のクライアントを識別する要求に対する応答を形成するようにさらに構成されることを特徴とする請求項32に記載のシステム。
- それぞれの前記クライアントは、それぞれの前記応答から、前記複数のクライアントのうちの1つによる前記1つの資源へのアクセスが許可されるかどうかを判定するように構成されることを特徴とする請求項33に記載のシステム。
- それぞれの前記論理的レプリカは、1つの前記クライアントが該論理的レプリカをいつ所有するかを識別する、前記要求に対する応答を形成するようにさらに構成され、
それぞれの前記クライアントは、それぞれの前記応答から、前記複数のクライアントのうちの1つによる前記1つの分割された資源の利用が許可されるかどうかを判定するように構成され、
前記1つのクライアントが前記複数の論理的レプリカのコーラムと排他的に関連づけられる場合に許可が得られる
ことを特徴とする請求項32に記載のシステム。 - それぞれの前記論理的レプリカは、1つの前記クライアントが該論理的レプリカと排他的に関連づけられるかどうかを識別する、前記要求に対する応答を形成するようにさらに構成され、
それぞれの前記応答は、それぞれの前記クライアントが、該クライアントによる前記1つの分割された資源へのアクセスが許可されるかどうかを判定するための応答であり、許可されない場合、該クライアントが別の応答を待機する
ことを特徴とする請求項32に記載のシステム。 - それぞれの前記論理的レプリカは、1つの前記クライアントが該論理的レプリカと排他的に関連づけられるかどうかを識別する、前記要求に対する応答を形成するようにさらに構成され、
それぞれの前記応答は、前記複数のクライアントが、1つの前記クライアントによる前記1つの資源の利用が許可されるかどうかを判定するための応答であり、
前記複数のクライアントのいずれも許可されない場合、少なくとも1つの前記クライアントが、
前記複数の論理的レプリカのうちの1つまたは複数の論理的レプリカへの伝達、および
前記1つまたは複数の論理的レプリカのそれぞれに、1つまたは複数の前記クライアントから受信された前の要求を格納するそれぞれの前記キューから別の応答を形成させること
のための移譲メッセージを形成する
ことを特徴とする請求項32に記載のシステム。 - 分散ハッシュテーブルが、前記複数の資源を複数のバケットに分割し、
前記複数のバケットが、ピアツーピアネットワーク内の前記複数のコンピューティングデバイスによって提供され、
それぞれの前記バケットを提供する1つの前記コンピューティングデバイスが前記複数のクライアントにとって利用可能でない場合、該バケットが別の前記コンピューティングデバイスによって利用可能にされるように、前記複数のコンピューティングデバイスがフェイルオーバ機能を備えた
ことを特徴とする請求項32に記載のシステム。 - それぞれの前記論理的レプリカが、応答を受信するための予想待機時間を提供するインフォームドバックオフメカニズムを使用し、
前記予想待機時間は、それぞれの前記要求を再送する前に前記クライアントが待機すべき時間の長さを定める
ことを特徴とする請求項32に記載のシステム。 - 資源を求める複数の要求を形成する手段と、
前記形成する手段を通信可能な結合でネットワーキングする手段と、
前記資源を提供する手段と
を備えたシステムにおいて、前記提供する手段が、前記ネットワーキングする手段に通信可能に結合するとともに、複数の論理的レプリカ手段を含み、該論理的レプリカ手段は、
前記形成する手段のいずれがそれぞれの前記論理的レプリカ手段を所有するかを識別する、前記複数の要求のそれぞれに対する応答を形成し、
1つまたは複数の前記要求を格納する
ことを特徴とするシステム。 - 前記提供する手段が、
ピアツーピアネットワークを形成するように通信可能に結合した複数のコンピューティングデバイスと、
分散ハッシュテーブルと
を含み、
前記形成する手段が、複数のクライアントを含む
ことを特徴とする請求項40に記載のシステム。
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 true JP2005276181A (ja) | 2005-10-06 |
JP4837929B2 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007063944A1 (ja) * | 2005-11-30 | 2007-06-07 | International Business Machines Corporation | 無停止トランザクション処理システム |
JP2010157204A (ja) * | 2008-09-11 | 2010-07-15 | Nec Lab America Inc | 検索可能なブロックを用いた連想記憶システムおよびその方法 |
JP2011154631A (ja) * | 2010-01-28 | 2011-08-11 | Fujitsu Ltd | 確定クロック判定プログラム及び方法、並びにノード装置 |
JP2019175222A (ja) * | 2018-03-29 | 2019-10-10 | 日本電気株式会社 | 電文保証システムおよび電文保証方法 |
Families Citing this family (22)
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 |
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 | キヤノン株式会社 | 通信パラメータの設定処理を行う通信装置、当該通信装置の制御方法、並びにコンピュータプログラム |
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 |
US20090144220A1 (en) * | 2007-11-30 | 2009-06-04 | Yahoo! Inc. | System for storing distributed hashtables |
WO2009088513A1 (en) * | 2008-01-10 | 2009-07-16 | 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 |
WO2009134772A2 (en) * | 2008-04-29 | 2009-11-05 | Maxiscale, Inc | Peer-to-peer redundant file server system and methods |
JP5168055B2 (ja) * | 2008-09-26 | 2013-03-21 | ブラザー工業株式会社 | 通信システム、端末装置及びコンテンツ情報取得方法 |
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 | 資料儲存方法、採用此方法的資料儲存系統及需求節點 |
EP3449450B1 (en) | 2016-04-29 | 2022-06-15 | Nchain Holdings Limited | 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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981438A (ja) * | 1995-09-20 | 1997-03-28 | Nec Corp | クライアントサーバシステムにおける自動排他制御システム |
JP2000020423A (ja) * | 1998-06-30 | 2000-01-21 | Toshiba Corp | リアルタイム情報配信方法 |
JP2001117807A (ja) * | 1999-07-28 | 2001-04-27 | Matsushita Electric Ind Co Ltd | ネットワークに接続された記憶装置のためのスケーラブルなマルチメディアファイルシステム |
Family Cites Families (8)
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 |
US5913213A (en) | 1997-06-16 | 1999-06-15 | Telefonaktiebolaget L M Ericsson | Lingering locks for replicated data objects |
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 |
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 |
US7231554B2 (en) * | 2002-03-25 | 2007-06-12 | Availigent, Inc. | Transparent consistent active replication of multithreaded application programs |
US6928577B2 (en) * | 2002-07-29 | 2005-08-09 | Eternal Systems, Inc. | Consistent message ordering for semi-active and passive replication |
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
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981438A (ja) * | 1995-09-20 | 1997-03-28 | Nec Corp | クライアントサーバシステムにおける自動排他制御システム |
JP2000020423A (ja) * | 1998-06-30 | 2000-01-21 | Toshiba Corp | リアルタイム情報配信方法 |
JP2001117807A (ja) * | 1999-07-28 | 2001-04-27 | Matsushita Electric Ind Co Ltd | ネットワークに接続された記憶装置のためのスケーラブルなマルチメディアファイルシステム |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007063944A1 (ja) * | 2005-11-30 | 2007-06-07 | International Business Machines Corporation | 無停止トランザクション処理システム |
JP4871296B2 (ja) * | 2005-11-30 | 2012-02-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 無停止トランザクション処理システム |
TWI416901B (zh) * | 2005-11-30 | 2013-11-21 | Ibm | 故障容忍之異動處理系統 |
JP2010157204A (ja) * | 2008-09-11 | 2010-07-15 | Nec Lab America Inc | 検索可能なブロックを用いた連想記憶システムおよびその方法 |
JP2011154631A (ja) * | 2010-01-28 | 2011-08-11 | Fujitsu Ltd | 確定クロック判定プログラム及び方法、並びにノード装置 |
JP2019175222A (ja) * | 2018-03-29 | 2019-10-10 | 日本電気株式会社 | 電文保証システムおよび電文保証方法 |
JP7124384B2 (ja) | 2018-03-29 | 2022-08-24 | 日本電気株式会社 | 電文保証システムおよび電文保証方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4837929B2 (ja) | 2011-12-14 |
KR101120844B1 (ko) | 2012-03-15 |
US7526672B2 (en) | 2009-04-28 |
EP1571801A2 (en) | 2005-09-07 |
US20050188085A1 (en) | 2005-08-25 |
EP1571801A3 (en) | 2011-03-02 |
KR20060043196A (ko) | 2006-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4837929B2 (ja) | 動的ピアツーピア環境における相互排除技法 | |
JP5798644B2 (ja) | フェデレーションインフラストラクチャ内の一貫性 | |
US6889253B2 (en) | Cluster resource action in clustered computer system incorporation prepare operation | |
US8108455B2 (en) | Mobile agents in peer-to-peer networks | |
US7254608B2 (en) | Managing distribution of content using mobile agents in peer-topeer networks | |
US8037202B2 (en) | Presence detection using mobile agents in peer-to-peer networks | |
JP6059216B2 (ja) | 分散構成管理のための方法および装置 | |
TW201007489A (en) | Peer-to-peer redundant file server system and methods | |
Lin et al. | A practical distributed mutual exclusion protocol in dynamic peer-to-peer systems | |
US11620087B2 (en) | Implicit leader election in a distributed storage network | |
US20100322256A1 (en) | Using distributed timers in an overlay network | |
Shen et al. | A proximity-aware interest-clustered P2P file sharing system | |
Temkow et al. | PaxonDHT: Achieving consensus in distributed hash tables | |
JP2009230686A (ja) | コンテンツ管理サーバ及びコンテンツ管理プログラム | |
CN100581109C (zh) | 动态对等网络环境中的互斥系统和方法 | |
Shafaat | Partition tolerance and data consistency in structured overlay networks | |
Luntovskyy et al. | Architectural transformations in distributed systems | |
Frank et al. | Picsou: Enabling Efficient Cross-Consensus Communication | |
Campos et al. | Improving the scalability of DPWS-based networked infrastructures | |
Bashir | Distributed Consensus | |
Jothen | Acropolis: aggregated client request ordering by Paxos | |
JP2006107118A (ja) | P2p環境におけるビザンチン耐故障ファイル共有の応答高速化方法 | |
Lu | Improving data consistency management and overlay multicast in Internet-scale distributed systems | |
Abouzamazem | Efficient and scalable replication of services over wide-area networks | |
Yu et al. | Atomic distributed semaphores for accessing networked data |
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 |