JP2002533809A - 漸進変化を伴うオブジェクトハッシング - Google Patents

漸進変化を伴うオブジェクトハッシング

Info

Publication number
JP2002533809A
JP2002533809A JP2000590054A JP2000590054A JP2002533809A JP 2002533809 A JP2002533809 A JP 2002533809A JP 2000590054 A JP2000590054 A JP 2000590054A JP 2000590054 A JP2000590054 A JP 2000590054A JP 2002533809 A JP2002533809 A JP 2002533809A
Authority
JP
Japan
Prior art keywords
node
bucket
resource
nodes
buckets
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
JP2000590054A
Other languages
English (en)
Other versions
JP4475818B2 (ja
JP2002533809A5 (ja
Inventor
クロッツ,ボリス
バンフォード,ロジャー・ジェイ
フィッシャー,ジェフリー
マーチャンダニー,ラビ
Original Assignee
オラクル コーポレーション
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 オラクル コーポレーション filed Critical オラクル コーポレーション
Publication of JP2002533809A publication Critical patent/JP2002533809A/ja
Publication of JP2002533809A5 publication Critical patent/JP2002533809A5/ja
Application granted granted Critical
Publication of JP4475818B2 publication Critical patent/JP4475818B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Peptides Or Proteins (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 再構成中に典型的に生じるオーバーヘッドおよびシステム利用不可能を低減するよう、エポック変更後に複数ノードのシステムを再構成するための方法およびシステムを提供する。資源からマスタへの対応付は、資源からバケットへのハッシュ関数およびバケットからノードへのハッシュ関数を組合せることによって確立される。資源からバケットへのハッシュ関数は、エポック変更に応答して変更されない。バケットからノードへのハッシュ関数は、エポック変更に応答して変更する。システム内での新しい数のノード間でロードバランスをとるよう、エポック変更後に動的なバケットからノードへのハッシュ関数を調整するための技術を開示する。さらに、バケットからノードへの割当の変更は、リマスタされなければならない資源の数を低減するよう行なわれる。ある実施例では、資源のうちエポック変更中にそのマスタを失うもののみが、初期再構成中に新しいマスタを割当てられる。次に、システムが利用可能となった後に、資源を移動することによってロードバランスを徐々に獲得する。資源の古いマスタは、一旦要求された資源についてのマスタ資源オブジェクトを転送すると、資源の新しいマスタにアクセス要求を転送する。加えて、ノードの計画されたシャットダウンを見込んで、ノードから資源を移動するための技術を開示する。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
この発明はコンピュータシステムに関し、より特定的には、コンピュータシス
テム内の資源を支配するための技術に関する。
【0002】
【発明の背景】
データベースサーバは、トランザクションを実行する間も資源を利用する。た
とえ資源がデータベースサーバ間で共有可能であったとしても、多くの資源はあ
る種の態様では任意の所与の時間で2つ以上のプロセスによってアクセス不可能
であることがある。たとえば、記憶媒体のデータブロックまたは記憶媒体上に記
憶されるテーブルなどの資源は、ある態様では(たとえば読出)複数のプロセス
によって同時的にアクセス可能であるが、他の態様では(たとえば書込)一度に
1個のプロセスによってしかアクセスされ得ない。したがって、資源へのアクセ
スを制御するメカニズムが開発されてきた。
【0003】 そのようなメカニズムの1つをロックと呼ぶ。ロックは、特定のプロセスが資
源に関してある種の権利を与えられたことを示すデータ構造である。ロックには
多くのタイプがある。多くのプロセスによって同じ資源上で共有可能であるタイ
プのロックもあれば、他のロックが同じ資源上に与えられることを防ぐタイプの
ロックもある。
【0004】 資源に対するロックを与える責任を担う存在をロックマネージャと呼ぶ。単一
ノードのデータシステムでは、ロックマネージャは典型的には、ノード上の1つ
以上のプロセスからなるものである。マルチプロセッシングマシンまたはローカ
ルエリアネットワークなどの、複数ノードのシステムでは、ロックマネージャは
、多数のノードに分散したプロセスを含むであろう。2つ以上のノード上に存在
する構成要素を含むロックマネージャを分散ロックマネージャと呼ぶ。
【0005】 図1は、複数ノードのコンピュータシステム100のブロック図である。各ノ
ードは、そこにデータベースサーバおよび分散ロック管理システム132の一部
を備えている。具体的には、例示のシステムは、3つのノード102、112お
よび122を含み、その上に、それぞれデータベースサーバ104、114およ
び124と、それぞれロックマネージャユニット106、116および126と
が存在する。データベースサーバ104、114および124は、同じデータベ
ース120へのアクセスを有する。データベース120は、データの複数ブロッ
クを含むディスク118上に存在する。一般的に、ディスク118は1つ以上の
永続的記憶装置を表わし、これはノード102、112および122を含むマシ
ンを含むがこれに限定されるものではない、任意の数のマシン上にあってもよい
【0006】 通信メカニズムによって、ノード102、112および122上のプロセスは
相互にかつデータベース120の一部を含むディスクと通信可能である。ノード
とディスク118との間の特定の通信メカニズムは、システム100の性質によ
って異なる。たとえば、ノード102、112および122がネットワーク上の
ワークステーションに対応する場合、通信メカニズムは、ノード102、112
および122がマルチプロセッシングマシン内のメモリおよびプロセッサのクラ
スタに対応する場合とは異なるであろう。
【0007】 データベースサーバ104、114および124のいずれかが他のデータベー
スサーバと共有される資源にアクセス可能となる前に、これは資源の適切なロッ
クを分散ロック管理システム132から獲得しなければならない。そのような資
源は、たとえば、データベース120からのデータが格納されているディスク1
18の1つ以上のブロックであってもよい。
【0008】 ロック管理システム132は、データベースサーバ104、114および12
4によって保持される、データベースサーバが共有する資源に対するロックを示
すデータ構造を記憶する。もしあるデータベースサーバが資源のロックを有して
いる一方で別のデータベースサーバがその資源へのロックを要求すれば、分散ロ
ック管理システム132は、要求されたロックが許可されたロックと一致してい
るかどうかを決定しなければならない。もし要求されたロックが許可されたロッ
クと一致していなければ、要求者は、許可されたロックを保持しているデータベ
ースサーバが許可されたロックを解放するまで、待たなければならない。
【0009】 あるアプローチに従うと、ロック管理システム132は、ロック管理システム
132によって管理されるいずれの資源についても1つのマスタ資源オブジェク
トを維持し、かつ、データベースサーバを含む各ノードごとに1つのロックマネ
ージャユニットを含む。特定の資源のマスタ資源オブジェクトはとりわけ、特定
の資源について許可されたまたは要求されたすべてのロックの表示を記憶する。
各資源に対するマスタ資源オブジェクトは、ロックマネージャユニット106、
116および126の1つ内にのみ存在する。
【0010】 ロックマネージャユニットが存在するノードを、資源の「マスタノード」(ま
たは単に「マスタ」)と呼び、そのマスタ資源オブジェクトはロックマネージャ
ユニットによって管理される。したがって、資源R1のマスタ資源オブジェクト
がロックマネージャユニット106によって管理されれば、ノード102が資源
R1のマスタとなる。
【0011】 典型的なシステムでは、ハッシュ関数を採用して、所与の資源のマスタノード
として働く特定のノードを選択する。具体的には、ハッシュ関数を資源名に適用
して値を生成する。同じ値にハッシュされる資源名はすべて、同じ「バケット」
に属する。次に、所与のバケットにその名前が属するすべての資源のマスタとな
るよう、各ノードが割当てられる。
【0012】 たとえば、システム100は3つのノードを含み、したがって、値0、1およ
び2を生成する3バケットハッシュ関数を採用するであろう。各バケットは3つ
のノードの1つに関連付けられる。システム100での特定の資源のマスタとし
ての役割を果たすノードは、資源の名前にハッシュ関数を適用することによって
決定される。値0に関連付けられるバケットにハッシュされる名前を有する資源
はすべて、ノード102上で支配される。値1に関連付けられるバケットにハッ
シュされる名前を有する資源はすべて、ノード112上で支配される。値2に関
連付けられるバケットにハッシュされる名前を有する資源はすべて、ノード12
2上で支配される。
【0013】 ノード上のプロセスが資源にアクセスしたいとき、ハッシュ関数が資源の名前
に適用されて資源のマスタを決定し、ロック要求がその資源のマスタノードに送
信される。資源のマスタノード上のロックマネージャは、関連付けられた資源の
ロックの割当および割当解除を制御する。
【0014】 資源のマスタノードが、別のノード上で稼動するプロセスに、資源のロックを
許可すると、その別のノードがそのプロセスが保持する資源のロックについての
情報を維持する。資源に関心のある(すなわち、そのロックを保持する)非マス
タノードによって維持されるロック情報は、マスタノードに障害が発生した場合
、復旧の間に、利用可能である。ローカルプロセスによって保持される、資源の
ロックを追跡するために、資源のマスタでないノードによって使用されるデータ
構造を、シャドー資源オブジェクトと呼ぶ。いずれのマスタ資源オブジェクトに
ついても、最大N−1個のシャドー資源オブジェクトが存在し得る(Nはシステ
ム内のノードの数に等しい)。というのも、すべての非マスタノード上のプロセ
スが、同じ資源に対して非排他的ロックを同時に保持することが可能であるから
である。
【0015】 あるノードから別のノードへとロック資源のマスタを変更することを、ロック
資源を「リマスタする」と言う。資源をリマスタするプロセスは、典型的には、
資源のマスタ資源オブジェクトを新しいマスタ上に再構築することを伴う。資源
がリマスタされている間、一般的には資源は利用不可能である。
【0016】 任意の時点で、資源を支配する責任は、特定の組のノード間で分散される。ノ
ードのその組が変わるとき、「エポック変更」が起こると言う。
【0017】 さまざまな事象によって、リマスタリング動作を実行することが望まれるかま
たは必要となることがある。たとえば、ノードに障害が発生するかまたはこれが
シャットダウンすると、これらのノードによって現在支配されている資源の支配
権は、他のノードに移動されなければならない。同様に、新しいノードがシステ
ムに加えられると、資源のいくつかの支配権を新しく加えられたノードに移動し
て、資源管理に関連するロードをすべてのノード間で均一に分散することが望ま
しいであろう。
【0018】 資源名ハッシュを用いて資源をノードに割当てる場合、エポック変更に応答し
て資源をリマスタすると、典型的には、ハッシュ関数を変更し、さらに、新しい
ハッシュ関数によって生成される資源からマスタへの対応付に基づいて支配権責
任を再分散する必要がある。具体的には、システムがN個のノードからなる場合
、Nバケットハッシュ関数(N個の値を生成するハッシュ関数)を用いてマスタ
ノード割当を実行する。(ノードの付加、除去または障害によって)Nが変わる
と、ハッシュ関数も変更されなければならない。資源からマスタへの対応付のた
めの新しいハッシュ関数が選択された後、マスタ資源オブジェクトはその新しい
マスタに移動されなければならない。任意の所与の資源の新しいマスタは、新し
いハッシュ関数を資源の名前に適用することによって決定される。
【0019】 残念ながら、新しいハッシュ関数の採用に応答して起こるリマスタリングによ
って、システム内の資源をいずれも、リマスタリングしなければならない可能性
がある。したがって、システム全体が、リマスタリングが完了するまで、実際上
利用不可能となることがある。これは、システム構成の変更が比較的小さいもの
であったとしても当てはまる。たとえば、もし51番目のノードが50ノードの
システムに加えられるならば、システム内のすべての資源が51個のノード間で
のロードバランスをとるよう選択された新しいハッシュ関数によって、新しいマ
スタに割当てられる可能性がある。同様に、50ノード上での1つのノードに障
害が発生したときにも、大規模なリマスタリング動作が起こることがある。
【0020】 前記に基づいて、複数ノードのシステムでのエポック変更に関連するリマスタ
リングオーバーヘッドを低減するリマスタリング技術を提供することが明らかに
望まれる。さらに、新しいノードがシステムに加えられたときにもノードがシス
テムから取除かれたときにも、比較的バランスのとれたロード分散がエポック変
更後にも維持されることを可能にするリマスタリング技術を提供することが望ま
れる。リマスタリング動作の持続時間の間、システム全体を実際上利用不可能に
しないようなリマスタリング技術を提供することも望まれる。
【0021】
【発明の概要】
典型的には再構成の間もたらされるオーバーヘッドおよびシステムの利用不可
能性を低減するよう、エポック変更後に複数ノードのシステムを再構成するため
の方法およびシステムが提供される。この発明のある局面に従うと、資源からマ
スタへの対応付は、資源からバケットへのハッシュ関数と、バケットからノード
へのハッシュ関数とを組合せることによって確立される。
【0022】 この発明のある局面に従うと、資源からバケットへのハッシュ関数はエポック
変更に応答して変更されないが、バケットからノードへのハッシュ関数はエポッ
ク変更に応答して変更する。したがって、資源からバケットへのハッシュ関数は
「静的」であるが、バケットからノードへのハッシュ関数は「動的」である。
【0023】 好ましくは、動的なバケットからノードへのハッシュ関数は、システム内の新
しい数のノード間でロードバランスをとるよう、エポック変更後に調整される。
さらに、バケットからノードへの割当に対する変更は、リマスタされなければな
らない資源の数を最小限にするよう行なわれる。
【0024】 この発明の別の局面に従うと、資源のうちエポック変更の間にそのマスタを失
ったもののみが、初期再構成の間に新しいマスタを割当てられる。ロードバラン
スは、システムが利用可能になった後に、資源を移動することによって徐々に達
成される。一旦資源の古いマスタが要求された資源のマスタ資源オブジェクトを
転送すると、これはアクセス要求を資源の新しいマスタに転送する。加えて、ノ
ードの計画されたシャットダウンを見込んで、資源をノードから移動するための
技術が開示される。
【0025】 この発明は、同じ参照番号が同様の要素を指す添付の図面の図中に例として示
されるが、これに限定されるものではない。
【0026】
【好ましい実施例の詳細な説明】
複数ノードのシステムでの資源を管理するための方法および装置を記載する。
以下の説明では、説明のため、この発明を完全に理解するために、多くの具体的
詳細が述べられる。しかしながら、この発明はこれらの具体的な詳細なしに実施
され得ることが当業者には明らかである。他の例では、この発明を不要にわかり
にくくすることを避けるため、周知の構造および装置がブロック図で示される。
【0027】 ハードウェア概要 図2は、この発明の実施例が実現可能であるコンピュータシステム200を示
すブロック図である。コンピュータシステム200は、情報を受け渡しするため
のバス202または他の通信メカニズムと、バス202に結合され情報を処理す
るためのプロセッサ204とを含む。コンピュータシステム200はまた、ラン
ダムアクセスメモリ(RAM)または他のダイナミック記憶装置などの主メモリ
206を含み、これはバス202に結合されプロセッサ204によって実行され
るべき命令および情報を記憶する。主メモリ206はまた、プロセッサ204に
よって実行されるべき命令の実行の間、一時的変数または他の中間情報を記憶す
るために使用され得る。コンピュータシステム200は、リードオンリメモリ(
ROM)208または他の静的記憶装置をさらに含み、これはバス202に結合
され静的情報およびプロセッサ204のための命令を記憶する。磁気ディスクま
たは光学ディスクなどの記憶装置210が設けられこれはバス202に結合され
情報および命令を記憶する。
【0028】 コンピュータシステム200は、バス202を介して陰極線管(CRT)など
のディスプレイ212に結合されてもよく、これはコンピュータユーザに情報を
表示する。英数字および他のキーを含む入力デバイス214は、バス202に結
合されプロセッサ204に情報およびコマンド選択を与える。ユーザ入力デバイ
スの別のタイプは、マウス、トラックボールまたはカーソル方向キーなどのカー
ソルコントロール216であって、これは方向情報およびコマンド選択をプロセ
ッサ204に与え、かつ、ディスプレイ212上のカーソルの動きを制御する。
この入力デバイスは典型的には、第1の軸(たとえばx)および第2の軸(たと
えばy)の、2軸での2自由度を有し、これによってデバイスは画面での位置を
特定することが可能となる。
【0029】 この発明は、複数ノードのシステムでの資源を管理するコンピュータシステム
200の使用に関する。この発明のある実施例に従うと、資源管理は、プロセッ
サ204が主メモリ206に含まれる1つ以上の命令の1つ以上のシーケンスを
実行することに応答して、コンピュータシステム200によって与えられる。そ
のような命令は、記憶装置210などの、別のコンピュータ読出可能媒体から主
メモリ206に読出されてもよい。主メモリ206内に含まれる命令のシーケン
スを実行することによって、プロセッサ204はここに記載するプロセスステッ
プを実行する。代替の実施例では、ハードワイア回路をソフトウェア命令の代わ
りにまたはこれと組合せて使用してこの発明を実現してもよい。したがって、こ
の発明の実施例は、ハードウェア回路およびソフトウェアの特定の組合せに限定
されない。
【0030】 ここに用いる「コンピュータ読出可能媒体」という言葉は、プロセッサ204
に命令を与えて実行させることに関与する任意の媒体を指す。そのような媒体は
、不揮発性媒体、揮発性媒体および伝送媒体を含むがこれに限定されるものでは
ない、多くの形態を取ってもよい。不揮発性媒体は、たとえば、記憶装置210
などの、光学ディスクまたは磁気ディスクを含む。揮発性媒体は、主メモリ20
6などの、ダイナミックメモリを含む。伝送媒体は、バス202を含むワイアを
含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体はまた、電波およ
び赤外データ通信の間生成されるものなど、音波または光波の形態を取ってもよ
い。
【0031】 コンピュータ読出可能媒体の通常の形態は、たとえば、フロッピー(登録商標 )、フレキシブルディスク、ハードディスク、磁気テープ、またはその他の磁気 媒体、CD−ROM、その他の光学媒体、パンチカード、紙テープ、孔のパター ンを備えるその他の物理的媒体、RAM、PROMおよびEPROM、FLAS H−EPROM、その他のメモリチップまたはカートリッジ、以下に記載する搬 送波、またはコンピュータが読出可能なその他の媒体の形態を含む。
【0032】 コンピュータ読出可能媒体のさまざまな形態は、1つ以上の命令の1つ以上の
シーケンスをプロセッサ204に搬送して実行することにかかわり得る。たとえ
ば、命令は最初に、遠隔コンピュータの磁気ディスク上に担持されてもよい。遠
隔コンピュータは、命令をそのダイナミックメモリにロードし、モデムを使用し
て電話線を介して命令を送信することができる。コンピュータシステム200に
ローカルなモデムは、電話線上のデータを受信し、赤外送信器を使用してデータ
を赤外信号に変換することができる。赤外検出器は赤外信号で搬送されるデータ
を受信可能であり、適切な回路がデータをバス202上に与えることができる。
バス202は、データを主メモリ206に搬送し、プロセッサ204はそこから
命令を取出し実行する。主メモリ206によって受取られた命令は、プロセッサ
204によって実行される前またはその後に、記憶装置210上にオプションと
して記憶されてもよい。
【0033】 コンピュータシステム200はまた、バス202に結合される通信インターフ
ェイス218を含む。通信インターフェイス218は、双方向のデータ通信を与
え、これはネットワークリンク220に結合し、ネットワークリンクはローカル
ネットワーク222に接続される。たとえば、通信インターフェイス218は、
統合サービスデジタル網(ISDN)カードまたはモデムであってもよく対応す
るタイプの電話線にデータ通信接続を与える。別の例として、通信インターフェ
イス218は、互換性のあるLANにデータ通信接続を与えるローカルエリアネ
ットワーク(LAN)カードであってもよい。ワイアレスリンクが実現されても
よい。いかなるそのような実現化例でも、通信インターフェイス218は、さま
ざまなタイプの情報を表わすデジタルデータストリームを搬送する電気信号、電
磁波信号または光学信号を送信し受信する。
【0034】 ネットワークリンク220は、典型的には、1つ以上のネットワークを介して
他のデータデバイスにデータ通信を与える。たとえば、ネットワークリンク22
0は、ローカルネットワーク222を介してホストコンピュータ224またはイ
ンターネットサービスプロバイダ(ISP)226によって動作するデータ装置
に接続してもよい。ISP226は、現在通常「インターネット」228と呼ば
れるワールドワイドパケットデータ通信ネットワークを介して、データ通信サー
ビスを提供する。ローカルネットワーク222とインターネット228とはどち
らも、デジタルデータストリームを搬送する電気信号、電磁波信号または光学信
号を使用する。さまざまなネットワークを通る信号と、ネットワークリンク22
0上および通信インターネット218を通る信号とは、デジタルデータをコンピ
ュータシステム200へかつそこから搬送するものであるが、情報を転送する搬
送波の例示的形態である。
【0035】 コンピュータシステム200は、ネットワーク、ネットワークリンク220お
よび通信インターフェイス218を介して、プログラムコードを含め、メッセー
ジを送信しデータを受信することが可能である。インターネットの例では、サー
バ230は、インターネット228、ISP226、ローカルネットワーク22
2および通信インターフェイス218を介して、アプリケーションプログラムの
ために要求されたコードを伝送可能である。
【0036】 受信されたコードは、受信されたときにプロセッサ204によって実行されて
もよいし、かつ/または記憶装置210または他の不揮発性装置に記憶されて後
に実行されてもよい。このようにして、コンピュータシステム200は、搬送波
の形でアプリケーションコードを獲得可能である。
【0037】 機能的な概要 Mバケットハッシュ関数を用いてN個ノードのシステムでのL数の資源につい
て資源からマスタへの対応付を確立するための技術をここに記載する。Mは、N
よりも大きいがLよりも小さい。実際には、LはMよりも大きい3から4のオー
ダの大きさであり、MはNよりも大きい1または2のオーダの大きさである。た
とえば、1000バケットハッシュ関数を用いて、6ノードシステムでの100
万個の資源について資源からバケットへの対応付を確立することができる。バケ
ットの数はノードの数よりも大きいので、各ノードは、第2のバケットからノー
ドへのハッシュ関数を用いて1つ以上のバケットを割当てられる。
【0038】 この発明のある局面に従うと、ハッシュバケットに資源を対応付けるために用
いられるハッシュ関数は、エポック変更に応答して変更されない。名前からバケ
ットへのハッシュ関数と異なって、バケットからノードへのハッシュ関数はエポ
ック変更に応答して変わる。したがって、資源からバケットへのハッシュ関数は
「静的」であり、一方、バケットからノードへのハッシュ関数は「動的」である
【0039】 好ましくは、動的なバケットからノードへのハッシュ関数は、システムでの新
しい数のノード間でロードバランスをとるよう、エポック変更後に調整される。
好ましくは、バケットからノードへの割当の変更は、リマスタされなければなら
ない資源の数を最小限にするようにして行なわれる。
【0040】 ある実施例に従うと、バケットからノードへのハッシュは、バケット範囲から
ノードへの対応付情報を用いて実行され、この情報はどのバケット範囲がどのノ
ードに対応するかを示すよう維持される。エポック変更に応答して、バケット範
囲からノードへの対応付情報は、1組の再対応付規則に基づいて修正される。再
対応付規則は、ロードを均等に分散し、かつ、リマスタされなければならない資
源の数を最小限にしようとする。
【0041】 バケットの数は資源の数よりも小さく、バケット範囲の数はバケットの数より
も小さいので、バケット範囲からノードへの対応付情報は典型的には、資源が個
別にノードに対応付けられた場合必要であろう情報の量よりもかなり少なくてす
む。
【0042】 例示的システム 図3を参照して、これは、この発明の実施例に従ってバケット範囲をノードに
対応付ける複数ノードのシステムを例示するブロック図である。このシステムは
、ハッシュ関数302を用いて、資源名300を1000個のハッシュバケット
304に対応付ける。システムは、どのハッシュバケットがどのノードに対応す
るかを示す、バケット範囲からノードへの対応付情報318を維持する。このバ
ケット範囲からノードへの対応付情報318は、第2のハッシュ関数として動作
し、比較的大きい数のバケットをより小さい数のノードに対応付ける。バケット
がノードに対応付けられると、そのバケットにハッシュされる資源名を有する資
源は、そのノードで支配される。
【0043】 図3に示す実施例では、2つのノード306および308がある。バケット範
囲1〜500はノード306に対応付けられ、バケット範囲501〜1000は
ノード308に対応付けられる。したがって、ノード306は、バケット1〜5
00に名前がハッシュされるすべての資源のマスタであり、ノード308は、バ
ケット501〜1000に名前がハッシュされるすべての資源のマスタである。
【0044】 図4は、エポック変更が起きた後の、図3に示すシステムを例示するブロック
図である。この例では、エポック変更は、新しいノード402がシステムに導入
されてノードの数が3個に増えたために起きた。資源からバケット関数302へ
の変更はエポック変更に応答してなされない。したがって、ハッシュバケットの
数は同じままであり、すべての資源名が同じバケットにハッシュされ続けれてい
る。
【0045】 しかしながら、3つのノード間での資源のマスタリング責任をより均等に分散
するために、バケット範囲からノードへの対応付情報318に修正が加えられる
。具体的には、ノード306に対応付けられるバケット範囲は、1〜500から
1〜333に変更される。同様に、ノード308に対応付けられるバケット範囲
は、501〜1000から501〜833に変更される。残りのバケット範囲(
334〜500と834〜100)はこのため、新しいノード402に対応付け
られる。
【0046】 新しいノード402に名前が対応付けられるバケットにハッシュされる資源の
すべては、新しいノードでリマスタされなければならない。しかしながら、先行
技術のリマスタリング技術と異なって、新しく導入されたノードに対応付けられ
ない資源は、一般的には、その現在のマスタで支配され続ける。この例では、バ
ケット1〜333にハッシュされる資源はすべて、ノード306で支配され続け
、バケット501〜833にハッシュされる資源はすべて、ノード308で支配
され続けた。したがって、リマスタに関連するオーバーヘッドは、これらの資源
については全く起きない。さらに、これらの資源はリマスタされないので、これ
らの資源は、資源のリマスタに関連する利用不可能の期間を被ることがない。
【0047】 バケット範囲からノードへの対応付調整 上記のとおり、バケット範囲からノードへの対応付は、(1)新しい組のノー
ドの間でマスタリング負担を均等に分散し、かつ、(2)リマスタされる資源の
数を低減するようにして、エポック変更に応答して調整される。さまざまな対応
付調整技術を用いてこれらの目的を達成することができる。以下の説明では、具
体的な技術を詳細に記載する。しかしながら、この発明は、特定の対応付調整技
術に限定されるものではない。
【0048】 この発明のある実施例に従うと、システムが使用する対応付調整技術は、確定
的である。したがって、任意の特定の初期バケットからノードへの対応付および
任意の特定のシステム構成変更が与えられれば、対応付調整規則によって、バケ
ットからノードへの対応付は1回の修正ですむ。対応付調整規則の確定的な組を
用いることによって、システム内のどのノードも、他のノードとの不必要な連係
メッセージなしに、リマスタリング動作においてその役割に対する責任を果たす
ことができる。
【0049】 説明のために、以下の記載では、システム内に存在するすべてのノードが資源
の支配に等しく関与することが望ましいと仮定する。しかしながら、ノードすべ
てが関与するわけでなくかつ/またはノードが異なったレベルで関与するような
システム(たとえば、あるノードが、別のノードで支配される資源の半数を支配
することが望ましいようなシステム)に合わせて適合するよう、バケット割当技
術を調整してもよい。
【0050】 均等バケットアプローチ 均等バケットアプローチに従うと、システム内のノードはいずれも、エポック
変更後にシステムに属するノードの数を示すメッセージを送信される。各ノード
は、ハッシュ関数によって生成されるバケットの総数がわかっているので、バケ
ットが既存のノード間で均等に分散されるためには、いくつのバケットをノード
のいずれもが持たなければならないかを計算することができる(「ターゲットバ
ケット数」)。
【0051】 エポック変更後にシステム内に存在するノードは、以下の2つのカテゴリのう
ちの1つに属する。すなわち、現在割当てられている範囲がターゲットバケット
数より大きい数のバケットに及ぶノード(「過剰ノード」)と、現在割当てられ
ている範囲がターゲットバケット数より少ない数のバケットに及ぶノード(「不
足ノード」)とである。均等バケットアプローチに従うと、過剰ノードは、その
範囲がターゲットバケット数にのみ及ぶまで、その範囲を削減する。一方で、不
足ノードは、過剰ノードが行なった範囲削減によって「より合わされて」いない
ままのバケットまで及ぶよう、その範囲を増大させる(またはさらなる範囲を割
当てる)。この範囲の増大は、不足ノードの範囲がターゲットバケット数の数の
バケットに及ぶようになるよう、不足ノード間で分散される。
【0052】 たとえば、図4は、エポック変更が起きた後の図3のシステムを示す。エポッ
ク変更の際、第3のノード402が2ノードシステムに加えられた。均等バケッ
トアプローチを用いると、例示のシステム変更後のバケットのターゲット数は、
1000/3=333.3となる。エポック変更後当初、ノード306に割当て
られた範囲は500個の資源を含み、ノード308に割当てられた範囲は500
個の資源を含み、ノード402に割当てられた範囲は資源を全く含まない(ノー
ド402には範囲がまだ割当てられていない)。したがって、ノード306およ
び308は過剰ノードであり、ノード402は不足ノードである。
【0053】 過剰ノード306および308は、これに割当てられた範囲を減らし、その結
果その範囲はバケットのターゲット数(333)に削減される。例示の例では、
ノード306に割当てられた範囲は、1〜500から1〜333に削減され、ノ
ード308に割当てられた範囲は501〜1000から501〜833に削減さ
れる。過剰ノードがこの範囲削減を経た後、範囲334〜500および834〜
1000に属するバケットはもはや、いかなるノードにも割当てられていないの
で、「より合わされたバケットプール」に属するようになる。
【0054】 不足ノードには、より合わされたバケットプールに属するバケットを含む範囲
が割当てられ、これによって、割当てられたバケットのその数はバケットのター
ゲット数に増える。この例では不足ノード402にのみ、より合わされたバケッ
トプールに属する範囲のすべて(この場合では、範囲334〜500および範囲
834〜1000)が割当てられる。エポック変更後のバケット範囲再割当に応
答して、バケット範囲からノードへの対応付情報318は修正される。図4に示
すバケット範囲からノードへの対応付情報318は、均等バケットアプローチに
従って範囲が調整された後に、バケット範囲割当を反映する。
【0055】 ある実施例に従うと、過剰ノードは、範囲割当の総数を削減するよう、より合
わされたバケットプールに解放するべき範囲を選択する。たとえば、ノード30
8がより合わされたバケットプールにバケットを解放しようとする時点で、ノー
ド306が既に、より合わされたバケットプールに範囲224〜500を解放し
ていたとする。範囲834〜1000をより合わされたバケットプールに解放す
る代わりに、ノード308は、より合わされたバケットプールに既にある範囲に
連続する範囲を選択してもよい。この例では、ノード308は、範囲500〜6
66を解放するよう決定してもよい。範囲500〜666を解放した後、ノード
308には範囲667〜1000が残され、より合わされたバケットプールは、
単一の範囲334〜666を含む。
【0056】 この例では、より合わされたバケットプールに含まれる単一の範囲を、不足ノ
ード402に割当てるだけでよい。しかしながら、不足ノードが既に、これに割
当てられている1つ以上のバケット範囲を有する場合、可能であれば、不足ノー
ドは、その現在割当てられている範囲と連続する範囲を、より合わされたバケッ
トプールから選択する。たとえば、ノード402がシステムから取除かれると仮
定する。これによって、ノードの数が3から再び2に減るというエポック変更が
起きる。ノード402には範囲334〜666が割当てられていたとすると、こ
の範囲がより合わされたバケットプールに与えられるであろう。残りのノード3
06および308は、その現在の範囲が含むのは333個のバケットのみであり
新しいターゲットバケット数は1000/2=500となるので、このどちらも
不足ノードとなるであろう。
【0057】 その範囲をターゲットバケット数に増大させるために、ノード306は、より
合わされたバケットプールから範囲334〜500を取る。この範囲が選択され
るのは、これがノード306に現在割当てられている範囲1〜333と連続する
からである。次に、ノード308は、より合わされたバケットプールから残りの
範囲501〜666を取る。これらの範囲調整の結果、ノード306および30
8に関連付けられる範囲はそれぞれ、再び、1〜500および501〜1000
となる。
【0058】 ノードベクトルアプローチ バケット再割当に対する均等バケットアプローチの代替を、ここでは、ノード
ベクトルアプローチと呼ぶ。ノードベクトルアプローチに従うと、M長ベクトル
が維持される。Mは、資源からバケットへのハッシュ関数のハッシュバケットの
数である。ノードベクトルへの各エントリは、ハッシュバケットに対応し、ノー
ド識別子を記憶する。ベクトルエントリのノード識別子によって識別されるノー
ドが、ベクトルエントリに関連付けられるバケットに名前がハッシュされるすべ
ての資源のマスタとしての役割を果たす。たとえば、ベクトルをMASTER(
)と名付けるとする。ノードN1の識別子がMASTER(5)に記憶されてい
るとすれば、バケット5にハッシュされる資源はすべて、ノードN1上で支配さ
れる。
【0059】 ノードベクトルMASTER()は、およそ等しい数のエントリをノードの各
々に割当てることによって初期的に配置される。この割当を実行する簡単な方法
は、第1のベクトルエントリに始まって、各ノードごとにX個のノード識別子を
記憶することである。Xは、ノードの数で除算されるハッシュバケットの数に等
しい。たとえば、100個のハッシュバケットおよび10個のノードがあるとす
れば、第1のノードでの識別子は、ベクトルエントリ1〜10に記憶され、第2
のノードの識別子は、ベクトルエントリ11〜20に記憶され、等々である。
【0060】 エポック変更後、第2のノードベクトルNEWMASTER()が生成される
。加えて、ターゲットバケット数が、エポック変更後のシステムでのノードの数
に基づいて上述のとおり計算される。NEWMASTER()ベクトルは、初期
的に、以下の2つの条件を満たすMASTER()ベクトルの各エントリに記憶
される識別子をNEWMASTER()にコピーすることによって配置される。
この条件とは、(1)識別子がシステム内になおもあるノードについてのもので
あることと、(2)ノードに既に割当てられているエントリの数がターゲットバ
ケット数よりも少ないこととである。NEWMASTER()のこの初期配置の
後、MASTER(i)=NEWMASTER(i)などの、値iにハッシュさ
れる資源はすべて、即座に利用可能となるであろう。この次に、NEWMAST
ER()への残っている割当てられていないエントリは、Xがターゲットバケッ
ト数である、各ノードのX個の識別子の合計を記憶するようにして、ノード識別
子に割当てられる。
【0061】 NEWMASTER()へのエントリがすべて配置された後、MASTER(
i)<>NEWMASTER(i)である値iにハッシュされる資源はすべて、
リマスタされなければならない。このリマスタリング動作の間、MASTER(
i)=Na、NEWMASTER(i)=Nbとなるよう、各ノードNaは、バ
ケットiにハッシュされる資源のマスタ資源オブジェクトを別のノードNbに転
送する。加えて、MASTER(i)=エポック変更の間失われたノードの識別
子、NEWMASTER(i)=Naとなるよう、各ノードNaは、バケットi
にハッシュされる資源のマスタ資源オブジェクトを再構築する。
【0062】 遅延されたロードバランス 理想的な場合には、資源の支配に関連するロードは、再構成後のシステムでの
ノード間で均等に分散される。さらに、再構成の間、ロードを均等に分散するの
に必要な最小限の数の資源のみが移動される。しかしながら、ロードの均等なバ
ランスをとるために必要な最小限の数の資源をリマスタするとしても、再構成プ
ロセスは、かなりの量のオーバーヘッドを伴い、不当に長い時間期間の間、シス
テムの一部を利用不可能にしてしまう可能性がある。
【0063】 この発明のある局面に従うと、再構成動作の持続時間は、リマスタして所望の
ロードバランスを達成する必要があるすべての資源より少ない資源を初期的にリ
マスタすることによって、低減される。したがって、エポック変更後に起きる初
期再構成は、均等にロードのバランスがとれていない。代わりに、初期再構成が
行なわれ、システムが一般的に利用可能となった後に、過剰ノードから不足ノー
ドへとバケットを徐々に再割当して、これによって資源を「移動」して、やがて
より均等に分散されたロードバランスが達成される。
【0064】 リマスタリング動作には、ロストマスタリマスタリングと転送マスタリマスタ
リングとの、2つの一般的なタイプがある。ロストマスタリマスタリングが必要
とされるのは、エポック変更の間エポック変更前のそのマスタがシステムから取
除かれた資源についてである。資源のロストマスタリマスタリングは、一般的に
は、既存のノードで資源のマスタ資源オブジェクトを再構築することを伴う。
【0065】 一方、転送マスタリマスタリングが行なわれるのは、エポック変更前のそのマ
スタがエポック変更後もシステム内に存在し続ける資源についてである。マスタ
資源オブジェクトはエポック変更の間に失われていないため、転送マスタリマス
タリングは、資源のマスタ資源オブジェクトが再構築されることを必要としない
【0066】 ある実施例に従うと、資源のうちロストマスタリマスタリングを経なければな
らないもののみが、エポック変更後初期的にリマスタされる。具体的には、エポ
ック変更に応答してバケットからノードへのハッシュ関数を修正して、エポック
変更中に失われたノードに対応付けられるバケットのみを初期的に再割当する。
好ましくは、現在マスタリングロードが最も低いエポック変更後のノードにこれ
らのバケットを対応付けるようにして、バケットからノードへのハッシュ関数は
修正される。これらのバケットが再割当されたノードは、典型的には、エポック
変更中にシステムに新しく加えられたいかなるノードをも含む。
【0067】 必要なロストマスタリマスタリングのすべてが実行された後、システムはユー
ザに利用可能となる。システムが利用可能となった後に、さらなる資源を過剰ノ
ードから不足ノードに徐々に移動させてよりバランスのとれたロード分散を達成
する。さらに、転送マスタリマスタリング動作は、初期エポック変更後再構成の
後に行なわれるものであるが、これはシステムが再び利用不可能とならないよう
にして行なわれる。
【0068】 図5を参照すると、これは、この発明の実施例に従ってエポック変更後資源を
リマスタするステップを例示するフローチャートである。ステップ502で、エ
ポック変更が起きる。ステップ504で、エポック変更中に失われたノードに割
当てられたバケット(「マスタレスバケット」)を支配するよう不足ノードが選
択される。ある実施例に従うと、割当てられたバケットの数が最小である、エポ
ック変更後システムの1つ以上のノードが選択される。典型的には、選択された
バケットは、エポック変更中にシステムに加えられたいかなるノードも含むであ
ろう。
【0069】 ステップ506で、バケットからノードへの対応付が修正され、マスタレスバ
ケットに、ステップ504で選択されたノードが割当てられる。ステップ508
で、ロストマスタリマスタリングが実行される。具体的には、再対応付されたバ
ケットにハッシュされる名前を有する資源のマスタ資源オブジェクトが、その新
しいマスタノード上で再構築される。たとえば、資源名R1が、ノードN1に再
対応付されたバケットB1にハッシュされるならば、R1のマスタ資源オブジェ
クトはN1上で再構築される。
【0070】 ステップ504、506および508は、この発明の実施例に従ってエポック
変更後に実行された初期再構成を構成する。ステップ510〜518は、再構成
後資源移動に関わるステップを例示し、これは、エポック変更後に存在するノー
ド間でのより均等なロードバランスのために、初期再構成後に行なわれる。多く
の過剰ノードが、再構成後資源移動に同時的に関与し得る。さらに、そのような
再構成後移動は、徐々に起こればよく、初期再構成後に直ちに始まるかまたは起
きる必要はない。
【0071】 ステップ510で、過剰ノードは不足ノードを選択し、これに、過剰ノードに
現在属しているバケットの1つ以上が再割当されるようになる。説明のために、
単一の「ターゲット」バケットが、選択された不足ノードに再割当されるものと
仮定する。ステップ512で、過剰ノードは、バケット転送メッセージを、選択
された不足ノードに送信して、ターゲットバケットが不足ノードに再割当される
ことを不足ノードに知らせる。ステップ514で、過剰ノードは、選択された不
足ノードに、ターゲットバケットに属する資源のマスタノードオブジェクト情報
を送信する。
【0072】 ステップ516で、不足ノードは、システム内の他のノードに、不足バケット
がターゲットバケットの新しいマスタとなったことを示すメッセージをブロード
キャストする。ステップ518で、ノードは、そのバケットからノードへの対応
付を更新し、ターゲットバケットがメッセージを送信した不足ノードに割当てら
れたことを示すことによって応答する。
【0073】 重要なことには、再構成後資源移動が行なわれている間にもシステムは利用可
能なままであり得る。ある実施例に従うと、移動されている資源へのアクセスを
要求するプロセスさえも実行し続けることが可能である。たとえば、ノードN1
上のプロセスがノードN2からノードN3へと移動されつつある資源を要求する
と仮定する。資源名は、バケットからノードへの対応付に従えばN3であるが依
然としてN2になおも割当てられているバケットにハッシュされる。したがって
、プロセスはアクセス要求をN2に送信する。もしN2が当該資源のマスタ資源
オブジェクトをまだ転送していなければ、N2は通常どおり要求をサービスし得
る。もしN2がマスタ資源オブジェクトをN3に既に転送していれば、N2は要
求をN3に転送する。資源のマスタ資源オブジェクトがN3にまだ到着していな
かったとしても、要求は、マスタ資源オブジェクトの後にN3に到着するであろ
う。なぜなら、N2からのデータは、これがN2から送信されるのと同じ順でN
3に到着するからである。マスタ資源オブジェクトと要求とのどちらもがN3に
到着すると、N3は要求をサービスし得る。
【0074】 この発明のある局面に従うと、資源を別のノードに転送しているノード(上記
の例ではN2)は、それが転送しているマスタ資源オブジェクトの自己のバージ
ョンを引続き維持可能である。転送ノードで維持されるマスタ資源オブジェクト
のバージョンは、バックアップとして機能する。したがって、もしマスタ資源オ
ブジェクトがそこに転送されつつあるノードに障害が発生しても、バックアップ
マスタ資源オブジェクトを使用して資源へのアクセスを制御することが可能であ
る。受信ノードが、それが新しいマスタであるということをブロードキャストす
るまで、転送ノード上にバックアップマスタ資源オブジェクトを維持することに
関連するオーバーヘッドは低減されるが、これはすべてのアクセス要求がいずれ
にせよ転送ノードに到着し(かつこれによって転送される)ことによるものであ
る。受信ノードが、それが新しいマスタであるということをブロードキャストし
た後、転送ノードは、バックアップマスタ資源オブジェクトの維持を停止しても
よいし、マスタ資源オブジェクトを維持し続けてもよい。もし転送ノードがマス
タ資源オブジェクトのバックアップバージョンを維持し続ければ、これは、新し
いマスタノードが、正確にバックアップを維持する目的で古いマスタノードにア
クセス要求を転送することに関連するさらなるオーバーヘッドを招くことになる
【0075】 ある実施例に従うと、バケットに関連付けられるマスタ資源オブジェクトがノ
ード間で移動されている間にエポック変更が起きると、そのバケットはマスタレ
スバケットとして扱われる。したがって、バケットにマスタが再割当され、エポ
ック変更後の初期再構成の間、マスタ資源オブジェクトは再構築される。
【0076】 計画されたシャットダウン この発明のある実施例に従うと、あるノードがエポック変更中にシャットダウ
ンする予定とわかっているとき、図5に示すステップ510〜518がエポック
変更前に行なわれる。たとえば、ノードN2がシャットダウンする予定とわかれ
ば、ノードN2は、N2に現在割当てられているバケットに関連付けられたマス
タ資源オブジェクトを、シャットダウンされない予定の1つ以上の他のノードに
転送する。
【0077】 このプロセスの間、もしN2が、マスタ資源オブジェクトが既に転送されてい
る資源に関連付けられるアクセス要求を受信すれば、N2はその要求を適切なノ
ードに転送する。N2は、先にN2に割当てられていたバケットのすべてに関連
付けられるマスタ資源オブジェクトを転送した後、N2は、すべての受信ノード
がその新しいバケット割当を示すメッセージをブロードキャストするのを待つ。
すべてのブロードキャストメッセージが送信された後、N2はもはやいかなるバ
ケットをも割当てられていないので、N2はシャットダウンしてもよい。この状
況下でのN2のシャットダウンは、ロストマスタリマスタリングに関連するオー
バーヘッドを招くことはない。
【0078】 前記の明細書においては、この発明はその特定の実施例を参照して記載された
。しかしながら、この発明のより広い精神および範囲から逸脱することなしに、
これにさまざまな変形および変更をなし得ることは明らかであろう。したがって
、この明細書および図面は、限定的なものではなく例示的なものとみなされるべ
きである。
【図面の簡単な説明】
【図1】 分散ロックマネージャを有する複数ノードのシステムのブロック
図である。
【図2】 この発明の実施例が実施可能であるコンピュータシステムのブロ
ック図である。
【図3】 この発明の実施例を採用して複数ノードのシステム内で資源がど
こに支配されるべきかを決定するシステムを例示するブロック図である。
【図4】 エポック変更後の図3に示すシステムのブロック図である。
【図5】 この発明の実施例に従うエポック変更後のシステムを再構成する
ステップを例示するフローチャートである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フィッシャー,ジェフリー アメリカ合衆国、94122 カリフォルニア 州、サン・フランシスコ、ロックスレー・ アベニュ、8、ナンバー・3・エム (72)発明者 マーチャンダニー,ラビ アメリカ合衆国、94025 カリフォルニア 州、メンロ・パーク、シャーウッド・ウェ イ、495 Fターム(参考) 5B045 EE06 EE19 5B082 FA17 5B098 AA10 GA04 GB01 GD03 GD16 GD22 【要約の続き】 スタ資源オブジェクトを転送すると、資源の新しいマス タにアクセス要求を転送する。加えて、ノードの計画さ れたシャットダウンを見込んで、ノードから資源を移動 するための技術を開示する。

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 複数ノードのシステムでのノードに対する資源を支配するた
    めの方法であって、 1組の資源の中の各資源について、 第1のハッシュ関数を用いて特定のハッシュバケットに資源を対応付けるステ
    ップと、 第2のハッシュ関数を用いて特定のノードに特定のハッシュバケットを対応付
    けるステップと、 前記資源のマスタとなるよう前記特定のノードを選択するステップとによって
    資源を支配するノードを選択するステップと、 前記第1のハッシュ関数を変更することなしに前記第2のハッシュ関数を変更
    することによってエポック変更に応答するステップとを含む、方法。
  2. 【請求項2】 エポック変更前に、第1の数のノードを用いて前記資源の組
    からの資源を支配し、 エポック変更後に、第2の数のノードを用いて前記資源の組からの資源を支配
    し、 前記方法は前記第1のハッシュ関数を用いてある数のバケットに資源をハッシ
    ュするステップを含み、前記ある数のバケットは前記第1の数および前記第2の
    数のどちらよりも大きい、請求項1に記載の方法。
  3. 【請求項3】 前記第2のハッシュ関数はバケットからノードへの対応付情
    報を用いて実現され、 前記第2のハッシュ関数を変更するステップは、前記バケットからノードへの
    対応付情報のうち1つ以上のバケットからノードへの対応付を変更するステップ
    を含む、請求項1に記載の方法。
  4. 【請求項4】 複数個のノードの各ノードがバケットからノードへの対応付
    情報のローカルコピーを維持し、 前記バケットからノードへの対応付情報のうち1つ以上のバケットからノード
    への対応付を変更するステップは、前記複数個のノードの各々で並列に実行され
    る、請求項3に記載の方法。
  5. 【請求項5】 前記1つ以上のバケットからノードへの対応付を変更するス
    テップは、エポック変更前のバケットからノードへの対応付およびいくつのノー
    ドがエポック変更後に資源を支配するよう利用可能であるかに基づいて確定結果
    を生成する1組の規則を適用することによって実行される、請求項4に記載の方
    法。
  6. 【請求項6】 1つ以上のバケットからノードへの対応付を変更するステッ
    プは、 いくつのハッシュバケットが前記第1のハッシュ関数に関連付けられるかおよ
    びいくつのノードがエポック変更後に資源を支配するよう利用可能であるかに基
    づいてターゲットバケット数を決定するステップと、 もし特定のノードがエポック変更後に資源を支配するよう利用可能であれば、
    エポック変更後に、 もしターゲットバケット数よりも多いバケットがエポック変更前に特定のノー
    ドに対応付けられていたならば、バケットからノードへの情報を修正してエポッ
    ク変更前に特定のノードに対応付けられていた1つ以上のバケットを異なったノ
    ードに対応付けるステップと、 もしターゲットバケット数より少ないバケットがエポック変更前に特定のノー
    ドに対応付けられていたならば、バケットからノードへの情報を修正してエポッ
    ク変更前に異なったノードに対応付けられていた1つ以上のバケットを特定のノ
    ードに対応付けるステップとを実行するステップとを含む、請求項3に記載の方
    法。
  7. 【請求項7】 前記第2のハッシュ関数を変更するステップは、 前記エポック変更後に初期再構成を実行するステップを含み、前記初期再構成
    は、エポック変更後に存在するノードにエポック変更中に取除かれたノードに対
    応付けられた1組のバケットを再対応付するステップを含み、さらに、 前記初期再構成を実行した後、 複数ノードのシステムを一般的に利用可能にするステップと、 複数ノードのシステムが一般的に利用可能である一方で、過剰ノードに現在対
    応付けられている1つ以上のバケットを不足ノードに移動するステップとを実行
    するステップを含む、請求項1に記載の方法。
  8. 【請求項8】 移動するステップは、 過剰ノードが前記1つ以上のバケットに対応付けられる資源を支配するために
    必要な資源情報を不足ノードに送信するステップと、 前記資源情報を送信した後に、過剰ノードが前記1つ以上のバケットに対応付
    けられる前記資源に関する前記過剰ノードによって受信された要求を前記不足ノ
    ードに転送するステップとを含む、請求項7に記載の方法。
  9. 【請求項9】 不足ノードは、前記不足ノードが前記1つ以上のバケットに
    対応付けられる前記資源のマスタであることを示すメッセージをノードの組にブ
    ロードキャストするステップと、 前記ノードの組のノードは、前記第2のハッシュ関数を変更して前記1つ以上
    のバケットを前記不足ノードに対応付けることによって前記メッセージに応答す
    るステップとを含む、請求項8に記載の方法。
  10. 【請求項10】 エポック変更中に複数ノードのシステムから取除かれる予
    定のノード上に現在支配されている資源をリマスタするための方法であって、 ノードは前記資源を支配するために必要な資源情報を別のノードに送信するス
    テップと、 前記資源情報を送信した後に、ノードは前記資源に関する前記ノードによって
    受信された要求を前記他のノードに転送するステップとを含む、方法。
  11. 【請求項11】 資源は、第1の関数に関連付けられるハッシュバケットに
    対応付けられ、 ハッシュバケットは、第2のハッシュ関数に基づいて前記ノードに対応付けら
    れ、 前記資源情報を受信した後に、前記他のノードは前記他のノードが前記資源の
    マスタであるというメッセージを送信し、 前記メッセージに応答して、前記第2のハッシュ関数は前記ハッシュバケット
    を前記他のノードに対応付けるよう変更される、請求項10に記載の方法。
  12. 【請求項12】 他のノードは前記メッセージを複数個のノードにブロード
    キャストし、 第2のハッシュ関数は、前記複数個のノードの各ノードが前記各ノードで維持
    されるバケットからノードへの対応付情報を変更するようになることによって変
    更される、請求項11に記載の方法。
  13. 【請求項13】 複数ノードのシステムでのノードに対する資源を支配する
    ための命令のシーケンスを担持するコンピュータ読出可能媒体であって、命令の
    シーケンスは、 1組の資源の中の各資源について、 第1のハッシュ関数を用いて特定のハッシュバケットに資源を対応付けるステ
    ップと、 第2のハッシュ関数を用いて特定のノードに特定のハッシュバケットを対応付
    けるステップと、 前記資源のマスタとなるよう前記特定のノードを選択するステップとによって
    資源を支配するノードを選択するステップと、 前記第1のハッシュ関数を変更することなしに前記第2のハッシュ関数を変更
    することによってエポック変更に応答するステップとを実行する命令を含む、コ
    ンピュータ読出可能媒体。
  14. 【請求項14】 エポック変更前に、第1の数のノードを用いて前記資源の
    組からの資源を支配し、 エポック変更後に、第2の数のノードを用いて前記資源の組からの資源を支配
    し、 コンピュータ読出可能媒体は、前記第1のハッシュ関数を用いてある数のバケ
    ットに資源をハッシュするステップを実行する命令を含み、前記ある数のバケッ
    トは前記第1の数および前記第2の数のどちらよりも大きい、請求項13に記載
    のコンピュータ読出可能媒体。
  15. 【請求項15】 前記第2のハッシュ関数はバケットからノードへの対応付
    情報を用いて実現され、 前記第2のハッシュ関数を変更するステップは、前記バケットからノードへの
    対応付情報のうち1つ以上のバケットからノードへの対応付を変更するステップ
    を含む、請求項13に記載のコンピュータ読出可能媒体。
  16. 【請求項16】 複数個のノードの各ノードがバケットからノードへの対応
    付情報のローカルコピーを維持し、 前記バケットからノードへの対応付情報のうち1つ以上のバケットからノード
    への対応付を変更するステップは、前記複数個のノードの各々で並列に実行され
    る、請求項15に記載のコンピュータ読出可能媒体。
  17. 【請求項17】 前記1つ以上のバケットからノードへの対応付を変更する
    ステップは、エポック変更前のバケットからノードへの対応付およびいくつのノ
    ードがエポック変更後に資源を支配するよう利用可能であるかに基づいて確定結
    果を生成する1組の規則を適用することによって実行される、請求項16に記載
    のコンピュータ読出可能媒体。
  18. 【請求項18】 1つ以上のバケットからノードへの対応付を変更するステ
    ップは、 いくつのハッシュバケットが前記第1のハッシュ関数に関連付けられるかおよ
    びいくつのノードがエポック変更後に資源を支配するよう利用可能であるかに基
    づいてターゲットバケット数を決定するステップと、 もし特定のノードがエポック変更後に資源を支配するよう利用可能であれば、
    エポック変更後に、 もしターゲットバケット数よりも多いバケットがエポック変更前に特定のノー
    ドに対応付けられていたならば、バケットからノードへの情報を修正してエポッ
    ク変更前に特定のノードに対応付けられていた1つ以上のバケットを異なったノ
    ードに対応付けるステップと、 もしターゲットバケット数より少ないバケットがエポック変更前に特定のノー
    ドに対応付けられていたならば、バケットからノードへの情報を修正してエポッ
    ク変更前に異なったノードに対応付けられていた1つ以上のバケットを特定のノ
    ードに対応付けるステップとを実行するステップとを含む、請求項15に記載の
    コンピュータ読出可能媒体。
  19. 【請求項19】 前記第2のハッシュ関数を変更するステップは、 前記エポック変更後に初期再構成を実行するステップを含み、前記初期再構成
    は、エポック変更後に存在するノードにエポック変更中に取除かれたノードに対
    応付けられた1組のバケットを再対応付するステップを含み、さらに、 前記初期再構成を実行した後、 複数ノードのシステムを一般的に利用可能にするステップと、 複数ノードのシステムが一般的に利用可能である一方で、過剰ノードに現在対
    応付けられている1つ以上のバケットを不足ノードに移動するステップとを実行
    するステップを含む、請求項13に記載のコンピュータ読出可能媒体。
  20. 【請求項20】 移動するステップは、 過剰ノードが前記1つ以上のバケットに対応付けられる資源を支配するために
    必要な資源情報を不足ノードに送信するステップと、 前記資源情報を送信した後に、過剰ノードが前記1つ以上のバケットに対応付
    けられる前記資源に関する前記過剰ノードによって受信された要求を前記不足ノ
    ードに転送するステップとを含む、請求項19に記載のコンピュータ読出可能媒
    体。
  21. 【請求項21】 不足ノードは、前記不足ノードが前記1つ以上のバケット
    に対応付けられる前記資源のマスタであることを示すメッセージをノードの組に
    ブロードキャストするステップと、 前記ノードの組のノードは、前記第2のハッシュ関数を変更して前記1つ以上
    のバケットを前記不足ノードに対応付けることによって前記メッセージに応答す
    るステップとを実行する命令をさらに含む、請求項20に記載のコンピュータ読
    出可能媒体。
  22. 【請求項22】 エポック変更中に複数ノードのシステムから取除かれる予
    定のノード上に現在支配されている資源をリマスタするシーケンスを担持するコ
    ンピュータ読出可能媒体であって、命令のシーケンスは、 ノードが前記資源を支配するために必要な資源情報を別のノードに送信するス
    テップと、 前記資源情報を送信した後に、ノードは前記資源に関する前記ノードによって
    受信された要求を前記他のノードに転送するステップとを実行する命令を含む、
    コンピュータ読出可能媒体。
  23. 【請求項23】 資源は、第1の関数に関連付けられるハッシュバケットに
    対応付けられ、 ハッシュバケットは、第2のハッシュ関数に基づいて前記ノードに対応付けら
    れ、 前記資源情報を受信した後に、前記他のノードは前記他のノードが前記資源の
    マスタであるというメッセージを送信し、 前記メッセージに応答して、前記第2のハッシュ関数は前記ハッシュバケット
    を前記他のノードに対応付けるよう変更される、請求項22に記載のコンピュー
    タ読出可能媒体。
  24. 【請求項24】 他のノードは前記メッセージを複数個のノードにブロード
    キャストし、 第2のハッシュ関数は、前記複数個のノードの各ノードが前記各ノードで維持
    されるバケットからノードへの対応付情報を変更するようになることによって変
    更される、請求項23に記載のコンピュータ読出可能媒体。
JP2000590054A 1998-12-21 1999-12-06 漸進変化を伴うオブジェクトハッシング Expired - Lifetime JP4475818B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/218,864 1998-12-21
US09/218,864 US6363396B1 (en) 1998-12-21 1998-12-21 Object hashing with incremental changes
PCT/US1999/028701 WO2000038062A1 (en) 1998-12-21 1999-12-06 Object hashing with incremental changes

Publications (3)

Publication Number Publication Date
JP2002533809A true JP2002533809A (ja) 2002-10-08
JP2002533809A5 JP2002533809A5 (ja) 2006-12-14
JP4475818B2 JP4475818B2 (ja) 2010-06-09

Family

ID=22816794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000590054A Expired - Lifetime JP4475818B2 (ja) 1998-12-21 1999-12-06 漸進変化を伴うオブジェクトハッシング

Country Status (8)

Country Link
US (1) US6363396B1 (ja)
EP (2) EP1830262B1 (ja)
JP (1) JP4475818B2 (ja)
AU (1) AU770875B2 (ja)
CA (1) CA2320307C (ja)
DE (2) DE69937946T2 (ja)
HK (1) HK1104861A1 (ja)
WO (1) WO2000038062A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009532807A (ja) * 2006-04-03 2009-09-10 セキュア64・ソフトウェア・コーポレイション 計算資源を管理するための方法およびシステム
JP2021530060A (ja) * 2018-07-18 2021-11-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 初期分散を使用する高速、低メモリのコンシステント・ハッシュ
JP2022522214A (ja) * 2019-03-01 2022-04-14 アイオー タホ エルエルシー 移動中のデータの処理技術

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3510042B2 (ja) * 1996-04-26 2004-03-22 株式会社日立製作所 データベース管理方法及びシステム
US6529906B1 (en) * 2000-01-28 2003-03-04 Oracle Corporation Techniques for DLM optimization with re-mastering events
US6751616B1 (en) * 2000-01-28 2004-06-15 Oracle International Corp. Techniques for DLM optimization with re-mapping responsibility for lock management
US7246120B2 (en) 2000-01-28 2007-07-17 Oracle International Corporation Techniques for achieving higher availability of resources during reconfiguration of a cluster
US6920454B1 (en) 2000-01-28 2005-07-19 Oracle International Corporation Techniques for DLM optimization with transferring lock information
US7487152B1 (en) * 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US7020713B1 (en) * 2000-10-10 2006-03-28 Novell, Inc. System and method for balancing TCP/IP/workload of multi-processor system based on hash buckets
US6697901B1 (en) * 2000-10-24 2004-02-24 Oracle International Corporation Using secondary resource masters in conjunction with a primary resource master for managing resources that are accessible to a plurality of entities
US7389293B2 (en) * 2000-12-20 2008-06-17 Oracle International Corporation Remastering for asymmetric clusters in high-load scenarios
TW576061B (en) * 2001-08-13 2004-02-11 Via Tech Inc Device and method for load balancing of packet switching
US7379952B2 (en) * 2004-01-30 2008-05-27 Oracle International Corporation Techniques for multiple window resource remastering among nodes of a cluster
US20060200469A1 (en) * 2005-03-02 2006-09-07 Lakshminarayanan Chidambaran Global session identifiers in a multi-node system
US8504521B2 (en) * 2005-07-28 2013-08-06 Gopivotal, Inc. Distributed data management system
US7814065B2 (en) * 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US8209305B2 (en) * 2006-04-19 2012-06-26 Microsoft Corporation Incremental update scheme for hyperlink database
US8392366B2 (en) * 2006-08-29 2013-03-05 Microsoft Corporation Changing number of machines running distributed hyperlink database
US7821925B2 (en) * 2007-01-29 2010-10-26 Fulcrum Microsystems, Inc. Traffic distribution techniques utilizing initial and scrambled hash values
US7984158B2 (en) * 2007-03-20 2011-07-19 Microsoft Corporation Web service for coordinating actions of clients
US20080278508A1 (en) * 2007-05-11 2008-11-13 Swen Anderson Architecture and Method for Remote Platform Control Management
US8924403B2 (en) * 2007-12-31 2014-12-30 Sap Se Method and system for central data querying
GB2469226A (en) * 2008-01-08 2010-10-06 Taptu Ltd Data storage
US9237100B1 (en) 2008-08-06 2016-01-12 Marvell Israel (M.I.S.L.) Ltd. Hash computation for network switches
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
US8614950B2 (en) 2010-11-30 2013-12-24 Marvell Israel (M.I.S.L) Ltd. Load balancing hash computation for network switches
US9229740B1 (en) 2011-11-02 2016-01-05 Amazon Technologies, Inc. Cache-assisted upload proxy
US8726264B1 (en) 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
US8984162B1 (en) * 2011-11-02 2015-03-17 Amazon Technologies, Inc. Optimizing performance for routing operations
US9171030B1 (en) 2012-01-09 2015-10-27 Marvell Israel (M.I.S.L.) Ltd. Exact match lookup in network switch devices
GB2504112A (en) * 2012-07-18 2014-01-22 Ibm Generating database sequences in a replicated database environment
CN105122745B (zh) 2013-02-27 2019-06-28 马维尔国际贸易有限公司 用于网络设备的高效最长前缀匹配技术
US9537771B2 (en) 2013-04-04 2017-01-03 Marvell Israel (M.I.S.L) Ltd. Exact match hash lookup databases in network switch devices
US9906592B1 (en) 2014-03-13 2018-02-27 Marvell Israel (M.I.S.L.) Ltd. Resilient hash computation for load balancing in network switches
US9935831B1 (en) * 2014-06-03 2018-04-03 Big Switch Networks, Inc. Systems and methods for controlling network switches using a switch modeling interface at a controller
US10587516B1 (en) 2014-07-15 2020-03-10 Marvell Israel (M.I.S.L) Ltd. Hash lookup table entry management in a network device
US10430182B2 (en) 2015-01-12 2019-10-01 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
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
EP3266166B1 (en) 2015-03-06 2021-11-17 Marvell World Trade Ltd. Method and apparatus for load balancing in network switches
US10904150B1 (en) 2016-02-02 2021-01-26 Marvell Israel (M.I.S.L) Ltd. Distributed dynamic load balancing in network systems
EP3279796B1 (en) * 2016-08-02 2020-07-15 NXP USA, Inc. Resource access management component and method therefor
US10243857B1 (en) 2016-09-09 2019-03-26 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for multipath group updates
CN113127921A (zh) * 2019-12-31 2021-07-16 伊姆西Ip控股有限责任公司 数据管理的方法、电子设备和计算机程序产品
CN111475535B (zh) * 2020-03-09 2024-02-06 咪咕文化科技有限公司 数据存储、访问方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202971A (en) 1987-02-13 1993-04-13 International Business Machines Corporation System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock
US5060144A (en) 1989-03-16 1991-10-22 Unisys Corporation Locking control with validity status indication for a multi-host processor system that utilizes a record lock processor and a cache memory for each host processor
JPH0318935A (ja) 1989-06-15 1991-01-28 Hitachi Ltd データリストに対するアクセスの直列化方式
US5161227A (en) 1989-11-13 1992-11-03 International Business Machines Corporation Multilevel locking system and method
JP2533266B2 (ja) 1991-06-14 1996-09-11 インターナショナル・ビジネス・マシーンズ・コーポレイション 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
US5408653A (en) 1992-04-15 1995-04-18 International Business Machines Corporation Efficient data base access using a shared electronic store in a multi-system environment with shared disks
US5403639A (en) 1992-09-02 1995-04-04 Storage Technology Corporation File server having snapshot application data groups
US5452447A (en) 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5612865A (en) 1995-06-01 1997-03-18 Ncr Corporation Dynamic hashing method for optimal distribution of locks within a clustered system
CA2159269C (en) * 1995-09-27 2000-11-21 Chaitanya K. Baru Method and apparatus for achieving uniform data distribution in a parallel database system
US5892945A (en) * 1996-03-21 1999-04-06 Oracle Corporation Method and apparatus for distributing work granules among processes based on the location of data accessed in the work granules
US6026293A (en) * 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US5963960A (en) * 1996-10-29 1999-10-05 Oracle Corporation Method and apparatus for queuing updates in a computer system
US5893086A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Parallel file system and method with extensible hashing
US6023706A (en) * 1997-07-11 2000-02-08 International Business Machines Corporation Parallel file system and method for multiple node file access
GB9811574D0 (en) * 1998-05-30 1998-07-29 Ibm Indexed file system and a method and a mechanism for accessing data records from such a system
US6144983A (en) * 1998-06-09 2000-11-07 Oracle Corporation Method and apparatus for dynamic lock granularity escalation and de-escalation in a computer system
US6173313B1 (en) * 1998-06-24 2001-01-09 Oracle Corporation Methodology for hosting distributed objects at a predetermined node in a distributed system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009532807A (ja) * 2006-04-03 2009-09-10 セキュア64・ソフトウェア・コーポレイション 計算資源を管理するための方法およびシステム
JP2021530060A (ja) * 2018-07-18 2021-11-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 初期分散を使用する高速、低メモリのコンシステント・ハッシュ
JP7219330B2 (ja) 2018-07-18 2023-02-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 初期分散を使用する高速、低メモリのコンシステント・ハッシュ
JP2022522214A (ja) * 2019-03-01 2022-04-14 アイオー タホ エルエルシー 移動中のデータの処理技術

Also Published As

Publication number Publication date
JP4475818B2 (ja) 2010-06-09
WO2000038062A1 (en) 2000-06-29
EP1830262A1 (en) 2007-09-05
AU770875B2 (en) 2004-03-04
HK1104861A1 (ja) 2008-01-25
CA2320307A1 (en) 2000-06-29
DE69939133D1 (de) 2008-08-28
EP1830262B1 (en) 2008-07-16
AU2475900A (en) 2000-07-12
CA2320307C (en) 2003-07-22
EP1055172A1 (en) 2000-11-29
DE69937946D1 (de) 2008-02-21
US6363396B1 (en) 2002-03-26
DE69937946T2 (de) 2009-01-02
EP1055172B1 (en) 2008-01-09

Similar Documents

Publication Publication Date Title
JP2002533809A (ja) 漸進変化を伴うオブジェクトハッシング
US5970488A (en) Real-time distributed database system and method
US6272491B1 (en) Method and system for mastering locks in a multiple server database system
US6920454B1 (en) Techniques for DLM optimization with transferring lock information
US6529906B1 (en) Techniques for DLM optimization with re-mastering events
CN108833503B (zh) 一种基于ZooKeeper的Redis集群方法
US6751616B1 (en) Techniques for DLM optimization with re-mapping responsibility for lock management
US7340522B1 (en) Method and system for pinning a resource having an affinity to a user for resource allocation
US8959144B2 (en) System and method for scalable data distribution
US6928459B1 (en) Plurality of file systems using weighted allocation to allocate space on one or more storage devices
US8055902B2 (en) Method, system, and computer program product for data upload in a computing system
US20040250248A1 (en) System and method for server load balancing and server affinity
JP2003022209A (ja) 分散サーバーシステム
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
JPH10301873A (ja) 通信システムで比較的大きなデータ・オブジェクトの伝送を制御するシステムと方法
CN114070822B (zh) 一种Kubernetes Overlay IP地址管理方法
US20060143178A1 (en) Dynamic remastering for a subset of nodes in a cluster environment
JPH096661A (ja) システム資源管理装置および管理方法
US8707318B2 (en) Partitioning system including a generic partitioning manager for partitioning resources
CN112565475A (zh) 容器集群业务层添加新节点的ip地址分配方法
US6912586B1 (en) Apparatus for journaling during software deployment and method therefor
CN113568749B (zh) 基于Elasticsearch集群的shard分配方法
CN113055448B (zh) 一种元数据管理方法及装置
CN110597809B (zh) 一种支持树状数据结构的一致性算法系统及其实现方法
JPH06243077A (ja) 分散トランザクション処理方式

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4475818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term