JPS599764A - 複数行更新動作の原子性を保証する方法 - Google Patents

複数行更新動作の原子性を保証する方法

Info

Publication number
JPS599764A
JPS599764A JP58102962A JP10296283A JPS599764A JP S599764 A JPS599764 A JP S599764A JP 58102962 A JP58102962 A JP 58102962A JP 10296283 A JP10296283 A JP 10296283A JP S599764 A JPS599764 A JP S599764A
Authority
JP
Japan
Prior art keywords
log
savepoint
record
soft
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP58102962A
Other languages
English (en)
Inventor
ジエリ−・ウエイン・ベ−カ−
リチヤ−ド・アンソニ−・クルス
ドナルド・ジエ−ムズ・ハダ−ル
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 JPS599764A publication Critical patent/JPS599764A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1474Error detection or correction of the data by redundancy in operations in transactions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • 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)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

【発明の詳細な説明】 本発明はデータベースを管理する新しい計算方法、特に
関係データベースにおけるような複数行更新動作の原子
性(atomicity)を保証する方法に係る。
〔先行技術の説明〕
先行技術のデータ管理システムでは、データベ−xに作
用する動作の原子性を保証するす゛ポー1が必要に応じ
て与えられている。そのような動作が”原子的”と呼ば
れるのは、該動作が完全に成功した場合、または該動作
が失販してもデータベースの状態が不変のままに留まる
場合である。
IBM情報管理システムCIMS/VS)バージョン1
では、1回にルコード、すなわちテーブルの1行を更新
する動作の原子性を保証するサポートが与えられている
。しかしながら、IMS/VSには複数”行の更新機能
はない。
複数行の更新動作を与えるデータベース管理システムは
、IBMのシステムR1実験用データベース管理システ
ム、およびIBMの構造化照会言語/データ・システム
(SQL/DS)のよウナ、関係モデルに基づいたシス
テムを含む。システムRは、刊行物であるBlasge
n他、” SystemR:  An  Archit
ectural  Overview”IBM  Sy
stem  Journal、Vol、20.No。
1.1981、 PP4l−62に説明されている。I
BM SQL/Dsは、刊行物であるsQL/Data
  System Planning  an、dAc
dfmi:rtt s t ra t i on”、I
BM Publica目0nSH24−5014−0,
Program  Number574 B−XX 、
J、、August  1981に説明されており、そ
のうち回復に関係するものはP、P9−1ないし9〜1
9に説明されている。以下、間作データベースとは、複
数行の更新動作を可能にするすべてのデータベー・ス管
理モデルを含むものとする。
SQL言語(これはシステムRまたはSQL/DSによ
って管理されたデータベースにアクセスするだめの外部
言語である)は、ユーザが定義したデータの状態を変更
するだめの動作、すなわちUPDATE(更新)、DE
LE’TE(削除)、lN5ERT(挿入)等の動作を
提供する。これらの動作を利用すると、SQLユーザは
指定されたデータベースのテーブルで、複数行(すなわ
ち、レコード)の更新、削除、挿入等を行うことができ
る。システムRおよびSQL;/DSで実現されたよう
に、SQLは前記複数行動作の部分的成功を可能にしだ
が、これによれば例えば複数行更新の最中にエラーが検
出された場合には、当該動作が終了せしめられ、要求さ
れたレコードのサブセットのみが更新されるにすぎ々い
。従って、テーブルは矛循性を含む状態に留まり、か゛
くてSQL動作を要求しているアプリケーション・プロ
グラムは特定のレコードが更新されているか否かを正確
に決定する実際的な手段を持たない。もし回復可能なフ
ァイルが使用されるならば、前記エラーが検出されると
きロールバック、または回り動作を遂行することにより
、回復ユニツ)(UR)内のすべての仕事、すなわちト
ランザクションを元通りに復元(undo)Lなければ
ならない。この動作は、エラーを生ぜしめた動作の結果
を取消すげかりではなく、同じ回復ユニット内の他の動
作の結果をも取消す、という問題を含んでいる。もし回
復不能なファイルが使用されているならば、問題は更に
深刻である。その場合、ロールバック・プロ七スは全く
効果がなく、従って、アプリケ−ション・プログラムは
データ回復を処理しなければならない。
複数行更新動作シーケンスの間にエラーを生じた場合、
トランザクションを完全に復帰させる必要をなくするだ
めの各種の一提案が行なわれた。たとえば、複雑な動作
の各々を保管点(savepaint)で開始し且つエ
ラー発生時にこの保管点まで復帰させることが提案され
た。これについては、Grayイ献 ”The  Re
covery Manager  of  aData
 Managemer+t  System”、IBM
