JPH0261733A - データページにアクセスする方法 - Google Patents

データページにアクセスする方法

Info

Publication number
JPH0261733A
JPH0261733A JP1154810A JP15481089A JPH0261733A JP H0261733 A JPH0261733 A JP H0261733A JP 1154810 A JP1154810 A JP 1154810A JP 15481089 A JP15481089 A JP 15481089A JP H0261733 A JPH0261733 A JP H0261733A
Authority
JP
Japan
Prior art keywords
page
data
pages
segment
read
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
Application number
JP1154810A
Other languages
English (en)
Other versions
JPH0740239B2 (ja
Inventor
Richard A Crus
リチヤード・アンソニイー・クラス
Donald J Haderle
ドナルド・ジエームズ・ヘダーレ
James Z Teng
ジエームズ・ズ‐チイア・タング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0261733A publication Critical patent/JPH0261733A/ja
Publication of JPH0740239B2 publication Critical patent/JPH0740239B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • Y10S707/99953Recoverability

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はコンピュータによるデータ処理システムに関し
、さらに具体的には、セグメント化された記憶装置に記
憶されたデータの削除、ロック及び読取りに関するもの
である。
B、従来技術 ]ンピュータによるデータ管理システムは、データの操
作及び処理には高速の中央演算処理装置を使用し、デー
タの永続的記憶にははるかに遅い物理的記憶装置を使用
している。物理的に記憶されたデータを処理する必要が
あるときは、データを記憶装置からバッファに転送し、
バッファで読み取り、更新し、または他の処理を行なう
ことができる。処理の後でバッファ内のページの内容が
更新された場合、そのページが再び物理的記憶装置に複
写され、前に記憶されていたデータと置き換わる。バッ
ファは中央演算処理装置(CPU)の主メモリ等の高速
の電子的記憶装置(実記憶装置)または高速の物理的記
憶装置(ページング装置)のいずれかに存在することが
できる。
物理的記憶装置からバッファへのデータ・ページの転送
、すなわち、「バッファ・ページング」と呼ばれる処理
は、ページが順次(先行する記憶ページの直後に)アク
セスされたか、それともランダムにアクセスされたかに
応じて、約2または20ミリ秒を要する。恐らくは10
0,000データ・ページにわたって分散された数10
0万のデータ・レコードを有する通常の大きなデータベ
ースでは、データ全体をランダムに読み取るにはバッフ
ァ・ページングのみで半時間以上を要する。バッファ内
にページングする必要のあるデータ・ページの数が少し
でも減少すると、データベースの能力が直接かつ大幅に
向上することになる。したがって、不必要なデータ・ペ
ージ読取り要求をなくすことにより、バッファ・ページ
ングを最小限に抑えることが望ましい。
データベースが複数のユーザまたはプログラムによって
同時にアクセスまたは更新できるようにするため、「ペ
ージ・レベル・ロッキング」ト呼ばれる技術がデータベ
ース管理システムで使用されている。ページ・レベル・
ロッキングを使用すると、ユーザまたはプログラムによ
ってアクセスまたは更新される各ページが、「ロック」
されて、他のユーザまたはプログラムによる同時アクセ
スまたは更新ができなくなる。ロックは、多大なCPU
時間を使用する、費用のかかる動作であり、システムの
処理能力及び応答時間を大きく低下させる可能性がある
。したがって、複数ユーザによる有効使用のために必要
な同時動作制御を犠牲にすることなく、ロックを最小限
にすることが望ましい。
W、チュー(Chu)等の論文、「密結合システム用の
故障許容ロッキング(Fault TolerantL
ocking for Tightly Couple
d Systems) J %分散ソフトウェア及びデ
ータベース・システムの信頼性に関する第5回シンポジ
ウムの報告要旨集(Proceedings of t
he 5th Symposium onReliab
ility in Distributed Soft
ware andDatabase System) 
  I E E Eコンピユーテイング・ソサイエティ
