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

適応型の領域ロック処理

Info

Publication number
JP2009525536A
JP2009525536A JP2008553264A JP2008553264A JP2009525536A JP 2009525536 A JP2009525536 A JP 2009525536A JP 2008553264 A JP2008553264 A JP 2008553264A JP 2008553264 A JP2008553264 A JP 2008553264A JP 2009525536 A JP2009525536 A JP 2009525536A
Authority
JP
Japan
Prior art keywords
lock
node
resource
group
resources
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
JP2008553264A
Other languages
English (en)
Other versions
JP5121732B2 (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)

Abstract

【課題】データベースシステム用のロック管理手法を提供する。
【解決手段】データベースシステムにおいてロックを管理する方法および装置を提供する。マスターノードが、第1のリソースおよびその第1のリソースを含むリソース群についてのロックを第1の要求ノードに許与する。その要求ノードは、上記リソース群の中の第2のリソースについてのロックが既に存在することを表す上記リソース群対応のマッピングを受ける。上記群の中のリソースについてのロックを上記要求ノードが求める場合は、その要求ノードはマスターノードに知らせることなく自分自身にロックを許与する。第2の要求ノードが上記リソース群の中の特定のリソースについてのロックを要求する。第1の要求ノードはその特定のリソースについてのロックを許与し、上記マッピングを別のノードが上記特定のリソースについてのロックを保持していることを表すように更新する。
【選択図】図2

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記載の方法。
  4. データベースシステムにおいてロックの要求を管理する方法であって、
    マスターノードにおいて、第1のノードからの第1のリソースについてのロックの要求を受ける過程と、
    前記第1のノードに入力確認、すなわち
    前記第1のリソースについてのロックが前記第1のノードに許与されたこと、および
    前記第1のリソースを含むリソース群についてのロックが許与されたこと
    を表す入力確認を送る過程と
    を含む方法。
  5. 前記入力確認を送る過程が、前記リソース群の中で一つ以上の他のノードによってロックされている一つ以上のリソースを特定するマッピングを送ることを含む請求項4記載の方法。
  6. 前記要求が前記リソース群についてのロックの要求を含む請求項4記載の方法。
  7. 前記第1のリソースについての前記ロックと前記リソース群についてのロックとが互いに異なる種類のロックである請求項4記載の方法。
  8. 前記マスターノードが前記リソース群を決める請求項4記載の方法。
  9. データベースシステムにおいてロックの要求を管理する方法であって、
    一つのリソースについてのロックの要求を表すメッセージを送信する過程と、
    前記リソースについての前記ロックが許与されたとの受信確認と、
    前記リソースを含むリソース群についてのロックが許与されたとの受信確認と、
    一つ以上の他のノードによってロックされている前記リソース群の中の一つ以上のリソースを特定するマッピングと
    を受信する過程と
    を含む方法。
  10. 前記リソース群に含まれる第2のリソースについての第2のロックを第1のノードが要求していることを前記第1のノードが判定する過程と、
    前記マッピングに基づき、前記第1のノードが、前記第2のリソースについての非互換ロックが他のノードにはないと判断する過程と、
    前記第1のノードが前記第2のリソースについての前記第2のロックを許与する過程と
    をさらに含む請求項9記載の方法。
  11. 前記リソース群に含まれる第2のリソースについてのロックを第1のノードが要求していることを前記第1のノードが判定する過程と、
    前記マッピングに基づき、前記第1のノードが、前記第2のリソースについての非互換ロックを他のノードが有すると判断する過程と、
    前記第1のノードが前記マスターノードからの前記第2のリソースについての前記ロックを要求する過程と
    をさらに含む請求項9記載の方法。
  12. 前記第1のノードにおいて、第2のリソースについてのロックを第2のノードが要求していることを示すメッセージを受ける過程と、
    前記メッセージを受けたことに応答して、前記マッピングに、前記第2のリソースについての前記ロックを前記もう一つのノードが保持していることを表示する過程と
    をさらに含む請求項9記載の方法。
  13. 前記第1のノードにおいて、第2のリソースについてのロックを第2のノードが要求していることを表すメッセージを受ける過程と、
    前記メッセージを受けたことに応答して、前記第1のノードにおいて、前記リソース群についてのロックを放出することを決定する過程と、
    前記リソース群についての前記ロックの放出を前記マスターノードに知らせる過程と
    をさらに含む請求項9記載の方法。
  14. データベースシステムにおいてロックの要求を管理する方法であって、
    第1のノードからリソース群についての第1の要求を表す第1のメッセージを送出する過程と、
    前記第1のノードにおいて、前記リソース群についての前記ロックが許与されたとの入力確認を受ける過程と、
    前記第1のノードが前記リソースを含む前記リソース群についての前記ロックを保持している間に、前記第1のノードにおいて、前記リソースについてのロックを第2のノードが要求したことを表す第2のメッセージを受信する過程と、
    前記リソースについてのロックを許与する第3のメッセージを前記第2のノードに送信する過程と、
    前記リソース群についての前記ロックを保持する過程と、
    前記第1のノードにおいて、前記リソース群を特定するマッピングに、前記リソースについての前記ロックが前記第2のノードに保持されている旨を表示させる過程と
    を含む方法。
  15. 一つ以上のプロセッサによる実行時に請求項1乃至14のいずれか一つに記載の方法を一つ以上のプロセッサに実行させる命令の一つ以上の系列を収容したコンピュータに読取可能な記録媒体。
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 true JP2009525536A (ja) 2009-07-09
JP5121732B2 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012517057A (ja) * 2009-02-06 2012-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データの整合性を維持するための装置、方法、およびコンピュータ・プログラム(データの整合性を維持するための装置)
CN103814362A (zh) * 2011-09-30 2014-05-21 国际商业机器公司 事务处理系统、方法和程序

