JP2014142945A - 分散リソース管理のためのバランスしたコンシステント・ハッシュ - Google Patents

分散リソース管理のためのバランスしたコンシステント・ハッシュ Download PDF

Info

Publication number
JP2014142945A
JP2014142945A JP2014039560A JP2014039560A JP2014142945A JP 2014142945 A JP2014142945 A JP 2014142945A JP 2014039560 A JP2014039560 A JP 2014039560A JP 2014039560 A JP2014039560 A JP 2014039560A JP 2014142945 A JP2014142945 A JP 2014142945A
Authority
JP
Japan
Prior art keywords
resource
network node
node
responsibility
cluster
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
Application number
JP2014039560A
Other languages
English (en)
Other versions
JP6033805B2 (ja
Inventor
Kai Chiu Wong
カイ シウ ウォン
Kumaresan Bala
バラ クマレサン
B Prince Harold Jr
ハロルド ビイ ジェイアール プリンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NortonLifeLock Inc
Original Assignee
Symantec Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of JP2014142945A publication Critical patent/JP2014142945A/ja
Application granted granted Critical
Publication of JP6033805B2 publication Critical patent/JP6033805B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】クラスタのようなマルチコンピュータ環境内のリソース管理責任のバランスし調和した配置のため、クラスタリソースを効率的に使用し、スケーラブルにする。
【解決手段】ネットワークの取り外し又は追加によって、利用可能なノード610〜660の数が変動するとき、リソースの管理責任は、ノード610〜660間でのリソース管理責任の再分散を最小化することを見つけ出すことが出来るように、リソース識別空間における複数のリソース識別子の配置が判定され、該リソース識別空間は複数の責任領域に分割される。また、各責任領域の管理責任が対応するノード610〜660に割り当てられ、責任の範囲のサイズは該割り当てられたノード610〜660の相対的能力によって決定される。
【選択図】図6

Description

本発明は、コンピュータリソース管理に関し、特に、多数のコンピュータからなるネットワークにおいてリソース管理責任を分散するシステムおよび方法に関する。
情報、および、情報を生成し、分配し、該情報を様々な形態で維持するコンピューティングシステムに対する高まっている依存により、情報リソースおよびこれらの情報リソースに対するアクセスを提供するための技術に対する大きな需要が継続している。多くの企業および団体は、かなりの量のコンピューティングリソース(コンピュータ資源)のみならず、最小のダウンタイムで利用可能なリソースを必要としている。このような要求に対する解決策の1つは、コンピューティングリソースがクラスタ化され、これにより、記憶領域ネットワーク環境における共有データにアクセスするための融通性があり、高性能で可用性が高いプラットフォームを提供する環境である。クラスタ全体のボリュームおよびファイルシステム構成は、簡略化され集中化された管理を可能にする。追加的な効果は、クラスタにおけるすべてノードに対して、共用化された装置構成の同じ論理的ビュー(仮想テーブル)を提供する一体化されたクラスタボリュームマネージャが提供されることである。
クラスタ環境の利点は、情報アクセスについての単一障害点を除去しまたは実質的に減少させる能力である。前記クラスタにおけるすべてのコンピュータノードは、共用されるデータリソースの同じビューが与えられ、同じ態様でこれらのデータリソースにアクセスすることができる。従って、1または複数の前記コンピュータリソースが故障に見舞われると、該故障したシステムによって実行されているタスクは、他のコンピュータノードに移されて更なる処理を受けることができる。クラスタリソース管理について単一障害点の除去または減少を効果的に実現するために、管理は前記クラスタのメンバーノード間で分散される。
クラスタのメンバーが該クラスタを離れると、該メンバーのリソース管理責任を残りのクラスタメンバー間で分散させる手配がなされなければならない。このようなリソース管理責任の再分散は、計算サイクルおよびネットワーク帯域等の、クラスタリソースを効率的に利用する態様で実行される、ことが望ましい。さらに、このようなリソース管理責任の再分散は、残りのクラスタメンバーの相対的能力を考慮することが望ましい。また、クラスタメンバー間のリソース管理責任の再分散の効率において、残りのノード間でのリソース管理責任の変動が最小化されることが望まれる。
本発明は、クラスタのようなマルチコンピュータ環境内のリソース管理責任のバランスし調和した配置のための仕組みを提供するものであり、クラスタリソースの効率的使用をなし、スケーラブルにする(拡張性をもたせる)ものである。本発明の実施例は、生き残るクラスタメンバー間でのリソース管理責任の再分散量を減ずることにより、リソース管理責任の再分散のためにクラスタが利用不能となる時間を減少させる。本発明の実施例は、複数の残りのクラスタノードの相対的能力に基づきリソース管理責任の再分散を提供する。
本発明の一実施例では、リソース識別空間における複数のリソース識別子の配置(location:所在位置)が判定され、該リソース識別空間は複数の責任領域に分割され、各責任領域の管理責任が対応するネットワークノードに割り当てられる。上記実施例の一観点においてリソース識別空間は名前空間(name space)であり、更なる観点において該名前空間内の格納位置を決定するためにリソースの名前がハッシュ(hash)される。上記実施例の別の観点において、リソース識別空間の前記領域に対する責任が割り当てられるネットワークノードは、ネットワークノードのクラスタのメンバーである。上記実施例の更に別の観点において、責任の範囲のサイズは該割り当てられたネットワークノードの相対的能力によって決定される。上記実施例の別の観点において、ネットワークの取り外し又は追加によって、利用可能なノードの数が変動するとき、リソースの管理責任は、ネットワークノード間でのリソース管理責任の再分散を最小化することを見つけ出すような手法で、再分散化される。
添付図面を参照することにより、本発明がより良く理解され、かつ、その目的、特徴、及び利点が当業者にとって明瞭にされるであろう。
本発明の実施例を具現化するのに適したマルチコンピュータ・ネットワーク・クラスタ構成を簡略化して示すブロック図。 本発明の実施例によって使用可能な、分散ロックマネージャを提供する2つのレベルのロックマネージャ環境を簡略化して示すブロック図。 ロックマスターが1クラスタ内の様々なノード間でどのように分散されるかを示す図。 本発明の実施例に従い、よって使用可能な、分散ロックマネージャを提供する2つのレベルのロックマネージャ環境を簡略化して示す図。 本発明の実施例に従い、マッピングテーブル再構築プロセス中にクラスタノードによって実行されるタスクの一実施例を簡略化して示すフロー図。 本発明の実施例に従い、マッピングテーブル再構築プロセス中にクラスタノードによって実行されるタスクの一実施例を簡略化して示すフロー図。 本発明の実施例に従い、クラスタ環境におけるプロキシと再配置されたマスターとの間のリマスター(remaster: マスター組み直し)メッセージのやり取りを簡略化して示すブロック図。 本発明の実施例に従い、ロックマスター再分散化中に複数クラスタノードについての新たなマスターをセットアップする場合に実行さるいくつかのタスクを簡略化して示すフロー図。 本発明の実施例を実装するのに適したコンピュータシステムを示すブロック図。 本発明の実施例を実装するのに適したネットワークアーキテクチャを図示するブロック図。
本発明は、クラスタのようなマルチコンピュータ環境内のリソース(資源)管理責任のバランスし調和した配置(balanced and consistent placement)のための仕組みを提供するものであり、クラスタリソースの効率的使用をなし、スケーラブルにする(scalable: 拡張性をもたせる)ものである。本発明の実施例は、生き残るクラスタメンバー間でのリソース管理責任の再分散量を減ずることにより、リソース管理責任の再分散のためにクラスタが利用不能となる時間を減少させる。本発明の実施例は、複数の残りのクラスタノードの相対的能力に基づきリソース管理責任の再分散を提供する。
クラスタ環境及び分散ロック
図1は、本発明の実施例を具現化するのに適したマルチコンピュータ・ネットワーク・クラスタ構成を簡略化して示すブロック図である。クラスタ120は、該クラスタのメンバーである複数のコンピュータノード(compute node:計算ノード)110(1)〜110(n)を含む。コンピュータノード110(1)〜110(n)はネットワーク120によって結合されている。図示するように、コンピュータノード110(1)〜110(n)は、記憶ボリュームリソース140(1)〜140(n)へのアクセスを提供する記憶エリアネットワーク(SAN)130にも接続されている。別の例として、記憶リソースは、バスベースのコントローラを介して様々なコンピュータノードに直接的に結合されることができ、あるいは、例えばネットワークアクセス可能な記憶装置として結合されることができる。各コンピュータノード110(1)〜110(n)はSAN130の記憶プールへの同時アクセスを持つ。この記憶リソースへの同時アクセスが与えられたならば、データの完全さを保証するために記憶プールへの読み書きアクセスを調整する必要がある。
図1に示すようなクラスタ環境においては、多様なリソースが該クラスタのメンバーノードによって共有される。そのようなリソースはSAN130内の記憶リソースを含み得、アプリケーションはクラスタの様々なメンバーノード上で実行され得、その他も同様である。クラスタのメンバーノード間のそのようなリソースの管理の分散は、それらのリソースへのアクセスの利益を受けることができない単一ポイントの存在を無くす若しくは減少する。
クラスタ内のリソースへのアクセスを管理する一例は、SAN130の記憶リソースによって提供されるクラスタファイルシステムに関連付けられたファイルロック(file lock)アーキテクチュアである。クラスタファイルシステムはクラスタ内の全てのファイルの単一のバージョンを提供し、それは該クラスタ内の全てのノードが見えるようになっている。各メンバーノードが或る特定のファイルについてそれ自身のバージョンを持っているとすると、特に該ファイルに対する書き込みアクセス中に、いずれか1ノードの所有するものが間違った情報となる可能性がある。特定のデータに対するいずれの書き込みアクセス中に該データの単一バージョンだけが存在することを保証するために、ファイルロック処理がクラスタ全体のファイルシステムにおいて実行される。
単一のコンピュータシステム内において、所与のソフトウェアアプリケーションを実行している複数のスレッドが同じデータにアクセスあるいはアップデートしてよい。「スレッド」という用語は、コンピュータプログラムが実行しているコンテキストを記述するために使用される。スレッド間の調整は、或るスレッドがデータをアップデートしているときは、2つの操作のタイミングに依存するデータの非調和がもたらされる可能性があるので、別のスレッドが共有データを読まないようにする、ということを保証するために必要である。図1に示すようなクラスタ環境においては、所与のソフトウェアアプリケーションの処理が様々なメンバーノード間で負荷バランスされ得る場合、データを共有する複数スレッドが該クラスタ内の異なるノード上で実行され続け得る。
共有データにアクセスする複数スレッド間の調整は、ロック処理を使用して実現できる。典型的には、ロックとは、共有データの1ピース例えば1ファイル又は1ディスクブロックを保護することである。クラスタのような分散システムにおいて、ロックは、所与のソフトウェアアプリケーションのオンライン又はオフラインステイタスのような、該システムの各ノードのメモリ内に分散された共有の「状態」情報、を保護することもできる。全ての共有データはロックによって保護され、ロックは典型的にはロックマネージャによって管理される。ロックマネージャは該データにアクセスする別のアプリケーションプログラムによって使用されるべきインタフェイスを提供する。
データに対するロックは、呼び出しするアプリケーションプログラムが該ロックによって保護されるデータにアクセスできる前に、リクエストされる。呼び出しするアプリケーションプログラムは典型的には、該ロックによって保護されるデータを書き込む又はアップデートするための「排他的」ロック、若しくは、該ロックによって保護されるデータを読み取るための「共有」ロックをリクエストする。呼び出しするアプリケーションが排他的ロックを許すならば、ロックマネージャは呼び出しするプログラムが該ロックを保持している1つのスレッドだけであることを保証する。呼び出しするアプリケーションが共有ロックを許すならば、別のスレッドが該データについての共有ロックを保持していてよく、しかし、該データについての排他的ロックは保持できない。
ロックマネージャはロックリクエストをすぐに許可することができない。1つのスレッドが所与のデータセットについての排他的ロックLを持ち、第2のスレッドが該所与のデータセットに対して共有されたアクセスをリクエストすることを一例として考えてみる。該第2のスレッドのリクエストは、第1のスレッドが該所与のデータセットについての排他的ロックを解除してしまうまで、許可されることができない。
ロックは、SAN130を通してアクセス可能なボリュームのような共有ディスク上に格納されるデータに置かれる。ロックは、データがクラスタ内の全てのノードについて一致されねばならない場合には、各ノードごとのメモリ内に格納された共有データに置かれることもできる。例えば、クラスタ内のノードはファイルシステムが搭載されたことを示す情報を共有することができる。ロックはファイルシステムの状態が搭載から不搭載に変わるとき又はその逆のとき、共有状態情報に置かれる。
分散ロック管理
上述のように、ロックマネージャはロック処理によって保護されたデータにアクセスするためのリクエストに応答する。クラスタ環境において、ロックマネージャのようなリソースマネージャは、単一ポイントでの失敗が無いようにする又は減ずるために、クラスタのメンバーノード間で分散化されることが望まれる。
図2は本発明の実施例によって使用可能な、分散ロックマネージャを提供する2つのレベルのロックマネージャ環境を簡略化して示すブロック図である。例えば、ノード210内のクライアントスレッド215はプロキシ220(A)を通してロックAをリクエストする。そのようなシステムにおいて、ロックを保持又はリクエストするノード毎のロック毎に1つのプロキシがある。例えば、ノード240上のロックAを保持又はリクエストするクライアント245に対応する該ノード240(プロキシ250(A))上の該ロックAのためのプロキシも有り得る。しかし、もしノード240がすでにロックAへのアクセスをしていないならば、プロキシ250(A)はロックA用のマスターに該ロックAをリクエストするであろう。図2に示すように、ロックA用のマスターは、ノード210に所在するマスター230(A)である。クラスタ内のロックにつき1つのマスターがある。もし該マスターがリクエストしているスレッドを実行しているノードに所在していないならば、該ノードに在るマスターテーブルが、リクエストされたロックにマスターを提供する遠隔のノードがどれであるか(識別)を見つけるために、参照される。例えば、もしクライアントがノード210上のプロキシ220(C)にロックCをリクエストしたならば、該プロキシ220(C)はノード270上のロックCのマスター290(C)にロックCをリクエストするであろう。ノード210が別の異なるスレッドのためにロックAを許可されてしまったとすると、プロキシ220(C)は、ロックマスターに更にリクエストすることなく、リクエストしているクライアントに対してロックCを分散化するよう管理することができる。上記例はプロキシを通してロックにアクセスする1つのスレッドについて言及しているが、複数のスレッドが単一のプロキシを通して1つのノードにアクセスできるようにしてもよい。更に、スレッドが単一ノード上の複数の対応するプロキシを通して複数のロックにアクセスできてもよい。
クラスタ内の複数のノードは同質のものである必要がなく、ノードを構成するコンピュータのタイプ又は構成において、若しくは、該ノード上で実行する処理において、これらのリソースをマスター制御するために公平に負荷を分散化するために、該クラスタの複数メンバーノードの相対的能力に従い、様々なロックマスターを分散化することが望ましい。ノードの能力を決定するための要因としては、例えば、処理速度、ノード上のプロセッサの数、利用可能なメモリの大きさ、ノード上の所望の負荷、などを含んでいてよい。ノードの能力は自動的に検出できるようにしてもよいし、あるいは、当該クラスタの管理者が該能力を定義できるようにしてもよく、そして、該能力の情報が様々なノード間でのロックマスターの分散化を決定する際に使用できるようになっていてよい。
図3はロックマスターが1クラスタ内の様々なノード間でどのように分散されるかを示す図である。元のマスターマップ310は、複数のロックマスター1乃至cが4ノードからなるクラスタのメンバーにどのように対応付けられるかを図示している。図においては、ロックマスターが、該マスターに対応付けられたロックの名前に基づきノードにわたって均等に分散化されている。各ロックの名前(すなわちロック名)は、例えば、iノード(inode)、ロックタイプ又はボリュームのようなファイルシステム情報から、ユニークに決定される。
ロックマスターを分散化するための一手法は、ロック名のハッシュ(hashing)を使用する。該ロック用のホストマスターに対するノードID(ノード識別子)は、ハッシュ値(モジュロn)として決定される。ここで、nは当該クラスタ内のホストマスターにとって利用可能なノードの数である。もし1つのノード(例えばノード3)が該クラスタを離れたならば、新たなマスターマップ320が同じアルゴリズムを使用して生成される。従って、マスター用のホストIDはハッシュ値(モジュロn)に基づいているが故に、ロックマスターの多くは生き残ったノード間で再配置(relocate)される。再配置されるマスターの数は、「((n−1)/n)*ロックマスターの数」である。
図3に示されたシステムにおいては、ロックマスターの多くが再配置されるべきであるので、古いマスター情報は無効にし、各クラスタノード上に新しいマスターテーブルを再構築するのが妥当である。新たなマスターが再分散されると、生き残ったプロキシは種々の新マスターにロック状態を送る。そのようなシステムの1つの問題は、ロック数とクラスタのサイズが増加するにつれて、再分散されるべきマスターを待つと共にプロキシがロック状態を送るのを待つ間に、クラスタの利用不可能性の増加量が生ずることである。更に、ロック用のマスターホストIDを決定するための上述のアルゴリズムは、再分散化を実行する際の複数ノードの相対的能力を考慮に入れていない。更に、クラスタの再構成の後に、各ロックIDが再ハッシュされる必要があり、また、マスターホストIDが該クラスタ内の生き残りのノード数に照らして再計算される必要があるので、処理コストがかなりかかる。
バランスしたコンシステント・ハッシュ法
本発明の実施例は、バランスしたコンシステント・ハッシュ法の仕組みを使用して、マスターホストIDの決定に際しての計算を減少させるのみならず、当該クラスタ内の様々な生き残りノード間で再分散化されるべきマスターの数をも減少させる。リソース識別「空間(space)」は、それに対応付けられたマスターがクラスタ内で分散化されるべきである各リソース毎の識別子によって定義される。本発明の実施例は、クラスタ内の様々なロック名についてのハッシュ計算を実行し、そこからリソース識別空間の範囲を決定する。このリソース識別空間は、計算されたハッシュ値の最小値から最大値までの広がりを持つ。このリソース識別空間は、それから、クラスタメンバーノードの相対的能力に従い、複数のクラスタメンバーノード間で釣り合いよく振り分けられる。もし或るノードが当該クラスタから離れた又は加入したとするならば、リソース識別空間は、生き残りのクラスタメンバーノード間で再び釣り合いよく振り分けられる。
図4は、本発明の実施例に従い、よって使用可能な、分散ロックマネージャを提供する2つのレベルのロックマネージャ環境を簡略化して示す図である。リソース識別空間410は、計算されたハッシュ値の最小値から最大値までの、ロック識別子用のハッシュ値の分布を図で示している。図示の目的のために、ロックA乃至Lはリソース識別空間を通して均一に分布しているように示されているが、そのような均一の分布は必要とされない。更に、クラスタメンバーノード1乃至4の元のマッピング420が示されている。一例として、4ノードのクラスタが使用され、各ノードの相対的能力は同じであるとみなされている。従って、ロック管理ハッシュ空間の責任領域の各々は、4つのノード間で均等であるとされている。
バランスしていないマップ430は、ノード3がクラスタから離れた事例を図示している。該図示事例では、ノード2の責任領域が単にノード3の責任領域内に延長されており、これにより、ノード2がノード3によって元々実行されていた全てのロック管理の責任を持つようにされる。この事例は、ノード2が、ロック管理タスクを実行するために、他のどのノード1又は4より多くのリソースを出費する必要があるため、バランスしていないと考えられる。
ロックマスターの再バランスしたマップ440は、生き残りの複数ノードにより均等に負荷を分け合わせるために、より望ましいものである。図示のように、ノード2がクラスタ内に残っていたとしても、ロックD用のマスターがノード2からノード1に移る。元々はノード3が行っていたロックG及びH用のマスターの責任は、今や、ノード2によって行われる。元々はノード3が行っていたロックI用のマスターの責任はノード4に移される。
マップ440用の再バランス処理を実行する際、12のロックマスターのうち4のみが、ノード3がクラスタを離脱した後に、再配置される。これは、図3に示されたシステムにおける9個(=((n−1)/n)*ロックマスターの数)のマスターに比べて少ない。従って、440に示されたバランスしたコンシステント・ハッシュ法の仕組みを通して、リソースのかなりの量を、ロックマスターの再作成(この点は追って詳しく述べる)に要求される計算サイクルと、様々なプロキシが新たなロックマスターにその状態を送るために要求されるネットワークリソースとの両方において、大切に使うことができる。更に、ロック識別子が再ハッシュされないので、コンピュータリソースを更に節約することができる。
マスターされるノード及びリソースの数が増加するにつれて、再分散されるリソースマスターの数がリソースマスターの合計のほぼ1/3に漸近的に近づく。再分散されるリソースマスターの数は、また、リソース識別空間の「エッジ」の1つに責任を持つノードに対して該空間の中間に責任を持つノードが利用不能になるかにつき、敏感である。本発明の一実施例は、エッジ無しのリソース識別空間をモデルすることにより、このエッジ感度問題を解決する。すなわち、例えば、リソース識別空間410の「A」エッジを該リソース識別空間の「L」エッジにリンクすることで、エッジ無しのリソース識別空間をモデルする。
別のバランスしたコンシステント・ハッシュ法は、クラスタを離脱したノードから生き残りノード群にロックマスターを単に移動することにより実現され得る。図4における一例を使用して説明すると、ノード3がクラスタを離脱した場合、ロックGに対応するロックマスターをノード1に、Hをノード2に、Iをノード4に移動する。これは、移動されるマスターの数が1/nに等しくなることとなる。ここで、nは元のクラスタ中のノードの数である。
1組のクラスタメンバーノードからのマスターノードの選択は、利用可能なノードのアレイとリソース識別空間を使用して実行される。マスターノードIDアレイ(master_nid[idx])は、各ノードの縮尺重み付け(scaled weight)に基づき複製されたクラスタメンバーノードIDの分類されたリストを含む。各ノードの縮尺重み付け(scaled weight)はアレイ内の他のノードに対する1つのノードの相対的能力に基づいている。例えば、もしノード1と3が1の重みを持ち、ノード2が2の重みを持つとすると、master_nidアレイはエントリ{1,2,2,3}を内容とするであろう。
該アレイの合計重み(tot_weight)は、master_nidアレイのエントリの数である。そこで、上述の例では、tot_weightは4である。ロックリソース用のマスターは、該ロックの名前のハッシュ値を計算して該ハッシュ値をハッシュ値空間内の最大値(max_hash)で割り算し、その商を合計重みで掛け算し、その積をマスターノードID値をmaster_nidアレイから取り出すための指標(インデックス)として使用することにより、該master_nid内に表された1つのノードに対して割り当てられることができる。従って、master_nidアレイ用の指標に到達するための式は、
idx = (hashval/max_hash) * tot_weight
である。master_nidの指標のための上記式は、最大ハッシュ値に対するロック名のハッシュについての正規化された値を計算し、該正規化された値をmaster_nidアレイ内のエントリの合計数で乗算することであることが分かる。
本発明の一実施例において、master_nidアレイの指標を計算するために、変更例として、整数計算を使用してもよい。この実施例においては、指標は下記式で計算される。
idx = (hashval11* tot_weight)>> 11
hashval 11は、該ロック名についての計算されたハッシュ値の最下位11ビットである。hashval 11は、master_nidアレイの合計重みで乗算される。その計算結果は11ビットだけ右シフトされ、指標値を産出する。この実施例では、該11ビットと11ビットの右シフトは、再配置の最中に探索されることができるハッシュ値の或る選択された最大値に関係して選択される。
バランスしたコンシステント・ハッシュ法の代替的な仕組みは既に述べたものであり、クラスタに残されたノードに対応付けられたロックマスターだけが再配置され、クラスタ内の残りのノードに対応付けられたそれらのロックマスターはそれらのノーに保持され続ける。そのような一例はここに述べられている。上述したように、master_nidアレイはクラスタ内の各ノードの縮尺重み付けに基づくエントリ群を内容としている。新しいクラスタについて、又はノードが参入してきたクラスタについて、master_nidアレイは、レベル1のマッピングテーブルとして記憶される。この代替的な仕組みは、ノードがクラスタを離れるとき第2のレベルのマッピングテーブル(例えばレベル2のマッピングテーブル)を導入する。ノードがクラスタを離れるとき、もはや該クラスタ内にいないノードに対応するmaster_nidアレイ内のそれらのエントリは、ゼロ値によって置き換えられ、この変更されたmaster_nidアレイがレベル1のマッピングテーブルとして保持される。それから、レベル2のマッピングテーブルは、生き残るノードの縮尺重み付けに基づき構築される。レベル2のマッピングテーブルは、外れたノードからのマスターを生き残るノードに再分散するために使用される。マスターノードIDのルックアップ(参照)中に、レベル1のマッピングテーブル用の指標が上述した手法のいずれかによって計算される。もしレベル1のマッピングテーブル内のノードIDがゼロならば、第2の指標がレベル2のマッピングテーブル用に計算される。このレベル2の指標を計算するための式は次の通りである。
idx 2 = (((((hashval11)&0x3f)<<5│((hashval 11)>>6)) * tot_weight2) >> 11
上記式において、hashval 11はハッシュ値の最下位11ビットであり、tot_weight2はレベル2のマッピングテーブルのサイズである。再び、ハッシュ値の最下位11ビットの使用と11ビットの右シフトが、再配置されたマスターを探索するために使用されたテーブルサイズに関係する。
上述した本発明の代替的実施例では2つのレベルのマッピングテーブルを使用しているが、いくつのレベルのマッピングテーブルが使用されるようになっていてもよく、各レベルはクラスタ内のノードの数を変更するイベントに対応している。そのような使用するテーブルの数は、テーブルを記憶するのに必要なメモリ資源を必要とし、また、テーブル参照を複数レベルで実行する際に使用されるコンピュータ資源を必要とする。更に、上述したように、新しいノードがクラスタに参入するとき、レベル1のマッピングテーブルが構築される。従って、上述した実施例では、既存のノードがクラスタを離脱するのと同じ期間において新しいノードがクラスタに参入するとき、レベル1のマッピングテーブルだけが構築される。
図4に示された例は、ネットワーク環境からのノードの取り除きをもたらし、引き続く残りのノードに対するリソース管理の再分散化処理をもたらし、その方法論は、ネットワーク環境に対するノードの追加を含み、且つ、追加ノードに対するリソース管理責任の分散化を許す。
図5aは、本発明の実施例に従い、マッピングテーブル再構築プロセス中にクラスタノードによって実行されるタスクの一実施例を簡略化して示すフロー図である。ロックマスター分散化は、クラスタのメンバーシップの変化によってトリガーされる再スタートコール(要求)によって始められる(510)。そのようなクラスタのメンバーシップの変化は、クラスタ・メンバーシップ・モニターによって検出され、クラスタに参入した新たなメンバーシップ識別子の出現又は或る時間経過後に該クラスタから或るノードが不在となること又は或るノードからの明示的な離脱表明によって識別される。再スタートコールに応じて、該クラスタ内の各ノードは当該ノードについての情報を全ての他のノードにブロードキャスト(同報配信)する(515)。そのようなノード情報は、例えば、上述したようなノード能力情報と、該クラスタに該ノードが参入したときを示す情報(例えばノード参入タイムスタンプ)である。それから、該ノードはその他の残りの全てのノードからノード情報を受信するのを待つ(520)。
該他のノードから受信する前記情報に照らして、上述したように、各ノードはレベル1のマッピングテーブル又はレベル2のマッピングテーブルを構築する(525)。各ノードに記憶されたプロキシテーブルがスキャンされ、上述したバランスしたコンシステント・ハッシュ法を使用して新たなマッピングテーブルを参照し且つプロキシ用の以前のマスターの記録(例えばリモートマスターテーブル)と該新たなマッピングテーブルに対する参照結果とを比較することにより、いずれかのプロキシが再配置されたマスターに関係しているかどうかが決定される(530)。再配置されたマスターがなければ(535)、該ノード上のプロキシはそれに対応付けられたマスターに情報を送る必要がない。これは、上述したような従来技術において殆ど全てのマスターが再配置され且つそれ故にマスターテーブルが完全に再構築され、全てのプロキシがそれらのマスターに情報を送らねばならない、という従来技術に比べて、バランスしたコンシステント・ハッシュ法の顕著な特徴である。もしプロキシがそれに対応付けられた再配置されたマスターをもっているならば(535)、今やロックIDを支配する責任を持つようになったノードに対してリマスター(マスター組み直し)メッセージが送信される(540)。これは再配置されたマスターを持つ各プロキシ毎に実行される。1つのノードは、該ノードがリマスターメッセージを送ることを完了したということを、例えば、該ノードがリマスターメッセージを送ることを終了したということを示すメッセージを該クラスタ内の全てのノードにブロードキャストすることにより、示すことができる(例えば「DONE_REMASTER」メッセージ)。
図6は、本発明の実施例に従い、クラスタ環境におけるプロキシと再配置されたマスターとの間のリマスターメッセージのやり取りを簡略化して示すブロック図である。図6は、クラスタのメンバーがノード610〜660であることを図示している。ノード610はロックマスターAに責任を持つ。ロックマスターAがノード610に再配置されたことを発見すると、ロックAのプロキシを持つクラスタ内の各ノードはリマスターメッセージをノード610に通信する。同様に、ノード630はロックマスターBに責任を持ち、ロックBのプロキシを持つノードがノード630にリマスターメッセージを送信する。この図から、再配置されたロックマスターの数が多いほど,リマスターメッセージのためにネットワーク通信量が多い。更に、ノード及びプロキシの数が増加するにつれ、ネットワーク通信量も増加する。そこで、ロックマスターの再配置を最小に保つ仕組みが、ネットワークリソース(例えば帯域)を有意義に維持するであろう。
図5aに戻ると、該ノードは、該ノードから再配置されたいずれかのマスターを該ノードのマスターテーブルから削除する(545)。該ノードが、該ノード自身のマスターテーブルを変更し、該変更されたマスターテーブルに関連する待ち行列(queue: キュー)上のハウスキーピング・タスクを実行した後(例えば、図5bに関連して以下述べる)、該ノードのプロキシに対応付けられた各再配置されたマスター毎に、ノードのプロキシからのいずれかの未処理のリクエストが該再配置されたマスターに送信され得る(550)。
図5bは、本発明の実施例に従い、変更されたマスターテーブルに関連するハウスキーピング・タスクにおいて実行されるタスクを簡略化して示すフロー図である。該ノードが全ノードからの全てのリマスターメッセージを受信したかどうかの判定がなされる(560)。そのような判定は、例えば、該ノードが上述のような「DONE_REMASTER」メッセージを全ての他のノードから受信したかどうかを判定することにより、行うことができる。もしそうでなければ、該ノードは追加のリマスターメッセージを待つことができる。もし全てのリマスターメッセージを受信したならば、該ノードは、該ノードによって支配(マスター)されているロック処理のリクエストを取り扱う「準備」ができたことを表明する情報をブロードキャストする(565)。それから、該ノードは該クラスタ内の他の全てのノードから「準備」表明情報を受信するよう待機することができ(570)、そのようにしているとき、該ノード上のマスターテーブルをクリーンアップすることに関連したタスクを実行することができる。該ノードは、例えば、リクエストの待ち行列をスキャンして、該クラスタから離脱したノードからのロックリソースのリクエストを削除することができる(575)。該ノードは、許可の待ち行列をスキャンして、該クラスタから離脱したノードに与えられた許可を削除することができる(580)。許可が削除された場合(585)、該ノードはリクエストの待ち行列を処理して、該許可の削除に照らして、いずれかのリクエストされたロックリソースが今や許可され得るかどうかを判定することができる(590)。それ以外の(他のスレッドによって)ロックされたリソースを無効にするためのリクエストについての無効待ち行列がスキャンされることができ、もし無効のリクエスト元が該クラスタから取り除かれているならば、許可の待ち行列に昇進される代わりに全ての無効が終了させられるとき、そのエントリが削除されることができる(595)。
図示では順次に行われるようにしているが、これらのタスクの多く(例えばプロキシテーブルスキャン(530)、再配置されたマスターの削除(545)、リクエスト及び許可待ち行列のスキャン(575,580)、マスターテーブルのアップデート(下記の715))が1つのノードによって同時的に実行されることができ、それにより、メンバーノード間でのマスターの再配置に関わり合う時間量を減少させることができる。
新たなマスターテーブルを実装するための処理の一部は、古いメッセージを除去することを含んでいる。古いメッセージは、再配置されたか廃棄されたマスターからノードにあるいはその逆に発せられたものである。古いメッセージは、また、もはや該クラスタのメンバーではない送り手のノードからも廃棄され得る。更に、該クラスタに参入した送り手又は受け手に送られたいかなるメッセージも、同様に、廃棄され得る。
図7は、本発明の実施例に従い、ロックマスター再分散化中に複数クラスタノードについての新たなマスターをセットアップする場合に実行されるいくつかのタスクを簡略化して示すフロー図である。ノードは、540において送られるもののようなリマスターメッセージを受信したとき処理を開始する(710)。それから、該ノードは、該ノードが責任を持つべき新たなマスターについてのエントリを含むように、該ノードのマスターテーブルをアップデートする(715)。
ネットワーククラスタ環境におけるリソース管理の再分散化は、ロックリソース管理の一例を使用して、上述された。しかし、本発明のコンセプトは、リソースが共有される分散コンピュータ環境内でのその他のタイプのリソースの分散化管理に対しても適用することができることが理解されるべきである。本発明の原理は、ロック管理に限らず、例えば、分散コンピュータ環境内でのアプリケーションの管理あるいは各電子メールサーバが1つのネットワークについての受取人の電子メールアドレスの範囲に責任を持つような複数の電子メールサーバを提供することにも適用することができる。
コンピュータ及びネットワーク環境の一例
上記のように、本発明は、多様なコンピュータシステムとネットワークを使用して実装され得る。そのようなコンピュータシステムとネットワーク環境の一例が図8及び図9を参照して以下説明される。
図8は本発明を実装するのに適したコンピュータシステム810のブロック図を示す。ネットワークコンピュータシステム810は該コンピュータシステム810の主要なサブシステムを相互接続するバス812を含み、該主要なサブシステムとは、中央プロセッサ814、システムメモリ817(典型的にはRAM、しかしROMやフラッシュRAMその他を含んでいてもよい)、入出力コントローラ818、オーディオ出力インタフェイス822を介在させたスピーカシステム820のような外部オーディオ装置、ディスプレイアダプター826を介在させたディスプレイ画面824のような外部装置、シリアルポート828、830、キーボード832(キーボードコントローラ833でインタフェイスされている)、記憶装置インタフェイス834、フレキシブル磁気ディスク838を受容するよう動作するフレキシブル磁気ディスクドライブ837、光ファイバーチャンネルネットワーク890に接続するよう動作するホストバスアダプター(HBA)インタフェイスカード835A、SCSIバス839に接続するよう動作するホストバスアダプター(HBA)インタフェイスカード835B、光ディスク842を受容するよう動作する光ディスクドライブ840等である。また、マウス846(若しくはシリアルポート828を介してバス812に接続されたその他のポイント及びクリック装置)、モデム847(シリアルポート830を介してバス812に接続された)、ネットワークインタフェイス848(バス812に直接結合された)などが含まれる。
バス812は中央プロセッサ814とシステムメモリ817との間でのデータ通信を可能にし、既に述べたように該システムメモリ817は読み出し専用メモリ(ROM)又はフラッシュメモリ(両方共図示せず)、ランダムアクセスメモリ(RAM)(図示せず)を含む。RAMは、一般に、オペレーティングシステムとアプリケーションプログラムがロードされるメインメモリである。ROM又はフラッシュメモリは、その他のコードの間で、周辺機器要素との相互作用のような基本的ハードウェア操作をコントロールする基本的入力−出力システム(BIOS)を含み得る。コンピュータシステム810に常駐するアプリケーションは、一般に、ハードディスクドライブ(例えば固定ディスク844)、光ディスクドライブ(例えば光ディスクドライブ840)、フレキシブル磁気ディスクユニット837又はその他の記憶媒体のような、コンピュータ読み取り可能な媒体上に記憶されアクセスされる。加えて、アプリケーションは、ネットワークモデム847又はインタフェイス848を介してアクセスされるとき、アプリケーション及びデータ通信技術に従って変調された電子的信号の形態をとり得る。
記憶装置インタフェイス834は、コンピュータシステム810のその他の記憶装置インタフェイスの場合のように、固定ディスクドライブ844のような情報の記憶と取り出しのための標準的なコンピュータ読み取り可能な媒体に接続され得る。固定ディスクドライブ844は、コンピュータシステム810の一部であってもよく、あるいは、別であって他のインタフェイスシステムを介してアクセスされるようになっていてもよい。モデム847は、電話リンクを介してリモートサーバーに又はインターネットサービスプロバイダ(ISP)を介してインターネットに、ダイレクトに接続を提供し得る。ネットワークインタフェイス848は、ダイレクトネットワークリンクを介してリモートサーバーに又はPOP(point of presence)を介してインターネットに、ダイレクト接続を提供し得る。ネットワークインタフェイス848は、デジタル携帯電話接続、携帯電話デジタルパケットデータ(CDPD)接続、デジタル衛星データ接続、その他のような無線技術を使用して、それらの接続を提供してもよい。
多くのその他の装置又はサブシステム(図示せず)(文書スキャナーやデジタルカメラその他)が同様の手法で接続されていてもよい。反対に、図8に示した全ての装置が本発明を実施するために提示される必要がない。装置又はサブシステムは、図8とは異なるやり方で相互接続されることができる。図8に示すようなコンピュータシステムの動作は、公知であり、本書では詳しく述べない。本発明を実現するためのコードは、システムメモリ817、固定ディスク844、光ディスク842、又はフレキシブル磁気ディスク838の1以上のようなコンピュータ読み取り可能な記憶媒体内に記憶されることができる。コンピュータシステム810上に提供されたオペレーティングシステムは、MS−DOS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、UNIX(登録商標)、Linux(登録商標)、又はその他公知のオペレーティングシステムであってよい。
更に、ここで説明した信号に関しては、この技術の熟練者であれば、信号が第1ブロックから第2ブロックにダイレクトに送信されることができ、若しくは信号がブロック間で変形される(例えば増幅、減衰、遅延、ラッチ、バッファ、インバート変換、フィルター、又はその他の変更)ことができる、と理解するであろう。上記実施例の信号は1ブロックから次に送信されるようになっているが、本発明の別の実施例では、該信号の情報としての及び/又は機能的な観点においてブロック間で送信がなされる限り、そのような直接の送信に代えて、変更された信号が含まれていてよい。いくつかの拡張において、第2のブロックで入力された信号は、関係する回路の物理的限界(例えば減衰や遅延が不可避である)のために、第1のブロックから出力された第1の信号から派生された第2の信号として概念化され得る。そこで、ここで使用されるように、第1の信号から派生された第2の信号は、回路限界であるにせよ、あるいは該第1の信号の情報としての及び/又は機能的な観点を変更しない他の回路要素を通過するにせよ、該第1の信号又は該第1の信号の何らかの変形を含む。
図9はネットワークアーキテクチャ900を図示するブロック図であり、クライアントシステム910,920,930及び記憶サーバー940A,940B(これらのいずれかは前記コンピュータシステム810を使用して実装され得る)がネットワーク950に結合される。記憶サーバー940Aが更に記憶装置960A(1)〜960A(N)を直接的に附属しており、かつ、記憶サーバー940Bが更に記憶装置960B(1)〜960B(N)を直接的に附属しているように図示されている。記憶エリアネットワーク(SAN)に対する接続は本発明の動作に必須のことではないが、記憶サーバー940A,940Bは、また、SAN組織970に接続されてもいる。SAN組織970は、記憶サーバー940A,940Bによる、ひいてはネットワーク950を介したクライアントシステム910,920,930による、記憶装置980(1)〜980(N)へのアクセスをサポートする。またSAN組織970を介してアクセス可能な特定の記憶装置の一例として、インテリジェント記憶アレイ990が図示されている。
コンピュータシステム810、モデム847、ネットワークインタフェイス848、若しくはその他いくつかの手法を使用して、クライアントコンピュータシステム910,920,930の各々からネットワーク950への接続性を提供することができる。クライアントシステム910,920,930は、例えばウェブブラウザやその他のクライアントソフトウェア(不図示)を使用して、記憶サーバー940A,940B上の情報にアクセスすることができる。そのようなクライアントソフトウェアは、記憶サーバー940A又は940B、若しくは記憶装置960A(1)〜960A(N)、960B(1)〜960B(N)、980(1)〜980(N)の1つ、若しくはインテリジェント記憶アレイ990、によってホストされるデータに、クライアントシステム910,920,930がアクセスできるようにするものである。図9はデータを交換するためのインターネットのようなネットワークでの使用を図示しているが、本発明はインターネット又は特定のネットワークベースの環境に限定されるものではない。
その他の実施例
本発明は、上述した利点及びその他の本来的にその中に持つ利点を奏するのに適している。上記では、本発明が説明され、図示され、かつ、発明の特定の実施例を参照して定義されているが、そのような参照は発明を限界づける意味合いを持つのではなく、そのような限界を暗示するものではない。本発明は、関係する当該技術分野の通常の熟練技術者にとって、かなりの変形と変更とその形態及び機能における等価物が可能である。ここで述べかつ図示した実施例は一例にすぎず、発明の範囲を網羅するものではない。
上述の実施例では、他の構成要素(例えばコンピュータシステム810の構成要素として示された種々の要素)内に含まれる構成要素を含んでいる。そのような設計思想は単なる一例であり、実際のところ、その他の多くの設計思想が上述と同様の機能を実現するために実装され得る。一般的に言えば、しかし、明白な趣旨で、同様の機能性を達成するためのどのような構成要素の配列であっても、所望の機能性を達成するように有効に「対応付け」られる。従って、特定の機能性を達成するためにここに組み合わされた任意の2つの構成要素は、設計思想又は中間の構成要素と関係なく、所望の機能性が達成されるように互いに「対応付け」られた(関連付けられた)ものと見られ得る。同様に、そのように対応付けられた任意の2つの構成要素は、所望の機能性を達成するために互いに対して「操作可能に接続された」または「操作可能に結合された」ものとしても見なし得る。
上述の詳細な説明ではブロック図、フロー図及び実例を使用して本発明の様々な実施例を説明した。各ブロック図、フロー図の各ステップ、動作、及び/又は実例の使用によって説明された構成要素が、個別に及び/又は一括して、広範囲なハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせによって実装され得ることは、当業者に理解されるであろう。
本発明は完全に機能的なコンピュータシステムの脈絡で説明されてきたが、当業者は、本発明が様々な形態のコンピュータプログラム製品として分配され得ること、及び本発明が分配を実際に遂行するために使用される信号保持媒体の特定のタイプとは無関係に等しく適用されることを理解するであろう。信号保持媒体の例は、将来的に発達する媒体記憶及び分配システムは勿論のこと、コンピュータ読み取り可能な媒体、デジタル又はアナログ通信リンクのような伝送型媒体などがある。
上述の実施例は特定のタスクを実行するソフトウェアモジュールによって実装され得る。ここで述べたソフトウェアモジュールは、スクリプト又はバッチ若しくはその他の実行可能なファイルを含んでいてよい。該ソフトウェアモジュールは、フレキシブル磁気ディスク、ハードディスク、半導体メモリ(例えばRAM,ROM,フラッシュ型メディア)、光ディスク(例えばCD−ROM、CD−R,DVD)又はその他のタイプのメモリモジュールのような、機械読み取り可能な又はコンピュータ読み取り可能な記憶媒体上に格納されていてよい。本発明の実施例に従ってファームウェア又はハードウェアモジュールを記憶するために使用される記憶装置は、半導体ベースのメモリを含んでいてよく、該メモリは、永久的に、取り外し可能に、又は遠隔的に、マイクロプロセッサ/メモリシステムに結合されるものであってよい。こうして、該モジュールは、コンピュータシステムが当該モジュールの機能を実行するように該コンピュータシステムを構成するためのコンピュータシステムメモリ内に格納され得る。その他の新規な及び様々なタイプのコンピュータ読み取り可能な記憶媒体が、ここに述べたようなモジュールを記憶するために使用されてよい。
上記説明は本発明を説明するために意図されており、限界づけるものとして取られるもの ではない。本発明の範囲内の別の実施例が可能である。当業者はここで述べた構造及び方法を提供するために必要な手順を容易に実装するであろうし、手順の処理パラメータ及び順序は、説明のためのみに与えられたものであり、本発明の範囲内の変形例と同様に、所望の構造を達成するために変化され得る。ここに述べた実施例の変化と変更は、本発明の範囲から逸脱することなく、ここに述べた説明に基づきなされ得る。
従って、本発明は、全ての関連において均等物への完全な認識を与える添付の特許請求の範囲によってのみ限定されるものである。

Claims (21)

  1. リソース識別空間における複数のリソース識別子の配置を判定するステップと、
    前記リソース識別空間を第1の複数の個別の責任領域に分割するステップと、ここで、前記責任領域の各々が1つの独特のネットワークノードに対応付けられていて、全責任領域の合計が前記リソース識別空間の全てを包含しており、
    第1の責任領域内に配置された1つのリソース識別子に対応付けられた1つのリソースに対する管理責任を、前記第1の責任領域に対応付けられた前記ネットワークノードに割り当てるステップと
    を具備する方法。
  2. 前記リソース識別空間は名前空間である、請求項1に記載の方法。
  3. 1つのリソースの名前をハッシュすることにより、前記複数のリソース識別子のうちの1つのリソース識別子を計算するステップを更に具備する請求項2に記載の方法。
  4. iノード識別子を使用して前記1つのリソースの名前を引き出すステップを更に具備し、ここで、該リソースは、ファイルシステム内の1つのファイル及び1つの記憶位置のうち1つである、請求項3に記載の方法。
  5. 電子メールアドレスを使用して前記1つのリソースの名前を引き出すステップを更に具備し、ここで、該リソースは、メールボックス、該メールボックスに関連付けられた状態情報、該メールボックスに関連付けられたメタデータ、該メールボックスに関連付けられた管理情報、及び電子メールシステム内のメールデータのうち1つである、請求項3に記載の方法。
  6. 前記ネットワークノードの各々は、ネットワークノードの1クラスタ内の1メンバーである、請求項1に記載の方法。
  7. 前記複数のリソース識別子のうちの1つによって識別される1つのリソースが前記ネットワークノードの1クラスタ内の全メンバーにアクセス可能である、請求項1に記載の方法。
  8. 前記対応付けられたネットワークノードの能力に基づき該対応付けられたネットワークノードに対する責任領域を決定するステップを更に具備する請求項1に記載の方法。
  9. 前記対応付けられたネットワークノードの能力を、プロセッサ能力とメモリ能力のうち1以上に関係付けるステップを更に具備する請求項8に記載の方法。
  10. 前記対応付けられたネットワークノードの能力を、ユーザ入力によって定義するステップを更に具備する請求項8に記載の方法。
  11. 前記対応付けられたネットワークノードの能力は、各他のネットワークノードに対して相対的に定義される、請求項8に記載の方法。
  12. 1つのネットワークノードがネットワークに参入又は離脱するとき、責任領域に対応付けするのに利用可能なネットワークノードの現在の数を使用して、前記分割するステップと前記割り当てるステップを第2の複数の責任領域において実行するステップを更に具備する請求項1に記載の方法。
  13. 前記第1の複数の責任領域と前記第2の複数の責任領域の間での責任領域の重複を最大にするステップを更に具備する請求項12に記載の方法。
  14. リソース識別空間における複数のリソース識別子の配置を判定するように構成された、プロセッサによって実行可能な、第1の命令セットと、
    前記リソース識別空間を第1の複数の個別の責任領域に分割するように構成された、プロセッサによって実行可能な、第2の命令セットと、ここで、前記責任領域の各々が1つの独特のネットワークノードに対応付けられていて、全責任領域の合計が前記リソース識別空間の全てを包含しており、
    第1の責任領域内に配置された1つのリソース識別子に対応付けられた1つのリソースに対する管理責任を、前記第1の責任領域に対応付けられた前記ネットワークノードに割り当てるように構成された、プロセッサによって実行可能な、第3の命令セットと
    を記憶したコンピュータ読み取り可能な記憶媒体。
  15. 前記リソース識別空間は名前空間である、請求項14に記載のコンピュータ読み取り可能な記憶媒体。
  16. 1つのリソースの名前をハッシュすることにより、前記複数のリソース識別子のうちの1つのリソース識別子を計算するように構成された、プロセッサによって実行可能な、第4の命令セットを更に具備する請求項15に記載のコンピュータ読み取り可能な記憶媒体。
  17. 前記対応付けられたネットワークノードの能力に基づき該対応付けられたネットワークノードに対する責任領域を決定するように構成された、プロセッサによって実行可能な、第4の命令セットを更に具備する請求項1に記載のコンピュータ読み取り可能な記憶媒体。
  18. 複数のネットワークノードと、ここで、該複数のネットワークノード内の各ネットワークノードは、それぞれに対応するプロセッサと、該プロセッサに結合されたメモリと、該プロセッサに結合されたネットワークインタフェイスとを備えており、
    前記複数のネットワークノードを互いに結合するように構成されたネットワークであって、前記ネットワークノードの前記ネットワークインタフェイスに結合される前記ネットワークと
    を具備し、
    前記各ネットワークノードの前記メモリが、
    リソース識別空間における複数のリソース識別子の配置を判定するように構成された、前記ネットワークノードの前記プロセッサによって実行可能な、第1の命令セットと、
    前記リソース識別空間を第1の複数の個別の責任領域に分割するように構成された、前記ネットワークノードの前記プロセッサによって実行可能な、第2の命令セットと、ここで、前記責任領域の各々が1つの独特のネットワークノードに対応付けられていて、全責任領域の合計が前記リソース識別空間の全てを包含しており、
    第1の責任領域内に配置された1つのリソース識別子に対応付けられた1つのリソースに対する管理責任を、前記第1の責任領域に対応付けられた前記ネットワークノードに割り当てるように構成された、前記ネットワークノードの前記プロセッサによって実行可能な、第3の命令セットと
    を記憶していることを特徴とするシステム。
  19. 1つのリソースの名前をハッシュすることにより、前記複数のリソース識別子のうちの1つのリソース識別子を計算するように構成された、前記ネットワークノードの前記プロセッサによって実行可能な、第4の命令セットを更に具備する請求項18に記載のシステム。
  20. 前記対応付けられたネットワークノードの能力に基づき該対応付けられたネットワークノードに対する責任領域を決定するように構成された、前記ネットワークノードの前記プロセッサによって実行可能な、第4の命令セットを更に具備する請求項18に記載のシステム。
  21. リソース識別空間における複数のリソース識別子の配置を判定するための手段と、
    前記リソース識別空間を第1の複数の個別の責任領域に分割するための手段と、ここで、前記責任領域の各々が1つの独特のネットワークノードに対応付けられていて、全責任領域の合計が前記リソース識別空間の全てを包含しており、
    第1の責任領域内に配置された1つのリソース識別子に対応付けられた1つのリソースに対する管理責任を、前記第1の責任領域に対応付けられた前記ネットワークノードに割り当てるための手段と
    を具備する装置。
JP2014039560A 2007-12-26 2014-02-28 分散リソース管理のためのバランスしたコンシステント・ハッシュ Expired - Fee Related JP6033805B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/964,264 2007-12-26
US11/964,264 US8244846B2 (en) 2007-12-26 2007-12-26 Balanced consistent hashing for distributed resource management

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010540865A Division JP2011510367A (ja) 2007-12-26 2008-12-23 分散リソース管理のためのバランスしたコンシステント・ハッシュ

Publications (2)

Publication Number Publication Date
JP2014142945A true JP2014142945A (ja) 2014-08-07
JP6033805B2 JP6033805B2 (ja) 2016-11-30

Family

ID=40469881

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010540865A Pending JP2011510367A (ja) 2007-12-26 2008-12-23 分散リソース管理のためのバランスしたコンシステント・ハッシュ
JP2014039560A Expired - Fee Related JP6033805B2 (ja) 2007-12-26 2014-02-28 分散リソース管理のためのバランスしたコンシステント・ハッシュ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010540865A Pending JP2011510367A (ja) 2007-12-26 2008-12-23 分散リソース管理のためのバランスしたコンシステント・ハッシュ

Country Status (5)

Country Link
US (1) US8244846B2 (ja)
EP (1) EP2245535B1 (ja)
JP (2) JP2011510367A (ja)
CN (1) CN101960427B (ja)
WO (1) WO2009086378A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017500653A (ja) * 2014-11-12 2017-01-05 華為技術有限公司Huawei Technologies Co.,Ltd. 分散システムにおけるロック・サーバの故障を処理するための方法およびシステム
JP2017054190A (ja) * 2015-09-07 2017-03-16 日本電信電話株式会社 ノードおよびスロット最適化方法
JP2018142129A (ja) * 2017-02-27 2018-09-13 富士通株式会社 情報処理システム、情報処理方法、及び情報処理装置

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2549387A1 (en) * 2008-06-20 2013-01-23 Leostream Corp. Management layer method and apparatus for dynamic assignment of users to computer resources
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8583832B2 (en) * 2008-12-31 2013-11-12 Verizon Patent And Licensing Inc. Network interface device management using management transport channel
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
CN101815095B (zh) * 2010-03-26 2016-01-13 浪潮电子信息产业股份有限公司 一种san存储资源统一管理和分配方法
US8572239B2 (en) * 2010-09-20 2013-10-29 Microsoft Corporation Node clustering
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) * 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8554951B2 (en) 2011-03-08 2013-10-08 Rackspace Us, Inc. Synchronization and ordering of multiple accessess in a distributed system
US8712975B2 (en) 2011-03-08 2014-04-29 Rackspace Us, Inc. Modification of an object replica
US8510267B2 (en) * 2011-03-08 2013-08-13 Rackspace Us, Inc. Synchronization of structured information repositories
US8538926B2 (en) 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
JP5540269B2 (ja) * 2011-05-10 2014-07-02 日本電信電話株式会社 データ負荷分散配置システムおよびデータ負荷分散配置方法
CN102394922A (zh) * 2011-10-27 2012-03-28 上海文广互动电视有限公司 分布式集群文件系统及文件访问方法
JP5690287B2 (ja) * 2012-01-17 2015-03-25 日本電信電話株式会社 負荷分散プログラムおよび負荷分散装置
US9628438B2 (en) * 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US9218374B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Collaborative restore in a networked storage system
US8984487B2 (en) 2012-09-14 2015-03-17 Microsoft Technology Licensing, Llc Resource tracker
CN103853499B (zh) * 2012-11-30 2017-02-08 上海可鲁系统软件有限公司 一种多源数据存储和读取方法
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
CN103297268B (zh) * 2013-05-13 2016-04-06 北京邮电大学 基于p2p技术的分布式数据一致性维护系统和方法
US9514137B2 (en) 2013-06-12 2016-12-06 Exablox Corporation Hybrid garbage collection
WO2014205286A1 (en) 2013-06-19 2014-12-24 Exablox Corporation Data scrubbing in cluster-based storage systems
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
US9210219B2 (en) 2013-07-15 2015-12-08 Red Hat, Inc. Systems and methods for consistent hashing using multiple hash rings
CN103441918A (zh) * 2013-08-29 2013-12-11 哈尔滨工程大学 一种自组织集群服务器系统及其自组织方法
US10248556B2 (en) 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
CN103546583B (zh) * 2013-11-12 2017-04-19 上海交通大学 群智感知系统及群智感知方法
US9372907B2 (en) 2013-11-26 2016-06-21 Sap Se Table placement in distributed databases
US9830346B2 (en) 2013-11-26 2017-11-28 Sap Se Table redistribution in distributed databases
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
US9774582B2 (en) 2014-02-03 2017-09-26 Exablox Corporation Private cloud connected device cluster architecture
US9830324B2 (en) 2014-02-04 2017-11-28 Exablox Corporation Content based organization of file systems
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
EP2940580B8 (en) * 2014-04-30 2018-05-02 Alcatel Lucent Method for performing load balancing, distributed computing environment, cluster and computer program product
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
CN104320464B (zh) * 2014-10-27 2017-10-10 华为技术有限公司 分布式集群重配方法和装置
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10216770B1 (en) * 2014-10-31 2019-02-26 Amazon Technologies, Inc. Scaling stateful clusters while maintaining access
US9467166B2 (en) 2015-01-12 2016-10-11 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
US9886442B2 (en) 2015-01-12 2018-02-06 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
US10467001B2 (en) 2015-01-12 2019-11-05 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
US10430182B2 (en) 2015-01-12 2019-10-01 Microsoft Technology Licensing, Llc Enhanced compression, encoding, and naming for resource strings
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10474654B2 (en) 2015-08-26 2019-11-12 Storagecraft Technology Corporation Structural data transfer over a network
US10296394B2 (en) * 2015-12-04 2019-05-21 Nec Corporation Consistent hashing
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
CN106991008B (zh) * 2016-01-20 2020-12-18 华为技术有限公司 一种资源锁管理方法、相关设备及系统
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
CN107370614A (zh) * 2016-05-13 2017-11-21 北京京东尚科信息技术有限公司 网络用户活跃度评估方法和预测方法
US10122647B2 (en) * 2016-06-20 2018-11-06 Microsoft Technology Licensing, Llc Low-redistribution load balancing
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10540207B1 (en) * 2018-07-18 2020-01-21 International Business Machines Corporation Fast, low memory, consistent hash using an initial distribution
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
CN112306651A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种资源分配方法和资源借调方法
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
JP7401760B2 (ja) 2020-02-21 2023-12-20 日本製鉄株式会社 α+β型チタン合金棒材の製造方法
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314875A (ja) * 1995-03-14 1996-11-29 Mitsubishi Electric Corp 協調分散処理方法、および分散共有メモリ監視装置、分散共有メモリネットワーク追跡装置、分散共有メモリネットワーク設定支援装置
JP2004252663A (ja) * 2003-02-19 2004-09-09 Toshiba Corp ストレージ装置、分担範囲決定方法及びプログラム
JP2005528684A (ja) * 2002-05-31 2005-09-22 レフトハンド ネットワークス インコーポレイテッド 仮想分散ネットワーク・ストレージ・システム
JP2007501457A (ja) * 2003-08-01 2007-01-25 オラクル・インターナショナル・コーポレイション 非共有データベースシステムにおける所有権の再割当

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6823377B1 (en) * 2000-01-28 2004-11-23 International Business Machines Corporation Arrangements and methods for latency-sensitive hashing for collaborative web caching
US7328263B1 (en) * 2001-01-30 2008-02-05 Cisco Technology, Inc. Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach
US7908413B2 (en) 2003-07-15 2011-03-15 International Business Machines Corporation Data allocation in a distributed storage system
US7366837B2 (en) * 2003-11-24 2008-04-29 Network Appliance, Inc. Data placement technique for striping data containers across volumes of a storage system cluster
JP2005196602A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 無共有型データベース管理システムにおけるシステム構成変更方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314875A (ja) * 1995-03-14 1996-11-29 Mitsubishi Electric Corp 協調分散処理方法、および分散共有メモリ監視装置、分散共有メモリネットワーク追跡装置、分散共有メモリネットワーク設定支援装置
JP2005528684A (ja) * 2002-05-31 2005-09-22 レフトハンド ネットワークス インコーポレイテッド 仮想分散ネットワーク・ストレージ・システム
JP2004252663A (ja) * 2003-02-19 2004-09-09 Toshiba Corp ストレージ装置、分担範囲決定方法及びプログラム
JP2007501457A (ja) * 2003-08-01 2007-01-25 オラクル・インターナショナル・コーポレイション 非共有データベースシステムにおける所有権の再割当

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017500653A (ja) * 2014-11-12 2017-01-05 華為技術有限公司Huawei Technologies Co.,Ltd. 分散システムにおけるロック・サーバの故障を処理するための方法およびシステム
US9952947B2 (en) 2014-11-12 2018-04-24 Huawei Technologies Co., Ltd. Method and system for processing fault of lock server in distributed system
JP2017054190A (ja) * 2015-09-07 2017-03-16 日本電信電話株式会社 ノードおよびスロット最適化方法
JP2018142129A (ja) * 2017-02-27 2018-09-13 富士通株式会社 情報処理システム、情報処理方法、及び情報処理装置

Also Published As

Publication number Publication date
EP2245535B1 (en) 2018-11-14
JP2011510367A (ja) 2011-03-31
WO2009086378A1 (en) 2009-07-09
CN101960427A (zh) 2011-01-26
CN101960427B (zh) 2014-06-18
EP2245535A1 (en) 2010-11-03
JP6033805B2 (ja) 2016-11-30
US20090172139A1 (en) 2009-07-02
US8244846B2 (en) 2012-08-14

Similar Documents

Publication Publication Date Title
JP6033805B2 (ja) 分散リソース管理のためのバランスしたコンシステント・ハッシュ
US8032637B2 (en) Balanced consistent hashing for distributed resource management
JP6246358B2 (ja) 大規模データストリームの取得、記憶、及び消費のための管理型サービス
JP6357243B2 (ja) データストリーム取り込み及び永続性ポリシ
US9244951B2 (en) Managing tenant-specific data sets in a multi-tenant environment
US8200705B2 (en) Method and apparatus for applying database partitioning in a multi-tenancy scenario
US8959226B2 (en) Load balancing workload groups
US9690670B1 (en) Systems and methods for doing agentless backup in scale-out fashion
JP2016027476A (ja) 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
US8660996B2 (en) Monitoring files in cloud-based networks
US20190068536A1 (en) System and method for unit-of-order routing
CN108200211B (zh) 集群中镜像文件下载的方法、节点和查询服务器
CN111651424B (zh) 一种数据处理方法、装置、数据节点及存储介质
US9223517B1 (en) Scalable index store
CN110457307B (zh) 元数据管理系统、用户集群创建方法、装置、设备和介质
US11237747B1 (en) Arbitrary server metadata persistence for control plane static stability
EP3519985A1 (en) Flexible in-memory column store placement
CN113312328B (zh) 控制方法、数据处理方法、数据访问方法及计算设备
JP6607044B2 (ja) サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム
US11652746B1 (en) Resilient consistent hashing for a distributed cache
US11249952B1 (en) Distributed storage of data identifiers
Anjanadevi et al. An efficient dynamic indexing and metadata model for storage in cloud environment
US11973823B1 (en) Offloading namespace redirection to backup clients in a scale out cluster
US11108703B1 (en) Consistent resource visibility during inter-cellular migrations using targeted pairwise scatter-gather techniques

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150908

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160905

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: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161026

R150 Certificate of patent or registration of utility model

Ref document number: 6033805

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees