JP2001527242A - ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み - Google Patents

ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み

Info

Publication number
JP2001527242A
JP2001527242A JP2000525837A JP2000525837A JP2001527242A JP 2001527242 A JP2001527242 A JP 2001527242A JP 2000525837 A JP2000525837 A JP 2000525837A JP 2000525837 A JP2000525837 A JP 2000525837A JP 2001527242 A JP2001527242 A JP 2001527242A
Authority
JP
Japan
Prior art keywords
transaction
lock group
database
lock
during
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
JP2000525837A
Other languages
English (en)
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 JP2001527242A publication Critical patent/JP2001527242A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/4493Object persistence
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】データベースのテーブルがアクセス可能になるまで待つことによる遅延を減少させ、1つのテーブルに同時にアクセスするトランザクションをロールバックすることによる遅延を減少させることにより、システムの処理全体の効率を向上させること。 【解決手段】ロックグループが異なるテーブルに属する列を含むことを許容し、テーブルの個々の列が1つ以上のロックグループに属することを許容するようにする。同一データベースを変更する複数トランザクションを監視するために楽観的並行処理制御を用いる際に、テーブルの個々の列が別々のユーザ又はアプリケーションによってアクセスされる時に、1つのテーブルに対する同時アクセスを許容する。

Description

【発明の詳細な説明】
【0001】 (関連出願) 以下に示した米国特許出願は、その全ての記載事項が本特許出願の記載事項に
ついての参照となり且つ本特許出願の内容の一部をなすものとする。 1997年11月22日出願の米国特許仮出願No.60/068,415、発明の名称「オブジェ クトとデータベースとの間のマッピングシステム及びその方法」。 同日出願の米国特許出願No. 、発明の名称「ビューを処理するため のオブジェクト・リレーショナル・マッピングツール」(代理人整理番号no.065
02.0136-00000)。 同日出願の米国特許出願No. 、発明の名称「ソースコードマージン グによるオブジェクト・リレーショナル・マッピングの改良」(代理人整理番号
no.06502.0137-00000)。 同日出願の米国特許出願No. 、発明の名称「ソースコードに対する 変更とデータベースに対する変更の両方のオブジェクト・リレーショナル・マッ
ピングツールによるりソースコードへの統合」(代理人整理番号no.06502.0138-
00000)。 同日出願の米国特許出願No. 、発明の名称「オブジェクト・リレー ショナル・マッピング・ストラテジーへの規則的なアプローチ」(代理人整理番
号no.06502.0139-00000)。 同日出願の米国特許出願No. 、発明の名称「ロックグループの指定 用ユーザインタフェース」(代理人整理番号no.06502.0142-00000)。 同日出願の米国特許出願No. 、発明の名称「複数クラスにまたがる インデックスグループの指定用ユーザインタフェース」(代理人整理番号no.065
02.0144-00000)。 同日出願の米国特許出願No. 、発明の名称「オブジェクト指向アプ リケーションにおけるクラスに対応するリレーショナル・データベース・インデ
ックスの生成のための方法及び装置」(代理人整理番号no.06502.0145-00000) 。 同日出願の米国特許出願No. 、発明の名称「オブジェクト指向デー タ依存性に対応するデータベース内の記録済み手続をロードするための方法及び
装置」(代理人整理番号no.06502.0146-00000)。 同日出願の米国特許出願No. 、発明の名称「オブジェクトとデータ ベースとの間のマッピングのための統合グラフィックユーザインタフェースの方
法及び装置」(代理人整理番号no.06502.0147-00000)。 同日出願の米国特許出願No. 、発明の名称「オブジェクト・リレー ショナル・マッピングにおけるクライアント・サーバ間のクエリー実行を効率的
に分割する方法及び装置」(代理人整理番号no.06502.0148-00000)。
【0002】 (発明の技術分野) 本発明は、概して、データ処理システムに関し、更に詳しくは、ロックグルー
プを用いて楽観的並行処理制御のためのきめ細やかな整合性を実現するための方
法及びシステムに関する。
【0003】 (発明の背景技術) コンピュータシステムは大量のデータを記憶及び管理するデータベースをしば
しば用いる。これらのデータベースは、通常、このデータを使用し操作する複数
のクライアントを有する。クライアントは、一般に、クライアントがデータベー
スからデータを引き出しデータを変更することを許す種々の形式の「読み書き」
処理により、データを操作する。典型的なクライアントトランザクションは複数
の読み書き処理を含み、処理の効率性を高めるために、多くのトランザクション
が同時に実行される。このような場合に、各トランザクションによるデータベー
スへのアクセスが自由に許可されると、データ間の整合性が怪しくなる。
【0004】 多くのデータベースクライアント又は1つのクライアント装置の複数の手順が
、データベースからデータを読んでデータベースからデータを書くためにデータ
ベースシステムに同時にアクセスすることを要求することがよく発生する。しか
し、各クライアントは他のクライアントの妨害とは関係なくデータベースにアク
セスすることが必要である。即ち、クライアントのデータベースへのトランザク
ションの過程(そのデータベースから1組のデータを読んで変更する間)でデー
タベースの該当部分が、他のクライアントによって変更されないままであること
が必要となる。この問題を避けるために、データベースシステムへの同時アクセ
スを統制するために、並行処理制御がデータベースシステムによって用いられる
。その制御は、複数ユーザ環境において、各トランザクションの正常動作を確実
にする。
【0005】 並行処理制御の1つのタイプは、「楽観的並行処理制御」である。楽観的並行
処理制御は、トランザクション間の衝突のためのチェックポイントがトランザク
ションの最後にあることを意味する。楽観的並行処理制御によれば、同一のデー
タを変更しようとする他のトランザクションよりも前に、トランザクションが終
了するであろうと仮定される。そのトランザクションは必要なデータを読み、そ
のデータを内部的に更新し、そして、最後にデータベースに更新値を書き込む。
クライアントがデータベースに対しデータ変更を記憶させようとするときに、シ
ステムは、そのクライアントのトランザクションが最初にデータを読んだ時から
ずっと、他のトランザクションによってそのデータが変更されたか否かをチェッ
クする。データに対する変更がなかった場合には、クライアントによるトランザ
クションは完了される。もし、データが変更された場合には、システムはそのク
ライアントによる更新をロールバックし、必要であれば、そのトランザクション
が再び試みることができるようにクライアントに通知する。「ロールバック」と
は、トランザクションが中止され、全てのデータをトランザクションが開始する
前の元の状態に戻すことをいう。楽観的並行処理制御は、最初にデータを保護す
るために生じる遅延を回避することにより、重要な性能の改良をもたらす一方で
、他の処理が同じデータを変更する場合には、システムはトランザクションをロ
ールバックしなければならない。
【0006】 オブジェクト指向システム及びプログラム言語に関していえば、このようなシ
ステムは、データを記憶するデータメンバーとデータを実行する関数メンバー(
メソッド)とを含む「クラス」を用いる。クラスは、クラスの例である「オブジ
ェクト」の生成のためのテンプレートを構成する。クラスは、同じクラスのオブ
ジェクトを操作する手順であるメソッドを定義することもある。オブジェクト指
向プログラム言語の具体例は、ケン・アーノルド、ジェイムス・ゴスリング、ア
ディソン−ウェスレー、1996年著、「Javaプログラム言語」に記載のJ
avaTMプログラム言語である。この本は、本願明細書の参照となり且つ本特
許出願の内容の一部をなすものとする。更に詳細なJava言語に関する記載が
、ジェイムス・ゴスリング、ビル・ジョイ、アディソン−ウェスリー著、199
6年、「Java言語の詳細」にある。この本も、本願明細書の参照となり且つ
本特許出願の内容の一部をなすものとする。
【0007】 幾つかのシステムは、オブジェクト指向システム内のデータベースにアクセス
するときに、楽観的並行処理制御を実行するためにロックグループを用いる。楽
観的並行処理制御に関しては、その名前に関わらず、ロックグループはデータの
ブロックをロックすることを意味するわけではない。その代わり、ロックグルー
プは、衝突保護機構を提供する。特に、ロックグループは、1又は複数のフィー
ルドはクライアントによるトランザクション中にそのクライントのみによって変
更されることを条件として指定する。ロックグループはこのようにデータベース
のデータを管理するために有用である。例えば、利用者オブジェクトは、利用者
名とアドレスのフィールドを含み、例えば、他のクライアントが対応するアドレ
スフィールドのデータを変更するときには、1つのクライアントが名前フィール
ドのデータを変更しないように、ロックグループはその名前及びアドレスのフィ
ールドを指定する。言い換えれば、例えば、不正確なアドレスが特定の名前のた
めに入力されることを回避するために、名前及びアドレスのフィールドは、トラ
ンザクション中に1つのクライアントによってのみ変更されるようにする。
【0008】 ロックグループは、クライアントがトランザクションをコミットするときに、
衝突を判定するために用いられる。クライアントが特定のオブジェクトのデータ
を変更するトランザクションを実行し、その変更を保存するためのトランザクシ
ョンをコミットしようとすると、システムは、何れかのロックグループが、変更
されたフィールドの何れかを含むか否かを決定し、含むときには、何れかの他の
アプリケーションが、それらのロックグループの何れかのフィールドを変更する
か否かを決定する。そのシステムは、他のクライアントがこのような変更をする
ときには、トランザクションのコミットもデータベースの変更も行わない。
【0009】 一般的なロックグループは、オブジェクトの全てのフィールドを含む。しかし
、オブジェクトは多くのフィールドを含むことがあり、クライアントはオブジェ
クトにおける少数のフィールドを変更するだけであろう。他のクライアントがト
ランザクション中にオブジェクトのデータを変更することを効率的に防止するこ
とができるように、トランザクション中には、1つクライアントしかオブジェク
ト全体のフィールドを変更することができないようになっているので、多くの衝
突は、ロックグループが多数のフィールドを含むときに発生する。
【0010】 データベースにアクセスするときに、楽観的並行処理制御を用いる一般的なオ
ブジェクト指向システムは、クライアントがオブジェクトのフィールドを変更す
ることを許可するときには、他のトランザクションが同じオブジェクトの他のフ
ィールドを同時に変更することを禁止する。一般的なシステムでは、1つのトラ
ンザクションがオブジェクトのフィールドを変更するときには、他のトランザク
ションは同じオブジェクトの他のフィールドを変更することができない。従って
、一般的なシステムは、フィールドが1つ以上のロックグループに同時に属する
ことを許容しない。加えて、一般的なロックグループは異なるクラスのフィール
ドを含まない。これらの制限により、異なるアプリケーションが同じオブジェク
トの異なるフィールドに同時にアクセスすることができない。従って、斯かるシ
ステムを改良することが要望される。
【0011】 (発明の概略) 本発明に係る方法及びシステムは、ロックグループが異なるクラスのフィール
ドを含むことを許容し、1つのフィールドが一つ以上のロックグループに属する
ことを許容する方法を提供することにより、前記要望及び他の要望を満足するも
のである。
【0012】 本発明に係る方法によれば、ロックグループとフィールドを有するクラスとを
備えるデータ処理システムにおける方法が提供される。この方法は、ロックグル
ープが第1のクラスに属する第1のフィールドと第2のクラスに属する第2のフ
ィールドとを含むことを指定する指示を受取り、指定されたロックグループを生
成する。更に、そのロックグループに属する1つフィールドの値に影響するトラ
ンザクションをコミットする要求を受取り、ロックグループのフィールドのうち
少なくとも1つがそのトランザクション中に変更されたか否かに基づいて、その
トランザクションをコミットするか否かを決定する。
【0013】 本発明に係る方法及びシステムは、オブジェクトの個々のフィールドが別々の
クライアントによってアクセスされたときには、1つのオブジェクトに対する同
時アクセスを許容する。そして、これにより、オブジェクトがアクセス可能にな
るのを待つことによる遅延を低減させ、1つのオブジェクトに同時にアクセスす
るトランザクションをロールバックすることによる遅延を低減する。これらの遅
延の低減によりシステムのデータ処理全体の効率を向上させることができる。
【0014】 本発明についての前記特徴、他の特徴及び効果は、添付の図面を伴って後述さ
れる好適な実施の形態の詳細な説明によって、容易に当業者に理解されるであろ
う。
【0015】 (詳細な説明) 添付図面は、この明細書に取り込まれ、この明細書の一部を成し、本発明の実
施を図示し、詳細な説明と協働して、本発明の利点と原理を説明するために提示
される。
【0016】 (序文) 本発明に係る方法及びシステムは、楽観的並行処理制御を使用し、複数のクラ
イアントが異なるロックグループに属するフィールドを変更する際には、複数の
クライアントが同時に同一のオブジェクトを変更することを許容する。更に、そ
れらは、楽観的並行処理制御のロックグループが異なるクラスのフィールドを含
むことを許容する。加えて、1つのフィールドが1つ以上のロックグループに属
することを許容する。これらのシステムは、データベースへ同時アクセスをして
も、きめの細かい整合性を担保する。きめの細かい整合性とは、オブジェクト全
体をロックすることなくオブジェクトの個々のフィールドがロックされ、その結
果、他のトランザクションが、同時にそのオブジェクトの他のフィールドにアク
セスすることができることをいう。本発明に係る方法及びシステムは、オブジェ
クトへの同時アクセスの増大を可能にする。そして、アクセスが制限されないよ
うにオブジェクトのフィールドの待機遅延時間を減少することができ、また、ト
ランザクションのロールバックを低減を図ることができる。
【0017】 一般に、ロックグループは、オブジェクト内の関連するデータ項目を指定する
ために使用される。ユーザがオブジェクト内の変更する際に、ユーザはオブジェ
クト全体に影響を与えることはない。そのデータがロックグループの一部でもあ
るときには、トランザクションは、そのロックグループによって示されたその組
のフィールドに影響を与えるだけである。データがそのロックグループ以外もの
である限り、他の処理は、アクセス可能であり同じオブジェクト内のデータを更
新することができる。例えば、他の処理は、そのトランザクションによる変更に
衝突することなく、そのオブジェクトのフィールドを変更することができる。
【0018】 データ変更をコミットしようとするときには、システムは、データベースの現
在(コミット時刻)のデータに比較してそのデータの元の変更前のコピーをチェ
ックする。データが同じであると、トランザクションをその変更をデータベース
にコミットする。しかし、相違を検出したときは、このオブジェクトのロックグ
ループを走査し、衝突をチェックする。即ち、ロックグループに属するフィール
ドに変更をコミットしようとしているか、そして、そのデータを読んでその変更
をコミットしようとしてからの時間に、他のクライアントがそのロックグループ
に属する同じフィールド又は他のフィールドのどちらかを変更したか否かをチェ
ックして判定する。そうであれば、これは衝突する状況であり、その処理はその
変更をコミットしない。オブジェクトに関するロックグループは複数あるかもし
れず、これらのロックグループが部分的に重複するかもしれないことに注意する
必要がある。
【0019】 実施の形態の一例では、本発明に係るシステムを用いるクライアントは、相互
依存するフィールドのグループとして、ロックグループを設ける。ロックグルー
プは、フィールドが如何なる個数のクラスに属しても、単独のフィールドであっ
ても、組み合わせたフィールドであっても、対応する。ユーザは、ロックグルー
プとしてまとめて扱われるべきこれらのフィールドを指定することができ、各値
が互いに依存するこれらのフィールドは、大抵グループにまとめられる。アプリ
ケーションがフィールドを変更するときには、指定されたフィールドを含むロッ
クグループに属するフィールドを他のアプリケーションが変更又は更新する場合
には、逆に、そのトランザクションが影響を受けることがある。
【0020】 本発明の実施の形態の一例では、システムは、リレーショナルデータベース情
報をオブジェクトに対応付け、そして、反対の対応付けも行うオブジェクト関係
マッピングツールにおいて作動し、トランザクションがコミットされるときには
、下記の技術が実行される。このようなマッピングツールは、本願と共に出願中
の米国特許出願No. 、発明の名称「ロックグループの指定のためのユ ーザインターフェイス」に、更に詳細に記載されている。この出願は、既に、本
願明細書の参照となり且つ本特許出願の内容の一部をなすものとされている。
【0021】 このような、マッピングツールは、テーブルを含むリレーショナルデータベー
スのスキーマからソースコードを生成する。生成されたソースコードは、フィー
ルドを含むクラスを含み、これらのクラス及びフィールドはリレーショナルデー
タベースのテーブル及び列から生成される。マッピングツールは、テーブルをク
ラスに対応付け、リレーショナルデータベースの各列をクラス内のフィールドに
対応付ける。ユーザは、クラスのフィールドに関するロックグループを定義する
ためにマッピングツールを使う。しかし、これらのロックグループは、実際に、
オブジェクトに対応するテーブル内の対応する列に関するロックグループによっ
て、影響を受ける。わかりやすくするために、以下の記載では、ロックグループ
は、データベース内のテーブルの列に基づいて定義されるものとする。しかし、
ロックグループは、クラスのフィールド又はデータ構造の他の要素に基づいて実
現されると考えてもよいことを、当業者は理解するであろう。
【0022】 (システムの詳細) 図1は、本発明に係る方法及びシステムを使用するために好適なデータ処理シ
ステム100のブロック図である。データ処理システム100は、インターネッ
ト103に接続されたコンピュータシステム101を構成する。コンピュータシ
ステム101は、バス102を介して接続された中央処理装置(CPU)104
、メインメモリー106及び2次記憶装置110を含む。加えて、コンピュータ
システム100は、表示装置112及び入力装置114を含む。メインメモリー
106は、また、JavaTM仮想マシン(JVM)のような仮想マシン、ハッ
シュテーブル122、クライアント126及びトランザクションマネージャ12
8を含む。トランザクションマネージャ128も、更新されたデータをデータベ
ースにコミットする前に、それを一時的に記憶するために用いられるキャッシュ
130をふくむ。下に記載されるように、ハッシュテーブル122は、一時的な
記憶形式として実現され、ロックグループに属するテーブルの列を一時的に記憶
するために用いられる。Java仮想マシンは、コンピュータプログラムの周知
の実行手段であり、アディソン−ウェスリー著、「Java仮想マシンの詳細」
、リンドホームとイェリン、1996年に、詳細に記載されている。そして、こ
の本は、本願明細書の参照となり且つ本特許出願の内容の一部をなすものとする
。前記VM120は、Javaランタイム環境(JRE)121に含まれる。ク
ライアント126は、トランザクションマネージャ128を用いてデータベース
124を利用する。トランザクションマネージャ128は、下に更に詳細に記載
されるように、きめ細やかな並行処理制御を用いて、データベース124にトラ
ンザクションを実行する。データベース124は、トランザクションが実行され
るデータを記憶する。このデータベース124は、サーバコンピュータ(図示し
ない)に属するかもしれず、コンピュータ101に属するかもれない。
【0023】 ハッシュテーブル122及び他の本発明に係る方法及びシステムの他の態様は
、例えば、ハードディスク、フロッピーディスク、CD−ROM又はネットワー
クからの搬送波のような2次記憶装置のように、メモリー以外の他のコンピュー
タ可読媒体に記憶し、それから読み出すようにしてもよいことは、当業者に理解
されるであろう。ハッシュテーブル122は、VM120で動作するように記載
されているが、ハッシュテーブル122は、オペレーティングシステムのような
他のプログラムで動作してもよく、オブジェクト指向又は非オブジェクト指向プ
ログラム作成環境において動作するようにしてもよいことは、当業者に理解され
るであろう。
【0024】 更に、データ処理システム100は、追加の又は他の構成要素を含んでも良い
ことは、当業者に理解されるであろう。
【0025】 (方法) 図2は、本発明に係るロックグループを用いたトランザクションを実行すると
きに、トランザクションマネージャによって実行される処理ステップを示すフロ
ーチャートを示す。トランザクションマネージャ128は、クライアント126
からトランザクション要求を受取る。トランザクションマネージャ128は、ト
ランザクション中には、メモリー(例えば、キャッシュ)に列の局所コピーを記
憶し、周知のキャッシュ技術を用いて、列のこれらのコピーに処理を実行する。
トランザクションマネージャ128がデータベース124の列のコピーを更新す
るのは、コミットの時だけである。一般に、トランザクションがコミットする時
に、ロックグループの列が更新される予定である場合には、トランザクションマ
ネージャ128は、そのロックグループの全ての列がトランザクション中にデー
タベース124において変更されないままであるか否かをチェックする。もし、
そうである場合には、トランザクションマネージャ128はそのトランザクショ
ンをコミットする。さもなければ、トランザクションマネージャ128はそのト
ランザクションをロールバックする。
【0026】 その変更をデータベース124にコミットする時には、トランザクションマネ
ージャ128によって実行される第1のステップは、トランザクションによって
キャッシュ130内で、どの列が更新されたか否かを判定する(処理200)。
これを完了するために、そのトランザクションの始めに、トランザクションマネ
ージャ128は、処理すべきトランザクションに係る列の初期値をキャッシュに
保存し、そして、これらの値をキャッシュ130にある列の現在値と比較する。
ここで、列の値が同じではないということは、キャッシュ内で更新されたことを
意味する。
【0027】 次に、トランザクションマネージャ128は、ロックグループ202を選択し
(処理202)、トランザクション中にロックグループの列がキャッシュ130
内で更新されたか否かを判定する(処理204)。ロックグループの列が変更さ
れた場合には、そのロックグループの全ての列が、ハッシュテーブル122に加
えられる(処理206)。そして、処理すべきロックグループがまだある場合に
は(処理208)、動作は処理202へ移行する。
【0028】 さもなければ、ハッシュテーブル122は、変更されたロックグループに属す
る列を配置され、トランザクションマネージャ128はハッシュテーブルから列
を選択する(処理210)。トランザクションマネージャ128は、トランザク
ション処理中にデータベース124内でこの列のデータベース値が変更されたか
否かを判定する(処理212)。この判定をするために、トランザクションマネ
ージャ128は、トランザクションの始めのその列のデータベース値を、トラン
ザクションの最後(コミット時)のその列のデータベース値と比較する。その列
のデータベース値がトランザクション中にデータベース124において変更され
た場合には、トランザクションマネージャ128は、それをアボートすることに
よりトランザクションをロールバックする(処理214)。しかし、その値が変
更されていなければ、他の列が選択される(処理216)。ハッシュテーブル1
22の列のデータベース値がトランザクション中にデータベース内で変更されな
かった場合には、トランザクションマネージャ128は、トランザクションをコ
ミットし、そして、キャッシュ130の列の値に基づいてデータベースの列を更
新する(処理218)。
【0029】 (例) 例えば、顧客テーブルが、「名」、「氏」、「通り」、「都市」、「郵便番号
」、「電話番号」及び「販売担当者」の各列からなるとする。ほとんどの場合、
「氏」と「販売担当者」の値の変化は相互に独立して生じるので(但し、顧客が
単に氏に基づいて販売担当者に割り当てられるときには、「氏」と「販売担当者
」の列は相互に依存する。)、1つのロックグループが「氏」と「販売担当者」
の列を両方含まないように決定される。
【0030】 しかし、住所を構成する要素である、「通り」、「都市」、「郵便番号」、「
市外局番」及び「電話番号」は、相互に関連するので、1つのロックグループに
一緒に配置される。この情報を同一のグループに配置すると、2つのクライアン
トが、同時に同一の顧客の住所情報を更新しようとするときに、他のクライアン
トが顧客の「市外局番」を更新するときに、1のクライアントが「電話番号」を
更新しないようにすることを担保する。しかし、並行アクセスを改良したので、
2つの処理がアクセスするデータが同一のロックグループに属さない場合には、
それらの処理は同時に同一の顧客テーブルを更新することができる。また、同一
の列が、複数のロックグループに属することを許容するので、上記の例のように
、「市外局番」は、〔電話〕のロックグループと〔住所〕のロックグループに属
することができる。
【0031】 図3は、複数のトランザクションが、本発明に係る方法及びシステムに従う楽
観的並行処理制御のロックグループを用いて、同一のテーブルにアクセスする過
程を例示する。この例では、顧客名簿は、6種のデータメンバーが、3つのロッ
クグループ(〔電話〕、〔住所〕、〔顧客氏名〕)に分けられる。例えば、4つ
のトランザクション(T1乃至T4)が、同じ顧客テーブルにある異なる属性に
同時にアクセスするものとする。トランザクションT2が「氏」にアクセスする
一方で、トランザクションT1は2つの属性「都市」と「通り」にアクセスする
。それらは、処理を完了することができる。なぜなら、T1は、他のトランザク
ションによって変更がコミットされる以前にコミットし、そして、T1によって
変更される列は、T2によって変更される列を含むロックグループに属していな
い。
【0032】 しかし、システムは、T3には「市外局番」の変更を完了をさせないようにす
る。なぜなら、T3が「市外局番」を読み出した後であるが、それの変更を完了
する前に、〔住所〕のロックグループの他の属性が変化したからである。これら
の変更は、T1によってデータベース124にコミットされた。
【0033】 しかしながら、衝突する変更はないので、システムは、T4がコミットするこ
とを許可することに注意する必要がある。「市外局番」は〔住所〕と〔電話〕の
ロックグループに属し、T1は既に〔住所〕に属する他の属性を変更したので、
もしも、T4が「市外局番」を変更しようとすると、衝突が発生するであろう。
【0034】 〔電話〕のロックグループには、属性「市外局番」と属性「電話番号」が属す
るが、〔電話〕のロックグループに属する属性の変更によって、トランザクショ
ンT3とトランザクションT4は、干渉する可能性がある。T3が「市外局番」
を変更しようとして失敗したことにより、T4がそれらを読み取った時点から、
〔電話〕のロックグループに属する属性のデータベース値は変更されないままで
あるので、T4は変更を電話番号にコミットすることができる。しかしながら、
もしもT3が成功すると、T4は失敗する。
【0035】 上述の発明実施形態の説明は、図解や説明のために提示されたものであり、他
の実施形態を排除するものではなく、本発明を、上に開示された形態と同一のも
のに限定するものでもない。前記の教示に鑑みて変更や変形が可能であり、発明
の実施によっても変更や変形が可能である。発明の範囲は、請求の範囲及びその
均等物によって決定される。
【0036】 (結論) 本発明に従う方法及びシステムによれば、1つのロックグループが異なるテー
ブルの個々の列を含むことを許容し、テーブルの1つの列が1つ以上のロックグ
ループに属することを許容し、ロックグループの個々の列が部分的に重複しない
場合には、複数のトランザクションが、データベースの1つのテーブルへ同時に
アクセスすること許容するようにしている。このようにデータテーブルの1つの
テーブルへ同時にアクセスするようにすると、トランザクションのロールバック
による遅延、及び、テーブルがロックグループから開放されることを待つことに
よる遅延を低減することができるので、全体のデータ処理効率を向上させること
ができる。
【0037】
【図面の簡単な説明】
【図1】 本発明に係る方法及びシステムに従うコンピュータシステムのブ
ロック図。
【図2】 本発明に係る方法及びシステムに従うトランザクションのコミッ
トの方法についてのフローチャートである。
【図3】 本発明に係る方法及びシステムに従う並行トランザクションの例
を示す図である。
【符号の説明】
100 データ処理システム 101 コンピュータシステム 102 バス 103 インターネット 104 中央処理装置(CPU) 106 メインメモリ 110 記憶装置 112 表示装置 114 入力装置 120 仮想マシン(VM) 121 Javaランタイム環境(JRE) 122 ハッシュテーブル 124 データベース 126 クライアント 128 トランザクションマネージャ 130 キャッシュ
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 データベースと要素を有するデータ構造とを備えるデータ処
    理システムにおける方法であって、該方法は、 ロックグループが第1のデータ構造に属する第1の要素と第2のデータ構造に
    属する第2の要素とを含むことを指定するロックグループについての指示を受取
    る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つの
    要素の値に影響するトランザクションをコミットする要求を受取る工程と、そし
    て、 前記トランザクション中に前記ロックグループに含まれる要素の少なくとも1
    つが他のトランザクションによって変更されるか否かに基づいて、データベース
    に前記トランザクションをコミットするか否かを決定する工程とを含む。
  2. 【請求項2】 請求項1の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記ロックグループの要素の少なくとも1つが変更
    されたときには、前記トランザクションをアボートする工程を含む。
  3. 【請求項3】 請求項1の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記ロックグループの要素が変更されなかったとき
    には、前記トランザクションをコミットする工程を含む。
  4. 【請求項4】 請求項1の方法であって、前記データ構造はクラスであり、
    前記要素はフィールドであり、前記受取る工程には、更に、 ロックグループが第1のクラスに属する第1のフィールドと第2のクラスに属
    する第2のフィールドとを含む工程を指定するロックグループについての指示を
    受取る工程を含む。
  5. 【請求項5】 請求項1の方法であって、前記データ構造はテーブルであっ
    て、前記要素は列であり、前記受取る工程には、更に、 第1のテーブルに属する第1の列と第2のテーブルに属する第2の列とを含む
    ことを指定するロックグループについての指示を受取る工程を含む。
  6. 【請求項6】 データベースと要素を有するデータ構造とを備えるデータ処
    理システムにおける方法であって、該方法は、 2つのロックグループが第1の要素を共有することを指定する該2つのロック
    グループについての指示を受取る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つに
    属する第2の要素の値に影響するトランザクションをコミットする要求を受取る
    工程と、そして、 前記トランザクション中に前記1つのロックグループに含まれる要素の少なく
    とも1つが他のトランザクションによって変更されるか否かに基づいて、前記ト
    ランザクションをコミットするか否かを決定する工程とを含む。
  7. 【請求項7】 請求項6の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記1つのロックグループの要素の少なくとも1つ
    が変更されたときには、前記トランザクションをアボートする工程を含む。
  8. 【請求項8】 請求項6の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記ロックグループの要素が変更されなかったとき
    には、前記トランザクションをコミットする工程を含む。
  9. 【請求項9】 データベースデータ構造とハッシュテーブルとを有するデー
    タベースを備えるデータ処理システムにおける方法であって、該方法は、 異なるデータベースデータ構造に属する要素を有するロックグループを生成す
    る工程と、 前記ロックグループの要素の少なくとも1つが更新されるようにクライアント
    によってトランザクションを開始する工程と、 どの要素が前記トランザクションによって更新されたかを決定するステッ
    プと、 どのロックグループが前記更新された要素を含むかを決定するステップと
    、 前記決定されたロックグループを前記ハッシュテーブルに加えるステップ
    と、 前記加えられた要素が、前記トランザクション中に他のクライアントによ
    って前記データベース内で、更新されたか否かを決定するステップと、 により前記トランザクションをコミットする要求を受取る工程と、 前記加えられた要素の少なくとも1つが、前記トランザクション中に前記デー タベース内で、他のクライアントによって更新されたときには、前記トランザク
    ションをアボートする工程と、 前記加えられた要素が、前記トランザクション中に前記データベース内で、他
    のクライアントによって変更されないままであったときには前記トランザクショ
    ンをコミットする工程と を含む。
  10. 【請求項10】 コンピュータ可読メモリー装置であって、 ロックグループのメンバーであると定義される第1の要素を有する第1のデー
    タ構造と、 前記ロックグループのメンバーであると定義される第2の要素を有する第2の
    データ構造とを含み、 クライアントによって要求されたトランザクションをコミットするか否かは、
    トランザクション中に第1の要素又は第2の要素が他のクライアントによって更
    新されたか否かに基いて、決定される。
  11. 【請求項11】 データベースデータ構造とハッシュテーブルとを有するデ
    ータベースを備えるデータ処理システムであって、該データ処理システムは、 異なるデータベースデータ構造に属する要素を有するロックグループを生成す
    る手段と、 前記ロックグループの要素の少なくとも1つが更新されるようにクライアント
    によってトランザクションを開始する手段と、 どの要素が前記トランザクションによって更新されたかを決定する手段と
    、 どのロックグループが前記更新された要素を含むかを決定する手段と、 前記決定されたロックグループを前記ハッシュテーブルに加える手段と、 前記加えられた要素が、前記トランザクション中に前記データベース内で
    、他のクライアントによってが更新されたか否かを決定する手段と、 を含み前記トランザクションをコミットする要求を受取る手段と、 前記加えられた要素の少なくとも1つが、前記トランザクション中に前記デー タベース内で、他のクライアントによって更新されたときには、前記トランザク
    ションをアボートする手段と、 前記加えられた要素が、前記トランザクション中に前記データベース内で、他
    のクライアントによって変更されないままであったときには前記トランザクショ
    ンをコミットする手段と を含む。
  12. 【請求項12】 方法を実行するためのデータ処理システム制御命令を記憶
    するコンピュータ可読媒体であり、前記データ処理システムはデータベース及び
    要素を有するデータ構造を備え、該方法は、 ロックグループが第1のデータ構造に属する第1の要素と第2のデータ構造と
    に属する第2の要素を含むことを指定するロックグループについての指示を受取
    る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つの
    要素の値に影響するトランザクションをコミットする要求を受取る工程と、そし
    て、 前記トランザクション中に前記ロックグループに含まれる要素の少なくとも1
    つが変更されるか否かに基づいて、データベースに前記トランザクションをコミ
    ットするか否かを決定する工程とを含む。
  13. 【請求項13】 請求項12のコンピュータ可読媒体であって、前記方法の
    前記決定するステップには、更に、前記トランザクション中に前記ロックグルー
    プの要素の少なくとも1つが変更されたときには、前記トランザクションをアボ
    ートする工程を含む。
  14. 【請求項14】 請求項12のコンピュータ可読媒体であって、前記方法の
    前記決定するステップには、前記トランザクション中に前記ロックグループの要
    素が変更されなかったときには、前記トランザクションをコミットする工程を含
    む。
  15. 【請求項15】 方法を実行するためのデータ処理システム制御命令を記憶
    するコンピュータ可読媒体であり、前記データ処理システムはデータベースと要
    素を有するデータ構造とを備え、該方法は、 2つのロックグループが第1の要素を共有することを指定する該2つのロック
    グループについての指示を受取る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つに
    属する第2の要素の値に影響するトランザクションをコミットする要求を受取る
    工程と、そして、 前記トランザクション中に前記1つのロックグループに含まれる要素の少なく
    とも1つが他のトランザクションによって変更されるか否かに基づいて、前記ト
    ランザクションをコミットするか否かを決定する工程とを含む。
  16. 【請求項16】 請求項15のコンピュータ可読媒体であって、前記方法の
    前記決定するステップには、更に、 前記トランザクション中に前記1つのロックグループの少なくとも1つの要素
    が変更されたときには、前記トランザクションをアボートする工程を含む。
  17. 【請求項17】 請求項15の方法であって、前記方法の前記決定するステ
    ップには、更に、 前記トランザクション中に前記1つのロックグループの要素が変更されなかっ
    たときには、前記トランザクションをコミットする工程を含む。
  18. 【請求項18】 データ処理システムであって、 前記データ処理システムは、 要素を有するデータ構造を含むデータベースを備える2次記憶装置と、 トランザクションマネージャを記憶するメモリーと、 前記トランザクションマネージャを実行するプロセッサと、 を含み、 前記トランザクションマネージャは、 第1のデータ構造の要素と第2のデータ構造の要素とを含むロックグループの
    決定を受取るように構成され、前記ロックグループの第1の要素が変更されると
    きにはトランザクションをコミットする要求をクライアントから受取るように構
    成され、前記トランザクション中にロックグループの第2の要素が他のクライア
    ントによって変更されるときには前記トランザクションをアボートするように構
    成される。
  19. 【請求項19】 データ処理システムであって、 前記データ処理システムは、 要素を有するデータ構造を含むデータベースを備える2次記憶装置と、 トランザクションマネージャを記憶するメモリーと、 前記トランザクションマネージャを実行するように構成されるプロセッサと、
    を含み、 前記トランザクションマネージャは、 2つのロックグループが第1の要素を共有するものとする定義づけを受取るよ
    うに構成され、前記2つのロックグループのうちの1つに係る第2の要素を変更
    するトランザクションをコミットする要求をクライアントから受取るように構成
    され、前記トランザクション中に前記第2の要素を含む1つのロックグループの
    第3の要素が他のクライアントによって前記データベース内で変更されるときに
    は、前記トランザクションをアボートするように構成される。