Families Citing this family (35)

* 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
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
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 华为技术有限公司 一种元数据访问方法、相关设备及系统
US10095506B2 (en) 2016-02-12 2018-10-09 Nutanix, Inc. Virtualized file server data sharing
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 주식회사 티맥스데이터 데이터베이스 시스템에서 블록을 판독하기 위한 방법, 장치 및 컴퓨터 판독가능 매채에 저장된 컴퓨터-프로그램
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
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
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
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

Citations (2)

* 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
WO2004031954A2 (de) * 2002-09-30 2004-04-15 Schoebel-Theuer Thomas Verfahren und vorrichtungen zum zugriff eines einzelsystems auf einen speicherbereich einer datenspeichereinrichtung

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Patent Citations (2)

* 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
WO2004031954A2 (de) * 2002-09-30 2004-04-15 Schoebel-Theuer Thomas Verfahren und vorrichtungen zum zugriff eines einzelsystems auf einen speicherbereich einer datenspeichereinrichtung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN5008024524; Thomas Schobel-Theuer: '"Generalized Optional Locking In Distributed Systems"' TU Dresden Operating Systems Research Day 2004 , 20041216, P. 1-10 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012517057A (ja) * 2009-02-06 2012-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データの整合性を維持するための装置、方法、およびコンピュータ・プログラム(データの整合性を維持するための装置)
US10372682B2 (en) 2009-02-06 2019-08-06 International Business Machines Corporation Maintaining data integrity
CN103814362A (zh) * 2011-09-30 2014-05-21 国际商业机器公司 事务处理系统、方法和程序
CN103814362B (zh) * 2011-09-30 2016-06-15 国际商业机器公司 用于分布式kvs系统的处理方法和系统

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5121732B2 (ja) 適応型の領域ロック処理
US7131120B2 (en) Inter Java virtual machine (JVM) resource locking mechanism
US6965893B1 (en) Techniques for granting shared locks more efficiently
US7376744B2 (en) Using local locks for global synchronization in multi-node systems
US6539446B1 (en) Resource locking approach
US7447786B2 (en) Efficient locking of shared data that is accessed for reads in a cluster database
US6502136B1 (en) Exclusive control method with each node controlling issue of an exclusive use request to a shared resource, a computer system therefor and a computer system with a circuit for detecting writing of an event flag into a shared main storage
US6167430A (en) Multicomputer with distributed directory and operating system
US8640137B1 (en) Methods and apparatus for resource management in cluster computing
JP2566717B2 (ja) 条件付きオペレーション提供装置及び方法
US6412034B1 (en) Transaction-based locking approach
JP5191062B2 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
JP3910539B2 (ja) 準備処理を取り入れたクラスタード・コンピュータ・システムにおけるリソース・アクション
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
CN111258976A (zh) 分布式锁实现方法、系统、设备及存储介质
JP2006512688A (ja) マルチシステム・クラスタにおいてリソース・コンテンションを管理するための方法および装置
JP2004213628A (ja) リソース・コンテンションを管理するための方法および装置
JP4607999B2 (ja) ロック関連の一貫性欠如を処理する方法
JP4584935B2 (ja) 動作モデルベースマルチスレッドアーキテクチャ
US11397625B2 (en) Lock manager for multi-core architectures
US8332485B1 (en) Lock optimization and lock prediction approaches for reducing client-server messages
JPH10187523A (ja) 疎結合システムにおける端末情報共有方法及び方式
JP3904251B2 (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