Research  Publicatian、Com
puterSscienee  RJ2623(−#5
3801 )、August  15.1979(およ
びACMComputing  5urveys%Vo
1.15、No、2、June  1981、PP22
3−242)を参照されたい。前記提案のシステムRの
説明では、前記保管点の方法は実現されておらず、どち
らかといえば未解決の言語設計の問題であることが指摘
きれている。
〔発明の概要〕
本発明によれば、関係データベースにおけるように、ユ
ーザが要求したテーブルに対する複数行更新動作の原子
性を保証する方法が与えられる。
この方法では、更新動作が成功した場合は、すべての記
述された結果が生じるのに対し、更新動作が失販した場
合は、ユーザが認識するシステム状態は不変のままに留
まることが保証される。こうするため、複数行の更新動
作要求に応答して所与の実行モジュールを確立すること
が行なわれるが、該実行モジュールはその開始点に保管
点要求を持つ更新動作要求を実現するように複数の機械
語コード命令を含んでいる。実行モジュール中の、また
は実行モジュールによって呼出される命令の各セットが
、ユーザが認識したシステム状態を変更するようなもの
であれば、その各々ごとに復元情報がハード・ログまた
はソフト・ログに選択的に記録される。実行モジュール
がエラーを伴なわずに完了すると、保管点が削除されて
この保管点以後に記録されたすべてのソフト・ログ情報
が削除され、かつ保管点要求時にユーザが認識したシス
テムの状態の復元を保証するために保持されたすべての
資源が解放される。モジュールと実行中にエラーが検出
9されると、ユーザが認識した状態を保管点要求時に存
在していた状態に復元するために、記録された復元情報
が使用される。
〔実施例の説明〕
第1図を参照するに、図示された高レベルの記憶マツプ
は、例えば、DBMS(データベース管理システム)1
0を実現したIBMシステム/670多重仮想記憶(M
VS)における2つの私用アドレス空間を表わしている
。IBMシステム/370のアーキテクチャは、刊行物
であるIBMシステム/ 37 D Pr1ncipl
es of 0peration。
FOrm No、GA22−700.0−6に説明され
ている。本例では、DBMS 10はMST(アドレス
空間マスク)12の領域およびDBM(データベース・
マネージャ)14の領域を含むものとする。ハード・ロ
グ22は、米国特許出願第390163号(1982年
6月21日)および米国特許出願第390454号(1
982年6月21日)にそれぞれ説明しているように、
MST12の制御の下に維持される。第7表に本説明で
使用される略語を示す。
DBMI 4はRD S (、関係データ・システム)
16およびDM(データ・マネージャ)17を含み、こ
れらは共同してデータベース24に記憶されたデータ対
象の生成、変更、アクセスおよび削除を管理する。前記
動作は、連合アドレス空間(図示せず)で実行中のアプ
リケーションまたはタスクからの呼出に応答して、実行
されることがある。前記連合アドレス空間とDBMS 
10によって与えられた機能との間の連結を確立する1
つの方法が、米国特許出願第595244号(1982
年6月29日)に説明されている。
RDS16がその機能を実行する方法が、前記Over
view”、IBM  System  Journa
l。
Vol、20、No、1.1981および米国特許出願
第393902号(、1982年6月60日)に詳細に
示されている。
第3図は、代表的なSQLステートメントすなわち要求
66を示す。コマンド・フィールド5゜は”従業員”と
命名されたファイルの”更新″が行ワレることを示し、
オペレーション・フィールド52は”給与″フィールド
が10%増加されることを示し、選択基準フィールド5
4は部門M10における従業員の給与フィールドが更新
されることを示す。選択基準フィールド54には1つ以
上の述部(後に説明する)が含まれる。
RDS 16は、連合アドレス空間(図示せず)で実行
中のアプリケーションから、DBM14内のDM17を
呼出すのに必要な制御ブロックと実行モジュールとに受
取られたSQLステートメントを処理する。各々の実行
モジュールは、処理中のSQLステートメントを実現す
る1セツトの機スフ4中のデータを検索し且つ変更する
ために、DM17中で定義された1セツトのプロトコル
の呼出しを含む(このプロトコル・セットはMSIと呼
ばれる)。
次に第4図を参照して、SQLステートメントのlN5
ERT、UPDATE、DELETE命令を含むデータ
処理動作を行うために、実行モジュールからDBM14
の0M17に渡される各種の制御ブロックについて説明
する。第4図には、MSIB(操作システム人力ブロッ
ク)60%MSIFLD(操作システム入力フィールド
)70、MS I 5ELL(操作システム選択ブロッ
ク)8Q、CUB(カーソル・ブロック)90およびぺ
・ジセット100が示されている。MSIB60はメイ
ン・アンカー制御ブロックであり、CUB90へのポイ
ンタ62、MSISELL80へのポインタ64および
MSIFLD70へのポインタ66を含む。CUB90
はページ・セット100中の走査位置を識別する情報を
含む。この情報は、カーソル・ブロックのタイプを識別
するコード、ページ・セラ)100の識別子92および
RIDIDOのR,TDスロット112を識別するRI
D番号94を含み、該RIDスロット112は走査位置
に置かれたレコード106に対するページ102のポイ
ンタを含む。MSISELL8Dは、′サーガブル”(
sargable)述部を指定する。サーガプル述部は
、DBM14の0M17にとって意味のある述部である
。非す−ガル述部は、0M17が処理できない述部であ
り、RDS16によって検査しなければならない。MS
ISELL80は、述部が適用されるフィールドの識別
子、比較演算子(〉、く、≧、≦、〈〉)のオヘレーシ
ョン・コート、比較される値へのポインタ、およびAN
D、ORのようなプール結合子を含む。MSISELL
80の各々は、1つの述部を指定するのに用いられる。
複数の述部は、複数のMSISELL80およびプール
結合子フィールドを用いて指定される。MSIFLD7
0は値が戻されるか、または供給されるフィールドを指
定し、フィールドの識別子、フィールド・データ・タイ
プ、フィールド長、および関係するバッファ76および
78へのポインタを含む。
ここで第2図を参照するに、そこには複数のSQLステ
ートメント63.64.36および58を含むトランザ
クションがUR30として示されている。UR(回復ユ
ニット)とは、所与のプロセスによってなされる仕事で
あって、矛循性の無いある時点から他の時点への1つ以
上の回復可能な資源(データベース24)の状態に影響
するようなものである。URの範囲は、複数の実行モジ
ュールを含むことがある。第2図のUR30は、SQL
ステートメント33.64、′56および68を実現す
る実行モジュールを含む。UR30はlN5ERTステ
ートメント33の開始点32で開始され、現行SQLス
テートメント開始点40で始まるDELETEステート
メント68を越える時点まで及んでいる。ここで、複数
行のDELETEステートメント38を実行する間に、
システム・クラッシュまたは他の揮発性記憶(ソフト・
ログ20を含む)の喪失を除くエラーが42で生じるも
のとする。この場合、本発明によって復元動作が与えら
れ、これにょシ同じUR30中のUPDATEステート
メント3乙によって外された変更に悪影響を与えること
なく、データベース24を現行SQLステートメント開
始点4oにおける状態に復元することができる。本発明
がなければ、前記米国特許出願第390165号(19
82年6月21日)で説明されているように、ハード・
ログ22を利用する回復動作46が必要となるであろう
。(もしエラーがソフト・ログ2゜の喪失をもたらすな
らば、前記回復動作はデータベース24をUR開始点6
2におけるその状態に回復するのに利用することができ
る。)従って、本発明の手順を実行する際、0M17は
主記憶中のソフト・ログ2oおよびDASD中のハード
・ログ22を利用する。データベース24でデータ対象
が変更される毎に、0M17はハート・ログ22または
ソフト・ログ20 K I L/ :7−ドまたは複数
レコードを記憶する。ページ・セラ)100が回復可能
であり、そして更新を含むヘーシカデータベース24(
データベース244)DASDである)にコピーされた
かもしれなければ、ハード・ログ22が使用される。も
しコミットされた変更の結果がDBMS 10によって
システム故障を切り抜けることを保証されるならば、ペ
ージ・セット1υOは回復可能であるとみなされる。も
しページ・セット100が回復可能でないか、またはペ
ージ102がデータベース24にコピーされていないと
保証されるならば、ソフト・ログ20が使用される。ハ
ード・ログ22上の各レコードはデータベース24に対
する変更を表わしており、次の3フイールドを含んでい
る。
(aン ハード・ログ見出し くb)  データ・マネージャ・ログ見出しくC)アベ
ンデージ ハード・ログ見出しには、ログ・レコード・タイプを指
定するフィールドおよび前の・・−ド・ログ・レコード
に対するポインタを保持するフィールドが含まれる。デ
ータ・マネージャ・ログ見出しには、次の4フイールド
が含まれる。
(a)変更されるページ・セットを識別するページ・セ
ット識別子フィールド 本例では、ページ・セットは1乃至′52データ・セッ
トの組であり、これらは論理的に連結されて2”32バ
イItでの線形アドレス空間を形成する。データ・セッ
トはデータベース24の特定の部分であり、MVSオペ
レーティング・システムを介して読取られかつ書込まれ
る。
(b)変更中のページ・セットにおけるページを識別す
るページ識別子フィールド 本例では、ページはページ・セット中の409・6また
は32768バイトの連続領域であり、4096または
32768バイトの境界で始まる。
(c)変更を行なうDBM14のDM17の手順を識別
するフィールド (d) /・−ド・ログ・レコードがUNDO(復元)
、REDO(再実行)またはUNDO/REDO情報を
含むか否かを示すフラグ UNDO情報は、あたかも所与の更新動作が実行されな
かったかのように、該更新動作を元通シに復元するのに
必要な情報である。REDO情報は、更新動作を再実行
するのに必要な情報である。
アペンデージのフォーマットは、変更のタイプによって
異なる。ある場合に咳、アベンデージは変更中のデータ
対象の変更前後のイメージを含み、他の場合には、アペ
ンデージは復元動作を実施するのに必要な情報を含む。
回復不能なデータベース24でデータ対象全変更する毎
に、そして保管点(savepofnt)が確立される
毎に、DM17はソフト・ログ2oにソフト・ログ・レ
コードを記憶する。ソフト・ログ20のレコードには次
のものが含まれる。
(、)  ソフト・ログ・レコード見出しこれには ・前のソフト・ログ20のレコードに対するポインタ ・このログ・レコードの長さ ・ログ・レコード・タイプを識別するオペレーション・
コード が含まれる。
(b)  フォーマットがログ・レコード・メインニよ
って異なるアペンデージ ログ・レコードがデータ変更の場合には、アペンデージ
にはUNDO情報が含まれる。もしログ・レコードが保
管点を記述するならば、アベンデージには次のものが含
まれる。
a、ユーザが与えた保管点の名前 す、前の保管点のソフト・ログ2oのレコードに対する
ポインタ C4このソフト・ログ・レコードを書込む保管点モジュ
ールによって書込まれた最初のハード・ログ22のレコ
ードのRBA(相対バイト・アドレス) d1位置が保管されるCUB(カーソル・ブロック)を
記述する項目リスト これKは (a)RID(レコード識別子) (b)CUBの位置(すなわちCUB位置およびその前
後のWR’l’レコード) が含まれる。CUBは、データベース24中の行または
レコードの位置を維持するのに用いられるDM17の制
御ブロックである。各々のCUBは、とりわけ、インデ
ックスおよびページ・セット100のようなデータ・マ
ネージャの対象内の位置を表わす。
次に、以上の制御ブロックおよびモジュールの動作を説
明する。本発明の原子性プロトコルは、DBMI4のD
M17によってカニられる保管点/復元機構を用いて実
現される。これらの2つの動作を用いることによ、j)
、DM17のユーザはデータベース24の状態をUR3
0内の前もって決められた点(保管点)、すなわち現行
SQLステートメント開始点40に戻すことができ、従
って前記点の後に生じた変更の結果を取消すことができ
る。
複数行を対象とするSQLのUPp4TE% lN5E
RTjたはDELETE命令を実現した各実行モジュー
ルは、原子性を保証するために、保管点および復元動作
を利用する。これらの実行モジュールは第5および6図
に示されている。第6図の更新/削除用の実行モジュー
ルは、第6表の擬似コ5−ドで示されている。第5図に
示した実行モジュールの開始端では、データベース24
が変更される前に保管点コマンド150(第7図参照)
がDBMI4のDM17に送られる。この動作に対する
入力としてUR30内で一意的な1つの名前が渡される
。この名前は、保管点コマンド150(第2図の例では
、これはDELETEステートメント38の始めに相当
する現行SQLステートメント開始点40である)、お
よび状態を保管すべきCUB90−のりストを識別する
。第4表は保管点生成手順を擬似コードで示す。
もしエラー160(第2図のエラー42)が実行モジュ
ール第5図または第6図の)で検出されたならば、復元
コマンド162が生じ(第8図に示すように)、保管点
コマンド150で指定された名前がパラメータとして渡
される。復元コマンド162はすべてのユーザおよびシ
ステム・データの状態を、第8図および第5表に示す方
法によって保管点コマンド150が出された点(現行S
QLステートメント開始点40)における状態に戻す。
第8図および第5表には、ソフト・ログ20にある保管
点レコードを取込むステップ190、ソフト・ログ20
のレコードからハード・ログ22にある保管点レコード
のRBAを取込むステップ192、エラー160(第2
図のエラー42)に応じてハード・ログ22のUNDO
レコードを処理することによシ保管点のRBA(現行S
QLステートメント開発点40)へ戻すステップ194
、および保管点で及在していた位置にCUB90のRI
D番号94の値をセットするステップ196が含まれる
データベース24の状態を変更するSQLの動作を実現
したすべての実行モジュールは、保管点コマンド150
および復元コマンド162を用いて原子性を保証する。
コンパイルによってコードを生成するのではなく、(定
義および許可ステートメントのように)解釈されつつ実
行される他のSQL動作は、同じ接近方法を用いる。す
なわち、保管点コマンド150はデータベース24が変
更される前に出され、そして復元コマンド162はデー
タベース24の変更後にエラーが検出された場合に出さ
れる。この実現形態による実質的な作用は、SQLのユ
ーザがすべての動作を原子的であると認識する点、すな
わち完全な成功またはデータベース24が不変の!まに
留まることを認識する、という点にある。
こうして、ソフト・ログ20は回復ユニットごとに揮発
性記憶で生成され、そして後入れ先出しくLIFO)式
に管理される。DBMI 4のDM17は、CUB90
%回復不能なデータ・ページ、寸たはデータベース24
にコピーされていないことが保証される回復可能ページ
に対して変更を行なうように要求されると、この変更を
要求していル回復ユニット(UR)についてソフト・ロ
グ20にレコードを挿入する。このレコードには、CU
B90またはデータ・ページ102の変更の結果を復元
するのに必要なUNDO情報そのものが含まれる。復元
動作を行なうために呼出されるモジュール名も、ソフト
・ログ・2oのレコードにおいて指定される。ノ1−ド
・ログ22は、データベース24にコピーされたかもし
れないデータのページ10.2に対して行なわれた変更
のUNDOおよびREDO情報を記録するとともに、デ
ータベース24にコピーきれなかったことが保証される
ページのREDO情報のみを記録するのに用いられる。
もしURろO中の実行モジュール(第5図または第6図
の)が保管点コマンド150を出したならば、指定され
た保管点名を有する特定のレコードがソフト・ログ20
およびノ・−ド・ログ22の両方に挿入される。もし復
元コマンド162が出されたならば、復元段階440間
にログ20および22の両方からUNDOレコードがL
IF’O式に応取られ、そして復元コマンド162で指
定された名前を含む保管点レコードが見つかるまで、前
記動作が実行される。
UR30によって複数の保管点レコードをスタックする
ことも可能である。例えば、2つの保管点コマンド15
0を両者の間に復元コマンド162を持たずに出したU
R30の場合を考えると、ソフト・ログ20の内容はス
タックされた保管点レコードを示す第1表のように現わ
れる。
第1表 スタックされた保管点: 保管点5pi UNDOレコード1 UNDOレコード2 UNDOレコード5 保管点5P2 UNDOレコードi+1 UNDOレコードi+2 UNDOレコードに この時点で、UR30は保管点S ’P 2に対する復
元コマンドを出し、かくて保管点SP2以後になされた
データベース24の変更のすべてを復元させるであろう
。ソフト・ログ20はそのとき第2表に示す情報を有す
るであろう。
第   2   表 復元後のスタックされた保管点: 保管点5pi UNDOレコー・ド1 UNDOレコード2 UNDOレコードi しかしながら、もしSPlに対する復元コマンドが出さ
れたならば、ソフト・ログ20のスヘテのレコードは処
理され削除されることになる。
復元プロセスの効率を高めるために、DBMI4のDM
17は、ソフト・ログ20の各レコードが単一のページ
102の変更を記述し、かつこの変更をページ102お
よびログ201.22のレコードに含まれた情報のみを
用いて照会しうるような方式を採用することがある。従
って、復元を行なうのに、他のページ、ディレクトリま
たはカタログをアクセスする必要はない。
08M14のDM17は、他の構成要素のソフト・ログ
20またはハード・ログ22へのレコード書込みを可能
にするオペレータを与えることによって、本発明の原子
性プロトコルを簡略化する。
従って、他の構成要素によって管理される資源の変更も
、前記機構によって復元可能である。また08M14の
DM17は、ソフト・ログ20およびハード・ログ22
を用いてそれ自身の動・作の原子性を保証する。従って
、08M14のDM17を用いる構成要素は、データベ
ース24の呼出間の無矛循性について心配する必要はな
い。
ソフト・ログ20は、ユーザおよびシステム・データの
変更を復元するのに必要な情報を集中管理する機構を与
えるか1本発明の原子性プロトコルの良好な実施例の重
要な構成要素である。
N寸℃の OF〜寸℃の0〜寸℃ N’)   (イ)  N’)   哨     寸 
 寸  寸  寸  寸 寸  の  の  的  の
