JP2002351715A - 書き込み遅延データベース管理システム - Google Patents
書き込み遅延データベース管理システムInfo
- Publication number
- JP2002351715A JP2002351715A JP2002044294A JP2002044294A JP2002351715A JP 2002351715 A JP2002351715 A JP 2002351715A JP 2002044294 A JP2002044294 A JP 2002044294A JP 2002044294 A JP2002044294 A JP 2002044294A JP 2002351715 A JP2002351715 A JP 2002351715A
- Authority
- JP
- Japan
- Prior art keywords
- data holding
- data
- deletion
- holding means
- unit
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
持しつつ、システム稼働中の更新性能を向上させること
が可能な、リレーショナルデータベースを管理するため
のデータベース管理システムを提供する。 【解決手段】 検索向けデータ保持手段4は検索操作の
処理は高速だが変更操作の処理は低速、挿入向けデータ
保持手段5及び削除向けデータ保持手段6は検索操作の
処理は低速だが変更操作の処理は高速とする。データ転
送手段7は、データ保持手段5,6で処理されたデータ
の反映を行うために、データ保持手段5,6から検索向
けデータ保持手段4へデータを転送する。データベース
操作要求処理手段3は、入力されたデータベースに対す
る操作要求を各データ保持手段4,5,6のそれぞれに
振り分けて実行する。トランザクション処理手段2は、
データ転送手段7とデータベース操作要求処理手段3と
の間でデータの一貫性を保証する。
Description
システムに関し、より詳細には、例えば文書管理システ
ムのように更新と検索が頻繁に発生するデータベースシ
ステムに適用可能な、データベースの更新及び検索の処
理を行うための書き込み遅延データベース管理システム
に関する。
表で表現して扱う。表はタプルの集合であり、タプルは
属性値の並びである。表の実体はファイルに格納され
る。データベースに対する操作は、検索操作、挿入操
作、更新操作、及び削除操作に分けることができる。検
索操作は属性値に関する条件を検索条件として与えてそ
れに合致するタプルの集合を得る操作である。挿入操作
は与えられた属性値を持った新たなタプルを表に挿入す
る操作である。更新操作は表から選び出されたタプルの
属性値を新たな値に変更する操作である。削除操作は表
から選び出されたタプルを削除する操作である。挿入
(Insert)操作、更新(Update)操作、削除(Delete)
操作をまとめてここでは変更操作と呼ぶことにする。
データベースを用いたシステムで重要視される性能の1
つは検索操作に対する応答時間である。検索操作に対す
る応答時間を短縮するために用いられる方法は索引ファ
イルの導入である。索引ファイルは1つ又は複数の属性
値を特定の構造に変換することでそれらの属性値に関す
る条件を高速に評価できるようにしたものとして一般化
することができる。
更新にかかる時間が性能を低下させる原因となってい
る。これまでは変更操作に対する応答時間で測られる性
能は重要視されてこなかった。それは検索操作に比べて
変更操作の要求頻度が少ないこと、利用形態として通常
は主に検索操作のみが実行され、大量の変更操作は夜間
などにシステムを停止した状態で行うことができるこ
と、などの状況によっている。
ルタイム性が求められる場合においては変更操作に対す
る応答時間が重要視される。このような問題に対し、例
えば、特開平10−143412号公報に記載の「デー
タベース管理システム」では、データベースへの書き込
みを磁気ディスクに反映する前に不揮発性メモリに一時
的に保持して、該当データの参照には磁気ディスクの代
わりに不揮発性メモリをディスクキャッシュとして用い
ている。しかしながら、ディスクキャッシュには構造が
単純なデータしかおくことができず、高機能の索引ファ
イルを用いることはできないという問題が生じる。
時に利用する場合、検索操作と変更操作が非同期に要求
される。このときにデータの一貫性を保つためにトラン
ザクション処理が用いられる。トランザクション処理に
ついては[1]「“トランザクション処理システム入
門”フィリップ・A・バーンスタイン、エリック・ニュ
ーカマー 日経BP社」に詳しく説明されている。
タの一貫性がどの時点においても保証されるようになる
が、同時実行性の低下によって全体のスループットが著
しく低下する場合がある。この問題を回避するためにア
イソレーションレベルの概念が用いられる。アイソレー
ションレベルについては[2]「“A Critique of ANSI
SQL Isolation Levels”Hal Berenson, Philip A Bern
stein, Jim Gray, JimMelton, Elizabeth J. O'Neil, P
atrick E. O,Neil Proc. ACM SIGMOD Conf. (Jun. 199
5) p.1-10」に詳しく説明されている。
ータが大量になるなかで、システムを停止することなく
稼動させつづけることが求められるようになり、本出願
人は、特願2000−252472号明細書において、
高度な検索要求に高速に応答できる性能を維持しつつ、
システム稼働中の更新性能を向上させることができるデ
ータベース管理方式及びシステムを提案した。
2号明細書におけるデータベース管理方式及びシステム
においては、変更処理(挿入、更新、削除)を一つのデ
ータ保持手段で処理している。そのため削除されたタプ
ルを識別するために削除フラグという属性値を用意して
いる。検索結果を求める際には求まった結果集合の全て
のタプルの削除フラグを調べて結果から取り除く処理が
必要であった。
性、隔離性、耐久性という4つの重要な性質を持つ。原
子性はあるトランザクションが成功したときはそのトラ
ンザクションで実行された処理が全てデータベースに反
映されており、失敗したときはそのトランザクションで
実行された処理が全て無効になっており、そのどちらで
もない状態になることはない、という性質である。トラ
ンザクションの成功ではコミット、失敗ではロールバッ
ク又はアボートと呼ばれる処理が行われる。
一般的な方法はトランザクションの開始及びそのトラン
ザクション中に行われた変更操作の履歴をログに記録し
ていき、コミットではコミットしたことを記録、ロール
バックではその時点までに記録されているログの内容を
トランザクションの開始までさかのぼって逆操作を行
う。ログは耐久性を保証するための回復処理にも使用さ
れる。
ルにした場合、トランザクション中に変更操作をするレ
コードにかけられたロックはコミット又はロールバック
が完了するまで外すことができない。つまり、大量のデ
ータに対する変更操作を行ったトランザクションをロー
ルバックする時間が長いと、それだけ他のトランザクシ
ョンによる変更操作の応答時間が長くなってしまう。こ
のことから、大量のデータ操作をしたトランザクション
がロールバックした際に行われる逆操作にも高速性が求
められる。
き実情に鑑みてなされたものであり、高度な検索要求に
高速に応答できる性能を維持しつつ、システム稼働中の
更新性能をさらに向上させることが可能なデータベース
管理システムを提供することをその目的とする。
トランザクションがロールバックした際に行われる逆操
作を高速にすることが可能なデータベース管理システム
を提供することを他の目的とする。
ス管理システム、プログラム、及び記録媒体において
は、削除処理のために別の削除向けデータ保持手段を使
用する。このデータ保持手段には挿入向けデータ保持手
段(特願2000−252472号明細書に記載の発明
における変更向けデータ保持手段)と同じ機構を使用す
ることができる。検索結果を求める際には検索向け,挿
入向け,削除向けのデータ保持手段から求まったタプル
IDの集合に対する集合演算のみでよくタプルの属性値
を参照する必要がなくなり処理が効率よく行える。
るためのデータベース管理システムにおいて、データの
検索操作の処理は高速だがデータの変更操作の処理は低
速な検索向けデータ保持手段と、データの変更操作の処
理は高速な挿入向けデータ保持手段と、データの変更操
作の処理は高速な削除向けデータ保持手段と、前記挿入
向けデータ保持手段及び削除向けデータ保持手段とで処
理されたデータの反映を行うために、前記挿入向けデー
タ保持手段及び削除向けデータ保持手段から前記検索向
けデータ保持手段へデータを転送するデータ転送手段
と、データベースに対する操作要求を該操作要求の内容
に応じて前記挿入向けデータ保持手段及び削除向けデー
タ保持手段と前記検索向けデータ保持手段のそれぞれに
振り分けて実行するデータベース操作要求処理手段と、
前記データ転送手段と前記データベース操作要求処理手
段との間でデータの一貫性を保証するトランザクション
処理手段と、を有することを特徴としたものである。
て、前記データ転送手段に転送指定時刻情報を保持させ
ておくことにより、該データ転送手段による前記検索向
けデータ保持手段へのデータの変更操作を前記転送指定
時刻情報に指定された時刻まで遅延することができるこ
とを特徴としたものである。
て、前記データ転送手段は、該データ転送手段が実行す
べき前記検索向けデータ保持手段への変更操作要求が一
定数になるごとに変更操作を実行することを特徴とした
ものである。
て、前記挿入向けデータ保持手段及び削除向けデータ保
持手段はそれぞれ複数備えるものとし、当該データベー
ス管理システムは、複数のユーザからのデータベース操
作要求を入力するデータベース操作要求入力手段と、前
記挿入向けデータ保持手段及び削除向けデータ保持手段
を、同時に実行できるトランザクションの最大数として
システムに対して定められた個数分、予め作成してお
き、トランザクションの開始,コミット,ロールバック
に応じて、それぞれの挿入向けデータ保持手段及び削除
向けデータ保持手段と各トランザクションの関係を記録
し変更するデータ保持部管理手段と、を有することを特
徴としたものである。
て、前記データ保持部管理手段は、それぞれの挿入向け
データ保持手段について、対応するトランザクションの
識別子とともに、未使用,使用中,コミット済み,転送
中の別を保持し、さらに、前記データ保持部管理手段
は、データベース操作要求処理手段にタプル挿入要求が
あった場合に、(1)未使用の挿入向けデータ保持手段
がある場合、それを使用中の状態にして要求を発したト
ランザクションの識別子を記録し、(2)未使用の挿入
向けデータ保持手段が1つもない場合、コミット済みの
挿入向けデータ保持手段の中から前記検索向けデータ保
持手段へのデータ転送を行うものを1つ選び転送中の状
態にした上で、前記データ転送手段によりデータ転送を
行った後、それを未使用の状態にして要求を発したトラ
ンザクションの識別子を記録し、(3)未使用又はコミ
ット済みの挿入向けデータ保持手段が1つもない場合、
少なくとも1つの挿入向けデータ保持手段が未使用又は
コミット済みになるまで待ってからそれに対して前記
(1)又は(2)と同様の操作をし、前記データベース
操作要求処理手段は、その要求を発したトランザクショ
ンの識別子が記録されている挿入向けデータ保持手段に
タプルを挿入し、前記データ保持部管理手段は、前記ト
ランザクション処理手段にトランザクションのコミット
要求があった場合には、その要求を発したトランザクシ
ョンの識別子が記録されている挿入向けデータ保持手段
の状態をコミット済みにし、前記トランザクション処理
手段にトランザクションのロールバック要求があった場
合には、その要求を発したトランザクションの識別子が
記録されている挿入向けデータ保持手段のデータを全て
一括して破棄した上でその状態を未使用にすることを特
徴としたものである。
て、前記データ保持部管理手段は、それぞれの削除向け
データ保持手段について、対応するトランザクションの
識別子とともに、未使用,使用中,コミット済み,転送
中の別を保持し、さらに、前記データ保持部管理手段
は、データベース操作要求処理手段にタプル削除要求が
あった場合に、(1)未使用の削除向けデータ保持手段
がある場合、それを使用中の状態にして要求を発したト
ランザクションの識別子を記録し、(2)未使用の削除
向けデータ保持手段が1つもない場合、コミット済みの
削除向けデータ保持手段の中から前記検索向けデータ保
持手段へのデータ転送を行うものを1つ選び転送中の状
態にした上で、前記データ転送手段によりデータ転送を
行った後、それを未使用の状態にして要求を発したトラ
ンザクションの識別子を記録し、(3)未使用又はコミ
ット済みの削除向けデータ保持手段が1つもない場合、
少なくとも1つの削除向けデータ保持手段が未使用又は
コミット済みになるまで待ってからそれに対して前記
(1)又は(2)と同様の操作をし、前記データベース
操作要求処理手段は、その要求を発したトランザクショ
ンの識別子が記録されている削除向けデータ保持手段に
タプルを挿入し、前記データ保持部管理手段は、前記ト
ランザクション処理手段にトランザクションのコミット
要求があった場合には、その要求を発したトランザクシ
ョンの識別子が記録されている削除向けデータ保持手段
の状態をコミット済みにし、前記トランザクション処理
手段にトランザクションのロールバック要求があった場
合には、その要求を発したトランザクションの識別子が
記録されている削除向けデータ保持手段のデータを全て
一括して破棄した上でその状態を未使用にすることを特
徴としたものである。
の発明において、前記データ保持部管理手段が管理する
挿入向けデータ保持手段及び削除向けデータ保持手段
は、当該データベース管理システム起動時には存在して
おらず、前記(3)で未使用又はコミット済みの挿入向
けデータ保持手段又は削除向けデータ保持手段が1つも
ない場合に、挿入向けデータ保持手段の数又は削除向け
データ保持手段の数が所定数を超えていなければ新たに
挿入向けデータ保持手段又は削除向けデータ保持手段を
作成してそれを使用し、前記数が前記所定数を超えてい
るときには少なくとも1つの挿入向けデータ保持手段又
は削除向けデータ保持手段が未使用又はコミット済みに
なるまで待つことと、コミット済みの挿入向けデータ保
持手段又は削除向けデータ保持手段についてデータ転送
が完了したときに、或いは使用中の挿入向けデータ保持
手段又は削除向けデータ保持手段と対応しているトラン
ザクションにロールバック要求があったときに、前記コ
ミット済み又は使用中の挿入向けデータ保持手段又は削
除向けデータ保持手段を抹消することを特徴としたもの
である。
の発明において、前記データ保持部管理手段は、時間間
隔を保持し、該データ保持部管理手段は、コミット済み
の挿入向けデータ保持手段のデータ転送をタプル挿入や
タプル削除要求時に行うのではなく、前記保持する時間
間隔を経過するごとにコミット済みであるような挿入向
けデータ保持手段又は削除向けデータ保持手段につい
て、前記データ転送手段によりデータ転送を実行した上
で、データ転送を実行した挿入向けデータ保持手段又は
削除向けデータ保持手段の状態を未使用に変更すること
を特徴としたものである。
の発明において、前記データ保持部管理手段は、未使用
の挿入向けデータ保持手段又は削除向けデータ保持手段
の数が一定数以下になるごとにコミット済みであるよう
な挿入向けデータ保持手段又は削除向けデータ保持手段
について、前記データ転送手段によりデータ転送を実行
した上で、データ転送を実行した挿入向けデータ保持手
段又は削除向けデータ保持手段の状態を未使用に変更す
ることを特徴としたものである。
の一実施形態に係るデータベース管理システムの機能を
説明するためのブロック構成図である。以下、リレーシ
ョナルデータベースを代表させて説明するが、通常のデ
ータベースにも本実施形態に係る発明は適用可能であ
る。データベース操作要求入力手段1からデータベース
に対する操作要求が入力され、データベース操作要求処
理手段3が操作を実行する。検索向けデータ保持手段4
は、データベースの検索操作を処理する。また挿入向け
データ保持手段5はデータベースのデータ挿入操作、削
除操作及び更新操作を処理し、削除向けデータ保持手段
6はデータベースのデータ挿入操作及び削除操作を処理
する。なお、ここでデータ保持手段4,5,6として説
明しているものは、例えばリレーショナルデータベース
においては索引ファイル及び索引ファイルを用いた処理
を行うための手段であり、データを参照等するために関
連付けて保持し、その関連付けに従って各種処理を行な
う手段である。データ転送手段7は、挿入向けデータ保
持手段5及び削除向けデータ保持手段6からタプルを読
みとって検索向けデータ保持手段4に対するタプルの挿
入、更新、削除の操作を行う。トランザクション(排他
制御)処理手段2は、システムにおけるトランザクショ
ン制御を行う。本実施形態によれば、検索向けデータ保
持手段4が提供する高度な検索要求を高速に処理する能
力を保ちつつ、それによって更新性能が低下することを
防ぐことができる。これら各要素については、この後さ
らに詳しく説明する。
は、本発明を具体化するシステム構成の一例を示す図
で、データベース操作要求入力手段1は、入力端末21
として実現される。データベースを保持するサーバホス
ト10は、CPU11、プログラム領域12aとデータ
領域12bとを有するメモリ12、及びハードディスク
13がバス14にて接続され、このサーバホストに対し
てLAN22により複数の入力端末21が接続可能とな
っている。この例におけるデータベース操作要求入力手
段1は、複数のユーザからのデータベース操作要求を入
力することができるものとする。
の形式で文字列により表現されたデータベース操作要求
を入力する。データベース操作要求はLAN22を通じ
てサーバーホスト10に送られて処理される。処理の結
果は再びLAN22を通じて入力端末21に送られ、当
該入力端末21のディスプレイに表示するなどしてユー
ザに知らせることができる。この例によれば、複数のユ
ーザから非同期に要求されるデータベース操作要求に対
して検索向けデータ保持手段4と挿入向けデータ保持手
段5及び削除向けデータ保持手段6の整合性を保ちなが
ら検索にも更新にも高速に応答することができる。
は、データベース操作要求処理手段の処理手順の一例を
示すフロー図である。データベース操作要求の種類によ
って処理内容が分かれる。この例では表の各タプルは一
意に定まるID(タプルID)を付与され、タプルは全
てタプルIDで識別される。
ベース操作要求処理を受け取ると(ステップS1)、挿
入操作かどうかを判断し(ステップS2)、挿入操作の
場合は新しいタプルに対してタプルIDを取得した後
(ステップS3)、挿入向けデータ保持手段5に対して
タプルの挿入操作を実行し(ステップS4)、その結果
を返す(ステップS5)。
索向けデータ保持手段4,挿入向けデータ保持手段5,
削除向けデータ保持手段6のそれぞれに検索操作を実行
し(ステップS6〜S8)、それぞれの検索結果集合R
r,Ri,Rdから、最終結果集合R(R=Rr+Ri
−Rd;ただし、+は論理和、−は論理差をあらわ
す。)を作って結果とする(ステップS9)。
ば、その結果を返し(ステップS5)、検索操作でなけ
ればさらに削除操作かどうかを判断し(ステップS1
1)、削除操作でなければ更新操作として、検索操作と
同様の手順で選ばれたタプルに対して新しい値に変更し
たものを用いて挿入向けデータ保持手段5に対してタプ
ルの更新操作を実行し(ステップS15)、その結果を
返す(ステップS5)。
検索操作と同様の手順で選ばれたタプルがRiにある場
合には(ステップS12でYES)、挿入向けデータ保
持手段5に対して削除処理を実行し(ステップS1
3)、その結果を返す(ステップS5)。Riにない場
合(ステップS12でNO)、すなわちRrにある場合
には、タプルを削除向けデータ保持手段6に対して挿入
処理を実行し(ステップS14)、その結果を返して
(ステップS5)処理を終了する。
タ保持手段4は、データベース操作要求処理手段3が実
行する検索操作を処理する。また、データ転送手段7が
実行する変更操作を処理する。検索向けデータ保持手段
4は検索操作を高速で実行できる代わりに変更操作が比
較的低速である。例えば、全文検索を行うことができる
全文検索サーバを用いることが考えられる。
タ保持手段5はデータベース操作要求処理手段3が実行
する挿入操作、削除操作及び更新操作を処理する。ま
た、データ転送手段7が実行する削除操作を処理する。
挿入向けデータ保持手段5は変更操作を高速に実行でき
る。例えばOSが管理する通常のファイルを用いること
が考えられる。
持手段5が検索操作を実行できない場合は、保持してい
るタプルを逐次的に返しデータベース操作要求処理手段
3が検索条件を評価(全数検索と呼ぶ)する。挿入向け
データ保持手段5が保持するタプル数は検索向けデータ
保持手段4が保持するタプル数に比べて非常に少数なの
で全数検索を行っても応答時間に影響しない。
タ保持手段6は、データベース操作要求処理手段3が実
行する挿入操作を処理する。また、データ転送手段7が
実行する削除操作を処理する。削除向けデータ保持手段
6は挿入操作を高速に実行できる。例えばOSが管理す
る通常のファイルを用いることが考えられる。
持手段6が検索操作を実行できない場合は、保持してい
るタプルを逐次的に返しデータベース操作要求処理手段
3が検索条件を評価(全数検索と呼ぶ)する。削除向け
データ保持手段6が保持するタプル数は検索向けデータ
保持手段4が保持するタプル数に比べて非常に少数なの
で全数検索を行っても応答時間に影響しない。
タ保持手段6,検索向けデータ保持手段4のいずれか1
又は複数は、それ自体が独立して動作可能にデータベー
ス管理システムを構成することができるものであってよ
い。このようなデータ保持手段4,5,6のいずれかを
本発明のデータベース管理システムに適用すればよい。
すなわち、既存のデータベース管理システムで検索は高
速だが更新が比較的低速であるようなものに対して、そ
のデータベース管理システムに特別な変更を施すことな
く、更新要求への応答を向上することができる。また、
逆に既存のデータベース管理システムの更新応答が高速
ならば、検索が高速なデータ保持手段と組み合わせるこ
とによって、更新応答性能を生かしながら検索要求への
応答を向上することができる。
は削除向けデータ保持手段6がメモリ上にあるようにし
てもよく、メモリが大量にある場合に、変更向けデータ
保持手段、すなわち挿入向けデータ保持手段5,削除向
けデータ保持手段6をメモリ上で利用することで更新性
能の著しい向上が実現できる。
向けデータ保持手段5及び削除向けデータ保持手段6
は、属性値の特性に応じてその形態を選定することが好
ましく、例えばデータ量が少ない属性値については上述
のごとくのメモリ上で挿入向けデータ保持手段5及び削
除向けデータ保持手段6を用いることによって性能の向
上が実現できる。
段の処理手順の一例を説明するためのフロー図である。
データ転送手段7によるデータ転送は、挿入向けデータ
保持手段5からタプルを順次読み込み、その値に従って
検索向けデータ保持手段4に対するタプルの挿入或いは
更新の操作を行い、反映が終わったタプルを挿入向けデ
ータ保持手段5から削除する。次に、削除向けデータ保
持手段6からタプルを順次読み込み、そのタプルを検索
向けデータ保持手段4から削除し、反映が終わったタプ
ルを削除向けデータ保持手段6から削除するという手順
で実行される。
けデータ保持手段5からタプルを得ると(ステップS2
1)、検索向けデータ保持手段4から同じタプルIDの
タプルを探し(ステップS22)、同じタプルがあれば
(ステップS23でYES)、検索向けデータ保持手段
4にタプルの更新を実行し(ステップS24)、挿入向
けデータ保持手段5のタプルを削除する(ステップS2
5)。同じタプルがなければ(ステップS23でN
O)、検索向けデータ保持手段4にタプルの挿入を実行
して(ステップS29)、挿入向けデータ保持手段5の
タプルを削除する(ステップS25)。ステップS25
の処理が終了すると、削除向けデータ保持手段6からタ
プルを得て(ステップS26)、検索向けデータ保持手
段4にタプルの削除を実行し(ステップS27)、削除
向けデータ保持手段6のタプルを削除して(ステップS
28)、処理を終了する。
段7に転送時刻情報を指定することにより、すなわちデ
ータ転送手段7に転送指定時刻情報を保持させておくこ
とにより、データ転送手段7による検索向けデータ保持
手段4へのデータの変更操作を、上記の指定時刻まで遅
延することができる。これにより、システムの稼働率が
低くなる時間帯が決まっている場合に、検索向けデータ
保持手段4へのデータの反映をその時間帯に集中させる
ことでシステム全体のスループットを上げることができ
る。
手段7は、データ転送手段7が実行すべき検索向けデー
タ保持手段4への変更操作要求が一定数になるごとに変
更操作を実行するようにしてもよい。データ転送手段7
は、検索向けデータ保持手段4への変更操作要求が一定
数になるごとに変更操作を実行させるようにすることに
より、検索向けデータ保持手段4への更新要求が発生す
る頻度を減らすことができ、これにより排他制御が必要
になる頻度を減らし、システム全体のスループットを上
げることができる。
ータ保持手段4における複数の処理単位データに対する
変更操作がバッチ処理として実行されるようにしてもよ
い。検索向けデータ保持手段4における複数のタプルに
対する変更操作が、バッチ処理として実行されるように
することにより高速に実行できる場合には、データ転送
手段7の操作の実行が高速になり、結果としてシステム
全体のスループットを上げることができる。
ション処理手段2は非同期に要求される検索操作と変更
操作をデータの一貫性を保つように実行順序を制御する
ための排他制御と、変更操作を中止したときにトランザ
クション開始前の状態に戻すための情報を記録するため
のロギングを行う。排他制御は複数のユーザから要求さ
れるデータベース操作間の排他制御のほかに、データベ
ース操作要求処理手段3とデータ転送手段7の間の排他
制御にも用いられる。
クを用いてさまざまなアイソレーションレベルを実現す
る。ロックの対象は表、タプル、ファイルである。本発
明におけるファイルは検索向けデータ保持手段、挿入向
けデータ保持手段及び削除向けデータ保持手段からなる
ものとみなすことができる。排他制御とロギングにおい
てはファイルを構成する検索向けデータ保持手段、挿入
向けデータ保持手段及び削除向けデータ保持手段がどう
いう構造であるかは無関係にこれらをまとめて1つのオ
ブジェクトとして扱うことができる。
ルによるロック方式では、書き込み操作は、操作対象に
対して更新(X)ロックを、読み出し操作は、操作対象
に対して参照(S)ロックをそれぞれ確保することによ
り、対象を予約してから、操作する。あるトランザクシ
ョンT1がある種類のロックをしたときに、他のトラン
ザクションT0がその対象に対してすでにある種類のロ
ックをしているときの結果は、表1のようになる。
とを表し、トランザクションT1は、操作対象をロック
できる。Xはロックが衝突することを表し、トランザク
ションT1は、衝突の原因となっているロックが放棄さ
れ、操作対象をロックできるようになるまで、実行を中
断し、待つことになる。
を1つでも放棄したら、それ以降、トランザクションが
終了するまで、ロックを確保しない。あるトランザクシ
ョンの終了時に、そのトランザクションが確保したロッ
クのうち、放棄されていないものが残っていれば、全て
放棄される。つまり、トランザクションを複数のロック
を確保していく過程と、確保していたロックをはずす過
程の2相に分ける。このことにより、トランザクション
の直列化可能性が保証される。
種類の操作対象を認める場合、例えば、データベース、
データベースを構成する表、表を構成するタプルなどに
対する操作を認める場合、複粒度ロックが必要になる。
つまり、ある対象への書き込み操作は、その上位の対象
に対して、更新の意図があることを表すIXやSIXを
確保してから、その対象に対してXロックを確保する。
ある対象への読み出し操作は、その上位の対象に対し
て、参照の意図があることを表すISロックを確保して
から、その対象に対してSロックを確保する。表1にこ
れらの意図的ロックIX,SIX,ISを加えると、表
2のようになる。表1と同様に、○はロックが共存でき
る事を表し、×はロックが衝突することを表す。
MMITTEDのアイソレーションレベルを実現する方
法について述べる。まず、ロックに関して以下の前提条
件がある。 ・表にかかるロックはIS、IX、S、SIX、Xのい
ずれかのモードを持つ。 ・タプルにかかるロックはS、Xのいずれかのモードを
持つ。 ・タプルにかかっているSロックは参照後にいつでも解
除することができる。 ・タプルにかかっているXロックはトランザクションの
終了まで解除できない。 ・ファイルにアクセスする前後では、ファイルに排他的
なラッチをかける。 データベース操作の種類に応じて手順を述べる。
のラッチを解除して1に戻る。 5.タプルを検索結果に加える。 6.タプルへのロックを解除する。 7.ファイルへのラッチを解除する。
のラッチを解除して1に戻る。 5.ログにタプル更新を記録する。 6.タプルの更新を実行する。 7.ファイルへのラッチを解除する。
のラッチを解除して1へ戻る。 5.ログにタプル削除を記録する。 6.タプルの削除を実行する。 7.ファイルへのラッチを解除する。 トランザクションの終了に際しては以下の処理を行う。
る。 1.ログにコミットを記録する。 2.コミットしたトランザクションが要求したロックを
全て解除する。
る。 1.ログにロールバックを記録する。 2.ログを参照しながら、データ操作をUNDOする。
その際、必要なファイルへのラッチを行う。 3.ロールバックしたトランザクションが要求したロッ
クを全て解除する。
の実施形態に係るデータベース管理システムの機能を説
明するためのブロック構成図である。以下、リレーショ
ナルデータベースを代表させて説明するが、通常のデー
タベースにも本実施形態に係る発明は適用可能である。
データベース操作要求入力手段1からデータベースに対
する操作要求が入力され、データベース操作要求処理手
段3が操作を実行する。検索向けデータ保持手段4は、
データベースの検索操作を処理する。また複数の挿入向
けデータ保持手段51〜5n(しばしば5で代表させて
説明する)はデータベースのデータ挿入操作、削除操作
及び更新操作を処理し、複数の削除向けデータ保持手段
61〜6m(しばしば6で代表させて説明する)はデー
タベースのデータ挿入操作及び削除操作を処理する。な
お、ここでデータ保持手段4,5,6として説明してい
るものは、例えばリレーショナルデータベースにおいて
は索引ファイル及び索引ファイルを用いた処理を行うた
めの手段であり、データを参照等するために関連付けて
保持し、その関連付けに従って各種処理を行なう手段で
ある。データ転送手段7は、挿入向けデータ保持手段5
1〜5n及び削除向けデータ保持手段61〜6mからタプ
ルを読みとって検索向けデータ保持手段4に対するタプ
ルの挿入、更新、削除の操作を行う。トランザクション
(排他制御)処理手段2は、システムにおけるトランザ
クション制御を行う。データ保持部管理手段8は、挿入
向けデータ保持手段5及び削除向けデータ保持手段6
を、同時に実行できるトランザクションの最大数として
当該システムに対して定められた個数分、予め作成して
おき、トランザクションの開始,コミット,ロールバッ
クに応じて、それぞれの挿入向けデータ保持手段及び削
除向けデータ保持手段と各トランザクションの関係を記
録し、変更を行う。これら各要素については、この後さ
らに詳しく説明する。
形態におけるデータベース操作要求入力手段1は、複数
のユーザからのデータベース操作要求を入力することが
できるものとする。図2を再度参照すると、ユーザは入
力端末21から例えばSQL文の形式で文字列により表
現されたデータベース操作要求及びトランザクション処
理要求を入力する。データベース操作要求は及びトラン
ザクション処理要求LAN22を通じてサーバーホスト
10に送られて処理される。処理の結果は再びLAN2
2を通じて入力端末21に送られ、当該入力端末21の
ディスプレイに表示するなどしてユーザに知らせること
ができる。
同期に要求されるデータベース操作要求に対して検索向
けデータ保持手段と挿入向けデータ保持手段及び削除向
けデータ保持手段の整合性を保ちながら検索にも更新に
も高速に応答することができ、ロールバック操作を他の
ユーザによる操作とは独立に高速に実行することができ
る。
至図8は、データベース操作要求処理手段の処理手順の
一例を示す一連のフロー図である。データベース操作要
求の種類によって処理内容が分かれる。この例では表の
各タプルは一意に定まるID(タプルID)を付与さ
れ、タプルは全てタプルIDで識別される。
ベース操作要求処理を受け取ると(ステップS31)、
挿入操作かどうかを判断し(ステップS32)、挿入操
作の場合は、操作要求が発せられたトランザクションの
識別子に対応した挿入向けデータ保持手段(手段51〜
5nのいずれか)をデータ保持部管理手段8から取得す
る(ステップS33)。ここで、対応するものがなけれ
ば新規に対応させたものを取得する。新しいタプルに対
してタプルIDを取得した後(ステップS34)、取得
した挿入向けデータ保持手段に対してタプルの挿入操作
を実行し(ステップS35)、その結果を返す(ステッ
プS36)。
の例では検索操作を行う。検索操作では、データ保持部
管理手段8からコミット済みの状態にある挿入向けデー
タ保持手段(手段51〜5nのいずれか)及び削除向け
データ保持手段(手段61〜6 mのいずれか)を取得す
る(ステップS37,S38)。さらに操作中のトラン
ザクション記述子が記録されている挿入向けデータ保持
手段及び削除向けデータ保持手段があればそれも取得す
る(ステップS39,S40)。コミット済みの状態に
ある挿入向けデータ保持手段の個数をNi、コミット済
みの状態にある削除向けデータ保持手段の個数をNdと
する。検索向けデータ保持手段4、コミット済み挿入向
けデータ保持手段及びコミット済み削除向けデータ保持
手段、操作中のトランザクションの挿入向けデータ保持
手段及び削除向けデータ保持手段のそれぞれに検索操作
を実行し(ステップS41〜S45)、以下の式(1)
の集合演算を行ったものを検索結果とする(ステップS
46)。検索操作であるか判断し(ステップS47)、
検索操作であればその結果を返す(ステップS36)。
理差をあらわすものとし、各記号は以下の集合をあらわ
すものとする。 Rr : 検索向けデータ保持手段の検索結果集合 Ri1 : 1番目の挿入向けデータ保持手段の検索結
果集合 Ri2 : 2番目の挿入向けデータ保持手段の検索結
果集合(以下同様に3,4,...と続く) RiNi : Ni番目の挿入向けデータ保持手段の検
索結果集合 Rd1 : 1番目の削除向けデータ保持手段の検索結
果集合 Rd2 : 2番目の削除向けデータ保持手段の検索結
果集合(以下同様に3,4,...と続く) RdNd : Nd番目の削除向けデータ保持手段の検
索結果集合 Ri : 操作中のトランザクションの挿入向けデータ
保持手段の検索結果集合 Rd : 操作中のトランザクションの削除向けデータ
保持手段の検索結果集合 R : 検索結果集合
O)、この例では削除操作を実行する。削除操作では、
検索操作と同様の手順で選ばれたタプルがコミット済み
の挿入向けデータ保持手段にある場合、すなわちRi
1,...RiNiのいずれかにある場合は(ステップ
S48でYES)、その挿入向けデータ保持手段に対し
て削除処理を実行する(ステップS49)。ない場合は
(ステップS48でNO)、操作中のトランザクション
の挿入向けデータ保持手段にあるか、すなわちRiにあ
るかを判断し(ステップS54)、存在すればその挿入
向けデータ保持手段に対して削除処理を実行する(ステ
ップS55)。どの挿入向けデータ保持手段にもない場
合(ステップS54でNO)、すなわち検索向けデータ
保持手段4にある場合には、操作要求が発せられたトラ
ンザクションの識別子に対応した削除向けデータ保持手
段をデータ保持部管理手段8から取得し、対応するもの
がなければ新規に対応させたものを取得する(ステップ
S56)。さらにタプルを削除向けデータ保持手段に対
して挿入操作を実行する(ステップS57)。
更新操作であるかを判断し(ステップS50)、更新操
作でなければ結果を返す(ステップS36)。更新操作
では、検索操作と同様の手順で選ばれたタプルに対し
て、削除操作と同様の手段で削除操作を実行し、新しい
値にタプルを更新する(ステップS51)。さらに、新
しい値に変更したタプルに対して、挿入操作と同様の手
段で、挿入向けデータ保持手段を取得し(ステップS5
2)、その挿入向けデータ保持手段にタプルを挿入する
操作を実行し(ステップS53)、結果を返す(ステッ
プS36)。
タ保持手段4は、データベース操作要求処理手段3が実
行する検索操作を処理する。また、データ転送手段7が
実行する変更操作を処理する。検索向けデータ保持手段
4は検索操作を高速で実行できる代わりに変更操作が比
較的低速である。例えば、全文検索を行うことができる
全文検索サーバを用いることが考えられる。
タ保持手段5はデータベース操作要求処理手段3が実行
する挿入操作、削除操作及び更新操作を処理する。ま
た、データ転送手段7が実行する削除操作を処理する。
また、データ保持部管理手段8が実行するデータ一括破
棄操作を処理する。挿入向けデータ保持手段は変更操作
及びデータ一括破棄操作を高速に実行できる。例えばO
Sが管理する通常のファイルを用いることが考えられ
る。
持手段5が検索操作を実行できない場合は、保持してい
るタプルを逐次的に返しデータベース操作要求処理手段
3が検索条件を評価(全数検索と呼ぶ)する。挿入向け
データ保持手段5が保持するタプル数は検索向けデータ
保持手段4が保持するタプル数に比べて非常に少数なの
で全数検索を行っても応答時間に影響しない。
タ保持手段6は、データベース操作要求処理手段3が実
行する挿入操作を処理する。また、データ転送手段7が
実行する削除操作を処理する。また、データ保持部管理
手段8が実行するデータ一括破棄操作を処理する。削除
向けデータ保持手段は変更操作及びデータ一括破棄操作
を高速に実行できる。例えばOSが管理する通常のファ
イルを用いることが考えられる。
持手段6が検索操作を実行できない場合は、保持してい
るタプルを逐次的に返しデータベース操作要求処理手段
3が検索条件を評価(全数検索と呼ぶ)する。削除向け
データ保持手段6が保持するタプル数は検索向けデータ
保持手段4が保持するタプル数に比べて非常に少数なの
で全数検索を行っても応答時間に影響しない。
向けデータ保持手段61〜6m,検索向けデータ保持手
段4のいずれか1又は複数は、それ自体が独立して動作
可能にデータベース管理システムを構成することができ
るものであってよい。例えば、検索向けデータ保持手段
4自体だけが、或いは挿入向けデータ保持手段51〜5
n及び削除向けデータ保持手段61〜6m自体がデータ
ベース管理システムによって実現されているような構成
が挙げられる。このようなデータ保持手段4,5,6の
いずれかを本発明のデータベース管理システムに適用す
ればよい。すなわち、既存のデータベース管理システム
で検索は高速だが更新が比較的低速であるようなものに
対して、そのデータベース管理システムに特別な変更を
施すことなく、更新要求への応答を向上することができ
る。また、逆に既存のデータベース管理システムの更新
応答が高速ならば、検索が高速なデータ保持手段と組み
合わせることによって、更新応答性能を生かしながら検
索要求への応答を向上することができる。
及び/又は削除向けデータ保持手段61〜6mがメモリ
上にあるようにしてもよい。メモリが大量にある場合
に、変更向けデータ保持手段、すなわち挿入向けデータ
保持手段51〜5n,削除向けデータ保持手段61〜6m
の一部又は全部をメモリ上で利用することで更新性能の
著しい向上が実現できる。
向けデータ保持手段5及び削除向けデータ保持手段6
は、属性値の特性に応じてその形態を選定することが好
ましく、例えばデータ量が少ない属性値については上述
のごとくのメモリ上で挿入向けデータ保持手段5及び削
除向けデータ保持手段6を用いることによって性能の向
上が実現できる。
段の処理手順の一例を説明するためのフロー図である。
データ転送手段7には転送の対象となる操作を行ったト
ランザクション識別子が指定される。データ転送手段7
は、データ保持部管理手段8から指定されたトランザク
ション識別子が記録されている挿入向けデータ保持手段
及び削除向けデータ保持手段を取得する。取得した削除
向けデータ保持手段からタプルを順次読み込み、その値
にしたがって検索向けデータ保持手段4から削除し、反
映が終わったタプルを削除向けデータ保持手段から削除
する。次に、取得した挿入向けデータ保持手段からタプ
ルを順次読み込み、そのタプルを検索向けデータ保持手
段4に挿入し、反映が終わったタプルを挿入向けデータ
保持手段から削除する。転送が完了するとデータ保持部
管理手段8に転送終了を伝える。
データ保持部管理手段8から指定されたトランザクショ
ン識別子が記録されている削除向けデータ保持手段を取
得する(ステップS61)。取得できれば(ステップS
62でYES)、取得した削除向けデータ保持手段から
タプルを順次読み込み(ステップS63)、その値にし
たがって検索向けデータ保持手段4から削除し、反映が
終わったタプルを削除向けデータ保持手段から削除する
(ステップS64)。その後、及びステップS62でN
Oの場合、データ保持部管理手段8から指定されたトラ
ンザクション識別子が記録されている挿入向けデータ保
持手段を取得する(ステップS65)。取得できなけれ
ば(ステップS66でNO)ステップS69へ進む。取
得できれば(ステップS66でYES)取得した挿入向
けデータ保持手段からタプルを順次読み込み(ステップ
S67)、そのタプルを検索向けデータ保持手段4に挿
入し、反映が終わったタプルを挿入向けデータ保持手段
から削除する(ステップS68)。転送が完了するとデ
ータ保持部管理手段8に、データ保持手段の識別子とと
もに転送終了を伝え(ステップS69)、処理を終了す
る。
ータ保持部管理手段8は、変更向けデータ保持手段5,
6を予め作成し、それらと各トランザクションとの関係
を記録、変更するものであるが、他の実施形態における
データ保持部管理手段8では、それぞれの挿入向けデー
タ保持手段51〜5n(又は削除向けデータ保持手段61
〜6m)について、対応するトランザクションの識別子
とともに、「未使用」,「使用中」,「コミット済
み」,「転送中」の別を保持するようにし、さらに、デ
ータベース操作要求処理手段3にタプル挿入要求(又は
タプル削除要求)があった場合に、次の(1)〜(3)
の処理を実行する。
(又は削除向けデータ保持手段)があれば、それを使用
中の状態にして要求を発したトランザクションの識別子
を記録し、(2)未使用の挿入向けデータ保持手段(又
は削除向けデータ保持手段)が1つもなければ、コミッ
ト済みの挿入向けデータ保持手段(又は削除向けデータ
保持手段)の中から検索向けデータ保持手段4へのデー
タ転送を行うものを1つ選び、転送中の状態にした上
で、データ転送手段7によりデータ転送を行った後、そ
れを未使用の状態にして要求を発したトランザクション
の識別子を記録し、(3)未使用又はコミット済みの挿
入向けデータ保持手段(又は削除向けデータ保持手段)
が1つもない場合は少なくとも1つの挿入向けデータ保
持手段(又は削除向けデータ保持手段)が未使用又はコ
ミット済みになるまで待ってからそれに対して、上記
(1)又は(2)と同様の操作を行う。
は、その要求を発したトランザクションの識別子が記録
されている挿入向けデータ保持手段(又は削除向けデー
タ保持手段)にタプルを挿入(又は削除)する。データ
保持部管理手段8は、トランザクション処理手段2にト
ランザクションのコミット要求があった場合に、その要
求を発したトランザクションの識別子が記録されている
挿入向けデータ保持手段(又は削除向けデータ保持手
段)の状態をコミット済みにし、トランザクション処理
手段2にトランザクションのロールバック要求があった
場合に、その要求を発したトランザクションの識別子が
記録されている挿入向けデータ保持手段(又は削除向け
データ保持手段)のデータを全て一括して破棄した上で
その状態を未使用にする。
ョンによる挿入(又は削除)操作に影響されることなく
タプル挿入(又はタプル削除)を高速に行うことがで
き、ロールバック操作はデータ保持手段が保持するデー
タを一括して破棄することで行えるので通常の変更操作
より高速に行うことができ、更新要求及びロールバック
操作への応答を向上することができる。
管理手段8が管理する挿入向けデータ保持手段及び削除
向けデータ保持手段はシステム起動時には存在しておら
ず、上述の(3)で未使用又はコミット済みの挿入向け
データ保持手段又は削除向けデータ保持手段が1つもな
い場合に、挿入向けデータ保持手段の数又は削除向けデ
ータ保持手段の数が所定数を超えていなければ新たに挿
入向けデータ保持手段又は削除向けデータ保持手段を作
成してそれを使用し、その数が所定数を超えているとき
には少なくとも1つの挿入向けデータ保持手段又は削除
向けデータ保持手段が未使用又はコミット済みになるま
で待つようにしてもよい。本実施形態においては、コミ
ット済みの挿入向けデータ保持手段又は削除向けデータ
保持手段についてデータ転送が完了したとき、或いは使
用中の挿入向けデータ保持手段又は削除向けデータ保持
手段と対応しているトランザクションにロールバック要
求があったときに、そのデータ保持手段を抹消するもの
とする。
手段及び削除向けデータ保持手段の作成が高速に行える
場合は同時に発生するトランザクションの数に応じて適
切な数のデータ保持手段を管理することができ、無駄な
リソースを消費することなく更新要求及びロールバック
操作への応答を向上することができる。
管理手段8が時間間隔を保持することにより、コミット
済みの挿入向けデータ保持手段のデータ転送をタプル挿
入やタプル削除要求時に行うのではなく、データ保持部
管理手段8がその保持する時間間隔を経過するごとにコ
ミット済みであるような挿入向けデータ保持手段又は削
除向けデータ保持手段について、データ転送手段7によ
りデータ転送を実行した上で、データ転送を実行した挿
入向けデータ保持手段又は削除向けデータ保持手段の状
態を未使用に変更するようにしてもよい。
みのデータ保持手段からデータ転送することにより未使
用のデータ保持手段の割合を増やし、更新要求への応答
をさらに向上することができる。
管理手段8が、未使用の挿入向けデータ保持手段又は削
除向けデータ保持手段の数が一定数以下になるごとにコ
ミット済みであるような挿入向けデータ保持手段又は削
除向けデータ保持手段について、データ転送手段7によ
りデータ転送を実行した上で、データ転送を実行した挿
入向けデータ保持手段又は削除向けデータ保持手段の状
態を未使用に変更するようにしてもよい。
ンザクションの数に応じて自動的にデータ転送すること
により、データ転送手段7によって消費されるリソース
を必要なときに効果的に使用することができる。
管理手段8に関し、その処理の一例を説明する。データ
保持部管理手段8には、データ保持手段を取得したいト
ランザクションの識別子又は取得したいデータ保持手段
の状態と、対応するものがないときに新規に対応させた
ものを取得するか取得せずに対応がないことを知らせる
かの別が指定される。データ保持部管理手段8は、挿入
向けデータ保持手段5及び削除向けデータ保持手段6の
それぞれに識別子をつけ、データ保持手段の識別子と未
使用/使用中/コミット済み/転送中の状態をハッシュ
表Aで記録している。ハッシュ表は周知の技術である。
下表3はハッシュ表Aに記録する情報を示している。
クションの識別子とデータ保持手段の識別子もハッシュ
表Bにより記録する。下表4はハッシュ表Bに記録する
情報を示している。
ョンの識別子が指定されている場合、そのトランザクシ
ョン識別子に対応するデータ保持手段の識別子をハッシ
ュ表Bから取得する。データ保持手段の識別子が取得で
きた場合、データ保持手段の識別子の状態をハッシュ表
Aから取得し返答する。取得したいデータ保持手段の状
態が指定されている場合、ハッシュ表Aを走査して指定
された状態と等しければデータ保持手段の記述子の集合
に加え、全て走査したときに得られたデータ保持手段の
記述子の集合を返答する。データ保持手段の識別子が取
得できなかった場合、新規に対応させたものを取得する
よう指定されている場合は以下のようにして新規に対応
させたものを取得する。
の状態にあるデータ保持手段の識別子を探索し、それが
あればハッシュ表Aに記録されている状態を使用中に変
更した上でハッシュ表Bに指定されたトランザクション
識別子との対応を記録し、そのデータ保持手段を返答す
る。 (2)未使用の状態にあるデータ保持手段がなければハ
ッシュ表A全体を走査して転送中の状態にあるデータ保
持手段を探索し、それがあればデータ転送手段から転送
終了の指示がくるまで待った上で(1)と同様にハッシ
ュ表A及びハッシュ表Bに記録し、返答する。
ればハッシュ表A全体を走査してコミット済みの状態に
あるデータ保持手段を探索し、それがあればデータ転送
手段にそのデータ保持手段と対応されているトランザク
ション識別子を指定してデータ転送の開始を指示し、転
送終了まで待った上で(1)と同様にハッシュ表A及び
ハッシュ表Bに記録し、返答する。 (4)未使用のものも転送中のものもコミット済みのも
のもなければ全て使用中なので他のトランザクションの
操作により新たに未使用又はコミット済みのものが現れ
るまで返答を保留する。
クション処理手段2から指示されるロールバック処理も
行う。ロールバック処理は対象のトランザクションの識
別子を指定され、ハッシュ表Bから対応するデータ保持
手段の識別子を取得したらそのデータ保持手段に対して
データの一括破棄を指示した上でハッシュ表Aに未使用
の状態を記録する。
の処理手順の一例を説明するための一連のフロー図であ
る。以上のデータ保持部管理手段8の一例を図10乃至
図12に基づいて説明する。まず、データ保持部管理手
段8は、処理要求を受け取ると(ステップS71)、ロ
ールバック処理の要求かを判断し(ステップS72)、
ロールバック処理要求であれば、ハッシュ表Bから指定
されたトランザクションに対応する挿入向けデータ保持
手段及び削除向けデータ保持手段の識別子を得る(ステ
ップS73)。次に挿入向けデータ保持手段及び削除向
けデータ保持手段にデータ一括破棄を実行する(ステッ
プS74)。次にハッシュ表Aで挿入向けデータ保持手
段の識別子と対応する状態の情報を「未使用」に変更し
(ステップS75)、ハッシュ表Aで削除向けデータ保
持手段の識別子と対応する状態の情報を「未使用」に変
更する(ステップS76)。
ないと判断された場合、トランザクションの指定がある
かを判断する(ステップS77)。ステップS77でY
ESの場合、挿入向け取得要求であるかを判断する(ス
テップS78)。ステップS78でYESの場合、ハッ
シュ表Bから指定されたトランザクションに対応する挿
入向けデータ保持手段の識別子を得る(ステップS7
9)。ステップS78でNOの場合、ハッシュ表Bから
指定されたトランザクションに対応する削除向けデータ
保持手段の識別子を得る(ステップS82)。ステップ
S79,S82に関し、取得できたのであれば(ステッ
プS80でYES)、結果を返し(ステップS81)、
処理を終了する。取得できなければ、新たに対応させる
指定があるかを判断する(ステップS83)。新たに対
応させる指定がなければ、取得できなかったことを結果
として(ステップS84)、結果を返し(ステップS8
1)、処理を終了する。
の指定がないと判断された場合、ハッシュ表Aからエン
トリを1つ得(ステップS85)、指定された挿入/削
除の別とエントリの挿入/削除の別が一致しているかを
判断する(ステップS86)。一致していれば、指定さ
れた状態とエントリの状態が一致しているかを判断し
(ステップS87)、データ保持手段の識別子を結果に
加える(ステップS88)。ステップS88の後、及び
ステップS86でNOの場合、及びステップS87でN
Oの場合、未処理のエントリが残っているかを判断し
(ステップS89)、残っていればステップS85に戻
り、残っていなければステップS81へ進み結果を返し
て処理を終了する。
指定があると判断された場合、ハッシュ表Aからエント
リを1つ得(ステップS84)、指定された挿入/削除
の別とエントリの挿入/削除の別が一致しているかを判
断する(ステップS91)。一致していれば、エントリ
の状態が「未使用」かを判断する(ステップS92)。
「未使用」であれば、エントリの識別子を結果とし(ス
テップS93)、結果を返して(ステップS81)処理
を終了する。ステップS92にてNOの場合、エントリ
の状態が「転送中」又は「コミット済み」かを判断する
(ステップS94)。「転送中」又は「コミット済み」
であれば、転送候補に加える(ステップS95)。ステ
ップS95の後、及びステップS91でNOの場合、及
びステップS94でNOの場合、未処理のエントリが残
っているかを確認し(ステップS96)、残っていれば
ステップS90に戻る。残っていなければ、ステップS
97に進み、転送候補が空でないかを判断する。空であ
れば、「未使用」又は「コミット済み」のデータ保持手
段が現れるまで処理を中断する(ステップS101)。
ステップS97にて空でないと判断された場合、転送候
補の先頭が「コミット済み」かを判断する(ステップS
98)。「コミット済み」であれば、転送候補の先頭に
転送を実行し(ステップS99)、データ転送手段から
転送終了の通知が来るのを待ち(ステップS100)、
ステップS81で結果を返し、処理を終了する。一方、
「コミット済み」でなければ、ステップS99を経ずに
ステップS100へと進む。
ション処理手段2は非同期に要求される検索操作と変更
操作をデータの一貫性を保つように実行順序を制御する
ための排他制御と、変更操作を中止したときにデータ保
持部管理手段8にデータの一括破棄の指示を行う。排他
制御は複数のユーザから要求されるデータベース操作間
の排他制御のほかに、データベース操作要求処理手段3
とデータ転送手段7の間の排他制御にも用いられる。
いてさまざまなアイソレーションレベルを実現する。ロ
ックの対象は表、タプル、ファイルである。本発明にお
けるファイルは検索向けデータ保持手段、挿入向けデー
タ保持手段及び削除向けデータ保持手段からなるものと
みなすことができる。排他制御とロギングにおいてはフ
ァイルを構成する検索向けデータ保持手段、挿入向けデ
ータ保持手段及び削除向けデータ保持手段がどういう構
造であるかは無関係にこれらをまとめて1つのオブジェ
クトとして扱うことができる。本発明においてREAD
COMMITTEDのアイソレーションレベルを実現
する方法については、基本的に上述した通りである。検
索操作,挿入操作,更新操作,削除操作,コミットに関
する手順は同じであるが、ロールバック(アボート)に
ついては以下のようになる。
る。 1.ログにロールバックを記録する。 2.ログを参照しながら、データ操作をUNDOする。
その際、必要なファイルへのラッチを行う。ファイルが
挿入向けデータ保持手段又は削除向けデータ保持手段な
らばUNDOではなくファイルのデータ一括破棄を行
う。 3.ロールバックしたトランザクションが要求したロッ
クを全て解除する。
を中心に各実施形態を説明してきたが、本発明は、これ
らデータベース管理システムにおける処理手順を含んで
なるデータベース管理方法、これらデータベース管理シ
ステムとして又は該データベース管理システムの各手段
として機能させるためのプログラムとしても、或いは、
そのプログラムを記録したコンピュータ読み取り可能な
記録媒体としての形態も可能である。
現するためのプログラムやデータを記憶した記録媒体の
実施形態を説明する。記録媒体としては、具体的には、
CD−ROM、光磁気ディスク、DVD−ROM、F
D、フラッシュメモリ、及びその他各種ROMやRAM
等が想定でき、これら記録媒体に上述した本発明の各実
施形態のシステムの機能をコンピュータに実行させ、デ
ータベース管理の機能を実現するためのプログラムを記
録して流通させることにより、当該機能の実現を容易に
する。そしてコンピュータ等の情報処理装置に上記のご
とくの記録媒体を装着して情報処理装置によりプログラ
ムを読み出すか、若しくは情報処理装置が備えている記
憶媒体に当該プログラムを記憶させておき、必要に応じ
て読み出すことにより、本発明に係わるデータベース管
理機能を実行することができる。
段が提供する高度な検索要求を高速に処理する能力を保
ちつつ、それによって更新性能が低下することを防ぐこ
とができる。
非同期に要求されるデータベース操作要求に対して検索
向けデータ保持手段と挿入向けデータ保持手段及び削除
向けデータ保持手段の整合性を保ちながら検索にも更新
にも高速に応答することができ、ロールバック操作を他
のユーザによる操作とは独立に高速に実行することがで
きる。
システムの機能を説明するためのブロック構成図であ
る。
す図である。
一例を示すフロー図である。
ためのフロー図である。
理システムの機能を説明するためのブロック構成図であ
る。
一例を示すフロー図である。
ためのフロー図である。
説明するためのフロー図である。
ョン処理手段、3…データベース操作要求処理手段、4
…検索向けデータ保持手段、5,51〜5n…挿入向け
データ保持手段、6,61〜6m…削除向けデータ保持
手段、7…データ転送手段、8…データ保持部管理手
段、10…サーバホスト、11…CPU、12…メモ
リ、12a…プログラム領域、12b…データ領域、1
3…ハードディスク、14…バス、21…入力端末、2
2…LAN。
Claims (9)
- 【請求項1】 データベースを管理するためのデータベ
ース管理システムにおいて、 データの検索操作の処理は高速だがデータの変更操作の
処理は低速な検索向けデータ保持手段と、 データの変更操作の処理は高速な挿入向けデータ保持手
段と、 データの変更操作の処理は高速な削除向けデータ保持手
段と、 前記挿入向けデータ保持手段及び削除向けデータ保持手
段とで処理されたデータの反映を行うために、前記挿入
向けデータ保持手段及び削除向けデータ保持手段から前
記検索向けデータ保持手段へデータを転送するデータ転
送手段と、 データベースに対する操作要求を該操作要求の内容に応
じて前記挿入向けデータ保持手段及び削除向けデータ保
持手段と前記検索向けデータ保持手段のそれぞれに振り
分けて実行するデータベース操作要求処理手段と、 前記データ転送手段と前記データベース操作要求処理手
段との間でデータの一貫性を保証するトランザクション
処理手段と、を有することを特徴とするデータベース管
理システム。 - 【請求項2】 請求項1記載のデータベース管理システ
ムにおいて、前記データ転送手段に転送指定時刻情報を
保持させておくことにより、該データ転送手段による前
記検索向けデータ保持手段へのデータの変更操作を前記
転送指定時刻情報に指定された時刻まで遅延することが
できることを特徴とするデータベース管理システム。 - 【請求項3】 請求項1記載のデータベース管理システ
ムにおいて、前記データ転送手段は、該データ転送手段
が実行すべき前記検索向けデータ保持手段への変更操作
要求が一定数になるごとに変更操作を実行することを特
徴とするデータベース管理システム。 - 【請求項4】 請求項1記載のデータベース管理システ
ムにおいて、前記挿入向けデータ保持手段及び削除向け
データ保持手段はそれぞれ複数備えるものとし、当該デ
ータベース管理システムは、 複数のユーザからのデータベース操作要求を入力するデ
ータベース操作要求入力手段と、 前記挿入向けデータ保持手段及び削除向けデータ保持手
段を、同時に実行できるトランザクションの最大数とし
てシステムに対して定められた個数分、予め作成してお
き、トランザクションの開始,コミット,ロールバック
に応じて、それぞれの挿入向けデータ保持手段及び削除
向けデータ保持手段と各トランザクションの関係を記録
し変更するデータ保持部管理手段と、を有することを特
徴とするデータベース管理システム。 - 【請求項5】 請求項4記載のデータベース管理システ
ムにおいて、 前記データ保持部管理手段は、それぞれの挿入向けデー
タ保持手段について、対応するトランザクションの識別
子とともに、未使用,使用中,コミット済み,転送中の
別を保持し、さらに、前記データ保持部管理手段は、デ
ータベース操作要求処理手段にタプル挿入要求があった
場合に、 (1)未使用の挿入向けデータ保持手段がある場合、そ
れを使用中の状態にして要求を発したトランザクション
の識別子を記録し、 (2)未使用の挿入向けデータ保持手段が1つもない場
合、コミット済みの挿入向けデータ保持手段の中から前
記検索向けデータ保持手段へのデータ転送を行うものを
1つ選び転送中の状態にした上で、前記データ転送手段
によりデータ転送を行った後、それを未使用の状態にし
て要求を発したトランザクションの識別子を記録し、 (3)未使用又はコミット済みの挿入向けデータ保持手
段が1つもない場合、少なくとも1つの挿入向けデータ
保持手段が未使用又はコミット済みになるまで待ってか
らそれに対して前記(1)又は(2)と同様の操作を
し、 前記データベース操作要求処理手段は、その要求を発し
たトランザクションの識別子が記録されている挿入向け
データ保持手段にタプルを挿入し、 前記データ保持部管理手段は、前記トランザクション処
理手段にトランザクションのコミット要求があった場合
には、その要求を発したトランザクションの識別子が記
録されている挿入向けデータ保持手段の状態をコミット
済みにし、前記トランザクション処理手段にトランザク
ションのロールバック要求があった場合には、その要求
を発したトランザクションの識別子が記録されている挿
入向けデータ保持手段のデータを全て一括して破棄した
上でその状態を未使用にすることを特徴とするデータベ
ース管理システム。 - 【請求項6】 請求項4記載のデータベース管理システ
ムにおいて、 前記データ保持部管理手段は、それぞれの削除向けデー
タ保持手段について、対応するトランザクションの識別
子とともに、未使用,使用中,コミット済み,転送中の
別を保持し、さらに、前記データ保持部管理手段は、デ
ータベース操作要求処理手段にタプル削除要求があった
場合に、 (1)未使用の削除向けデータ保持手段がある場合、そ
れを使用中の状態にして要求を発したトランザクション
の識別子を記録し、 (2)未使用の削除向けデータ保持手段が1つもない場
合、コミット済みの削除向けデータ保持手段の中から前
記検索向けデータ保持手段へのデータ転送を行うものを
1つ選び転送中の状態にした上で、前記データ転送手段
によりデータ転送を行った後、それを未使用の状態にし
て要求を発したトランザクションの識別子を記録し、 (3)未使用又はコミット済みの削除向けデータ保持手
段が1つもない場合、少なくとも1つの削除向けデータ
保持手段が未使用又はコミット済みになるまで待ってか
らそれに対して前記(1)又は(2)と同様の操作を
し、 前記データベース操作要求処理手段は、その要求を発し
たトランザクションの識別子が記録されている削除向け
データ保持手段にタプルを挿入し、 前記データ保持部管理手段は、前記トランザクション処
理手段にトランザクションのコミット要求があった場合
には、その要求を発したトランザクションの識別子が記
録されている削除向けデータ保持手段の状態をコミット
済みにし、前記トランザクション処理手段にトランザク
ションのロールバック要求があった場合には、その要求
を発したトランザクションの識別子が記録されている削
除向けデータ保持手段のデータを全て一括して破棄した
上でその状態を未使用にすることを特徴とするデータベ
ース管理システム。 - 【請求項7】 請求項5及び請求項6記載のデータベー
ス管理システムにおいて、 前記データ保持部管理手段が管理する挿入向けデータ保
持手段及び削除向けデータ保持手段は、当該データベー
ス管理システム起動時には存在しておらず、 前記(3)で未使用又はコミット済みの挿入向けデータ
保持手段又は削除向けデータ保持手段が1つもない場合
に、挿入向けデータ保持手段の数又は削除向けデータ保
持手段の数が所定数を超えていなければ新たに挿入向け
データ保持手段又は削除向けデータ保持手段を作成して
それを使用し、前記数が前記所定数を超えているときに
は少なくとも1つの挿入向けデータ保持手段又は削除向
けデータ保持手段が未使用又はコミット済みになるまで
待つことと、 コミット済みの挿入向けデータ保持手段又は削除向けデ
ータ保持手段についてデータ転送が完了したときに、或
いは使用中の挿入向けデータ保持手段又は削除向けデー
タ保持手段と対応しているトランザクションにロールバ
ック要求があったときに、前記コミット済み又は使用中
の挿入向けデータ保持手段又は削除向けデータ保持手段
を抹消することを特徴とするデータベース管理システ
ム。 - 【請求項8】 請求項5及び請求項6記載のデータベー
ス管理システムにおいて、 前記データ保持部管理手段は、時間間隔を保持し、 該データ保持部管理手段は、コミット済みの挿入向けデ
ータ保持手段のデータ転送をタプル挿入やタプル削除要
求時に行うのではなく、前記保持する時間間隔を経過す
るごとにコミット済みであるような挿入向けデータ保持
手段又は削除向けデータ保持手段について、前記データ
転送手段によりデータ転送を実行した上で、データ転送
を実行した挿入向けデータ保持手段又は削除向けデータ
保持手段の状態を未使用に変更することを特徴とするデ
ータベース管理システム。 - 【請求項9】 請求項5及び請求項6記載のデータベー
ス管理システムにおいて、 前記データ保持部管理手段は、未使用の挿入向けデータ
保持手段又は削除向けデータ保持手段の数が一定数以下
になるごとにコミット済みであるような挿入向けデータ
保持手段又は削除向けデータ保持手段について、前記デ
ータ転送手段によりデータ転送を実行した上で、データ
転送を実行した挿入向けデータ保持手段又は削除向けデ
ータ保持手段の状態を未使用に変更することを特徴とす
るデータベース管理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002044294A JP2002351715A (ja) | 2001-03-19 | 2002-02-21 | 書き込み遅延データベース管理システム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001078026 | 2001-03-19 | ||
JP2001-78026 | 2001-03-19 | ||
JP2002044294A JP2002351715A (ja) | 2001-03-19 | 2002-02-21 | 書き込み遅延データベース管理システム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008271520A Division JP4287900B2 (ja) | 2001-03-19 | 2008-10-22 | 書き込み遅延データベース管理システム、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002351715A true JP2002351715A (ja) | 2002-12-06 |
Family
ID=26611519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002044294A Pending JP2002351715A (ja) | 2001-03-19 | 2002-02-21 | 書き込み遅延データベース管理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002351715A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007501468A (ja) * | 2003-08-06 | 2007-01-25 | オラクル・インターナショナル・コーポレイション | 効率的なバージョン制御を有するデータベース管理システム |
JP2015156100A (ja) * | 2014-02-20 | 2015-08-27 | 日本電信電話株式会社 | フィルタリング装置及びフィルタリング制御方法 |
JP2020533671A (ja) * | 2017-09-08 | 2020-11-19 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンにおけるリソースを保護する改善された時間ロック技術 |
-
2002
- 2002-02-21 JP JP2002044294A patent/JP2002351715A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007501468A (ja) * | 2003-08-06 | 2007-01-25 | オラクル・インターナショナル・コーポレイション | 効率的なバージョン制御を有するデータベース管理システム |
JP2015156100A (ja) * | 2014-02-20 | 2015-08-27 | 日本電信電話株式会社 | フィルタリング装置及びフィルタリング制御方法 |
JP2020533671A (ja) * | 2017-09-08 | 2020-11-19 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | ブロックチェーンにおけるリソースを保護する改善された時間ロック技術 |
JP7264878B2 (ja) | 2017-09-08 | 2023-04-25 | エヌチェーン ライセンシング アーゲー | ブロックチェーンにおけるリソースを保護する改善された時間ロック技術 |
JP7264878B6 (ja) | 2017-09-08 | 2024-02-15 | エヌチェーン ライセンシング アーゲー | ブロックチェーンにおけるリソースを保護する改善された時間ロック技術 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4077329B2 (ja) | トランザクション処理システム、並行制御方法及びプログラム | |
US7702666B2 (en) | Full-text search device performing merge processing by using full-text index-for-registration/deletion storage part with performing registration/deletion processing by using other full-text index-for-registration/deletion storage part | |
US6772155B1 (en) | Looking data in a database system | |
US7240054B2 (en) | Techniques to preserve data constraints and referential integrity in asynchronous transactional replication of relational tables | |
JP4833590B2 (ja) | 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization) | |
EP2356560B1 (en) | Atomic multiple modification of data in a distributed storage system | |
US5123104A (en) | Method and apparatus for concurrent modification of an index tree in a transaction processing system utilizing selective indication of structural modification operations | |
Mohan et al. | ARIES/IM: an efficient and high concurrency index management method using write-ahead logging | |
US7418544B2 (en) | Method and system for log structured relational database objects | |
Mohan | ARIES/KVL: A key-value locking method for concurrency control of multiaction transactions operating on B-tree indexes | |
US8010497B2 (en) | Database management system with efficient version control | |
US6393435B1 (en) | Method and means for evaluating the performance of a database system referencing files external to the database system | |
US7526469B2 (en) | Method and system of database management with shared area | |
Taniar et al. | A taxonomy of indexing schemes for parallel database systems | |
JP4287900B2 (ja) | 書き込み遅延データベース管理システム、及びプログラム | |
WO2022213526A1 (zh) | 事务处理方法、分布式数据库系统、集群及介质 | |
WO2023165374A1 (zh) | 数据库操作方法、装置、设备及存储介质 | |
Taniar et al. | Global parallel index for multi-processors database systems | |
US6571250B1 (en) | Method and system for processing queries in a data processing system using index | |
JP2002351715A (ja) | 書き込み遅延データベース管理システム | |
KR20030047996A (ko) | 내포 데이터베이스를 구현하는 방법, 시스템 및 데이터 구조 | |
WO2022068289A1 (zh) | 一种数据访问方法、装置、设备及计算机可读存储介质 | |
CN111373389A (zh) | 数据存储系统以及用于提供数据存储系统的方法 | |
JP4289834B2 (ja) | データベース管理システム、データベース管理プログラムおよび記録媒体 | |
JP4245282B2 (ja) | 書き込み遅延データベース管理方法、装置、プログラム、及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080411 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080603 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080804 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080902 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080929 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081031 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090108 |