JP2006107519A - バージョンストアのリソース使用を制限する方法およびシステム - Google Patents

バージョンストアのリソース使用を制限する方法およびシステム Download PDF

Info

Publication number
JP2006107519A
JP2006107519A JP2005295241A JP2005295241A JP2006107519A JP 2006107519 A JP2006107519 A JP 2006107519A JP 2005295241 A JP2005295241 A JP 2005295241A JP 2005295241 A JP2005295241 A JP 2005295241A JP 2006107519 A JP2006107519 A JP 2006107519A
Authority
JP
Japan
Prior art keywords
transaction
resources
computer
client
available
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.)
Pending
Application number
JP2005295241A
Other languages
English (en)
Inventor
Ravisankar Pudipeddi
プディペッディ ラビサンカー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006107519A publication Critical patent/JP2006107519A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/466Transaction processing
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

【課題】バージョンストアのリソース使用を制限するための方法およびシステムを提供する。
【解決手段】新しいトランザクションが開始される前に、新しいトランザクションを完了するのに十分なリソースが残っているかどうかを判定する。残っている場合は、トランザクションは開始し、累計は調整される。残っていない場合は、より多くのリソースが利用可能になるまでトランザクションは待機する。トランザクションが完了したとき、これが最も古い進行中トランザクションである場合は、リソースは解放される。そうでない場合は、このトランザクションに関連するリソースは、このトランザクションよりも前に開始したすべてのトランザクションが完了するまで解放されない。これにより、進行中のトランザクションによって消費することのできるリソースの限度を、バージョンストアのクライアントが超過しないことが保証される。
【選択図】図4

Description