1し コ 率           。 \ す、7−0  
や j ト V 率 S ゛へ                 1     
   へ1                    
         口             7\
ψ 賭 米 ヤ で霞        で1   で1  −   で1
   で1  −   で1  −   で鴇へへへ 
へへへへへへへへNへへ 匡    S H:I    j 剥べρシO巾11トロO ム Δ べ、、L 峙に・口 \ 率 φ へ  へ  へ  ヘ  ヘ  へ  へ  へ  へ
  へ  へ     へ  ヘ  へ叩      
             呻0          
               +Oρ       
 禾         ”六 本          
                     へ即 −
中 止 FQ                     
          コ第   7   表 CUB     :カーソル・ブロックDASD   
 :直接アクセス記憶装置DBM     :データベ
ース・マネージャDBMS    :データベース管理
システムDM     :データ・マネージャ MSIFLD  :操作システム入力フイールドMSI
B   :操作システム人力ブロックMSISELL:
操作システム選択ブロックMST     ニアドレス
空間マスクMVS     :多重仮想記憶 RDS     :関係データ・システムRID   
  ニレコード識別 SQL     :構造化照会言語 UR:回復ユニット
【図面の簡単な説明】
第1図は関係データ・システム、データ・マネージャ、
ノ・−ド・ログおよびソフト・ログを含むデータベース
管理システムを示す図、 第2図は回復粋よび復元動作を含む代表的な口笛6図は
代表的なSQLステートメントを示す図、 第4図は本発明の方法を実行する際に参照される種々の
制御ブロックおよびデータ領域を示す図、第5図はlN
5ERT動作を実現する実行モジュールによって実行さ
れる手順を示す流れ図、第6図はUPDATEまたはD
ELETE動作を実現する実行モジュールによって実行
される手順を示す流れ図、 第7図は第5および6図に示された保管点動作を示す流
れ図、 第8図は第5および6図に示された復元動作を示す流れ
図である。 10・・・・DBMS、12・・・・MST、14・・
・・DBM、16・・・・RDS、17・−・DM、2
0・・・・ソフト・ログ、22・・・・ハード・ログ、
24・・・・データベース、30・・・・UR,12・
・・・UR開始、65・・・・lN5ERT、34・・
・・5ELECT136・・・・UPDATE、38・
・・・DELETE、40・・・・現行SQLステート
メント開始、42・・・・エラー、44・・・・復元、
46・・・・回復、50・・・・コマンド・フィール)
”、52・・・・オペレーション・フィールド、54・
・・・選択基準フィー/l/ド、 60・・・・MSI
B、62、64.66・・・・ポインタ、70・・・・
MS I FLD、’76.7B・・・・バッファ、8
0・・・・MS I S ELL、’90・・・・CU
B、92・・・・識別子、93・・・・バッファ、94
・・・・RID番号、100・・・・ページ・セット、
102・・・・ページ、106・・・・レコード、11
2・・・・RIDスロット。 出願人  インターカンヨナノいピン木ス・マシーンズ
・コーポレーションFIG、7 FIG。8