JP2000525837A 1997-12-22 1998-12-21 ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み Pending JP2001527242A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US6841597P 1997-12-22 1997-12-22
US60/068,415 1997-12-22
US09/106,119 US6240413B1 (en) 1997-12-22 1998-06-29 Fine-grained consistency mechanism for optimistic concurrency control using lock groups
US09/106,119 1998-06-29
PCT/US1998/027242 WO1999033001A1 (en) 1997-12-22 1998-12-21 A fine-grained consistency mechanism for optimistic concurrency control using lock groups

Publications (1)

Publication Number Publication Date
JP2001527242A true JP2001527242A (ja) 2001-12-25

Family

ID=26748953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000525837A Pending JP2001527242A (ja) 1997-12-22 1998-12-21 ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み

Country Status (6)

Country Link
US (1) US6240413B1 (ja)
EP (1) EP1040433B1 (ja)
JP (1) JP2001527242A (ja)
AU (1) AU1938899A (ja)
DE (1) DE69802437T2 (ja)
WO (1) WO1999033001A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342142A (ja) * 2001-05-21 2002-11-29 Toshiba Corp 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム
JP2010117869A (ja) * 2008-11-12 2010-05-27 Internatl Business Mach Corp <Ibm> メモリ制御装置、プログラム及び方法
WO2015162717A1 (ja) * 2014-04-23 2015-10-29 株式会社日立製作所 計算機
JP2017509970A (ja) * 2014-03-26 2017-04-06 インテル・コーポレーション ハイブリッドトランザクショナルメモリシステムにおける並行処理の最大化

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2279051C (en) 1999-07-29 2004-12-28 Ibm Canada Limited-Ibm Canada Limitee Method and system for improving concurrency through early release of unnecessary locks
US7039860B1 (en) * 1999-10-01 2006-05-02 Netspinner Solutions As Creating web pages category list prior to the list being served to a browser
EP1269357A4 (en) * 2000-02-22 2005-10-12 Metacarta Inc SPANISH CODING AND DISPLAYING INFORMATION
DE10047216A1 (de) * 2000-09-23 2002-04-11 Philips Corp Intellectual Pty Ein Verfahren zur Erkennung von Schreibkonflikten in replizierten Datenbanken ohne Speicheroverhead
US7020684B2 (en) * 2002-01-18 2006-03-28 Bea Systems, Inc. System and method for optimistic caching
US6898587B2 (en) 2002-01-18 2005-05-24 Bea Systems, Inc. System and method for performing commutative operations in data access systems
US6877014B1 (en) * 2002-01-30 2005-04-05 Oracle International Corporation Method and apparatus to facilitate transactional consistency for references in object-relational databases
US20030233632A1 (en) * 2002-06-12 2003-12-18 Lockheed Martin Corporation Automatically generated client application source code using database table definitions
US7155429B2 (en) * 2002-07-09 2006-12-26 Bridgelogix Corporation Method, apparatus and article of manufacture to aggregate automated transaction procession
US7257705B2 (en) * 2002-11-18 2007-08-14 Sparta Systems, Inc. Method for preserving changes made during a migration of a system's configuration to a second configuration
US7010655B1 (en) * 2003-03-24 2006-03-07 Veritas Operating Corporation Locking and memory allocation in file system cache
US7424671B2 (en) * 2003-05-16 2008-09-09 Justsystems Canada Inc. Methods and systems for enabling collaborative authoring of hierarchical documents
US7788288B1 (en) 2004-11-01 2010-08-31 At&T Corp. Method for distributed configuration and file distribution based on centralized data
US7984248B2 (en) * 2004-12-29 2011-07-19 Intel Corporation Transaction based shared data operations in a multiprocessor environment
US7502843B2 (en) * 2004-12-30 2009-03-10 Microsoft Corporation Server queuing system and method
US7523110B2 (en) * 2005-03-03 2009-04-21 Gravic, Inc. High availability designated winner data replication
US20060242104A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Systems and methods for manipulating data in a data storage system
US8200676B2 (en) 2005-06-28 2012-06-12 Nokia Corporation User interface for geographic search
US7702658B2 (en) * 2006-01-27 2010-04-20 International Business Machines Corporation Method for optimistic locking using SQL select, update, delete, and insert statements
US7461065B2 (en) 2006-01-31 2008-12-02 International Business Machines Corporation Method and system for utilizing shared numeric locks
CA2641986A1 (en) * 2006-02-10 2007-08-23 Metacarta, Inc. Systems and methods for spatial thumbnails and companion maps for media objects
US7647296B2 (en) * 2006-03-15 2010-01-12 International Business Machines Corporation Method for estimating a first access time of transactions accessing a database object
US7933881B2 (en) * 2006-03-17 2011-04-26 Microsoft Corporation Concurrency control within an enterprise resource planning system
WO2007146298A2 (en) 2006-06-12 2007-12-21 Metacarta, Inc. Systems and methods for hierarchical organization and presentation of geographic search results
US7698273B2 (en) * 2006-06-23 2010-04-13 Microsoft Corporation Solving table locking problems associated with concurrent processing
US9286404B2 (en) * 2006-06-28 2016-03-15 Nokia Technologies Oy Methods of systems using geographic meta-metadata in information retrieval and document displays
US20080140348A1 (en) * 2006-10-31 2008-06-12 Metacarta, Inc. Systems and methods for predictive models using geographic text search
US9721157B2 (en) * 2006-08-04 2017-08-01 Nokia Technologies Oy Systems and methods for obtaining and using information from map images
US20080065685A1 (en) * 2006-08-04 2008-03-13 Metacarta, Inc. Systems and methods for presenting results of geographic text searches
US20080033944A1 (en) * 2006-08-04 2008-02-07 Metacarta, Inc. Systems and methods for presenting results of geographic text searches
US8601456B2 (en) * 2006-08-04 2013-12-03 Microsoft Corporation Software transactional protection of managed pointers
US7895582B2 (en) 2006-08-04 2011-02-22 Microsoft Corporation Facilitating stack read and write operations in a software transactional memory system
US7434010B2 (en) * 2006-08-04 2008-10-07 Microsoft Corporation Combined pessimistic and optimisitic concurrency control
US7941411B2 (en) * 2007-06-29 2011-05-10 Microsoft Corporation Memory transaction grouping
US8489566B2 (en) * 2008-04-08 2013-07-16 International Business Machines Corporation Optimistic locking in online and offline environments
US9996572B2 (en) * 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
US8255373B2 (en) * 2008-10-24 2012-08-28 Microsoft Corporation Atomic multiple modification of data in a distributed storage system
US8121980B2 (en) * 2009-02-13 2012-02-21 Microsoft Corporation Transactional record manager
US8799572B2 (en) * 2009-04-20 2014-08-05 Microsoft Corporation Sliding-window multi-class striping
US9411634B2 (en) 2010-06-21 2016-08-09 Microsoft Technology Licensing, Llc Action framework in software transactional memory
US8719515B2 (en) 2010-06-21 2014-05-06 Microsoft Corporation Composition of locks in software transactional memory
US8386421B2 (en) 2010-06-28 2013-02-26 Microsoft Corporation Concurrency control for confluent trees
US8412689B2 (en) * 2010-07-07 2013-04-02 Microsoft Corporation Shared log-structured multi-version transactional datastore with metadata to enable melding trees
US9848106B2 (en) 2010-12-21 2017-12-19 Microsoft Technology Licensing, Llc Intelligent gameplay photo capture
US8745016B2 (en) 2011-06-17 2014-06-03 International Business Machines Corporation Managing concurrent access to data in database system
US8930330B1 (en) 2011-06-27 2015-01-06 Amazon Technologies, Inc. Validation of log formats
CN103853527A (zh) 2012-11-29 2014-06-11 国际商业机器公司 切换多线程程序中的对象锁定模式的方法和系统
US9501501B2 (en) 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9317213B1 (en) 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9208032B1 (en) 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9305056B1 (en) 2013-05-24 2016-04-05 Amazon Technologies, Inc. Results cache invalidation
US9047189B1 (en) 2013-05-28 2015-06-02 Amazon Technologies, Inc. Self-describing data blocks of a minimum atomic write size for a data store
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9519664B1 (en) 2013-09-20 2016-12-13 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US9280591B1 (en) 2013-09-20 2016-03-08 Amazon Technologies, Inc. Efficient replication of system transactions for read-only nodes of a distributed database
US9507843B1 (en) 2013-09-20 2016-11-29 Amazon Technologies, Inc. Efficient replication of distributed storage changes for read-only nodes of a distributed database
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9552242B1 (en) 2013-09-25 2017-01-24 Amazon Technologies, Inc. Log-structured distributed storage using a single log sequence number space
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US10387399B1 (en) 2013-11-01 2019-08-20 Amazon Technologies, Inc. Efficient database journaling using non-volatile system memory
US9760480B1 (en) 2013-11-01 2017-09-12 Amazon Technologies, Inc. Enhanced logging using non-volatile system memory
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
CN104021145B (zh) 2014-05-16 2018-03-06 华为技术有限公司 一种混合业务并发访问的方法和装置
US10303663B1 (en) 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
US10282228B2 (en) * 2014-06-26 2019-05-07 Amazon Technologies, Inc. Log-based transaction constraint management
US9916343B2 (en) * 2015-04-02 2018-03-13 International Business Machines Corporation Efficient tracking of an alternate global update and read values using exception lists
US10825080B2 (en) * 2017-04-27 2020-11-03 Target Brands, Inc. Item database creation based on negotiated values
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589092A (en) * 1983-12-12 1986-05-13 International Business Machines Corporation Data buffer having separate lock bit storage array
US5043876A (en) * 1988-05-27 1991-08-27 International Business Machines Corporation N-level file shadowing and recovery in a shared file system
US5261069A (en) * 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
EP0472812B1 (de) 1990-08-28 1998-05-06 Landis &amp; Gyr Technology Innovation AG Verfahren zum Aendern einer in einem Computer eines Gerätes abgespeicherten Maschinensprachenfassung eines ersten Programms in eine Maschinensprachenfassung eines durch mindestens eine Aenderung vom ersten Programm abgeleiteten zweiten Programms
US5291583A (en) 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US5263155A (en) * 1991-02-21 1993-11-16 Texas Instruments Incorporated System for selectively registering and blocking requests initiated by optimistic and pessimistic transactions respectively for shared objects based upon associated locks
US5301297A (en) * 1991-07-03 1994-04-05 Ibm Corp. (International Business Machines Corp.) Method and means for managing RAID 5 DASD arrays having RAID DASD arrays as logical devices thereof
US5596746A (en) 1991-10-21 1997-01-21 General Electric Company Method for transforming relational data base schemas into object models using ideal table meta models
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
WO1995003586A1 (en) 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects
WO1995004960A2 (en) 1993-08-02 1995-02-16 Persistence Software, Inc. Method and apparatus for managing relational data in an object cache
US5774731A (en) * 1995-03-22 1998-06-30 Hitachi, Ltd. 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
US5742813A (en) * 1994-11-10 1998-04-21 Cadis, Inc. Method and apparatus for concurrency in an object oriented database using lock inheritance based on class objects
US5835910A (en) * 1994-11-10 1998-11-10 Cadis, Inc. Method and system for comparing attributes in an object-oriented management system
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US5717924A (en) 1995-07-07 1998-02-10 Wall Data Incorporated Method and apparatus for modifying existing relational database schemas to reflect changes made in a corresponding object model
US5812134A (en) 1996-03-28 1998-09-22 Critical Thought, Inc. User interface navigational system & method for interactive representation of information contained within a database
US5857197A (en) 1997-03-20 1999-01-05 Thought Inc. System and method for accessing data stores as objects
US5937409A (en) 1997-07-25 1999-08-10 Oracle Corporation Integrating relational databases in an object oriented environment
US5983020A (en) 1997-10-02 1999-11-09 International Business Machines Corporation Rule-based engine for transformation of class hierarchy of an object-oriented program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342142A (ja) * 2001-05-21 2002-11-29 Toshiba Corp 書き込み制御方法および構造化文書管理装置および構造化文書編集装置およびプログラム
US7152201B2 (en) 2001-05-21 2006-12-19 Kabushiki Kaisha Toshiba Write control method, structured document management apparatus, structured document edit apparatus, and program product
JP2010117869A (ja) * 2008-11-12 2010-05-27 Internatl Business Mach Corp <Ibm> メモリ制御装置、プログラム及び方法
JP4702962B2 (ja) * 2008-11-12 2011-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション メモリ制御装置、プログラム及び方法
JP2017509970A (ja) * 2014-03-26 2017-04-06 インテル・コーポレーション ハイブリッドトランザクショナルメモリシステムにおける並行処理の最大化
US9971627B2 (en) 2014-03-26 2018-05-15 Intel Corporation Enabling maximum concurrency in a hybrid transactional memory system
WO2015162717A1 (ja) * 2014-04-23 2015-10-29 株式会社日立製作所 計算機
US10430287B2 (en) 2014-04-23 2019-10-01 Hitachi, Ltd. Computer