本発明は一般にコンピュータに関し、より詳細にはリソース使用に関する。
クライアントが、データベースなどのバージョンストアとのトランザクションを開始する度に、いくつかのリソースが消費される。これらのリソースは、トランザクションがコミットまたはアボートされた後も、このトランザクションよりも前に開始されたすべてのトランザクションも同様に完了するまで、消費され続ける場合がある。ファイル複製システム(FRS)など頻繁に変更されるバージョンストアでは、あるいは同時に行われる複数のトランザクションと比較して少ないリソースを有するバージョンストアでは、進行中のトランザクションによって必要とされるリソースが、利用可能リソースの量を超過することがある。
バージョンストアのリソース使用を制限するための方法およびシステムが必要とされている。
簡単に言えば、本発明は、バージョンストアのリソース使用を制限するための方法およびシステムを提供する。限度が、進行中のトランザクションによって消費することのできるリソースの総量を示す。残っているリソースの量の累計が保持される。新しいトランザクションが開始される前に、この新しいトランザクションを完了するのに十分なリソースが残っているかどうかが判定される。残っている場合は、トランザクションは開始し、累計は調整される。残っていない場合は、より多くのリソースが利用可能になるまでトランザクションは待機する。トランザクションが完了したとき、これが最も古い進行中トランザクションである場合は、リソースは解放される。そうでない場合は、このトランザクションに関連するリソースは、このトランザクションよりも前に開始したすべてのトランザクションが完了するまで解放されない。これにより、進行中のトランザクションによって消費することのできるリソースの限度を、バージョンストアのクライアントが超過しないことが保証される。
その他の利点は、以下の詳細な記述を図面と共に読めば明らかになるであろう。
(例示的な動作環境)
図1に、本発明を実施することのできる適切なコンピューティングシステム環境の例100を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどんな限定を意味するものでもない。またコンピューティング環境100は、この例示的な動作環境100に示すコンポーネントのいずれか1つまたは組合せに関してどんな依存や要件を有するものとも解釈すべきではない。
本発明は、その他多くの汎用または専用コンピューティングシステム環境または構成でも機能する。本発明で使用するのに適するであろう周知のコンピューティングシステム、環境、および/または構成の例には、限定しないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的文脈で述べることができる。一般に、プログラムモジュールは、特定のタスクを実施するか、特定の抽象データ型を実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含めたローカルとリモートの両方のコンピュータ記憶媒体に位置することができる。
図1を参照すると、本発明を実施するための例示的なシステムは、コンピュータ110の形の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、限定しないが、処理ユニット120と、システムメモリ130と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121とを含めることができる。システムバス121は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、メザニンバスとも呼ばれるPCI(Peripheral Component Interconnect)バスが含まれる。
コンピュータ110は通常、様々なコンピュータ読み取り可能記憶媒体を備える。コンピュータ読み取り可能記憶媒体は、コンピュータ110からアクセスできる任意の利用可能な媒体とすることができ、揮発性と不揮発性の媒体、取外し可能と取外し不可能の媒体の両方がこれに含まれる。限定ではなく例として、コンピュータ読み取り可能記憶媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体が含まれる。コンピュータ記憶媒体には、限定しないが、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、ディジタル多用途ディスク(DVD)、またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用でき、コンピュータ110からアクセスできるその他の任意の媒体が含まれる。通信媒体は通常、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他のトランスポート機構などの被変調データ信号に組み入れるものであり、任意の情報送達媒体がこれに含まれる。用語「被変調データ信号」は、信号中の情報が符号化される形で、1つまたは複数の特性が設定または変更される信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接有線接続などの有線媒体と、音響、無線周波数、赤外線などの無線媒体およびその他の無線媒体とが含まれる。以上のいずれかの組合せも、コンピュータ読み取り可能記憶媒体の範囲に含めるべきである。
システムメモリ130は、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。ROM131には通常、起動中などにコンピュータ110内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)133が記憶されている。RAM132は通常、処理ユニット120がすぐにアクセス可能な、および/または処理ユニット120が現在作用している、データおよび/またはプログラムモジュールを含む。限定ではなく例として、図1には、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、プログラムデータ137を示す。
コンピュータ110は、その他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが、図1には、取外し不可能な不揮発性の磁気媒体に対して読み書きするハードディスクドライブ141と、取外し可能な不揮発性の磁気ディスク152に対して読み書きする磁気ディスクドライブ151と、CD−ROMやその他の光媒体など取外し可能な不揮発性の光ディスク156に対して読み書きする光ディスクドライブ155を示す。この例示的な動作環境で使用できるその他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体には、限定しないが、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体RAM、固体ROMなどが含まれる。ハードディスクドライブ141は通常、インタフェース140などの取外し不可能メモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インタフェース150などの取外し可能メモリインタフェースでシステムバス121に接続される。
以上に論じ、図1に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、その他のデータの記憶域をコンピュータ110に提供する。例えば、図1には、ハードディスクドライブ141がオペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、プログラムデータ147を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、プログラムデータ137と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、プログラムデータ147が少なくとも異なるコピーであることを示すために、異なる番号を付けてある。ユーザは、キーボード162、マウスやトラックボールやタッチパッドと一般に呼ばれるポインティングデバイス161などの入力デバイスを介して、コンピュータ110にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、ハンドヘルドPCやその他のライティングタブレットのタッチセンシティブ画面などを含めることができる。これらおよびその他の入力デバイスは、システムバス121に結合されたユーザ入力インタフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、その他のインタフェースおよびバス構造で接続されてもよい。モニタ191またはその他のタイプの表示デバイスも、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは、スピーカ197やプリンタ196など、その他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース195を介して接続することができる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、通常はコンピュータ110に関して上述した要素の多くまたはすべてを備えるが、図1にはメモリ記憶デバイス181だけが示してある。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットでよくみられる。
LANネットワーキング環境で使用されるときは、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用されるときは、コンピュータ110は通常、インターネットなどのWAN173を介した通信を確立するためのモデム172またはその他の手段を備える。モデム172は内蔵でも外付けでもよく、ユーザ入力インタフェース160またはその他の適切な機構を介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関して示したプログラムモジュールまたはその一部を、リモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図1には、リモートアプリケーションプログラム185がメモリデバイス181上にあるのが示されている。図示のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立するためのその他の手段を使用してもよいことは理解されるであろう。
(消費リソースの制限)
図2は、本発明の様々な態様による、本発明を実施するのに使用できる例示的なバージョンストアを表すブロック図である。バージョンストアは、データベース205と、トランザクションログ210と、いくつかのトランザクションのための消費リソース215〜217とを備える。消費リソース215〜217は、部分的にまたは完全に、トランザクションログ210に記憶することができる。各トランザクションの下付き文字は、トランザクションが開始された時間順を示す。例えば、トランザクションTはトランザクションTよりも前に開始され、トランザクションTはトランザクションTよりも前に開始された。
バージョンストア中では、クライアント(図示せず)がデータベース205とのトランザクションを開始する度に、データベースの「スナップショット」が作成される。論理的には、「スナップショット」は、特定の時点におけるデータベースの複製である。スナップショット作成時にデータベースのまったく新しいコピーを作成するのではなく、トランザクションログを使用してトランザクション開始時からのデータベース中の差分(例えばデルタ)を追跡することができ、したがって、トランザクション開始時のデータベースの状態をトランザクションログから得ることができる。
トランザクションには、原子性、一貫性、分離性、持続性がある。トランザクション中、様々なレコードの変更が生じることがある。データベース中でレコードを直接変更する代わりに、変更すべきレコードをコピーし、このコピーを修正することができる。データベースの他のクライアントは、トランザクションがコミットされるまで、これらの変更を見ることができないものとすることができる。トランザクションがコミットされると、これらの変更は原子性の動作でデータベースに伝搬される。変更は、修正されたコピーを再びデータベースにコピーすることによって、データベースに伝搬することができる。トランザクションがアボートされた場合は、変更は破棄され、データベースに伝搬されない。変更は、少なくともトランザクションがコミットまたはアボートされるまでは、トランザクションログ210に記憶することができる。
トランザクション中、変更すべきレコードをトランザクションログ210にコピーすることができる。コピーされたこれらのレコードは、トランザクションログ210中のリソースを消費する。トランザクションがすべて固定サイズである場合は、各トランザクションにつき消費されるリソースの量も固定とすることができる。トランザクションのサイズが様々であるかもしれない場合は、各トランザクションにつき消費されるリソースの量もまた様々であることがある。
バージョンストアは他の方法で実現することもできるが、そのようなバージョンストア中でも、リソースは、トランザクションが進行中のときは消費され、また、トランザクションがコミットまたはアボートした後も消費され続けることがある。バージョンストアは、本発明の趣旨または範囲を逸脱することなく様々な方法で実現することができる。
一度に複数のトランザクションが進行している場合がある。進行中のトランザクションに関連するリソースは、このトランザクションよりも前に開始されたすべてのトランザクションが完了(すなわちコミットまたはアボート)するまで、再使用のために返すことができない場合がある。これを、トランザクションのための消費リソース215〜217間の依存矢印で示す。例えば、Tが進行中の間にTが発生し、次いでTがコミットした場合、Tのための消費リソース217は、Tのための消費リソース215が解放されるまで解放できないことがある。
より正式には、時間順に発行されるトランザクションTからTがある場合に(すなわちTはTに先行し、TはTに先行し、以下同様)、δからδは、各トランザクションによって消費されるリソースの量を表すものとする。この場合、Σδ(1≦i≦n)は、トランザクションTからTが進行中のときの、任意の時点における消費リソースの総量である。
しかし、トランザクションTが完了したとき、解放できるリソースの量は次のうちのどちらかである。
1.未処理のトランザクションT(i<k)が存在する場合は0である。
2.jがあり、j>kであってTが進行中のトランザクションである場合、解放できるリソースの量は、((k<i<j)かつ(Tは完了済み))であるようなすべてのiについてのΣδである。jは、Tよりも後に開始されてまだ進行中であるトランザクションはないことを示すことができることに留意されたい。jを無限大に設定するかまたは最大値を示す数に設定することによって、これを示すことができる。
上述のリソース解放条件を別の言い方で言うと、Tの完了時、Tが最も古いトランザクションでない限り(すなわち、Tが進行中トランザクションであるような、i<kがない場合でない限り)、リソースを解放することはできない。
所与の時点で消費できるリソース総量よりも多くのリソースを必要とするのを避けるために、バージョンストアのクライアントに、このクライアントが超過することのできないリソース限度を割り当てることができる。クライアントは、トランザクションを開始することで限度を超過するかもしれないかどうかを判定して、十分なリソースが利用可能になるまでブロック(例えば待機)することができ、それにより、開始しようとするトランザクションは何でも、消費できるリソース総量を超過せずに完了できることを保証することができる。所与の時点でクライアントが消費できるリソース総量を、以下ではΘとして表すことがある。
リソースが利用可能になるまでクライアントにブロックさせることによって進行中トランザクションの数を制限するために、InitializeResource(ρ)、AcquireResource(T,δ)、ReleaseResource(T)の3つのプリミティブを使用することができる。
InitializeResource(ρ)は、第1のトランザクションが開始される前の任意の時点で呼び出すことができる。InitializeResource(ρ)が呼び出されると、消費されるリソースの総数(以下σ)が、進行中のトランザクションがないときに消費されるリソースの残量に割り当てられる。例えば、データ構造の作成など、バージョンストアの維持に関連するオーバーヘッドがある場合がある。このオーバーヘッドはInitializeResource(ρ)によって明らかにすることができ、ρは、進行中のトランザクションがないときに消費されるリソースの量に等しい。σ<Θでない限り、トランザクションの開始は許可されないものとすることができる。
AcquireResource(T,δ)は、Tで識別されるトランザクションを開始する前に呼び出すことができる。Tは、呼出し元によってトランザクションごとに割り振られるメモリ中の固有オブジェクトである。AcquireResource(T,δ)は、条件(δ+σ)≦Θをチェックし、この条件が真である場合は戻り、δに達する量のリソースを消費する新しいトランザクションを、呼出し元が開始するのを可能にする。この条件が偽である場合は、AcquireResource(T,δ)は、この条件が満たされるまでブロックし、σをδ+σに割り当て、次いで戻る。
ReleaseResource(T)は、トランザクションTが完了した後で呼び出すことができる。ReleaseResource(T)は、非ブロッキングプリミティブとして実施することができる。
本発明の一実施形態では、δは、各トランザクションにおける更新の予測数になるように選択することができる。概して、この数は定数になる。この場合、δは1になるように選択することができ、あるいは、Θがδで計算される限り、その他の任意の定数になるように選択することができる。δがトランザクションごとに異なるかもしれない場合、δは、リソースのベースライン数の倍数として表すことができる。例えば、呼出し元は、バージョンストア中の4つのレコードを修正することを知っており、1つのレコードだけを修正する場合に渡されるδの4倍のδを渡すことができる。
本発明の別の実施形態では、δはクレジットの形で特性を示すことができ、利用可能なクレジット総計はΘに等しく、δは呼出し元によって各トランザクションにつき計算される。
典型的なセマフォを使用して、リソース使用を追跡することができる。セマフォは、整数値に初期化することのできる変数であり、以下の3つの操作を提供する。
I(セマフォ,δ):この操作は、セマフォをδに初期化する。
P(セマフォ,δ):この操作は、セマフォ≧δまでブロックし、次いで、戻る前にδをセマフォから引く。
V(セマフォ,δ):この操作は、δをセマフォに加え、セマフォに対してブロックされたスレッドがあればそのスレッドを起動し(wake up)、次いで戻る。
上述の各操作は原子性である。理想的には、Vは、δが満たせるのとちょうど同数のスレッドを起動することになる。様々なWindows(登録商標)オペレーティングシステムでは、これらの操作は、CreateSemaphore()、WaitForSingleObject()、ReleaseSemaphore()によってそれぞれ実施することができる。他のオペレーティングシステムは、本発明の趣旨または範囲を逸脱することなく、他の呼出しでこれらの操作を実施することができる。
上述のプリミティブが与えられた場合、σは、消費することが許されるリソースの総量であるΘに初期化される、セマフォとして実現することができる。AcquireResource()を実施して、P(σ,δ)を発行することができる。これは、消費リソース総量が≦Θになることを保証する。
ReleaseResource()は、Tよりも古い進行中トランザクションがある場合は、セマフォV(σ,δ)を送らなくてもよい。より古い進行中トランザクションがあるかどうか判定するために、図3に示す双方向リンクリスト300を利用することができる。リスト300に含まれるノードがヘッドノード305とニルノード315だけのときは、リストは空である。ヘッドノード305によってリンクされた第1のノードがニルノード315でない限り、リストの先頭はこの第1のノード(すなわちノード310)である。内部ノード310〜312はそれぞれ、1つのトランザクションに対応するものとすることができ、識別子Tと、そのトランザクションによって消費されるリソースの量とを含むことができる。
所与の時点で、この双方向リンクリストは、
Figure 2006107519
を構成することができ、トランザクションは時間順に左から右に並んでいる。Tによって消費されるリソースの量を返す機能を実施することができる。以下、Tによって消費されるリソースの量をΔ(T)として表すことがある。各ノードに関連するリソース量を記憶するために、各ノード中でメモリを予約することができる。
リストに対する相互排他を保証するためのロックを実施することもできる。いくつかの例示的なロックには、スピンロック、ミューテックス、同期イベントなどが含まれる。ただし、本発明の趣旨または範囲を逸脱することなく、リストに対する相互排他を保証する任意のロックを使用してよいことは理解されるであろう。ロックを使用して、リストの挿入または走査または検索の間にリストが別のプロセスによって変更されないよう保護することができる。この文書では、これらのロックプリミティブをAcquireListLock()およびReleaseListLock()として表すことがある。
トランザクションのためのリソースを獲得する例示的なアルゴリズムは以下のとおりである。
Figure 2006107519
上記のアルゴリズムは、トランザクションの開始前に呼び出されるものであり、これを図4に示す。図4は、本発明の様々な態様による、トランザクションを開始するためにリソースを獲得する際に行うことのできる動作を全体的に表す流れ図である。
ブロック405でプロセスは開始する。ブロック407で、δ>Θであるかどうか判定する。そうである場合は、処理はブロック412に分岐し、エラーと共に戻る。そうでない場合は、処理はブロック410に分岐する。δ>Θであることは、このトランザクションが、使用を許されるリソース総量よりも多くのリソースを使用する可能性があることを示す。十分なリソースが利用可能になるのを(そうなることはないが)待機して、永遠にブロックするのではなく、ブロック412でエラーが返される。
ブロック410で、ノードのためのメモリを得る。ブロック415で、トランザクションTによって必要とされる可能性のあるリソースを示すノード中の変数をδに初期化する。ブロック420で、P(σ,δ)を実行する。これは、(より多くのリソースが利用可能になるまで)ブロックすることができる。ブロック425で、リンクリストに対するロックを獲得する。ブロック430で、ノードをリストの末尾に挿入する。ブロック435で、ロックを解除する。ブロック440で、プロセスは、成功の指示と共に戻る。
図5は、本発明の様々な態様による、トランザクション完了後にリソースを解放する前に行うことのできる動作を、全体的に表す流れ図である。このプロセスは、トランザクションのコミットまたはアボートの前に呼び出される。ブロック505でプロセスは開始する。ブロック510で、リンクリストに対するロックを獲得する。ブロック512で、完了したばかりのトランザクションに関連するノード(すなわちT)を突き止める。ブロック515で、Tがリストの先頭であるかどうか判定する。ヘッドノードがTを指している場合に、Tはリストの先頭であることを想起されたい。Tがリストの先頭である場合は、処理はブロック520に分岐し、そうでない場合は、処理はブロック525に分岐する。
ブロック520で、Tで示される消費リソースをセマフォに加え、セマフォに対してブロックされたスレッドがあれば、それらを起動する(awake)。Tで示される消費リソースは、このノードのすぐ右にあるノードに関連するトランザクションが完了したときに、上方に調整できることに留意されたい(例えばブロック525および530参照)。
ブロック525および530で、Tで示されるリソースを、Tのすぐ左にあるノード(すなわちT’)に加えるための準備を行う。Tがリストの先頭ではないので、T’の存在が保証されることに留意されたい。ブロック525でT’を突き止める。ブロック530で、Tで示される消費リソースをT’で示される消費リソースに加える。
ブロック535で、Tをリンクリストから除去する。ブロック540で、リンクリストに対するロックを解除する。ブロック545でプロセスは戻る。
前述のプリミティブによって、このアルゴリズムを以下のように表すことができる。
Figure 2006107519
図3〜5を双方向リンクリストに関して述べ、したがって獲得/解放プリミティブについてO(1)実装形態が達成されたが、ハッシュテーブル、単方向リンクリスト、アレイ、階層構造など、他のデータ構造を使用してもよいことは理解されるであろう。実際、本発明の趣旨および範囲を逸脱することなく、トランザクションの時間順を維持することのできる任意のデータ構造を使用することができる。
図6は、本発明の様々な態様による、本発明を実施することのできる例示的な環境を表すブロック図である。この環境は、クライアント605、サーバ610、バージョンストア615を含む。本発明の一実施形態では、図4および5に関して述べたプロセスはクライアント605上で実行され、サーバ610は、バージョンストア要求を受け取り、バージョンストア615を維持するのに必要な動作を実施する。本発明のこの実施形態では、クライアントがそのトランザクションを制限するのに使用するリソース限度を、クライアント、サーバ、専用プログラム、コンピュータ管理者などが選択することができる。本発明の一実施形態では、クライアント605は、サーバ610に照会して、サーバ610が他のクライアントに対する性能を大きく低下させることなく、いくつのリソースをクライアント605のために確保できるかを決定することができる。本発明の趣旨または範囲を逸脱することなく、クライアント605、サーバ610、バージョンストア615のいずれかが、共に1つのマシン上に含まれてもよく、あるいは別々のマシン上にあってもよいことに留意されたい。
図7は、本発明の様々な態様による、本発明を実施することのできる別の例示的な環境を表すブロック図である。この環境は、サーバ705、バージョンストア710、4つのクライアント715〜718を含む。図7に示す実施形態では、各クライアント715〜718がバージョンストア710とのトランザクションを開くことを試みることができる。クライアントの活動が組み合わさることによって、トランザクション実施の際に消費されるリソースが、全体的な限度を超過することがないよう保証するために、各クライアントに限度を割り当て、すべてのクライアントがその限度に達しても全体的な限度を超過しないようにすることができる。各クライアントに対するリソース限度は、クライアント、サーバ、クライアント間の交渉、専用プログラム、コンピュータ管理者などが決定することができる。各クライアントに対するリソース限度の決定は、クライアントがバージョンストア710とのトランザクションに携わる前に行うことができ、動的に変更することができる。例えば、クライアント715は頻繁にブロックしているがクライアント716は一定量以上のリソースを消費しない場合は、クライアント716に関連するリソース限度を低減させ、クライアント715に割り当てられたリソース限度を増大させることができる。
以上の詳細な記述からわかるように、バージョンストアのリソース使用を制限するための方法およびシステムが提供される。本発明は様々な修正および代替構造が可能だが、そのいくつかの例示的な実施形態を詳細に図示および上述した。ただし理解されたいが、開示した特定の形に本発明を限定する意図はなく、反対に、本発明の趣旨および範囲に含まれるすべての修正、代替構造、均等物をカバーするものとする。
本発明を組み込むことのできるコンピュータシステムを表すブロック図である。 本発明の様々な態様による、本発明を実施するのに使用することのできる例示的なバージョンストアを表すブロック図である。 本発明の様々な態様による例示的なデータ構造を示すブロック図である。 本発明の様々な態様による、トランザクションを開始するためにリソースを獲得する際に行うことのできる動作を全体的に表す流れ図である。 本発明の様々な態様による、トランザクション完了後にリソースを解放する前に行うことのできる動作を全体的に表す流れ図である。 本発明の様々な態様による、本発明を実施することのできる例示的な環境を表すブロック図である。 本発明の様々な態様による、本発明を実施することのできる別の例示的な環境を表すブロック図である。