・プレス、(IEEE ComputingSocie
ty Press)  1988年、pp、49−55
は、レコード・グループの状況を含むロック・ワードが
そのグループに付加されるという、故障許容ロッキング
・プロトコルを開示している。プロセッサは、グループ
にアクセスする前に状況テーブルを調べる。記録される
状況は、空き、ロック、更新開始または故障である。
データベース管理システムはログ・レコードを使って、
失敗したトランザクションまたは動作を取り消すことが
できる。この機能は危険を伴う。
なぜならば、トランザクションまたは動作がその完了の
途中で失敗した場合、あるデータは変更されているが別
のデータは前の状態に留まっているからである。故障時
点までに書かれたログ・レコードを使って、テーブルを
その元の状態に復元、すなわち、ロールバックし、トラ
ンザクシロンまたは動作を再び開始することができる。
−度トランザクジョンまたは動作が完了し、データに対
するその変更を永続的なものにできるようになると、ト
ランザクションまたは動作は「コミット」される。その
コミットの後では、トランザクションまたは動作は取り
消すことができない。
1つの重要な種類のデータベース管理システムは、リレ
ーショナル・データベース管理システムである。リレー
シロナル・データベース管理システムでは、データは、
それぞれが特定の数の列及び可変数の順序付けられない
行または「レコード」から成る、1つまたは複数のテー
ブルまたは「リレーシロン」中に存在することが認めら
れる。リレーショナル・データベース管理システムの利
点は、それらのデータが、その特定の編成または記憶装
置中の位置の代わりに、その内容を参照することによっ
て、アクセスできることである。
C8発明が解決しようとする問題点 過去においては、リレーショナル・データベース・テー
ブル等の大きなデータ・エンティティの内容全体の削除
、すなわち、大量削除または無差別削除とも呼ばれる処
理は、大きなデータ・エンティティでは多大な時間を要
した。というのは、大量削除処理は、エンティティのレ
コード(行)を1つ1つ削除し、すべての削除レコード
についてログ・レコードを書かねばならないからである
本発明の1つの目的は、読み取られるページ数を減少さ
せ、かつページ・ロッキングを減少させることにより、
データベース管理システムにおけるバッファ・ページン
グの量を最少にすることである。
本発明のもう1つの目的は、リレーショナル・データベ
ース・テーブルの大量削除に必要な時間を減少させるこ
とである。
D0問題点を解決するための手段 上記及びその他の目的は、各データ・ページが単一デー
タ・エンティティのためのデータのみを含み、各ページ
の状況はそのページとは別に記憶されている、物理的記
憶空間のページを読み取る方法及びそのページにデータ
を挿入する方法によって達成される。どちらの方法でも
、あるデータ・エンティティに属するデータのすべてを
削除する間に、記憶空間がロックされる。またどちらの
方法でも、データ・エンティティのすべてのデータが削
除されたため廃用になったデータのみを含むページは、
データを含まないページと同じ扱いを受ける。
ページを読み取るための方法では、少なくとも幾つかの
現データを含むページがロックされ、かつ読み取られる
。データ・エンティティのすべてのデータよりも少ない
データが削除されたため廃用になったデータのみを含む
ページはロックされ、ロックが得られた後、現データを
含む場合にだけそれらのページが読み取られる。データ
を含まないか、またはデータ・エンティティのすべての
データが削除されたため廃用になったデータのみを含む
ページは、ロックも読取りもされない。
ページにデータを挿入するための方法では、現データを
含むページ、及びデータ・エンティティのすべてのデー
タよりも少ないデータが削除されたため廃用になったデ
ータのみを含むページは、ロックされ、読み取られてか
ら、そこにデータが挿入される。データを含まないか、
または、データ・エンティティのすべてのデータが削除
されたため廃用になったデータのみを含むページは、初
めに読取りを行なわず、そのページにデータが直接挿入
される。
本発明のその他の特徴及び利点は、添付の図面に関して
行なわれるその好ましい実施例に関する以下の詳細な説
明から明らかになるはずである。
E、実施例 E−1セグメント化されたテーブル空間リレーシロナル
・データベース・テーブルの内容(行)は、通常物理的
記憶装置の「テーブル空間」に記憶される。テーブル空
間を形成するため、物理的記憶装置の1つまたは複数の
区域が互いに論理的に連結されて、単一の線形アドレス
指定範囲(すなわち、0から64ギガバイト)を形成す
る。テーブル空間は一定の大きさのページに分割(フォ
ーマット化)され、テーブル空間内のすべてのページが
相対ページ番号によって一意的に識別される。各テーブ
ル空間は、バッファ・サイズがテーブル空間のページ・
サイズと等しくなっている、バッファ・グループまたは
バッファ・プールと関連付けられている。
セグメント化されたテーブル空間は、その内部データ編
成及び空間管理の方式によって区別される特定の種類の
テーブル空間である。セグメント化されたテーブル空間
は、通常、ヘッダ・ページ、空間マツプ・ページ及びデ
ータ・ページを含む。
データ・ページは実際のデータを記憶し、一方、ヘッダ
・ページ及び空間マツプ・ページは、そのデータ・ペー
ジに迅速にアクセスするための枠組を提供する。
データ・ページは、相対セグメント番号によって一意的
に識別されるセグメントにまとめられる。
各セグメントは大きさが等しく、テーブル空間での基本
的記憶単位を構成する。特定のセグメントにおけるすべ
てのデータ・ページは、そのセグメントのテーブルのみ
のためのデータを含む。テーブルが追加の記憶域を必要
とするときは、さらにセグメントがテーブルに割り当て
られる。
セグメントはそれ自体グループ化され、各セグメント・
グループの前に、空間マツプ・ページがくる。空間マツ
プ・ページは、空間マツプ・ページの各セグメントごと
にセグメント制御ブロックと呼ばれる項目を含む。各テ
ーブルのためのセグメント制御ブロックは、ポインタに
よって互いに連鎖される。ヘッダ・ページは、空間マツ
プ・ページがセグメントを識別するのと同様にして空間
マツプ・ページを識別し、セグメント化されたテーブル
空間内に階層記憶構造を作成する。
第1図は、本発明の方法が特にを用である、代表的なセ
グメント化されたテーブル空間10を示す。テーブル空
間は同じ大きさの多数のページから構成される。テーブ
ル空間10の最初のページは、テーブル空間ヘッダ12
であり、そのうちテーブル空間全体用のものが1つある
。テーブル空間ヘッダ12はテーブル空間識別子、及び
テーブル空間全体に関連するその他の情報を含む。テー
ブル空間の残りの部分は、それぞれいくつかのセグメン
ト16を従えた空間マツプ・ページ14から成る。各セ
グメント16はいくつかのデータ・ページ18から成る
。データ・ページ18のみがテーブルの行からのデータ
を含む。空間マツプ・ページ及びヘッダ・ページは、個
々のデータ・ページ上に記憶されたデータに対するアク
セスを容易にする階m編成をもたらす。
空間マツプ・ページ14及びそれに続くセグメントle
a、1θbNHH+、を第2図に示す。
空間マツプ・ページ14は、セグメント制御ブロックの
リスト20と、次の空間マツプ・ページを指すポインタ
22を含む。空間マツプ・ページ14に続くセグメント
16a116bt 、、、 、は幾つかのデータ・ペー
ジ18を含み、各データ・ページはテーブルの数行分の
データを記憶する。テーブル空間10はセグメント化さ
れているので、特定のセグメント16内のすべてのデー
タ・ページ18は同じテーブル用の行を含む。隣接する
セグメント16は、同じテーブルまたは異なるテーブル
用のデータを含む可能性がある。各セグメント16は、
対応するセグメント制御ブロック20を有する。
通常のセグメント制御ブロック2oを第3図に示す。各
セグメント制御ブロック20は、テーブル識別子24、
セグメント状況標識25、いくつかのデータ・ページ状
況源!1126、及び同じテーブル用の次のセグメント
制御ブロックを指すポインタ28を含む。これらのポイ
ンタ28は、第2図に示すように、同じテーブルに属す
るセグメント制御ブロック20の連鎖を作成する。特定
のセグメント16用のセグメント制御ブロック2oは、
そのセグメント内の各データ・ページ18の状況の標識
26を記憶する。この状況標識の5つの異なる値(26
a−e)は次の通りである。
(1)満杯(28a)−データ・ページが現データで完
全に溝たされている。
(2)部分充填(2E!b)−データ・ページの一部分
が現データで溝たされている。
(3)未フォーマット(26c)−データ・ページがフ
ォーマットされておらず、データを含まない。
(4)大量削除(mass delete) (26d
 )−データ・ページが、テーブルの無差別削除または
大量削除の結果、廃用化したデータのみを含む。
(5)限定削除(qualified delete)
 (26e ) −データ・ページが、テーブル中のす
