JPH0628315A - トランザクション・照会並行処理のための動的有限バージョン管理方法およびそのシステム - Google Patents
トランザクション・照会並行処理のための動的有限バージョン管理方法およびそのシステムInfo
- Publication number
- JPH0628315A JPH0628315A JP3318182A JP31818291A JPH0628315A JP H0628315 A JPH0628315 A JP H0628315A JP 3318182 A JP3318182 A JP 3318182A JP 31818291 A JP31818291 A JP 31818291A JP H0628315 A JPH0628315 A JP H0628315A
- Authority
- JP
- Japan
- Prior art keywords
- query
- database
- version
- snapshot
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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
- G06F16/2329—Optimistic concurrency control using versioning
-
- 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/99933—Query processing, i.e. searching
-
- 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/99954—Version management
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)【要約】 (修正有)
【目的】 トランザクション・照会並行処理を干渉停止
を生じさせず効率的に支援する。 【構成】 有限数の論理バージョンだけがディスクに動
的に維持される。通常の並行性制御機構によって、異な
るトランザクションが最新のバージョンにアクセスし、
それらがコミットされる前にデータベースに増分的に書
き込まれる。物理ページコピーは、多数のバージョンを
同時に表現することができる。物理ページコピーが表現
する正しい論理バージョンは、動的かつ暗黙的に変化す
る。経時不変及び経時変化データ構造を利用して照会ス
ナップショットを定義し、トランザクション又は照会処
理のいずれにも割り込むことなく新しい照会スナップシ
ョットが行われるようにして適切なバージョンを動的に
識別し、必要な論理バージョンを表現するのに単一のペ
ージコピーだけで十分であると認識された場合には、効
率的なオンザフライ式の不要部分の整理を可能にする。
を生じさせず効率的に支援する。 【構成】 有限数の論理バージョンだけがディスクに動
的に維持される。通常の並行性制御機構によって、異な
るトランザクションが最新のバージョンにアクセスし、
それらがコミットされる前にデータベースに増分的に書
き込まれる。物理ページコピーは、多数のバージョンを
同時に表現することができる。物理ページコピーが表現
する正しい論理バージョンは、動的かつ暗黙的に変化す
る。経時不変及び経時変化データ構造を利用して照会ス
ナップショットを定義し、トランザクション又は照会処
理のいずれにも割り込むことなく新しい照会スナップシ
ョットが行われるようにして適切なバージョンを動的に
識別し、必要な論理バージョンを表現するのに単一のペ
ージコピーだけで十分であると認識された場合には、効
率的なオンザフライ式の不要部分の整理を可能にする。
Description
【0001】
【産業上の利用分野】本発明は、トランザクション・照
会並行処理システム、より詳しくは、トランザクション
と照会との間にいかなる干渉も生じず、かつ、トランザ
クションまたは照会のいずれの静止も生じず、照会がよ
り新しいデータベースにアクセスできるようにするため
の動的有限バージョン管理方式に関する。この新機構
は、経時不変および経時変化データ構造を用いて、照会
スナップショットを定義し、トランザクションまたは照
会処理のいずれにも割り込むことなく新しい照会スナッ
プショットが行われるようにし、トランザクションおよ
び照会のアクセスのための適切なバージョンを動的に識
別し、必要な論理バージョンを表現するのに単一のペー
ジコピーだけで十分であると認識された場合には効率的
なオンザフライ式の不要部分の整理を可能にする。
会並行処理システム、より詳しくは、トランザクション
と照会との間にいかなる干渉も生じず、かつ、トランザ
クションまたは照会のいずれの静止も生じず、照会がよ
り新しいデータベースにアクセスできるようにするため
の動的有限バージョン管理方式に関する。この新機構
は、経時不変および経時変化データ構造を用いて、照会
スナップショットを定義し、トランザクションまたは照
会処理のいずれにも割り込むことなく新しい照会スナッ
プショットが行われるようにし、トランザクションおよ
び照会のアクセスのための適切なバージョンを動的に識
別し、必要な論理バージョンを表現するのに単一のペー
ジコピーだけで十分であると認識された場合には効率的
なオンザフライ式の不要部分の整理を可能にする。
【0002】
【従来の技術およびその課題】トランザクション・照会
並行処理環境では、トランザクションのほうは潜在的に
データベースを更新することができるのに対し、照会は
読み出し専用動作である。照会は、大部分が意思決定を
支援するので、トランザクション両立データベースにア
クセスする限り、必ずしも最新のデータベースにアクセ
スする必要はない。トランザクションと照会との間の干
渉は、データ対象の多数のバージョンを維持することに
よってなくすことができる。すなわち、トランザクショ
ンは新バージョンを作成し、照会は旧バージョンにアク
セスする。例えば、以下の参考文献を参照されたい。 David P.Reed,“Implementin
g AtomicActions on Decent
ralized Data”(ACMTrans.on
Computer Systems,vol.1,n
o.1,pp.3−23,February 198
3);A.Chan,S.Fox,W.−T.K.Li
n,A.Mori,D.R.Ries,“TheImp
lementation of An Integra
tedConcurency Control and
RecoveryScheme”(ACM SIGM
OD Proc.Conf.onManagement
of Data,pp.184−191,198
2);A.Chan,R.Gray,“Impleme
ntingDistributed Read−Onl
y Transactions”(IEEE,Tran
s.on Software Engeneerin
g,vol.SE−11,no.2,pp.205−2
12,February1985);W.E.Weih
l,“Distributed VersionMan
agement for Read−Only Act
ions”(IEEE Trans.on Softw
are Engeneering,vol.SE−1
3,no.1,pp.55−64,January 1
987);P.A.Bernstein,V.Hadz
ilacos,N.Goodman,“Concurr
ency Control andRecovery
in Database Systems”,Addi
son−Wesley,1987. 上記のBernsteinらの文献に説明されたような
マルチバージョン管理方式を用いた現行の方法では、す
べてのトランザクションはデータ対象の新バージョンを
作成し、データ対象の旧バージョンは潜在的な照会アク
セスのために保存される。いずれかの時点には、一つの
データ対象について際限もないほど大多数のバージョン
が維持されているかもしれない。その結果、干渉はなく
なるが、(潜在的に無限な数の旧バージョンを維持する
ための)記憶域のオーバヘッドおよび(バージョン検索
および不要部分の整理のための)バージョン管理の複雑
さという問題が深刻になり得る。
並行処理環境では、トランザクションのほうは潜在的に
データベースを更新することができるのに対し、照会は
読み出し専用動作である。照会は、大部分が意思決定を
支援するので、トランザクション両立データベースにア
クセスする限り、必ずしも最新のデータベースにアクセ
スする必要はない。トランザクションと照会との間の干
渉は、データ対象の多数のバージョンを維持することに
よってなくすことができる。すなわち、トランザクショ
ンは新バージョンを作成し、照会は旧バージョンにアク
セスする。例えば、以下の参考文献を参照されたい。 David P.Reed,“Implementin
g AtomicActions on Decent
ralized Data”(ACMTrans.on
Computer Systems,vol.1,n
o.1,pp.3−23,February 198
3);A.Chan,S.Fox,W.−T.K.Li
n,A.Mori,D.R.Ries,“TheImp
lementation of An Integra
tedConcurency Control and
RecoveryScheme”(ACM SIGM
OD Proc.Conf.onManagement
of Data,pp.184−191,198
2);A.Chan,R.Gray,“Impleme
ntingDistributed Read−Onl
y Transactions”(IEEE,Tran
s.on Software Engeneerin
g,vol.SE−11,no.2,pp.205−2
12,February1985);W.E.Weih
l,“Distributed VersionMan
agement for Read−Only Act
ions”(IEEE Trans.on Softw
are Engeneering,vol.SE−1
3,no.1,pp.55−64,January 1
987);P.A.Bernstein,V.Hadz
ilacos,N.Goodman,“Concurr
ency Control andRecovery
in Database Systems”,Addi
son−Wesley,1987. 上記のBernsteinらの文献に説明されたような
マルチバージョン管理方式を用いた現行の方法では、す
べてのトランザクションはデータ対象の新バージョンを
作成し、データ対象の旧バージョンは潜在的な照会アク
セスのために保存される。いずれかの時点には、一つの
データ対象について際限もないほど大多数のバージョン
が維持されているかもしれない。その結果、干渉はなく
なるが、(潜在的に無限な数の旧バージョンを維持する
ための)記憶域のオーバヘッドおよび(バージョン検索
および不要部分の整理のための)バージョン管理の複雑
さという問題が深刻になり得る。
【0003】各種マルチバージョン管理方式が高水準の
並行性を得るために提起されている。上記に引用したR
eed,ChanらおよびWeihlらによる論文の他
に、以下の文献も参照されたい。 R.Bayer,H.Heller,A.Reise
r,“Parallelism and Recove
ry inDatabase Systems”(AC
M Trans.onDatabase System
s,vol.5,no.2,pp.139−156,J
une 1980);R.E.Sterns,D.J.
Rosenkrantz,“Distributed
DatabaseConcurrency Contr
ol Using Before−Values”(P
roc.of ACM SIGMOD Int.Con
f.on Management of Data,p
p.74−83,1981).BayerらおよびSt
ernsらは、2のバージョンによるマルチバージョン
並行性プロトコルを提起している。読み出し専用の照会
と更新トランザクションとの間の干渉は低減されるが、
完全にはなくならない。単一の旧バージョンしか維持さ
れず、読み出し専用の照会は依然として特殊なロックプ
ロトコルにより更新トランザクションと競合するため
に、並行性の水準の向上は限られている。
並行性を得るために提起されている。上記に引用したR
eed,ChanらおよびWeihlらによる論文の他
に、以下の文献も参照されたい。 R.Bayer,H.Heller,A.Reise
r,“Parallelism and Recove
ry inDatabase Systems”(AC
M Trans.onDatabase System
s,vol.5,no.2,pp.139−156,J
une 1980);R.E.Sterns,D.J.
Rosenkrantz,“Distributed
DatabaseConcurrency Contr
ol Using Before−Values”(P
roc.of ACM SIGMOD Int.Con
f.on Management of Data,p
p.74−83,1981).BayerらおよびSt
ernsらは、2のバージョンによるマルチバージョン
並行性プロトコルを提起している。読み出し専用の照会
と更新トランザクションとの間の干渉は低減されるが、
完全にはなくならない。単一の旧バージョンしか維持さ
れず、読み出し専用の照会は依然として特殊なロックプ
ロトコルにより更新トランザクションと競合するため
に、並行性の水準の向上は限られている。
【0004】更新トランザクションと読み出し専用照会
との間の干渉は、あるデータ対象についての恐らく無限
数のバージョンを維持することによってなくすことがで
きる。上記のReedは、生成されたすべてのバージョ
ンを永久に保存することにより概念的に機能する方式を
提起している。不要部分の整理はうまくアドレス指定さ
れなかったし、読み出し専用の照会は、必要な一定の旧
バージョンがもはや使用できない場合に打ち切られなけ
ればならないこともある。上記のChanらは、旧バー
ジョンを格納するバージョンプールとしてリングバッフ
ァを用いたバージョン管理技法を開発した。リングバッ
ファがあふれた場合、一部の旧バージョンは、トランザ
クションによって更新されるべきバージョンの余地を作
るために放棄されなければならず、照会を打ち切らせる
ことになる。早期の不要部分の整理による読み出し専用
の照会を打ち切る可能性は、同じく上記のWehilに
よって開発された方式によって、なくすことができる。
しかしながら、それを行うには、照会の実行のために複
雑で費用のかかる開始段階を課すことを要し、その場
合、いずれかのデータ対象にアクセス開始できる前に、
照会は、早期の不要部分の整理による干渉を防ぐため
に、それが必要とするすべてのバージョンが使用可能で
あり、登録されていることを確認しなければならない。
との間の干渉は、あるデータ対象についての恐らく無限
数のバージョンを維持することによってなくすことがで
きる。上記のReedは、生成されたすべてのバージョ
ンを永久に保存することにより概念的に機能する方式を
提起している。不要部分の整理はうまくアドレス指定さ
れなかったし、読み出し専用の照会は、必要な一定の旧
バージョンがもはや使用できない場合に打ち切られなけ
ればならないこともある。上記のChanらは、旧バー
ジョンを格納するバージョンプールとしてリングバッフ
ァを用いたバージョン管理技法を開発した。リングバッ
ファがあふれた場合、一部の旧バージョンは、トランザ
クションによって更新されるべきバージョンの余地を作
るために放棄されなければならず、照会を打ち切らせる
ことになる。早期の不要部分の整理による読み出し専用
の照会を打ち切る可能性は、同じく上記のWehilに
よって開発された方式によって、なくすことができる。
しかしながら、それを行うには、照会の実行のために複
雑で費用のかかる開始段階を課すことを要し、その場
合、いずれかのデータ対象にアクセス開始できる前に、
照会は、早期の不要部分の整理による干渉を防ぐため
に、それが必要とするすべてのバージョンが使用可能で
あり、登録されていることを確認しなければならない。
【0005】従って、本発明の目的は、トランザクショ
ン・照会並行処理を効果的かつ効率的に支援するデータ
ベースシステムを提供することである。
ン・照会並行処理を効果的かつ効率的に支援するデータ
ベースシステムを提供することである。
【0006】本発明の第2の目的は、照会がより新しい
データベースにアクセスできるようにし、記憶域を効率
的に利用する、動的有限バージョン管理方法により、ト
ランザクション・照会並行処理を支援するデータベース
システムを提供することである。
データベースにアクセスできるようにし、記憶域を効率
的に利用する、動的有限バージョン管理方法により、ト
ランザクション・照会並行処理を支援するデータベース
システムを提供することである。
【0007】本発明の第3の目的は、いずれの時点にお
いても、データページの最大限固定された有限な数の論
理バージョンがディスク記憶機構に動的に維持されるデ
ータベースシステムを提供することである。
いても、データページの最大限固定された有限な数の論
理バージョンがディスク記憶機構に動的に維持されるデ
ータベースシステムを提供することである。
【0008】
【課題を解決するための手段】本発明に従えば、その動
的有限バージョン管理方式は、トランザクションと照会
との間にいかなる干渉も生じず、かつ、トランザクショ
ンまたは照会のいずれの静止も生じず、照会がより新し
いデータベースにアクセスできるようにするトランザク
ション・照会並行処理を支援する。いずれの時点におい
ても、データページの最大限固定された有限な数の論理
バージョンがディスク上に動的に維持される。例えば、
最新コミットバージョンおよび作業バージョンに加え、
動的4バージョン管理方式は2の照会バージョンを維持
し、動的5バージョン管理方式は3の照会バージョンを
維持する。ロッキングすることなく、照会は、それぞれ
の開始時刻に従って、適切な照会バージョンにアクセス
する。データベースの全ページの対応する各照会バージ
ョンは、トランザクションと両立するデータベーススナ
ップショットを表現する。最新コミットバージョンは、
トランザクションまたは照会の処理に割り込むことなく
新しい照会バージョンになるために常にスナップショッ
トされる準備ができている。通常の並行性制御機構によ
って、トランザクションは最新のバージョンにアクセス
し、コミットされる前にディスクのデータベースに各自
の更新を書き込むことができる。
的有限バージョン管理方式は、トランザクションと照会
との間にいかなる干渉も生じず、かつ、トランザクショ
ンまたは照会のいずれの静止も生じず、照会がより新し
いデータベースにアクセスできるようにするトランザク
ション・照会並行処理を支援する。いずれの時点におい
ても、データページの最大限固定された有限な数の論理
バージョンがディスク上に動的に維持される。例えば、
最新コミットバージョンおよび作業バージョンに加え、
動的4バージョン管理方式は2の照会バージョンを維持
し、動的5バージョン管理方式は3の照会バージョンを
維持する。ロッキングすることなく、照会は、それぞれ
の開始時刻に従って、適切な照会バージョンにアクセス
する。データベースの全ページの対応する各照会バージ
ョンは、トランザクションと両立するデータベーススナ
ップショットを表現する。最新コミットバージョンは、
トランザクションまたは照会の処理に割り込むことなく
新しい照会バージョンになるために常にスナップショッ
トされる準備ができている。通常の並行性制御機構によ
って、トランザクションは最新のバージョンにアクセス
し、コミットされる前にディスクのデータベースに各自
の更新を書き込むことができる。
【0009】各ページについて無限数の旧バージョンが
読み出し専用の照会のために維持されるような従来のマ
ルチバージョン管理方式とは異なり、本発明に従った動
的有限バージョン管理方式は、有限のバージョンだけを
維持することによりトランザクション・照会並行処理を
支援する。その結果、記憶域のオーバヘッドおよびバー
ジョン管理の複雑さは相当に低減される。
読み出し専用の照会のために維持されるような従来のマ
ルチバージョン管理方式とは異なり、本発明に従った動
的有限バージョン管理方式は、有限のバージョンだけを
維持することによりトランザクション・照会並行処理を
支援する。その結果、記憶域のオーバヘッドおよびバー
ジョン管理の複雑さは相当に低減される。
【0010】さらに多くの記憶域を節約するために、1
ページの物理コピーは同時に多数の論理バージョンを表
現することもでき、それはさらに、必要に応じて多数の
コピーに動的に拡張することができる。さらに、新しい
トランザクションによる更新は、古くなったバージョン
のページを上書きする。物理ページのコピーが表現する
正しいバージョンは動的かつ暗黙的に変化し、以降、そ
のページが参照された時に、動的バージョン識別によっ
て認識される。経時不変および経時変化データ構造を用
いた新機構は、照会スナップショットを定義し、トラン
ザクションまたは照会処理のいずれも割り込まれること
なく新しい照会スナップショットが行われるようにし、
トランザクションおよび照会アクセスのための適切なバ
ージョンを動的かつ迅速に識別し、ページに対する通常
の読み出しアクセスにおいて、必要な論理バージョンを
表現するのに単一のページコピーだけで十分であると認
識された場合には効率的なオンザフライ式の不要部分の
整理を可能にするために開発された。
ページの物理コピーは同時に多数の論理バージョンを表
現することもでき、それはさらに、必要に応じて多数の
コピーに動的に拡張することができる。さらに、新しい
トランザクションによる更新は、古くなったバージョン
のページを上書きする。物理ページのコピーが表現する
正しいバージョンは動的かつ暗黙的に変化し、以降、そ
のページが参照された時に、動的バージョン識別によっ
て認識される。経時不変および経時変化データ構造を用
いた新機構は、照会スナップショットを定義し、トラン
ザクションまたは照会処理のいずれも割り込まれること
なく新しい照会スナップショットが行われるようにし、
トランザクションおよび照会アクセスのための適切なバ
ージョンを動的かつ迅速に識別し、ページに対する通常
の読み出しアクセスにおいて、必要な論理バージョンを
表現するのに単一のページコピーだけで十分であると認
識された場合には効率的なオンザフライ式の不要部分の
整理を可能にするために開発された。
【0011】
【実施例】本発明の説明に関して、トランザクション/
照会管理プログラムまたはスケジューラは、要求が更新
トランザクションまたは読み出し専用照会から出たもの
であるかどうかを知っているものと仮定する。二相ロッ
キングまたはタイムスタンプ順序づけといった並行性制
御機構は、トランザクション間の並行性制御の細分性と
してのページにより、異なる更新トランザクションにつ
いて直列化可能順序を維持するために前提とされてい
る。「ページ」は、記憶媒体上の空間の規定単位であ
り、1以上のレコードを含んでいる。多くのコンピュー
タの場合、1ページは1024バイトであり、1バイト
は単一の文字を表現するために必要なビット数(通常は
8ビット)である。しかし本発明の説明では、用語「ペ
ージ」は、いずれかの任意のデータブロックとする場合
もある。本発明の実際では、照会とトランザクションと
の間で、または異なる照会の間での同期化はまったく生
じない。
照会管理プログラムまたはスケジューラは、要求が更新
トランザクションまたは読み出し専用照会から出たもの
であるかどうかを知っているものと仮定する。二相ロッ
キングまたはタイムスタンプ順序づけといった並行性制
御機構は、トランザクション間の並行性制御の細分性と
してのページにより、異なる更新トランザクションにつ
いて直列化可能順序を維持するために前提とされてい
る。「ページ」は、記憶媒体上の空間の規定単位であ
り、1以上のレコードを含んでいる。多くのコンピュー
タの場合、1ページは1024バイトであり、1バイト
は単一の文字を表現するために必要なビット数(通常は
8ビット)である。しかし本発明の説明では、用語「ペ
ージ」は、いずれかの任意のデータブロックとする場合
もある。本発明の実際では、照会とトランザクションと
の間で、または異なる照会の間での同期化はまったく生
じない。
【0012】本発明の以下の説明において、効果的なト
ランザクション・照会並行処理環境のための要求条件を
まず説明する。これらの要求条件にもとづいて、その要
求条件すべてを満足させる動的4バージョン管理方式を
提示する。照会スナップショット機構および動的バージ
ョン識別アルゴリズムを紹介する。最後に、5以上また
は4未満のバージョンを用いた動的有限バージョン管理
方式などのいくつかの代替実施例および長期連続照会の
管理を検討する。
ランザクション・照会並行処理環境のための要求条件を
まず説明する。これらの要求条件にもとづいて、その要
求条件すべてを満足させる動的4バージョン管理方式を
提示する。照会スナップショット機構および動的バージ
ョン識別アルゴリズムを紹介する。最後に、5以上また
は4未満のバージョンを用いた動的有限バージョン管理
方式などのいくつかの代替実施例および長期連続照会の
管理を検討する。
【0013】初めに、トランザクション・照会並行処理
を効果的に支援するシステムの重要な特徴を以下のよう
に識別する。 (1) 干渉がない トランザクション・照会並行処理を効果的に支援するた
めの第1の要求条件は、読み出し専用照会と更新トラン
ザクションとの間にいかなる形での干渉もないことであ
る。第1の、そして最も明白な干渉は、トランザクショ
ンによる照会の阻止または照会によるトランザクション
の阻止である。こうした干渉をなくすために、照会は、
アクセスするデータ対象にいかなるロックもかけるべき
ではない。第2の干渉は、照会がより新しいデータベー
スにアクセスできるようにするためのトランザクション
および/または照会の静止状態の要求である。第3の干
渉は、トランザクション更新の余地を作るために早期の
不要部分の整理による長期連続照会の強制放棄である。 (2) 照会アクセスの最新性 トランザクション・照会並行処理のための重要な要求条
件は、照会ができる限り最新のデータベースを読み出す
べきことである。トランザクションと照会との間にいか
なる干渉もない純粋な方式は、照会が初期データベース
にアクセスできるようにすることである。この純粋方式
の代替となるのは、データベース全体のコピーを定期的
に行うことであるが、この間、トランザクションまたは
照会はまったくデータベースにアクセスできない。デー
タベース全体のコピーは長時間かかるので、頻繁に実行
することはできない。その結果、照会は、相当に古いデ
ータベース状態を読み出す場合もあり、そのため有用性
に劣る結果を提供することになる。 (3) 効率的なバージョン管理 効率的なバージョン管理は、旧バージョンを維持するた
めの効果的な記憶域の利用、トランザクションおよび照
会のための迅速なバージョン検索、および、効率的な不
要部分の整理を含む。あるデータ対象について維持され
たバージョン数が無限になり得る場合、バージョン管理
は複雑かつ費用がかかるようになり、特に不要部分の整
理は実施が難しい。最大限の固定した限定されたバージ
ョン数を維持することにより、効率的なバージョン管理
が可能になる。 (4) 更新前イメージの物理コピーを行わない 従来のマルチバージョン管理方式では、ページの更新前
イメージは、新しいトランザクション更新がデータベー
スに書き込み可能となる前に、作業領域にコピーされ
る。“The Performance of Mul
tiversionConcurrency Cont
rol Algorithms”(ACMTrans.
on Computer Systems,vol.
4,no.4,pp.338−378,Novembe
r 1986)においてM.J.CareyおよびW.
A.Muhannaによって説明されたマルチバージョ
ン並行性制御アルゴリズムの性能評価で示されたよう
に、こうした更新前イメージのコピーのコストは、マル
チバージョンアルゴリズムのトランザクション性能をシ
ングルバージョンアルゴリズムよりも悪化させる原因と
なる。
を効果的に支援するシステムの重要な特徴を以下のよう
に識別する。 (1) 干渉がない トランザクション・照会並行処理を効果的に支援するた
めの第1の要求条件は、読み出し専用照会と更新トラン
ザクションとの間にいかなる形での干渉もないことであ
る。第1の、そして最も明白な干渉は、トランザクショ
ンによる照会の阻止または照会によるトランザクション
の阻止である。こうした干渉をなくすために、照会は、
アクセスするデータ対象にいかなるロックもかけるべき
ではない。第2の干渉は、照会がより新しいデータベー
スにアクセスできるようにするためのトランザクション
および/または照会の静止状態の要求である。第3の干
渉は、トランザクション更新の余地を作るために早期の
不要部分の整理による長期連続照会の強制放棄である。 (2) 照会アクセスの最新性 トランザクション・照会並行処理のための重要な要求条
件は、照会ができる限り最新のデータベースを読み出す
べきことである。トランザクションと照会との間にいか
なる干渉もない純粋な方式は、照会が初期データベース
にアクセスできるようにすることである。この純粋方式
の代替となるのは、データベース全体のコピーを定期的
に行うことであるが、この間、トランザクションまたは
照会はまったくデータベースにアクセスできない。デー
タベース全体のコピーは長時間かかるので、頻繁に実行
することはできない。その結果、照会は、相当に古いデ
ータベース状態を読み出す場合もあり、そのため有用性
に劣る結果を提供することになる。 (3) 効率的なバージョン管理 効率的なバージョン管理は、旧バージョンを維持するた
めの効果的な記憶域の利用、トランザクションおよび照
会のための迅速なバージョン検索、および、効率的な不
要部分の整理を含む。あるデータ対象について維持され
たバージョン数が無限になり得る場合、バージョン管理
は複雑かつ費用がかかるようになり、特に不要部分の整
理は実施が難しい。最大限の固定した限定されたバージ
ョン数を維持することにより、効率的なバージョン管理
が可能になる。 (4) 更新前イメージの物理コピーを行わない 従来のマルチバージョン管理方式では、ページの更新前
イメージは、新しいトランザクション更新がデータベー
スに書き込み可能となる前に、作業領域にコピーされ
る。“The Performance of Mul
tiversionConcurrency Cont
rol Algorithms”(ACMTrans.
on Computer Systems,vol.
4,no.4,pp.338−378,Novembe
r 1986)においてM.J.CareyおよびW.
A.Muhannaによって説明されたマルチバージョ
ン並行性制御アルゴリズムの性能評価で示されたよう
に、こうした更新前イメージのコピーのコストは、マル
チバージョンアルゴリズムのトランザクション性能をシ
ングルバージョンアルゴリズムよりも悪化させる原因と
なる。
【0014】増分的書き戻し。ほとんどのバッファ管理
方式はトランザクションがコミットされる前にバッファ
から汚れたページの交換を要求するので、アンコミット
トランザクションによる更新は、データベースに書き戻
されることができるようにしなければならない。 (5) トランザクションおよび照会アクセスの個別の索
引がない 照会はできる限り最新のデータベースを読み出し、デー
タベースはトランザクションがそれを更新し続けるにつ
れて進化するので、照会について個別の索引が維持され
た場合、照会アクセスの新しい索引を再構築することが
頻繁に要求される。
方式はトランザクションがコミットされる前にバッファ
から汚れたページの交換を要求するので、アンコミット
トランザクションによる更新は、データベースに書き戻
されることができるようにしなければならない。 (5) トランザクションおよび照会アクセスの個別の索
引がない 照会はできる限り最新のデータベースを読み出し、デー
タベースはトランザクションがそれを更新し続けるにつ
れて進化するので、照会について個別の索引が維持され
た場合、照会アクセスの新しい索引を再構築することが
頻繁に要求される。
【0015】トランザクション・照会並行処理を支援す
るための重要な特徴を識別したので、次に、これらのす
べての特徴を満足させ、データベースのページについて
最大限4バージョンを維持する動的有限バージョン管理
方式を説明する。本発明を実施するデータベースシステ
ムを図1に示す。システム10は、データベース11、
バージョン管理プログラム13およびデータベース管理
システム14を記憶し実行するプロセッサ(中央処理装
置(CPU)および記憶機構)12、ならびに、多数の
端末15および16を含む。プロセッサ12は、単一ま
たは多数のCPUを含むことができる。データベース1
1は、通常、多数の直接アクセス記憶装置(DASD)
に記憶されているが、図1ではそれらの1つだけを例示
している。これらのDASDは例えばディスクパックと
することができ、データ処理技術の当業者は、データベ
ース11とプロセッサ12との間で通信を確立するため
に必要なDASD制御装置およびチャネルをシステムが
含むことを理解されよう。さらに、図1に示すように、
端末は、使用者からの要求を受け付け、使用者に結果を
返送するための入出力(I/O)装置である。トランザ
クションおよび照会は端末から付与され、データベース
管理システム14によって並行的に処理される。データ
ベースのページの多数のバージョンは、以下に詳述する
ように、本発明に従った動的有限バージョン管理方式を
用いてデータベースに維持される。本発明の動的バージ
ョン識別ルーチンを用いることにより、バージョン管理
プログラム13はデータベース管理システム14にトラ
ンザクション・照会並行処理の正確なバージョンを返
す。
るための重要な特徴を識別したので、次に、これらのす
べての特徴を満足させ、データベースのページについて
最大限4バージョンを維持する動的有限バージョン管理
方式を説明する。本発明を実施するデータベースシステ
ムを図1に示す。システム10は、データベース11、
バージョン管理プログラム13およびデータベース管理
システム14を記憶し実行するプロセッサ(中央処理装
置(CPU)および記憶機構)12、ならびに、多数の
端末15および16を含む。プロセッサ12は、単一ま
たは多数のCPUを含むことができる。データベース1
1は、通常、多数の直接アクセス記憶装置(DASD)
に記憶されているが、図1ではそれらの1つだけを例示
している。これらのDASDは例えばディスクパックと
することができ、データ処理技術の当業者は、データベ
ース11とプロセッサ12との間で通信を確立するため
に必要なDASD制御装置およびチャネルをシステムが
含むことを理解されよう。さらに、図1に示すように、
端末は、使用者からの要求を受け付け、使用者に結果を
返送するための入出力(I/O)装置である。トランザ
クションおよび照会は端末から付与され、データベース
管理システム14によって並行的に処理される。データ
ベースのページの多数のバージョンは、以下に詳述する
ように、本発明に従った動的有限バージョン管理方式を
用いてデータベースに維持される。本発明の動的バージ
ョン識別ルーチンを用いることにより、バージョン管理
プログラム13はデータベース管理システム14にトラ
ンザクション・照会並行処理の正確なバージョンを返
す。
【0016】本発明の動的4バージョン管理方式では、
データベースの1ページについて最大限4つのバージョ
ンがディスク上で管理され、最新コミットバージョン
(以下、次照会バージョンと称する場合もある)、作業
バージョンおよび2つの照会バージョンを含む。いずれ
の時点でも、データベースの全ページのその2の照会バ
ージョンは、2つのトランザクションと両立する(しか
し、わずかに古いかもしれない)データベーススナップ
ショット、すなわち、現照会スナップショットおよび前
照会スナップショットを表現する。照会からのいかなる
干渉もなく、トランザクションは現データベースにアク
セスし、それぞれの更新はそれらがコミットされる前に
データベースに書き込まれることができる。これらのア
ンコミット更新は作業バージョンページを生成し、作業
バージョンページは、更新トランザクションがコミット
されるとただちに最新コミットバージョンページにな
る。他方、照会は、照会の開始タイムスタンプおよび照
会スナップショットのタイムスタンプに従って適切な照
会スナップショットからデータベースにアクセスする。
現照会スナップショット以前に発行された照会は前照会
スナップショットから読み出すのに対し、現照会スナッ
プショット以後に発行された照会は現照会スナップショ
ットから読み出す。最新コミットバージョンページは、
いずれの時点でも、以降に着信する照会の新しい現照会
スナップショットになるためにスナップショットされる
準備ができている。アクセスしているアクティブな照会
がまったくなくなると、照会スナップショットは、トラ
ンザクションまたは照会処理のいずれに割り込むことな
く、リアルタイムで自動的に進行する。
データベースの1ページについて最大限4つのバージョ
ンがディスク上で管理され、最新コミットバージョン
(以下、次照会バージョンと称する場合もある)、作業
バージョンおよび2つの照会バージョンを含む。いずれ
の時点でも、データベースの全ページのその2の照会バ
ージョンは、2つのトランザクションと両立する(しか
し、わずかに古いかもしれない)データベーススナップ
ショット、すなわち、現照会スナップショットおよび前
照会スナップショットを表現する。照会からのいかなる
干渉もなく、トランザクションは現データベースにアク
セスし、それぞれの更新はそれらがコミットされる前に
データベースに書き込まれることができる。これらのア
ンコミット更新は作業バージョンページを生成し、作業
バージョンページは、更新トランザクションがコミット
されるとただちに最新コミットバージョンページにな
る。他方、照会は、照会の開始タイムスタンプおよび照
会スナップショットのタイムスタンプに従って適切な照
会スナップショットからデータベースにアクセスする。
現照会スナップショット以前に発行された照会は前照会
スナップショットから読み出すのに対し、現照会スナッ
プショット以後に発行された照会は現照会スナップショ
ットから読み出す。最新コミットバージョンページは、
いずれの時点でも、以降に着信する照会の新しい現照会
スナップショットになるためにスナップショットされる
準備ができている。アクセスしているアクティブな照会
がまったくなくなると、照会スナップショットは、トラ
ンザクションまたは照会処理のいずれに割り込むことな
く、リアルタイムで自動的に進行する。
【0017】各ページについて最大4つの論理データベ
ースバージョンが存在するが、その実施は、単一コピー
データベースの大きさの4倍のディスク空間を要求する
ことはなく、物理ページのコピーが同時にそのページの
多数の論理バージョンを表現することができる。最初
は、各データベースページについて単一のコピーしか存
在しない。データベースページが活発に更新されると、
最大3の追加の物理ページコピーが動的に作成できる。
他方、あるページが長期間更新されない場合、必要な論
理バージョンを維持するには単一ページのコピーだけで
十分であろう。各データベースページについて最大限4
つのバージョンが維持されるので、あるページに対する
更新がデータベースに書き込まれた場合、古くなって不
要なバージョンは上書きできる。上書きの規則は、3つ
のデータベースバージョン、すなわち最新コミットバー
ジョンおよび2つのバージョンをそのまま保存すること
である。
ースバージョンが存在するが、その実施は、単一コピー
データベースの大きさの4倍のディスク空間を要求する
ことはなく、物理ページのコピーが同時にそのページの
多数の論理バージョンを表現することができる。最初
は、各データベースページについて単一のコピーしか存
在しない。データベースページが活発に更新されると、
最大3の追加の物理ページコピーが動的に作成できる。
他方、あるページが長期間更新されない場合、必要な論
理バージョンを維持するには単一ページのコピーだけで
十分であろう。各データベースページについて最大限4
つのバージョンが維持されるので、あるページに対する
更新がデータベースに書き込まれた場合、古くなって不
要なバージョンは上書きできる。上書きの規則は、3つ
のデータベースバージョン、すなわち最新コミットバー
ジョンおよび2つのバージョンをそのまま保存すること
である。
【0018】動的なトランザクションの上書きおよび自
動的な照会スナップショットの進行によって、物理ペー
ジコピーが表現する正確なバージョンが動的に変化す
る。しかし、このバージョン変更(または遷移)は、暗
黙的であり、以後は、トランザクションおよび照会アク
セスの正しいバージョンを動的に識別することによって
認識される。動的バージョン識別および自動的照会スナ
ップショット進行を得るために本発明の一部として、物
理ページコピーの更新時刻およびページコピーを作成し
たトランザクション識別子を含む不変要素と、照会スナ
ップショット時刻ならびに所与の時点でのアクティブな
トランザクションおよび照会を含むシステム状態である
可変要素とを識別するためのデータ構造を用いた新機構
が開発された。
動的な照会スナップショットの進行によって、物理ペー
ジコピーが表現する正確なバージョンが動的に変化す
る。しかし、このバージョン変更(または遷移)は、暗
黙的であり、以後は、トランザクションおよび照会アク
セスの正しいバージョンを動的に識別することによって
認識される。動的バージョン識別および自動的照会スナ
ップショット進行を得るために本発明の一部として、物
理ページコピーの更新時刻およびページコピーを作成し
たトランザクション識別子を含む不変要素と、照会スナ
ップショット時刻ならびに所与の時点でのアクティブな
トランザクションおよび照会を含むシステム状態である
可変要素とを識別するためのデータ構造を用いた新機構
が開発された。
【0019】データベースページについての多数のバー
ジョンを記憶するための物理記憶域は動的に管理され
る。あるページの更新が受信され、そのページについて
単一ページコピーだけが維持される場合、同一トラック
または付近のトラックの3つの物理的に隣接するフリー
ページが一度に割り当てられる。更新はその新しく割り
当てられた3ページのいずれかに書き込まれ、元のコピ
ーはそのまま維持される。この新しく作成されたページ
コピーは、その更新トランザクションがコミットされる
前は作業バージョンページであり、その更新トランザク
ションがコミットされた後は最新コミットバージョンペ
ージになる。これらの3つの追加ページは共に、以後、
論理ページ全部が併合され単一の物理ページによって表
現されるようになった場合、割り当て解除できるが、こ
れはあるページが一定期間更新されなかった場合に生じ
る。一度に3ページの割り当ておよび割り当て解除を行
うという戦略は、記憶域管理を容易にし、データベース
の連続性をよりよく保存することを意図している。ある
いはまた、必要な場合、単一のフリーページだけを割り
当てることができる。
ジョンを記憶するための物理記憶域は動的に管理され
る。あるページの更新が受信され、そのページについて
単一ページコピーだけが維持される場合、同一トラック
または付近のトラックの3つの物理的に隣接するフリー
ページが一度に割り当てられる。更新はその新しく割り
当てられた3ページのいずれかに書き込まれ、元のコピ
ーはそのまま維持される。この新しく作成されたページ
コピーは、その更新トランザクションがコミットされる
前は作業バージョンページであり、その更新トランザク
ションがコミットされた後は最新コミットバージョンペ
ージになる。これらの3つの追加ページは共に、以後、
論理ページ全部が併合され単一の物理ページによって表
現されるようになった場合、割り当て解除できるが、こ
れはあるページが一定期間更新されなかった場合に生じ
る。一度に3ページの割り当ておよび割り当て解除を行
うという戦略は、記憶域管理を容易にし、データベース
の連続性をよりよく保存することを意図している。ある
いはまた、必要な場合、単一のフリーページだけを割り
当てることができる。
【0020】効率的なバージョン管理のために、3つの
配列が維持される。ページマッピッング配列pm〔〕、
タイムスタンプ配列tt〔〕、および、トランザクショ
ン識別子配列tid〔〕である。pm〔〕、tt〔〕お
よびtid〔〕のデータ構造は以下の通りである。
配列が維持される。ページマッピッング配列pm〔〕、
タイムスタンプ配列tt〔〕、および、トランザクショ
ン識別子配列tid〔〕である。pm〔〕、tt〔〕お
よびtid〔〕のデータ構造は以下の通りである。
【0021】 struct pm entry{ next page:int;/*当該論理ページのための次の物理ページ */ order[4]:int;/*4つのバージョンのタイムスタンプ順序づ け*/}pm[M] tt[N]:int;/*物理ページ更新時刻*/ tid[N]:int;/*ページ更新したトランザクションの識別子*/ ページマッピッング配列の大きさは論理ページの総数M
であるが、タイムスタンプ配列およびトランザクション
識別子配列の大きさは両者とも、物理ページの総数Nで
ある。ページマッピッング配列の各エントリは、3の追
加ページの先頭ページのアドレスのポインタの他、pm
〔i〕.order
であるが、タイムスタンプ配列およびトランザクション
識別子配列の大きさは両者とも、物理ページの総数Nで
ある。ページマッピッング配列の各エントリは、3の追
加ページの先頭ページのアドレスのポインタの他、pm
〔i〕.order
〔0〕が最新更新バージョンを記憶
するページのアドレスを記録し、pm〔i〕.orde
r〔3〕が最古更新バージョンを指示するような形で、
データベースページの4バージョンのタイムスタンプ順
序づけを維持する。タイムスタンプ配列は物理ページが
更新された時刻を記録し、トランザクション識別子配列
はページを最後に更新したトランザクションの識別子を
維持する。tt〔〕およびtid〔〕は、ページコピー
が作成されると固定され変化しない、不変要素を維持す
るために使用される点に留意されたい。しかし、pm
〔i〕.order〔〕は、あるページの異なるバージ
ョンの更新順序を効率的に認識することを意図してい
る。あるいはまた、そのページが参照されるごとに更新
順序を動的に識別することもできる。
するページのアドレスを記録し、pm〔i〕.orde
r〔3〕が最古更新バージョンを指示するような形で、
データベースページの4バージョンのタイムスタンプ順
序づけを維持する。タイムスタンプ配列は物理ページが
更新された時刻を記録し、トランザクション識別子配列
はページを最後に更新したトランザクションの識別子を
維持する。tt〔〕およびtid〔〕は、ページコピー
が作成されると固定され変化しない、不変要素を維持す
るために使用される点に留意されたい。しかし、pm
〔i〕.order〔〕は、あるページの異なるバージ
ョンの更新順序を効率的に認識することを意図してい
る。あるいはまた、そのページが参照されるごとに更新
順序を動的に識別することもできる。
【0022】経時不変情報は、コピーが作成された時に
各物理ページコピーによって維持されるが、システム状
態に関する経時変化情報は、記憶域に維持され、システ
ム状態が変化した場合のページコピーに対する余分なデ
ィスクアクセスの必要をなくしている。以下では、経時
変化システム状態を維持するための、タイムスタンプ、
アクティブトランザクションリストおよびアクティブ照
会リストを用いたデータ構造について、また、自動照会
スナップショット進行を容易にするためのそのデータ構
造の操作について説明する。
各物理ページコピーによって維持されるが、システム状
態に関する経時変化情報は、記憶域に維持され、システ
ム状態が変化した場合のページコピーに対する余分なデ
ィスクアクセスの必要をなくしている。以下では、経時
変化システム状態を維持するための、タイムスタンプ、
アクティブトランザクションリストおよびアクティブ照
会リストを用いたデータ構造について、また、自動照会
スナップショット進行を容易にするためのそのデータ構
造の操作について説明する。
【0023】トランザクションが開始されると、その識
別子は、現アクティブトランザクションリストAcTL
cur に記録され、コミットされると現アクティブトラン
ザクションリストから除去される。ページがトランザク
ションによってディスク上で更新されると、その更新の
実時間およびトランザクション識別子がそのページにつ
いて記録される。従来のタイムスタンプ方式と異なり、
記録されるのは、トランザクション開始時刻またはトラ
ンザクションコミット時刻ではなく、ページ更新時刻で
ある点に留意されたい。AcTLcur および各物理ペー
ジコピーの記録されたトランザクション識別子は、ペー
ジコピーがコミットバージョンを表現しているか否かを
決定するために使用される。
別子は、現アクティブトランザクションリストAcTL
cur に記録され、コミットされると現アクティブトラン
ザクションリストから除去される。ページがトランザク
ションによってディスク上で更新されると、その更新の
実時間およびトランザクション識別子がそのページにつ
いて記録される。従来のタイムスタンプ方式と異なり、
記録されるのは、トランザクション開始時刻またはトラ
ンザクションコミット時刻ではなく、ページ更新時刻で
ある点に留意されたい。AcTLcur および各物理ペー
ジコピーの記録されたトランザクション識別子は、ペー
ジコピーがコミットバージョンを表現しているか否かを
決定するために使用される。
【0024】現照会スナップショットおよび前照会スナ
ップショットという2のトランザクションと両立するデ
ータベーススナップショットが維持される。照会スナッ
プショットは、タイムスタンプおよび、照会スナップシ
ョットが行われた時点でアクティブなトランザクション
リストによって定義される。現照会スナップショットは
時刻tcqs に行われたデータベーススナップショットで
あり、tcqs および、時刻tcqs にアクティブなトラン
ザクションリストAcTLcqs によって定義される。同
様に、前照会スナップショットは時刻tpqs に行われた
データベーススナップショットであり、tpqs および、
時刻tpqs にアクティブなトランザクションリストAc
TLpqs によって定義される。
ップショットという2のトランザクションと両立するデ
ータベーススナップショットが維持される。照会スナッ
プショットは、タイムスタンプおよび、照会スナップシ
ョットが行われた時点でアクティブなトランザクション
リストによって定義される。現照会スナップショットは
時刻tcqs に行われたデータベーススナップショットで
あり、tcqs および、時刻tcqs にアクティブなトラン
ザクションリストAcTLcqs によって定義される。同
様に、前照会スナップショットは時刻tpqs に行われた
データベーススナップショットであり、tpqs および、
時刻tpqs にアクティブなトランザクションリストAc
TLpqs によって定義される。
【0025】また、各照会スナップショットには2のア
クティブ照会リストが関係する。QLcqs は現照会スナ
ップショットにアクセスするアクティブ照会リストであ
り、QLpqs は前照会スナップショットにアクセスする
アクティブ照会リストである。照会を開始する際には、
その開始時刻のタイムスタンプが割り当てられ、その識
別子がQLcps に含まれる。照会が完了する時は、その
識別子がQLcps またはQLpqs のいずれかから削除さ
れる。QLcps の各自の識別子によって、tcqs 後に開
始された照会は、現照会スナップショットからデータベ
ースを読み出し、これらの照会はtcqs 以前にコミット
された最新のトランザクションによって更新されたペー
ジのバージョンを読み出す。他方、QLpqs の各自の識
別子によって、tpqs とtcqs との間に開始された照会
は、前照会スナップショットからデータベースを読み出
し、これらの照会はtpqs 以前にコミットされた最新の
トランザクションによって更新されたページのバージョ
ンを読み出す。
クティブ照会リストが関係する。QLcqs は現照会スナ
ップショットにアクセスするアクティブ照会リストであ
り、QLpqs は前照会スナップショットにアクセスする
アクティブ照会リストである。照会を開始する際には、
その開始時刻のタイムスタンプが割り当てられ、その識
別子がQLcps に含まれる。照会が完了する時は、その
識別子がQLcps またはQLpqs のいずれかから削除さ
れる。QLcps の各自の識別子によって、tcqs 後に開
始された照会は、現照会スナップショットからデータベ
ースを読み出し、これらの照会はtcqs 以前にコミット
された最新のトランザクションによって更新されたペー
ジのバージョンを読み出す。他方、QLpqs の各自の識
別子によって、tpqs とtcqs との間に開始された照会
は、前照会スナップショットからデータベースを読み出
し、これらの照会はtpqs 以前にコミットされた最新の
トランザクションによって更新されたページのバージョ
ンを読み出す。
【0026】関係するアクティブ照会リストが空になっ
た場合、照会スナップショットは、進行中のトランザク
ションまたは照会のいずれの停止も要さず、リアルタイ
ムで自動的に進められる。すなわち、照会スナップショ
ットにアクセスしているすべてのアクティブな照会が終
了すると、その照会スナップショットはただちに進めら
れる。照会スナップショットの進行(QS進行)は、以
後に開始される照会がより新しいデータベースを読み出
せるようにする。説明を簡略にするために、最初に、Q
Lpqs が空になることによる照会スナップショット進行
を説明する。
た場合、照会スナップショットは、進行中のトランザク
ションまたは照会のいずれの停止も要さず、リアルタイ
ムで自動的に進められる。すなわち、照会スナップショ
ットにアクセスしているすべてのアクティブな照会が終
了すると、その照会スナップショットはただちに進めら
れる。照会スナップショットの進行(QS進行)は、以
後に開始される照会がより新しいデータベースを読み出
せるようにする。説明を簡略にするために、最初に、Q
Lpqs が空になることによる照会スナップショット進行
を説明する。
【0027】QS進行が開始されると、元の現照会スナ
ップショットは新しい前照会スナップショットになり、
その新しい現照会スナップショットは以後の最新のトラ
ンザクション両立データベーススナップショットまで進
行する。記憶域に維持されている関連データ構造に対す
る以下の更新が、次のようなQS進行を実行する。 QLpqs ←QLcqs ;AcTLpqs ;←AcTLcqs ;
tpqs ←tcqs ;QLcqs ←ф;AcTLcqs ←AcT
Lcur ;tcqs ←現在時刻 これらのデータ構造の操作は記憶域で実行され、迅速に
完遂される点に留意されたい。
ップショットは新しい前照会スナップショットになり、
その新しい現照会スナップショットは以後の最新のトラ
ンザクション両立データベーススナップショットまで進
行する。記憶域に維持されている関連データ構造に対す
る以下の更新が、次のようなQS進行を実行する。 QLpqs ←QLcqs ;AcTLpqs ;←AcTLcqs ;
tpqs ←tcqs ;QLcqs ←ф;AcTLcqs ←AcT
Lcur ;tcqs ←現在時刻 これらのデータ構造の操作は記憶域で実行され、迅速に
完遂される点に留意されたい。
【0028】例として、図2に、QLpqs が空になった
時のQS進行のシナリオおよび、各種照会がアクセスす
るバージョンページを、従来のマルチバージョン管理方
式と比較して示す。QS進行(照会スナップショット進
行)は、照会Q0 が完了した瞬間に自動的に開始され
る。全バージョン履歴が潜在的な照会アクセスについて
維持されなければならない従来のマルチバージョン管理
方式に比べて、本発明の動的有限バージョン管理方式
は、有限数のバージョン(図2で丸印でマークされたも
の)だけを維持し、照会スナップショットを自動的に進
める。その相殺される点は、動的有限バージョン管理方
式の場合、照会が、わずかに古いがトランザクションと
両立するデータベース状態を読み出す点である。図2に
示すように、照会Q1 およびQ2 は、動的有限バージョ
ン管理方式では両者ともページバージョンA1を読み出
すのに対して、従来のマルチバージョン管理方式では、
それぞれページバージョンA2およびA4を読み出す。
時のQS進行のシナリオおよび、各種照会がアクセスす
るバージョンページを、従来のマルチバージョン管理方
式と比較して示す。QS進行(照会スナップショット進
行)は、照会Q0 が完了した瞬間に自動的に開始され
る。全バージョン履歴が潜在的な照会アクセスについて
維持されなければならない従来のマルチバージョン管理
方式に比べて、本発明の動的有限バージョン管理方式
は、有限数のバージョン(図2で丸印でマークされたも
の)だけを維持し、照会スナップショットを自動的に進
める。その相殺される点は、動的有限バージョン管理方
式の場合、照会が、わずかに古いがトランザクションと
両立するデータベース状態を読み出す点である。図2に
示すように、照会Q1 およびQ2 は、動的有限バージョ
ン管理方式では両者ともページバージョンA1を読み出
すのに対して、従来のマルチバージョン管理方式では、
それぞれページバージョンA2およびA4を読み出す。
【0029】連続したQS進行およびトランザクション
更新のために、ページコピーが表現するバージョンは動
的かつ連続的に変化する。ページコピーが表現できるバ
ージョンは、W,NQ,CQ,PQおよびRの5つが可
能である。Wは作業バージョン、すなわちアンコミット
トランザクションによって更新されたページを表現す
る。CQは現照会バージョンで、tcqs 以前にコミット
された最新トランザクションによって更新されたバージ
ョンである。NQは次照会バージョンであり、最新コミ
ットバージョンである。トランザクションがコミットさ
れると、それが作成していたすべてのWバージョンはN
Qになる。PQは前照会バージョンであり、tpqs 以前
にコミットされた最新トランザクションによって更新さ
れたバージョンである。Rは古くなった、従って再使用
可能バージョンであり、新しいトランザクション更新に
よって上書きできる。W,NQ,CQ,PQおよびR
は、見えないラベルである点に留意されたい。ページコ
ピーに関して維持された唯一の補助的な情報は、そのペ
ージコピーが作成される時に記録されるタイムスタンプ
およびトランザクション識別子である。作成後、そのペ
ージコピーに対するリビジットの要求はまったくない。
すなわち、バージョン遷移は暗黙的であり、いかなる明
示的なリラベリングもまったく必要ない。
更新のために、ページコピーが表現するバージョンは動
的かつ連続的に変化する。ページコピーが表現できるバ
ージョンは、W,NQ,CQ,PQおよびRの5つが可
能である。Wは作業バージョン、すなわちアンコミット
トランザクションによって更新されたページを表現す
る。CQは現照会バージョンで、tcqs 以前にコミット
された最新トランザクションによって更新されたバージ
ョンである。NQは次照会バージョンであり、最新コミ
ットバージョンである。トランザクションがコミットさ
れると、それが作成していたすべてのWバージョンはN
Qになる。PQは前照会バージョンであり、tpqs 以前
にコミットされた最新トランザクションによって更新さ
れたバージョンである。Rは古くなった、従って再使用
可能バージョンであり、新しいトランザクション更新に
よって上書きできる。W,NQ,CQ,PQおよびR
は、見えないラベルである点に留意されたい。ページコ
ピーに関して維持された唯一の補助的な情報は、そのペ
ージコピーが作成される時に記録されるタイムスタンプ
およびトランザクション識別子である。作成後、そのペ
ージコピーに対するリビジットの要求はまったくない。
すなわち、バージョン遷移は暗黙的であり、いかなる明
示的なリラベリングもまったく必要ない。
【0030】いずれの所与の時点でも、いずれのデータ
ベースページについて、最低限3の論理バージョン、C
Q、NQおよびPQが存在する。しかし、単一の物理ペ
ージコピーは、(PQ,CQ),(CQ,NQ)または
(PQ,CQ,NQ)といったように、多数の論理バー
ジョンを同時に表現することができる。あるページが表
現する正確なバージョンは、(a)トランザクションが
そのページを更新した、(b)更新トランザクションが
コミットされた、(c)照会スナップショットが進行し
た場合に、動的かつ暗黙的に変化する。バージョン遷移
についての原則は以下に説明する。
ベースページについて、最低限3の論理バージョン、C
Q、NQおよびPQが存在する。しかし、単一の物理ペ
ージコピーは、(PQ,CQ),(CQ,NQ)または
(PQ,CQ,NQ)といったように、多数の論理バー
ジョンを同時に表現することができる。あるページが表
現する正確なバージョンは、(a)トランザクションが
そのページを更新した、(b)更新トランザクションが
コミットされた、(c)照会スナップショットが進行し
た場合に、動的かつ暗黙的に変化する。バージョン遷移
についての原則は以下に説明する。
【0031】VT1:トランザクション書き込み(Tx
書き込み)時、新規データは、すでにWが存在している
場合はWバージョンに書き込まれる。存在していない場
合、新規データは最新更新Rバージョンに書き込まれ
る。両者の場合とも、更新バージョンは新しいWバージ
ョンになる。
書き込み)時、新規データは、すでにWが存在している
場合はWバージョンに書き込まれる。存在していない場
合、新規データは最新更新Rバージョンに書き込まれ
る。両者の場合とも、更新バージョンは新しいWバージ
ョンになる。
【0032】VT2:トランザクションコミット(Tx
コミット)時、それが個々にページコピーによって表現
されている場合、WはNQになり、元のNQはRにな
る。例として、図3に初期状態からの論理ページについ
てのいくつかのバージョン遷移を示す。(空間限界につ
いては、そのページの全体のバージョン遷移を実証して
いない。)図3の遷移3,5および12は、Tx コミッ
ト時のバージョン遷移に関するシナリオを実証してい
る。遷移3は、ページコピーP2がWからNQになるこ
とを示しており、ページコピーP1は(PQ,CQ,N
Q)から(PQ,CQ)へ変化する。遷移5は、P2が
本来NQしか表現していないので、ページコピーP2が
NQからRになることを示している。
コミット)時、それが個々にページコピーによって表現
されている場合、WはNQになり、元のNQはRにな
る。例として、図3に初期状態からの論理ページについ
てのいくつかのバージョン遷移を示す。(空間限界につ
いては、そのページの全体のバージョン遷移を実証して
いない。)図3の遷移3,5および12は、Tx コミッ
ト時のバージョン遷移に関するシナリオを実証してい
る。遷移3は、ページコピーP2がWからNQになるこ
とを示しており、ページコピーP1は(PQ,CQ,N
Q)から(PQ,CQ)へ変化する。遷移5は、P2が
本来NQしか表現していないので、ページコピーP2が
NQからRになることを示している。
【0033】VT3:QLpqs が空になることによるQ
S進行時、現照会スナップショットは前照会スナップシ
ョットになり、新しい現照会スナップショットは最新コ
ミットページバージョンのスナップショットを行うこと
によって進められる。こうしたQS進行のバージョン遷
移は、以下を含む。(i)元のPQは、それが個々にペ
ージコピーによって表現されている場合、Rになる(図
4の遷移16〜19参照)、(ii)元のCQは、それ
が個々にページコピーによって表現されている場合、P
Qになる(図4の遷移18および19参照)、(ii
i)元のNQは、それが個々にページコピーによって表
現されている場合、CQになる(図3の遷移9および1
0ならびに図4の遷移18および19参照)。図3およ
び図4から、CQおよびNQは、QS進行後、同一ペー
ジコピーによって表現されている。図3の遷移1および
8は、PQ、CQおよびNQすべてが単一のページコピ
ーによって表現されている場合は何も生じないことを実
証している。
S進行時、現照会スナップショットは前照会スナップシ
ョットになり、新しい現照会スナップショットは最新コ
ミットページバージョンのスナップショットを行うこと
によって進められる。こうしたQS進行のバージョン遷
移は、以下を含む。(i)元のPQは、それが個々にペ
ージコピーによって表現されている場合、Rになる(図
4の遷移16〜19参照)、(ii)元のCQは、それ
が個々にページコピーによって表現されている場合、P
Qになる(図4の遷移18および19参照)、(ii
i)元のNQは、それが個々にページコピーによって表
現されている場合、CQになる(図3の遷移9および1
0ならびに図4の遷移18および19参照)。図3およ
び図4から、CQおよびNQは、QS進行後、同一ペー
ジコピーによって表現されている。図3の遷移1および
8は、PQ、CQおよびNQすべてが単一のページコピ
ーによって表現されている場合は何も生じないことを実
証している。
【0034】暗黙的なバージョン遷移および自動的な照
会スナップショット進行は、トランザクションおよび照
会アクセスについての正しいバージョンを動的に識別す
ることにより可能となる。その基本的な考えは、ページ
が表現するバージョンを認識するために、各ページコピ
ーに維持されている不変要素を、記憶域に記憶された可
変要素と比較することである。
会スナップショット進行は、トランザクションおよび照
会アクセスについての正しいバージョンを動的に識別す
ることにより可能となる。その基本的な考えは、ページ
が表現するバージョンを認識するために、各ページコピ
ーに維持されている不変要素を、記憶域に記憶された可
変要素と比較することである。
【0035】動的なバージョン識別を実証するための例
として、図5および図6にtcqs およびtpqs に関する
すべての可能なバージョン構成を示す。バージョンのコ
ミット時刻にもとづいて、各類別における多数の例があ
る。類別(I)は、最新バージョンがtpqs 前に更新さ
れた場合の全部のバージョン構成を示す。類別(II)
は、最新のバージョンがtcqs 前に更新された場合の全
部のバージョン構成を示す。類別(III)は、tcqs
後に更新された1バージョンだけが存在する場合の全部
のバージョン構成を示す。類別(IV)は、tcqs 後に
更新された2バージョンが存在する場合の全部のバージ
ョン構成を示す。図5の類別(I)では、最新バージョ
ンを作成したトランザクション、T=tid〔P0〕と
仮定して、
として、図5および図6にtcqs およびtpqs に関する
すべての可能なバージョン構成を示す。バージョンのコ
ミット時刻にもとづいて、各類別における多数の例があ
る。類別(I)は、最新バージョンがtpqs 前に更新さ
れた場合の全部のバージョン構成を示す。類別(II)
は、最新のバージョンがtcqs 前に更新された場合の全
部のバージョン構成を示す。類別(III)は、tcqs
後に更新された1バージョンだけが存在する場合の全部
のバージョン構成を示す。類別(IV)は、tcqs 後に
更新された2バージョンが存在する場合の全部のバージ
ョン構成を示す。図5の類別(I)では、最新バージョ
ンを作成したトランザクション、T=tid〔P0〕と
仮定して、
【0036】
【数1】 によって示されるように、トランザクションTがまだ現
時点でコミットされていない場合、バージョン構成は例
1である。
時点でコミットされていない場合、バージョン構成は例
1である。
【0037】
【数2】 によって示されるように、トランザクションTがtcqs
後にコミットされた場合、バージョン構成は例2であ
る。
後にコミットされた場合、バージョン構成は例2であ
る。
【0038】
【数3】 によって示されるように、トランザクションTがtpqs
とtcqs との間にコミットされた場合、バージョン構成
は例3である。
とtcqs との間にコミットされた場合、バージョン構成
は例3である。
【0039】
【数4】 によって示されるように、トランザクションTがtpqs
前にコミットされた場合(TX/AcTLcur ,TX/
AcTLcqs 、TX/AcTLpqs によって示され
る)、バージョン構成は例4である。
前にコミットされた場合(TX/AcTLcur ,TX/
AcTLcqs 、TX/AcTLpqs によって示され
る)、バージョン構成は例4である。
【0040】以下に、トランザクション読み出し、照会
読み出しおよびトランザクション書き込みの正しいバー
ジョンを識別するルーチンの疑似コードを説明する。
読み出しおよびトランザクション書き込みの正しいバー
ジョンを識別するルーチンの疑似コードを説明する。
【0041】トランザクション読み出し:トランザクシ
ョン読み出し(Tx 読み出し)は最新更新バージョンを
得る。最新更新バージョンが最新コミットバージョンと
はならない点に留意されたい。それはまだ作業バージョ
ンであり、最新更新を実行した同一トランザクションに
よって再び読み出される。
ョン読み出し(Tx 読み出し)は最新更新バージョンを
得る。最新更新バージョンが最新コミットバージョンと
はならない点に留意されたい。それはまだ作業バージョ
ンであり、最新更新を実行した同一トランザクションに
よって再び読み出される。
【0042】照会読み出し:CQまたはPQバージョン
は、照会の開始タイムスタンプに従って、照会読み出し
(Q読み出し)時に返される。要求側照会のタイムスタ
ンプがtcqs よりも大きい場合、CQが返される。他
方、要求側照会のタイムスタンプがtpqs よりも大きい
がtcps より小さい場合、PQバージョンが返される。
Locate_CQルーチンはCQバージョンを表現す
るページコピーを返し、同様に、Locate_PQル
ーチンはPQバージョンを表現するページコピーを返
す。
は、照会の開始タイムスタンプに従って、照会読み出し
(Q読み出し)時に返される。要求側照会のタイムスタ
ンプがtcqs よりも大きい場合、CQが返される。他
方、要求側照会のタイムスタンプがtpqs よりも大きい
がtcps より小さい場合、PQバージョンが返される。
Locate_CQルーチンはCQバージョンを表現す
るページコピーを返し、同様に、Locate_PQル
ーチンはPQバージョンを表現するページコピーを返
す。
【0043】図7は、Locate_CQルーチンの論
理の流れ図を示す。プロセスは、機能ブロック71でレ
ジスタiを0に初期化することにより始まる。その後、
タイムスタンプ配列tt〔Pi 〕は、決定ブロック72
で時刻tcqs と比較される。タイムスタンプ配列tt
〔Pi 〕がtcqs より大きい限り、レジスタiは機能ブ
ロック73で1ずつ増分され、プロセスは決定ブロック
72にループバックする。しかし、タイムスタンプ配列
tt〔Pi 〕が時刻tcqs 以上になると、プロセスは決
定ブロック74に進み、トランザクション識別子配列t
id〔Pi 〕がアクティブトランザクションリストAc
TLcqs 内にあるかどうかを判定するために検査が行わ
れる。リスト内にあれば、機能ブロック75でバージョ
ンPi+1 が返される。なければ、機能ブロック76でバ
ージョンPi が返される。
理の流れ図を示す。プロセスは、機能ブロック71でレ
ジスタiを0に初期化することにより始まる。その後、
タイムスタンプ配列tt〔Pi 〕は、決定ブロック72
で時刻tcqs と比較される。タイムスタンプ配列tt
〔Pi 〕がtcqs より大きい限り、レジスタiは機能ブ
ロック73で1ずつ増分され、プロセスは決定ブロック
72にループバックする。しかし、タイムスタンプ配列
tt〔Pi 〕が時刻tcqs 以上になると、プロセスは決
定ブロック74に進み、トランザクション識別子配列t
id〔Pi 〕がアクティブトランザクションリストAc
TLcqs 内にあるかどうかを判定するために検査が行わ
れる。リスト内にあれば、機能ブロック75でバージョ
ンPi+1 が返される。なければ、機能ブロック76でバ
ージョンPi が返される。
【0044】以下の疑似コードは、図7の流れ図の論理
を実施する。この疑似コードから、特定のアプリケーシ
ョンのために、いずれかの適切なコンピュータ言語で原
始コードを書くことができる。
を実施する。この疑似コードから、特定のアプリケーシ
ョンのために、いずれかの適切なコンピュータ言語で原
始コードを書くことができる。
【0045】
【0046】
【数5】 バージョンPi+1 ヘリターン elseバージョンPi へリターン 図8は、Locate_PQルーチンの論理の流れ図を
示す。プロセスは、機能ブロック81でレジスタiを0
に初期化することにより始まる。その後、タイムスタン
プ配列tt〔Pi 〕は、決定ブロック82で時刻tpqs
と比較される。タイムスタンプ配列tt〔Pi 〕がtpq
s より大きい限り、レジスタiは機能ブロック83で1
ずつ増分され、プロセスは決定ブロック82にループバ
ックする。しかし、タイムスタンプ配列tt〔Pi 〕が
時刻tpqs 以上になると、プロセスは決定ブロック84
に進み、トランザクション識別子配列tid〔Pi 〕が
アクティブトランザクションリストAcTLpqs 内にあ
るかどうかを判定するために検査が行われる。リスト内
にあれば、機能ブロック85でバージョンPi+1 が返さ
れる。なければ、機能ブロック86でバージョンPi が
返される。
示す。プロセスは、機能ブロック81でレジスタiを0
に初期化することにより始まる。その後、タイムスタン
プ配列tt〔Pi 〕は、決定ブロック82で時刻tpqs
と比較される。タイムスタンプ配列tt〔Pi 〕がtpq
s より大きい限り、レジスタiは機能ブロック83で1
ずつ増分され、プロセスは決定ブロック82にループバ
ックする。しかし、タイムスタンプ配列tt〔Pi 〕が
時刻tpqs 以上になると、プロセスは決定ブロック84
に進み、トランザクション識別子配列tid〔Pi 〕が
アクティブトランザクションリストAcTLpqs 内にあ
るかどうかを判定するために検査が行われる。リスト内
にあれば、機能ブロック85でバージョンPi+1 が返さ
れる。なければ、機能ブロック86でバージョンPi が
返される。
【0047】以下の疑似コードは、図8の流れ図の論理
を実施する。この疑似コードから、特定のアプリケーシ
ョンのために、いずれかの適切なコンピュータ言語で原
始コードを書くことができる。
を実施する。この疑似コードから、特定のアプリケーシ
ョンのために、いずれかの適切なコンピュータ言語で原
始コードを書くことができる。
【0048】
【0049】
【数6】 バージョンPi+1 へリターン elseバージョンPi へリターン トランザクションがコミットされた場合、その識別子は
AcTLcur からのみ削除される点に留意されたい。そ
の結果、所与の時点で、ページコピーは、現在のデータ
ベースに関してNQバージョンになることができるが、
照会スナップショットに関しては依然として作業バージ
ョンを表現することができる。AcTLcqs およびAc
TLpqs の維持により、スナップショットが行われた時
点の作業バージョンは正しく認識できる。
AcTLcur からのみ削除される点に留意されたい。そ
の結果、所与の時点で、ページコピーは、現在のデータ
ベースに関してNQバージョンになることができるが、
照会スナップショットに関しては依然として作業バージ
ョンを表現することができる。AcTLcqs およびAc
TLpqs の維持により、スナップショットが行われた時
点の作業バージョンは正しく認識できる。
【0050】図9は、Locate_CQおよびLoc
ate_PQによる動的バージョン識別のためのタイム
スタンプおよびトランザクション識別子の使用例を示
す。Q1 およびQ2 の2の照会がアクティブである。t
pqs とtcqs との間に開始されたQ1 は、PQバージョ
ンにアクセスし、tcqs 後に開始されたQ2 は、CQバ
ージョンにアクセスする。各ページコピーによって維持
されたデータ構造がトランザクション識別子tidおよ
びタイムスタンプttだけである点に留意されたい。ペ
ージAが照会Q2 によって参照された場合、そのタイム
スタンプがtcqs 未満で最大のタイムスタンプであり、
かつ、そのtidがAcTLcqs 内にないので、ページ
コピーP3、CQバージョンがLocate_CQによ
って返される。ページBが照会Q1 およびQ2 によって
参照された場合、それがページBのCQおよびPQバー
ジョンを同時に表現しているので、ページコピーP4が
Locate_CQおよびLocate_PQの両者に
よって返される。
ate_PQによる動的バージョン識別のためのタイム
スタンプおよびトランザクション識別子の使用例を示
す。Q1 およびQ2 の2の照会がアクティブである。t
pqs とtcqs との間に開始されたQ1 は、PQバージョ
ンにアクセスし、tcqs 後に開始されたQ2 は、CQバ
ージョンにアクセスする。各ページコピーによって維持
されたデータ構造がトランザクション識別子tidおよ
びタイムスタンプttだけである点に留意されたい。ペ
ージAが照会Q2 によって参照された場合、そのタイム
スタンプがtcqs 未満で最大のタイムスタンプであり、
かつ、そのtidがAcTLcqs 内にないので、ページ
コピーP3、CQバージョンがLocate_CQによ
って返される。ページBが照会Q1 およびQ2 によって
参照された場合、それがページBのCQおよびPQバー
ジョンを同時に表現しているので、ページコピーP4が
Locate_CQおよびLocate_PQの両者に
よって返される。
【0051】トランザクション書き込み:Tx 書き込み
の原則は、Wが存在する場合に、Wバージョンを書き込
み、存在しなければ最新更新Rバージョンを書き込むこ
とである。CQ,PQおよびNQバージョンはそのまま
保持され、不干渉のトランザクション・照会並行処理を
可能にする。Locate_WRルーチンは、それが存
在する場合に、Wバージョンを位置指定し、存在しない
場合は、NQとCQとの間、または、CQとPQとの間
のいずれかに作成される、最新更新Rを位置指定する。
の原則は、Wが存在する場合に、Wバージョンを書き込
み、存在しなければ最新更新Rバージョンを書き込むこ
とである。CQ,PQおよびNQバージョンはそのまま
保持され、不干渉のトランザクション・照会並行処理を
可能にする。Locate_WRルーチンは、それが存
在する場合に、Wバージョンを位置指定し、存在しない
場合は、NQとCQとの間、または、CQとPQとの間
のいずれかに作成される、最新更新Rを位置指定する。
【0052】図10は、Locate_WRルーチンの
論理の流れ図を示す。プロセスは、決定ブロック101
でトランザクション識別子配列tid〔P0 〕がアクテ
ィブトランザクションリストAcTLcur 内にあるかど
うかを判定することにより始まる。リスト内にあれば、
機能ブロック102でバージョンP0 のバージョンが返
される。なければ、機能ブロック103でバージョンP
m についてLocate_CQルーチンが呼び出され、
続いて、機能ブロック104でバージョンPnについて
Locate_PQルーチンが呼び出される。その後、
決定ブロック105で、m=2またはn−m=2である
かを判定するために検査が行われる。これらの条件のい
ずれかが満たされた場合、機能ブロック106でバージ
ョンP1が返される。満たされない場合、機能ブロック
107でバージョンPn+1 が返される。
論理の流れ図を示す。プロセスは、決定ブロック101
でトランザクション識別子配列tid〔P0 〕がアクテ
ィブトランザクションリストAcTLcur 内にあるかど
うかを判定することにより始まる。リスト内にあれば、
機能ブロック102でバージョンP0 のバージョンが返
される。なければ、機能ブロック103でバージョンP
m についてLocate_CQルーチンが呼び出され、
続いて、機能ブロック104でバージョンPnについて
Locate_PQルーチンが呼び出される。その後、
決定ブロック105で、m=2またはn−m=2である
かを判定するために検査が行われる。これらの条件のい
ずれかが満たされた場合、機能ブロック106でバージ
ョンP1が返される。満たされない場合、機能ブロック
107でバージョンPn+1 が返される。
【0053】以下の疑似コードは、図10の流れ図の論
理を実施する。この疑似コードから、特定のアプリケー
ションのために、いずれかの適切なコンピュータ言語で
原始コードを書くことができる。
理を実施する。この疑似コードから、特定のアプリケー
ションのために、いずれかの適切なコンピュータ言語で
原始コードを書くことができる。
【0054】ルーチン
【0055】
【数7】 最新更新バージョンがページのNQバージョンであり、
それがtpqs 以前に作成されたものである場合、その後
PQ,CQおよびNQはすべて単一のページコピーによ
って表現される。他の3ページは整理することができ
る。データベースの連続性を保つために、結合されたP
Q,CQおよびNQバージョンは最初に割り当てられて
いたページにコピーし直され、その3の隣接物理ページ
は解放される。不要部分の整理は、トランザクションま
たは照会による読み出し動作がそうした状態を検出した
場合、または、Tx 書き込みが3の追加ページを必要と
した場合、常に実行できる。
それがtpqs 以前に作成されたものである場合、その後
PQ,CQおよびNQはすべて単一のページコピーによ
って表現される。他の3ページは整理することができ
る。データベースの連続性を保つために、結合されたP
Q,CQおよびNQバージョンは最初に割り当てられて
いたページにコピーし直され、その3の隣接物理ページ
は解放される。不要部分の整理は、トランザクションま
たは照会による読み出し動作がそうした状態を検出した
場合、または、Tx 書き込みが3の追加ページを必要と
した場合、常に実行できる。
【0056】現照会スナップショットは、その現照会ス
ナップショットにアクセスするアクティブな照会がまっ
たく存在しなくなると進行できる。その結果、以後の照
会はより新しいデータベース状態にアクセスできる。新
しい照会が着信し、現照会スナップショットにアクセス
する他のアクティブな照会がまったく存在しない場合、
新しい現照会スナップショットが行われる。このような
照会スナップショットを進めるために、AcTLcqs は
AcTLcur が割り当てられ、tcqs は現在時刻が割り
当てられる。このようなQS進行でのバージョン遷移の
原則は以下の通りである。
ナップショットにアクセスするアクティブな照会がまっ
たく存在しなくなると進行できる。その結果、以後の照
会はより新しいデータベース状態にアクセスできる。新
しい照会が着信し、現照会スナップショットにアクセス
する他のアクティブな照会がまったく存在しない場合、
新しい現照会スナップショットが行われる。このような
照会スナップショットを進めるために、AcTLcqs は
AcTLcur が割り当てられ、tcqs は現在時刻が割り
当てられる。このようなQS進行でのバージョン遷移の
原則は以下の通りである。
【0057】VT3’:元のCQは、それがページコピ
ーによって個々に表現されている場合、Rになり、元の
NQはCQになる。
ーによって個々に表現されている場合、Rになり、元の
NQはCQになる。
【0058】QS進行がQLpqs またはQLcqs のいず
れかが空になったために開始できる場合、Locate
_CQおよびLocate_PQルーチンはやはり同一
であるが、Locate_WRルーチンは若干の修正を
要する。
れかが空になったために開始できる場合、Locate
_CQおよびLocate_PQルーチンはやはり同一
であるが、Locate_WRルーチンは若干の修正を
要する。
【0059】ルーチン Locate WR′:
【0060】
【数8】 システム内にアクティブな照会がまったく存在しない場
合、いかなる照会バージョンも要求されない点に留意さ
れたい。一定期間システム内でまったく照会がアクティ
ブにならない後にようやく照会が着信した場合、最新コ
ミットバージョンの照会スナップショットはただちに行
うことができ、新しく着信した照会はその新規照会スナ
ップショットにアクセスできる。
合、いかなる照会バージョンも要求されない点に留意さ
れたい。一定期間システム内でまったく照会がアクティ
ブにならない後にようやく照会が着信した場合、最新コ
ミットバージョンの照会スナップショットはただちに行
うことができ、新しく着信した照会はその新規照会スナ
ップショットにアクセスできる。
【0061】上述の動的4バージョン管理方式は、5つ
以上のバージョンに一般化でき、その場合、3つ以上の
照会バージョンが維持される。例えば、動的5バージョ
ン管理方式では、3の照会バージョンが維持できる。照
会バージョンが大きくなるにつれて、平均して、照会ス
ナップショット進行の頻度は増す。従って、照会はより
新しいデータベース状態を読み出すことになる。
以上のバージョンに一般化でき、その場合、3つ以上の
照会バージョンが維持される。例えば、動的5バージョ
ン管理方式では、3の照会バージョンが維持できる。照
会バージョンが大きくなるにつれて、平均して、照会ス
ナップショット進行の頻度は増す。従って、照会はより
新しいデータベース状態を読み出すことになる。
【0062】各論理ページについて維持される最大バー
ジョン数が3である場合、上述の動的有限バージョン管
理方式は、やはり適用可能であるが、より限定された機
能性を伴う。別の動的3バージョン管理方式は1照会バ
ージョンだけを使用するものである。すなわち、PQバ
ージョンはまったくなく、CQ,NQ,WおよびRバー
ジョンだけが存在する。その結果、照会スナップショッ
トは、システム内にアクティブな照会がまだ存在する場
合、進行できない。アンコミットトランザクションによ
る更新はやはりただちにデータベースに書き込むことが
できる。
ジョン数が3である場合、上述の動的有限バージョン管
理方式は、やはり適用可能であるが、より限定された機
能性を伴う。別の動的3バージョン管理方式は1照会バ
ージョンだけを使用するものである。すなわち、PQバ
ージョンはまったくなく、CQ,NQ,WおよびRバー
ジョンだけが存在する。その結果、照会スナップショッ
トは、システム内にアクティブな照会がまだ存在する場
合、進行できない。アンコミットトランザクションによ
る更新はやはりただちにデータベースに書き込むことが
できる。
【0063】照会スナップショットは関係するアクティ
ブ照会リストが空である場合にのみ進行できるので、長
期連続照会は、以後の照会に相当古いデータベース状態
から読み出させる原因となる。以後の照会のアクセスの
最新性を高めるために、長期連続照会がそれが開始され
た時刻tcqs より小さいタイムスタンプを故意に割り当
て、前照会スナップショットへのアクセスを強制するこ
とができる方法を提起する。その結果、現照会スナップ
ショットはより頻繁に進行できる。3照会バージョンな
ど3以上のバージョン存在する場合、長期連続照会は最
も古い照会バージョンにアクセスするように強いられ、
より新しい2つのバージョンは定期的に進行できる。長
期連続照会を古いバージョンにアクセスするように強い
るこのような方法は、トランザクション管理プログラム
が事前に照会が長期連続であるかどうかを知らされる必
要がある。
ブ照会リストが空である場合にのみ進行できるので、長
期連続照会は、以後の照会に相当古いデータベース状態
から読み出させる原因となる。以後の照会のアクセスの
最新性を高めるために、長期連続照会がそれが開始され
た時刻tcqs より小さいタイムスタンプを故意に割り当
て、前照会スナップショットへのアクセスを強制するこ
とができる方法を提起する。その結果、現照会スナップ
ショットはより頻繁に進行できる。3照会バージョンな
ど3以上のバージョン存在する場合、長期連続照会は最
も古い照会バージョンにアクセスするように強いられ、
より新しい2つのバージョンは定期的に進行できる。長
期連続照会を古いバージョンにアクセスするように強い
るこのような方法は、トランザクション管理プログラム
が事前に照会が長期連続であるかどうかを知らされる必
要がある。
【図1】本発明に従った動的有限バージョン管理方式を
用いたデータベースシステムのブロック図。
用いたデータベースシステムのブロック図。
【図2】本発明を従来のマルチバージョン管理方式と対
比した照会スナップショット進行のシナリオおよびバー
ジョンアクセスを示すブロック図。
比した照会スナップショット進行のシナリオおよびバー
ジョンアクセスを示すブロック図。
【図3】初期状態からのページについての一部のバージ
ョン遷移を示す説明図。
ョン遷移を示す説明図。
【図4】図3と同様のさらに多くのバージョン遷移を示
す説明図。
す説明図。
【図5】類別(I)および(II)として分類されたバ
ージョン構成を示す説明図。
ージョン構成を示す説明図。
【図6】類別(III)および(IV)として分類され
たバージョン構成を示す説明図。
たバージョン構成を示す説明図。
【図7】Locate_CQルーチンの論理を示す流れ
図。
図。
【図8】Locate_PQルーチンの論理を示す流れ
図。
図。
【図9】Locate_CQルーチンおよびLocat
e_PQルーチンによるバージョン識別プロセスを示す
説明図。
e_PQルーチンによるバージョン識別プロセスを示す
説明図。
【図10】Locate_WRルーチンの論理を示す流
れ図。
れ図。
15,16 端末 14 データベース管理システム 13 バージョン管理プログラム 11 データベース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クン‐ルン、ウー アメリカ合衆国ニューヨーク州、ヨークタ ウン、ハイツ、ロックアンボー、ドライ ブ、オーバールック、コモンズ、2エー (72)発明者 フィリップ、シ‐ルン、ユー アメリカ合衆国ニューヨーク州、チャパ カ、ストアノウェイ、18
Claims (28)
- 【請求項1】データベースのトランザクション・照会並
行処理を支持するデータ処理システムにおいて、照会が
前記データベースのより新しいバージョンにアクセスで
きるようにするためにトランザクションと照会との間に
いかなる干渉も生じず、かつ、トランザクションまたは
照会のいずれの静止も生じずに、前記データベースにア
クセスするための前記データ処理システムによって実行
される方法であって、 前記データベースの各ページの多数の有限の論理バージ
ョンを動的に維持し、物理ページコピーがページの多数
の論理バージョンを同時に表現することを可能にする段
階と、 タイムスタンプ(前記タイムスタンプは物理ページがト
ランザクションによって更新された時刻を記録する)お
よびトランザクション識別子(前記トランザクション識
別子はその物理ページを最後に更新したトランザクショ
ンの識別子を記録する)を含む経時不変情報を、各物理
ページコピーが作成された時にその物理ページコピーに
よって維持する段階と、 現照会スナップショット時刻のタイムスタンプ、前記現
照会スナップショットが行われた時刻にアクティブであ
ったトランザクションを記録したトランザクションリス
ト、および、現在進行中のアクティブなトランザクショ
ンを記録したトランザクションリストを含む、システム
状態を表現する経時変化情報を記憶域に維持する段階
と、 トランザクションまたは照会の処理のいずれも静止させ
ることなく照会によるアクセスのための前記データベー
スのトランザクション両立照会スナップショット(照会
スナップショットはタイムスタンプおよび前記スナップ
ショットが行われた時刻にアクティブであったトランザ
クションのリストによって識別される)を生成するため
に前記経時変化情報を使用する段階と、 トランザクションおよび照会の干渉を避けるためにトラ
ンザクションおよび照会のアクセスについて前記データ
ベースの適切なバージョンページを動的に識別するため
に、各物理ページコピーによって保持された前記経時不
変情報および記憶域に維持された経時変化情報を使用す
る段階とを含むことを特徴とする方法。 - 【請求項2】請求項1記載の方法であって、物理ページ
コピーが表現する論理バージョンが超過時間を暗黙的に
変更し、さらに、物理ページが表現する論理バージョン
を動的バージョン識別によって認識する段階を含むこと
を特徴とする方法。 - 【請求項3】請求項2記載の方法であって、照会または
トランザクションが読み出しまたは更新すべきページの
経時変化バージョン状態が、 トランザクションによる前記データベースの最新バージ
ョンページのアクセスを許可する段階と、 前記トランザクションによる前記データベースへの書き
込みの結果としての前記データベースの最新コミットバ
ージョンページを維持する段階と、 照会によるアクセスのために前記データベースの前記最
新コミットバージョンから前記データベースの現照会ス
ナップショットを維持する段階と、 照会により前記データベースの前記現照会スナップショ
ットにアクセスする段階と、 前記データベースの前記現照会スナップショットを、前
記ページの多数バージョンのリラベリングを要さずに、
前記データベースの前記最新コミットバージョンページ
まで自動的に進める段階とによって決定されることを特
徴とする方法。 - 【請求項4】請求項3記載の方法であって、さらに、前
記照会のアクティブ照会リストを維持する段階を含み、
照会の識別子は照会が完了した時に前記アクティブ照会
リストから削除され、前記データベースの前記現照会ス
ナップショットを前記データベースの最新コミットバー
ジョンまで動的に進める前記段階は前記アクティブ照会
リストが空になった時に実行されることを特徴とする方
法。 - 【請求項5】請求項3記載の方法であって、さらに、 前記データベースの前記現照会スナップショットを前記
データベースの最新コミットバージョンまで動的に進め
た結果として、前記現照会スナップショットの次バージ
ョンの生成に先立って生じた照会によるアクセスのため
に前記現照会スナップショットから前記データベースの
前照会スナップショットを生成する段階と、 前記前照会スナップショットにアクセスしているアクテ
ィブな照会がまったくなくなると、前記データベースの
前記前照会スナップショットを前記データベースの前記
現照会スナップショットまで自動的に進める段階とを含
むことを特徴とする方法。 - 【請求項6】請求項5記載の方法であって、前記前照会
スナップショット、前記現照会スナップショットおよび
前記最新コミットバージョンは、同一の物理ページであ
ることもできるが、異なる論理ページであることを特徴
とする方法。 - 【請求項7】請求項4記載の方法であって、さらに、 前記照会の現アクティブ照会リストを維持する段階(照
会の識別子は照会が完了した時に前記アクティブ照会リ
ストから削除され、前記データベースの前記現照会スナ
ップショットを前記データベースの前記最新コミットバ
ージョンページまで動的に進める前記段階は前記現アク
ティブ照会リストが空になった時に実行される)と、 前記データベースの前記現照会スナップショットの生成
に先立って生じた照会の前アクティブ照会リストを維持
する段階(照会の識別子は照会が完了した時に前記前ア
クティブ照会リストから削除され、前記データベースの
前記前照会スナップショットを前記データベースの前記
現照会スナップショットまで動的に進める前記段階は前
記前アクティブ照会リストが空になった時に実行され
る)とを含むことを特徴とする方法。 - 【請求項8】請求項3記載の方法であって、さらに、前
記トランザクションによってなされた変更がコミットさ
れる前に書き込まれる前記データベースの作業バージョ
ンを生成する段階を含み、前記データベースの最新コミ
ットバージョンは前記変更がコミットされた時点で前記
作業バージョンから引き出されることを特徴とする方
法。 - 【請求項9】請求項3記載の方法であって、さらに、 前記トランザクションによってなされた変更がコミット
される前に書き込まれる前記データベースの作業バージ
ョンを生成する段階(前記データベースの最新コミット
バージョンは前記変更がコミットされた時点で前記作業
バージョンから引き出される)と、 前記現照会スナップショットを前記データベースの前記
最新コミットバージョンまで動的に進めた結果として、
前記現照会スナップショットの次バージョンの生成に先
立って生じた照会によるアクセスのために前記現照会ス
ナップショットから前記データベースの前照会スナップ
ショットを生成する段階と、 前記前照会スナップショットにアクセスしているアクテ
ィブな照会がまったくなくなると、前記データベースの
前記前照会スナップショットを前記データベースの前記
現照会スナップショットまで自動的に進める段階とを含
むことを特徴とする方法。 - 【請求項10】請求項9記載の方法であって、さらに、 前記照会の現アクティブ照会リストを維持する段階(照
会の識別子は照会が完了した時に前記アクティブ照会リ
ストから削除され、前記データベースの前記現照会スナ
ップショットを前記データベースの前記最新コミットバ
ージョンページまで動的に進める前記段階は前記現アク
ティブ照会リストが空になった時に実行される)と、 前記データベースの前記現照会スナップショットの生成
に先立って生じた照会の前アクティブ照会リストを維持
する段階(照会の識別子は照会が完了した時に前記前ア
クティブ照会リストから削除され、前記データベースの
前記前照会スナップショットを前記データベースの前記
現照会スナップショットまで動的に進める前記段階は前
記前アクティブ照会リストが空になった時に実行され
る)とを含むことを特徴とする方法。 - 【請求項11】請求項10記載の方法であって、前記デ
ータベースは直接アクセス記憶装置に記憶されており、
前記方法は、前記データベースの前記バージョンのため
に前記直接アクセス記憶装置の記憶空間(前記記憶空間
は必要な場合最大4ページまで動的に拡張される)を、
単一の物理ページコピーが前記データベースの多数の論
理バージョンを同時に表現するような方法で、動的に割
り当ておよび割り当て解除する段階を含むことを特徴と
する方法。 - 【請求項12】請求項11記載の方法であって、照会
が、いかなるロックも受けることなく、前記照会の開始
時刻に従って適切な照会バージョンにアクセスすること
を特徴とする方法。 - 【請求項13】請求項11記載の方法であって、記憶空
間を動的に割り当ておよび割り当て解除する前記段階
は、単一の物理ページコピーが前記データベースの多数
の論理バージョンを同時に表現しているにもかかわら
ず、前記データベースの現照会バージョン、前記データ
ベースの前照会バージョンおよび前記データベースの最
新コミットバージョンを常に論理的に維持しており、さ
らには、新しいトランザクション更新が前記データベー
スに書き込まれた場合には前記データベースの旧照会バ
ージョンを上書きする段階を含むことを特徴とする方
法。 - 【請求項14】請求項11記載の方法であって、前記直
接アクセス記憶装置の物理ページコピーが表現する正し
い論理バージョンは、新しいトランザクション更新が前
記データベースに書き込まれ、アクティブなトランザク
ションがコミットされ、照会によるアクセスのために前
記データベースの新しいスナップショットが行われた場
合には動的かつ暗黙的に変化し、ページコピーの正しい
論理バージョンはページが参照された場合に動的に識別
され、バージョン変更においてページに対するいかなる
明示的な動作も要さないことを特徴とする方法。 - 【請求項15】請求項11記載の方法であって、さら
に、前記経時変化情報を記憶域に維持している間にペー
ジコピーが作成された場合に、経時不変情報だけを前記
直接アクセス記憶装置に記憶する段階を含むことを特徴
とする方法。 - 【請求項16】請求項15記載の方法であって、前記変
化情報が、データベーススナップショット時刻、スナッ
プショット時刻にアクティブなトランザクションおよび
照会、および、現在進行中のアクティブなトランザクシ
ョンおよび照会を含むシステム状態であることを特徴と
する方法。 - 【請求項17】請求項11記載の方法であって、さら
に、前記直接アクセス記憶装置に記憶されたページの通
常の読み出しアクセスにおいて、前記データベースの必
要な論理バージョンを表現するために単一の物理ページ
コピーで十分であると判明した場合に、オンザフライ式
に不要部分を整理する段階を含むことを特徴とする方
法。 - 【請求項18】データベースのトランザクション・照会
並行処理を支持するデータ処理システムであって、 前記データベースの物理コピーを記憶するための前記直
接アクセス記憶手段と、 トランザクションおよび照会のために前記データベース
に並行的にアクセスするための多数の端末手段と、 前記多数の端末手段および前記直接アクセス記憶手段に
接続されており、照会が前記データベースのより新しい
バージョンにアクセスできるようにするためにトランザ
クションと照会との間にいかなる干渉も生じず、かつ、
トランザクションまたは照会のいずれの静止も生じずに
前記データベースにアクセスするための動的有限バージ
ョン管理方式によって前記トランザクションおよび照会
を管理するためのプロセッサ手段(前記プロセッサ手段
は1以上の中央処理装置および情報を記憶するための記
憶域を含む)とを含み、 前記プロセッサ手段は、前記データベースに各ページの
多数の有限の論理バージョンを動的に維持し、また、物
理ページコピーがページの多数の論理バージョンを同時
に表現できるようにし、 前記直接アクセス記憶手段は、タイムスタンプおよびト
ランザクション識別子を含む(前記タイムスタンプは物
理ページがトランザクションによって更新された時刻を
記録し、前記トランザクション識別子はその物理ページ
を最後に更新したトランザクションの識別子を記録す
る)経時不変情報を、各物理ページコピーが作成された
時に各物理ページコピーによって記録し、 前記記憶域は、現照会スナップショット時刻のタイムス
タンプ、前記現照会スナップショットが行われた時刻に
アクティブであったトランザクションを記録したトラン
ザクションリスト、および、まだ現在進行中のアクティ
ブなトランザクションを記録したトランザクションリス
トを含むシステム状態を表現する経時変化情報を維持
し、 前記プロセッサ手段は、トランザクションまたは照会の
いずれも静止させることなく照会によるアクセスのため
の前記データベースのトランザクション両立照会スナッ
プショット(照会スナップショットはタイムスタンプお
よび前記スナップショットが行われた時刻にアクティブ
であったトランザクションのリストによって識別され
る)を生成するために前記経時変化情報を使用し、 前記プロセッサ手段はさらに、アクセスがトランザクシ
ョンおよび照会の干渉を避けるためにトランザクション
および照会について前記データベースの適切なバージョ
ンページを動的に識別するために、各物理ページコピー
によって保持された前記経時不変情報および記憶域に維
持された経時変化情報を使用することを特徴とするデー
タ処理システム。 - 【請求項19】請求項18記載のデータ処理システムで
あって、物理ページコピーが表現する論理バージョンが
超過時間を暗黙的に変更し、前記プロセッサ手段は、物
理ページが表現する論理バージョンを動的バージョン識
別によって認識することを特徴とするデータ処理システ
ム。 - 【請求項20】請求項19記載のデータ処理システムで
あって、前記プロセッサ手段が、 前記トランザクションによる前記データベースへの書き
込みの結果として前記データベースの最新コミットバー
ジョンを生成し、また、照会によるアクセスのために前
記データベースの前記最新コミットバージョンから前記
データベースの現照会スナップショットを発生させるた
めのデータベースバージョン管理プログラム手段(前記
データベースバージョン管理プログラム手段は前記デー
タベースの前記現照会スナップショットを前記データベ
ースの最新コミットバージョンまで動的に進める)と、 トランザクションによる前記データベースの現バージョ
ンのアクセスを許可し、また、照会による前記データベ
ースの現照会スナップショットにアクセスするためのデ
ータベース管理手段とを含むことを特徴とするデータ処
理システム。 - 【請求項21】請求項20記載のデータ処理システムで
あって、前記データベースバージョン管理プログラム手
段は、前記照会のアクティブ照会リストを維持し、照会
が完了した時に前記アクティブ照会リストから照会の識
別子を削除し、前記アクティブ照会リストが空になった
時に前記データベースの前記現照会スナップショットを
前記データベースの最新コミットバージョンに動的に進
めることを特徴とするデータ処理システム。 - 【請求項22】請求項20記載のデータ処理システムで
あって、前記データベースバージョン管理プログラム手
段はさらに、前記データベースの前記現照会スナップシ
ョットを前記データベースの最新コミットバージョンま
で動的に進めた結果として、前記現照会スナップショッ
トの次バージョンの生成に先立って生じた照会によるア
クセスのために前記現照会スナップショットから前記デ
ータベースの前照会スナップショットを生成し、また、
前記前照会スナップショットにアクセスしているアクテ
ィブな照会がまったくなくなると、前記データベースの
前照会スナップショットを前記データベースの前記現照
会スナップショットまで動的に進めることを特徴とする
データ処理システム。 - 【請求項23】請求項22記載のデータ処理システムで
あって、前記データベースバージョン管理プログラム手
段は、前記照会の現アクティブ照会リストを維持し、照
会が完了した時に前記現アクティブ照会リストから照会
の識別子を削除し、前記現アクティブ照会リストが空に
なった時に前記データベースの前記現照会スナップショ
ットを前記データベースの最新コミットバージョンまで
動的に進め、さらには、前記データベースの前記現照会
スナップショットの生成に先立って生じた照会による照
会の前アクティブ照会リストを維持し(照会の識別子は
照会が完了した時に前記前アクティブ照会リストから削
除される)、前記前アクティブ照会リストが空になった
時に前記データベースの前記前照会スナップショットを
前記現照会スナップショットまで動的に進めることを特
徴とするデータ処理システム。 - 【請求項24】請求項20記載のデータ処理システムで
あって、前記データベースバージョン管理プログラム手
段は、前記トランザクションによってなされた変更がコ
ミットされる前に書き込まれる前記データベースの作業
バージョンを生成し(前記データベースの最新コミット
バージョンは前記変更がコミットされた時点で前記作業
バージョンから引き出される)、前記現照会スナップシ
ョットを前記データベースの最新コミットバージョンま
で動的に進めた結果として、前記現照会スナップショッ
トの次バージョンの生成に先立って生じた照会によるア
クセスのために前記現照会スナップショットから前記デ
ータベースの前照会スナップショットを生成し、前記照
会の現アクティブ照会リストを維持し、照会が完了した
時に前記現アクティブ照会リストから照会の識別子を削
除し、前記現アクティブ照会リストが空になった時に前
記データベースの前記現照会スナップショットを前記デ
ータベースの最新コミットバージョンまで動的に進め、
さらには、前記データベースの前記現照会スナップショ
ットの生成に先立って生じた照会の前アクティブ照会リ
ストを維持し(照会の識別子は照会が完了した時に前記
前アクティブ照会リストから削除される)、前記前照会
スナップショットにアクセスしているアクティブな照会
がまったくなくなると、前記データベースの前照会スナ
ップショットを前記データベースの前記現照会スナップ
ショットまで動的に進めることを特徴とするデータ処理
システム。 - 【請求項25】請求項24記載のデータ処理システムで
あって、さらに、前記データベースの前記バージョンの
ために前記直接アクセス記憶装置の記憶空間(前記記憶
空間は必要な場合最大4ページコピーまで動的に拡張さ
れる)を、単一の物理ページコピーが前記データベース
の多数の論理バージョンを同時に表現するような方法
で、動的に割り当ておよび割り当て解除する手段を含む
ことを特徴とするデータ処理システム。 - 【請求項26】請求項25記載のデータ処理システムで
あって、記憶空間を動的に割り当ておよび割り当て解除
する前記手段は、前記直接アクセス記憶装置の単一の物
理ページコピーが前記データベースの多数の論理バージ
ョンを同時に表現しているにもかかわらず、前記データ
ベースの現照会バージョン、前記データベースの前照会
バージョンおよび前記データベースの最新コミットバー
ジョンを常に論理的に維持しており、さらには、新しい
トランザクション更新が前記データベースに書き込まれ
た場合には前記データベースの旧照会バージョンを上書
きすることを特徴とするデータ処理システム。 - 【請求項27】請求項26記載のデータ処理システムで
あって、前記直接アクセス記憶装置の物理ページコピー
が表現する正しい論理バージョンは、新しいトランザク
ション更新が前記データベースに書き込まれ、アクティ
ブなトランザクションがコミットされ、照会によるアク
セスのために前記データベースの新しいスナップショッ
トが行われた場合には動的かつ暗黙的に変化し、ページ
コピーの正しい論理バージョンはページが参照された場
合に動的に識別され、バージョン変更においてページに
対するいかなる明示的な動作も要さないことを特徴とす
るデータ処理システム。 - 【請求項28】請求項26記載のデータ処理システムで
あって、前記変化情報を記憶域に維持している間にペー
ジコピーが作成された場合に、経時不変情報だけが前記
直接アクセス記憶装置に記憶されることを特徴とするデ
ータ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US661046 | 1991-02-25 | ||
US07/661,046 US5287496A (en) | 1991-02-25 | 1991-02-25 | Dynamic, finite versioning for concurrent transaction and query processing |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0628315A true JPH0628315A (ja) | 1994-02-04 |
JPH081611B2 JPH081611B2 (ja) | 1996-01-10 |
Family
ID=24651993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3318182A Expired - Lifetime JPH081611B2 (ja) | 1991-02-25 | 1991-12-02 | トランザクション・照会並行処理のための動的有限バージョン管理方法およびそのシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5287496A (ja) |
EP (1) | EP0501180A3 (ja) |
JP (1) | JPH081611B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644701A (en) * | 1993-12-29 | 1997-07-01 | Kabushiki Kaisha Toshiba | Data processing system and method for executing snapshot dumps |
CN100433001C (zh) * | 2004-03-15 | 2008-11-12 | 冲电气工业株式会社 | 更新历史记录管理装置以及更新历史记录管理方法 |
JP2010531029A (ja) * | 2007-06-22 | 2010-09-16 | コンペレント・テクノロジーズ | データ・ストレージ空間リカバリ・システムおよび方法 |
JP2010538354A (ja) * | 2007-08-29 | 2010-12-09 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | データベースシステムにおける方法および装置 |
Families Citing this family (158)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369757A (en) | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
US5764877A (en) * | 1991-06-25 | 1998-06-09 | Digital Equipment Corporation | Media recovery with time-split B-trees |
US5280612A (en) * | 1991-11-26 | 1994-01-18 | International Business Machines Corporation | Multiple version database concurrency control system |
US5446884A (en) * | 1992-02-13 | 1995-08-29 | International Business Machines Corporation | Database recovery apparatus and method |
US5592661A (en) * | 1992-07-16 | 1997-01-07 | International Business Machines Corporation | Detection of independent changes via change identifiers in a versioned database management system |
US5403639A (en) * | 1992-09-02 | 1995-04-04 | Storage Technology Corporation | File server having snapshot application data groups |
JP3612339B2 (ja) * | 1992-10-23 | 2005-01-19 | 株式会社日立製作所 | データ処理方法および装置 |
US5432928A (en) * | 1992-11-10 | 1995-07-11 | Microsoft Corporation | Updating objects stored in a permanent container while preserving logical contiguity |
US5495601A (en) * | 1992-12-11 | 1996-02-27 | International Business Machines Corporation | Method to off-load host-based DBMS predicate evaluation to a disk controller |
JPH06332772A (ja) * | 1993-05-25 | 1994-12-02 | Fujitsu Ltd | データ処理システムにおけるエノバージョン管理処理方式 |
US5553279A (en) * | 1993-10-08 | 1996-09-03 | International Business Machines Corporation | Lossless distribution of time series data in a relational data base network |
US5613113A (en) * | 1993-10-08 | 1997-03-18 | International Business Machines Corporation | Consistent recreation of events from activity logs |
US5678040A (en) * | 1993-10-29 | 1997-10-14 | Motorola, Inc. | Method for managing a hierarchical design transaction |
AU1435795A (en) * | 1993-12-15 | 1995-07-03 | Supercomm, Inc. | Database versioning with output only of data changed from the previous version |
GB9406564D0 (en) * | 1994-03-31 | 1994-05-25 | Int Computers Ltd | Database management system |
ATE165174T1 (de) * | 1994-05-10 | 1998-05-15 | Siemens Ag | Datenverwaltungssystem eines realzeitsystems |
JP2507235B2 (ja) * | 1994-06-24 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法 |
US5701457A (en) * | 1994-09-08 | 1997-12-23 | Hitachi, Ltd. | Method of designated time interval reservation access process of online updating and backing up of large database versions without reserving exclusive control |
US5673418A (en) * | 1994-10-07 | 1997-09-30 | Bull Hn Information Systems Inc. | Method and apparatus for emulating the operations of an emulated system terminal driver on a host system |
US5671407A (en) * | 1994-12-07 | 1997-09-23 | Xerox Corporation | Application-specific conflict detection for weakly consistent replicated databases |
US5692187A (en) * | 1995-02-14 | 1997-11-25 | General Magic | Shadow mechanism having masterblocks for a modifiable object oriented system |
US5819306A (en) * | 1995-02-14 | 1998-10-06 | General Magic | Shadow mechanism for a modifiable object oriented system |
US5745915A (en) * | 1995-03-17 | 1998-04-28 | Unisys Corporation | System for parallel reading and processing of a file |
US5758149A (en) * | 1995-03-17 | 1998-05-26 | Unisys Corporation | System for optimally processing a transaction and a query to the same database concurrently |
US5701473A (en) * | 1995-03-17 | 1997-12-23 | Unisys Corporation | System for optimally storing a data file for enhanced query processing |
US5778387A (en) * | 1995-05-19 | 1998-07-07 | Sprint Communications Co., L.P. | Database automated recovery system |
US5799305A (en) * | 1995-11-02 | 1998-08-25 | Informix Software, Inc. | Method of commitment in a distributed database transaction |
US5787441A (en) * | 1996-01-11 | 1998-07-28 | International Business Machines Corporation | Method of replicating data at a field level |
US5721918A (en) * | 1996-02-06 | 1998-02-24 | Telefonaktiebolaget Lm Ericsson | Method and system for fast recovery of a primary store database using selective recovery by data type |
US5870758A (en) * | 1996-03-11 | 1999-02-09 | Oracle Corporation | Method and apparatus for providing isolation levels in a database system |
US5893113A (en) * | 1996-04-25 | 1999-04-06 | Navigation Technologies Corporation | Update transactions and method and programming for use thereof for incrementally updating a geographic database |
US5729744A (en) * | 1996-06-10 | 1998-03-17 | International Business Machine Corp. | Method and system of enhanced versioning control of objects in a data processing system using change control information which includes reasons for changes |
US5761678A (en) * | 1996-06-26 | 1998-06-02 | International Business Machines Corporation | Creation of clone storage area with identification of base storage area and deferred cloning of metadata |
US6073139A (en) * | 1996-08-15 | 2000-06-06 | Gioquest, A Division Of Schlumberger Technology Corp. | Integrated data communication and data access system including the application data interface |
US5930791A (en) * | 1996-12-09 | 1999-07-27 | Leu; Sean | Computerized blood analyzer system for storing and retrieving blood sample test results from symmetrical type databases |
JPH10207754A (ja) * | 1997-01-16 | 1998-08-07 | Fujitsu Ltd | 更新系データベースの複製方式 |
US7293228B1 (en) | 1997-01-31 | 2007-11-06 | Timebase Pty Limited | Maltweb multi-axis viewing interface and higher level scoping |
AUPO489297A0 (en) * | 1997-01-31 | 1997-02-27 | Aunty Abha's Electronic Publishing Pty Ltd | A system for electronic publishing |
US6105147A (en) * | 1997-04-16 | 2000-08-15 | Compaq Computer Corporation | Using process pairs as transaction-coordinated resource managers |
US6237001B1 (en) * | 1997-04-23 | 2001-05-22 | Oracle Corporation | Managing access to data in a distributed database environment |
US5873098A (en) * | 1997-04-23 | 1999-02-16 | Oracle Corporation | Dynamic snapshot set adjustment |
US5963959A (en) * | 1997-05-30 | 1999-10-05 | Oracle Corporation | Fast refresh of snapshots |
DE19734413C1 (de) * | 1997-08-08 | 1999-01-07 | Ericsson Telefon Ab L M | Verfahren zum Aufrüsten einer Datenbank |
US6012059A (en) * | 1997-08-21 | 2000-01-04 | Dataxel Corporation | Method and apparatus for replicated transaction consistency |
JP4363676B2 (ja) * | 1997-10-31 | 2009-11-11 | 株式会社東芝 | コンピュータシステム |
US6029178A (en) * | 1998-03-18 | 2000-02-22 | Bmc Software | Enterprise data movement system and method which maintains and compares edition levels for consistency of replicated data |
US6016501A (en) * | 1998-03-18 | 2000-01-18 | Bmc Software | Enterprise data movement system and method which performs data load and changed data propagation operations |
US6092085A (en) * | 1998-03-24 | 2000-07-18 | International Business Machines Corporation | Method and system for improved database disaster recovery |
US6035307A (en) * | 1998-03-30 | 2000-03-07 | Bmc Software | Enterprise data movement system and method including opportunistic performance of utilities and data move operations for improved efficiency |
US6272502B1 (en) * | 1998-05-11 | 2001-08-07 | Lucent Technologies Inc. | Refreshing materialized views of a database to maintain consistency with underlying data |
US6192377B1 (en) * | 1998-05-13 | 2001-02-20 | Oracle Corporation | Method and apparatus for determing whether a transaction can use a version of a data item |
US6738757B1 (en) * | 1999-06-02 | 2004-05-18 | Workwise, Inc. | System for database monitoring and agent implementation |
US6557111B1 (en) | 1999-11-29 | 2003-04-29 | Xerox Corporation | Multicast-enhanced update propagation in a weakly-consistant, replicated data storage system |
US7849117B2 (en) * | 2000-01-12 | 2010-12-07 | Knowledge Sphere, Inc. | Multi-term frequency analysis |
US6694328B1 (en) * | 2000-01-13 | 2004-02-17 | International Business Machines Corporation | Method for creating queries on version objects |
US6684226B1 (en) * | 2000-03-24 | 2004-01-27 | Frontline Software Aps | Method for storing data in one or more files so that both previous and new versions of the data are separately accessible |
US20020073110A1 (en) * | 2000-12-12 | 2002-06-13 | Edouard Duvillier | Version collection technique implemented on an intrinsic versioning information storage and retrieval system |
US7945538B2 (en) | 2001-03-13 | 2011-05-17 | Oracle America, Inc. | Method and arrangements for node recovery |
US7334004B2 (en) | 2001-06-01 | 2008-02-19 | Oracle International Corporation | Consistent read in a distributed database environment |
EP1788496A3 (en) | 2001-06-01 | 2007-06-20 | Oracle International Corporation | Consistent read in a distributed database environment |
US20030033442A1 (en) * | 2001-07-16 | 2003-02-13 | Joel Halpern | Apparatus and method for providing a class versioning architecture |
US20030041305A1 (en) * | 2001-07-18 | 2003-02-27 | Christoph Schnelle | Resilient data links |
US7363310B2 (en) * | 2001-09-04 | 2008-04-22 | Timebase Pty Limited | Mapping of data from XML to SQL |
JP4420324B2 (ja) * | 2001-11-01 | 2010-02-24 | ベリサイン・インコーポレイテッド | 高速非並行制御されたデータベース |
US7281206B2 (en) | 2001-11-16 | 2007-10-09 | Timebase Pty Limited | Maintenance of a markup language document in a database |
US7412463B2 (en) * | 2002-01-11 | 2008-08-12 | Bloomberg Finance L.P. | Dynamic legal database providing historical and current versions of bodies of law |
US7475098B2 (en) * | 2002-03-19 | 2009-01-06 | Network Appliance, Inc. | System and method for managing a plurality of snapshots |
US6857001B2 (en) * | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7421433B2 (en) * | 2002-10-31 | 2008-09-02 | Hewlett-Packard Development Company, L.P. | Semantic-based system including semantic vectors |
US20040088274A1 (en) * | 2002-10-31 | 2004-05-06 | Zhichen Xu | Semantic hashing |
US20040088301A1 (en) * | 2002-10-31 | 2004-05-06 | Mallik Mahalingam | Snapshot of a file system |
US7043470B2 (en) * | 2003-03-05 | 2006-05-09 | Hewlett-Packard Development Company, L.P. | Method and apparatus for improving querying |
US7039634B2 (en) * | 2003-03-12 | 2006-05-02 | Hewlett-Packard Development Company, L.P. | Semantic querying a peer-to-peer network |
US20040205242A1 (en) * | 2003-03-12 | 2004-10-14 | Zhichen Xu | Querying a peer-to-peer network |
US20040181607A1 (en) * | 2003-03-13 | 2004-09-16 | Zhichen Xu | Method and apparatus for providing information in a peer-to-peer network |
JP2004318288A (ja) * | 2003-04-11 | 2004-11-11 | Hitachi Ltd | データ処理方法および装置ならびにその処理プログラム |
US7139781B2 (en) * | 2003-04-29 | 2006-11-21 | International Business Machines Corporation | Managing filesystem versions |
US7243088B2 (en) * | 2003-08-06 | 2007-07-10 | Oracle International Corporation | Database management system with efficient version control |
US7269588B1 (en) | 2003-09-24 | 2007-09-11 | Oracle International Corporation | Neighborhood locking technique for increasing concurrency among transactions |
US7555481B1 (en) | 2003-10-28 | 2009-06-30 | Oracle Corporation | Method and apparatus for increasing transaction concurrency by early release of locks in groups |
US7133884B1 (en) * | 2003-11-26 | 2006-11-07 | Bmc Software, Inc. | Unobtrusive point-in-time consistent copies |
US7499913B2 (en) * | 2004-01-26 | 2009-03-03 | International Business Machines Corporation | Method for handling anchor text |
US7293005B2 (en) * | 2004-01-26 | 2007-11-06 | International Business Machines Corporation | Pipelined architecture for global analysis and index building |
US8296304B2 (en) * | 2004-01-26 | 2012-10-23 | International Business Machines Corporation | Method, system, and program for handling redirects in a search engine |
US7424467B2 (en) | 2004-01-26 | 2008-09-09 | International Business Machines Corporation | Architecture for an indexer with fixed width sort and variable width sort |
US7313720B1 (en) | 2004-02-12 | 2007-12-25 | Network Appliance, Inc. | Technique for increasing the number of persistent consistency point images in a file system |
US7730026B2 (en) * | 2004-07-01 | 2010-06-01 | Apple Inc. | Method and system using reusable state information for synchronization and maintenance of data |
US7461064B2 (en) * | 2004-09-24 | 2008-12-02 | International Buiness Machines Corporation | Method for searching documents for ranges of numeric values |
US7739244B2 (en) * | 2004-10-14 | 2010-06-15 | Oracle International Corporation | Operating logging for online recovery in shared memory information systems |
US20060112153A1 (en) * | 2004-11-22 | 2006-05-25 | Bowen David S L | Export queue for an enterprise software system |
US8676862B2 (en) * | 2004-12-31 | 2014-03-18 | Emc Corporation | Information management |
US8260753B2 (en) * | 2004-12-31 | 2012-09-04 | Emc Corporation | Backup information management |
US8032533B1 (en) | 2005-01-14 | 2011-10-04 | Thomson Reuters Global Resources | Systems, methods, and software for researching statutory information |
US8468125B2 (en) | 2005-04-12 | 2013-06-18 | International Business Machines Corporation | Automatically moving multidimensional data between live datacubes of enterprise software systems |
US7877355B2 (en) | 2005-04-12 | 2011-01-25 | International Business Machines Corporation | Job scheduling for automatic movement of multidimensional data between live datacubes |
US7523146B2 (en) * | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US8495015B2 (en) * | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US8417693B2 (en) * | 2005-07-14 | 2013-04-09 | International Business Machines Corporation | Enforcing native access control to indexed documents |
US7716171B2 (en) * | 2005-08-18 | 2010-05-11 | Emc Corporation | Snapshot indexing |
US9026512B2 (en) * | 2005-08-18 | 2015-05-05 | Emc Corporation | Data object search and retrieval |
US20070043705A1 (en) * | 2005-08-18 | 2007-02-22 | Emc Corporation | Searchable backups |
US7333921B2 (en) * | 2006-05-09 | 2008-02-19 | Stephen Taylor | Scalable, concurrent, distributed sensor system and method |
US7860826B2 (en) * | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US7760767B2 (en) * | 2007-01-05 | 2010-07-20 | Apple Inc. | Wide area peer-to-peer synching in a decentralized environment |
US7657769B2 (en) * | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
US9690790B2 (en) * | 2007-03-05 | 2017-06-27 | Dell Software Inc. | Method and apparatus for efficiently merging, storing and retrieving incremental data |
US20080222111A1 (en) * | 2007-03-07 | 2008-09-11 | Oracle International Corporation | Database system with dynamic database caching |
US7747589B2 (en) * | 2007-03-12 | 2010-06-29 | Microsoft Corporation | Transaction time indexing with version compression |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US20080319878A1 (en) * | 2007-06-22 | 2008-12-25 | Thorsten Glebe | Dynamic Time Series Update Method |
US8347207B2 (en) | 2007-07-16 | 2013-01-01 | International Business Machines Corporation | Automatically moving annotations associated with multidimensional data between live datacubes |
US8812443B2 (en) * | 2007-10-01 | 2014-08-19 | International Business Machines Corporation | Failure data collection system apparatus and method |
US9268837B2 (en) | 2007-12-04 | 2016-02-23 | International Business Machines Corporation | Data entry commentary and sheet reconstruction for multidimensional enterprise system |
US8229945B2 (en) * | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US8738573B2 (en) * | 2008-05-23 | 2014-05-27 | Microsoft Corporation | Optimistic versioning concurrency scheme for database streams |
US7991775B2 (en) | 2008-08-08 | 2011-08-02 | Oracle International Corporation | Global checkpoint SCN |
US8677055B2 (en) | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US8589361B2 (en) | 2010-08-30 | 2013-11-19 | Oracle International Corporation | Reduced disk space standby |
US8838919B2 (en) | 2010-08-30 | 2014-09-16 | Oracle International Corporation | Controlling data lag in a replicated computer system |
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 |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
US8868492B2 (en) | 2011-06-15 | 2014-10-21 | Oracle International Corporation | Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica |
WO2013074914A1 (en) | 2011-11-18 | 2013-05-23 | Appassure Software, Inc. | Method of and system for merging, storing and retrieving incremental backup data |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US10152500B2 (en) | 2013-03-14 | 2018-12-11 | Oracle International Corporation | Read mostly instances |
US9659050B2 (en) | 2013-08-06 | 2017-05-23 | Sybase, Inc. | Delta store giving row-level versioning semantics to a non-row-level versioning underlying store |
US9519664B1 (en) * | 2013-09-20 | 2016-12-13 | Amazon Technologies, Inc. | Index structure navigation using page versions for read-only nodes |
US10311154B2 (en) | 2013-09-21 | 2019-06-04 | Oracle International Corporation | Combined row and columnar storage for in-memory databases for OLTP and analytics workloads |
US9767178B2 (en) | 2013-10-30 | 2017-09-19 | Oracle International Corporation | Multi-instance redo apply |
CN103744936B (zh) | 2013-12-31 | 2017-02-08 | 华为技术有限公司 | 一种数据库中的多版本并发控制方法及数据库系统 |
US10042870B2 (en) | 2014-10-08 | 2018-08-07 | International Business Machines Corporation | Supporting transient snapshot with coordinated/uncoordinated commit protocol |
US9953050B2 (en) * | 2014-11-25 | 2018-04-24 | Sap Se | Garbage collection of versions driving the garbage collection of multi-version concurrency control timestamps |
US20160218935A1 (en) | 2015-01-27 | 2016-07-28 | Bank Of America Corporation | User interface and dashboard for holistic data transmission throughout an enterprise |
US11657037B2 (en) | 2015-10-23 | 2023-05-23 | Oracle International Corporation | Query execution against an in-memory standby database |
US10747752B2 (en) | 2015-10-23 | 2020-08-18 | Oracle International Corporation | Space management for transactional consistency of in-memory objects on a standby database |
US10698771B2 (en) | 2016-09-15 | 2020-06-30 | Oracle International Corporation | Zero-data-loss with asynchronous redo shipping to a standby database |
US10891291B2 (en) | 2016-10-31 | 2021-01-12 | Oracle International Corporation | Facilitating operations on pluggable databases using separate logical timestamp services |
US11475006B2 (en) | 2016-12-02 | 2022-10-18 | Oracle International Corporation | Query and change propagation scheduling for heterogeneous database systems |
US10803039B2 (en) | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US10691722B2 (en) | 2017-05-31 | 2020-06-23 | Oracle International Corporation | Consistent query execution for big data analytics in a hybrid database |
WO2018223262A1 (zh) * | 2017-06-05 | 2018-12-13 | 华为技术有限公司 | 一种事务处理方法、装置及设备 |
US10719446B2 (en) | 2017-08-31 | 2020-07-21 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
US10956335B2 (en) | 2017-09-29 | 2021-03-23 | Oracle International Corporation | Non-volatile cache access using RDMA |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10802766B2 (en) | 2017-09-29 | 2020-10-13 | Oracle International Corporation | Database with NVDIMM as persistent storage |
US10732836B2 (en) | 2017-09-29 | 2020-08-04 | Oracle International Corporation | Remote one-sided persistent writes |
US11675761B2 (en) | 2017-09-30 | 2023-06-13 | Oracle International Corporation | Performing in-memory columnar analytic queries on externally resident data |
US11170002B2 (en) | 2018-10-19 | 2021-11-09 | Oracle International Corporation | Integrating Kafka data-in-motion with data-at-rest tables |
US11423013B2 (en) * | 2019-05-30 | 2022-08-23 | Ebay Inc. | Transactions on non-transactional database |
CN113505114B (zh) * | 2021-06-29 | 2024-08-06 | 清华大学 | 数据库的多版本并发控制方法及数据库系统 |
Family Cites Families (13)
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 |
US4646229A (en) * | 1982-11-15 | 1987-02-24 | At&T Bell Laboratories | Time-ordered data base |
US4558413A (en) * | 1983-11-21 | 1985-12-10 | Xerox Corporation | Software version management system |
US4631673A (en) * | 1985-01-22 | 1986-12-23 | International Business Machines Corporation | Method for refreshing multicolumn tables in a relational data base using minimal information |
US4769772A (en) * | 1985-02-28 | 1988-09-06 | Honeywell Bull, Inc. | Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases |
US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
US4814971A (en) * | 1985-09-11 | 1989-03-21 | Texas Instruments Incorporated | Virtual memory recovery system using persistent roots for selective garbage collection and sibling page timestamping for defining checkpoint state |
US4714992A (en) * | 1985-11-26 | 1987-12-22 | International Business Machines Corporation | Communication for version management in a distributed information service |
US4751635A (en) * | 1986-04-16 | 1988-06-14 | Bell Communications Research, Inc. | Distributed management support system for software managers |
US4797810A (en) * | 1986-06-26 | 1989-01-10 | Texas Instruments Incorporated | Incremental, multi-area, generational, copying garbage collector for use in a virtual address space |
US4819159A (en) * | 1986-08-29 | 1989-04-04 | Tolerant Systems, Inc. | Distributed multiprocess transaction processing system and method |
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US4875159A (en) * | 1987-12-22 | 1989-10-17 | Amdahl Corporation | Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system |
-
1991
- 1991-02-25 US US07/661,046 patent/US5287496A/en not_active Expired - Fee Related
- 1991-12-02 JP JP3318182A patent/JPH081611B2/ja not_active Expired - Lifetime
-
1992
- 1992-02-04 EP EP19920101781 patent/EP0501180A3/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644701A (en) * | 1993-12-29 | 1997-07-01 | Kabushiki Kaisha Toshiba | Data processing system and method for executing snapshot dumps |
CN100433001C (zh) * | 2004-03-15 | 2008-11-12 | 冲电气工业株式会社 | 更新历史记录管理装置以及更新历史记录管理方法 |
US9251049B2 (en) | 2004-08-13 | 2016-02-02 | Compellent Technologies | Data storage space recovery system and method |
JP2010531029A (ja) * | 2007-06-22 | 2010-09-16 | コンペレント・テクノロジーズ | データ・ストレージ空間リカバリ・システムおよび方法 |
US8601035B2 (en) | 2007-06-22 | 2013-12-03 | Compellent Technologies | Data storage space recovery system and method |
JP2010538354A (ja) * | 2007-08-29 | 2010-12-09 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | データベースシステムにおける方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0501180A2 (en) | 1992-09-02 |
EP0501180A3 (en) | 1993-10-13 |
US5287496A (en) | 1994-02-15 |
JPH081611B2 (ja) | 1996-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0628315A (ja) | トランザクション・照会並行処理のための動的有限バージョン管理方法およびそのシステム | |
US6567928B1 (en) | Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects | |
US7966298B2 (en) | Record-level locking and page-level recovery in a database management system | |
US7237147B2 (en) | Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction | |
CA2532054C (en) | Ownership reassignment in a shared-nothing database system | |
US4498145A (en) | Method for assuring atomicity of multi-row update operations in a database system | |
US6295610B1 (en) | Recovering resources in parallel | |
US6026406A (en) | Batch processing of updates to indexes | |
JP4219589B2 (ja) | トランザクショナルファイルシステム | |
US6651073B1 (en) | Method and apparatus for insuring database data integrity without data recovery logging | |
US7933927B2 (en) | Method and apparatus for building index of source data | |
US8560500B2 (en) | Method and system for removing rows from directory tables | |
US12038873B2 (en) | Database management system | |
US5832516A (en) | Caching data in recoverable objects | |
JPH04337850A (ja) | データベース・トランザクション及び照会処理システム | |
EP0295424B1 (en) | Method for managing subpage concurrency control and partial transaction rollback in a transaction-oriented system of the write-ahead logging type | |
US7051051B1 (en) | Recovering from failed operations in a database system | |
Cabrera et al. | Implementing atomicity in two systems: Techniques, tradeoffs, and experience | |
Wu et al. | Dynamic finite versioning: An effective versioning approach to concurrent transaction and query processing | |
EP0097239B1 (en) | Method and apparatus for restoring data in a computing system | |
JP2004062759A (ja) | データベースログの管理方法、その装置およびそのプログラム | |
US20240354288A1 (en) | Database management system | |
JP7512519B2 (ja) | 管理装置、データベースシステム、管理方法およびプログラム | |
Park et al. | Mini-Savepoints: Firewall for Atomic Updates | |
Chong et al. | Rapid Recovery of Very Large Memory Resident Data Objects |