Claims (36)

  1. コンピュータ実行可能命令を有するコンピュータ読み取り可能記憶媒体であって、前記命令は、
    バージョンストアに関係する複数のトランザクションを完了するのに使用可能なリソースの量を追跡すること、
    新しいトランザクションを開始する前に、前記新しいトランザクションを完了するのに十分なリソースが利用可能かどうか判定すること、
    十分なリソースが利用可能な場合に、前記新しいトランザクションを開始すること、および、
    十分なリソースが利用可能でない場合に、より多くのリソースが利用可能になるまで待機すること
    を含むことを特徴とするコンピュータ読み取り可能記憶媒体。
  2. 前記複数のトランザクションのうち少なくとも1つは進行中であることを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  3. 前記命令は、前記複数のトランザクションによって使用可能なリソースの量に対する限度を設定することをさらに含むことを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  4. 前記バージョンストアは、各トランザクションが開始する前にデータベースの新しいスナップショットを作成することを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  5. 前記スナップショットは、差分としてログファイル中で保持されることを特徴とする請求項4に記載のコンピュータ読み取り可能記憶媒体。
  6. 前記データベースは、前記新しいスナップショットが作成される前の第1の状態を有し、前記データベースの前記第1の状態は、前記データベースの第2の状態と共に前記ログファイルから作成可能であることを特徴とする請求項4に記載のコンピュータ読み取り可能記憶媒体。
  7. より多くのリソースが利用可能になるまで待機することは、前記リソースが利用可能になるまでスレッドをブロックすることを含むことを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  8. 前記命令は、
    前記バージョンストアに関係する複数のトランザクションを完了するのに使用可能なリソースの量を追跡するデータ構造のロックを得ること、
    前記新しいトランザクションに関係する情報を含めるように前記データ構造を修正すること、および、
    その後で前記ロックを解除すること
    をさらに含むことを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  9. 前記データ構造は双方向リンクリストを含み、前記新しいトランザクションに関係する情報を含めるように前記データ構造を修正することは、前記データ構造にノードを追加することを含むことを特徴とする請求項8に記載のコンピュータ読み取り可能記憶媒体。
  10. 前記データ構造は前記トランザクションを時間順に順序付けることを特徴とする請求項8に記載のコンピュータ読み取り可能媒体。
  11. 前記命令は、トランザクションを完了し、前記トランザクションが他のまだ進行中のトランザクションのいずれかよりも前に開始したものである場合に、前記複数のトランザクションを完了するのに使用可能な前記リソース量を修正することをさらに含むことを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  12. 前記命令は、トランザクションを完了し、前記トランザクションが他のまだ進行中のトランザクションのいずれかよりも後に開始したものである場合に、使用可能な前記リソース量を修正しないことをさらに含むことを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  13. 前記命令は、前記完了したトランザクションによって使用可能なリソースの量を追加するために、前の進行中トランザクションに関連するデータを修正することをさらに含むことを特徴とする請求項12に記載のコンピュータ読み取り可能記憶媒体。
  14. 前記命令は、前記前のトランザクションを完了し、使用可能な前記リソース量を修正して、前記データによって示されるリソース量を解放することをさらに含むことを特徴とする請求項13に記載のコンピュータ読み取り可能記憶媒体。
  15. バージョンストアに関係する複数のトランザクションを完了するのに使用可能なリソースの量を追跡することは、セマフォに対してブロックすることを含むことを特徴とする請求項1に記載のコンピュータ読み取り可能記憶媒体。
  16. リソース使用を制限する方法であって、
    進行中のトランザクションによって消費することのできるリソースの総量を示す限度を設定すること、
    いずれかの新しいトランザクションによって使用されることになる残りのリソース残量を示す累計を保持すること、および、
    前記累計と、新しいトランザクションを完了するのに必要な可能性のあるリソース必要量とに基づいて、前記新しいトランザクションを完了するのに十分なリソースがあるかどうか判定すること
    を含むことを特徴とする方法。
  17. 前記累計を前記限度に初期化することをさらに含むことを特徴とする請求項16に記載の方法。
  18. 前記新しいトランザクションを開始するのに十分なリソースがある場合に、前記新しいトランザクションを開始することをさらに含むことを特徴とする請求項16に記載の方法。
  19. 前記新しいトランザクションを開始するのに十分なリソースがあるかどうか判定することは、前記累計から前記リソース必要量を引いて結果を出し、前記結果が0以上かどうかを判定することを含むことを特徴とする請求項16に記載の方法。
  20. データ構造に対するロックを得て前記データ構造を修正することをさらに含むことを特徴とする請求項16に記載の方法。
  21. 前記データ構造は、進行中のトランザクションの開始時に従って時間順に順序付けられた双方向リンクリストであることを特徴とする請求項20に記載の方法。
  22. 完了したばかりのトランザクションに関連する、前記双方向リンクリストのノードが、前記双方向リンクリストの先頭にあるかどうか判定することをさらに含むことを特徴とする請求項20に記載の方法。
  23. 前記ノードが前記双方向リンクリストの先頭にある場合は、前記ノードで示される量だけ前記累計を増加させることを特徴とする請求項22に記載の方法。
  24. 前記ノードが前記双方向リンクリストの先頭にない場合は、前記ノードで示されるリソースを、前記双方向リンクリスト中で前記ノードに先行する別のノードに追加し、前記ノードを除去することを特徴とする請求項22に記載の方法。
  25. トランザクションが完了した後で前記累計を増加させ、開始するのに十分なリソースがないためにブロックしていた新しいトランザクションに関連するスレッドがあればそれらを起動することをさらに含むことを特徴とする請求項16に記載の方法。
  26. リソース使用を制限するためのシステムであって、
    バージョンストアと対話するように構成された第1のクライアントを備え、前記第1のクライアントはさらに、
    前記第1のクライアントが前記バージョンストアとのトランザクションに携わる結果として消費することのできるリソースの総量を示す第1の限度を得る動作と、
    前記第1のクライアントによって開始されるいずれかの新しいトランザクションによって使用されることになる残りのリソース残量を示す第1の総計を保持する動作と、
    前記第1の総計と、新しいトランザクションを完了するのに必要な可能性のあるリソース必要量とに基づいて、前記新しいトランザクションを開始するのに十分なリソースがあるかどうか判定する動作と
    を実施するように構成されたことを特徴とするシステム。
  27. 前記バージョンストアと対話するように構成された第2のクライアントをさらに備え、前記第2のクライアントはさらに、
    前記第2のクライアントが前記バージョンストアとのトランザクションに携わる結果として消費することのできるリソースの総量を示す第2の限度を得る動作と、
    前記第2のクライアントによって開始されるいずれかの新しいトランザクションによって使用されることになる残りのリソース残量を示す第2の総計を維持する動作と、
    前記第2の総計と、新しいトランザクションを完了するのに必要な可能性のあるリソース必要量とに基づいて、前記新しいトランザクションを開始するのに十分なリソースがあるかどうか判定する動作と
    を実施するように構成されたことを特徴とする請求項26に記載のシステム。
  28. 前記第1および第2の限度は、前記クライアント間の交渉を介して得られることを特徴とする請求項27に記載のシステム。
  29. 前記第1および第2の限度は、各クライアントに関するシステム設定を介して得られることを特徴とする請求項27に記載のシステム。
  30. 前記第1および第2の限度は、ユーザ入力を介して得られることを特徴とする請求項27に記載のシステム。
  31. 定期的に実行され、前記第1および第2の総計の履歴に基づいて前記第1および第2の限度を調整するように構成されたプログラムをさらに備えることを特徴とする請求項27に記載のシステム。
  32. 前記バージョンストアへのアクセスを提供するように構成されたサーバをさらに備えることを特徴とする請求項27に記載のシステム。
  33. 各クライアントはさらに、前記サーバと通信して、各クライアントによって消費することのできるリソースの総量を示す各クライアントの限度を設定するように構成されたことを特徴とする請求項27に記載のシステム。
  34. 前記第1の限度を得る動作は、前記第1のクライアント上のストアから前記第1の限度を取り出す動作を含むことを特徴とする請求項26に記載のシステム。
  35. 前記第1の限度を得る動作は、サーバと通信する動作を含むことを特徴とする請求項26に記載のシステム。
  36. 前記バージョンストアは、ファイル複製システムに使用されることを特徴とする請求項26に記載のシステム。