べてのデータよりも少ないデータが削除される限定削除
の結果、廃用化したデータのみを含む。
データベース・テーブルのすべての行を大l削除するた
めの好ましい方法について次に説明する。
E−2セグメント化されたテーブル空間での大量削除 第1図及び第2図に示すようなセグメント化されたテー
ブル空間で、テーブル全体の大量削除を効率的に行なう
ための新しい方法が発見された。
この新しい大量削除動作は、テーブルのデータ・ページ
18をアクセス、ロックまたはログしない。
その代わりに、この大量削除動作は、対象テーブルのセ
グメント制御ブロック20のみを走査し、それらのセグ
メント状況源R25を「空き」 (割振り解除)とマー
クする。後でデータ挿入を可能にするため、テーブルの
最初のセグメント16は割振り解除されない。大量削除
を取り消しできるようにするため、割振り解除された空
間マツプ・ページ14についてロギングが行なわれる。
セグメント制御ブロックのページ状況源!i!28は、
それらのページが大量削除動作の一環として削除された
ことを示すため、「大量削除」にセットされる。これら
のデータ・ページを含むセグメント16が再割振りされ
るとき、ページ状況標識26は、データベース管理シス
テムに対してそれを識別するために変更されない。こう
する必要があるのは、大量削除されたデータ・ページ1
8に新しいデータが挿入される前に特別な処置が取られ
なければならないためである。「大量削除」ページ状況
標識26は、データ・ページが論理的に空であることを
示す。したがって、大量削除されたページは活動データ
または現データを含まず、大量削除動作中に消去されな
かった廃用データのみを含む。廃用データの消去を回避
することにより、それらのデータ・ページについてペー
ジ・アクセス及びログ・レコードが不要となるので、大
量削除動作に必要な時間が非常に大幅に減少する。
表1に、本発明の大量削除動作の疑似コードによる実施
態様を示す。
表1 セグメント化されたテーブル空間での 大量削除の疑似コード テーブルを排他モードでロックする /: 同じテーブルに対する =/ /= 他のアクセスを防ぐ  =/ コミットされていない空きセグメントが、それ自体を含
むいずれかのエージェントによって再使用されるのを防
ぐため、テーブルに対する「大量削除」型ロックを獲得
する /= 大量削除動作がコミッ =/ /=トされたとき、この口 =/ /= ツクは解除される   =/ Do  LOOPテーブルの各セグメント16について /= テーブルのセグメント =/ /= 連鎖に従う      =/ セグメント16用のセグメント制御ブ ロック20を含む空間マツプ・ページ 14にアクセスする IFそれがテーブルの最初のセグメン ト16である場合、THEN セグメント制御ブロック20の前後 のイメージのログ・レコードヲ書く セグメント制御ブロック20のすべ てのデータ・ページ状況標識26を 「大量削除」に変更する LSE /= テーブルの最初のセ =/ /= グメントでない   =/ セグメント制御ブロック20の前後 のイメージのログ・レコードヲ書り 制御ブロックの内部テーブル識別子 24をリセットすることなく、セグ メントを大量削除された空きセグメ ントとして識別するため、セグメン ト状況源!a25を「空き」に変更す る セグメント制御ブロック2oのすべ てのデータ・ページ状況標識26を 「大量削除」に変更する END   LOOP /= テーブルの全セグメン =/ /=  )1Bを処理する   =/ 大量削除されるテーブル上で他のトランザクションまた
は動作が実行されないことが不可欠である。
表1の行101は、テーブルを排他モードでロックして
、他のユーザまたはプログラムがそのテーブル中のデー
タにアクセスできないようにすることにより、このこと
を保証する。同時に、行1゜2で、コミットされていな
い(まだ永続的でない)空きセグメントが、大量削除動
作を含めてどのユーザまたはアブリケーシゴン・プログ
ラムによっても再使用されないように、「大量削除」型
のロックが獲得される。したがって、この大量削除ロッ
クは排他モードで獲得され、大量削除動作が永続的にな
り、コミットされたときにのみ解除される。
大量削除動作は次に、テーブルのセグメント制御ブロッ
ク連鎖をたどることにより、テーブルの各セグメントに
アクセスする。テーブルの各セグメント16に必要な空
間マツプ・ページ14が、アクセスされる。テーブルの
最初のセグメント16は、後続セグメントとはわずかに
異なる方式で処理される(行105−107)。どちら
の場合にも、セグメントのセグメント制御ブロック20
の前後のイメージを記録するためにログ・レコードが書
かれる。セグメントが連鎖上の最初のセグメントでない
場合(行108−111)、セグメント制御ブロックは
大量削除された空きセグメントとしてマークされるが、
セグメントのテーブル識別子24は変更されないまま残
される。0でないセグメント・テーブル識別子24は、
そのセグメントに前に関連づけられていたテーブルに関
しコミットされない大量削除が進行中の間、セグメント
を再割振りすることができないことを示す。
各セグメントに対する最終ステップ(テーブル1の行1
07及び111)は、セグメントの全データ・ページを
、それらのページが他のテーブルに割り振られるとき使
用できるように、大量削除されたものとしてマークする
。行103と112の間のDoループは、セグメント制
御ブロック20の連鎖をたどることにより、テーブルの
すべてのセグメントについて繰り返される。最後のセグ
メントが処理された後、大量削除動作は完了し、コミッ
トされることが可能になる。
後続のデータ挿入のためにテーブルが保持されないドロ
ップ・テーブル動作は、他のデータがテーブルに挿入さ
れないのでテーブルに対して最初に割り振られたセグメ
ントも割振り解除される点以外は、大m削除と同様に動
作する。
E−3空ページのロック及び読取りの最小化本発明の主
目的は、物理的または論理的に空のデータ・ページ18
のロック及び読取りを最小限にすることである。「物理
的に」空のページは、2進Oのみを含み、データをまっ
たく金型ない。
幾分似ているが、「論理的に」空のページは、有効デー
タを含まないが、2進Oにリセットされていない。論理
的に空のページは、大量削除(すなわち、テーブル内の
全データの無差別削除)または、テーブルのすべてのデ
ータよりも少ないデータの限定削除によって引き起こさ
れる可能性がある。したがって、物理的に空のページは
データを含まず、論理的に空のページは廃用データのみ
を含み、その他のすべてのページは現(すなわち、活動
または有効)データを部分的または完全に含む。
この目的を達成するため、各データ・ページの状況をベ
ージ18自体から独立して記憶しなければならず、した
がってページが空の場合は、それを読み取る必要はない
。この指示は、ベージ状況標識26としてセグメント制
御ブロック20に記憶される。上述の5種類の状況を旨
示の1つが各データ・ページ18ごとに記憶されなけれ
ばならない。
各状況指示は、データ・ページの1つの状態に対応する
最初の状況指示「満杯」は、ページ18にそれ以上デー
タを追加することができないときにセットされる。読取
り動作中、これらのページはまずロックされ、次に読み
取られる。「満杯」ページは挿入動作中は無視される。
第2の状況指示「部分充填」は、ページが少なくともい
くつかの現データまたは有効データを含むときにセット
される。読取り動作中、これらのページは「満杯」ベー
ジ同様、まずロックされ、次に通常通り読み取られる。
可変長の行(すなわち、少なくとも1つの可変長列を含
むテーブルの行)では、データ・ページ上に残された空
き空間の量を一層正確に示すため、この第2の状況指示
をさらに複数の設定に細分することができ、それによっ
て−層多くの行をデータ・ページに詰め込むことにより
、物理的記憶装置の利用度が向上する。
第3の状況指示「未フォーマット」は、物理的に空のペ
ージ、すなわち、内容が2進0のみであることが保証さ
れているページ18に対してセットされる。空間マツプ
・ページ14が最初にフォーマットされたとき、その空
間マツプによってカバーされるすべてのデータ・ページ
18は、それらのページが利用可能になる前にこの状態
にセットされる。「未フォーマット」ページはデータを
含まないので、読取り動作中、ロックも読取りも行なわ
れない。同様に、これらのページにデータが挿入される
とき、考慮すべき既存データはないので、それらのペー
ジは最初に読み取られない。しかし、要求されたページ
はログ記録され、2進0にリセットされた空のバッファ
がそのページに割り当てられ、データを含まないデータ
・ページとしてフォーマットされる。
第4の状況指示「大量削除」は、大量削除(またはドロ
ップ・テーブル)動作のためにページ18が論理的に空
になったときにセットされる。この状態は、ページが2
進Oにリセットされていなくてもページの内容が無視で
きることを示す。この状況指示を有するページは有効デ
ータを含まない。表1について上述したように、大量削
除動作で、テーブルのセグメント制御ブロック20のペ
ージ状況標識2θが第4の状況指示「大量削除」に変更
される。読取り動作中「大量削除」ページは、現データ
を含まないので、ロックも読取りも行なわれない。大量
削除が実行されている間、別のユーザまたはアプリケー
ションがそのテーブルに対して読取り動作を開始できな
いように、大量削除動作によってテーブルに対する排他
的ロックが保持されるので、同時的大量削除がコミット
されず、取り消されるという危険はない。挿入動作中、
「大量削除」ページは(「未フォーマット」ページと同
様に)、廃用データのみを含むので、最初に読み取られ
ない。しかし、ページにデータが挿入される前に、空の
バッファが割り当てられ、ページがフォーマットされる
。このフォーマット処flで、ページはまず2進Oにリ
セットされ、次にページがデータを含まないことを示す
ために、ページ・ヘッダ及びページ・トレーラがセット
される。
第5の状況指示「限定削除」は、条件付削除または限定
削除の結果、ページ18が論理的に空になったときにセ
ットされる。この種の削除ステートメントの次には、通
常、テーブルのレコードの一部のみを削除させる条件が
付加される。読取り動作中、「限定削除」ページは、そ
の論理的に空の状態が、コミットされていない削除によ
って弓き起こされたのではないことを確認するため、ま
ず検査される。この検査は、ページに対するロックを要
求し、待ち、最終的に獲得することによって行なわれる
。ロックが獲得された後、ページが依然として論理的に
空であり、廃用データのみを含む場合は、読取り動作は
そのページを飛び越す。
「限定削除」ページにデータが挿入されるときは、ペー
ジが読み取られる。
E−4セグメント化されたテーブル空間でのリレーショ
ナル走査 表2に、本発明の好ましい実施例によるリレーシロン走
査またはテーブル走査と呼ばれる一種の読取り動作の疑
似コードによる実施態様を示す。
テーブル走査でテーブルのデータのいくつかのページが
順次読み取られる。
表2 セグメント化されたテーブル空間での Do   LOOP テーブルの各セグメント−16について/= 空間マツ
プ・ページ1 =/ /= 4内及びページ間にわ =/ /= たるテーブルのセグメ =/ /= ント制御ブロック20 ;/ /= の連鎖をたどる    :/ セグメント16用の空間マツプ・ペー ジ14にアクセスし、セグメントのセ グメント制御ブロック20を読む Do   LOOP 現セグメント16の各データ・ページ 18について /= セグメント制御プロ =/ /= ツク20内のデータ =/ /= ・ページ状況標識2 =/ /= 6のリストをたどる =/ 5ELECT  ・現データ・ページ用のデータ・ペー
ジ状況標識26 CASE (標識が「非様式化」また は「大量削除」である) /= ページは物理的に =/ /= 空で、まだフォー =/ /: マットされていな =/ /= いか、または大量 =/ /= 削除のために論理 =/ /= 的に空である   =/ Doなにもしない /= ページはロック =/ /= または読取りを =/ /; されない    ;/ ND CASE (標識が「限定削除」であ る) /= /= /= D。
IF子テーブルレベル・ロック力 テーブル走査動作によって保持さ れる場合、THEN /= 他のユーザ、ま ;/ /= たはアプリケ−=/ /= ジョンがこのデ =/ /= −タ・ページの =/ /; 内容を変更でき =/ /= ない      =/ Doなにもしない ページは限定削除 =/ のために論理的に =/ 空である     =/ /= ページはロツ =/ /= りされず、読 =/ /= まれない   =/ ND LSE /= ページ−レベル =/ /= ・ロッキングが =/ /= 活動状態である =/ DO ページを共用モードでロックす る IFベージが空でなくなった場 合、T HE N /= ページはい<=/ /= つかの現デー =/ /= 夕を含む   =/ DO IFデータはすでにバッファ 中にない場合、THEN バッファをデータ・ページ に割り当てる データ・ページにアクセス し、それを読む LSE バッファ内のページを読む ND LSE /= ページが依然 =/ /= とし論理的に =/ /= 空であり、  =/ /= 廃用データ  =/ /= のみを含む  =/ DOなにもしない /= ページは読 =/ /= まれない  =/ ND ND CASE(標識が「部分充填」また は「満杯」である) /= ページは少な(と =/ /= もいくつかの現デ =/ /= −夕を含む    =/ D。
IFテーブル・レベル・ロック力 テーブル走査動作によって保持さ れる場合、THEN /= テーブル・レベ =/ /= ル・ロックが保 =/ /= 持されているの =/ /= で、共用ページ =/ /= ・ロックは必要 =/ /= でない     =/ Doなにもしない /= ページはロッ =/ /= りされない  =/ ND LSE /= ページ・レベル =/ /= ・ロックが必要 =/ /= である     =/ ページを共用モードでロックす る IFデータ・ページはすでにバラ ノア中にない場合、THEN バッファをデータ・ページに割 り当てる データ・ページにアクセスし、 それを読む LSE バッファ内のページを読む ND END   5ELECT /= 現ページの状況源 /= 識の評価を終了し /=た OOP 次のデータ・ページ ND /= =/ =/ =/ =/ /= について内側のループ=/ /= を繰り返す     =/ END  LOOP /= テーブルの次のセグメ =/ /= ントについて外側のルーエフ 表2の疑似コードに示したりレージ日ンの走査は、基本
的に、テーブルのセグメント16にわたる外側Doルー
プ、各セグメントのデータ・ページエ8にわたる内側D
oループ、及び内側DOループ内で、空間マツプ・ペー
ジ14のセグメント制御ブロック20のその状況標識2
2内の値に従ってデータ・ページを処理するための、行
205.208及び228の3つのCASEステートメ
ントを何する5ELECT構造から構成される。
行201と243の間の外側DOループは、空間マツプ
・ページ14を通じてテーブルのセグメント制御ブロッ
ク20連鎖をたどることにより、テーブルの各セグメン
ト16を処理する。テーブルのセグメント16用のセグ
メント制御ブロック20を有する各空間マツプ・ページ
14が、行202でアクセスされる。
行203と242の間の内側Doループは、セグメント
化されたテーブル空間では、各セグメントがテーブル等
の特定のデータ・エンティティのためのデータのみを含
むことが必要なので、現セグメント16内のすべてのデ
ータ・ページ18を処理する。この内側DOループは、
セグメント制御ブロック20のデータ・ページ状況標識
26のリストを通して読み、5ELECT構造を使って
、標識の値に従って、各標識の対応するデータ・ページ
18を処理する。
行204と241の間の5ELECT構造は、データ・
ページ状況標識26の異なる値を処理するための、行2
05.208及び228の3つのCASEステートメン
トを含む。行205の最初のCASEステートメントに
より、テーブル走査動作は、「未フォーマット」という
状況標識26値を有する物理的に空のページ、及び大量
削除のため論理的に空になり、したがって「大量削除」
の標識値を有するデータ・ページを飛び越す。これら2
種類のデータ・ページ18は有効または現データを含ま
ないので、無視できる。したがって、行206及び20
7では何も行なわれない。すなわち、ページはロックま
たは読取りを行なわない。
行208の第2のCASEステートメントは、限定削除
のために論理的に空になっているデータ・ページ18を
処理する。テーブル走査動作でテーブル全体にわたるテ
ーブル・レベル・ロックを獲得した場合、他のユーザま
たはアプリケーションは同時にそのテーブルを操作する
ことができない。
したがって、行210−212で、「限定削除jページ
は、廃用データのみを含み、それらの内容は同時にユー
ザまたはアプリケーションによって変更できないので、
無視される。この場合も、不必要なロック及び読取りア
クセスが回避される。
テーブル走査がテーブル・レベル・ロックを有せず、そ
の代わりにページ・レベル・ロッキングが活動状態にあ
る場合は、行213−227が実行されて、そのページ
に関する共用ロックが要求され(行215)、さらに、
ロックが得られたとき、そのページが少なくともいくつ
かの現データを含む場合は(行216)、そのページが
アクセスされ読み取られる(行217−223)。ロッ
クが得られたとき、ページが依然として論理的に空であ
り、廃用データのみを含む場合は(行224)、そのペ
ージは無視しても安全であり、何も実行されず、やはり
不必要なロックが回避され、論理的に空のデータ・ペー
ジが読み取られる。
行228の第3のCASEステートメントは、少なくと
もいくつかの現データを含むページ18を識別する、「
部分充填」または「満杯」というデータ・ページ状況源
j12Bの値を取る。テーブル走査動作がテーブルに対
するテーブル・レベル・ロックを獲得しなかった場合(
行230−232)、そのページは共用モードでロック
される(行233−234)。次に、そのページがすで
にバッファ内にない場合、データ・ページがアクセスさ
れ、読み取られる。
5ELECT構造は行241で終了し、次のデータ・ペ
ージ18について内側DOループ(行203−242)
が繰り返される。現セグメント16の最後のデータ・ペ
ージが内側Doループを通じて処理されると、テーブル
全体が走査されるまで、そのテーブルの次のセグメント
16について外側Doループ(行201−243)が繰
り返される。
E−5セグメント化されたテーブル空間への挿入 表3に、本発明によるセグメント化されたテーブル空間
16中のデータ・ページ18にデータを挿入するための
方法の疑似コードによる実施態様を示す。
表3 セグメント化されたテーブル空間への 挿入の疑似コード Do   LOOP 非滴杯ページが見つかるまで、テーブルの各セグメント
について /= 空間マツプ・ページ内 /= 及びページ間にわたる /= テーブルのセグメント /= 制御ブロックの連鎖を /= たどる =/ =/ =/ =/ =/ セグメントの用の空間マツプ・ページ にアクセスし、セグメントのセグメン ト制御ブロックを読む Do   LOOP 非溝杯データ・ページが見つかるま で、現セグメントの各データ・ペー ジについて /= セグメント制御ブ =/ /= ロック内のデータ =/ /= ・ページ状況標識 =/ /=、のりストをたどる =/ IFページの状況標識が「溝杯」 でない場合、THEN /= ページはさらに =/ /= データを受は取 =/ /= ることかできる =/ IFテーブル働レベル・ロック が挿入動作によって保持される 場合、THEN Doなにもしない ND LSE DO ページを排他モードで条件つ きでロックする IFロックが獲得された場合、 THEN 内側ループ及び外側ループ から脱出する /= データの =/ /= 挿入に進 =/ /=  む       =/ LSE DOなにもしない /= 内側及び =/ /= 外側ルー =/ /= プを続行 =/ /= する   =/ ND ND LSE /= それ以上のデータ =/ /= を挿入す余裕がな =/ /=  い              =/Doなに
もしない /= 内側ループ及び =/ /= 外側ループを続 =/ /= 行する     =/ ND END  DO現上セグメント各データ・ページについ
て /; 次のデータ・ページ =/ /= について内側ループ =/ /; を繰り返す     =/ END  Doテーブルの各セグメントについて /= 次のセグメントについ =/ /= で外側ループを繰り返 =/ /= す新しいセグメントを =/ /= 割り振る        =/ IF非満杯ページが見つかった場合、 HEN /= 既存のセグメントに余 =/ /= 地がない一新しいセグ =/ /= メントを追加する   =/ D。
テーブルに対して新しいセグメントを 割り振る IF子テーブルレベル・ロックが挿入 動作によって保持されない場合、 HEN この新しいセグメントの最初のペー ジを排他モードでロックする この新しいセグメントをテーブルのセ グメント連鎖の終わりに加える ND END  IF /= 必要に応じてページをフォー=//= マットす
るかまたは読む  =/D。
5ELECT現データ・ページ用のデータ・ページ状況
標識 CASE (標識が「非様式化」である)/= ページ
は物理的に空で =/ /; あり、まだフォーマット=/ /= されておらず、アクセ =/ /= スして読む必要がない =/ O 空のバッファ(2進Oにセットされた)をページに割り
当てる REDO0NLYログ標識をもつ フォーマット・ログ・レコードを書く データを含まないものとしてページを フォーマットする ND /=  353−364の口 =/ /= グ及び挿入に進む  =/ CASE (標識が「大量削除」である)/= ページ
は大量削除のた =/ /= めに論理的に空であり、=/ /= アクセスして読む必要 =/ /= がない        =/ O 空のバッファ(2進Oにセットされた)をページに割り
当てる 一REDO0NLYログ標識、及び −NON−ZEROPHYSICA L  PAGEログ標識をもつフォー マット・ログ・レコードを書く /= 矛盾した記憶デー =/ /= 夕を検査するため =/ /= に、システム再給 =/ /= 動中に使用する  =/ データを含まないものとしてページを フォーマットする ND /=  353−364の口 =/ /= グ及び挿入に進む  =/ CASE (標識が「限定削除」または「部分充填」で
ある) /= ページが限定削除のた /; めに論理的に空である /; か、あるいは現データ /= または有効データで部 /; 公的に溝たされており、 /; その前イメージを記録 /= するために読まなけれ =/ =/ =/ =/ =/ =/ =/ /= ばならない      =/ O IFデータ・ぺふジがすでにバッファ にない場合、THEN バッファをデータ・ページに割り当 てる データ・ページにアクセスしてそれ を読む LSE バッファ内のページを読む ND /=  353−3Et4の口 =/ /= グ及び挿入に進む  =/ ND /= /= /= ELECT ページ状況標識に依存 =/ するフォーマット及び =/ 読取りを終了した   =/ /= 挿入を記録し、新しいデータを挿 =//= /= /= 入する             =/7’−タ・ヘ−
’)の前及び後のイメージのログ・レコードを書く 新しいデータをデータ・ページに挿入する ND データ・ページの状況標識を更新 =/する     
          =/O IFデータ・ページがこのとき滴杯である場合、THE
