JPH1049420A - データベース管理方法 - Google Patents

データベース管理方法

Info

Publication number
JPH1049420A
JPH1049420A JP8220318A JP22031896A JPH1049420A JP H1049420 A JPH1049420 A JP H1049420A JP 8220318 A JP8220318 A JP 8220318A JP 22031896 A JP22031896 A JP 22031896A JP H1049420 A JPH1049420 A JP H1049420A
Authority
JP
Japan
Prior art keywords
management table
transaction
page
area
management
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
JP8220318A
Other languages
English (en)
Inventor
Kei Tanaka
圭 田中
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP8220318A priority Critical patent/JPH1049420A/ja
Publication of JPH1049420A publication Critical patent/JPH1049420A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 複数のトランザクションの同時実行性をでき
るだけ保つとともに、管理テーブル内のページ或いは共
有資源の使用状況の一貫性を保つ。 【解決手段】 データベースD内の複数のページの使用
状況を管理テーブル2に格納して管理し、トランザクシ
ョンがページの割り当てを要求したことに基づいて、管
理テーブル2を他のトランザクションからのアクセスを
許容する許容状態として、当該管理テーブル2を検索し
て前記トランザクションにページの割り当てを行い、前
記トランザクションがコミット処理要求をしたことに基
づいて、管理テーブル2を他のトランザクションからの
アクセスを拒む排他状態として、当該管理テーブル2の
前記トランザクションに割り当てたページに関する使用
状況を更新する。したがって、ページ割り当て時には管
理テーブル2に対して複数のトランザクションが同時に
処理を行うことができ、また、管理テーブル2を更新す
る際には、排他制御によってページの使用状況の一貫性
を保つことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のトランザク
ションから参照或いは更新の要求が行われる資源を管理
するデータベース管理システムにおいて、複数のトラン
ザクションに対する共有資源、ページ等の割り当てを管
理するテータベース管理方法に関する。
【0002】
【従来の技術】従来、データベース管理システムでは、
複数のトランザクションによるデータの参照或いは更新
に際して、データベースの一貫性を維持するために、資
源を或る一定の大きさのデータを単位としたページに分
けて以下に示す排他制御を行っている。すなわち、或る
トランザクションが更新対象としているページに排他ロ
ックを確保することで、他のトランザクションは前記ト
ランザクションが終了するまで排他ロックが確保された
前記ページに対する参照或いは更新といった処理を拒む
といった排他制御を行うことでデータベースの一貫性を
保証している。
【0003】上記したデータベース管理システムにおい
ては、一般的な計算機で行われている資源割り当て方法
と同様に、資源の使用状況を管理するデータ構造(以
下、管理テーブルという。)に基づいてページ等といっ
た資源を割り当てており、更に、上記した管理テーブル
に対して排他制御を行うことによって、管理テーブル内
のページの使用状況の一貫性を保ち、データベースの一
貫性を保証している。なお、共有資源に対する排他制御
を実施する先行技術としては、特開昭60−23893
9号公報に記載された発明がある。
【0004】しかしながら、上記した管理テーブルに対
して排他制御を行う資源割り当て方法においては、一の
トランザクションからページを更新する必要のある処理
が要求されると管理テーブルに対して排他制御を行うた
めに、他のトランザクションが管理テーブルに対する処
理を実行できなくなり、複数のトランザクションを同時
に実行するといった同時実行性を低下させる問題が生じ
ていた。
【0005】また、データに対する参照処理等といった
処理効率を向上させるために、データベースを複数の領
域に分けてデータの局所性を高めている場合には、管理
テーブルに対する排他制御のために、例えば、図11に
示すように管理テーブルAへの排他ロックを確保したト
ランザクション”1”と管理テーブルBへの排他ロック
を確保したトランザクション”2”において、更に、ト
ランザクション”1”が管理テーブルBを排他ロックす
る要求を行い、トランザクション”2”が管理テーブル
Aを排他ロックする要求を行った場合には、両トランザ
クション”1”、”2”とも排他ロックを確保できず処
理が停止するといったデッドロックが発生してしまう。
【0006】なお、上記したページに対するデータの参
照方法としては、或るトランザクションが排他ロックを
確保しているページに対して、他のトランザクションが
参照要求を行った場合には排他ロックを確保する以前の
ページのデータを参照させるといった方法があるが、こ
の方式では参照できるデータは現在のデータと整合性が
とれたデータであるとは限らず、また、参照できたデー
タを処理等してデータベースへ更新することは、データ
ベースの一貫性を損なってしまう。したがって、データ
ベースの一貫性を保つためには、データを更新する際に
は、排他制御を行うことが必要となっている。
【0007】また、上記した同時実行性が低下する問題
を解決するために特開平3−24643号公報(以下、
文献1という。)に記載された発明では、管理テーブル
を排他制御を行わずに参照すること、並びに割り当てら
れたページが他のトランザクションで利用中か否かを判
断し利用中であった場合には、前記他のトランザクショ
ンの終了を待たずに別のページを割り当てる方法を実施
している。
【0008】この文献1に記載された発明では、図12
に示すデータベースGのページの割り当てを管理する領
域管理部10を備え、複数のトランザクションからのペ
ージ割り当て要求に対して領域管理部10が領域管理テ
ーブル11に基づいて図13に示すページ割り当て処理
を行っている。すなわち、トランザクションからページ
割り当て要求を受け取ると(ステップS37)、領域管
理テーブル11を他のトランザクションがアクセス可能
な許容状態とし(ステップS38)、領域管理テーブル
11中を使用状況に基づいて割り当てるページを検索す
る(ステップS39)。次いで、検索したページに対し
て排他ロックの確保を試み(ステップS40)、排他ロ
ックが確保できたか否かを検出する(ステップS4
1)。
【0009】排他ロックを確保できなかった場合には、
他のトランザクションが使用していることとなるので、
領域管理テーブル11の検索開始位置を調整し(ステッ
プS42)、再び割り当てるページの検索を行う(ステ
ップS39〜S41)。一方、ページに対して排他ロッ
クが確保できた場合には、当該ページを要求元のトラン
ザクションへ与える(ステップS43)。
【0010】このように、上記した文献1に記載された
発明においては、ページ割り当てに際しての管理テーブ
ルに対する検索に対して複数のトランザクションの同時
実行性を確保することについて考慮されているが、管理
テーブルに管理するページの使用状況の更新等について
は何ら考慮されておらず、管理テーブルに対して排他制
御を行わないために、管理テーブル内のページの使用状
況の一貫性を保つことができなかった。
【0011】
【発明が解決しようとする課題】上述したように管理テ
ーブルに対して排他制御を行うデータベース管理方法で
は、複数のトランザクションの同時実行性を著しく低下
させていた、さらにデータベースを複数の領域に分割し
て管理する場合においては、管理テーブルに対してデッ
ドロックが発生してしまうという問題もあった。また、
管理テーブルに対して排他制御を行わないデータベース
管理方法では、管理テーブルの更新ができなかったり、
管理テーブル内のページの使用状況の一貫性を保つこと
ができず、適切なページ割り当てをすることができなか
った。また、複数のトランザクションから同時に参照或
いは更新が行われる共有資源を割り当てる場合において
も同様な問題があった。
【0012】そこで、本発明は上記した従来の事情に鑑
みなされたもので、複数のトランザクションの同時実行
性をできるだけ保つとともに、管理テーブル内のページ
或いは共有資源の使用状況の一貫性を保ち、適切なペー
ジ或いは共有資源の割り当て管理をすることのできるデ
ータベース管理方法を提供することを目的としている。
また、本発明は、データベースを複数の領域に分割して
管理する場合において、複数のトランザクション間での
管理テーブルに対するデッドロックの発生を防止するこ
とのできるデータベース管理方法を提供すること目的と
している。
【0013】
【課題を解決するための手段】上記目的を達成するため
に請求項1に係るテータベース管理方法は、データを格
納する複数のページを含む共有資源の使用状況を管理テ
ーブルに格納して管理し、使用状況に基づいて複数のト
ランザクションに対する共有資源の割り当てを管理する
テータベース管理方法において、トランザクションが共
有資源の割り当てを要求したことに基づいて、管理テー
ブルを他のトランザクションからのアクセスを許容する
許容状態として、当該管理テーブルを検索して前記トラ
ンザクションに共有資源の割り当てを行い、前記トラン
ザクションがコミット(正常終了)処理要求をしたこと
に基づいて、管理テーブルを他のトランザクションから
のアクセスを拒む排他状態として、当該管理テーブルの
前記トランザクションに割り当てた共有資源に関する使
用状況を更新することを特徴とする。
【0014】上記した請求項1に記載したテータベース
管理方法では、トランザクションに対して共有資源の割
り当てを行う場合には、管理テーブルを他のトランザク
ションからのアクセスを許容する許容状態とするため
に、他のトランザクションも同時に管理テーブルを検索
することができる。
【0015】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
共有資源に関する使用状況を更新するために、管理テー
ブルの共有資源に関する使用状況の一貫性を保つことが
できる。また、管理テーブルを排他状態にする時期とし
てトランザクションがコミット処理要求をした時期にす
るために、管理テーブルが排他状態となる時間を極力短
くすることができ、複数のトランザクションが管理テー
ブルを同時に使用可能な時間を長くすることができる。
【0016】請求項2に係るテータベース管理方法は、
ページ毎の使用状況を管理テーブルに格納して管理し、
使用状況に基づいて複数のトランザクションに対して割
り当てるページを管理するテータベース管理方法におい
て、トランザクションがページを要求したことに基づい
て、管理テーブルを他のトランザクションからのアクセ
スを許容する許容状態として、当該管理テーブルを検索
して前記トランザクションにページを割り当て、前記ト
ランザクションがコミット処理要求をしたことに基づい
て、管理テーブルを他のトランザクションからのアクセ
スを拒む排他状態として、当該管理テーブルの前記トラ
ンザクションに割り当てたページに関する使用状況を更
新することを特徴とする。
【0017】上記した請求項2に係るテータベース管理
方法では、トランザクションに対してページの割り当て
を行う場合には、管理テーブルを他のトランザクション
からのアクセスを許容する許容状態とするために、他の
トランザクションも同時に管理テーブルを検索すること
ができる。
【0018】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
ページに関する使用状況を更新するために、管理テーブ
ルのページに関する使用状況の一貫性を保つことができ
る。また、管理テーブルを排他状態にする時期としてト
ランザクションがコミット処理要求をした時期にするた
めに、管理テーブルが排他状態となる時間を極力短くす
ることができ、複数のトランザクションが管理テーブル
を同時に使用可能な時間を長くすることができる。
【0019】請求項3に係るテータベース管理方法は、
データベースを複数の領域に分け、各領域のページ毎の
使用状況を管理テーブルに格納して管理し、使用状況に
基づいて複数のトランザクションに割り当てる各領域毎
のページを管理するテータベース管理方法において、ト
ランザクションがページを要求したことに基づいて、管
理テーブルを他のトランザクションからのアクセスを許
容する許容状態として、当該管理テーブルを検索して前
記トランザクションにページを割り当て、前記トランザ
クションが複数の領域に対するコミット処理要求をした
ことに基づいて、予め設定された各領域毎のコミット処
理順序に従って、各領域の管理テーブルを他のトランザ
クションからのアクセスを拒む排他状態として当該管理
テーブルの前記トランザクションに割り当てたページに
関する使用状況を更新することを特徴とする。
【0020】上記した請求項3に係るテータベース管理
方法では、トランザクションに対してページの割り当て
を行う場合には、管理テーブルを他のトランザクション
からのアクセスを許容する許容状態とするために、他の
トランザクションも同時に管理テーブルを検索すること
ができる。
【0021】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
ページに関する使用状況を更新するために、管理テーブ
ルのページに関する使用状況の一貫性を保つことができ
る。また、管理テーブルを排他状態にする時期としてト
ランザクションがコミット処理要求をした時期としたた
めに、管理テーブルが排他状態となる時間を極力短くす
ることができ、複数のトランザクションが管理テーブル
を同時に使用可能な時間を長くすることができる。
【0022】また、予め設定された各領域毎のコミット
処理順序に従って、各領域の管理テーブルを排他状態と
して当該管理テーブルのページに関する使用状況を更新
するために、複数のトランザクションが複数の領域に対
するコミット処理要求をした場合においても、管理テー
ブルに対するデッドロックの発生を防止することができ
る。
【0023】
【発明の実施の形態】本発明の第1実施例に係るテータ
ベース管理方法を実施するデータベース管理システムを
図1を参照して説明する。このデータベース管理システ
ムは、二次記憶装置に格納されているデータベースD上
のページの割り当て管理を行う領域管理部1を備えてい
る。領域管理部1は、ページの使用状況を保持する管理
テーブルとしての領域管理テーブル2と、トランザクシ
ョンによるページの更新に関する情報を保持する更新記
録管理部3と、を備え、領域管理テーブル2のページに
関する使用状況に基づいてトランザクションにページを
割り当てる処理、トランザクションが更新するページに
関する更新情報を更新記録管理部3に保持させる処理、
更新情報管理部3が保持しているページに関する更新情
報に基づいて領域管理テーブル2を更新する処理を行
う。
【0024】領域管理テーブル2は、データベースDの
ページに関する使用状況として、例えば、データベース
Dのページを表すページ識別子と、ページに格納されて
いるデータの数と、ページの空き領域のサイズと、を有
しており、これらページに関する使用状況に基づいて、
領域管理部2がトランザクションの要求に適したページ
を検索して割り当てることができる。なお、この領域管
理テーブル2は、データベースDの領域管理テーブル4
から読み出されたもので、当該領域管理テーブル2が更
新された場合には、更新された内容がデータベースDの
領域管理テーブル4へ反映される。
【0025】更新記録管理部3は、ページ更新に関する
情報として、例えば、更新を行ったトランザクションを
表すトランザクション識別子と、更新したページを表す
ページ識別子と、更新されたページに格納されているデ
ータ数と、更新されたページの空き領域のサイズと、を
有しており、これによって、トランザクションがページ
に対して行った更新処理の更新情報を確実に管理するこ
とができる。
【0026】次に、上記したデータベース管理システム
におけるページ割り当て管理処理を図面を参照して説明
する。まず、領域管理部1によるトランザクションに対
するページ割り当て処理を図2を参照して説明する。ト
ランザクションからページ割り当て要求を受け取ると
(ステップS1)、領域管理テーブル2を他のトランザ
クションからのアクセスを許容する許容状態とし(ステ
ップS2)、領域管理テーブル2のページに関する使用
状況に基づいて割り当てるページを検索する(ステップ
S3)。
【0027】この割り当てページの検索によって割り当
てページを検出した場合には、検出したページに対して
排他ロックの確保を試行し(ステップS5)、排他ロッ
クの確保できたか否かを検出する(ステップS6)。排
他ロックが確保できない場合には、他のトランザクショ
ンによって前記ページに排他ロックが確保されているこ
とを意味しているので、前記検出したページ以外のペー
ジを検索するように領域管理テーブル2に対する検索開
始位置を調整し(ステップS7)、ページに排他ロック
を確保できるまで、割り当てページの検索及び排他ロッ
クの確保を繰り返し行う(ステップS3〜S6)。
【0028】なお、領域管理テーブル2に基づいて割り
当てるページが検出できない場合には、新たなページを
データベースD内に生成し(ステップS8)、当該ペー
ジに対して排他ロックを確保する(ステップS9)。そ
して、ページに対して排他ロックを確保できた場合に
は、当該排他ロックを確保したページを割り当て要求を
行ったトランザクションへ与える(ステップS10)。
【0029】上記したように、ページ割り当て処理にお
いては領域管理テーブル2を許容状態としているので、
複数のトランザクションからページ割り当て要求が発生
した場合にも、複数のトランザクションに対して同時に
ページ割り当て処理を行うことができる。
【0030】次に、トランザクションによってページが
更新される際に、領域管理部1が更新されるページに関
する更新情報を更新記録管理部3に保持させる処理を図
3を参照して説明する。トランザクションからページを
更新する更新情報を受け取ると(ステップS11)、受
け取った更新情報を更新記録管理部3に登録する(ステ
ップS12)。すなわち、更新情報を受け取った場合に
は、更新情報に基づいて、例えば、ページを更新するト
ランザクションを表すトランザクション識別子と、更新
されるページを表すページ識別子と、更新後のページ内
のデータの数と、更新後のページの空き領域のサイズと
を更新記録管理部3に登録する。
【0031】次に、トランザクションが実行されてコミ
ットされる際に、領域管理部1が更新情報管理部3が保
持しているページに関する更新情報に基づいて領域管理
テーブル2を更新する処理を図4を参照して説明する。
トランザクションからコミット処理要求を受け取ると
(ステップS13)、領域管理テーブルを他のトランザ
クションからのアクセスを拒む排他状態とする(ステッ
プS14)。
【0032】次いで、更新記録管理部3にコミット処理
要求を行ったトランザクションに関する更新情報がある
か否かをトランザクション識別子に基づいて検出し(ス
テップS15)、更新記録を検出した場合には、前記ト
ランザクションに関する全ての更新記録を領域管理テー
ブル2へ反映する(ステップS16)。更新記録が検出
されなかった場合、或いは、更新記録を領域管理テーブ
ル2に反映した場合には、領域管理テーブル2を複数の
トランザクションからのアクセスを許容する許容状態と
する(ステップS17)。
【0033】なお、実行されていたトランザクションが
アボートされる際には、領域管理部1は図5に示すよう
に、トランザクションからアボート処理要求を受け取る
と(ステップS18)、アボート処理要求を行ったトラ
ンザクションに関する更新記録が更新記録管理部3にあ
るか否かを検出し(ステップS19)、更新記録が検出
された場合には、前記トランザクションに関する全ての
更新記録を削除する(ステップS20)。これにより、
更新記録管理部3には必要な情報のみを格納させること
ができる。一方、更新記録が検出されなかった場合には
何も行わない。
【0034】上記したように、領域管理テーブル2に対
して更新を行う際には、領域管理テーブル2を排他状態
としているので、領域管理テーブル2のページに関する
使用状況の一貫性を保つことができる。また、領域管理
テーブル2を排他状態とする時期をトランザクションを
コミットする場合としたために、例えば、最終的にアボ
ートされてしまうトランザクションによって領域管理テ
ーブル2が排他状態になることを防ぐことができ、領域
管理テーブル2を排他状態にする時間を極力短くするこ
とができる。
【0035】なお、上記した第1実施例では、領域管理
テーブル2に基づいて割り当てられたページが他のトラ
ンザクションによって排他ロックされている場合には、
領域管理部1がトランザクションに対して他のページを
割り当てるようにして、迅速にページを割り当てること
を可能にしていたが、排他ロックを確保しているトラン
ザクションが終了するのを待ってトランザクションに対
してページを割り当てるようにしてもよい。
【0036】次に、本発明の第2実施例に係るテータベ
ース管理方法を実施するデータベース管理システムを図
6を参照して説明する。このデータベース管理システム
は、二次記憶装置に格納されているデータベースE上の
複数のページを含む共有資源の割り当て管理を行う共有
資源管理部5を備えている。
【0037】共有資源管理部5は、共有資源の使用状況
を保持する管理テーブル6と、トランザクションによる
共有資源に対する更新に関する情報を保持する更新記録
管理部7と、を備え、管理テーブル6の共有資源に関す
る使用状況に基づいてトランザクションに共有資源を割
り当てる処理、トランザクションが更新する共有資源に
関する更新情報を更新記録管理部7に保持させる処理、
更新情報管理部7が保持している共有資源に関する更新
情報に基づいて共有資源管理テーブルを更新する処理を
行う。なお、管理テーブル6は、データベースEの管理
テーブル8から読み出されたもので、当該管理テーブル
6が更新された場合には、更新された内容がデータベー
スEの管理テーブル8へ反映される。
【0038】次に、上記したデータベース管理システム
における共有資源割り当て管理処理を図面を参照して説
明する。まず、共有資源管理部5によるトランザクショ
ンに対する共有資源割り当て処理を図7を参照して説明
する。トランザクションから共有資源を獲得する要求を
受け取ると(ステップS21)、管理テーブル6を他の
トランザクションからのアクセスを許容する許容状態と
し(ステップS22)、管理テーブル6の共有資源に関
する使用状況に基づいて割り当てる共有資源を検索する
(ステップS23)。
【0039】この共有資源の検索によって検出された共
有資源をトランザクションに対して割り当てることが可
能であるか否かを検出し(ステップS24)、割り当て
ることが可能でないと検出した場合には、前記検出した
ページ以外のページを検索するように管理テーブル6に
対する検索開始位置を調整し(ステップS25)、割り
当て可能な共有資源を取得するまで、共有資源の検索を
繰り返し行う(ステップS23、S24)。共有資源を
割り当てることが可能な場合には、当該共有資源を共有
資源獲得要求をしたトランザクションに与える(ステッ
プS26)。
【0040】上記したように、共有資源割り当て処理に
おいては管理テーブル6を許容状態としているので、複
数のトランザクションから共有資源割り当て要求が発生
した場合にも、複数のトランザクションに対して同時に
共有資源割り当て処理を行うことができる。
【0041】次に、トランザクションによって共有資源
が更新される際に、共有資源管理部5が更新される共有
資源に関する更新情報を更新記録管理部7に保持させる
処理を説明する。トランザクションから共有資源を更新
する更新情報を受け取ると、受け取った更新情報を更新
記録管理部7に登録する。
【0042】次に、トランザクションが実行されてコミ
ットされる際に、共有資源管理部5が更新情報管理部7
が保持している共有資源に関する更新情報に基づいて管
理テーブル6を更新する処理を図8を参照して説明す
る。トランザクションからコミット処理要求を受け取る
と(ステップS27)、領域管理テーブルを他のトラン
ザクションからのアクセスを拒む排他状態とする(ステ
ップS28)。
【0043】次いで、更新記録管理部7にコミット処理
要求を行ったトランザクションに関する更新情報がある
か否かを検出し(ステップS29)、更新記録を検出し
た場合には、前記トランザクションに関する全ての更新
記録を管理テーブル6へ反映する(ステップS30)。
更新記録が検出されなかった場合、或いは、更新記録を
管理テーブル6に反映した場合には、管理テーブル6を
複数のトランザクションからのアクセスを許容する許容
状態とする(ステップS31)。
【0044】上記したように、管理テーブル6に対して
更新を行う際には、管理テーブル6を排他状態としてい
るので、管理テーブル6の共有資源に関する使用状況の
一貫性を保つことができる。また、管理テーブル6を排
他状態とする時期をトランザクションをコミットする場
合としたために、例えば、最終的にアボートされてしま
うトランザクションによって管理テーブル6が排他状態
になることを防ぐことができ、管理テーブル6を排他状
態にする時間を極力短くすることができる。なお、上記
した第2実施例では、共有資源管理部5による管理テー
ブル6の検索方法としては、一般的に知られている方法
でよく、例えば、ハッシュ法等を用いることができる。
また、上記した第2実施例では、管理テーブル6を保持
する二次記憶装置上の管理テーブル8を、データを格納
するデータベースEと同一のデータベースEに格納して
いたが、例えば、リボジトリデータベースといった他の
データベースに格納させることもできる。
【0045】本発明の第3実施例に係るテータベース管
理方法を実施するデータベース管理システムを図9を参
照して説明する。なお、第1実施例と同様な部分につい
ては同一番号を付し、重複する説明を省略する。このデ
ータベース管理システムは、二次記憶装置に格納されて
いるデータベースFを2つの領域A及び領域Bに分割し
て管理しており、各領域毎にページの割り当て管理を行
う領域管理部1を備え、各領域の領域管理部1間のコミ
ット処理の実行順序を制御する領域管理部整列処理部9
と、を備えている。
【0046】各領域の領域管理部1は、ページの使用状
況を保持する管理テーブルとしての領域管理テーブル2
と、トランザクションによるページの更新に関する情報
を保持する更新記録管理部3と、を備えている。なお、
領域管理部1は第1実施例と同様な処理を行うが、更新
記録管理部3が保持しているページに関する更新情報に
基づいて領域管理テーブル2を更新する処理では、トラ
ンザクションからのコミット処理要求(図4に示すステ
ップS13)を領域管理部整列処理部9から受けとって
いる。
【0047】領域管理部整列処理部9は、トランザクシ
ョンから複数の領域に対するコミット処理要求を受け取
ると、前記コミット処理要求を予め設定された各領域毎
のコミット処理順序に従って並び替え、並び替えた順序
に従ってコミット処理要求を一の領域管理部1に渡し、
当該領域管理部1でのコミット処理が終了した後に、他
の領域管理部1へコミット処理要求を渡すといったこと
をコミット処理要求に含まれている全領域の領域管理部
1に対して行う。
【0048】例えば、領域管理部整列処理部9に領域
A、領域Bといったコミット処理順序が設定されている
場合において、トランザクション”1”が領域A、領域
Bの順序のコミット処理要求を行い、トランザクショ
ン”2”が領域B、領域Aの順序のコミット処理要求を
行うと、トランザクション”1”に対するコミット処理
は領域A、領域Bの順に行われることとなり、トランザ
クション”2”に対するコミット処理は領域A、領域B
の順序に並び替えられて行われることとなる。
【0049】したがって、一定の順序に従った領域につ
いてコミット処理を行わせることによって、領域管理テ
ーブル2を排他状態とする領域の順序を一定にすること
ができるために、図11に示したようなデッドロックが
複数のトランザクション間で発生することを防ぐことが
できる。
【0050】次に、上記したデータベース管理システム
におけるページ割り当て管理処理を図面を参照して説明
する。なお、第1実施例と重複する部分についての説明
は省略する。トランザクションからコミット処理要求を
受け取った際に行うコミット処理の制御動作を図10を
参照して説明する。トランザクションから領域管理部整
列処理部9がコミット処理要求を受け取ると、予め設定
された各領域毎のコミット処理順序に従って、コミット
処理要求を並び替え(ステップS32)、並び替えによ
って先頭になった領域のコミット処理要求を当該領域を
管理する領域管理部1に渡す(ステップS33)。な
お、コミット要求を受け取った領域管理部1ではコミッ
ト処理が行われて、管理テーブル2を排他状態として更
新する(ステップS34)。
【0051】前記領域管理部1でのコミット処理が終了
した後に、領域管理部整列処理部9は他の領域に対する
コミット処理要求があるか否かを検出し(ステップS3
5)、検出した場合には、次の順序の領域の領域管理部
1に対してコミット処理要求を渡す(ステップS3
6)。一方、コミット処理要求に含まれていた全ての領
域に対するコミット処理要求を渡した場合には処理を終
了する。
【0052】上記したように、各領域を管理するために
使用している領域管理テーブル2に対して複数のトラン
ザクションが排他状態として当該領域管理テーブル2の
ページに関する使用状況を更新しても、領域管理テーブ
ル2に対する複数のトランザクション間でのデッドロッ
クの発生を防止することができる。なお、上記した第3
実施例では、データベースFを2つの領域に分割してい
たが、データベースを2つ以上の領域に分割している場
合においても本発明を適用することができる。
【0053】
【発明の効果】以上説明したように本発明に係るテータ
ベース管理方法では、トランザクションに対してペー
ジ、共有資源の割り当てを行う場合には、管理テーブル
を他のトランザクションからのアクセスを許容する許容
状態としたために、他のトランザクションも同時に管理
テーブルを検索することができ、複数のトランザクショ
ンの同時実行性を保つことができる。
【0054】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
ページ、共有資源に関する使用状況を更新するようにし
たために、管理テーブルのページ或いは共有資源に関す
る使用状況の一貫性を保つことができ、前記一貫性の保
たれた使用状況に基づいて適切にページ或いは共有資源
を割り当てることができる。また、管理テーブルを排他
状態にする時期としてトランザクションがコミット処理
要求をした時期としたために、管理テーブルが排他状態
となる時間を短くすることができ、他のトランザクショ
ンが管理テーブルを同時に使用可能な時間を延長するこ
とができる。したがって、複数のトランザクションを同
時に実行するといった同時実行性を極力保つことができ
る。
【0055】また、本発明に係るデータベース管理方法
では、予め設定された各領域毎のコミット処理順序に従
って、各領域の管理テーブルを排他状態として当該管理
テーブルのページに関する使用状況を更新するようにし
たために、複数のトランザクションが複数の領域に対す
るコミット処理要求をした場合においても、管理テーブ
ルに対する複数のトランザクション間でデッドロックの
発生を防止することができ、複数のトランザクションを
支障なく実行することができる。
【図面の簡単な説明】
【図1】 第1実施例に係るテータベース管理方法を実
施するデータベース管理システムの構成図である。
【図2】 第1実施例に係るページ割り当て処理を説明
するフローチャートである。
【図3】 第1実施例に係る更新情報登録処理を説明す
るフローチャートである。
【図4】 第1実施例に係るコミット処理における管理
テーブルを更新する処理を説明するフローチャートであ
る。
【図5】 第1実施例に係るトランザクションアボート
時の処理を説明するフローチャートである。
【図6】 第2実施例に係るテータベース管理方法を実
施するデータベース管理システムの構成図である。
【図7】 第2実施例に係る共有資源割り当て処理を説
明するフローチャートである。
【図8】 第2実施例に係る管理テーブル更新処理を説
明するフローチャートである。
【図9】 第3実施例に係るテータベース管理方法を実
施するデータベース管理システムの構成図である。
【図10】 第3実施例に係る管理テーブルを更新する
領域の制御管理処理を説明するフローチャートである。
【図11】 デッドロックの発生を説明する図である。
【図12】 従来例に係るデータベース管理システムの
構成図である。
【図13】 従来例に係るデータベース管理方法を説明
するフローチャートである。
【符号の説明】
1・・領域管理部、 2・・領域管理テーブル、3・
・更新記録管理部、 4・・二次記憶装置上の領域管理
テーブル D、E、F・・データベース、
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成8年10月4日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 ータベース管理方法
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のトランザク
ションから参照或いは更新の要求が行われる資源を管理
するデータベース管理システムにおいて、複数のトラン
ザクションに対する共有資源、ページ等の割り当てを管
理するータベース管理方法に関する。
【0002】
【従来の技術】従来、データベース管理システムでは、
複数のトランザクションによるデータの参照或いは更新
に際して、データベースの一貫性を維持するために、資
源を或る一定の大きさのデータを単位としたページに分
けて以下に示す排他制御を行っている。すなわち、或る
トランザクションが更新対象としているページに排他ロ
ックを確保することで、他のトランザクションは前記ト
ランザクションが終了するまで排他ロックが確保された
前記ページに対する参照或いは更新といった処理を拒む
といった排他制御を行うことでデータベースの一貫性を
保証している。
【0003】上記したデータベース管理システムにおい
ては、一般的な計算機で行われている資源割り当て方法
と同様に、資源の使用状況を管理するデータ構造(以
下、管理テーブルという。)に基づいてページ等といっ
た資源を割り当てており、更に、上記した管理テーブル
に対して排他制御を行うことによって、管理テーブル内
のページの使用状況の一貫性を保ち、データベースの一
貫性を保証している。なお、共有資源に対する排他制御
を実施する先行技術としては、特開昭60−23893
9号公報に記載された発明がある。
【0004】しかしながら、上記した管理テーブルに対
して排他制御を行う資源割り当て方法においては、一の
トランザクションからページを更新する必要のある処理
が要求されると管理テーブルに対して排他制御を行うた
めに、他のトランザクションが管理テーブルに対する処
理を実行できなくなり、複数のトランザクションを同時
に実行するといった同時実行性を低下させる問題が生じ
ていた。
【0005】また、データに対する参照処理等といった
処理効率を向上させるために、データベースを複数の領
域に分けてデータの局所性を高めている場合には、管理
テーブルに対する排他制御のために、例えば、図11に
示すように管理テーブルAへの排他ロックを確保したト
ランザクション”1”と管理テーブルBへの排他ロック
を確保したトランザクション”2”において、更に、ト
ランザクション”1”が管理テーブルBを排他ロックす
る要求を行い、トランザクション”2”が管理テーブル
Aを排他ロックする要求を行った場合には、両トランザ
クション”1”、”2”とも排他ロックを確保できず処
理が停止するといったデッドロックが発生してしまう。
【0006】なお、上記したページに対するデータの参
照方法としては、或るトランザクションが排他ロックを
確保しているページに対して、他のトランザクションが
参照要求を行った場合には排他ロックを確保する以前の
ページのデータを参照させるといった方法があるが、こ
の方式では参照できるデータは現在のデータと整合性が
とれたデータであるとは限らず、また、参照できたデー
タを処理等してデータベースへ更新することは、データ
ベースの一貫性を損なってしまう。したがって、データ
ベースの一貫性を保つためには、データを更新する際に
は、排他制御を行うことが必要となっている。
【0007】また、上記した同時実行性が低下する問題
を解決するために特開平3−24643号公報(以下、
文献1という。)に記載された発明では、管理テーブル
を排他制御を行わずに参照すること、並びに割り当てら
れたページが他のトランザクションで利用中か否かを判
断し利用中であった場合には、前記他のトランザクショ
ンの終了を待たずに別のページを割り当てる方法を実施
している。
【0008】この文献1に記載された発明では、図12
に示すデータベースGのページの割り当てを管理する領
域管理部10を備え、複数のトランザクションからのペ
ージ割り当て要求に対して領域管理部10が領域管理テ
ーブル11に基づいて図13に示すページ割り当て処理
を行っている。すなわち、トランザクションからページ
割り当て要求を受け取ると(ステップS37)、領域管
理テーブル11を他のトランザクションがアクセス可能
な許容状態とし(ステップS38)、領域管理テーブル
11中を使用状況に基づいて割り当てるページを検索す
る(ステップS39)。次いで、検索したページに対し
て排他ロックの確保を試み(ステップS40)、排他ロ
ックが確保できたか否かを検出する(ステップS4
1)。
【0009】排他ロックを確保できなかった場合には、
他のトランザクションが使用していることとなるので、
領域管理テーブル11の検索開始位置を調整し(ステッ
プS42)、再び割り当てるページの検索を行う(ステ
ップS39〜S41) 一方、ページに対して排他ロックが確保できた場合に
は、当該ページを要求元のトランザクションへ与える
(ステップS43)。
【0010】このように、上記した文献1に記載された
発明においては、ページ割り当てに際しての管理テーブ
ルに対する検索に対して複数のトランザクションの同時
実行性を確保することについて考慮されているが、管理
テーブルに管理するページの使用状況の更新等について
は何ら考慮されておらず、管理テーブルに対して排他制
御を行わないために、管理テーブル内のページの使用状
況の一貫性を保つことができなかった。
【0011】
【発明が解決しようとする課題】上述したように管理テ
ーブルに対して排他制御を行うデータベース管理方法で
は、複数のトランザクションの同時実行性を著しく低下
させていた、さらにデータベースを複数の領域に分割し
て管理する場合においては、管理テーブルに対してデッ
ドロックが発生してしまうという問題もあった。また、
管理テーブルに対して排他制御を行わないデータベース
管理方法では、管理テーブルの更新ができなかったり、
管理テーブル内のページの使用状況の一貫性を保つこと
ができず、適切なページ割り当てをすることができなか
った。また、複数のトランザクションから同時に参照或
いは更新が行われる共有資源を割り当てる場合において
も同様な問題があった。
【0012】そこで、本発明は上記した従来の事情に鑑
みなされたもので、複数のトランザクションの同時実行
性をできるだけ保つとともに、管理テーブル内のページ
或いは共有資源の使用状況の一貫性を保ち、適切なペー
ジ或いは共有資源の割り当て管理をすることのできるデ
ータベース管理方法を提供することを目的としている。
また、本発明は、データベースを複数の領域に分割して
管理する場合において、複数のトランザクション間での
管理テーブルに対するデッドロックの発生を防止するこ
とのできるデータベース管理方法を提供すること目的と
している。
【0013】
【課題を解決するための手段】上記目的を達成するため
に請求項1に係るータベース管理方法は、データを格
納する複数のページを含む共有資源の使用状況を管理テ
ーブルに格納して管理し、使用状況に基づいて複数のト
ランザクションに対する共有資源の割り当てを管理する
ータベース管理方法において、トランザクションが共
有資源の割り当てを要求したことに基づいて、管理テー
ブルを他のトランザクションからのアクセスを許容する
許容状態として、当該管理テーブルを検索して前記トラ
ンザクションに共有資源の割り当てを行い、前記トラン
ザクションがコミット(正常終了)処理要求をしたこと
に基づいて、管理テーブルを他のトランザクションから
のアクセスを拒む排他状態として、当該管理テーブルの
前記トランザクションに割り当てた共有資源に関する使
用状況を更新することを特徴とする。
【0014】上記した請求項1に記載したータベース
管理方法では、トランザクションに対して共有資源の割
り当てを行う場合には、管理テーブルを他のトランザク
ションからのアクセスを許容する許容状態とするため
に、他のトランザクションも同時に管理テーブルを検索
することができる。
【0015】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
共有資源に関する使用状況を更新するために、管理テー
ブルの共有資源に関する使用状況の一貫性を保つことが
できる。また、管理テーブルを排他状態にする時期とし
てトランザクションがコミット処理要求をした時期にす
るために、管理テーブルが排他状態となる時間を極力短
くすることができ、複数のトランザクションが管理テー
ブルを同時に使用可能な時間を長くすることができる。
【0016】請求項2に係るータベース管理方法は、
ページ毎の使用状況を管理テーブルに格納して管理し、
使用状況に基づいて複数のトランザクションに対して割
り当てるページを管理するータベース管理方法におい
て、トランザクションがページを要求したことに基づい
て、管理テーブルを他のトランザクションからのアクセ
スを許容する許容状態として、当該管理テーブルを検索
して前記トランザクションにページを割り当て、前記ト
ランザクションがコミット処理要求をしたことに基づい
て、管理テーブルを他のトランザクションからのアクセ
スを拒む排他状態として、当該管理テーブルの前記トラ
ンザクションに割り当てたページに関する使用状況を更
新することを特徴とする。
【0017】上記した請求項2に係るータベース管理
方法では、トランザクションに対してページの割り当て
を行う場合には、管理テーブルを他のトランザクション
からのアクセスを許容する許容状態とするために、他の
トランザクションも同時に管理テーブルを検索すること
ができる。
【0018】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
ページに関する使用状況を更新するために、管理テーブ
ルのページに関する使用状況の一貫性を保つことができ
る。また、管理テーブルを排他状態にする時期としてト
ランザクションがコミット処理要求をした時期にするた
めに、管理テーブルが排他状態となる時間を極力短くす
ることができ、複数のトランザクションが管理テーブル
を同時に使用可能な時間を長くすることができる。
【0019】請求項3に係るータベース管理方法は、
データベースを複数の領域に分け、各領域のページ毎の
使用状況を管理テーブルに格納して管理し、使用状況に
基づいて複数のトランザクションに割り当てる各領域毎
のページを管理するータベース管理方法において、ト
ランザクションがページを要求したことに基づいて、管
理テーブルを他のトランザクションからのアクセスを許
容する許容状態として、当該管理テーブルを検索して前
記トランザクションにページを割り当て、前記トランザ
クションが複数の領域に対するコミット処理要求をした
ことに基づいて、予め設定された各領域毎のコミット処
理順序に従って、各領域の管理テーブルを他のトランザ
クションからのアクセスを拒む排他状態として当該管理
テーブルの前記トランザクションに割り当てたページに
関する使用状況を更新することを特徴とする。
【0020】上記した請求項3に係るータベース管理
方法では、トランザクションに対してページの割り当て
を行う場合には、管理テーブルを他のトランザクション
からのアクセスを許容する許容状態とするために、他の
トランザクションも同時に管理テーブルを検索すること
ができる。
【0021】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
ページに関する使用状況を更新するために、管理テーブ
ルのページに関する使用状況の一貫性を保つことができ
る。また、管理テーブルを排他状態にする時期としてト
ランザクションがコミット処理要求をした時期としたた
めに、管理テーブルが排他状態となる時間を極力短くす
ることができ、複数のトランザクションが管理テーブル
を同時に使用可能な時間を長くすることができる。
【0022】また、予め設定された各領域毎のコミット
処理順序に従って、各領域の管理テーブルを排他状態と
して当該管理テーブルのページに関する使用状況を更新
するために、複数のトランザクションが複数の領域に対
するコミット処理要求をした場合においても、管理テー
ブルに対するデッドロックの発生を防止することができ
る。
【0023】
【発明の実施の形態】本発明の第1実施例に係るータ
ベース管理方法を実施するデータベース管理システムを
図1を参照して説明する。このデータベース管理システ
ムは、二次記憶装置に格納されているデータベースD上
のページの割り当て管理を行う領域管理部1を備えてい
る。領域管理部1は、ページの使用状況を保持する管理
テーブルとしての領域管理テーブル2と、トランザクシ
ョンによるページの更新に関する情報を保持する更新記
録管理部3と、を備え、領域管理テーブル2のページに
関する使用状況に基づいてトランザクションにページを
割り当てる処理、トランザクションが更新するページに
関する更新情報を更新記録管理部3に保持させる処理、
更新情報管理部3が保持しているページに関する更新情
報に基づいて領域管理テーブル2を更新する処理を行
う。
【0024】領域管理テーブル2は、データベースDの
ページに関する使用状況として、例えば、データベース
Dのページを表すページ識別子と、ページに格納されて
いるデータの数と、ページの空き領域のサイズと、を有
しており、これらページに関する使用状況に基づいて、
領域管理部2がトランザクションの要求に適したページ
を検索して割り当てることができる。なお、この領域管
理テーブル2は、データベースDの領域管理テーブル4
から読み出されたもので、当該領域管理テーブル2が更
新された場合には、更新された内容がデータベースDの
領域管理テーブル4へ反映される。
【0025】更新記録管理部3は、ページ更新に関する
情報として、例えば、更新を行ったトランザクションを
表すトランザクション識別子と、更新したページを表す
ページ識別子と、更新されたページに格納されているデ
ータ数と、更新されたページの空き領域のサイズと、を
有しており、これによって、トランザクションがページ
に対して行った更新処理の更新情報を確実に管理するこ
とができる。
【0026】次に、上記したデータベース管理システム
におけるページ割り当て管理処理を図面を参照して説明
する。まず、領域管理部1によるトランザクションに対
するページ割り当て処理を図2を参照して説明する。ト
ランザクションからページ割り当て要求を受け取ると
(ステップS1)、領域管理テーブル2を他のトランザ
クションからのアクセスを許容する許容状態とし(ステ
ップS2)、領域管理テーブル2のページに関する使用
状況に基づいて割り当てるページを検索する(ステップ
S3)。
【0027】この割り当てページの検索によって割り当
てページを検出した場合には、検出したページに対して
排他ロックの確保を試行し(ステップS5)、排他ロッ
クの確保できたか否かを検出する(ステップS6)。排
他ロックが確保できない場合には、他のトランザクショ
ンによって前記ページに排他ロックが確保されているこ
とを意味しているので、前記検出したページ以外のペー
ジを検索するように領域管理テーブル2に対する検索開
始位置を調整し(ステップS7)、ページに排他ロック
を確保できるまで、割り当てページの検索及び排他ロッ
クの確保を繰り返し行う(ステップS3〜S6)。
【0028】なお、領域管理テーブル2に基づいて割り
当てるページが検出できない場合には、新たなページを
データベースD内に生成し(ステップS8)、当該ペー
ジに対して排他ロックを確保する(ステップS9)。そ
して、ページに対して排他ロックを確保できた場合に
は、当該排他ロックを確保したページを割り当て要求を
行ったトランザクションへ与える(ステップS10)。
【0029】上記したように、ページ割り当て処理にお
いては領域管理テーブル2を許容状態としているので、
複数のトランザクションからページ割り当て要求が発生
した場合にも、複数のトランザクションに対して同時に
ページ割り当て処理を行うことができる。
【0030】次に、トランザクションによってページが
更新される際に、領域管理部1が更新されるページに関
する更新情報を更新記録管理部3に保持させる処理を図
3を参照して説明する。トランザクションからページを
更新する更新情報を受け取ると(ステップS11)、受
け取った更新情報を更新記録管理部3に登録する(ステ
ップS12)。すなわち、更新情報を受け取った場合に
は、更新情報に基づいて、例えば、ページを更新するト
ランザクションを表すトランザクション識別子と、更新
されるページを表すページ識別子と、更新後のページ内
のデータの数と、更新後のページの空き領域のサイズと
を更新記録管理部3に登録する。
【0031】次に、トランザクションが実行されてコミ
ットされる際に、領域管理部1が更新情報管理部3が保
持しているページに関する更新情報に基づいて領域管理
テーブル2を更新する処理を図4を参照して説明する。
トランザクションからコミット処理要求を受け取ると
(ステップS13)、領域管理テーブルを他のトランザ
クションからのアクセスを拒む排他状態とする(ステッ
プS14)。
【0032】次いで、更新記録管理部3にコミット処理
要求を行ったトランザクションに関する更新情報がある
か否かをトランザクション識別子に基づいて検出し(ス
テップS15)、更新記録を検出した場合には、前記ト
ランザクションに関する全ての更新記録を領域管理テー
ブル2へ反映する(ステップS16)。更新記録が検出
されなかった場合、或いは、更新記録を領域管理テーブ
ル2に反映した場合には、領域管理テーブル2を複数の
トランザクションからのアクセスを許容する許容状態と
する(ステップS17)。
【0033】なお、実行されていたトランザクションが
アボートされる際には、領域管理部1は図5に示すよう
に、トランザクションからアボート処理要求を受け取る
と(ステップS18)、アボート処理要求を行ったトラ
ンザクションに関する更新記録が更新記録管理部3にあ
るか否かを検出し(ステップS19)、更新記録が検出
された場合には、前記トランザクションに関する全ての
更新記録を削除する(ステップS20)。これにより、
更新記録管理部3には必要な情報のみを格納させること
ができる。一方、更新記録が検出されなかった場合には
何も行わない。
【0034】上記したように、領域管理テーブル2に対
して更新を行う際には、領域管理テーブル2を排他状態
としているので、領域管理テーブル2のページに関する
使用状況の一貫性を保つことができる。また、領域管理
テーブル2を排他状態とする時期をトランザクションを
コミットする場合としたために、例えば、最終的にアボ
ートされてしまうトランザクションによって領域管理テ
ーブル2が排他状態になることを防ぐことができ、領域
管理テーブル2を排他状態にする時間を極力短くするこ
とができる。
【0035】なお、上記した第1実施例では、領域管理
テーブル2に基づいて割り当てられたページが他のトラ
ンザクションによって排他ロックされている場合には、
領域管理部1がトランザクションに対して他のページを
割り当てるようにして、迅速にページを割り当てること
を可能にしていたが、排他ロックを確保しているトラン
ザクションが終了するのを待ってトランザクションに対
してページを割り当てるようにしてもよい。
【0036】次に、本発明の第2実施例に係るータベ
ース管理方法を実施するデータベース管理システムを図
6を参照して説明する。このデータベース管理システム
は、二次記憶装置に格納されているデータベースE上の
複数のページを含む共有資源の割り当て管理を行う共有
資源管理部5を備えている。
【0037】共有資源管理部5は、共有資源の使用状況
を保持する管理テーブル6と、トランザクションによる
共有資源に対する更新に関する情報を保持する更新記録
管理部7と、を備え、管理テーブル6の共有資源に関す
る使用状況に基づいてトランザクションに共有資源を割
り当てる処理、トランザクションが更新する共有資源に
関する更新情報を更新記録管理部7に保持させる処理、
更新情報管理部7が保持している共有資源に関する更新
情報に基づいて共有資源管理テーブルを更新する処理を
行う。なお、管理テーブル6は、データベースEの管理
テーブル8から読み出されたもので、当該管理テーブル
6が更新された場合には、更新された内容がデータベー
スEの管理テーブル8へ反映される。
【0038】次に、上記したデータベース管理システム
における共有資源割り当て管理処理を図面を参照して説
明する。まず、共有資源管理部5によるトランザクショ
ンに対する共有資源割り当て処理を図7を参照して説明
する。トランザクションから共有資源を獲得する要求を
受け取ると(ステップS21)、管理テーブル6を他の
トランザクションからのアクセスを許容する許容状態と
し(ステップS22)、管理テーブル6の共有資源に関
する使用状況に基づいて割り当てる共有資源を検索する
(ステップS23)。
【0039】この共有資源の検索によって検出された共
有資源をトランザクションに対して割り当てることが可
能であるか否かを検出し(ステップS24)、割り当て
ることが可能でないと検出した場合には、前記検出した
ページ以外のページを検索するように管理テーブル6に
対する検索開始位置を調整し(ステップS25)、割り
当て可能な共有資源を取得するまで、共有資源の検索を
繰り返し行う(ステップS23、S24)。共有資源を
割り当てることが可能な場合には、当該共有資源を共有
資源獲得要求をしたトランザクションに与える(ステッ
プS26)。
【0040】上記したように、共有資源割り当て処理に
おいては管理テーブル6を許容状態としているので、複
数のトランザクションから共有資源割り当て要求が発生
した場合にも、複数のトランザクションに対して同時に
共有資源割り当て処理を行うことができる。
【0041】次に、トランザクションによって共有資源
が更新される際に、共有資源管理部5が更新される共有
資源に関する更新情報を更新記録管理部7に保持させる
処理を説明する。トランザクションから共有資源を更新
する更新情報を受け取ると、受け取った更新情報を更新
記録管理部7に登録する。
【0042】次に、トランザクションが実行されてコミ
ットされる際に、共有資源管理部5が更新情報管理部7
が保持している共有資源に関する更新情報に基づいて管
理テーブル6を更新する処理を図8を参照して説明す
る。トランザクションからコミット処理要求を受け取る
と(ステップS27)、領域管理テーブルを他のトラン
ザクションからのアクセスを拒む排他状態とする(ステ
ップS28)。
【0043】次いで、更新記録管理部7にコミット処理
要求を行ったトランザクションに関する更新情報がある
か否かを検出し(ステップS29)、更新記録を検出し
た場合には、前記トランザクションに関する全ての更新
記録を管理テーブル6へ反映する(ステップS30)。
更新記録が検出されなかった場合、或いは、更新記録を
管理テーブル6に反映した場合には、管理テーブル6を
複数のトランザクションからのアクセスを許容する許容
状態とする(ステップS31)。
【0044】上記したように、管理テーブル6に対して
更新を行う際には、管理テーブル6を排他状態としてい
るので、管理テーブル6の共有資源に関する使用状況の
一貫性を保つことができる。また、管理テーブル6を排
他状態とする時期をトランザクションをコミットする場
合としたために、例えば、最終的にアボートされてしま
うトランザクションによって管理テーブル6が排他状態
になることを防ぐことができ、管理テーブル6を排他状
態にする時間を極力短くすることができる。なお、上記
した第2実施例では、共有資源管理部5による管理テー
ブル6の検索方法としては、一般的に知られている方法
でよく、例えば、ハッシュ法等を用いることができる。
また、上記した第2実施例では、管理テーブル6を保持
する二次記憶装置上の管理テーブル8を、データを格納
するデータベースEと同一のデータベースEに格納して
いたが、例えば、リボジトリデータベースといった他の
データベースに格納させることもできる。
【0045】本発明の第3実施例に係るータベース管
理方法を実施するデータベース管理システムを図9を参
照して説明する。なお、第1実施例と同様な部分につい
ては同一番号を付し、重複する説明を省略する。このデ
ータベース管理システムは、二次記憶装置に格納されて
いるデータベースFを2つの領域A及び領域Bに分割し
て管理しており、各領域毎にページの割り当て管理を行
う領域管理部1を備え、各領域の領域管理部1間のコミ
ット処理の実行順序を制御する領域管理部整列処理部9
と、を備えている。
【0046】各領域の領域管理部1は、ページの使用状
況を保持する管理テーブルとしての領域管理テーブル2
と、トランザクションによるページの更新に関する情報
を保持する更新記録管理部3と、を備えている。なお、
領域管理部1は第1実施例と同様な処理を行うが、更新
記録管理部3が保持しているページに関する更新情報に
基づいて領域管理テーブル2を更新する処理では、トラ
ンザクションからのコミット処理要求(図4に示すステ
ップS13)を領域管理部整列処理部9から受けとって
いる。
【0047】領域管理部整列処理部9は、トランザクシ
ョンから複数の領域に対するコミット処理要求を受け取
ると、前記コミット処理要求を予め設定された各領域毎
のコミット処理順序に従って並び替え、並び替えた順序
に従ってコミット処理要求を一の領域管理部1に渡し、
当該領域管理部1でのコミット処理が終了した後に、他
の領域管理部1へコミット処理要求を渡すといったこと
をコミット処理要求に含まれている全領域の領域管理部
1に対して行う。
【0048】例えば、領域管理部整列処理部9に領域
A、領域Bといったコミット処理順序が設定されている
場合において、トランザクション”1”が領域A、領域
Bの順序のコミット処理要求を行い、トランザクショ
ン”2”が領域B、領域Aの順序のコミット処理要求を
行うと、トランザクション”1”に対するコミット処理
は領域A、領域Bの順に行われることとなり、トランザ
クション”2”に対するコミット処理は領域A、領域B
の順序に並び替えられて行われることとなる。
【0049】したがって、一定の順序に従った領域につ
いてコミット処理を行わせることによって、領域管理テ
ーブル2を排他状態とする領域の順序を一定にすること
ができるために、図11に示したようなデッドロックが
複数のトランザクション間で発生することを防ぐことが
できる。
【0050】次に、上記したデータベース管理システム
におけるページ割り当て管理処理を図面を参照して説明
する。なお、第1実施例と重複する部分についての説明
は省略する。トランザクションからコミット処理要求を
受け取った際に行うコミット処理の制御動作を図10を
参照して説明する。トランザクションから領域管理部整
列処理部9がコミット処理要求を受け取ると、予め設定
された各領域毎のコミット処理順序に従って、コミット
処理要求を並び替え(ステップS32)、並び替えによ
って先頭になった領域のコミット処理要求を当該領域を
管理する領域管理部1に渡す(ステップS33)。な
お、コミット要求を受け取った領域管理部1ではコミッ
ト処理が行われて、管理テーブル2を排他状態として更
新する(ステップS34)。
【0051】前記領域管理部1でのコミット処理が終了
した後に、領域管理部整列処理部9は他の領域に対する
コミット処理要求があるか否かを検出し(ステップS3
5)、検出した場合には、次の順序の領域の領域管理部
1に対してコミット処理要求を渡す(ステップS3
6)。一方、コミット処理要求に含まれていた全ての領
域に対するコミット処理要求を渡した場合には処理を終
了する。
【0052】上記したように、各領域を管理するために
使用している領域管理テーブル2に対して複数のトラン
ザクションが排他状態として当該領域管理テーブル2の
ページに関する使用状況を更新しても、領域管理テーブ
ル2に対する複数のトランザクション間でのデッドロッ
クの発生を防止することができる。なお、上記した第3
実施例では、データベースFを2つの領域に分割してい
たが、データベースを2つ以上の領域に分割している場
合においても本発明を適用することができる。
【0053】
【発明の効果】以上説明したように本発明に係るータ
ベース管理方法では、トランザクションに対してペー
ジ、共有資源の割り当てを行う場合には、管理テーブル
を他のトランザクションからのアクセスを許容する許容
状態としたために、他のトランザクションも同時に管理
テーブルを検索することができ、複数のトランザクショ
ンの同時実行性を保つことができる。
【0054】また、管理テーブルを他のトランザクショ
ンからのアクセスを拒む排他状態として管理テーブルの
ページ、共有資源に関する使用状況を更新するようにし
たために、管理テーブルのページ或いは共有資源に関す
る使用状況の一貫性を保つことができ、前記一貫性の保
たれた使用状況に基づいて適切にページ或いは共有資源
を割り当てることができる。また、管理テーブルを排他
状態にする時期としてトランザクションがコミット処理
要求をした時期としたために、管理テーブルが排他状態
となる時間を短くすることができ、他のトランザクショ
ンが管理テーブルを同時に使用可能な時間を延長するこ
とができる。したがって、複数のトランザクションを同
時に実行するといった同時実行性を極力保つことができ
る。
【0055】また、本発明に係るデータベース管理方法
では、予め設定された各領域毎のコミット処理順序に従
って、各領域の管理テーブルを排他状態として当該管理
テーブルのページに関する使用状況を更新するようにし
たために、複数のトランザクションが複数の領域に対す
るコミット処理要求をした場合においても、管理テーブ
ルに対する複数のトランザクション間でデッドロックの
発生を防止することができ、複数のトランザクションを
支障なく実行することができる。
【図面の簡単な説明】
【図1】 第1実施例に係るータベース管理方法を実
施するデータベース管理システムの構成図である。
【図2】 第1実施例に係るページ割り当て処理を説明
するフローチャートである。
【図3】 第1実施例に係る更新情報登録処理を説明す
るフローチャートである。
【図4】 第1実施例に係るコミット処理における管理
テーブルを更新する処理を説明するフローチャートであ
る。
【図5】 第1実施例に係るトランザクションアボート
時の処理を説明するフローチャートである。
【図6】 第2実施例に係るータベース管理方法を実
施するデータベース管理システムの構成図である。
【図7】 第2実施例に係る共有資源割り当て処理を説
明するフローチャートである。
【図8】 第2実施例に係る管理テーブル更新処理を説
明するフローチャートである。
【図9】 第3実施例に係るータベース管理方法を実
施するデータベース管理システムの構成図である。
【図10】 第3実施例に係る管理テーブルを更新する
領域の制御管理処理を説明するフローチャートである。
【図11】 デッドロックの発生を説明する図である。
【図12】 従来例に係るデータベース管理システムの
構成図である。
【図13】 従来例に係るデータベース管理方法を説明
するフローチャートである。
【符号の説明】 1・・領域管理部、 2・・領域管理テーブル、3
・・更新記録管理部、 4・・二次記憶装置上の領域管
理テーブル D、E、F・・データベース、

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 データを格納する複数のページを含む共
    有資源の使用状況を管理テーブルに格納して管理し、使
    用状況に基づいて複数のトランザクションに対する共有
    資源の割り当てを管理するテータベース管理方法におい
    て、 トランザクションが共有資源の割り当てを要求したこと
    に基づいて、管理テーブルを他のトランザクションから
    のアクセスを許容する許容状態として、当該管理テーブ
    ルを検索して前記トランザクションに共有資源の割り当
    てを行い、 前記トランザクションがコミット処理要求をしたことに
    基づいて、管理テーブルを他のトランザクションからの
    アクセスを拒む排他状態として、当該管理テーブルの前
    記トランザクションに割り当てた共有資源に関する使用
    状況を更新することを特徴とするテータベース管理方
    法。
  2. 【請求項2】 ページ毎の使用状況を管理テーブルに格
    納して管理し、使用状況に基づいて複数のトランザクシ
    ョンに対して割り当てるページを管理するテータベース
    管理方法において、 トランザクションがページを要求したことに基づいて、
    管理テーブルを他のトランザクションからのアクセスを
    許容する許容状態として、当該管理テーブルを検索して
    前記トランザクションにページを割り当て、 前記トランザクションがコミット処理要求をしたことに
    基づいて、管理テーブルを他のトランザクションからの
    アクセスを拒む排他状態として、当該管理テーブルの前
    記トランザクションに割り当てたページに関する使用状
    況を更新することを特徴とするテータベース管理方法。
  3. 【請求項3】 データベースを複数の領域に分け、各領
    域のページ毎の使用状況を管理テーブルに格納して管理
    し、使用状況に基づいて複数のトランザクションに割り
    当てる各領域毎のページを管理するテータベース管理方
    法において、 トランザクションがページを要求したことに基づいて、
    管理テーブルを他のトランザクションからのアクセスを
    許容する許容状態として、当該管理テーブルを検索して
    前記トランザクションにページを割り当て、 前記トランザクションが複数の領域に対するコミット処
    理要求をしたことに基づいて、予め設定された各領域毎
    のコミット処理順序に従って、各領域の管理テーブルを
    他のトランザクションからのアクセスを拒む排他状態と
    して当該管理テーブルの前記トランザクションに割り当
    てたページに関する使用状況を更新することを特徴とす
    るテータベース管理方法。