Claims (1)

  1. 【特許請求の範囲】 関係データベース内のテーブルに対してユーザが要求す
    る複数行更新動作を行なう場合、該更新動作が成功する
    ときは記述されたすべての結果が生じ且つ更新、挿入お
    よび削除命令を含む該更新動作が失敗するときはユーザ
    によって識別されるシステム状態が不変のままに留まる
    ように、前記複数行更新動作の原子性を保証する方法で
    あって、更新動作要求に応答して、該要求を実現するだ
    めの複数の機械語コード命令を有し且つその開始部に保
    管点要求を有する実行モジュールを確立し、前記実行モ
    ジュール中の、または前記実行モジュールによって呼出
    される各命令セットがユーザによって認識されるシステ
    ム状態を変更するようなものである場合には、その各セ
    ットごとに復元情報をソフト・ログまたはハード・ログ
    に選択的に記録し、 前記保管点要求時点でユーザによって認識されたシステ
    ム状態への復元を保証するため、実行モジュールの終了
    時に前記保管点を落し、該保管点以後に記録されたすべ
    てのソフト・ログ情報を削除するとともに、保持された
    すべての資源を解放し、 エラーを検出した際、ソフト・ログおよび/またはハー
    ド・ログに記録された修復情報に応答して、ユーザが認
    識したシステム状態を前記保管点要求時点のシステム状
    態に復元するようにしたことを特徴とする複数行更新動
    作の原子性を保証する方法。