N /= ページがそれ以上デー =/ /= 夕を受は取ることがで =/ /= きない        =/ セグメント制御ブロック内のページの 状況標識を「溝柱」にセットする LSE /= ページが依然として =/ /= さらにデータを受け =/ /= 取ることができる  =/ 361  セグメント制御ブロック内のページの状況標
識を「部分充填」にセットする 362  空間マツプ・ページの前及び後のイメージの
ログ・レコードを書く 363  空間マツプ・ページ上のセグメントのセグメ
ント制御ブロックを更新する 364  END 表3に示した挿入動作の疑似コードによる実施態様は、
2つの主要部分を有する。すなわち、新しいデータの挿
入が可能なデータ・ページ18を探し出すための2つの
ネストされたDoループの組(行301−321)と、
データをロックし、フォーマットし、読み取り、記録し
、ページに挿入し、さらに、空間マツプ・ページ14上
のセグメント制御ブロック20内のページの状況標識2
6を更新するための後続の一連のモジュール(行322
−329、330−352、353−356及び357
−368)である。
行301と321の間のネストされたDOループは、新
しいデータの挿入が可能な最初の使用可能なデータ・ペ
ージ18を探し出す。行301と321の間の外側ルー
プは、テーブル空間の空間マツプ・ページ14に沿って
テーブルのセグメント制御ブロック20連鎖をたどるこ
とにより、テーブルのセグメント16をループする。行
303と320の間の内側Doループは、非満杯データ
・ページ18が見つかるまで、セグメント制御ブロック
20のデータ・ページ状況標識26のリストを読む。「
滴杯」以外の状況標識26が見つかると(行304)、
Doループを出て、ロック、フォーマット、読取り等の
ための一連のモジュールが開始される。セグメント16
内のすべてのデータ・ページ18が滴杯と示された場合
は(行317)、内側DOループを出て、非満杯データ
・ページ18が見つかるまで、次のセグメント16につ
いて外側ループを繰り返す。非満杯ページが見つからな
い場合は、新しいセグメントがテーブルに割り振られる
(行322−329)。
一度データ・ページ18がロックされると、必要に応じ
て行332−343で再フォ−マツトされるか、または
344−351で読み取られる。
取られる処置はページの状況標識26の値によって決ま
る。「未フォーマット」及び「大量削除」標識26を有
するページ18は最初に読み取られずに再フォ−マツト
され、「部分充填」または「限定削除」標識を有するペ
ージは再フォ−マツトせずに読み取られなければならな
い。行331と352の間の5ELECT構造は、それ
ぞれ「未フォーマット」、「大量削除」及び「部分充填
」、または「限定削除」状況標識を処理する3つのCA
SEステートメントを含む。
ページが「未フォーマット」の場合は、データが挿入さ
れる前に読み取る必要はない。したがって、そのページ
に空のバッファ(2進0にセットされた)が割り当てら
れ(行334)、ログ標識REDOONLYをもつフォ
ーマット・ログ・レコードが書かれ(行335)、次に
、その空のバッファがデータを含まないページとしてフ
ォーマットされる(行336)。このときバッファは新
しいデータを挿入され、記録され、物理的記憶域に書か
れる準備ができている。
大量削除の結果廃用データのみを含む「大量削除」ペー
ジは行338−343で処理される。未フォーマット・
ページと同様、大量削除されたページは読まれない。そ
の代わり、2進Oにセットされた空のバッファが〜その
ページに割り当てられ、フォーマット・ログ・レコード
が書かれる(行340−341)。大量削除されたペー
ジが再フォ−マツトされるときに書かれるフォーマット
・ログ・レコードは、REDO0NLYログ標識及びN
0NZEROPHYSICAL  PAGEログ標識を
含む。N0NZEROPHYSICALPAGEログ標
識は、後で「データの保全性」の項で説明するように、
整合性のない記憶データがあるかどうか検査するために
システム再始動中に使用される。フォーマット・ログ・
レコードが書かれた後は、このとき空のバッファは、デ
ータを含まないページ、のためのヘッダ及びフッタでフ
ォーマットされ(行342)、そのページは行353−
3E14のロギング及び挿入モジュールを適用する準備
ができている。
新しいデータが挿入されるページ18が「部分充填」ま
たは「限定削除」 (限定削除で古くなったデータのみ
を含むページになるため論理的に空)である場合は、ペ
ージ18は再フォ−マツトされてはならないが、その代
わりに、その既存の内容の「前のイメージ」が記録され
ることが可能なように、アクセスされ、読み取られなけ
ればならない。行344のCASEステートメントが、
行345−351でアクセスされて読み取られ、次いで
行353−384のロギング及び挿入モジュールで処理
されるページを識別する。
データ・ページ18が必要に応じて再フォ−マツトまた
は読み取られると、行353−364のロギング及び挿
入モジュールは、ページの前及び後のイメージのログ・
レコードを書き、新しいデータをページに挿入する。行
355での挿入には、ページ18の新しい内容を物理的
記憶域に書き込むことを含む。
挿入動作の最後のステップは、空間マツプ・ページ14
のそのセグメント制御ブロック20におけるデータ・ペ
ージの状況標識26を更新することである(行357−
364)。新しい挿入でページが滴杯になり、そのペー
ジにそれ以上データを受は入れることができなくなった
場合(行358)、ページの状況標識26は「滴杯」に
セットされる(行359)。そうでない場合は、ページ
の状況標識26が「部分充填」にセットされる(行36
0−361)。行362で空間マツプ・ページの前及び
後のイメージのログ・レコードが書かれ、変更されたデ
ータ・ページ状況標識26を含むセグメント制御ブロッ
ク20が空間マツプ・ページ14上で更新される(行3
63)。この更新は、更新された空間マツプ・ページ1
4を物理的記憶域に転送することを含む。
E−6セグメント化されたテーブル空間でのデータの保
全性 データベース管理システムは、ユーザまたはアプリケ−
シロンが矛盾したデータにアクセスすることを防止しな
ければならない。このデータの保全性の必要性は、有用
なデータベース管理システムにとって欠くことのできな
い要件である。ページがバッファから物理的記憶域に転
送されている間にシステムが破壊し、物理的に記憶され
たページの最初の部分が更新されたデータを含み、ペー
ジの最後の部分が古くなったデータを含んだままである
場合、データ・ページ18は矛盾したデータを含む可能
性がある。
この状態を検出するための好ましい方法は、2つの保全
性検査ビット、すなわち、ページの始めの1ビツトと終
わりの1ビツトを維持することである。整合性のあるデ
ータを含むページでは、これらの2ビツトは同じ値を有
する(すなわち、共にオンか、または共にオフになる)
。保全性ビットが異なる場合は、ページのデータは矛盾
したものとして扱われる。ページが物理的記憶域に転送
されるたびに、保全性ビットが反転される(オフからオ
ンに、またはオンからオフに変更される)。
ページが部分的にのみ転送された場合は、2つの保全性
ビットが−散しなくなる。
前述のように、入出力読取り(すなわち、ページ・アク
セス及び読取り)は、大量削除によって生じた論理的に
空のページが挿入動作に使用されるときは、実行されな
い。入出力読取りが実行されないので、物理的に記憶さ
れたページに関する保全性ビットの値は不明である。こ
のため、新たに挿入されたデータを含む再使用されたペ
ージが部分的にのみ物理的記憶域に転送された場合、ペ
ージの始めの新しい保全性ビットが、物理的に記憶され
たページの終わりの古い置き換えられていない保全性ビ
ットと一致するかも知れないので、矛盾した状態が検出
できない可能性が残る。
この検出不能な矛盾したデータの可能性を回避するため
、大量削除されたページが再フォ−マツトされるときに
書かれるページ・フォーマット・ログ・レコートニ、N
0NZEROPHYSICAL  PAGEログ標識が
含まれる(表3の行329)。N0NZEROPHYS
ICALPAGEログ標識は、システム再始動中にフォ
ーマット・ログ・レコードを再び適用して、物理的に記
憶されたページの内容を2進0で置き換えなければなら
ないことを示す。先行書込みロギングを使用するデータ
ベース管理システムは通常、ページが更新されるとき、
ページ・ヘッダ及びログ・レコードの両方にタイムスタ
ンプ値を入れる。
フォーマット・ログ・レコードにN0NZEROPHY
SICAL  PAGEログ標識がなければ、たとえペ
ージが実際には部分的にのみ転送された場合でも、物理
的に記憶されたページのタイムスタンプがログ・レコー
ドのタイムスタンプと一致するので、再始動中にシステ
ムは、前に大量削除され、このとき更新されたページが
首尾よく物理的記憶域に転送されたものと見なすはずで
ある。N0NZEROPHYSICAL  PAGEロ
グ標識を用いる場合、システムはまずページを2進0に
セットし、次にそれを新たに挿入されたデータでリセッ
トする。セグメント化されたテーブル空間10における
データの保全性を保証するこの方法は、先行書込みロギ
ングの使用に基づいており、データベース管理システム
は、更新されたページを物理的記憶域に転送する前に、
更新されたログ・レコードを書くことを強制される。
データの保全性を保証するためのこの方法の疑似コード
による実施態様を表4に示す。
表4 データの保全性を保証する疑似コード IFページ要求について入出力読取りが開始された場合
、THEN /= 保全性ビットを検査す =/ /=  る                    
=/O IF保全性検査ビットが一致しない場 合、THEN ページを損傷を受けたものとしてマー クする ログ・レコードからページを回復す る LSE /= 保全性ビットが一致 =/ /= する        =/ DOなにもしない ND ND IFベージをバッファから物理的記憶域に転送する場合
、THEN D。
/= 保全性ビットをリセ =/ /=  ットする        =/保全性ビットを
反転する /= すなわち、両ビット /= が現在オフにセット /= されている場合は両 =/ =/ =/ /= ビットをオンに変更 /=シ、現在オフである /= 場合はオンにセット /= する 412   END =/ =/ =/ =/ 表4に示したデータの保全性を保証する方法は、2つの
独立したモジュール、すなわち、ページからデータを読
み取る前に保全性ビットを検査するためのモジュールと
、新しいデータがページに書き込まれるときに保全性ビ
ットをセットするためのもう1つのモジュールから成る
。行401−409の第1のモジュールは、ページ18
が読み取られようとするとき、ページ18の保全性ビッ
トを検査する(行401)。ページの始めと終わりの保
全性ビットが同じ値を含まない場合は(行403)、ペ
ージは損傷を受けたものとしてマークされる(行404
)。損傷を受けたページは、ログ・レコードを使ってペ
ージを回復することにより、その最後の整合性のある状
態に戻される(行405)。ページの保全性ビットが一
致する場合は、何も行なわれず(行406−408)、
ページはただちに正常に読み取られることが可能である
データ保全性を保証する方法の第2のモジュール(行4
10−412)は、ページがバッファから物理的記憶域
に転送されようとするとき、保全性ビットをリセットす
る(行410)。そのような転送の前に、保全性ビット
が反転される。ビットが現在オンである場合は、オフに
変更(反転)され、現在オフである場合は、オンに反転
される(行401)。
セグメント化されたテーブル空間10におけるデータの
保全性を保証するための上記の方法を用いると、データ
・ページのロック及び読取りを最小限にするための本発
明の方法を使って、読取り及び挿入動作中に必要なペー
ジ・アクセスの回数を減少させ、それによってデータベ
ース管理システムの処理能力をある程度向上させること
ができる。
例示のために特定の実施例及び実施様態について説明し
たが、本発明の精神及び範囲から逸脱することなく種々
の変更を加えることができることを理解されたい。たと
えば、ページの不必要なロック及び読取りを回避できる
ようにデータ・ページの状況をページから独立して記憶
するという本発明の基本的要件を溝たしている限り、異
なる編成のセグメント化されたテーブル空間に本発明を
適用することができる。さらに、本発明はリレーショナ
ル・データベース管理システムに限定されたものではな
く、他の種類のコンピュータによるデータ処理システム
にも有効に適用することができる。
F1発明の効果 本発明を用いればデータベース・システム等における操
作を高速化することができる。
【図面の簡単な説明】
第1図は、本発明の好ましい実施例の方法に必要なセグ
メント化されたテーブル空間を示す。 第2図は第1図のセグメント化されたテーブル空間とそ
れに関連する空間マツプ・ページを示す。 第3図は第2図の空間マツプ・ページのセグメント制御
ブロックのフォーマツトラ示ス。