JP8220318A 1996-08-02 1996-08-02 データベース管理方法 Pending JPH1049420A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8220318A JPH1049420A (ja) 1996-08-02 1996-08-02 データベース管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8220318A JPH1049420A (ja) 1996-08-02 1996-08-02 データベース管理方法

Publications (1)

Publication Number Publication Date
JPH1049420A true JPH1049420A (ja) 1998-02-20

Family

ID=16749270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8220318A Pending JPH1049420A (ja) 1996-08-02 1996-08-02 データベース管理方法

Country Status (1)

Country Link
JP (1) JPH1049420A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510590A (ja) * 2006-11-17 2010-04-02 マイクロソフト コーポレーション ソフトウェアトランザクションのコミット順序および競合の管理
US8001098B2 (en) 2006-12-26 2011-08-16 International Business Machines Corporation Database update management
US8010550B2 (en) 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8024714B2 (en) 2006-11-17 2011-09-20 Microsoft Corporation Parallelizing sequential frameworks using transactions

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510590A (ja) * 2006-11-17 2010-04-02 マイクロソフト コーポレーション ソフトウェアトランザクションのコミット順序および競合の管理
JP4698757B2 (ja) * 2006-11-17 2011-06-08 マイクロソフト コーポレーション ソフトウェアトランザクションのコミット順序および競合の管理
US8010550B2 (en) 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8024714B2 (en) 2006-11-17 2011-09-20 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8402447B2 (en) 2006-11-17 2013-03-19 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8001098B2 (en) 2006-12-26 2011-08-16 International Business Machines Corporation Database update management

