[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5121732B2 - 適応型の領域ロック処理 - Google Patents

適応型の領域ロック処理 Download PDF

Info

Publication number
JP5121732B2
JP5121732B2 JP2008553264A JP2008553264A JP5121732B2 JP 5121732 B2 JP5121732 B2 JP 5121732B2 JP 2008553264 A JP2008553264 A JP 2008553264A JP 2008553264 A JP2008553264 A JP 2008553264A JP 5121732 B2 JP5121732 B2 JP 5121732B2
Authority
JP
Japan
Prior art keywords
lock
node
resource
group
requesting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008553264A
Other languages
English (en)
Other versions
JP2009525536A (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 JP2009525536A publication Critical patent/JP2009525536A/ja
Application granted granted Critical
Publication of JP5121732B2 publication Critical patent/JP5121732B2/ja
Active 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/523Mode

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)

Description

この発明はリソースをロックすることに関し、より詳しくいうと、この発明はアグリゲートロック処理に関する。
明細書のこの節で述べる手法は開発努力の対象となり得る手法であるが、これまでに着想され検討された手法であるとは限らない。したがって、特に明示しない場合は、この節に記載してあるというだけの理由でそれらの手法が従来技術に属するものと考えてはならない。
マルチプロセシングシステムで実行中の複数のプロセスはディスクブロックなどの共有リソースにアクセスし得る。それら共有リソースの中には、アクセスを許すプロセスを一つずつに限っているものもあり、複数のプロセスが同時並行的にアクセスできるものもある。したがって、共有リソースへの多数のプロセスのアクセス動作を制御するために、「同期化メカニズム」が開発された。同期化メカニズムはそれらプロセスにロックを許与する。ロックは、そのロックを保持しているプロセスに、特定の方法で特定のリソースにアクセスする権利を許与する。一つのプロセスにロックが許与されると、そのプロセスは、そのロックが放棄され、取り消され、またはそれ以外の形で終結されるまで、そのロックを保持または所有する。ロックはセマフォ、読出し/書込みラッチ、および条件変数などのデータ構造で表される。ロックには多数の種類がある。すなわち、共有リソースが多数のプロセスに同時並行的に共有されることを許容する種類のロック(例えば共有読出しロック)もあり、同一リソースに他の種類のロックが許与されることを防ぐ種類のロック(排他的書込みロック)もある。
ロックの許与を担当するエンティティをこの明細書ではロックマネジャーと呼ぶ。単一ノードマルチプロセシングシステムでは、ロックマネジャーは、通常、共有リソースにアクセスするノード上のプロセスが実行し呼び出すソフトウェアコンポーネントで構成される。
単一ノードシステムと異なり、マルチノードシステムは、各々がマルチプロセシングシステムである複数のコンピューティングデバイスまたは「ノード」のネットワークから成る。それらノードの各々がひと組の共有リソースにアクセスできる。マルチノードシステムは、そのマルチノードシステムの中のノードによる上記ひと組の共有リソースへのアクセスを制御するために、グローバル同期化メカニズムと呼ぶ同期化メカニズムを用いる。
グローバルロックメカニズムは、マルチノードシステム上のプロセスにロックを発行することを担当するグローバルロックマネジャーを含む。ノードは、共有リソースへのアクセスのために、グローバルロックマネジャーから「グローバルロック」を許与される。グローバルロックは、マルチノードシステムの中のノード上のグローバルロックマネジャーが、もう一つのノード上の一つ以上のプロセスに、マルチノードシステムの中の任意のノード上で実行中のプロセス相互間で共有リソースへのアクセスを調整するように、許与できるロックである。
グローバルロックマネジャーの一種として、分散型ロックマネジャー、すなわちマルチノードシステムの複数のノード上に分散配置された複数のローカルロックマネジャーから成り、それら複数のローカルロックマネジャーの一つまたはそれ以上がマルチノードシステムの中の各ノードでランするようにした分散型ロックマネジャーがある。各ロックマネジャーが、そのローカルロックマネジャー所属のノード上のプロセスのためのグローバルロック相互間の調整を担当する。ローカルロックマネジャーは所属ノードについてのローカルロックマネジャーと呼ばれ、そのノードおよびそのノード上で実行中のプロセスはローカルノードおよび上記ローカルロックマネジャーについてのローカルプロセスとそれぞれ呼ばれる。
一つのノードにあるローカルロックマネジャーが、それ以外のノードにあるロックマネジャーと、上記ローカルロックマネジャーと同一のノードで実行中の複数のプロセスとに、グローバルロックを発行する。ノンローカルロックマネジャーが管理しているリソースについてのグローバルロックを必要としているプロセスは、そのプロセス所属のローカルロックマネジャーからのグローバルロックを要求する。ローカルロックマネジャーが互換性あるグローバルロックを既に保持している場合は、そのローカルロックマネジャーはそのローカルプロセスにグローバルロックを発行する。そのローカルロックマネジャーが互換性あるグローバルロックを保持していない場合は、そのローカルロックマネジャーは初め上記ノンローカルロックマネジャーから互換性あるグローバルロックを得る。一旦それを得ると、ローカルロックマネジャーはローカルプロセスにグローバルロックを発行する。
表現の便宜のために、ローカルロックマネジャーがローカルプロセスに発行するグローバルロックをこの明細書ではローカルロックと呼ぶ。すなわち、ローカルロックマネジャーは、もう一つのロックマネジャーからグローバルロックを得て、互換性あるローカルロックをローカルプロセスに発行する。
また、表現の便宜のために、ノードは動作を行うものとして、また動作の対象を構成するものとして説明する。しかし、これは、ノード上の一つ以上のプロセスが動作を行い、または動作の対象をなしていることの便宜上の表現であるに過ぎない。例えば、グローバルロックまたはローカルロックを要求し、取得し、または発行しているロックマネジャーは、グローバルロックまたはローカルロックを要求し、取得し、または発行しているノードとして説明できる。
グローバルロックを取得することは、ローカルロックだけを取得することよりも多くの費用を要する。すなわち、グローバルロックはノード相互間信号授受およびもう一つのノード上のローカルロック/ローカルロックマネジャー間の相互作用を伴うからである。
それらの相互作用はピン(ping: packet internet groper)と呼ばれる特に高コストの形式の動作を伴い得る。ピンは、一つのサーバーのキャッシュに常駐するリソースのバージョンを別のサーバーのキャッシュに供給する必要がある場合に起こる。すなわち、ピンは、ノードAがそのノードのキャッシュの中のリソースXを修正したあとノードBがそのリソースXを要求した場合に起こる。
[キャッシュフュージョン]
ピンを行う一つの方法はキャッシュフュージョンと呼ばれる。ロッキングメカニズムの高速化のためにノード間でリソースのキャッシュのコピーの転送を行う。図1は、この発明の一つの実施例によるマルチノードシステム101、およびキャッシュ付きリソースの要求および転送のためのキャッシュフュージョンプロトコルを示すブロック図である。システム101の中の複数のノードは互いに直接に、またはLANなどのネットワーク経由もしくはインターネット経由で信号授受できる。共有リソースについてのグローバルロックを取得するために、キャッシュフュージョンプロトコルは、要求側ノード104が特定の共有リソースについてのロックをその特定の共有リソースのためのロックマネジャーのあるマスターノード102から要求しているとき、開始する(ステップ112)。
マスターノード102はその要求を受けて、他のノードのいずれかがその共有リソースについての非互換性ロックを保持してないかどうか判定する。共有リソースについての非互換性ロックを保持しているノードがない単純な場合は、マスターノードが要求ノードに直接にロックを許与する。マスターノード自身が共有リソースについての非互換性ロックを保持している場合は、最終的にはマスターノードが共有リソースについてのロックを要求ノードに直接に許与する。それ以外の場合は、別のノード(すなわち保持ノード106)がその共有リソースについての非互換性ロックを保持する。
マスターノードは、保持ノード106にロックを保持されている特定の共有リソースについてのロックを要求ノード104が要求していることを表すメッセージを、保持ノード106に送る(ステップ114)。保持ノード106はそのロックを許与し、共有リソースのコピーを要求ノード104に直接に送る(ステップ116)。共有リソースについて保持ノード106が保持する互換性あるロック(例えば、要求ノード104がそのリソースについての共有ロックを要求し、保持ノード106がそのリソースについての共有ロックを保持するなど)で、保持ノード106から要求ノード104への相互接続メッセージをトリガーする場合もある。すなわち、保持ノード106が、共有リソースの誤り含有または修正バージョンを保持している場合があり得るからである。
次に、要求ノード104が共有リソースおよびロックを受けると、その要求ノード104は、その共有リソースについてのロックを要求ノード104が保持している旨をマスターノード102に知らせる(ステップ118)。したがって、共有リソースについてのロックの要求の各々は、四つのノード間メッセージを生じさせる。したがって、グローバルロックを取得するためのコストを低減する手法が必要とされている。
グローバルロックの取得のためのコストを下げる一つの手法が、複数の共有リソースへのアクセスのパターンに基づいて共有リソースのサブセットにマスターノードを割り当てる「マスタリング手法」を用いるやり方である(一つの共有リソースについてのマスターノードがその共有リソースへの他のノードによるアクセスを管理する)。例えば、共有データの一部へのアクセスの大部分を特定のノードが行う場合は、そのノードをその共有データの上記一部についてのマスターノードとする。それによって、ノード相互間のメッセージ授受オーバーヘッドを減らすことができる。すなわち、共有データの上記一部へのアクセスの大部分を特定のノードが要求するのでグローバルロック取得の必要性が低下するからである。共有データの上記一部への今後のアクセスには、上記特定のノードに関するローカルロックの許与だけがあればよい。しかし、上記マスタリング手法でも、グローバルロックの取得のためのより多くの命令の実行に伴うコストは解消しない。
グローバルロックの取得のためのコストを下げるもう一つの手法は、粗粒度ロッキングを用いる手法である。この手法では、ロックを行やディスクブロックなどより微細な粒度レベルで取得するのではなく、テーブルやファイルなどより高い粒度レベルで取得する。ロックを高い粒度レベルで取得した場合は、より微細な粒度で共有データの諸レベルへのロックが黙示的に許与されたことになる。例えば、一つのテーブル全体についてグローバルロックを取得すると、そのテーブルの行またはブロックについての個々のグローバルロックが黙示的に許与されており、個別に取得する必要はなく、したがって、各行および各ブロックについてグローバルロックを取得するコストを回避できる。
この手法の利点はマスターノードの割当てに左右されないことである。一方、この手法の不利な点は、誤ったコンテンションに陥り得ることである。より詳しくいうと、一つのノードがもう一つのノードにロックされたテーブルの中の行を競合モードで修正する必要がある場合は、そのノードは、アクセスの対象が互いに異なる行または互いに異なるブロックであるかもしれないにも関わらず、そのテーブルについてのロックを手放さなければならないのである。
グローバルロック取得のコストを低減するさらにもう一つの手法は階層ロック処理を用いる手法である。この手法では、ロックをテーブルなどの階層の高いレベルでまず取得する。グローバルロックを階層の高い方のレベルで取得すると、その階層のより低い方のレベルでもグローバルロックが黙示的に許与される。そのあとで、別のノードが行またはブロックなどその階層の低い方のレベルのデータに競合モードでアクセスする必要が生じた場合は、第1のノードがそのロックを段階的に縮小してその階層のより低いレベルでロックを取得する。
この手法の不利な点は、グローバルロック取得のコストが増大して、上記段階的縮小を引き起こすロック要求の出所である要求ノードに移ることである。上記要求を満たすために、階層の低い方のレベルで共有データ全部についてのグローバルロックを取得する動作を行う。この動作は、上記要求ノードの要求したロックが共有データのごく一部だけについてのロックであるにも関わらず行われるのである。
Thomas Schoebel-Theurer"Generalized Optional Locking in Distributed Systems," OperatingSystems Research Day 2004, 16-17 December 2004, pp.1-10 US 5 414 839
したがって、グローバルロック関連のコストを低減する上述の手法に伴う欠陥を回避するグローバルロック取得コストの低減の手法が必要になっている。
以下に述べる説明においては、この発明の理解を深めるために多数の特定の詳細事項を挙げてある。しかし、この発明がこれら特定の詳細事項なしに実施できることは明らかであろう。一方、この発明の説明を不明確にしないように、周知の構成およびデバイスはブロック図の形で示してある。
マルチノードシステムで実行中の複数のプロセスから共有リソースへのアクセスを効率化し、そのシステムの利用効率を高める。
[概略]
データベースシステムにおいてロックを管理する方法および装置を提供する。第1の要求ノードが第1のリソースについてのグローバルロックを要求し、マスターノードが第1のリソースとその第1のリソースを含む一つのリソース群とについてのロックを許与する。上記リソース群についてのグローバルロックの許与は、上記第1の要求ノードが同じリソース群の中の他のリソースにアクセスしがちであるとの想定に基づいて行う。要求ノードは、上記リソース群に対応するマッピング、すなわち他のノードの保持しているグローバルロックがそのリソース群の中の第2のリソースについて既に存在することを表すマッピングを受ける。要求ノードは上記リソース群についてのロックと互換性のあるローカルロックを、マスターノードへの通知なしに、自分自身に許与する。
第2の要求ノードは、上記リソース群の中の特定のリソースについてのグローバルロックを要求し得る。その場合、第1の要求ノードはその特定のリソースについてのロックを手放すかダウンコンバートし、その特定のリソースについてのロックを第2の要求ノードに許与する。第1の要求ノードはそのノードのマッピングを、別のノード(すなわち、第2の要求ノード)がその特定のリソースについてのロックを保持していることを表すように更新する。第1の要求ノードがその特定のリソースを修正したり汚染したりした場合は、第1の要求ノードはその修正に対応するデータを併せて送る。
[リソースについてのロックの要求]
図2はこの発明の一つの実施例によるマルチノードシステム201および共有リソース群についてのロックを得る方法を表すブロック図である。リソースは、概括的にいうと、マルチノードシステムの中のノードが共有できる任意のアイテムである。リソースのごく普通の例はデータベースデータブロックである。すなわち、リソース群は持続蓄積装置の中に蓄積された二つ以上の互いに隣接したデータブロックの組に対応する。
マスターノード102は、データベースシステムの中の共有リソースについて他のノードにグローバルロックを許与することを担当する。初めに、ノード204がリソースまたはリソース群について特定の種類のグローバルロックを要求する(ステップ212)。この要求には、特定のリソースについてのグローバルロックと、そのリソースを含む特定のリソース群についてのグローバルロックとの両方に対する要求が含まれ得る。ノード204からの要求は、特定のリソースだけまたは特定のリソース群だけについてのグローバルロック要求でもあり得る。
マスターノード102は、少なくともリソース群についての共有ロックなどのグローバルロックへの要求を許与するメッセージをノード204に送る(ステップ214)。ノード204からの要求が特定のリソースに対する要求である場合は、マスターノード102は、その特定のリソースが特定のリソース群(例えば、相続くデータブロックの組)の中にあることを動的に判定する(または統計的に判定ずみである)。マスターノード102は上記リソース群の中の全リソースについてロックおよびロックの種類を表すリソース群対応のマッピングを送る。ノード204上のローカルプロセスがそのマッピングにおいて特定されたリソース群の中の任意のリソースについてのグローバルロック、すなわちリソース群についてのグローバルロックと互換性のあるグローバルロックを要求する場合は、ノード204のローカルロックマネジャーはそのローカルプロセスにロックを許与して、マスターノード102へのロック要求なしにマッピングを更新するだけである。
例えば、上記リソース群についてのグローバルロックが共有ロックである場合は、ノード204は、ローカルプロセスにローカル共有ロックを許与するのに、上記リソース群の中のいずれかのリソースに対するマスターノード102からの共有ロックを要求する必要はない。要するに、ノード204は複数のリソースについてのロックをただ一つのメッセージで受けるのである。
上記リソース群に許与されたグローバルロックは、特定のリソースについてのグローバルロックと同一であっても異なっていても差し支えない。例えば、ノード204が特定のリソースについての排他的ロックを要求する場合は、マスターノード102はその特定のリソースについての排他的ロックを許与し得るとともに、その特定のリソースを含む上記リソース群についての共有ロックを許与し得る。その場合は、上述のマッピング自身が、ノード204に許与ずみの特定のリソースについての排他的ロックがあることを表す。
ノード204が初めにリソースについての少なくとも一つのグローバルロックを要求し(ステップ212)、このシステムの中のもう一つのノードがそのリソースについての非互換性ノードを保持している場合は、マスターノード102がそのリソースを含むリソース群についてのグローバルロックを許与し、ノード204がそのリソースについてグローバルロックを要求していることを表すメッセージを他のノードに送る。その際には、上記マッピングは、上記リソース群についてのロックの種類に加えて、非互換性グローバルロックが他のノードに保持中であることを併せて表す。
データベースサーバーネットワークの中のノードが如何に構成されているかに応じて、上記他のノードは、上記リソースについてのグローバルロックを、特に前記他のノードがそのリソースについて排他的ロックを有する場合は、所定の長さの時間が経過するまで、ノード204に許与しない。すなわち、排他的ロックの取得は、ノード間メッセージ授受の点から、比較的「不経済」であるからである。上記他のノードは、リソースに対するマスターノード102からの要求がある数に達した場合は、上記所定の長さの時間の経過に関わりなく、そのリソースについてのグローバルロックを放出するように構成することもできる。
上記他のノードは、図1に関連づけて説明したプロセスと同様に、上記リソースについてのグローバルロックを互換性あるロックモードにダウンコンバートするか、そのロックを全く手放してリソースの最新バージョンのコピーをノード204に送る。次に、ノード204は、そのリソースについてのロックを自分が保持していることをマスターノード204に知らせる。したがって、ノード204が既にロックずみのリソースについての非互換性グローバルロックを要求し、そのロックずみのリソースを含むリソース群についてのグローバルロックを許与されている場合は、ノード204は二つのメッセージ、すなわち上記リソース群についてのロックを許与するマスターノード102からのメッセージ、および上記リソースについてのロックを許与する上記他のノードからのメッセージの二つのメッセージを受ける。
[領域マッピング]
ノード204に送られたマッピングは、上記リソース群についてのグローバルロックに加えて、同リソース群の中の特定のリソースについてのロックがシステム内のもう一つのノードに保持されていることを併せて表す。図3は、ノード204など特定のノードについて共有リソース群のこの発明の一つの実施例によるマッピング300を説明する図である。マッピング300は、上記リソース群のロックモードおよびその群の中の個々のリソースのロックモードに関するノード204への情報を後述のとおり保持する任意の形式のデータ構造(例えば、文字アレーなど)またはデータファイル(例えば、編成ずみのテキストを含む単純なテキストファイルなど)で構成できる。
この例では、マッピング300は共有グローバルロック302がマッピング300に対応して上記リソース群につき許与されたことを表している。また、マッピング300は、排他的グローバルロック304がブロック7(「リソース7」)に対応して上記リソースにつきもう一つのノードに保持されていることを表す。さらに、マッピング300はノード204が自分自身に共有ロックを許与したこと(すなわち、ノード204のローカルロックマネジャーがノード204に関するローカルプロセスに共有ロックを許与したこと)を表す。
マッピング300などのマッピングは、上記リソース群の中の一つのリソースに関する他の情報、例えばシステムの中のどのノードが排他的ロックを保持しているか、そのロックはいつ許与されたかなどの情報も保持できる。マッピング300が16個のリソースに対応するものとして図3には示してあるが、マッピング300は任意の個数のリソースに対応させることができ、また、例えばどのリソースが最も頻繁に要求を受けたか、どれほど頻繁に競合が生じたか、衝突はいつ起きたか、などに基づいて、マスターノード102が動的に決めた個数にすることができる。
[群ロック保持ノードからの後続のロック要求]
図4はこの発明の一つの実施例によるマルチノードシステム401、およびリソース群の中の一つのリソースについてのグローバルロックを一つのノード(例えば要求ノード404)が得る方法を、要求ノード404が上記リソース群についてのグローバルロックを保持しもう一つのノード(例えば保持ノード406)が上記一つのリソースについてのグローバルロックを保持する場合について示すブロック図である。
要求ノード404がマッピング300の中のリソース7についてのグローバルロックを要求し、そのロックが保持ノード406の保持するリソース7について保持中ロックとの間で互換性を備えない場合は、キャッシュフュージョンプロトコルにしたがってノード間メッセージをマスターノード102および保持ノード406に送る。例えば、要求ノード404がリソース7についてのグローバルロックを要求するメッセージをマスターノード102に送る(ステップ412)。マスターノード102はどのノードがリソース7についての排他的ノードを保持するかを判定し、要求ノード404がリソース7についてのグローバルロックを要求していることを保持ノード406に知らせるメッセージを保持ノード406に送る(ステップ414)。保持ノード406はそれ自身のグローバルロックをナルモードにダウンコンバートするか全面的に手放すかして、リソース7についてのロックを許与するメッセージを要求ノード404に送る(ステップ416)。また、保持ノード406は、リソース7に加えられたあらゆる修正を反映したリソース7の最新バージョンのコピーも送る。要求ノード404は、要求ノード404がリソース7についての排他的グローバルロックを保持していることをマスターノード102に知らせる(ステップ418)。マスターノード102はそれ自身の情報テーブルを更新して、要求ノード404がリソース7についての排他的ロックを保持中であることを表示する。
要求ノード404がマッピング300の特定するリソース群の中の一つのリソースについてのグローバルロックを要求しており、それ以外のノードがグローバルロックを保持していないかそのリソースについての非互換性グローバルロックを保持していない状態では、複数のノード間メッセージを発生する必要はない。しかし、要求ノード404が上記リソース群の中でマッピング300の特定するリソースであって共有モードで領域ロックを保有するリソースについての排他的ロックを要求する場合は、ノード404はそのグローバルロックをフュージョンロックに拡張し、マスター102に拡大要求を差し出す。要求ノード404はマッピング300の中にロック拡張を表示することができる。
[リソース群の中の一つのリソースについてのロックを要求する第2のノード]
図5はこの発明の一つの実施例によるマルチノードシステム501、およびリソース群の中の一つのリソースについてのロックを一つのノード(例えば、要求ノード504)が得る方法を、もう一つのノード(例えば、保持ノード506)がそのリソース群についてのロックを保持する場合について示すブロック図である。
保持ノード506がリソース群に対応するマッピング300を得たのち、例えば要求ノード504などもう一つのノードがマッピング300対応のリソース群の中の一つのリソースについてのグローバルロックを要求し得る。例えば、要求ノード504がマッピング300の中のブロック3(すなわち「リソース3」)に関連したリソースについての排他的グローバルロックを要求しており、保持ノード506が共有モードで群ロックを保持しているものと仮定する。要求ノード504はリソース3についての排他的グローバルロックの要求をマスターノード102に送る(ステップ512)。マスターノード102は、例えばそのノード102自身のマッピングに基づき、保持ノード506がリソース3を含む上記リソース群についての共有グローバルロックを有すると判定する。
この段階において少なくとも二つのケースがあり得る。すなわち、(1)保持ノード506がリソース3についての個別共有グローバルロック(すなわち、グループロックに加えてそのリソースだけについてのグローバルロック)を保持する、または(2)保持ノード506はリソース3についての個別グローバルロックを保持しない、の二つのケースである。保持ノード506が排他的ロックを保持している場合は、マスターノード102はその情報を有する。
保持ノード506がリソース3についての個別共有グローバルロックを保持している場合は、ロックを放出し許与するキャッシュフュージョンプロトコルに従う。より詳細に述べると、要求ノード504が排他的グローバルロックを要求していることをマスターノード102から知らされた保持ノード506は、リソース3についてそれ自身が有するロックを共有モードからナルモードにダウンコンバートするか、リソース3についてのロックを手放す。次に、保持ノード506はリソース3のコピーをノード504に送り、リソース3についての排他的グローバルロックを要求ノード504に許与する。要求ノード504は、自分がリソース3についての排他的グローバルロックを有することをマスターノード102に知らせる。保持ノード506におけるマッピング300は更新されて、リソース3についての排他的グローバルロックがもう一つのノードに保持されていることを表示する。
保持ノード506がリソース3についての個別グローバルを保持していない場合は、マスターノード102は、リソース3についての排他的ロックを上記もう一つのノードが要求している旨のメッセージを保持ノード506に送る(ステップ514)。保持ノード506は、自分が個別グローバルロックを保持してないことをマスターノード102に知らせる(ステップ516)。マスターノード102はリソース3を含む上記リソース群に対応する自分自身のマッピングを更新するか、要求ノード504がリソース3についての排他的グローバルロックを保持中であることを表示するようにもう一つのログを更新する。マスターノード102は、初めに要求されていた排他的ロックを要求ノード504に許与する(ステップ518)。
[その他のロック処理環境]
リソース群全体についての特定のマッピング対応のロックを別のロックにアップグレードまたはダウングレードする(例えば、排他的ロックから共通ロックへのダウングレード)必要があったり、マッピング全体を分解したりする必要があったりという場合があり得る。
例えば、図2の中のノード204がマッピング300を維持しそのノード204が一つのリソース群についてのグローバルロックを共有モードで保持するものとする。ノード204はマッピング300で特定されたリソースの主要部分についての複数の排他的ロックをそのあとで取得し得るであろう。マルチノードシステム201の中のノード相互間の現在のトラフィックやその他のアップグレード関連要因に応じて、上記群ロックを排他モードにアップグレードする方がより効率的であるかもしれない。
より普通の事態は、一つ以上の他のノードが、マッピング300で特定されたリソース群の中の複数のリソースについて複数の非互換性グローバルロックを要求する状態が生ずることである。ノード204は、上記リソース群の中のそれらリソースについての個別ロックが他のノードにいくつ保持されているか、互いに競合する要求がさらに出てくる可能性、上記リソース群の中のいずれかのリソースについてのロックをノード204が要求するか否かなどの要因一つ以上に基づき、群ロックをダウングレードまたは分解する必要があるか否かを判断する。上述の群ロックのダウングレードの場合は、ノード204が、マスターノード102に対して、マッピング300対応のマスターノード102のマッピングを例えば排他的ロックから共有ロックへまたは共有ロックからナルロックへダウングレードするように、知らせる。
代わりに、ノード204はマスターノード102に対して群ロックを分解するように知らせる。その分解を要する事態は、ロックモードを大部分読込みロックなど他の種類のロックモードに変換中である場合である。他の種類のロックを変換するために、群ロックをまず分解したのち新たなロックの種類を取得しなければならない。
グループロックの伝達を要するもう一つの事態はマスターノードの故障である。マスターノード102が故障すると、マルチノードシステムの中のノードから新たなマスターノードを選択する。リソース群のマッピングを維持している非マスターノードの各々は、それぞれのマッピングを上記新たなマスターノードに送り、その新たなマスターノードが個々のリソースについての複数のロックおよびリソース群についての複数のロックを許与できるようにする。
上に述べてきたこの発明の実施例は、分散ロック処理環境にあるものとして説明した。しかし、この発明の実施例はこの分散処理環境に限定されない。それら実施例を非分散ロック処理環境で実働化することもできる。
[ハードウェア概要]
図6はこの発明の実施例を実働化できるコンピュータシステム600のブロック図を示す。コンピュータシステム600は、情報を授受するためのバス602ほかの通信メカニズムと、その情報を処理するようにバス602に接続したプロセッサ604とを含む。また、コンピュータシステム600は、バス602に接続されて情報およびプロセッサ604で実行すべき命令を蓄積するRAMその他のダイナミック蓄積装置などの主記憶装置606を含む。主記憶装置606は、プロセッサ604で実行すべき命令の実行中に一時的変数その他の中間情報を蓄積するためにも用いられる。コンピュータシステム600は、さらに、バス602に接続されコンピュータ604へのスタティック情報および命令を蓄積する読出し専用メモリ(ROM)608その他のスタティック蓄積装置を含む。磁気ディスクや光ディスクなどの蓄積装置610をバス602に接続し情報および命令の蓄積に備えてある。
コンピュータシステム600は、コンピュータユーザに情報を表示するように、CRT表示装置などの表示装置612にバス602経由で接続できる。英数字その他のキーを含む入力デバイス614を、プロセッサ604への情報および命令選択の伝達のために、バス602に接続してある。もう一つの種類のユーザ入力デバイスは、マウス、トラックボール、またはプロセッサ604への方向情報および命令選択の伝達および表示装置612上でのカーソルの動きの制御のためのカーソル方向キーなどのカーソルコントロール手段616である。この入力デバイスは通常二つの軸、すなわち第1の軸(例えばx軸)および第2の軸(例えばy軸)で二度の自由度をもち、一つの平面上での位置を特定する。
この発明は上述の手法を実働化するためのコンピュータシステム600の利用に関する。この発明の一つの実施例によると、それらの手法は、主記憶装置606に含まれている一つ以上の命令の一つ以上の命令系列を実行しているプロセッサ604に応答してコンピュータシステム600が行う。それらの命令は蓄積装置610などもう一つのコンピュータ可読媒体から主記憶装置606に読み込まれる。主記憶装置606に収容されている命令の系列の実行により、プロセッサ604はこの明細書に記載したプロセスの各ステップを実行する。代わりの実施例では、この発明の実働化のためにソフトウェア命令の代わりに、またはソフトウェア命令との組合せで、結線回路を用いる。すなわち、この発明の実施例は、ハードウェア回路およびソフトウェアの特定の組合せに限られない。
この明細書で用いている用語「コンピュータ可読媒体」は、コンピュータを特定の形で動作させるデータを供給するのに寄与する任意の媒体を意味する。コンピュータシステム600を用いて実働化した実施例では、例えばプロセッサ604に実行のために供給する際に多様なコンピュータ可読媒体が関わってくる。それら媒体は、非揮発性媒体、揮発性媒体、伝送媒体など任意の形態をとり得る。非揮発性媒体としては、例えば蓄積装置610などの光ディスクまたは磁気ディスクが挙げられる。揮発性媒体には主記憶装置606などのダイナミックメモリを含む。伝送媒体は、同軸ケーブル、銅線、光ファイバ、バス602を構成するリード線などの媒体を含む。また、伝送媒体は無線周波数データ通信および赤外線データ通信などの過程で生ずる音響波または光波の形をとることもできる。
コンピュータ可読媒体の普通の形態としては、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、その他の磁性媒体、CD−ROM、その他の光媒体、鑽孔カード、紙テープ、その他の鑽孔パターン付きの物理媒体、RAM、PROM、EPROM、フラッシュEPROM、その他のメモリチップまたはカートリッジ、後述の搬送波、またはその他のコンピュータ可読媒体が挙げられる。
一つ以上の命令の一つ以上の系列を実行に備えてプロセッサ604に供給するのに多様な形態のコンピュータ可読媒体を用いることができる。例えば、それら命令は当初は遠隔地点のコンピュータの磁気ディスクに蓄積しておくことができる。その遠隔地点のコンピュータはそのコンピュータのダイナミックメモリにそれら命令をロードしてモデムにより電話回線経由で送出する。コンピュータシステム600内蔵のモデムは電話回線経由でデータを受けて赤外線送信機によりそのデータを赤外線信号に変換する。その赤外線信号により搬送されたデータを赤外線検出器で受けて、適切な回路によりバス602に送出する。バス602はそれらデータを主記憶装置606に送り、その主記憶装置606からプロセッサ604が命令を読み出して実行する。主記憶装置606の受けた命令を、プロセッサ604による実行の前または後に、蓄積装置610に蓄積することもできる。
コンピュータシステム600には、バス602に接続した通信インタフェース618も含まれる。この通信インタフェース618は、ローカルネットワーク622に接続されたネットワークリンク620への双方向データ通信接続を構成する。例えば、通信インタフェース618は、対応のタイプの電話回線へのデータ通信接続を提供するための統合サービスディジタル網(ISDN)カードまたはモデムで構成できる。もう一つの例として、通信インタフェース618をローカルエリアネットワーク(LAN)カードで構成して、互換性あるLANへのデータ通信接続を提供することもできる。無線リンクを用いることもできる。リンクの形態の如何を問わず、通信インタフェース618は多様な情報を表すディジタルデータストリームを搬送する電気信号、電磁波信号または光信号を送受する。
ネットワークリンク620は、一つ以上のネットワーク経由で他のデータデバイスへのデータ通信を提供する。例えば、ネットワークリンク620は、ホストコンピュータ624、またはインターネットサービスプロバイダ(ISP)626の稼働するデータ装置への接続を、ローカルネットワーク622経由で構成する。一方、ISP626は、一般に「インターネット」と呼ばれるパケットデータ全世界通信網628経由でデータ通信サービスを提供する。ローカルネットワーク622および628はいずれも、ディジタルデータストリームの搬送に電気信号、電磁波信号または光信号を用いる。多様なネットワーク経由の信号、ネットワーク620および通信インタフェース618経由の信号はいずれもコンピュータシステム600に出入りするディジタルデータを搬送するものであり、情報搬送用搬送波を例示するものである。
コンピュータシステム600は上述の諸ネットワーク、ネットワークリンク620および通信インタフェース618経由で、プログラムコードを含むメッセージを送信しデータを受信できる。上述のインターネットの例では、サーバー630が、アプリケーションプログラムのための要求コードを、インターネット628、ISP626、ローカルネットワーク622および通信インタフェース618経由で送る。
受けたコードは、受信され次第プロセッサ604で処理し、または蓄積装置610その他の不揮発性蓄積装置に後刻の実行に備えて蓄積する。このようにして、コンピュータシステム600はアプリケーションコードを搬送波の形で取得する。
この発明の実施例を多様な詳細点を参照しながら上に述べてきたが、これらの詳細点は実動化の例ごとに異なる。したがって、この発明が何であるか、および出願人が何を発明として意図しているかを表す唯一で排他的な指標は、この出願の特許請求の範囲の記載である。特許請求の範囲に用いてある用語についてこの明細書に述べた定義はそれら用語の意味を特定する。したがって、請求の範囲に明示的に示していない限定、素子、特性、利点、または属性によってそれら請求の範囲に限定を加えてはならない。すなわち、この出願の明細書および図面は例示のみを意図するものであって限定を意図するものではない。
マルチノードシステムにおけるデータベース装置などの共有リソースの設置および運用の費用効率を著しく改善でき、この種のシステムのいっそうの普及に寄与できる。
この発明の一つの実施例によるマルチノードシステム、およびキャッシュ付きリソースを要求し転送する方法のブロック図。 この発明の一つの実施例によるマルチノードシステム、および一群の共有リソースについてロックを取得する方法のブロック図。 この発明の一つの実施例により一群の共有リソースについて特定のノードでロックを取得する方法の流れ図。 この発明によるマルチノードシステム、および一群のリソースの中の一つのリソースについてのロックを一つのノードで取得する方法であって、そのノードが上記一群のリソースについてのロックを保持しもう一つのノードがそのリソースについてのロックを保持している方法を図解するブロック図。 この発明によるマルチノードシステム、および一群のリソースの中の一つのリソースについてのロックを一つのノードで取得する方法であって、もう一つのノードがそのリソース群についてのロックを保持している場合の方法を図解するブロック図。 この発明の一つの実施例の実動化に用いることができるコンピュータシステムのブロック図。
符号の説明
[図1]
101,201,401,501 マルチノードシステム
102 マスターノード
104,404,504 要求ノード
106,406,506 保持ノード
112 グローバルロックを要求する
114 グローバルロックをダウングレードまたは放棄するようノードに知らせる
116 グローバルロックを許与する
118 グローバルロック保持の変化をマスターノードに知らせる
[図2]
204 ノード
212 リソースについてのグローバルロックを要求する
214 リソースおよび一群のリソースについてグローバルロックを許与する
[図4]
412 一群のリソースの中のリソースについてのグローバルロックを要求する
414 ノード404がリソースについてグローバルロックを要求していることを表すメッセージ
416 グローバルロックを許与する
418 グローバルロック保持の変化をマスターノードに知らせる
[図5]
512 リソースについてのグローバルロックを要求する
514 そのリソースについてもう一つのノードがグローバルロックを要求していることをノードに知らせる
516 そのノードがそのリソースについてのグローバルロックを保持していないことをマスターノードに知らせる
518 そのリソースについてグローバルロックを許与する
[図6]
600 コンピュータシステム
602 バス
604 プロセッサ
606 主記憶装置
608 ROM
610 蓄積装置
612 表示装置
614 入力装置
616 カーソル制御装置
618 通信インタフェース
620 ネットワークリンク
622 ローカルネットワーク
624 ホストコンピュータ
626 インターネットサービスプロバイダ(ISP)
628 インターネット網
630 サーバー

Claims (15)

  1. 一つ以上のプロセッサを含むデータベースシステムにおいてロックの要求を管理する方法であって、前記方法は、前記一つ以上のプロセッサによって実行される過程を含み、当該過程は、
    要求ノードが、あるリソースについてのロックの要求を表すメッセージを送信する過程と、
    前記要求ノードが、
    記リソースを含むリソース群についてのロックが前記要求ノードへ許与されたことを通知、および
    前記リソース群のうち一つ以上のリソースが、前記要求ノード以外の一つ以上のノードによってロックされていることを示すマッピングを、受信する過程とを含む、方法。
  2. 前記マッピングは、前記要求ノード以外のいずれかのノードが前記リソースについてのロックを保持していることを示す、請求項1に記載の方法。
  3. 前記マッピングは、前記一つ以上のノードを特定する情報を含む、請求項1または2に記載の方法。
  4. 前記一つ以上のプロセッサによって実行される過程は、
    要求ノードが、前記リソース群に含まれる第2のリソースについてのロックが必要であるとする過程と、
    前記マッピングに基づいて、前記要求ノードが、前記第2のリソースについての非互換ロックが他のノードにはないと判断する過程と、
    前記要求ノードが前記第2のリソースについてのロックを許与する過程とをさらに含む、請求項1〜3のいずれか1項に記載の方法。
  5. 前記一つ以上のプロセッサによって実行される過程は、
    要求ノードが、前記リソース群に含まれる第2のリソースについてのロックが必要であるとする過程と、
    前記マッピングに基づいて、前記要求ノードが、前記第2のリソースについての非互換ロック他のノードが有していると判断する過程と、
    前記要求ノードが、前記第2のリソースについてのロック要求を表すメッセージを送信する過程とをさらに含む、請求項1〜3のいずれか1項に記載の方法。
  6. 前記一つ以上のプロセッサによって実行される過程は、
    前記要求ノードにおいて、前記リソース群に含まれる第2のリソースについてのロックを第2のノードが要求していることを示すメッセージを受信する過程と、
    前記メッセージを受信したことに応答して、前記マッピング、前記第2のリソースについてのロックをのノードが保持していることを通知する過程とをさらに含む、請求項1〜3のいずれか1項に記載の方法。
  7. 前記一つ以上のプロセッサによって実行される過程は、
    前記要求ノードが、以下のうち少なくとも一つを他のノードへ送信する過程をさらに含む、
    前記第2のリソースについてのロックが前記他のノードに許与されていることを示す第2のメッセージ、および
    前記第2のリソースの最新バージョン、請求項6に記載の方法。
  8. 前記一つ以上のプロセッサによって実行される過程は、
    前記要求ノードにおいて、前記リソース群に含まれる第2のリソースについてのロックを第2のノードが要求していることを示すメッセージを受信する過程と、
    前記メッセージを受信したことに応答して、前記要求ノードにおいて、前記リソース群についてのロックを解放することを決定する過程と、
    前記リソース群についてのロックの解放をマスターノードへ通知する過程とをさらに含む、請求項1〜3のいずれか1項に記載の方法。
  9. 前記一つ以上のプロセッサによって実行される過程は、
    前記要求ノードが、一つ以上の基準に基づいて、前記リソース群についてのロックをダウングレードまたは放棄する過程をさらに含む、請求項1〜3のいずれか1項に記載の方法。
  10. 前記一つ以上の基準は、以下の基準のうち一つ以上を含む、
    前記リソース群のリソースについて、いくつの個別ロックが前記要求ノード以外のノードによって保持されているのか、
    前記要求ノード以外のノードからの前記リソース群のリソースについてのロックの将来的な要求が、どの程度、前記リソース群についてのロックと衝突し得るのか、および
    前記リソース群のいずれかのリソースについての個別ロックを前記要求ノードが要求しているのか否か、請求項9に記載の方法。
  11. 前記通知は、さらに前記リソースについてのロックが前記要求ノードへ許与されたことを示し、
    前記リソースについてのロックは、排他的ロックであり、
    前記リソース群についてのロックは、共有ロックである、請求項1〜10のいずれか1項に記載の方法。
  12. 一つ以上のプロセッサを含むデータベースシステムにおいてロックの要求を管理する方法であって、前記方法は、前記一つ以上のプロセッサによって実行される過程を含み、当該過程は、
    マスターノードが第1のリソースについてのロックに対する第1のノードからの要求を受信する過程と、
    前記要求を受信したことに応答して、前記マスターノードが、
    前記第1のリソースに基づいて、前記第1のリソースを含むリソース群を決定し、
    前記第1のノードへ
    前記リソース群についてのロックが前記第1のノードへ許与されたとの通知、および
    前記リソース群のうち一つ以上のリソースが、前記第1のノード以外の一つ以上のノードによってロックされていることを示すマッピングを送信する過程とを含む、方法。
  13. 前記マッピングは、前記第1のノード以外のいずれかのノードが前記第1のリソースについてのロックを保持していることを示す、請求項12に記載の方法。
  14. 前記通知は、さらに前記第1のリソースについてのロックが前記第1のノードへ許与されたことを示し、
    前記第1のリソースについてのロックは、排他的ロックであり、
    前記リソース群についてのロックは、共有ロックである、請求項12または13に記載の方法。
  15. 一つ以上のプロセッサによ実行されると、請求項114のいずれか1項に記載の方法を当該一つ以上のプロセッサに実行させる一つ以上の命令列を格納したコンピュータ読取可能な記録媒体。
JP2008553264A 2006-02-03 2007-01-23 適応型の領域ロック処理 Active JP5121732B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/346,822 US8103642B2 (en) 2006-02-03 2006-02-03 Adaptive region locking
US11/346,822 2006-02-03
PCT/US2007/002020 WO2007092167A2 (en) 2006-02-03 2007-01-23 Adaptive region locking

Publications (2)

Publication Number Publication Date
JP2009525536A JP2009525536A (ja) 2009-07-09
JP5121732B2 true JP5121732B2 (ja) 2013-01-16

Family

ID=38254978

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008553264A Active JP5121732B2 (ja) 2006-02-03 2007-01-23 適応型の領域ロック処理

Country Status (7)

Country Link
US (1) US8103642B2 (ja)
EP (1) EP1979814B1 (ja)
JP (1) JP5121732B2 (ja)
CN (1) CN101375250B (ja)
AU (1) AU2007212685B2 (ja)
CA (1) CA2634590C (ja)
WO (1) WO2007092167A2 (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7447786B2 (en) * 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
US8914565B2 (en) * 2007-06-08 2014-12-16 Sap Ag Locking or loading an object node
US8024361B2 (en) * 2007-10-23 2011-09-20 International Business Machines Corporation Method and system for allowing multiple users to access and unlock shared electronic documents in a computer system
JP5213077B2 (ja) * 2008-10-06 2013-06-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のアプリケーションサーバにより共有データをアクセスするシステム
US7917596B2 (en) * 2009-01-07 2011-03-29 Oracle International Corporation Super master
JP5466717B2 (ja) * 2009-02-06 2014-04-09 インターナショナル・ビジネス・マシーンズ・コーポレーション データの整合性を維持するための装置、方法、およびコンピュータ・プログラム(データの整合性を維持するための装置)
US8924982B2 (en) * 2010-01-12 2014-12-30 Amazon Technologies, Inc. Managing private use of program execution capacity
US8595692B2 (en) * 2010-03-22 2013-11-26 International Business Machines Corporation Identifying lock granularization opportunities
US20120278294A1 (en) * 2011-04-29 2012-11-01 Siemens Product Lifecycle Management Software Inc. Selective locking of object data elements
US8924370B2 (en) 2011-05-31 2014-12-30 Ori Software Development Ltd. Efficient distributed lock manager
WO2013046883A1 (ja) * 2011-09-30 2013-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクション処理システム、方法及びプログラム
US9256600B2 (en) * 2012-04-13 2016-02-09 D2L Corporation Method and system for electronic content locking
US20140040218A1 (en) * 2012-07-31 2014-02-06 Hideaki Kimura Methods and systems for an intent lock engine
US9542237B2 (en) * 2012-09-04 2017-01-10 Red Hat Israel, Ltd. Shared locking for storage centric exclusive locks
US9244868B2 (en) * 2012-09-21 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Leased lock in active-active high availability DAS systems
US9250976B2 (en) * 2012-10-19 2016-02-02 International Business Machines Corporation Tiered locking of resources
CN105897804B (zh) 2015-01-04 2019-03-19 伊姆西公司 用于控制资源在多个节点之间的共享的方法和装置
US10496538B2 (en) * 2015-06-30 2019-12-03 Veritas Technologies Llc System, method and mechanism to efficiently coordinate cache sharing between cluster nodes operating on the same regions of a file or the file system blocks shared among multiple files
CN105512279B (zh) * 2015-12-04 2019-05-03 华为技术有限公司 一种元数据访问方法、相关设备及系统
US11669320B2 (en) 2016-02-12 2023-06-06 Nutanix, Inc. Self-healing virtualized file server
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
KR101884726B1 (ko) * 2016-06-21 2018-08-03 주식회사 티맥스데이터 데이터베이스 시스템에서 블록을 판독하기 위한 방법, 장치 및 컴퓨터 판독가능 매채에 저장된 컴퓨터-프로그램
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
CN106598746B (zh) * 2016-12-09 2021-04-23 北京奇虎科技有限公司 分布式系统中全局锁的实现方法及装置
US10725915B1 (en) 2017-03-31 2020-07-28 Veritas Technologies Llc Methods and systems for maintaining cache coherency between caches of nodes in a clustered environment
CN108073460B (zh) * 2017-12-29 2020-12-04 北京奇虎科技有限公司 分布式系统中的全局锁抢占方法、装置及计算设备
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US10999392B2 (en) * 2019-03-01 2021-05-04 Accenture Global Solutions Limited Message recovery system for computing nodes with replicated databases
US12118565B2 (en) 2019-12-20 2024-10-15 Capital One Services, Llc Transaction exchange platform with a pause microservice to pause processing of workflows
US12045833B2 (en) 2019-12-20 2024-07-23 Capital One Services, Llc Transaction exchange platform with a messenger microservice to update transactions
US12100010B2 (en) 2019-12-20 2024-09-24 Capital One Services, Llc Transaction exchange platform defining conditions for the processing of transaction objects
US12118566B2 (en) 2019-12-20 2024-10-15 Capital One Services, Llc Removing duplicate transactions from a transaction exchange platform
US12100009B2 (en) 2019-12-20 2024-09-24 Capital One Services, Llc Transaction exchange platform with a watchdog microservice to handle stalled transactions
US12056713B2 (en) 2019-12-20 2024-08-06 Capital One Services, Llc Transaction exchange platform with a validation microservice for validating transactions before being processed
US12118567B2 (en) 2019-12-20 2024-10-15 Capital One Services, Llc Detecting and preventing duplicate transactions on a transaction exchange platform
US11768809B2 (en) * 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11494356B2 (en) 2020-09-23 2022-11-08 Salesforce.Com, Inc. Key permission distribution
US20220182384A1 (en) * 2020-11-04 2022-06-09 Netapp, Inc. Multi-protocol lock manager for distributed lock management
US12131192B2 (en) 2021-03-18 2024-10-29 Nutanix, Inc. Scope-based distributed lock infrastructure for virtualized file server
US12117972B2 (en) 2021-08-19 2024-10-15 Nutanix, Inc. File server managers and systems for managing virtualized file servers
US12072770B2 (en) 2021-08-19 2024-08-27 Nutanix, Inc. Share-based file server replication for disaster recovery
US20230224233A1 (en) * 2022-01-07 2023-07-13 Keithley Instruments, Llc Resource allocation in a test instrument network
US20240078134A1 (en) * 2022-09-01 2024-03-07 Samsung Electronics Co., Ltd. Systems and methods for recovery with a distributed lock manager
WO2024151424A1 (en) * 2023-01-12 2024-07-18 Capital One Services, Llc Consensus key locking with fast local storage for idempotent transactions

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414839A (en) * 1992-06-19 1995-05-09 Digital Equipment Corporation Hybrid lock escalation and de-escalation protocols
US5920872A (en) * 1996-06-25 1999-07-06 Oracle Corporation Resource management using resource domains
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
US6751617B1 (en) * 1999-07-12 2004-06-15 Xymphonic Systems As Method, system, and data structures for implementing nested databases
US6473849B1 (en) * 1999-09-17 2002-10-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
US6751616B1 (en) * 2000-01-28 2004-06-15 Oracle International Corp. Techniques for DLM optimization with re-mapping responsibility for lock management
US7080075B1 (en) * 2004-12-27 2006-07-18 Oracle International Corporation Dynamic remastering for a subset of nodes in a cluster environment
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6748470B2 (en) * 2001-11-13 2004-06-08 Microsoft Corporation Method and system for locking multiple resources in a distributed environment
DE10393434D2 (de) 2002-09-30 2005-10-06 Thomas Schoebel-Theuer Verfahren zur Regulierung des Datenzugriffs bei einemaus mehreren Einzelsystemen bestehenden System auf wenigstens eine Datenspeichereinrichtung
US7228351B2 (en) * 2002-12-31 2007-06-05 International Business Machines Corporation Method and apparatus for managing resource contention in a multisystem cluster
US7376744B2 (en) * 2003-05-09 2008-05-20 Oracle International Corporation Using local locks for global synchronization in multi-node systems
US7447786B2 (en) * 2003-05-09 2008-11-04 Oracle International Corporation Efficient locking of shared data that is accessed for reads in a cluster database
US7139772B2 (en) * 2003-08-01 2006-11-21 Oracle International Corporation Ownership reassignment in a shared-nothing database system
US7962453B2 (en) * 2004-04-26 2011-06-14 Oracle International Corporation Dynamic redistribution of a distributed memory index when individual nodes have different lookup indexes
US7484048B2 (en) * 2005-04-27 2009-01-27 Red Hat, Inc. Conditional message delivery to holder of locks relating to a distributed locking manager

Also Published As

Publication number Publication date
US8103642B2 (en) 2012-01-24
EP1979814A2 (en) 2008-10-15
CN101375250A (zh) 2009-02-25
WO2007092167A2 (en) 2007-08-16
CN101375250B (zh) 2012-01-04
CA2634590C (en) 2014-12-09
AU2007212685B2 (en) 2011-06-16
WO2007092167A3 (en) 2007-10-18
JP2009525536A (ja) 2009-07-09
EP1979814B1 (en) 2014-05-07
US20070185872A1 (en) 2007-08-09
CA2634590A1 (en) 2007-08-16
AU2007212685A1 (en) 2007-08-16

Similar Documents

Publication Publication Date Title
JP5121732B2 (ja) 適応型の領域ロック処理
US7131120B2 (en) Inter Java virtual machine (JVM) resource locking mechanism
US6539446B1 (en) Resource locking approach
EP0563624B1 (en) Method and apparatus for performing conditional operations on externally shared data
US6965893B1 (en) Techniques for granting shared locks more efficiently
US7376744B2 (en) Using local locks for global synchronization in multi-node systems
US7447786B2 (en) Efficient locking of shared data that is accessed for reads in a cluster database
US6167430A (en) Multicomputer with distributed directory and operating system
US8640137B1 (en) Methods and apparatus for resource management in cluster computing
US6412034B1 (en) Transaction-based locking approach
US8996469B2 (en) Methods and apparatus for job state tracking in cluster computing
US9804889B2 (en) Methods and apparatus for state objects in cluster computing
JP4098233B2 (ja) マルチノードシステム内でのデータおよびロック転送中の呼出し時間およびメッセージトラフィックの減少
US6697901B1 (en) Using secondary resource masters in conjunction with a primary resource master for managing resources that are accessible to a plurality of entities
CN105700939A (zh) 一种分布式系统中多线程同步的方法和系统
CN111258976A (zh) 分布式锁实现方法、系统、设备及存储介质
WO2017066972A1 (en) System and method for booting application servers in parallel
JP2006512688A (ja) マルチシステム・クラスタにおいてリソース・コンテンションを管理するための方法および装置
JP4356018B2 (ja) ストレージ・エリア・ネットワーク上の非同期メッセージング
JP4607999B2 (ja) ロック関連の一貫性欠如を処理する方法
JP4584935B2 (ja) 動作モデルベースマルチスレッドアーキテクチャ
US8060885B2 (en) Creating task queries for concrete resources using alias selection fields specifying formal resources and formal relationships
US7299265B2 (en) Distributed computing system selecting a service master for each service by an elected global master for managing requests for that service
US8332485B1 (en) Lock optimization and lock prediction approaches for reducing client-server messages
JPH10187523A (ja) 疎結合システムにおける端末情報共有方法及び方式

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20091105

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100115

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20100219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

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

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

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

Free format text: PAYMENT UNTIL: 20151102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5121732

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

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