Claims (2)

    【特許請求の範囲】
  1. (1)2以上のページより成る物理的記憶空間において
    、上記ページにアクセスする方法であって、 (a)データを含むページ上に単一のデータ・エンティ
    ティに関するデータだけを記憶し、 (b)上記データを含むページの状態を、上記データを
    含むページとは別個に記憶し、 (c)1つのデータ・エンティティのデータのすべてを
    削除した結果として廃用データのみを含むページを、該
    ページがデータをまったく含まないかのようにアクセス
    するステップを含む、記憶空間のページにアクセスする
    方法。
  2. (2)複数のページから成る物理的記憶空間であって、
    上記各ページが単一のデータ・エンティティに関するデ
    ータのみを含み、該ページの状態の表示が上記ページと
    は別個に記憶されるものにおいて、上記ページにアクセ
    スする方法であって、 (a1)現データで完全に一杯のページに関して第1の
    表示を記憶し、 (a2)現データで一部が充填されたページに関して第
    2の表示を記憶し、 (a3)データを含まないページに関して第3の表示を
    記憶し、 (a4)データの全体的削除の結果として廃用データの
    みを含むページに関して第4の表示を記憶し、 (a5)データの一部限定削除の結果として廃用データ
    のみを含むページに関して第5の表示を記憶する第1の
    ステップと、 任意の順序の、 (b)2以上のデータのページを走査するとき、上記第
    1または第2の表示を有するページをロックし且つ読み
    取り、 (c)上記走査中に、上記第3または第4の表示を有す
    るページはロックも読取りも行なわず、 (d)上記走査中に、上記第5の表示を有するページを
    ロックし、該ページが現データを含んでいる場合にのみ
    該ページを読み取り、 (e)上記第3または第4の表示を有するページに対し
    て、該ページを最初に読み取ることなく、データを挿入
    し、 (f)上記第2または第5の表示を有するページに対し
    て、該ページをロックし且つ読み取った後で、データを
    挿入する、 各ステップとを有する、記憶空間のページにアクセスす
    る方法。
