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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/289—Object oriented databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4493—Object persistence
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
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)。
ついての参照となり且つ本特許出願の内容の一部をなすものとする。 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組のデータを読んで変更する間)でデー
タベースの該当部分が、他のクライアントによって変更されないままであること
が必要となる。この問題を避けるために、データベースシステムへの同時アクセ
スを統制するために、並行処理制御がデータベースシステムによって用いられる
。その制御は、複数ユーザ環境において、各トランザクションの正常動作を確実
にする。
、データベースからデータを読んでデータベースからデータを書くためにデータ
ベースシステムに同時にアクセスすることを要求することがよく発生する。しか
し、各クライアントは他のクライアントの妨害とは関係なくデータベースにアク
セスすることが必要である。即ち、クライアントのデータベースへのトランザク
ションの過程(そのデータベースから1組のデータを読んで変更する間)でデー
タベースの該当部分が、他のクライアントによって変更されないままであること
が必要となる。この問題を避けるために、データベースシステムへの同時アクセ
スを統制するために、並行処理制御がデータベースシステムによって用いられる
。その制御は、複数ユーザ環境において、各トランザクションの正常動作を確実
にする。
【0005】 並行処理制御の1つのタイプは、「楽観的並行処理制御」である。楽観的並行
処理制御は、トランザクション間の衝突のためのチェックポイントがトランザク
ションの最後にあることを意味する。楽観的並行処理制御によれば、同一のデー
タを変更しようとする他のトランザクションよりも前に、トランザクションが終
了するであろうと仮定される。そのトランザクションは必要なデータを読み、そ
のデータを内部的に更新し、そして、最後にデータベースに更新値を書き込む。
クライアントがデータベースに対しデータ変更を記憶させようとするときに、シ
ステムは、そのクライアントのトランザクションが最初にデータを読んだ時から
ずっと、他のトランザクションによってそのデータが変更されたか否かをチェッ
クする。データに対する変更がなかった場合には、クライアントによるトランザ
クションは完了される。もし、データが変更された場合には、システムはそのク
ライアントによる更新をロールバックし、必要であれば、そのトランザクション
が再び試みることができるようにクライアントに通知する。「ロールバック」と
は、トランザクションが中止され、全てのデータをトランザクションが開始する
前の元の状態に戻すことをいう。楽観的並行処理制御は、最初にデータを保護す
るために生じる遅延を回避することにより、重要な性能の改良をもたらす一方で
、他の処理が同じデータを変更する場合には、システムはトランザクションをロ
ールバックしなければならない。
処理制御は、トランザクション間の衝突のためのチェックポイントがトランザク
ションの最後にあることを意味する。楽観的並行処理制御によれば、同一のデー
タを変更しようとする他のトランザクションよりも前に、トランザクションが終
了するであろうと仮定される。そのトランザクションは必要なデータを読み、そ
のデータを内部的に更新し、そして、最後にデータベースに更新値を書き込む。
クライアントがデータベースに対しデータ変更を記憶させようとするときに、シ
ステムは、そのクライアントのトランザクションが最初にデータを読んだ時から
ずっと、他のトランザクションによってそのデータが変更されたか否かをチェッ
クする。データに対する変更がなかった場合には、クライアントによるトランザ
クションは完了される。もし、データが変更された場合には、システムはそのク
ライアントによる更新をロールバックし、必要であれば、そのトランザクション
が再び試みることができるようにクライアントに通知する。「ロールバック」と
は、トランザクションが中止され、全てのデータをトランザクションが開始する
前の元の状態に戻すことをいう。楽観的並行処理制御は、最初にデータを保護す
るために生じる遅延を回避することにより、重要な性能の改良をもたらす一方で
、他の処理が同じデータを変更する場合には、システムはトランザクションをロ
ールバックしなければならない。
【0006】 オブジェクト指向システム及びプログラム言語に関していえば、このようなシ
ステムは、データを記憶するデータメンバーとデータを実行する関数メンバー(
メソッド)とを含む「クラス」を用いる。クラスは、クラスの例である「オブジ
ェクト」の生成のためのテンプレートを構成する。クラスは、同じクラスのオブ
ジェクトを操作する手順であるメソッドを定義することもある。オブジェクト指
向プログラム言語の具体例は、ケン・アーノルド、ジェイムス・ゴスリング、ア
ディソン−ウェスレー、1996年著、「Javaプログラム言語」に記載のJ
avaTMプログラム言語である。この本は、本願明細書の参照となり且つ本特
許出願の内容の一部をなすものとする。更に詳細なJava言語に関する記載が
、ジェイムス・ゴスリング、ビル・ジョイ、アディソン−ウェスリー著、199
6年、「Java言語の詳細」にある。この本も、本願明細書の参照となり且つ
本特許出願の内容の一部をなすものとする。
ステムは、データを記憶するデータメンバーとデータを実行する関数メンバー(
メソッド)とを含む「クラス」を用いる。クラスは、クラスの例である「オブジ
ェクト」の生成のためのテンプレートを構成する。クラスは、同じクラスのオブ
ジェクトを操作する手順であるメソッドを定義することもある。オブジェクト指
向プログラム言語の具体例は、ケン・アーノルド、ジェイムス・ゴスリング、ア
ディソン−ウェスレー、1996年著、「Javaプログラム言語」に記載のJ
avaTMプログラム言語である。この本は、本願明細書の参照となり且つ本特
許出願の内容の一部をなすものとする。更に詳細なJava言語に関する記載が
、ジェイムス・ゴスリング、ビル・ジョイ、アディソン−ウェスリー著、199
6年、「Java言語の詳細」にある。この本も、本願明細書の参照となり且つ
本特許出願の内容の一部をなすものとする。
【0007】 幾つかのシステムは、オブジェクト指向システム内のデータベースにアクセス
するときに、楽観的並行処理制御を実行するためにロックグループを用いる。楽
観的並行処理制御に関しては、その名前に関わらず、ロックグループはデータの
ブロックをロックすることを意味するわけではない。その代わり、ロックグルー
プは、衝突保護機構を提供する。特に、ロックグループは、1又は複数のフィー
ルドはクライアントによるトランザクション中にそのクライントのみによって変
更されることを条件として指定する。ロックグループはこのようにデータベース
のデータを管理するために有用である。例えば、利用者オブジェクトは、利用者
名とアドレスのフィールドを含み、例えば、他のクライアントが対応するアドレ
スフィールドのデータを変更するときには、1つのクライアントが名前フィール
ドのデータを変更しないように、ロックグループはその名前及びアドレスのフィ
ールドを指定する。言い換えれば、例えば、不正確なアドレスが特定の名前のた
めに入力されることを回避するために、名前及びアドレスのフィールドは、トラ
ンザクション中に1つのクライアントによってのみ変更されるようにする。
するときに、楽観的並行処理制御を実行するためにロックグループを用いる。楽
観的並行処理制御に関しては、その名前に関わらず、ロックグループはデータの
ブロックをロックすることを意味するわけではない。その代わり、ロックグルー
プは、衝突保護機構を提供する。特に、ロックグループは、1又は複数のフィー
ルドはクライアントによるトランザクション中にそのクライントのみによって変
更されることを条件として指定する。ロックグループはこのようにデータベース
のデータを管理するために有用である。例えば、利用者オブジェクトは、利用者
名とアドレスのフィールドを含み、例えば、他のクライアントが対応するアドレ
スフィールドのデータを変更するときには、1つのクライアントが名前フィール
ドのデータを変更しないように、ロックグループはその名前及びアドレスのフィ
ールドを指定する。言い換えれば、例えば、不正確なアドレスが特定の名前のた
めに入力されることを回避するために、名前及びアドレスのフィールドは、トラ
ンザクション中に1つのクライアントによってのみ変更されるようにする。
【0008】 ロックグループは、クライアントがトランザクションをコミットするときに、
衝突を判定するために用いられる。クライアントが特定のオブジェクトのデータ
を変更するトランザクションを実行し、その変更を保存するためのトランザクシ
ョンをコミットしようとすると、システムは、何れかのロックグループが、変更
されたフィールドの何れかを含むか否かを決定し、含むときには、何れかの他の
アプリケーションが、それらのロックグループの何れかのフィールドを変更する
か否かを決定する。そのシステムは、他のクライアントがこのような変更をする
ときには、トランザクションのコミットもデータベースの変更も行わない。
衝突を判定するために用いられる。クライアントが特定のオブジェクトのデータ
を変更するトランザクションを実行し、その変更を保存するためのトランザクシ
ョンをコミットしようとすると、システムは、何れかのロックグループが、変更
されたフィールドの何れかを含むか否かを決定し、含むときには、何れかの他の
アプリケーションが、それらのロックグループの何れかのフィールドを変更する
か否かを決定する。そのシステムは、他のクライアントがこのような変更をする
ときには、トランザクションのコミットもデータベースの変更も行わない。
【0009】 一般的なロックグループは、オブジェクトの全てのフィールドを含む。しかし
、オブジェクトは多くのフィールドを含むことがあり、クライアントはオブジェ
クトにおける少数のフィールドを変更するだけであろう。他のクライアントがト
ランザクション中にオブジェクトのデータを変更することを効率的に防止するこ
とができるように、トランザクション中には、1つクライアントしかオブジェク
ト全体のフィールドを変更することができないようになっているので、多くの衝
突は、ロックグループが多数のフィールドを含むときに発生する。
、オブジェクトは多くのフィールドを含むことがあり、クライアントはオブジェ
クトにおける少数のフィールドを変更するだけであろう。他のクライアントがト
ランザクション中にオブジェクトのデータを変更することを効率的に防止するこ
とができるように、トランザクション中には、1つクライアントしかオブジェク
ト全体のフィールドを変更することができないようになっているので、多くの衝
突は、ロックグループが多数のフィールドを含むときに発生する。
【0010】 データベースにアクセスするときに、楽観的並行処理制御を用いる一般的なオ
ブジェクト指向システムは、クライアントがオブジェクトのフィールドを変更す
ることを許可するときには、他のトランザクションが同じオブジェクトの他のフ
ィールドを同時に変更することを禁止する。一般的なシステムでは、1つのトラ
ンザクションがオブジェクトのフィールドを変更するときには、他のトランザク
ションは同じオブジェクトの他のフィールドを変更することができない。従って
、一般的なシステムは、フィールドが1つ以上のロックグループに同時に属する
ことを許容しない。加えて、一般的なロックグループは異なるクラスのフィール
ドを含まない。これらの制限により、異なるアプリケーションが同じオブジェク
トの異なるフィールドに同時にアクセスすることができない。従って、斯かるシ
ステムを改良することが要望される。
ブジェクト指向システムは、クライアントがオブジェクトのフィールドを変更す
ることを許可するときには、他のトランザクションが同じオブジェクトの他のフ
ィールドを同時に変更することを禁止する。一般的なシステムでは、1つのトラ
ンザクションがオブジェクトのフィールドを変更するときには、他のトランザク
ションは同じオブジェクトの他のフィールドを変更することができない。従って
、一般的なシステムは、フィールドが1つ以上のロックグループに同時に属する
ことを許容しない。加えて、一般的なロックグループは異なるクラスのフィール
ドを含まない。これらの制限により、異なるアプリケーションが同じオブジェク
トの異なるフィールドに同時にアクセスすることができない。従って、斯かるシ
ステムを改良することが要望される。
【0011】 (発明の概略) 本発明に係る方法及びシステムは、ロックグループが異なるクラスのフィール
ドを含むことを許容し、1つのフィールドが一つ以上のロックグループに属する
ことを許容する方法を提供することにより、前記要望及び他の要望を満足するも
のである。
ドを含むことを許容し、1つのフィールドが一つ以上のロックグループに属する
ことを許容する方法を提供することにより、前記要望及び他の要望を満足するも
のである。
【0012】 本発明に係る方法によれば、ロックグループとフィールドを有するクラスとを
備えるデータ処理システムにおける方法が提供される。この方法は、ロックグル
ープが第1のクラスに属する第1のフィールドと第2のクラスに属する第2のフ
ィールドとを含むことを指定する指示を受取り、指定されたロックグループを生
成する。更に、そのロックグループに属する1つフィールドの値に影響するトラ
ンザクションをコミットする要求を受取り、ロックグループのフィールドのうち
少なくとも1つがそのトランザクション中に変更されたか否かに基づいて、その
トランザクションをコミットするか否かを決定する。
備えるデータ処理システムにおける方法が提供される。この方法は、ロックグル
ープが第1のクラスに属する第1のフィールドと第2のクラスに属する第2のフ
ィールドとを含むことを指定する指示を受取り、指定されたロックグループを生
成する。更に、そのロックグループに属する1つフィールドの値に影響するトラ
ンザクションをコミットする要求を受取り、ロックグループのフィールドのうち
少なくとも1つがそのトランザクション中に変更されたか否かに基づいて、その
トランザクションをコミットするか否かを決定する。
【0013】 本発明に係る方法及びシステムは、オブジェクトの個々のフィールドが別々の
クライアントによってアクセスされたときには、1つのオブジェクトに対する同
時アクセスを許容する。そして、これにより、オブジェクトがアクセス可能にな
るのを待つことによる遅延を低減させ、1つのオブジェクトに同時にアクセスす
るトランザクションをロールバックすることによる遅延を低減する。これらの遅
延の低減によりシステムのデータ処理全体の効率を向上させることができる。
クライアントによってアクセスされたときには、1つのオブジェクトに対する同
時アクセスを許容する。そして、これにより、オブジェクトがアクセス可能にな
るのを待つことによる遅延を低減させ、1つのオブジェクトに同時にアクセスす
るトランザクションをロールバックすることによる遅延を低減する。これらの遅
延の低減によりシステムのデータ処理全体の効率を向上させることができる。
【0014】 本発明についての前記特徴、他の特徴及び効果は、添付の図面を伴って後述さ
れる好適な実施の形態の詳細な説明によって、容易に当業者に理解されるであろ
う。
れる好適な実施の形態の詳細な説明によって、容易に当業者に理解されるであろ
う。
【0015】 (詳細な説明) 添付図面は、この明細書に取り込まれ、この明細書の一部を成し、本発明の実
施を図示し、詳細な説明と協働して、本発明の利点と原理を説明するために提示
される。
施を図示し、詳細な説明と協働して、本発明の利点と原理を説明するために提示
される。
【0016】 (序文) 本発明に係る方法及びシステムは、楽観的並行処理制御を使用し、複数のクラ
イアントが異なるロックグループに属するフィールドを変更する際には、複数の
クライアントが同時に同一のオブジェクトを変更することを許容する。更に、そ
れらは、楽観的並行処理制御のロックグループが異なるクラスのフィールドを含
むことを許容する。加えて、1つのフィールドが1つ以上のロックグループに属
することを許容する。これらのシステムは、データベースへ同時アクセスをして
も、きめの細かい整合性を担保する。きめの細かい整合性とは、オブジェクト全
体をロックすることなくオブジェクトの個々のフィールドがロックされ、その結
果、他のトランザクションが、同時にそのオブジェクトの他のフィールドにアク
セスすることができることをいう。本発明に係る方法及びシステムは、オブジェ
クトへの同時アクセスの増大を可能にする。そして、アクセスが制限されないよ
うにオブジェクトのフィールドの待機遅延時間を減少することができ、また、ト
ランザクションのロールバックを低減を図ることができる。
イアントが異なるロックグループに属するフィールドを変更する際には、複数の
クライアントが同時に同一のオブジェクトを変更することを許容する。更に、そ
れらは、楽観的並行処理制御のロックグループが異なるクラスのフィールドを含
むことを許容する。加えて、1つのフィールドが1つ以上のロックグループに属
することを許容する。これらのシステムは、データベースへ同時アクセスをして
も、きめの細かい整合性を担保する。きめの細かい整合性とは、オブジェクト全
体をロックすることなくオブジェクトの個々のフィールドがロックされ、その結
果、他のトランザクションが、同時にそのオブジェクトの他のフィールドにアク
セスすることができることをいう。本発明に係る方法及びシステムは、オブジェ
クトへの同時アクセスの増大を可能にする。そして、アクセスが制限されないよ
うにオブジェクトのフィールドの待機遅延時間を減少することができ、また、ト
ランザクションのロールバックを低減を図ることができる。
【0017】 一般に、ロックグループは、オブジェクト内の関連するデータ項目を指定する
ために使用される。ユーザがオブジェクト内の変更する際に、ユーザはオブジェ
クト全体に影響を与えることはない。そのデータがロックグループの一部でもあ
るときには、トランザクションは、そのロックグループによって示されたその組
のフィールドに影響を与えるだけである。データがそのロックグループ以外もの
である限り、他の処理は、アクセス可能であり同じオブジェクト内のデータを更
新することができる。例えば、他の処理は、そのトランザクションによる変更に
衝突することなく、そのオブジェクトのフィールドを変更することができる。
ために使用される。ユーザがオブジェクト内の変更する際に、ユーザはオブジェ
クト全体に影響を与えることはない。そのデータがロックグループの一部でもあ
るときには、トランザクションは、そのロックグループによって示されたその組
のフィールドに影響を与えるだけである。データがそのロックグループ以外もの
である限り、他の処理は、アクセス可能であり同じオブジェクト内のデータを更
新することができる。例えば、他の処理は、そのトランザクションによる変更に
衝突することなく、そのオブジェクトのフィールドを変更することができる。
【0018】 データ変更をコミットしようとするときには、システムは、データベースの現
在(コミット時刻)のデータに比較してそのデータの元の変更前のコピーをチェ
ックする。データが同じであると、トランザクションをその変更をデータベース
にコミットする。しかし、相違を検出したときは、このオブジェクトのロックグ
ループを走査し、衝突をチェックする。即ち、ロックグループに属するフィール
ドに変更をコミットしようとしているか、そして、そのデータを読んでその変更
をコミットしようとしてからの時間に、他のクライアントがそのロックグループ
に属する同じフィールド又は他のフィールドのどちらかを変更したか否かをチェ
ックして判定する。そうであれば、これは衝突する状況であり、その処理はその
変更をコミットしない。オブジェクトに関するロックグループは複数あるかもし
れず、これらのロックグループが部分的に重複するかもしれないことに注意する
必要がある。
在(コミット時刻)のデータに比較してそのデータの元の変更前のコピーをチェ
ックする。データが同じであると、トランザクションをその変更をデータベース
にコミットする。しかし、相違を検出したときは、このオブジェクトのロックグ
ループを走査し、衝突をチェックする。即ち、ロックグループに属するフィール
ドに変更をコミットしようとしているか、そして、そのデータを読んでその変更
をコミットしようとしてからの時間に、他のクライアントがそのロックグループ
に属する同じフィールド又は他のフィールドのどちらかを変更したか否かをチェ
ックして判定する。そうであれば、これは衝突する状況であり、その処理はその
変更をコミットしない。オブジェクトに関するロックグループは複数あるかもし
れず、これらのロックグループが部分的に重複するかもしれないことに注意する
必要がある。
【0019】 実施の形態の一例では、本発明に係るシステムを用いるクライアントは、相互
依存するフィールドのグループとして、ロックグループを設ける。ロックグルー
プは、フィールドが如何なる個数のクラスに属しても、単独のフィールドであっ
ても、組み合わせたフィールドであっても、対応する。ユーザは、ロックグルー
プとしてまとめて扱われるべきこれらのフィールドを指定することができ、各値
が互いに依存するこれらのフィールドは、大抵グループにまとめられる。アプリ
ケーションがフィールドを変更するときには、指定されたフィールドを含むロッ
クグループに属するフィールドを他のアプリケーションが変更又は更新する場合
には、逆に、そのトランザクションが影響を受けることがある。
依存するフィールドのグループとして、ロックグループを設ける。ロックグルー
プは、フィールドが如何なる個数のクラスに属しても、単独のフィールドであっ
ても、組み合わせたフィールドであっても、対応する。ユーザは、ロックグルー
プとしてまとめて扱われるべきこれらのフィールドを指定することができ、各値
が互いに依存するこれらのフィールドは、大抵グループにまとめられる。アプリ
ケーションがフィールドを変更するときには、指定されたフィールドを含むロッ
クグループに属するフィールドを他のアプリケーションが変更又は更新する場合
には、逆に、そのトランザクションが影響を受けることがある。
【0020】 本発明の実施の形態の一例では、システムは、リレーショナルデータベース情
報をオブジェクトに対応付け、そして、反対の対応付けも行うオブジェクト関係
マッピングツールにおいて作動し、トランザクションがコミットされるときには
、下記の技術が実行される。このようなマッピングツールは、本願と共に出願中
の米国特許出願No. 、発明の名称「ロックグループの指定のためのユ ーザインターフェイス」に、更に詳細に記載されている。この出願は、既に、本
願明細書の参照となり且つ本特許出願の内容の一部をなすものとされている。
報をオブジェクトに対応付け、そして、反対の対応付けも行うオブジェクト関係
マッピングツールにおいて作動し、トランザクションがコミットされるときには
、下記の技術が実行される。このようなマッピングツールは、本願と共に出願中
の米国特許出願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に属するかもれない。
ステム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は、オペレーティングシステムのような
他のプログラムで動作してもよく、オブジェクト指向又は非オブジェクト指向プ
ログラム作成環境において動作するようにしてもよいことは、当業者に理解され
るであろう。
、例えば、ハードディスク、フロッピーディスク、CD−ROM又はネットワー
クからの搬送波のような2次記憶装置のように、メモリー以外の他のコンピュー
タ可読媒体に記憶し、それから読み出すようにしてもよいことは、当業者に理解
されるであろう。ハッシュテーブル122は、VM120で動作するように記載
されているが、ハッシュテーブル122は、オペレーティングシステムのような
他のプログラムで動作してもよく、オブジェクト指向又は非オブジェクト指向プ
ログラム作成環境において動作するようにしてもよいことは、当業者に理解され
るであろう。
【0024】 更に、データ処理システム100は、追加の又は他の構成要素を含んでも良い
ことは、当業者に理解されるであろう。
ことは、当業者に理解されるであろう。
【0025】 (方法) 図2は、本発明に係るロックグループを用いたトランザクションを実行すると
きに、トランザクションマネージャによって実行される処理ステップを示すフロ
ーチャートを示す。トランザクションマネージャ128は、クライアント126
からトランザクション要求を受取る。トランザクションマネージャ128は、ト
ランザクション中には、メモリー(例えば、キャッシュ)に列の局所コピーを記
憶し、周知のキャッシュ技術を用いて、列のこれらのコピーに処理を実行する。
トランザクションマネージャ128がデータベース124の列のコピーを更新す
るのは、コミットの時だけである。一般に、トランザクションがコミットする時
に、ロックグループの列が更新される予定である場合には、トランザクションマ
ネージャ128は、そのロックグループの全ての列がトランザクション中にデー
タベース124において変更されないままであるか否かをチェックする。もし、
そうである場合には、トランザクションマネージャ128はそのトランザクショ
ンをコミットする。さもなければ、トランザクションマネージャ128はそのト
ランザクションをロールバックする。
きに、トランザクションマネージャによって実行される処理ステップを示すフロ
ーチャートを示す。トランザクションマネージャ128は、クライアント126
からトランザクション要求を受取る。トランザクションマネージャ128は、ト
ランザクション中には、メモリー(例えば、キャッシュ)に列の局所コピーを記
憶し、周知のキャッシュ技術を用いて、列のこれらのコピーに処理を実行する。
トランザクションマネージャ128がデータベース124の列のコピーを更新す
るのは、コミットの時だけである。一般に、トランザクションがコミットする時
に、ロックグループの列が更新される予定である場合には、トランザクションマ
ネージャ128は、そのロックグループの全ての列がトランザクション中にデー
タベース124において変更されないままであるか否かをチェックする。もし、
そうである場合には、トランザクションマネージャ128はそのトランザクショ
ンをコミットする。さもなければ、トランザクションマネージャ128はそのト
ランザクションをロールバックする。
【0026】 その変更をデータベース124にコミットする時には、トランザクションマネ
ージャ128によって実行される第1のステップは、トランザクションによって
キャッシュ130内で、どの列が更新されたか否かを判定する(処理200)。
これを完了するために、そのトランザクションの始めに、トランザクションマネ
ージャ128は、処理すべきトランザクションに係る列の初期値をキャッシュに
保存し、そして、これらの値をキャッシュ130にある列の現在値と比較する。
ここで、列の値が同じではないということは、キャッシュ内で更新されたことを
意味する。
ージャ128によって実行される第1のステップは、トランザクションによって
キャッシュ130内で、どの列が更新されたか否かを判定する(処理200)。
これを完了するために、そのトランザクションの始めに、トランザクションマネ
ージャ128は、処理すべきトランザクションに係る列の初期値をキャッシュに
保存し、そして、これらの値をキャッシュ130にある列の現在値と比較する。
ここで、列の値が同じではないということは、キャッシュ内で更新されたことを
意味する。
【0027】 次に、トランザクションマネージャ128は、ロックグループ202を選択し
(処理202)、トランザクション中にロックグループの列がキャッシュ130
内で更新されたか否かを判定する(処理204)。ロックグループの列が変更さ
れた場合には、そのロックグループの全ての列が、ハッシュテーブル122に加
えられる(処理206)。そして、処理すべきロックグループがまだある場合に
は(処理208)、動作は処理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)。
る列を配置され、トランザクションマネージャ128はハッシュテーブルから列
を選択する(処理210)。トランザクションマネージャ128は、トランザク
ション処理中にデータベース124内でこの列のデータベース値が変更されたか
否かを判定する(処理212)。この判定をするために、トランザクションマネ
ージャ128は、トランザクションの始めのその列のデータベース値を、トラン
ザクションの最後(コミット時)のその列のデータベース値と比較する。その列
のデータベース値がトランザクション中にデータベース124において変更され
た場合には、トランザクションマネージャ128は、それをアボートすることに
よりトランザクションをロールバックする(処理214)。しかし、その値が変
更されていなければ、他の列が選択される(処理216)。ハッシュテーブル1
22の列のデータベース値がトランザクション中にデータベース内で変更されな
かった場合には、トランザクションマネージャ128は、トランザクションをコ
ミットし、そして、キャッシュ130の列の値に基づいてデータベースの列を更
新する(処理218)。
【0029】 (例) 例えば、顧客テーブルが、「名」、「氏」、「通り」、「都市」、「郵便番号
」、「電話番号」及び「販売担当者」の各列からなるとする。ほとんどの場合、
「氏」と「販売担当者」の値の変化は相互に独立して生じるので(但し、顧客が
単に氏に基づいて販売担当者に割り当てられるときには、「氏」と「販売担当者
」の列は相互に依存する。)、1つのロックグループが「氏」と「販売担当者」
の列を両方含まないように決定される。
」、「電話番号」及び「販売担当者」の各列からなるとする。ほとんどの場合、
「氏」と「販売担当者」の値の変化は相互に独立して生じるので(但し、顧客が
単に氏に基づいて販売担当者に割り当てられるときには、「氏」と「販売担当者
」の列は相互に依存する。)、1つのロックグループが「氏」と「販売担当者」
の列を両方含まないように決定される。
【0030】 しかし、住所を構成する要素である、「通り」、「都市」、「郵便番号」、「
市外局番」及び「電話番号」は、相互に関連するので、1つのロックグループに
一緒に配置される。この情報を同一のグループに配置すると、2つのクライアン
トが、同時に同一の顧客の住所情報を更新しようとするときに、他のクライアン
トが顧客の「市外局番」を更新するときに、1のクライアントが「電話番号」を
更新しないようにすることを担保する。しかし、並行アクセスを改良したので、
2つの処理がアクセスするデータが同一のロックグループに属さない場合には、
それらの処理は同時に同一の顧客テーブルを更新することができる。また、同一
の列が、複数のロックグループに属することを許容するので、上記の例のように
、「市外局番」は、〔電話〕のロックグループと〔住所〕のロックグループに属
することができる。
市外局番」及び「電話番号」は、相互に関連するので、1つのロックグループに
一緒に配置される。この情報を同一のグループに配置すると、2つのクライアン
トが、同時に同一の顧客の住所情報を更新しようとするときに、他のクライアン
トが顧客の「市外局番」を更新するときに、1のクライアントが「電話番号」を
更新しないようにすることを担保する。しかし、並行アクセスを改良したので、
2つの処理がアクセスするデータが同一のロックグループに属さない場合には、
それらの処理は同時に同一の顧客テーブルを更新することができる。また、同一
の列が、複数のロックグループに属することを許容するので、上記の例のように
、「市外局番」は、〔電話〕のロックグループと〔住所〕のロックグループに属
することができる。
【0031】 図3は、複数のトランザクションが、本発明に係る方法及びシステムに従う楽
観的並行処理制御のロックグループを用いて、同一のテーブルにアクセスする過
程を例示する。この例では、顧客名簿は、6種のデータメンバーが、3つのロッ
クグループ(〔電話〕、〔住所〕、〔顧客氏名〕)に分けられる。例えば、4つ
のトランザクション(T1乃至T4)が、同じ顧客テーブルにある異なる属性に
同時にアクセスするものとする。トランザクションT2が「氏」にアクセスする
一方で、トランザクションT1は2つの属性「都市」と「通り」にアクセスする
。それらは、処理を完了することができる。なぜなら、T1は、他のトランザク
ションによって変更がコミットされる以前にコミットし、そして、T1によって
変更される列は、T2によって変更される列を含むロックグループに属していな
い。
観的並行処理制御のロックグループを用いて、同一のテーブルにアクセスする過
程を例示する。この例では、顧客名簿は、6種のデータメンバーが、3つのロッ
クグループ(〔電話〕、〔住所〕、〔顧客氏名〕)に分けられる。例えば、4つ
のトランザクション(T1乃至T4)が、同じ顧客テーブルにある異なる属性に
同時にアクセスするものとする。トランザクションT2が「氏」にアクセスする
一方で、トランザクションT1は2つの属性「都市」と「通り」にアクセスする
。それらは、処理を完了することができる。なぜなら、T1は、他のトランザク
ションによって変更がコミットされる以前にコミットし、そして、T1によって
変更される列は、T2によって変更される列を含むロックグループに属していな
い。
【0032】 しかし、システムは、T3には「市外局番」の変更を完了をさせないようにす
る。なぜなら、T3が「市外局番」を読み出した後であるが、それの変更を完了
する前に、〔住所〕のロックグループの他の属性が変化したからである。これら
の変更は、T1によってデータベース124にコミットされた。
る。なぜなら、T3が「市外局番」を読み出した後であるが、それの変更を完了
する前に、〔住所〕のロックグループの他の属性が変化したからである。これら
の変更は、T1によってデータベース124にコミットされた。
【0033】 しかしながら、衝突する変更はないので、システムは、T4がコミットするこ
とを許可することに注意する必要がある。「市外局番」は〔住所〕と〔電話〕の
ロックグループに属し、T1は既に〔住所〕に属する他の属性を変更したので、
もしも、T4が「市外局番」を変更しようとすると、衝突が発生するであろう。
とを許可することに注意する必要がある。「市外局番」は〔住所〕と〔電話〕の
ロックグループに属し、T1は既に〔住所〕に属する他の属性を変更したので、
もしも、T4が「市外局番」を変更しようとすると、衝突が発生するであろう。
【0034】 〔電話〕のロックグループには、属性「市外局番」と属性「電話番号」が属す
るが、〔電話〕のロックグループに属する属性の変更によって、トランザクショ
ンT3とトランザクションT4は、干渉する可能性がある。T3が「市外局番」
を変更しようとして失敗したことにより、T4がそれらを読み取った時点から、
〔電話〕のロックグループに属する属性のデータベース値は変更されないままで
あるので、T4は変更を電話番号にコミットすることができる。しかしながら、
もしもT3が成功すると、T4は失敗する。
るが、〔電話〕のロックグループに属する属性の変更によって、トランザクショ
ンT3とトランザクションT4は、干渉する可能性がある。T3が「市外局番」
を変更しようとして失敗したことにより、T4がそれらを読み取った時点から、
〔電話〕のロックグループに属する属性のデータベース値は変更されないままで
あるので、T4は変更を電話番号にコミットすることができる。しかしながら、
もしもT3が成功すると、T4は失敗する。
【0035】 上述の発明実施形態の説明は、図解や説明のために提示されたものであり、他
の実施形態を排除するものではなく、本発明を、上に開示された形態と同一のも
のに限定するものでもない。前記の教示に鑑みて変更や変形が可能であり、発明
の実施によっても変更や変形が可能である。発明の範囲は、請求の範囲及びその
均等物によって決定される。
の実施形態を排除するものではなく、本発明を、上に開示された形態と同一のも
のに限定するものでもない。前記の教示に鑑みて変更や変形が可能であり、発明
の実施によっても変更や変形が可能である。発明の範囲は、請求の範囲及びその
均等物によって決定される。
【0036】 (結論) 本発明に従う方法及びシステムによれば、1つのロックグループが異なるテー
ブルの個々の列を含むことを許容し、テーブルの1つの列が1つ以上のロックグ
ループに属することを許容し、ロックグループの個々の列が部分的に重複しない
場合には、複数のトランザクションが、データベースの1つのテーブルへ同時に
アクセスすること許容するようにしている。このようにデータテーブルの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の要素と第2のデータ構造に
属する第2の要素とを含むことを指定するロックグループについての指示を受取
る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つの
要素の値に影響するトランザクションをコミットする要求を受取る工程と、そし
て、 前記トランザクション中に前記ロックグループに含まれる要素の少なくとも1
つが他のトランザクションによって変更されるか否かに基づいて、データベース
に前記トランザクションをコミットするか否かを決定する工程とを含む。 - 【請求項2】 請求項1の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記ロックグループの要素の少なくとも1つが変更
されたときには、前記トランザクションをアボートする工程を含む。 - 【請求項3】 請求項1の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記ロックグループの要素が変更されなかったとき
には、前記トランザクションをコミットする工程を含む。 - 【請求項4】 請求項1の方法であって、前記データ構造はクラスであり、
前記要素はフィールドであり、前記受取る工程には、更に、 ロックグループが第1のクラスに属する第1のフィールドと第2のクラスに属
する第2のフィールドとを含む工程を指定するロックグループについての指示を
受取る工程を含む。 - 【請求項5】 請求項1の方法であって、前記データ構造はテーブルであっ
て、前記要素は列であり、前記受取る工程には、更に、 第1のテーブルに属する第1の列と第2のテーブルに属する第2の列とを含む
ことを指定するロックグループについての指示を受取る工程を含む。 - 【請求項6】 データベースと要素を有するデータ構造とを備えるデータ処
理システムにおける方法であって、該方法は、 2つのロックグループが第1の要素を共有することを指定する該2つのロック
グループについての指示を受取る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つに
属する第2の要素の値に影響するトランザクションをコミットする要求を受取る
工程と、そして、 前記トランザクション中に前記1つのロックグループに含まれる要素の少なく
とも1つが他のトランザクションによって変更されるか否かに基づいて、前記ト
ランザクションをコミットするか否かを決定する工程とを含む。 - 【請求項7】 請求項6の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記1つのロックグループの要素の少なくとも1つ
が変更されたときには、前記トランザクションをアボートする工程を含む。 - 【請求項8】 請求項6の方法であって、前記決定する工程には、更に、 前記トランザクション中に前記ロックグループの要素が変更されなかったとき
には、前記トランザクションをコミットする工程を含む。 - 【請求項9】 データベースデータ構造とハッシュテーブルとを有するデー
タベースを備えるデータ処理システムにおける方法であって、該方法は、 異なるデータベースデータ構造に属する要素を有するロックグループを生成す
る工程と、 前記ロックグループの要素の少なくとも1つが更新されるようにクライアント
によってトランザクションを開始する工程と、 どの要素が前記トランザクションによって更新されたかを決定するステッ
プと、 どのロックグループが前記更新された要素を含むかを決定するステップと
、 前記決定されたロックグループを前記ハッシュテーブルに加えるステップ
と、 前記加えられた要素が、前記トランザクション中に他のクライアントによ
って前記データベース内で、更新されたか否かを決定するステップと、 により前記トランザクションをコミットする要求を受取る工程と、 前記加えられた要素の少なくとも1つが、前記トランザクション中に前記デー タベース内で、他のクライアントによって更新されたときには、前記トランザク
ションをアボートする工程と、 前記加えられた要素が、前記トランザクション中に前記データベース内で、他
のクライアントによって変更されないままであったときには前記トランザクショ
ンをコミットする工程と を含む。 - 【請求項10】 コンピュータ可読メモリー装置であって、 ロックグループのメンバーであると定義される第1の要素を有する第1のデー
タ構造と、 前記ロックグループのメンバーであると定義される第2の要素を有する第2の
データ構造とを含み、 クライアントによって要求されたトランザクションをコミットするか否かは、
トランザクション中に第1の要素又は第2の要素が他のクライアントによって更
新されたか否かに基いて、決定される。 - 【請求項11】 データベースデータ構造とハッシュテーブルとを有するデ
ータベースを備えるデータ処理システムであって、該データ処理システムは、 異なるデータベースデータ構造に属する要素を有するロックグループを生成す
る手段と、 前記ロックグループの要素の少なくとも1つが更新されるようにクライアント
によってトランザクションを開始する手段と、 どの要素が前記トランザクションによって更新されたかを決定する手段と
、 どのロックグループが前記更新された要素を含むかを決定する手段と、 前記決定されたロックグループを前記ハッシュテーブルに加える手段と、 前記加えられた要素が、前記トランザクション中に前記データベース内で
、他のクライアントによってが更新されたか否かを決定する手段と、 を含み前記トランザクションをコミットする要求を受取る手段と、 前記加えられた要素の少なくとも1つが、前記トランザクション中に前記デー タベース内で、他のクライアントによって更新されたときには、前記トランザク
ションをアボートする手段と、 前記加えられた要素が、前記トランザクション中に前記データベース内で、他
のクライアントによって変更されないままであったときには前記トランザクショ
ンをコミットする手段と を含む。 - 【請求項12】 方法を実行するためのデータ処理システム制御命令を記憶
するコンピュータ可読媒体であり、前記データ処理システムはデータベース及び
要素を有するデータ構造を備え、該方法は、 ロックグループが第1のデータ構造に属する第1の要素と第2のデータ構造と
に属する第2の要素を含むことを指定するロックグループについての指示を受取
る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つの
要素の値に影響するトランザクションをコミットする要求を受取る工程と、そし
て、 前記トランザクション中に前記ロックグループに含まれる要素の少なくとも1
つが変更されるか否かに基づいて、データベースに前記トランザクションをコミ
ットするか否かを決定する工程とを含む。 - 【請求項13】 請求項12のコンピュータ可読媒体であって、前記方法の
前記決定するステップには、更に、前記トランザクション中に前記ロックグルー
プの要素の少なくとも1つが変更されたときには、前記トランザクションをアボ
ートする工程を含む。 - 【請求項14】 請求項12のコンピュータ可読媒体であって、前記方法の
前記決定するステップには、前記トランザクション中に前記ロックグループの要
素が変更されなかったときには、前記トランザクションをコミットする工程を含
む。 - 【請求項15】 方法を実行するためのデータ処理システム制御命令を記憶
するコンピュータ可読媒体であり、前記データ処理システムはデータベースと要
素を有するデータ構造とを備え、該方法は、 2つのロックグループが第1の要素を共有することを指定する該2つのロック
グループについての指示を受取る工程と、 前記の指定されたロックグループを生成する工程と、 データベースに対するトランザクションであって前記ロックグループの1つに
属する第2の要素の値に影響するトランザクションをコミットする要求を受取る
工程と、そして、 前記トランザクション中に前記1つのロックグループに含まれる要素の少なく
とも1つが他のトランザクションによって変更されるか否かに基づいて、前記ト
ランザクションをコミットするか否かを決定する工程とを含む。 - 【請求項16】 請求項15のコンピュータ可読媒体であって、前記方法の
前記決定するステップには、更に、 前記トランザクション中に前記1つのロックグループの少なくとも1つの要素
が変更されたときには、前記トランザクションをアボートする工程を含む。 - 【請求項17】 請求項15の方法であって、前記方法の前記決定するステ
ップには、更に、 前記トランザクション中に前記1つのロックグループの要素が変更されなかっ
たときには、前記トランザクションをコミットする工程を含む。 - 【請求項18】 データ処理システムであって、 前記データ処理システムは、 要素を有するデータ構造を含むデータベースを備える2次記憶装置と、 トランザクションマネージャを記憶するメモリーと、 前記トランザクションマネージャを実行するプロセッサと、 を含み、 前記トランザクションマネージャは、 第1のデータ構造の要素と第2のデータ構造の要素とを含むロックグループの
決定を受取るように構成され、前記ロックグループの第1の要素が変更されると
きにはトランザクションをコミットする要求をクライアントから受取るように構
成され、前記トランザクション中にロックグループの第2の要素が他のクライア
ントによって変更されるときには前記トランザクションをアボートするように構
成される。 - 【請求項19】 データ処理システムであって、 前記データ処理システムは、 要素を有するデータ構造を含むデータベースを備える2次記憶装置と、 トランザクションマネージャを記憶するメモリーと、 前記トランザクションマネージャを実行するように構成されるプロセッサと、
を含み、 前記トランザクションマネージャは、 2つのロックグループが第1の要素を共有するものとする定義づけを受取るよ
うに構成され、前記2つのロックグループのうちの1つに係る第2の要素を変更
するトランザクションをコミットする要求をクライアントから受取るように構成
され、前記トランザクション中に前記第2の要素を含む1つのロックグループの
第3の要素が他のクライアントによって前記データベース内で変更されるときに
は、前記トランザクションをアボートするように構成される。
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)
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)
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)
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 & 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 |
-
1998
- 1998-06-29 US US09/106,119 patent/US6240413B1/en not_active Expired - Lifetime
- 1998-12-21 EP EP98964209A patent/EP1040433B1/en not_active Expired - Lifetime
- 1998-12-21 DE DE69802437T patent/DE69802437T2/de not_active Expired - Fee Related
- 1998-12-21 JP JP2000525837A patent/JP2001527242A/ja active Pending
- 1998-12-21 WO PCT/US1998/027242 patent/WO1999033001A1/en active IP Right Grant
- 1998-12-21 AU AU19388/99A patent/AU1938899A/en not_active Abandoned
Cited By (8)
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) | データベース管理システム |