Also Published As

Publication number Publication date
EP1040433A1 (en) 2000-10-04
WO1999033001A1 (en) 1999-07-01
AU1938899A (en) 1999-07-12
DE69802437D1 (de) 2001-12-13
US6240413B1 (en) 2001-05-29
DE69802437T2 (de) 2002-08-08
EP1040433B1 (en) 2001-11-07

Similar Documents

Publication Publication Date Title
JP2001527242A (ja) ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み
US9411635B2 (en) Parallel nested transactions in transactional memory
JP2533266B2 (ja) 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
US7243088B2 (en) Database management system with efficient version control
US8271464B2 (en) Parallel nested transactions in transactional memory
US7962456B2 (en) Parallel nested transactions in transactional memory
JP2559959B2 (ja) 複数の非同期的プロセスによりレコードを更新する方法
US5410697A (en) Concurrency management using version identification of shared data as a supplement to use of locks
US5414840A (en) Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
US5745747A (en) Method and system of lock request management in a data processing system having multiple processes per transaction
Salem et al. Altruistic locking
JPH1131081A (ja) オブジェクトベースシステムにおけるスレッド同期を行う方法およびコンピュータシステム、並びに、そのためのコンピュータプログラム製品
US7689788B2 (en) System and method for executing transactions
EP3824397B1 (en) Version-based table locking
US8095731B2 (en) Mutable object caching
Lomet et al. Locking key ranges with unbundled transaction services
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
US20240265006A1 (en) Method and Apparatus for Controlling Database Transaction, and Related Device
JP3325729B2 (ja) メモリ管理装置
JP3475783B2 (ja) データベース定義情報のプロセス間共有制御方式
CN117348977A (zh) 一种数据库中事务并发控制的方法、装置、设备及介质
JPH05216728A (ja) データベース管理システム