JP1154810A 1988-07-15 1989-06-19 データページにアクセスする方法 Expired - Lifetime JPH0740239B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US219514 1988-07-15
US07/219,514 US4961134A (en) 1988-07-15 1988-07-15 Method for minimizing locking and reading in a segmented storage space

Publications (2)

Publication Number Publication Date
JPH0261733A true JPH0261733A (ja) 1990-03-01
JPH0740239B2 JPH0740239B2 (ja) 1995-05-01

Family

ID=22819581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1154810A Expired - Lifetime JPH0740239B2 (ja) 1988-07-15 1989-06-19 データページにアクセスする方法

Country Status (4)

Country Link
US (1) US4961134A (ja)
EP (1) EP0351387B1 (ja)
JP (1) JPH0740239B2 (ja)
DE (1) DE68927142T2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5410691A (en) * 1990-05-07 1995-04-25 Next Computer, Inc. Method and apparatus for providing a network configuration database
CA2285096C (en) * 1991-11-12 2000-05-09 Ibm Canada Limited-Ibm Canada Limitee Logical mapping of data objects using data spaces
US5355477A (en) * 1991-12-23 1994-10-11 International Business Machines Corporation Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning
JPH06175914A (ja) * 1992-09-21 1994-06-24 Eastman Kodak Co メモリ管理装置
JP3378594B2 (ja) * 1992-09-25 2003-02-17 富士通株式会社 データベース再配置を行う処理装置
US5418966A (en) * 1992-10-16 1995-05-23 International Business Machines Corporation Updating replicated objects in a plurality of memory partitions
JP2583010B2 (ja) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法
US5455944A (en) * 1993-03-16 1995-10-03 International Business Machines Corporation Method for managing logging and locking of page free space information in a transaction processing system
US5619671A (en) * 1993-04-19 1997-04-08 International Business Machines Corporation Method and apparatus for providing token controlled access to protected pages of memory
US5628023A (en) * 1993-04-19 1997-05-06 International Business Machines Corporation Virtual storage computer system having methods and apparatus for providing token-controlled access to protected pages of memory via a token-accessible view
JP3699733B2 (ja) * 1994-08-10 2005-09-28 株式会社日立製作所 タプル単位排他制御方式
US5761676A (en) * 1994-09-19 1998-06-02 Bmc Software, Inc. Method of removing unneeded data from DB2 logs and other data sets having displacement-dependent data
US5550973A (en) * 1995-03-15 1996-08-27 International Business Machines Corporation System and method for failure recovery in a shared resource system having a moving write lock
US6173306B1 (en) 1995-07-21 2001-01-09 Emc Corporation Dynamic load balancing
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US5960194A (en) * 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
US5692182A (en) * 1995-10-05 1997-11-25 International Business Machines Corporation Bufferpool coherency for identifying and retrieving versions of workfile data using a producing DBMS and a consuming DBMS
US5895491A (en) * 1996-08-19 1999-04-20 International Business Machines Corporation Apparatus and method for writing an item to a line in a memory table shared by multiple processors
US5832508A (en) * 1996-09-18 1998-11-03 Sybase, Inc. Method for deallocating a log in database systems
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US5950211A (en) * 1997-01-03 1999-09-07 Ncr Corporation Discarded history method for solving streams message block leakages
JPH10260876A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd データベースのデータ構造及びデータベースのデータ処理方法
US5930807A (en) * 1997-04-23 1999-07-27 Sun Microsystems Apparatus and method for fast filtering read and write barrier operations in garbage collection system
US6334134B1 (en) * 1998-08-18 2001-12-25 International Business Machines Corporation Insert performance on a multi-system transaction environment
US6470359B1 (en) 1998-09-24 2002-10-22 International Business Machines Corporation Fast technique for recovering an index on an auxiliary table
US6606617B1 (en) 1998-09-24 2003-08-12 International Business Machines Corporation Optimized technique for prefetching LOB table space pages
US6694340B1 (en) 1998-09-24 2004-02-17 International Business Machines Corporation Technique for determining the age of the oldest reading transaction with a database object
US6366902B1 (en) 1998-09-24 2002-04-02 International Business Machines Corp. Using an epoch number to optimize access with rowid columns and direct row access
US6343293B1 (en) 1998-09-24 2002-01-29 International Business Machines Corporation Storing the uncompressed data length in a LOB map to speed substring access within a LOB value
US6363389B1 (en) 1998-09-24 2002-03-26 International Business Machines Corporation Technique for creating a unique quasi-random row identifier
US6144970A (en) * 1998-09-24 2000-11-07 International Business Machines Corporation Technique for inplace reorganization of a LOB table space
US6343286B1 (en) 1998-09-24 2002-01-29 International Business Machines Corporation Efficient technique to defer large object access with intermediate results
US6115722A (en) * 1998-10-27 2000-09-05 Computer Associates Think, Inc. Method for checking tablespaces involved in referential integrity
US7756818B1 (en) * 1999-07-07 2010-07-13 Computer Associates Think, Inc. Database table recovery system
US6944615B2 (en) * 2001-06-28 2005-09-13 International Business Machines Corporation System and method for avoiding deadlock situations due to pseudo-deleted entries
CN1287289C (zh) * 2001-07-05 2006-11-29 松下电器产业株式会社 记录设备、介质以及方法
CA2414980A1 (en) * 2002-12-23 2004-06-23 Ibm Canada Limited-Ibm Canada Limitee Deferred incremental integrity maintenance of base tables having contiguous data blocks
US7107396B2 (en) * 2003-10-31 2006-09-12 International Business Machines Corporation Chaining of blocks for optimal performance with DASD (Direct Access Storage Devices) free nonvolatile updates
US7565217B2 (en) * 2005-04-01 2009-07-21 International Business Machines Corporation Traversal of empty regions in a searchable data structure
US7721068B2 (en) * 2006-06-12 2010-05-18 Oracle America, Inc. Relocation of active DMA pages
US7827374B2 (en) * 2006-06-12 2010-11-02 Oracle America, Inc. Relocating page tables
US7802070B2 (en) * 2006-06-13 2010-09-21 Oracle America, Inc. Approach for de-fragmenting physical memory by grouping kernel pages together based on large pages
US7698273B2 (en) * 2006-06-23 2010-04-13 Microsoft Corporation Solving table locking problems associated with concurrent processing
US7472249B2 (en) * 2006-06-30 2008-12-30 Sun Microsystems, Inc. Kernel memory free algorithm
US7500074B2 (en) * 2006-06-30 2009-03-03 Sun Microsystems, Inc. Identifying relocatable kernel mappings
US8087027B2 (en) * 2007-03-29 2011-12-27 International Business Machines Corporation Computer program product and system for deferring the deletion of control blocks
US20080243966A1 (en) * 2007-04-02 2008-10-02 Croisettier Ramanakumari M System and method for managing temporary storage space of a database management system
US8205062B2 (en) * 2009-10-14 2012-06-19 Inetco Systems Limited Tiered data management method and system for high performance data monitoring
GB0921851D0 (en) * 2009-12-15 2010-01-27 Geniedb Record operation mode setting
US9507670B2 (en) * 2010-06-14 2016-11-29 Veeam Software Ag Selective processing of file system objects for image level backups
US8874620B1 (en) * 2011-06-15 2014-10-28 Amazon Technologies, Inc. Data transfer optimization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57141752A (en) * 1981-02-26 1982-09-02 Fujitsu Ltd Resource occupying system
JPS59160251A (ja) * 1983-03-02 1984-09-10 Fujitsu Ltd デ−タベ−ス処理システムにおける空きスペ−ス管理制御方式
JPS6285355A (ja) * 1985-10-09 1987-04-18 Nec Corp デ−タベ−ス空きスペ−ス管理方式

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS605024B2 (ja) * 1979-09-04 1985-02-07 ファナック株式会社 情報処理方式
US4627019A (en) * 1982-07-08 1986-12-02 At&T Bell Laboratories Database management system for controlling concurrent access to a database
JPH0724036B2 (ja) * 1983-12-23 1995-03-15 株式会社日立製作所 データベース処理方法
US4716528A (en) * 1986-02-03 1987-12-29 International Business Machines Corporation Method for managing lock escalation in a multiprocessing, multiprogramming environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57141752A (en) * 1981-02-26 1982-09-02 Fujitsu Ltd Resource occupying system
JPS59160251A (ja) * 1983-03-02 1984-09-10 Fujitsu Ltd デ−タベ−ス処理システムにおける空きスペ−ス管理制御方式
JPS6285355A (ja) * 1985-10-09 1987-04-18 Nec Corp デ−タベ−ス空きスペ−ス管理方式