JP58102962A 1982-06-30 1983-06-10 複数行更新動作の原子性を保証する方法 Pending JPS599764A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/393,967 US4498145A (en) 1982-06-30 1982-06-30 Method for assuring atomicity of multi-row update operations in a database system
US393967 1995-02-24

Publications (1)

Publication Number Publication Date
JPS599764A true JPS599764A (ja) 1984-01-19

Family

ID=23556984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58102962A Pending JPS599764A (ja) 1982-06-30 1983-06-10 複数行更新動作の原子性を保証する方法

Country Status (2)

Country Link
US (1) US4498145A (ja)
JP (1) JPS599764A (ja)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4752910A (en) * 1984-10-30 1988-06-21 Prime Computer, Inc. Method and apparatus for continuous after-imaging
US4888690A (en) * 1985-01-11 1989-12-19 Wang Laboratories, Inc. Interactive error handling means in database management
US5097408A (en) * 1985-01-11 1992-03-17 Wang Laboratories, Inc. Apparatus for specifying a result relation in a relational database system by selection of rows
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
US4847754A (en) * 1985-10-15 1989-07-11 International Business Machines Corporation Extended atomic operations
US4868744A (en) * 1986-03-03 1989-09-19 International Business Machines Corporation Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
US4878167A (en) * 1986-06-30 1989-10-31 International Business Machines Corporation Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data
US4791561A (en) * 1987-04-17 1988-12-13 Wang Laboratories, Inc. Interactive construction of means for database maintenance
US4805099A (en) * 1987-04-17 1989-02-14 Wang Laboratories, Inc. Retrieval of related records from a relational database
US5008819A (en) * 1987-10-07 1991-04-16 Gorbatenko George G Memory spaced array
US4888681A (en) * 1987-10-19 1989-12-19 International Business Machines Corporation Space management system for data files having shared access
US5077658A (en) * 1987-10-19 1991-12-31 International Business Machines Corporation Data access system for a file access processor
US4897782A (en) * 1987-10-19 1990-01-30 International Business Machines Corporation Local cache structure for maintaining updated file characteristics in a file sharing system
US5237682A (en) * 1987-10-19 1993-08-17 International Business Machines Corporation File management system for a computer
US5319780A (en) * 1987-10-19 1994-06-07 International Business Machines Corporation System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued
US5093782A (en) * 1987-12-14 1992-03-03 Texas Instruments Incorporated Real time event driven database management system
US5043866A (en) * 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
US4945474A (en) * 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
US5043876A (en) * 1988-05-27 1991-08-27 International Business Machines Corporation N-level file shadowing and recovery in a shared file system
US5175849A (en) * 1988-07-28 1992-12-29 Amdahl Corporation Capturing data of a database system
EP0360387B1 (en) * 1988-09-23 1996-05-08 International Business Machines Corporation Data base management system
US5047960A (en) * 1989-01-04 1991-09-10 Sloan Scott K Apparatus and method to automate data entry into an application program
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
JPH032939A (ja) * 1989-05-30 1991-01-09 Hitachi Ltd データ管理方法
JP2679715B2 (ja) * 1989-06-30 1997-11-19 富士通株式会社 データ転送方法
US5170480A (en) * 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5319774A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Recovery facility for incomplete sync points for distributed application
US5165031A (en) * 1990-05-16 1992-11-17 International Business Machines Corporation Coordinated handling of error codes and information describing errors in a commit procedure
JP2691081B2 (ja) * 1990-05-16 1997-12-17 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・ネットワーク
US5319773A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Asynchronous resynchronization of a commit procedure
US5276876A (en) * 1990-05-16 1994-01-04 International Business Machines Corporation Registration of resources for commit procedures
US5327532A (en) * 1990-05-16 1994-07-05 International Business Machines Corporation Coordinated sync point management of protected resources
JP3293839B2 (ja) * 1990-05-16 2002-06-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US5604899A (en) * 1990-05-21 1997-02-18 Financial Systems Technology Pty. Ltd. Data relationships processor with unlimited expansion capability
DE69126066T2 (de) * 1990-06-29 1997-09-25 Oracle Corp Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs
EP0465019B1 (en) * 1990-06-29 1997-05-14 Oracle Corporation Method and apparatus for managing state identifiers for efficient recovery
US5222233A (en) * 1990-07-09 1993-06-22 The United States Of America As Represented By The Secretary Of The Navy Method for restructuring a database using a relational database scheme derived by selecting subscheme joins to avoid cycles
US5317730A (en) 1991-01-11 1994-05-31 International Business Machines Corporation System for modifying persistent database based upon set of data elements formed after selective insertion or deletion
JP2993528B2 (ja) * 1991-05-18 1999-12-20 富士通株式会社 テキスト管理・復元方式
US5815656A (en) * 1992-09-23 1998-09-29 International Business Machines Corporation Method of validating memory structures in data processing systems
US5418940A (en) * 1993-08-04 1995-05-23 International Business Machines Corporation Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment
GB2281644A (en) * 1993-09-02 1995-03-08 Ibm Fault tolerant transaction-oriented data processing.
JPH0836513A (ja) * 1993-12-29 1996-02-06 Xerox Corp データ管理方法及びデータ管理エラー回復方法
US5524239A (en) * 1994-04-28 1996-06-04 The United States Of America As Represented By The Secretary Of The Navy Replay recovery protocol for real-time database management systems
US5649152A (en) * 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
JPH11508069A (ja) * 1995-06-16 1999-07-13 ルーセント テクノロジーズ 持続性状態のチェックポイントおよび復旧システム
US6105148A (en) * 1995-06-16 2000-08-15 Lucent Technologies Inc. Persistent state checkpoint and restoration systems
US5778168A (en) * 1995-09-11 1998-07-07 Sun Microsystems, Inc. Transaction device driver technique for a journaling file system to ensure atomicity of write operations to a computer mass storage device
US6112199A (en) * 1995-10-18 2000-08-29 Nelson; Paul M. Data item values
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
US6105025A (en) * 1996-03-08 2000-08-15 Oracle Corporation Method for using an index as a workspace for deferred enforcement of uniqueness constraints
US6067550A (en) 1997-03-10 2000-05-23 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US6490594B1 (en) 1997-04-04 2002-12-03 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US5995960A (en) * 1998-04-08 1999-11-30 International Business Machines Corporaiton Method and system for improving efficiency of programs utilizing databases by exeuting scenarios based on recalled processed information
US6185577B1 (en) * 1998-06-23 2001-02-06 Oracle Corporation Method and apparatus for incremental undo
US6397381B1 (en) * 1998-09-21 2002-05-28 Microsoft Corporation System and method for repairing a damaged application program
US6618822B1 (en) * 2000-01-03 2003-09-09 Oracle International Corporation Method and mechanism for relational access of recovery logs in a database system
US6567823B1 (en) * 2000-08-07 2003-05-20 Corigin Ltd. Change propagation method using DBMS log files
US8650169B1 (en) 2000-09-29 2014-02-11 Oracle International Corporation Method and mechanism for identifying transaction on a row of data
US6631374B1 (en) * 2000-09-29 2003-10-07 Oracle Corp. System and method for providing fine-grained temporal database access
US20030135480A1 (en) * 2002-01-14 2003-07-17 Van Arsdale Robert S. System for updating a database
CA2370601A1 (en) * 2002-02-05 2003-08-05 Ibm Canada Limited-Ibm Canada Limitee Optimizing log usage for temporary objects
US7058664B1 (en) * 2002-04-29 2006-06-06 Sprint Communications Company L.P. Method and system for data recovery
JP2004062309A (ja) * 2002-07-25 2004-02-26 Fujitsu Ltd 不当命令処理方法及びプロセッサ
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7991748B2 (en) * 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US7239581B2 (en) * 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
US7730222B2 (en) * 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
US7577806B2 (en) * 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US7577807B2 (en) * 2003-09-23 2009-08-18 Symantec Operating Corporation Methods and devices for restoring a portion of a data store
US7409587B2 (en) * 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
US7904428B2 (en) * 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7631120B2 (en) * 2004-08-24 2009-12-08 Symantec Operating Corporation Methods and apparatus for optimally selecting a storage buffer for the storage of data
US7296008B2 (en) * 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
US7287133B2 (en) * 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7725760B2 (en) * 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US7827362B2 (en) * 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US7499953B2 (en) * 2004-04-23 2009-03-03 Oracle International Corporation Online recovery of user tables using flashback table
US8631347B2 (en) * 2004-11-15 2014-01-14 Microsoft Corporation Electronic document style matrix
US7818301B2 (en) * 2004-12-17 2010-10-19 International Business Machines Corporation Method, system and article of manufacture for rolling back past a boundary generator to a savepoint located in a unit of work
US7499955B2 (en) * 2005-03-30 2009-03-03 Microsoft Corporation System and method for undoing application actions using inverse actions with atomic rollback
US7991971B2 (en) * 2005-09-09 2011-08-02 Microsoft Corporation State management for transactional backup consistency
US20070061351A1 (en) * 2005-09-13 2007-03-15 Microsoft Corporation Shape object text
US20070061349A1 (en) * 2005-09-15 2007-03-15 Microsoft Corporation Hierarchically describing shapes
US8001526B2 (en) * 2005-09-15 2011-08-16 Microsoft Corporation Hierarchical property storage
US7783971B2 (en) * 2005-09-13 2010-08-24 Microsoft Corporation Graphic object themes
US7721205B2 (en) * 2005-09-15 2010-05-18 Microsoft Corporation Integration of composite objects in host applications
WO2007047346A2 (en) * 2005-10-14 2007-04-26 Symantec Operating Corporation Technique for timeline compression in a data store
US8682863B2 (en) 2006-10-04 2014-03-25 Salesforce.Com, Inc. Methods and systems for bulk row save logic in an object relational mapping layer and application framework
US8161010B2 (en) * 2006-10-04 2012-04-17 Salesforce.Com, Inc. Methods and systems for providing fault recovery to side effects occurring during data processing
US8548942B2 (en) 2006-10-04 2013-10-01 Salesforce.Com, Inc. Methods and systems for recursive saving of hierarchical objects to a database
US20080228566A1 (en) * 2007-03-15 2008-09-18 Microsoft Corporation Processing coupons with payments
US20080228567A1 (en) * 2007-03-16 2008-09-18 Microsoft Corporation Online coupon wallet

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5583963A (en) * 1978-12-20 1980-06-24 Fujitsu Ltd Recovery systen for index sequence compiling file

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4042912A (en) * 1975-06-19 1977-08-16 Honeywell Information Systems Inc. Database set condition test instruction
US4130867A (en) * 1975-06-19 1978-12-19 Honeywell Information Systems Inc. Database instruction apparatus for determining a database record type
GB1505603A (en) * 1976-07-07 1978-03-30 Ibm Data processing systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5583963A (en) * 1978-12-20 1980-06-24 Fujitsu Ltd Recovery systen for index sequence compiling file

