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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/463—Program control block organisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1474—Error detection or correction of the data by redundancy in operations in transactions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- 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)を保証する方法に係る。
関係データベースにおけるような複数行更新動作の原子
性(atomicity)を保証する方法に係る。
先行技術のデータ管理システムでは、データベ−xに作
用する動作の原子性を保証するす゛ポー1が必要に応じ
て与えられている。そのような動作が”原子的”と呼ば
れるのは、該動作が完全に成功した場合、または該動作
が失販してもデータベースの状態が不変のままに留まる
場合である。
用する動作の原子性を保証するす゛ポー1が必要に応じ
て与えられている。そのような動作が”原子的”と呼ば
れるのは、該動作が完全に成功した場合、または該動作
が失販してもデータベースの状態が不変のままに留まる
場合である。
IBM情報管理システムCIMS/VS)バージョン1
では、1回にルコード、すなわちテーブルの1行を更新
する動作の原子性を保証するサポートが与えられている
。しかしながら、IMS/VSには複数”行の更新機能
はない。
では、1回にルコード、すなわちテーブルの1行を更新
する動作の原子性を保証するサポートが与えられている
。しかしながら、IMS/VSには複数”行の更新機能
はない。
複数行の更新動作を与えるデータベース管理システムは
、IBMのシステムR1実験用データベース管理システ
ム、およびIBMの構造化照会言語/データ・システム
(SQL/DS)のよウナ、関係モデルに基づいたシス
テムを含む。システムRは、刊行物であるBlasge
n他、” SystemR: An Archit
ectural Overview”IBM Sy
stem Journal、Vol、20.No。
、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に説明されている。以下、間作データベースとは、複
数行の更新動作を可能にするすべてのデータベー・ス管
理モデルを含むものとする。
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なければ
ならない。この動作は、エラーを生ぜしめた動作の結果
を取消すげかりではなく、同じ回復ユニット内の他の動
作の結果をも取消す、という問題を含んでいる。もし回
復不能なファイルが使用されているならば、問題は更に
深刻である。その場合、ロールバック・プロ七スは全く
効果がなく、従って、アプリケ−ション・プログラムは
データ回復を処理しなければならない。
って管理されたデータベースにアクセスするだめの外部
言語である)は、ユーザが定義したデータの状態を変更
するだめの動作、すなわち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の
説明では、前記保管点の方法は実現されておらず、どち
らかといえば未解決の言語設計の問題であることが指摘
きれている。
トランザクションを完全に復帰させる必要をなくするだ
めの各種の一提案が行なわれた。たとえば、複雑な動作
の各々を保管点(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されると、ユーザが認識した状態を保管点要求時に存
在していた状態に復元するために、記録された復元情報
が使用される。
述された結果が生じるのに対し、更新動作が失販した場
合は、ユーザが認識するシステム状態は不変のままに留
まることが保証される。こうするため、複数行の更新動
作要求に応答して所与の実行モジュールを確立すること
が行なわれるが、該実行モジュールはその開始点に保管
点要求を持つ更新動作要求を実現するように複数の機械
語コード命令を含んでいる。実行モジュール中の、また
は実行モジュールによって呼出される命令の各セットが
、ユーザが認識したシステム状態を変更するようなもの
であれば、その各々ごとに復元情報がハード・ログまた
はソフト・ログに選択的に記録される。実行モジュール
がエラーを伴なわずに完了すると、保管点が削除されて
この保管点以後に記録されたすべてのソフト・ログ情報
が削除され、かつ保管点要求時にユーザが認識したシス
テムの状態の復元を保証するために保持されたすべての
資源が解放される。モジュールと実行中にエラーが検出
9されると、ユーザが認識した状態を保管点要求時に存
在していた状態に復元するために、記録された復元情報
が使用される。
第1図を参照するに、図示された高レベルの記憶マツプ
は、例えば、DBMS(データベース管理システム)1
0を実現したIBMシステム/670多重仮想記憶(M
VS)における2つの私用アドレス空間を表わしている
。IBMシステム/370のアーキテクチャは、刊行物
であるIBMシステム/ 37 D Pr1ncipl
es of 0peration。
は、例えば、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表に本説明で
使用される略語を示す。
ている。本例では、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日)に説明されている。
16およびDM(データ・マネージャ)17を含み、こ
れらは共同してデータベース24に記憶されたデータ対
象の生成、変更、アクセスおよび削除を管理する。前記
動作は、連合アドレス空間(図示せず)で実行中のアプ
リケーションまたはタスクからの呼出に応答して、実行
されることがある。前記連合アドレス空間とDBMS
10によって与えられた機能との間の連結を確立する1
つの方法が、米国特許出願第595244号(1982
年6月29日)に説明されている。
RDS16がその機能を実行する方法が、前記Over
view”、IBM System Journa
l。
view”、IBM System Journa
l。
Vol、20、No、1.1981および米国特許出願
第393902号(、1982年6月60日)に詳細に
示されている。
第393902号(、1982年6月60日)に詳細に
示されている。
第3図は、代表的なSQLステートメントすなわち要求
66を示す。コマンド・フィールド5゜は”従業員”と
命名されたファイルの”更新″が行ワレることを示し、
オペレーション・フィールド52は”給与″フィールド
が10%増加されることを示し、選択基準フィールド5
4は部門M10における従業員の給与フィールドが更新
されることを示す。選択基準フィールド54には1つ以
上の述部(後に説明する)が含まれる。
66を示す。コマンド・フィールド5゜は”従業員”と
命名されたファイルの”更新″が行ワレることを示し、
オペレーション・フィールド52は”給与″フィールド
が10%増加されることを示し、選択基準フィールド5
4は部門M10における従業員の給与フィールドが更新
されることを示す。選択基準フィールド54には1つ以
上の述部(後に説明する)が含まれる。
RDS 16は、連合アドレス空間(図示せず)で実行
中のアプリケーションから、DBM14内のDM17を
呼出すのに必要な制御ブロックと実行モジュールとに受
取られたSQLステートメントを処理する。各々の実行
モジュールは、処理中のSQLステートメントを実現す
る1セツトの機スフ4中のデータを検索し且つ変更する
ために、DM17中で定義された1セツトのプロトコル
の呼出しを含む(このプロトコル・セットはMSIと呼
ばれる)。
中のアプリケーションから、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つの述部を指定するのに用いられる。
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へのポインタを含む。
結合子フィールドを用いて指定される。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フイールドを含んでい
る。
ートメント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フイールド
が含まれる。
ンデージ ハード・ログ見出しには、ログ・レコード・タイプを指
定するフィールドおよび前の・・−ド・ログ・レコード
に対するポインタを保持するフィールドが含まれる。デ
ータ・マネージャ・ログ見出しには、次の4フイールド
が含まれる。
(a)変更されるページ・セットを識別するページ・セ
ット識別子フィールド 本例では、ページ・セットは1乃至′52データ・セッ
トの組であり、これらは論理的に連結されて2”32バ
イItでの線形アドレス空間を形成する。データ・セッ
トはデータベース24の特定の部分であり、MVSオペ
レーティング・システムを介して読取られかつ書込まれ
る。
ット識別子フィールド 本例では、ページ・セットは1乃至′52データ・セッ
トの組であり、これらは論理的に連結されて2”32バ
イItでの線形アドレス空間を形成する。データ・セッ
トはデータベース24の特定の部分であり、MVSオペ
レーティング・システムを介して読取られかつ書込まれ
る。
(b)変更中のページ・セットにおけるページを識別す
るページ識別子フィールド 本例では、ページはページ・セット中の409・6また
は32768バイトの連続領域であり、4096または
32768バイトの境界で始まる。
るページ識別子フィールド 本例では、ページはページ・セット中の409・6また
は32768バイトの連続領域であり、4096または
32768バイトの境界で始まる。
(c)変更を行なうDBM14のDM17の手順を識別
するフィールド (d) /・−ド・ログ・レコードがUNDO(復元)
、REDO(再実行)またはUNDO/REDO情報を
含むか否かを示すフラグ UNDO情報は、あたかも所与の更新動作が実行されな
かったかのように、該更新動作を元通シに復元するのに
必要な情報である。REDO情報は、更新動作を再実行
するのに必要な情報である。
するフィールド (d) /・−ド・ログ・レコードがUNDO(復元)
、REDO(再実行)またはUNDO/REDO情報を
含むか否かを示すフラグ UNDO情報は、あたかも所与の更新動作が実行されな
かったかのように、該更新動作を元通シに復元するのに
必要な情報である。REDO情報は、更新動作を再実行
するのに必要な情報である。
アペンデージのフォーマットは、変更のタイプによって
異なる。ある場合に咳、アベンデージは変更中のデータ
対象の変更前後のイメージを含み、他の場合には、アペ
ンデージは復元動作を実施するのに必要な情報を含む。
異なる。ある場合に咳、アベンデージは変更中のデータ
対象の変更前後のイメージを含み、他の場合には、アペ
ンデージは復元動作を実施するのに必要な情報を含む。
回復不能なデータベース24でデータ対象全変更する毎
に、そして保管点(savepofnt)が確立される
毎に、DM17はソフト・ログ2oにソフト・ログ・レ
コードを記憶する。ソフト・ログ20のレコードには次
のものが含まれる。
に、そして保管点(savepofnt)が確立される
毎に、DM17はソフト・ログ2oにソフト・ログ・レ
コードを記憶する。ソフト・ログ20のレコードには次
のものが含まれる。
(、) ソフト・ログ・レコード見出しこれには
・前のソフト・ログ20のレコードに対するポインタ
・このログ・レコードの長さ
・ログ・レコード・タイプを識別するオペレーション・
コード が含まれる。
コード が含まれる。
(b) フォーマットがログ・レコード・メインニよ
って異なるアペンデージ ログ・レコードがデータ変更の場合には、アペンデージ
にはUNDO情報が含まれる。もしログ・レコードが保
管点を記述するならば、アベンデージには次のものが含
まれる。
って異なるアペンデージ ログ・レコードがデータ変更の場合には、アペンデージ
にはUNDO情報が含まれる。もしログ・レコードが保
管点を記述するならば、アベンデージには次のものが含
まれる。
a、ユーザが与えた保管点の名前
す、前の保管点のソフト・ログ2oのレコードに対する
ポインタ C4このソフト・ログ・レコードを書込む保管点モジュ
ールによって書込まれた最初のハード・ログ22のレコ
ードのRBA(相対バイト・アドレス) d1位置が保管されるCUB(カーソル・ブロック)を
記述する項目リスト これKは (a)RID(レコード識別子) (b)CUBの位置(すなわちCUB位置およびその前
後のWR’l’レコード) が含まれる。CUBは、データベース24中の行または
レコードの位置を維持するのに用いられるDM17の制
御ブロックである。各々のCUBは、とりわけ、インデ
ックスおよびページ・セット100のようなデータ・マ
ネージャの対象内の位置を表わす。
ポインタ 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に戻すことができ、従
って前記点の後に生じた変更の結果を取消すことができ
る。
明する。本発明の原子性プロトコルは、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表は保管点生成手順を擬似コードで示す。
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)における状態に戻す。
ール第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が含まれる
。
点レコードを取込むステップ190、ソフト・ログ20
のレコードからハード・ログ22にある保管点レコード
のRBAを取込むステップ192、エラー160(第2
図のエラー42)に応じてハード・ログ22のUNDO
レコードを処理することによシ保管点のRBA(現行S
QLステートメント開発点40)へ戻すステップ194
、および保管点で及在していた位置にCUB90のRI
D番号94の値をセットするステップ196が含まれる
。
データベース24の状態を変更するSQLの動作を実現
したすべての実行モジュールは、保管点コマンド150
および復元コマンド162を用いて原子性を保証する。
したすべての実行モジュールは、保管点コマンド150
および復元コマンド162を用いて原子性を保証する。
コンパイルによってコードを生成するのではなく、(定
義および許可ステートメントのように)解釈されつつ実
行される他のSQL動作は、同じ接近方法を用いる。す
なわち、保管点コマンド150はデータベース24が変
更される前に出され、そして復元コマンド162はデー
タベース24の変更後にエラーが検出された場合に出さ
れる。この実現形態による実質的な作用は、SQLのユ
ーザがすべての動作を原子的であると認識する点、すな
わち完全な成功またはデータベース24が不変の!まに
留まることを認識する、という点にある。
義および許可ステートメントのように)解釈されつつ実
行される他の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情報のみを記録するのに用いられる。
性記憶で生成され、そして後入れ先出しく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で指
定された名前を含む保管点レコードが見つかるまで、前
記動作が実行される。
の)が保管点コマンド150を出したならば、指定され
た保管点名を有する特定のレコードがソフト・ログ20
およびノ・−ド・ログ22の両方に挿入される。もし復
元コマンド162が出されたならば、復元段階440間
にログ20および22の両方からUNDOレコードがL
IF’O式に応取られ、そして復元コマンド162で指
定された名前を含む保管点レコードが見つかるまで、前
記動作が実行される。
UR30によって複数の保管点レコードをスタックする
ことも可能である。例えば、2つの保管点コマンド15
0を両者の間に復元コマンド162を持たずに出したU
R30の場合を考えると、ソフト・ログ20の内容はス
タックされた保管点レコードを示す第1表のように現わ
れる。
ことも可能である。例えば、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表に示す情報を有す
るであろう。
元コマンドを出し、かくて保管点SP2以後になされた
データベース24の変更のすべてを復元させるであろう
。ソフト・ログ20はそのとき第2表に示す情報を有す
るであろう。
第 2 表
復元後のスタックされた保管点:
保管点5pi
UNDOレコー・ド1
UNDOレコード2
UNDOレコードi
しかしながら、もしSPlに対する復元コマンドが出さ
れたならば、ソフト・ログ20のスヘテのレコードは処
理され削除されることになる。
れたならば、ソフト・ログ20のスヘテのレコードは処
理され削除されることになる。
復元プロセスの効率を高めるために、DBMI4のDM
17は、ソフト・ログ20の各レコードが単一のページ
102の変更を記述し、かつこの変更をページ102お
よびログ201.22のレコードに含まれた情報のみを
用いて照会しうるような方式を採用することがある。従
って、復元を行なうのに、他のページ、ディレクトリま
たはカタログをアクセスする必要はない。
17は、ソフト・ログ20の各レコードが単一のページ
102の変更を記述し、かつこの変更をページ102お
よびログ201.22のレコードに含まれた情報のみを
用いて照会しうるような方式を採用することがある。従
って、復元を行なうのに、他のページ、ディレクトリま
たはカタログをアクセスする必要はない。
08M14のDM17は、他の構成要素のソフト・ログ
20またはハード・ログ22へのレコード書込みを可能
にするオペレータを与えることによって、本発明の原子
性プロトコルを簡略化する。
20またはハード・ログ22へのレコード書込みを可能
にするオペレータを与えることによって、本発明の原子
性プロトコルを簡略化する。
従って、他の構成要素によって管理される資源の変更も
、前記機構によって復元可能である。また08M14の
DM17は、ソフト・ログ20およびハード・ログ22
を用いてそれ自身の動・作の原子性を保証する。従って
、08M14のDM17を用いる構成要素は、データベ
ース24の呼出間の無矛循性について心配する必要はな
い。
、前記機構によって復元可能である。また08M14の
DM17は、ソフト・ログ20およびハード・ログ22
を用いてそれ自身の動・作の原子性を保証する。従って
、08M14のDM17を用いる構成要素は、データベ
ース24の呼出間の無矛循性について心配する必要はな
い。
ソフト・ログ20は、ユーザおよびシステム・データの
変更を復元するのに必要な情報を集中管理する機構を与
えるか1本発明の原子性プロトコルの良好な実施例の重
要な構成要素である。
変更を復元するのに必要な情報を集中管理する機構を与
えるか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し コ 率 。 \ す、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
ノ・−ド・ログおよびソフト・ログを含むデータベース
管理システムを示す図、 第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)
- 【特許請求の範囲】 関係データベース内のテーブルに対してユーザが要求す
る複数行更新動作を行なう場合、該更新動作が成功する
ときは記述されたすべての結果が生じ且つ更新、挿入お
よび削除命令を含む該更新動作が失敗するときはユーザ
によって識別されるシステム状態が不変のままに留まる
ように、前記複数行更新動作の原子性を保証する方法で
あって、更新動作要求に応答して、該要求を実現するだ
めの複数の機械語コード命令を有し且つその開始部に保
管点要求を有する実行モジュールを確立し、前記実行モ
ジュール中の、または前記実行モジュールによって呼出
される各命令セットがユーザによって認識されるシステ
ム状態を変更するようなものである場合には、その各セ
ットごとに復元情報をソフト・ログまたはハード・ログ
に選択的に記録し、 前記保管点要求時点でユーザによって認識されたシステ
ム状態への復元を保証するため、実行モジュールの終了
時に前記保管点を落し、該保管点以後に記録されたすべ
てのソフト・ログ情報を削除するとともに、保持された
すべての資源を解放し、 エラーを検出した際、ソフト・ログおよび/またはハー
ド・ログに記録された修復情報に応答して、ユーザが認
識したシステム状態を前記保管点要求時点のシステム状
態に復元するようにしたことを特徴とする複数行更新動
作の原子性を保証する方法。
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)
| 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)
| 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)
| 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 |
-
1982
- 1982-06-30 US US06/393,967 patent/US4498145A/en not_active Expired - Lifetime
-
1983
- 1983-06-10 JP JP58102962A patent/JPS599764A/ja active Pending
Patent Citations (1)
| 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) | 並行実行制御方式 |