Also Published As

Publication number Publication date
EP0351387A2 (en) 1990-01-17
US4961134A (en) 1990-10-02
JPH0740239B2 (ja) 1995-05-01
EP0351387B1 (en) 1996-09-11
DE68927142D1 (de) 1996-10-17
DE68927142T2 (de) 1997-03-13
EP0351387A3 (en) 1990-11-07

Similar Documents

Publication Publication Date Title
US4961134A (en) Method for minimizing locking and reading in a segmented storage space
US5535381A (en) Apparatus and method for copying and restoring disk files
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
Gawlick et al. Varieties of concurrency control in IMS/VS fast path
US6243718B1 (en) Building indexes on columns containing large objects
US5224215A (en) Message queue processing among cooperative processors having significant speed differences
US6651073B1 (en) Method and apparatus for insuring database data integrity without data recovery logging
US6813623B2 (en) Method and apparatus for chunk based transaction logging with asynchronous input/output for a database management system
US6321234B1 (en) Database server system with improved methods for logging transactions
US6026406A (en) Batch processing of updates to indexes
US6615219B1 (en) Database management system and method for databases having large objects
EP0442715B1 (en) Transaction processing system and method with reduced locking
US5123104A (en) Method and apparatus for concurrent modification of an index tree in a transaction processing system utilizing selective indication of structural modification operations
US5287496A (en) Dynamic, finite versioning for concurrent transaction and query processing
US6823436B2 (en) System for conserving metadata about data snapshots
Robinson Design of concurrency controls for transaction processing systems
US20050010592A1 (en) Method and system for taking a data snapshot
CN112084032B (zh) 一种写优化的持久性内存堆管理方法
JPH01261745A (ja) データ・ベース・レコードのトランザクシヨンの回復方法
US20120317384A1 (en) Data storage method
US7949846B2 (en) Map shuffle-allocation map protection without extra I/O'S using minimal extra disk space
EP0410210A2 (en) Method for dynamically expanding and rapidly accessing file directories
WO2023272895A1 (zh) 一种数据和日志一体化的值日志实现方法、装置、设备及存储介质
JP4131579B2 (ja) データ管理システムおよびデータ管理方法
JPS62245347A (ja) データベースシステムおよびその処理方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080501

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090501

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100501

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100501

Year of fee payment: 15