JP2002501257A - データベースに関する方法 - Google Patents

データベースに関する方法

Info

Publication number
JP2002501257A
JP2002501257A JP2000528931A JP2000528931A JP2002501257A JP 2002501257 A JP2002501257 A JP 2002501257A JP 2000528931 A JP2000528931 A JP 2000528931A JP 2000528931 A JP2000528931 A JP 2000528931A JP 2002501257 A JP2002501257 A JP 2002501257A
Authority
JP
Japan
Prior art keywords
transaction
objects
version
stage
access
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
JP2000528931A
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 JP2002501257A publication Critical patent/JP2002501257A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • 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
    • G06F16/2329Optimistic concurrency control using versioning
    • 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
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • 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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 本発明は、データベース内の多数のオブジェクト(1O、2O、3O)の一貫した読取りをもたらす方法に関する。この方法は、トランザクションを二段階ロッキングによって管理し、第1段階(A)がこのトランザクションによって影響されるオブジェクト(1O、2O、3O)へのアクセスの要求およびをそれへのアクセスを達成し次第のこれらのオブジェクトのロッキングを含み、第2段階(B)がこのトランザクションのコミットおよび第1段階で設定した全てのロックの解放を含む、データベースに使うのに適合する。トランザクションで行う実際の作業は、オブジェクト変更行為および/またはオブジェクト非変更行為として要約してもよい。オブジェクトの内容の変更、または更新は、新内容をそのオブジェクトの新バージョンに書込むことにより行い、このオブジェクトの上記トランザクション前の現在のバージョンは、更なるトランザクションがこのバージョンをもう使わなくなるまで保持される。このトランザクションは、全ての変更行為を第1段階(A)内で行う。本発明によれば、このトランザクションは、第2段階(B)後にオブジェクト(1O、2O、3O)へのアクセスを保持するようにされる。このトランザクションは、第2段階(B)後の第3段階(C)で最大可能数の非変更行為を行うようにもされ、その後このトランザクションはこれらのオブジェクトへのアクセスを閉じる。それで、この発明の方法は、トランザクションに、ロックが解放された後に、換言すれば、第2段階(B)後の第3段階(C)で、非変更行為に関して、データベースの中の影響されるオブジェクト(1O、2O、3O)の一貫したスナップショットを設ける。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、データベースで複数のデータオブジェクトを一貫して読めるように
する方法に関する。 この発明は、二段階ロッキングを使ってトランザクションを管理し、第1段階
がこのトランザクションによって影響されるオブジェクトへのアクセスの要求お
よびアクセスを達成し次第のこれらのオブジェクトのロッキングを含み、第2段
階がこのトランザクションのコミットメントおよび第1段階で設定した全てのロ
ックの解放を含む、データベースに特別に有利に適用できる。
【0002】 (背景技術の説明) トランザクション管理は、データベース管理過程で基本的な技術であり、時々
データベースでトランザクションを他の行為または事象から隔離して、動的また
は変化するデータベースに含まれる情報の一貫したピクチャを提供するために使
う。 伝統的トランザクション過程の場合、実際のトランザクション過程中にトラン
ザクションが使用するこれらのオブジェクトは、トランザクションの進行中に他
のトランザクションがそれらを使用するのを防ぐようにブロックされる。従って
、同じオブジェクトにアクセスしたい他のトランザクションは、待つか、または
中止して後にまたやってみるしかない。 トランザクションで行う実際の作業には、オブジェクトを変える行為および/
またはオブジェクトを変えないままの行為があり、これらの行為または事象を以
後オブジェクト変更事象およびオブジェクト非変更事象と称する。オブジェクト
の内容は、変更した内容をそのオブジェクトの新バージョンに書込むことにより
、または旧バージョンに上書きすることにより変更または更新できる。
【0003】 公知の技術では、変更および非変更両方のトランザクションに関する全ての行
為をトランザクションの“コミットメント”の前に行う。トランザクションの“
コミット/コミットメント”という用語は当業者に良く知られ、簡単に言えば、
そのトランザクションが要求し且つ隔離が必要な行為または事象を実行したとい
うトランザクション情報を意味する。このコミットという用語は、典型的には設
定した全てのロックの解放も含むが、本明細書ではロックの解放を別の行為とし
て記述する。 トランザクション前のオブジェクトの現在または既存のバージョンは、更なる
トランザクションがその現在または既存のバージョンをもう使わなくなるまでこ
の現在の形で保持する。これは、オブジェクトの異なるバージョンをトランザク
ションが問題のバージョンを使う期間に依って異なる存続期間の間保存する必要
があるかも知れないことを意味する。 あるアプリケーションは、特に単なる読取りトランザクションに関して、他の
トランザクションで使用するオブジェクトへのアクセスをブロックしない方法で
、リアルタイムでデータベースにアクセスする必要がある。これに関連して、ト
ランザクションに拘束されず且つ、それどころか、迅速で無ブロッキングの異な
るオブジェクトへのアクセスを可能にするデータベース管理システムを使うこと
が知られている。
【0004】 そのようなシステムの欠点は、このデータベースで行動するユーザが、トラン
ザクションに拘束されるシステムで可能であるような、同じ隔離された方法で手
続することが出来ず、且つこのデータベースの保証付きの一貫したピクチャを提
供出来ないことである。 無ブロッキングトランザクションは、都合良く定めたトランザクションプロト
コルを処理することによって達成できることも知られている。しかし、これらの
トランザクションプロトコルは、容易に処理されず、それらの実施は、複雑で、
やり方の要求が厳しくおよび/または大きなメモリ容量を要する。 それで、迅速且つ簡単に実行出来るが、必ずしもデータベースの一貫したピク
チャ、換言すれば正しい結果を保証できないデータベースを提供するか、または
管理は確実で正しいピクチャを示すが、使用する際に遅いのと重いのの両方であ
るデータベースを提供するかのどちらかが知られている。
【0005】 ロックを使わない、所謂並行トランザクションの楽観的制御に基づくデータベ
ースもこの技術分野で知られている。この制御は、コンフリクトが起らないとい
う仮定で、全てのトランザクションを許可することに基づく。 更に詳しくは、並行トランザクションの楽観的制御とは、トランザクションに
関連してそのトランザクションを“コミット”する前にコンフリクトが起らない
ことを保証するためにチェックを行うことを意味する。もし、コンフリクトが在
ることが分ったら、そのトランザクションを中止する。さもなければ、そのトラ
ンザクションのコミットメントを許可する。所謂二段階ロッキング、または二段
階でのロッキングで二つの異なるロックが有用であることも記述すべきである。 第1ロックは、データオブジェクトに関する単なる読取りトランザクションに
よって設定され、他の読取りトランザクションが上記オブジェクトへアクセスす
るのは許容するが、変更トランザクションに対してこのオブジェクトをロックす
る、所謂共用ロックである。 第2ロックは、データオブジェクトを変更するトランザクションによって設定
され、全ての他のトランザクションに関してこのオブジェクトをロックする、所
謂専用ロックである。 以下の刊行物は、従来知られる技術を開示し、異なる種類の無ブロッキングト
ランザクションを例示する。
【0006】 US−A−4,627,019 この刊行物は、データベースの中の種々のオブジェクトをカバーするインデッ
クスが異なるオブジェクトが見つかる場所を示すデータベースを記載する。オブ
ジェクト変更トランザクションを開始するとき、このトランザクションは、変更
したオブジェクトを記憶する、このベータベースの新しい位置を参照する。これ
らの変更したオブジェクトの新しい位置を示す新しいインデックスを創る。 古いインデックスは、保持され、まだそれぞれのオブジェクトの古い位置を示
す。 先のインデックスの各バージョンは、あるトランザクションがインデックスの
このバージョンを使う限り存続する。 このトランザクション管理は、無ブロッキングトランザクション・プロトコル
をもたらすが、インデックスの幾つかの異なるバージョンが並列に存在すること
があるので、大量のメモリスペースが必要である。このトランザクション管理の
実行も比較的複雑である。
【0007】 EP−A2−0 471 282 この刊行物は、三つの新しい型式のロック、即ち、キャッシュロック、保留ロ
ックおよび失効ロックの導入を記載する。第1トランザクション、読取りトラン
ザクションが異なるオブジェクトにロックを設定するとき、共用ロックの代りに
キャッシュロックを設定する。もし、この第1トランザクションがまだ処理中に
、第2トランザクションがこの同じオブジェクトに専用ロックを要求すると、こ
のキャッシュロックは、保留ロックに変る。 もし、この第2トランザクションが保留ロックでオブジェクトを変えると、こ
のロックは、失効ロックに変えられる。もし、この第2トランザクションがオブ
ジェクトを変えないと、この第2トランザクションをコミットするとき、保留ロ
ックがキャッシュロックに変えられる。 第1トランザクションは、通常全てのロックがキャッシュロックである限り続
く。もし、この第1トランザクションに影響されるオブジェクトの何れかに何れ
かの保留ロックが存在すると、この第1トランザクションは、この保留ロックが
何か他のロックに切り替るまで待つ。 第1トランザクションは、保留ロックがキャッシュロックに変るとき継続でき
る。もし、保留ロックが失効ロックに変ると、これは、オブジェクトが変えられ
、続いて第1トランザクションが中止されたことを意味する。 この方法は、変更トランザクションをブロックしないロックを設定できるよう
にするが、読取りトランザクションを行いながらデータオブジェクト変更トラン
ザクションがオブジェクトを変えたために、始った読取りトランザクションの中
止を必要とする。
【0008】 (発明の概要) 技術的問題 上に説明した技術の以前の観点を考慮するとき、割当てられたロックがオブジ
ェクト変更トランザクションをブロックする期間を大きく縮めるトランザクショ
ン管理を可能にすることに技術的問題があることが分るだろう。 もう一つの技術的問題は、割当てられたロックの設定と非変更トランザクショ
ンに対する上記ロックの解除との間の期間を短縮するものである。 更なる技術的問題は、非変更トランザクションが使用するオブジェクトへの時
間に関する無制限アクセスを、このアクセス時間中に変更トランザクションによ
って影響されるオブジェクトをブロックすることなく、即ち、このトランザクシ
ョンによって設定されたロックを解放した後の無ブロッキングアクセスを提供す
るものである。 トランザクションを変更行為と非変更行為に分け、専用ロックを上記トランザ
クションの変更行為に対して設け、影響されたオブジェクトへの無ブロッキング
、時間無制限アクセスを非変更行為に対して設けることに技術的問題があること
も分るだろう。
【0009】 もう一つの技術的問題は、オブジェクトの各バージョンが、ロックを設定する
ときのように、トランザクションがこのオブジェクトへのアクセスを許可される
とき増加し、およびロックを解放するときのように、トランザクションがオブジ
ェクトのこのバージョンへのアクセスがもう必要ないとき減少するカウンタを割
当てられるということに基づくデータベースで上記の技術的問題を解決するもの
である。 更なる技術的問題は、各トランザクションにこのトランザクションを始めた時
間を示すタイムスタンプを割当て、どの若いトランザクションもオブジェクトの
このバージョンをタイムスタンプしないとき、各トランザクションがそのタイム
スタンプでそれぞれの影響されるオブジェクトのバージョンをスタンプし、およ
びオブジェクトの各バージョンをどのトランザクションも古いトランザクション
として終らないか、または問題のバージョンに割当てられた最若タイムスタンプ
と同等の古さである限り保持すべきであることに基づくデータベースで以前に説
明した技術的問題を解決するものである。
【0010】 解決策 本発明は、その出発点として、トランザクションを二段階でのロッキングによ
って管理するデータベースで複数のオブジェクトを一貫して読取れるようにする
方法を取る。 第1段階がこのトランザクションによって影響されるオブジェクトへのアクセ
スの要求およびをそれへのアクセスを達成した後のこのオブジェクトのロックの
要求含み、第2段階がこのトランザクションのコミットおよびこの第1段階で設
定した全てのロックを解放を含む。 このトランザクションで実際に行う作業は、オブジェクトを変更する行為およ
び/またはオブジェクトを変更しない行為を含むことができ、オブジェクトの内
容の更新または変更は、変更した内容をこのオブジェクトの新バージョンに書込
むことによって行い、このオブジェクトのこのトランザクション前に存在したバ
ージョンは、更なるトランザクションがこの既存、または現在のバージョンをも
う使わなくなるまで保持される。
【0011】 このトランザクションは、全てのデータ変更行為をこの第1段階内で行う。 そのような方法を出発点として、および前述の技術的問題の一つ以上の解決を
もたらすことを目的として、本発明によれば、このトランザクションがこの第2
段階後に上記オブジェクトへのアクセスを保持すること、このトランザクション
がこの第2段階後に最大可能数の非変更行為を行うこと、およびこのトランザク
ションが上記非変更行為を行った後にこのオブジェクトへのアクセスを閉じるこ
とを提案する。 それで、上記ロックの解放後に、このトランザクションは、非変更行為に関し
て、このデータベースの中の影響されるオブジェクトの一貫したスナップショッ
トを保持する。
【0012】 この発明によれば、第2段階後にオブジェクトへのアクセスが、現在のバージ
ョンのそれぞれのオブジェクトにこのトランザクションによって使われていると
してマーキングすることを含み、これらのオブジェクトへのアクセスの閉鎖が上
記マークの削除を含み、それによって上記オブジェクトのこのバージョンを、こ
のトランザクションをコミットしたにも拘らず、少なくともこのトランザクショ
ンを閉じるまで生きたままであることも提案する。 オブジェクトの各バージョンに、ロックを設定するときのように、トランザク
ションが上記バージョンへアクセスを割当てられるとき増加、増大し、およびロ
ックを解放するときのように、トランザクションが上記オブジェクトバージョン
へのアクセスがもう必要ないとき減少、低下するカウンタが割当てられるとき、
本発明は、上記マークがこのマークを除去するとき、即ち、このトランザクショ
ンを閉じるときだけこのカウンタの減少にあることを教示する。 各トランザクションに、このトランザクションを始めた時間を示すタイムスタ
ンプが割当てられ、各トランザクションが影響されるオブジェクトのそれぞれの
バージョンを、若いトランザクションがオブジェクトのこのバージョンをタイム
スタンプしないとき、そのタイムスタンプでスタンプし、およびオブジェクトの
各バージョンが、上記バージョンに割当てられた最若タイムスタンプより古いか
または同等の古さである何れかのトランザクションがまだ終らない限り残ったま
まにされるとき、この発明によれば、上記マークがそれぞれのオブジェクトのこ
のバージョンについてのタイムスタンプを含むこと;およびこのトランザクショ
ンは、上記オブジェクトへのアクセスを閉じるときに終ると考えられることを提
案する。
【0013】 このトランザクションが非変更行為だけを含むとき、この発明によれば、この
ロックが共用ロックを含み、それがこの共用ロックを解除する前に他のトランザ
クションがオブジェクトへアクセスできるようにするが、このオブジェクトを読
取ることしかできないように制限することを提案する。 トランザクションを始める前に開くべき全てのオブジェクトが分っている、所
謂グループ開放を提供する意図で、本発明によれば、これらのオブジェクトをこ
の第1段階で開くことを提案する。 トランザクションを始める前に一つ以上の出発オブジェクトが分っていて、上
記出発オブジェクトの一つ以上が一つ以上の更なるオブジェクトを参照する、所
謂再帰開放を提供する意図で、本発明によれば、この出発オブジェクトをこの第
1段階で開くこと、更なるオブジェクトへの参照をこの第1段階で評価すること
、および更なるオブジェクトの何れかをこの第1段階で開くことを提案する。
【0014】 本発明によれば、更なるオブジェクトの何れかから更に更なるオブジェクトへ
の参照をこの第1段階で評価すること、更に更なるオブジェクトの何れかをこの
第1段階で開くこと等々も提案する。 本発明は、先に開いたオブジェクトから更に先のオブジェクトを参照すること
に由来するオブジェクトの許可レベルの数を予め決めることによって、利用でき
るオブジェクトの数を制限できるようにもする。 トランザクションを始める前に一つ以上の出発オブジェクトが分っていて、上
この発オブジェクトの一つ以上が一つ以上の更なるオブジェクトを参照する、所
謂パス開放を提供する意図で、本発明によれば、この出発オブジェクトをこの第
1段階で開くこと、更なるオブジェクトへの参照をこの第1段階で上記出発オブ
ジェクトの所定のオブジェクトに関して評価すること、および更なるオブジェク
トの何れかをこの第1段階で開くことを提案する。
【0015】 この発明の一実施例によれば、有り得る更なるオブジェクトから更に更なるオ
ブジェクトへの参照をこの第1段階で評価し、および更に更なるオブジェクトの
何れかをこの第1段階で開く等々。 もう一つの実施例によれば、先に開いたオブジェクトから更に先のオブジェク
トを参照することに由来するオブジェクトの許可レベルの数を予め決められるよ
うにすることによって、利用できるオブジェクトの数を制限する。
【0016】 利点 主としてこの発明の方法によって与えられるこれらの利点は、トランザクショ
ンがオブジェクトを他のトランザクションによるアクセスに抗してロックする時
間を短縮し、それと共に事実上無ブロッキングの性質の読取りトランザクション
を単純、迅速、比較的メモリが少なく、計算に有利な状態で可能にする方法にあ
る。 この方法は、トランザクションをコミットした後にトランザクションによって
影響されたオブジェクトの残留する一貫したスナップショットをもたらし、それ
と共に、このトランザクションを時間に関して制限することなく且つ他のトラン
ザクションをブロックすることなく、このトランザクションが非変更行為用のオ
ブジェクトの一貫したピクチャを使用できるようにする。 他のトランザクションが一つ以上のオブジェクトをロックする時限を、即ち純
粋に読取りトランザクションでないトランザクションでも、異なった程度に短縮
でき、それはロックされたオブジェクトに対する待機時間がかなり短縮されるの
で、データベースが全てのトランザクションに対して異なった程度の速度を有す
ることを意味する。
【0017】 本発明は、異なるオブジェクトバージョンのコピーがメモリ容量、時間および
/または実行に関して高価な作業であると考えられる場合に、データベースに特
別に有利な方法も提供する。この発明の一実施例によれば、主として読取りトラ
ンザクションに対してコピーを避け、使用したロックの時間に関する早い解放を
可能にする。 本発明は、多数のオブジェクトの一貫したスナップショットに対する要求が見
られるが、このピクチャは、必ずしも最新のトランザクションに従って完全に更
新する必要がないベータベースに関しても特別に有利である。 この発明は、リアルタイム用途に関連して高度の要求が見られるRAMデータ
ベース内の実施に関しても特別に有利である。 この発明の方法の主要な特性を表す特徴を前記の請求項1の特徴記載部分に示
す。 さて、例示する方法を参照し、および添付の図面も参照して本発明を更に詳し
く説明する。
【0018】 それで図1は、データベース内で同時に行うトランザクションが互いに影響す
る、多数の異なる既知のケースの第1のケースを示す。 更新喪失と呼べる、このケースで、第1トランザクションT1および第2トラ
ンザクションT2が同じデータオブジェクト“O”を互いに独立に異なる時間に
、互いを知らずに更新する。 時点“a”で、第1トランザクションT1がオブジェクトO1の第1バージョ ンを集め、時点“b”で、第2トランザクションT2が上記オブジェクトの同じ
バージョンO1を集める。第1トランザクションT1による更新が完了したとき 、更新したオブジェクトO2を、時点“c”で、このデータベースにこのオブジ ェクトの第1バージョン上に書込む。第2トランザクションT2による更新が完
了したとき、更新したオブジェクトO3を、時点“d”で、このデータベースに 第1トランザクションT1によって行った更新O2上に書込む。
【0019】 例えば、このオブジェクトが二人の異なるユーザ(T1、T2)によって変更
される文書であるとき、第1ユーザT1が行った変更O2は、第2ユーザT2か らの更新O3で喪失する。 上に述べた一連の行為は、“読取り、書込み、書込み”にあり、それはコンフ
リクトを生ずることがある。 この問題は、例えば、伝統的二段階でのロッキングを使うことによって解決で
きる。それで行うべきトランザクションが更新トランザクションおよびそれと共
に変更トランザクションであるので、第1トランザクションT1がオブジェクト
Oに専用ロックを設定する。すると第2トランザクションT2は、第1トランザ
クションT1をコミットして専用ロックを解除するまでオブジェクトOにアクセ
スできない。
【0020】 図2は、不正読取りと呼ぶ、もう一つの場合を示し、そこでは第1トランザク
ションT1がオブジェクトO4へのアクセスをもたらし、時点“f”でこのオブ ジェクトを読取り、このオブジェクトO4は、先の時点“e”で第2トランザク ションT2によって変えられている。この第2トランザクションT2は、後の時
点“g”でオブジェクトO5をもう一度変える。第1トランザクションT1が行 う読出しは、読取りオブジェクトO4がO5内容の最終バージョンを含まないので
、不正読取りと呼ぶ。 このケースで行う一連の行為は、“書込み、読取り、書込み”にあり、それは
図示のようにコンフリクトを生ずる。 この問題も、第2トランザクションT2がオブジェクトO4に専用ロックを設 定することによりトランザクションがデータ変更トランザクションであり、それ
と共に読取りトランザクションT1の上記オブジェクトへのアクセスを否定する
ので解決できる。
【0021】 図3は、ここでは反復不能読取りと呼ぶ、第3のケースを示し、それは第1ト
ランザクションT1がオブジェクトOを二度読取り、最初はオブジェクトO7が 時点“i”で第2トランザクションT2によって更新される前に時点“h”でO 6 を読取り、その後第1トランザクションT1がオブジェクトO7を時点“j”で
二度目に読取ることを意味する。そこで第1トランザクションT1によって行っ
た二つの異なる読取りは、二つの異なる値O6、O7を出し、最初の読取りが反復
できないので、最初の読取りからの結果は再取得できない。 この一連の行為は、“読取り、書込み、読取り”にあり、それは図示のように
コンフリクトを生ずることがある。 トランザクションが非変更トランザクションであるので、この問題は、最初の
読取りに、変更トランザクションT2が専用ロックを得ること、従ってオブジェ
クトを更新することを防ぐ共用ロックを設定することによって防ぐことが出来る
。 先に説明したケースは、ジム・グレイおよびアンドレアス・ロイター著“トラ
ンザクション処理:概念と技術”、モルガン・カウフマン出版社、1993年、
ISBN 1−55860−190−2に更に詳しく記載されている。
【0022】 本発明が主として取組む問題は、第3ケースで説明した反復不能読取り問題に
類似するが、異なるオブジェクトを読取るという差がある。 我々は、この問題を無ブロッキング読取り問題と呼び、それを以下に図4を参
照して説明する。図4は、第1トランザクションが多数の異なるオブジェクトへ
の、例えば、オブジェクト1O、2Oおよび3Oへのアクセスを要求することを
示す。二つのオブジェクト、オブジェクト1Oとオブジェクト3Oは、相互依存
性を有する。 第1トランザクションT1は、第1時点“k”でオブジェクト1O1を読取り 、第2時点“l”でオブジェクト2O1を読取り、および第3時点“n”でオブ ジェクト3O2を読取る。 二つのオブジェクト1O2と3O2は、第2トランザクションT2によって、第
3時点“n”の前であるが第1時点“k”の後の時点“n”で、第2トランザク
ションT2によって更新する。 それで、第1トランザクションT1は、オブジェクト1Oの第1バージョン1
1とオブジェクト3Oの第2バージョン3O2を見て、これらのバージョンは、
二つのオブジェクト1O、3Oの間の依存性に関して相互に首尾一貫しない。
【0023】 この問題も、第1トランザクションT1がオブジェクト1O、2Oおよび3O
上の共有ロックで第2トランザクションT2をブロックするか、または第2トラ
ンザクションT2がオブジェクト1Oおよび3O上に設定した専用ロックで第1
トランザクションT1をブロックする、伝統的二段階でのロッキングを使うこと
によって解決できる。 両ケースで、ロックを占有するトランザクションによって待機トランザクショ
ンをブロックする。本発明のオブジェクトは、まだ第1トランザクションに三つ
のオブジェクト1O、2Oおよび3Oの一貫したピクチャを得させながら、この
ブロッキングの有害な影響を減少することになっている。 この発明は、データベースで実行するトランザクションを二段階でロッキング
することによって管理し、その第1段階がトランザクションによって影響される
オブジェクトへのアクセスの要求およびそれへのアクセスを達成してからのこれ
らのオブジェクトのロッキングを含み、その第2段階がこのトランザクションの
コミットメントおよび第1段階で設定した全てのロックの解放を含む方法に関す
る。 トランザクションが行う実際の作業は、データオブジェクトを変える行為また
は事象および/または上記オブジェクトを変えない行為または事象を含んでもよ
い。
【0024】 本発明は、オブジェクトO1の内容を読取るトランザクションT1によってオ ブジェクトの内容を変更または更新すること、およびオブジェクトの新しいバー
ジョンO2を提供するために変更した内容を書込むこと(図5に従って)も含み 、上記トランザクション前に存在するオブジェクトのバージョンO1は、更なる トランザクションがこの既存のバージョンO1をもう使わなくなるまで保持する 。 これらの仮定からを出発点として、本発明は、トランザクションをこの第2段
階後に影響したオブジェクトへのアクセスを保持するようにすることを提案する
。このトランザクションは、第1段階で全てのデータ変更行為を行い、および第
2段階後に、第3段階で最大可能数の非変更行為を行うようにもすべきである。
【0025】 トランザクションは、種々の行為を含むことができる。それらの行為には次の
ものがある: − オブジェクトを開きおよびロックすること。これは、トランザクションによ
って開いたオブジェクトの組へのオブジェクトの付加を意味する。 ・ 巡航すること。これは、ある他のオブジェクトへのキーまたは参照の同一性
を決めるために開いたオブジェクトの内容の一部を読取ることを意味する。次の
オブジェクトへのアクセス/巡航は、そのオブジェクトが既に開いていれば問題
ない。 ・ 開いたオブジェクトの内容に属する値を読取ること。 − オブジェクトに値を書込むこと、例えば、オブジェクトの更新。 − 新しいオブジェクトを創ること。これは、トランザクションによって開いた
オブジェクトの組へ新しいオブジェクトを付加する。 − 既存のオブジェクトの削除。これは、トランザクションによって開いたオブ
ジェクトの組へ削除したオブジェクトを付加する。 ・ トランザクションによって開いたオブジェクトへのアクセスに直接関係ない
その他の計算。
【0026】 ハイフン“−”を付けた行為は、ある点でデータを変更する行為であり、第1
段階のトランザクションで、即ち、コミットの前に行わなければならない。黒丸
“・”を付けた行為は、データ変更をしない行為であり、原理上は第2段階後、
即ち、コミット後に行うことが出来る。 本発明によれば、トランザクションがまだ実行しない非変更行為の実施後にオ
ブジェクトへのアクセスを終える。
【0027】 図6は、この発明によるデータ変更トランザクションT1の外観の簡略図であ
る。第1段階“A”は、時点“o”で始る。このトランザクションT1は、この
段階でトランザクションT1によって影響されるオブジェクト1O、2Oおよび
3Oへのアクセスをもたらし、それをこの図ではオブジェクトとトランザクショ
ンの間の実線によって示す。関連するロックをそれぞれのオブジェクトに設定し
、この図でロックしたオブジェクト内のドットで概略的に示し、中実ドットは、
専用ロックe1を示し、中空ドットは、共用ロックs1を示す。 図示のケースで、トランザクションT1が第2オブジェクト2Oに関して変更
トランザクションであるので、このオブジェクトのロックは、専用ロックe1で
ある。トランザクションT1が残りのオブジェクトに関して非変更トランザクシ
ョンであるので、これらのオブジェクトのロックは、共用ロックs1である。 全ての変更行為は、トランザクションT1が第1段階“A”で行う。そのよう
な変更は、第2オブジェクト2Oの第1バージョン2O1から第2バージョン2 O2への更新にある。 第2段階“B”は、時点“p”に始る。この段階は、トランザクションT1に
よる設定したロックの解除およびコミットメントを含む。
【0028】 しかし、この発明の概念によれば、関連するオブジェクトのアベイラビリティ
は、第2段階後でも保持される。このアベイラビリティは、図に点線で示すよう
に、オブジェクトがまだトランザクションT1のために開いていることを意味す
る。 第2段階“B”を完了すると、第3段階“C”が時点“q”で始り、そこでト
ランザクションT1が残りの非変更行為を実行する。そのような行為の例は、先
に黒丸を付けたものである。 第3段階“C”は、ここでオブジェクト閉鎖と呼ぶ、オブジェクト1O、2O
、3OのアベイラビリティのトランザクションT1への解放も含み、それは第3
段階“C”で、即ち、残りの非変更行為を実行した後に行う最後の行為である。 トランザクションT1は、それと共に、全てのロックの解放後に、即ち、図6
の第2段階“C”で、非変更行為に対するデータベースの中の関連するオブジェ
クトの保持された一貫性のスナップショットを提供する。
【0029】 このアクセスは、この行為が他のトランザクションに関して完全に無ブロッキ
ングであるので、時間に関して無制限である。しかし、限定要因は、このアクセ
スがオブジェクトの現在のバージョンをメモリに記憶する能力を要求するので、
メモリ容量またはアクセスであることがある。 トランザクションによってロックされず、まだ前述に従ってトランザクション
のために開いているオブジェクトのバージョンが削除されないことを保証するた
めに、この発明によれば、トランザクションのための第3段階“C”でのオブジ
ェクトへのアクセスを、それぞれのオブジェクトの現在のバージョンにトランザ
クションによって使われているとしてマーキングすることによって提供し、一方
閉鎖は、上記マーキングの除去から成ることを提案する。 トランザクションによって使用するオブジェクトにマーキングする多くの異な
る方法がこの技術で知られている。本発明は、これらの方法のどの一つにも特に
限定されず、それぞれの方法に適応できる。トランザクションによって使用する
オブジェクトにマーキングする二つの最も普通の方法に適応させた本発明の実施
例を以下に説明する。
【0030】 しかし、これらの種々の方法の共通の特徴、および本発明の前提条件は、オブ
ジェクトを、このベータベースの異なる場所に記憶したこのオブジェクトの新バ
ージョンによって、および上記バージョンがトランザクションによって使われて
いるとマークされている限り旧バージョンを保存することによって更新すること
である。 この発明の最初に提案する実施例では、オブジェクトの各バージョンに、ロッ
クを設定するときのように、トランザクションがこのバージョンへアクセスする
とき増加または増大し、およびロックを解放するときのように、トランザクショ
ンが上記オブジェクトへのアクセスがもう必要ないとき減少または低下するカウ
ンタを割当てる。 そのようなトランザクション管理の場合、この発明によれば、このマーキング
は、カウンタが、図6の第2段階“B”の終りでの、ロックの解放に関連してで
なく、図6の第3段階“C”の終りで、このマーキングが除去されるまで減少し
ないことにある。 この場合、オブジェクトの現在のバージョンは、この現在のバージョンがこの
オブジェクトの最新バージョンから成らなければ、カウンタがゼロに減少するこ
とに関連して削除される。
【0031】 これは、トランザクションをロックの解放に関連してコミットし、それは全て
の変更行為をこのトランザクションによって実施すると直ぐ行うが、カウンタを
既知の技術によっては減少せず、カウンタの減少は、このトランザクションがこ
のオブジェクトバージョンへのアクセスがもう必要なくなるまで行わず、それは
残りの非変更行為をこのトランザクションによって実行したときおよび/または
このトランザクションがこれらのオブジェクトへのアクセスがもう必要ないとき
に起ることを意味する。 本発明のもう一つの提案する実施例によれば、各トランザクションにこのトラ
ンザクションを始めた時間を示すタイムスタンプを割当て、どの現在のオブジェ
クトバージョンも若いトランザクションからのタイムスタンプでスタンプされな
いとき、各トランザクションがそのそれぞれのタイムスタンプでそれぞれの関連
するオブジェクトのバージョンをスタンプし、およびオブジェクトの各バージョ
ンを、現在のバージョンに割当てられた最若タイムスタンプより古いかまたは同
等の古さである何れかのトランザクションが終らない限り保持すべきである。 そのようなトランザクション管理の場合、この発明によれば、このマークがそ
れぞれのオブジェクトの現在のバージョンについてのタイムスタンプから成るこ
と、およびこのトランザクションは、このオブジェクトへのアクセスを閉じると
きに終ると考えることを提案する。
【0032】 これは、トランザクションを図6の第2段階“B”の終りでのロックの解放に
関連してコミットされ、それは全ての変更行為をこのトランザクションによって
実施すると直ぐ行うことを意味するが、このトランザクションは、コミット後も
生きたままであると考えられ、即ち、タイムスタンプがまだ有効であり、このト
ランザクションがそのタイムスタンプと共にまだ有効であるので、現在のバージ
ョンを削除できないことを意味する。このトランザクションのタイムスタンプは
、このトランザクションがこれらのオブジェクトへのアクセスがもう必要なくな
るまで除去されず、それは、全ての変更行為をこのトランザクションによって実
施したときおよび/またはこのトランザクションがこれらのオブジェクトへのア
クセスがもう必要ないとき、即ち、図6の第3段階“C”の終りで起る。 この発明の方法の効果は、関係するトランザクションの型式に関して大きさが
異なる。次に、この発明に特別の適性があると考えられる、多数の異なるトラン
ザクションを説明する。 そのようなトランザクションの最初の例は、非変更行為だけを含み、使用する
ロックが共用ロックであるもの、例えば、単なる読取りトランザクションである
。 このトランザクションは、共用ロックを解除する前に他のトランザクションに
関係するオブジェクトへのアクセスを与えられるようにするが、上記トランザク
ションがオブジェクトを読取ることしかできないという制限がある。
【0033】 図7に示すように、オブジェクトがロックされる時限“A”、“B”が全ての
関係するオブジェクトへのアクセスをもたらし、これらのオブジェクトをロック
し“A”、その後このトランザクションをコミットしてロックを解除する“B”
ために取った時間にだけあるので、この時限は比較的短いだろう。変更行為を全
く行わないので、このトランザクションは、全てのロックをセットした直後にコ
ミットし、これらのロックを解除し、マーキングがそれぞれのオブジェクトの現
在のバージョンに残り、このバージョンが削除されないことを示す。 それで現在のオブジェクトは、設定したロックが共用ロックだけであるので、
この全期間中、他の非変更トランザクションに対して利用でき、コミット直後に
変更トランザクションに対して利用できる。 関係するオブジェクトを閉じる点までの時限“C”は、実施すべき非変更行為
に関して変るだろう。
【0034】 図8は、本発明に関して特に有利なトランザクションT1の第2例を示すこと
を意図する。これは、トランザクションを始める前に開くべき全てのオブジェク
ト1O、2O、3Oが分っているトランザクションであり、このトランザクショ
ンをグループ開放トランザクションと称する。このトランザクションは、勿論、
変更行為と非変更行為の両方を含んでもよい。 このトランザクションが変更行為と非変更行為の両方を含むか、非変更行為だ
けを含むかどうかに関係なく、関係するオブジェクトは、第1段階“A”で開か
れるだろう。
【0035】 図9は、本発明に関して特に有利なトランザクションT1の第3例を示すこと
を意図する。これは、トランザクションを始める前に一つ以上の出発オブジェク
ト1O、2O、3Oが分っていて、一つ以上の出発オブジェクトがこのトランザ
クションによって関係する一つ以上の更なるオブジェクト4O、5O、6O、7
Oを参照する、所謂再帰開放トランザクションである。 このトランザクションが変更行為と非変更行為の両方を含むか、非変更行為だ
けを含むかどうかに関係なく、出発オブジェクト1O、2O、3Oを第1段階“
A”で開くべきであり、更なるオブジェクトへの参照の評価、即ち、出発オブジ
ェクト1O、2O、3O内の巡航は、第1段階“A”で行うべきであり、更なる
オブジェクト4O、5O、6O、7Oのどれも第1段階“A”で開くべきである
【0036】 ある場合、更なるオブジェクト4O、5O、6O、7Oから更に更なるオブジ
ェクト8O、9O、10O、11Oへの参照が第1段階“A”で評価され、およ
び有り得る更なる参照に関して、更に更なるオブジェクト8O、9O、10O、
11Oのどれも第1段階“A”で開くべきである等々。 非変更行為、巡航行為は、第1段階“A”で行うべきであることを提案し、そ
れは影響されるオブジェクトを第1段階“A”で見付けてロック出来るようにす
るために必要である。 全てのオブジェクトを見付けてトランザクションによって開くオブジェクトの
数を制限するために必要な時限を限定する意図で、この発明によれば、先に開い
たオブジェクトから更に先のオブジェクトを参照することに由来するオブジェク
トの許可レベルの数を予め決め且つ制限“D”することが可能である。図9では
、許可レベルの数が“D”即ち2に限定され、従ってオブジェクト8O、9O、
10O、11Oは開かない。
【0037】 図10は、本発明に関して特に有利なトランザクションT1の第4例を示すこ
とを意図する。これは、トランザクションを始める前に一つ以上の出発オブジェ
クト1O、2O、3Oが分っていて、一つ以上の現在の出発オブジェクトが一つ
以上の更なるオブジェクト4O、5O、6O、7Oを参照し、更なるオブジェク
トへの参照を現在の出発オブジェクト1O、2O、3Oの一つの所定の出発オブ
ジェクト3Oに対して評価し、ここではパス開放トランザクションと称するトラ
ンザクションである。 オブジェクト3Oから到達するパス、またはブランチだけが評価されるべきで
あり、図10で制限“E”によって選択される。 このトランザクションが変更行為と非変更行為の両方を含むか、非変更行為だ
けを含むかどうかに関係なく、現在の出発オブジェクトを第1段階“A”で開く
べきであり、所定の出発オブジェクト3Oの巡航は、第1段階“A”で行うべき
であり、更なるオブジェクト7Oのどれも第1段階“A”で開くべきである。
【0038】 その上、更なるオブジェクト7Oから更に更なるオブジェクト10O、11O
への有り得る参照の評価を第1段階“A”で行うべきであり、および有り得る更
なる参照に関して、有り得る更に更なるオブジェクト10O、11Oを第1段階
“A”で開くべきである等々。 この場合、全てのオブジェクトを見付けるために必要な時間を制限し、および
先に開いたオブジェクトから更に先のオブジェクトを参照することに由来するオ
ブジェクトの許可レベルの数を予め決め且つ制限“D”することによって、トラ
ンザクションによって開かれるオブジェクトの数も制限することが可能である。 図8、図9および図10の意図は、第1段階“A”で影響されるオブジェクト
の開放手順を示すことであり、これらの図に示す種々の段階“A”、“B”、“
C”の間の相対サイズ関係は、本発明に何の意味もないことが分るだろう。
【0039】 全ての場合に、提案するトランザクションは以下の手順に従う: − トランザクションの創成; − 中間の時間が掛る計算がないときは、多数のオブジェクトを開くこと; − 一つ以上のオブジェクトへのアクセスが他のトランザクションのためにブロ
ックされるとき、トランザクションを中止し、および事によると後に試みること
; − 全ての関係するオブジェクトへのアクセスが与えられるとき、全ての変更行
為および何れかの必要な非変更行為を実行すること; − 関係するオブジェクトへの非変更アクセスを維持しながら、トランザクショ
ンをコミットし、全てのロックを解除すること; − 他のトランザクションを妨害し、または上記他のトランザクションによって
妨害される危険なしに、トランザクションに関係するオブジェクトの一貫したス
ナップショットを設けること; − 残りの非変更行為を実行すること;並びに − 関係するオブジェクトへのアクセスを解放すること。
【0040】 本発明によるトランザクション管理は、完全な無ブロッキングシステムに対す
る実施および実行に関する単純性がこの妥協案を許容し、ある用途によく適合さ
せるがあるロックが第1段階“A”および第2段階“B”で起るので、完全に無
ブロッキングではない。 二段階でのロッキングの限定によって意味するものは、二段階以上を含むロッ
クの設定およびロックの解放があって、一つの段階がトランザクションによって
影響されるオブジェクトへのアクセスの要求およびそれへのアクセスが達成され
た後のそのオブジェクトのロックを含み、もう一つの段階が、このトランザクシ
ョン管理に更なる段階が含まれるかどうかに関係なく、このトランザクションの
コミット、および第1段階で設定した全てのロックの解放を含む場合であるとし
ても、トランザクション管理も伴うことであることが分るだろう。 この発明は、先に説明し且つ図示したその実施例に限定されないこと、および
前記の請求項から明白なこの発明の概念の範囲内で修正を行うことが出来ること
が分るだろう。
【図面の簡単な説明】
【図1】 データベースでの同時トランザクションに関する第1の既知の問題を概略的に
示す。
【図2】 データベースでの同時トランザクションに関する第2の既知の問題を概略的に
示す。
【図3】 データベースでの同時トランザクションに関する第3の既知の問題を概略的に
示す。
【図4】 データベースでの同時トランザクションおよび相互依存性のオブジェクトに関
する第4の既知の問題を概略的に示す。
【図5】 本発明に従ってデータベースでオブジェクトを更新するための一つの条件を概
略的に示す。
【図6】 この発明によるトランザクションの異なる段階への分割を概略的に示す。
【図7】 本発明による高度に単純化した読取りトランザクションの概略図である。
【図8】 本発明によるグループ開放行為の高度に単純化した概略図である。
【図9】 本発明による再帰開放行為の高度に単純化した概略図である。
【図10】 本発明によるパス開放行為の高度に単純化した概略図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年4月28日(2000.4.28)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (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,GE,GH,GM,HR ,HU,ID,IL,IN,IS,JP,KE,KG, KP,KR,KZ,LC,LK,LR,LS,LT,L U,LV,MD,MG,MK,MN,MW,MX,NO ,NZ,PL,PT,RO,RU,SD,SE,SG, SI,SK,SL,TJ,TM,TR,TT,UA,U G,UZ,VN,YU,ZW 【要約の続き】 にオブジェクト(1O、2O、3O)へのアクセスを保 持するようにされる。このトランザクションは、第2段 階(B)後の第3段階(C)で最大可能数の非変更行為 を行うようにもされ、その後このトランザクションはこ れらのオブジェクトへのアクセスを閉じる。それで、こ の発明の方法は、トランザクションに、ロックが解放さ れた後に、換言すれば、第2段階(B)後の第3段階 (C)で、非変更行為に関して、データベースの中の影 響されるオブジェクト(1O、2O、3O)の一貫した スナップショットを設ける。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 データベース内の多数のオブジェクトの一貫した読取りをも
    たらす方法であって、データベーストランザクションを二段階でのロッキングに
    よって管理し、第1段階が上記トランザクションによって影響されるオブジェク
    トへのアクセスの要求およびをそれへのアクセスを達成した後の上記オブジェク
    トのロッキングを含み、第2段階が上記トランザクションのコミットを含み、お
    よび上記第1段階で設定した全てのロックを解放し、上記トランザクションによ
    って行う実際の作業がオブジェクト変更行為および/またはオブジェクト非変更
    行為を含むことができ、オブジェクトの内容の変更、または上記オブジェクトの
    更新は、新内容を上記オブジェクトの新バージョンに書込む上記トランザクショ
    ンによって行い、上記オブジェクトの上記トランザクション前の現在のバージョ
    ンは、更なるトランザクションが上記現在のバージョンをもう使わなくなるまで
    保持され、および上記トランザクションが全ての変更行為を上記第1段階内で行
    う方法に於いて、上記トランザクションが上記第2段階後に関係するオブジェク
    トバージョンを読取るための上記アクセスを保持すること;上記トランザクショ
    ンが上記第2段階後に最大可能数の非変更行為を行うこと;および上記トランザ
    クションが上記非変更行為を行った後に上記オブジェクトへのアクセスを閉じ、
    それによって上記方法が、上記ロックの解放後に、上記データベースの中に影響
    されるオブジェクトの一貫したスナップショットを提供することを特徴とする方
    法。
  2. 【請求項2】 請求項1による方法に於いて、上記第2段階後のオブジェク
    トへの上記アクセスが、それぞれのオブジェクトの現在のバージョンに上記トラ
    ンザクションによって使われているとしてマーキングすることにあり、一方トラ
    ンザクションの閉鎖は、上記マーキングの削除にあることを特徴とする方法。
  3. 【請求項3】 請求項2による方法で、オブジェクトの各バージョンに、ロ
    ックを設定するときのように、トランザクションが上記バージョンへアクセスす
    るとき増加し、およびロックを解放するときのように、トランザクションが上記
    オブジェクトバージョンへのアクセスがもう必要ないとき減少するカウンタを割
    当てられる方法に於いて、上記マークが上記カウンタの増加にあること、および
    上記マークの削除を上記カウンタの減少によって行うことを特徴とする方法。
  4. 【請求項4】 請求項2による方法で、各トランザクションに上記トランザ
    クションを始めた時間を示すタイムスタンプが割当てられ、関係するオブジェク
    トバージョンが若いトランザクションによってタイムスタンプされないとき、各
    トランザクションがそのタイムスタンプで影響されるオブジェクトのそれぞれの
    バージョンをスタンプし、およびオブジェクトの各バージョンが、上記バージョ
    ンに割当てられた最若タイムスタンプより古いかまたは同等の古さである何れか
    のトランザクションがまだ終らない限り残ったままにされる方法に於いて、上記
    マークがそれぞれのオブジェクトの上記バージョンについてのタイムスタンプに
    あること;および上記トランザクションは、上記オブジェクトへのアクセスを閉
    じるときに終ると考えられることを特徴とする方法。
  5. 【請求項5】 請求項1ないし請求項4の何れか一つによる方法に於いて、
    上記トランザクションが非変更行為だけを含むこと;および上記ロックが共用ロ
    ックから成り、上記ロックを解除する前に他のトランザクションが上記オブジェ
    クトへアクセスできるが、上記トランザクションがオブジェクトを読取ることし
    かできないという制限があることを特徴とする方法。
  6. 【請求項6】 請求項1ないし請求項4の何れか一つによる方法に於いて、
    上記トランザクションを始める前に開くべき全てのオブジェクトが分っているこ
    と;および上記オブジェクトを上記第1段階で開くことを特徴とする方法。
  7. 【請求項7】 請求項1ないし請求項4の何れか一つによる方法に於いて、
    上記トランザクションを始める前に一つ以上の出発オブジェクトが分っていて、
    上記出発オブジェクトの一つ以上が一つ以上の更なるオブジェクトを参照するこ
    と;上記出発オブジェクトを上記第1段階で開くこと;更なるオブジェクトへの
    参照を上記第1段階で評価すること;上記更なるオブジェクトを上記第1段階で
    開くこと;上記更なるオブジェクトから更に更なるオブジェクトへの参照を上記
    第1段階で評価すること;および上記更に更なるオブジェクトを上記第1段階で
    開くこと等々を特徴とする方法。
  8. 【請求項8】 請求項7による方法であって、先に開いたオブジェクトから
    更に先のオブジェクトを参照することに由来するオブジェクトの許可レベルの数
    を予め決めることに特徴がある方法。
  9. 【請求項9】 請求項1ないし請求項4の何れか一つによる方法に於いて、
    上記トランザクションを始める前に一つ以上の出発オブジェクトが分っていて、
    上記出発オブジェクトの一つ以上が一つ以上の更なるオブジェクトを参照するこ
    と;上記出発オブジェクトを上記第1段階で開くこと;更なるオブジェクトへの
    参照を上記第1段階で上記出発オブジェクトの一つの所定の出発オブジェクトに
    関して評価すること;上記更なるオブジェクトを上記第1段階で開くこと;上記
    更なるオブジェクトから更に更なるオブジェクトへの参照を上記第1段階で評価
    すること;および上記更に更なるオブジェクトを上記第1段階で開くこと等々を
    特徴とする方法。
  10. 【請求項10】 請求項9による方法であって、先に開いたオブジェクトか
    ら更に先のオブジェクトを参照することに由来するオブジェクトの許可レベルの
    数を予め決めることに特徴がある方法。
JP2000528931A 1998-01-22 1999-01-21 データベースに関する方法 Pending JP2002501257A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9800161A SE522023C2 (sv) 1998-01-22 1998-01-22 Metod för konsistent läsning av objekt i en databas
SE9800161-3 1998-01-22
PCT/SE1999/000087 WO1999038096A1 (en) 1998-01-22 1999-01-21 A method relating to databases

Publications (1)

Publication Number Publication Date
JP2002501257A true JP2002501257A (ja) 2002-01-15

Family

ID=20409935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000528931A Pending JP2002501257A (ja) 1998-01-22 1999-01-21 データベースに関する方法

Country Status (9)

Country Link
US (1) US6560601B1 (ja)
EP (1) EP1048001A1 (ja)
JP (1) JP2002501257A (ja)
KR (1) KR100589816B1 (ja)
CN (1) CN1119764C (ja)
AU (1) AU2446499A (ja)
CA (1) CA2319259C (ja)
SE (1) SE522023C2 (ja)
WO (1) WO1999038096A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015118431A (ja) * 2013-12-17 2015-06-25 日本電気株式会社 トランザクション処理システム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030035122A (ko) * 2001-10-30 2003-05-09 포디홈네트 인터넷 정보 가전용 내장형 데이터베이스 관리시스템에서의 다중 버전을 이용한 동시성 제어 방법
GB0130399D0 (en) * 2001-12-19 2002-02-06 Ibm Message ordering in a messaging system
US7299285B2 (en) * 2002-05-15 2007-11-20 Adc Dsl Systems, Inc. Resource sharing with database synchronization
US8495131B2 (en) 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
US7496574B2 (en) 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
US7289992B2 (en) 2003-05-01 2007-10-30 International Business Machines Corporation Method, system, and program for lock and transaction management
US7133884B1 (en) * 2003-11-26 2006-11-07 Bmc Software, Inc. Unobtrusive point-in-time consistent copies
US7272609B1 (en) * 2004-01-12 2007-09-18 Hyperion Solutions Corporation In a distributed hierarchical cache, using a dependency to determine if a version of the first member stored in a database matches the version of the first member returned
JP2005259057A (ja) * 2004-03-15 2005-09-22 Oki Electric Ind Co Ltd 更新履歴管理装置及び記録媒体
JP4451705B2 (ja) 2004-04-26 2010-04-14 株式会社日立製作所 ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム
CN100353325C (zh) * 2004-08-23 2007-12-05 华为技术有限公司 实现共享内存数据库的方法及内存数据库系统
EP1677233A1 (en) * 2004-12-29 2006-07-05 Sap Ag Technique for mass data handling in a preference processing context
US7461065B2 (en) * 2006-01-31 2008-12-02 International Business Machines Corporation Method and system for utilizing shared numeric locks
US9280572B2 (en) * 2009-01-12 2016-03-08 Oracle International Corporation Managing product information versions
US8904006B2 (en) 2010-12-08 2014-12-02 International Business Machines Corporation In-flight block map for a clustered redirect-on-write filesystem
US8626713B2 (en) * 2010-12-08 2014-01-07 International Business Machines Corporation Multiple contexts in a redirect on write file system
US8396832B2 (en) 2010-12-08 2013-03-12 International Business Machines Corporation Independent fileset generations in a clustered redirect-on-write filesystem
US8458181B2 (en) 2010-12-08 2013-06-04 International Business Machines Corporation Distributed free block map for a clustered redirect-on-write file system
CN104156369B (zh) * 2013-05-14 2019-04-02 上海盛大网络发展有限公司 一种数据库镜像制作方法和一种数据库
US9959308B1 (en) 2014-09-29 2018-05-01 Amazon Technologies, Inc. Non-blocking processing of federated transactions for distributed data partitions
US10754565B2 (en) * 2018-04-23 2020-08-25 Google Llc Systems and methods for deferred lock enforcement

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4627019A (en) 1982-07-08 1986-12-02 At&T Bell Laboratories Database management system for controlling concurrent access to a database
US5170480A (en) * 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
US5261069A (en) 1990-08-13 1993-11-09 Hewlett-Packard Company Method of maintaining consistency of cached data in a database system
US5893117A (en) * 1990-08-17 1999-04-06 Texas Instruments Incorporated Time-stamped database transaction and version management system
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
US6026401A (en) * 1997-10-14 2000-02-15 International Business Machines Corporation Locking tool data objects in a framework environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015118431A (ja) * 2013-12-17 2015-06-25 日本電気株式会社 トランザクション処理システム

Also Published As

Publication number Publication date
KR100589816B1 (ko) 2006-06-14
KR20010034268A (ko) 2001-04-25
AU2446499A (en) 1999-08-09
CN1119764C (zh) 2003-08-27
EP1048001A1 (en) 2000-11-02
SE9800161D0 (sv) 1998-01-22
SE522023C2 (sv) 2004-01-07
CA2319259A1 (en) 1999-07-29
US6560601B1 (en) 2003-05-06
SE9800161L (sv) 1999-07-23
WO1999038096A1 (en) 1999-07-29
CA2319259C (en) 2008-06-10
CN1294714A (zh) 2001-05-09

Similar Documents

Publication Publication Date Title
JP2002501257A (ja) データベースに関する方法
US5668958A (en) Heterogeneous filing system with common API and reconciled file management rules
EP2875426B1 (en) Combining scalability across multiple resources in a transaction processing system having global serializability
US6772155B1 (en) Looking data in a database system
US5745747A (en) Method and system of lock request management in a data processing system having multiple processes per transaction
JP2533266B2 (ja) 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
US7987166B2 (en) Atomic renaming and moving of data files while permitting lock-free look-ups
US6240413B1 (en) Fine-grained consistency mechanism for optimistic concurrency control using lock groups
Marathe et al. A qualitative survey of modern software transactional memory systems
EP1089177A2 (en) Transaction processing system using efficient file update processing and recovery processing
US6823514B1 (en) Method and system for caching across multiple contexts
US7689788B2 (en) System and method for executing transactions
US8095731B2 (en) Mutable object caching
CN110730958B (zh) 用于管理按优先级排序的数据库事务的方法和系统
US7051051B1 (en) Recovering from failed operations in a database system
WO2001013202A2 (en) Concurrent commit lock
JP3785004B2 (ja) トランザクション管理方法及びトランザクション管理装置
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
Lim et al. Restructuring the concurrent B+-tree with non-blocked search operations
JPH09269912A (ja) 情報処理方法とその装置
Goyal et al. Extending Speculation-Based Protocols for Processing Read-Only Transactions in Distributed Database Systems
CN117348977A (zh) 一种数据库中事务并发控制的方法、装置、设备及介质
JP2003140951A (ja) トランザクション同時実行制御方法およびトランザクション同時実行制御装置
JPS63124139A (ja) 共有資源排他制御方式
Ulusoy Distributed Concurrency Control