Also Published As

Publication number Publication date
US4498145A (en) 1985-02-05

Similar Documents

Publication Publication Date Title
JPS599764A (ja) 複数行更新動作の原子性を保証する方法
EP4517549A1 (en) Distributed transaction processing method, system and device, and readable storage medium
US7536517B2 (en) Direct-update software transactional memory
US6834275B2 (en) Transaction processing system using efficient file update processing and recovery processing
JP3848085B2 (ja) トランザクションデータの高速記憶常駐処理方法および処理システム
US7571173B2 (en) Cross-platform transportable database
US4945474A (en) Method for restoring a database after I/O error employing write-ahead logging protocols
US8341120B2 (en) Apparatus and methods for transferring database objects into and out of database systems
US5504886A (en) System and method for applying user supplied relation definitions to application files for a relational database
JPH0773087A (ja) データ処理システムにおけるファイル状態の回復方法
JPH0628043B2 (ja) データ・ベース・システムの動作を回復する方法
US7225206B2 (en) System and method for reorganizing stored data
WO2020192663A1 (zh) 一种数据管理方法及相关设备
EP0097239B1 (en) Method and apparatus for restoring data in a computing system
CN104035952A (zh) 硬件支持的存储临时拷贝
JP4238490B2 (ja) データベース管理方法およびシステム
WO2024198010A1 (zh) 一种面向列存数据库的并发控制方法及其装置
CN116775229A (zh) 一种事务处理系统及存储介质
JP2980610B2 (ja) トランザクション管理装置
CN118689910A (zh) 向量索引方法、装置、电子设备及计算机可读存储介质
JPH05127965A (ja) 設計情報復元方法
JPH1049419A (ja) インデックス二重化による複数時点データ管理方式
AU2002256151A1 (en) System and method for reorganizing stored data
JPS598072A (ja) 計算装置の動作方法
JPH09152975A (ja) 並行実行制御方式