JP2005295241A 2004-10-07 2005-10-07 バージョンストアのリソース使用を制限する方法およびシステム Pending JP2006107519A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/960,675 US7567986B2 (en) 2004-10-07 2004-10-07 Method and system for limiting resource usage of a version store

Publications (1)

Publication Number Publication Date
JP2006107519A true JP2006107519A (ja) 2006-04-20

Family

ID=35644887

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005295241A Pending JP2006107519A (ja) 2004-10-07 2005-10-07 バージョンストアのリソース使用を制限する方法およびシステム

Country Status (5)

Country Link
US (1) US7567986B2 (ja)
EP (1) EP1645958A3 (ja)
JP (1) JP2006107519A (ja)
KR (1) KR20060051557A (ja)
CN (1) CN1766843A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0617115D0 (en) * 2006-08-31 2006-10-11 Ibm Efficient enforced resource consumption rate limits
US7872975B2 (en) * 2007-03-26 2011-01-18 Microsoft Corporation File server pipelining with denial of service mitigation
US9858155B2 (en) 2010-11-16 2018-01-02 Actifio, Inc. System and method for managing data with service level agreements that may specify non-uniform copying of data
US8396905B2 (en) 2010-11-16 2013-03-12 Actifio, Inc. System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies
US8843489B2 (en) * 2010-11-16 2014-09-23 Actifio, Inc. System and method for managing deduplicated copies of data using temporal relationships among copies
US8417674B2 (en) 2010-11-16 2013-04-09 Actifio, Inc. System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states
US8402004B2 (en) 2010-11-16 2013-03-19 Actifio, Inc. System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
US8788769B2 (en) 2010-11-16 2014-07-22 Actifio, Inc. System and method for performing backup or restore operations utilizing difference information and timeline state information
US8904126B2 (en) 2010-11-16 2014-12-02 Actifio, Inc. System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage
CN102325050B (zh) * 2011-09-19 2018-04-17 上海佑译信息科技有限公司 分配检测资源的方法和主控设备
CN104714755B (zh) * 2013-12-13 2020-01-03 华为技术有限公司 一种快照管理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344119A (ja) * 2000-05-30 2001-12-14 Nec Corp トランザクション実行制御方式およびトランザクション実行制御方法
JP2002351713A (ja) * 2001-05-25 2002-12-06 Hitachi Ltd データベース管理方法およびシステム並びにその処理プログラムおよびその処理プログラムを格納した記録媒体
JP2004046372A (ja) * 2002-07-09 2004-02-12 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、リソース割当方法およびプログラムならびにリソース割当プログラムが記録された記録媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191944A (ja) * 1991-09-11 1995-07-28 Internatl Business Mach Corp <Ibm> 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
JP3392236B2 (ja) * 1994-11-04 2003-03-31 富士通株式会社 分散トランザクション処理システム
US6006247A (en) * 1995-03-21 1999-12-21 International Business Machines Corporation Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US5748468A (en) * 1995-05-04 1998-05-05 Microsoft Corporation Prioritized co-processor resource manager and method
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US5905889A (en) * 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
US6237001B1 (en) * 1997-04-23 2001-05-22 Oracle Corporation Managing access to data in a distributed database environment
US6415196B1 (en) * 1997-08-28 2002-07-02 Manugistics, Inc. Manufacturing scheduling process with improved modeling, scheduling and editing capabilities for solving finite capacity planning problems
US6353836B1 (en) * 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US6523058B1 (en) * 1998-09-29 2003-02-18 Stmicroelectronics Inc. State machine driven transport protocol interface
US6832248B1 (en) * 2001-05-10 2004-12-14 Agami Systems, Inc. System and method for managing usage quotas
US20030145035A1 (en) * 2002-01-15 2003-07-31 De Bonet Jeremy S. Method and system of protecting shared resources across multiple threads
JP2003248668A (ja) * 2002-02-26 2003-09-05 Hitachi Ltd データセンタ資源管理方法及び運用方法
US20030220935A1 (en) * 2002-05-21 2003-11-27 Vivian Stephen J. Method of logical database snapshot for log-based replication
US6988099B2 (en) 2002-06-27 2006-01-17 Bea Systems, Inc. Systems and methods for maintaining transactional persistence
TWI256556B (en) * 2002-07-08 2006-06-11 Via Tech Inc Distributed concurrent version management system and method
US7305386B2 (en) * 2002-09-13 2007-12-04 Netezza Corporation Controlling visibility in multi-version database systems
US6981114B1 (en) * 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs
JP4077329B2 (ja) * 2003-01-31 2008-04-16 株式会社東芝 トランザクション処理システム、並行制御方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344119A (ja) * 2000-05-30 2001-12-14 Nec Corp トランザクション実行制御方式およびトランザクション実行制御方法
JP2002351713A (ja) * 2001-05-25 2002-12-06 Hitachi Ltd データベース管理方法およびシステム並びにその処理プログラムおよびその処理プログラムを格納した記録媒体
JP2004046372A (ja) * 2002-07-09 2004-02-12 Nippon Telegr & Teleph Corp <Ntt> 分散処理システム、リソース割当方法およびプログラムならびにリソース割当プログラムが記録された記録媒体