Similar Documents

Publication Publication Date Title
US6240413B1 (en) Fine-grained consistency mechanism for optimistic concurrency control using lock groups
CA2537411C (en) A database management system with efficient version control
JP2533266B2 (ja) 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
US7233947B2 (en) Timestamping in databases
US5410697A (en) Concurrency management using version identification of shared data as a supplement to use of locks
US7305386B2 (en) Controlling visibility in multi-version database systems
US5555388A (en) Multi-user system and methods providing improved file management by reading
US6219675B1 (en) Distribution of a centralized database
US4888681A (en) Space management system for data files having shared access
US5999976A (en) Parallel file system and method with byte range API locking
JPH01188965A (ja) データ処理方法
JP2008524694A (ja) データベース管理システムにおけるファイル操作のためのロックを提供するための手法
EP3824397B1 (en) Version-based table locking
JPH1049420A (ja) データベース管理方法
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
EP0100821B1 (en) Method and apparatus for managing a database
US6877014B1 (en) Method and apparatus to facilitate transactional consistency for references in object-relational databases
JPH01112444A (ja) データアクセスシステム
JP3524270B2 (ja) 並列処理システム
JPH05216728A (ja) データベース管理システム
JPH03123946A (ja) データベースの排他制御方法
JPH08129501A (ja) データベースの予約アクセス処理方法
JPH08263418A (ja) リソースアクセス方式及び方法
JPH03118645A (ja) データベースの排他制御方法
JPH0784864A (ja) 排他制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060322