Also Published As

Publication number Publication date
CN1766843A (zh) 2006-05-03
EP1645958A3 (en) 2006-08-30
KR20060051557A (ko) 2006-05-19
EP1645958A2 (en) 2006-04-12
US20060080367A1 (en) 2006-04-13
US7567986B2 (en) 2009-07-28

Similar Documents

Publication Publication Date Title
JP2006107519A (ja) バージョンストアのリソース使用を制限する方法およびシステム
JP4833590B2 (ja) 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization)
EP4254183A1 (en) Transaction processing method and apparatus, computer device, and storage medium
US10585874B2 (en) Locking concurrent commands in a database management system
KR101117208B1 (ko) 트랜잭션 시스템에서의 보안 데이터 삭제
US7716249B2 (en) Transaction and task scheduler
US7689701B2 (en) Dual-component state token with state data direct access index for systems with high transaction volume and high number of unexpired tokens
TW412692B (en) Parallel file system and method with a metadata node
TW440769B (en) Parallel file system and method for granting byte range tokens
JP2531881B2 (ja) 並行制御方法
US20160147858A1 (en) Log Forwarding to Avoid Deadlocks During Parallel Log Replay in Asynchronous Table Replication
JP2000284995A (ja) データ処理装置及び記録媒体
JP4716635B2 (ja) データベースサーバにおけるリレーショナルデータベース内の行へのアクセスの選択的な監査
US8898111B2 (en) Enforcing temporal uniqueness of index keys utilizing key-valued locking in the presence of pseudo-deleted keys
US6687716B1 (en) File consistency protocols and methods for carrying out the protocols
Horikawa Latch-free data structures for DBMS: design, implementation, and evaluation
US11822552B2 (en) Methods for updating reference count and shared objects in a concurrent system
US6633870B1 (en) Protocols for locking sharable files and methods for carrying out the protocols
US20050234974A1 (en) Systems and methods in support of data base page synchronization
JP2006277634A (ja) 排他制御方法と情報処理装置
US8191076B2 (en) Method and apparatus for making inter-process procedure calls through shared memory
Fussell et al. Deadlock removal using partial rollback in database systems
US20210064694A1 (en) Templated form generation from meta model based rules with concurrent editing
JP4289834B2 (ja) データベース管理システム、データベース管理プログラムおよび記録媒体
JP7296515B2 (ja) サービス提供システムおよびサービス提供方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111025