JP2009026334A - 書き込み遅延データベース管理システム、及びプログラム - Google Patents

書き込み遅延データベース管理システム、及びプログラム Download PDF

Info

Publication number
JP2009026334A
JP2009026334A JP2008271520A JP2008271520A JP2009026334A JP 2009026334 A JP2009026334 A JP 2009026334A JP 2008271520 A JP2008271520 A JP 2008271520A JP 2008271520 A JP2008271520 A JP 2008271520A JP 2009026334 A JP2009026334 A JP 2009026334A
Authority
JP
Japan
Prior art keywords
data holding
holding means
data
deletion
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008271520A
Other languages
English (en)
Other versions
JP4287900B2 (ja
Inventor
Tetsuya Ikeda
哲也 池田
Kensaku Yamamoto
研策 山本
Takuya Hiraoka
卓也 平岡
Hiroshi Takegawa
弘志 竹川
Yasutsugu Ogawa
泰嗣 小川
Kazushige Asada
一繁 浅田
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.)
Ricoh Co Ltd
Original Assignee
Ricoh 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008271520A priority Critical patent/JP4287900B2/ja
Publication of JP2009026334A publication Critical patent/JP2009026334A/ja
Application granted granted Critical
Publication of JP4287900B2 publication Critical patent/JP4287900B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

【課題】高度な検索要求に高速に応答できる性能を維持しつつ、システム稼働中の更新性能を向上させることが可能な、リレーショナルデータベースを管理するためのデータベース管理システムを提供する。
【解決手段】検索向けデータ保持手段4は検索操作の処理は高速だが変更操作の処理は低速、挿入向けデータ保持手段5及び削除向けデータ保持手段6は検索操作の処理は低速だが変更操作の処理は高速とする。データ転送手段7は、データ保持手段5,6で処理されたデータの反映を行うために、データ保持手段5,6から検索向けデータ保持手段4へデータを転送する。データベース操作要求処理手段3は、入力されたデータベースに対する操作要求を各データ保持手段4,5,6のそれぞれに振り分けて実行する。トランザクション処理手段2は、データ転送手段7とデータベース操作要求処理手段3との間でデータの一貫性を保証する。
【選択図】図1

Description

本発明は、データベース管理システムに関し、より詳細には、例えば文書管理システムのように更新と検索が頻繁に発生するデータベースシステムに適用可能な、データベースの更新及び検索の処理を行うための書き込み遅延データベース管理システムに関する。
リレーショナルデータベースはデータを表で表現して扱う。表はタプルの集合であり、タプルは属性値の並びである。表の実体はファイルに格納される。データベースに対する操作は、検索操作、挿入操作、更新操作、及び削除操作に分けることができる。検索操作は属性値に関する条件を検索条件として与えてそれに合致するタプルの集合を得る操作である。挿入操作は与えられた属性値を持った新たなタプルを表に挿入する操作である。更新操作は表から選び出されたタプルの属性値を新たな値に変更する操作である。削除操作は表から選び出されたタプルを削除する操作である。挿入(Insert)操作、更新(Update)操作、削除(Delete)操作をまとめてここでは変更操作と呼ぶことにする。
リレーショナルデータベースに代表されるデータベースを用いたシステムで重要視される性能の1つは検索操作に対する応答時間である。検索操作に対する応答時間を短縮するために用いられる方法は索引ファイルの導入である。索引ファイルは1つ又は複数の属性値を特定の構造に変換することでそれらの属性値に関する条件を高速に評価できるようにしたものとして一般化することができる。
一方、変更操作においては索引ファイルの更新にかかる時間が性能を低下させる原因となっている。これまでは変更操作に対する応答時間で測られる性能は重要視されてこなかった。それは検索操作に比べて変更操作の要求頻度が少ないこと、利用形態として通常は主に検索操作のみが実行され、大量の変更操作は夜間などにシステムを停止した状態で行うことができること、などの状況によっている。
しかし、オンラインシステムのようにリアルタイム性が求められる場合においては変更操作に対する応答時間が重要視される。このような問題に対し、例えば、特開平10−143412号公報に記載の「データベース管理システム」では、データベースへの書き込みを磁気ディスクに反映する前に不揮発性メモリに一時的に保持して、該当データの参照には磁気ディスクの代わりに不揮発性メモリをディスクキャッシュとして用いている。しかしながら、ディスクキャッシュには構造が単純なデータしかおくことができず、高機能の索引ファイルを用いることはできないという問題が生じる。
データベースシステムを複数のユーザが同時に利用する場合、検索操作と変更操作が非同期に要求される。このときにデータの一貫性を保つためにトランザクション処理が用いられる。トランザクション処理については[1]「“トランザクション処理システム入門”フィリップ・A・バーンスタイン、エリック・ニューカマー 日経BP社」に詳しく説明されている。
トランザクションを完全に隔離するとデータの一貫性がどの時点においても保証されるようになるが、同時実行性の低下によって全体のスループットが著しく低下する場合がある。この問題を回避するためにアイソレーションレベルの概念が用いられる。アイソレーションレベルについては[2]「“A Critique of ANSI SQL Isolation Levels”Hal Berenson, Philip A Bernstein, Jim Gray, JimMelton, Elizabeth J. O’Neil, Patrick E. O,Neil Proc. ACM SIGMOD Conf. (Jun. 1995) p.1−10」に詳しく説明されている。
上述したごとくに、データベースの扱うデータが大量になるなかで、システムを停止することなく稼動させつづけることが求められるようになり、本出願人は、特願2000−252472号明細書において、高度な検索要求に高速に応答できる性能を維持しつつ、システム稼働中の更新性能を向上させることができるデータベース管理方式及びシステムを提案した。
しかしながら、特願2000−252472号明細書におけるデータベース管理方式及びシステムにおいては、変更処理(挿入、更新、削除)を一つのデータ保持手段で処理している。そのため削除されたタプルを識別するために削除フラグという属性値を用意している。検索結果を求める際には求まった結果集合の全てのタプルの削除フラグを調べて結果から取り除く処理が必要であった。
一方、トランザクションは、原子性、一貫性、隔離性、耐久性という4つの重要な性質を持つ。原子性はあるトランザクションが成功したときはそのトランザクションで実行された処理が全てデータベースに反映されており、失敗したときはそのトランザクションで実行された処理が全て無効になっており、そのどちらでもない状態になることはない、という性質である。トランザクションの成功ではコミット、失敗ではロールバック又はアボートと呼ばれる処理が行われる。
コミットとロールバックを実現する従来の一般的な方法はトランザクションの開始及びそのトランザクション中に行われた変更操作の履歴をログに記録していき、コミットではコミットしたことを記録、ロールバックではその時点までに記録されているログの内容をトランザクションの開始までさかのぼって逆操作を行う。ログは耐久性を保証するための回復処理にも使用される。
一貫性が保証できるアイソレーションレベルにした場合、トランザクション中に変更操作をするレコードにかけられたロックはコミット又はロールバックが完了するまで外すことができない。つまり、大量のデータに対する変更操作を行ったトランザクションをロールバックする時間が長いと、それだけ他のトランザクションによる変更操作の応答時間が長くなってしまう。このことから、大量のデータ操作をしたトランザクションがロールバックした際に行われる逆操作にも高速性が求められる。
特開平10−143412号公報 "トランザクション処理システム入門"フィリップ・A・バーンスタイン、エリック・ニューカマー 日経BP社 "A Critique of ANSI SQL Isolation Levels"Hal Berenson, Philip A Bernstein, Jim Gray, JimMelton, Elizabeth J. O’Neil, Patrick E. O,Neil Proc. ACM SIGMOD Conf. (Jun. 1995) p.1−10
本発明は、上述のごとき実情に鑑みてなされたものであり、高度な検索要求に高速に応答できる性能を維持しつつ、システム稼働中の更新性能をさらに向上させることが可能なデータベース管理システムを提供することをその目的とする。
本発明はさらに、大量のデータ操作をしたトランザクションがロールバックした際に行われる逆操作を高速にすることが可能なデータベース管理システムを提供することを他の目的とする。
本発明に係るデータベース管理システム、プログラム、及び記録媒体においては、削除処理のために別の削除向けデータ保持手段を使用する。このデータ保持手段には挿入向けデータ保持手段(特願2000−252472号明細書に記載の発明における変更向けデータ保持手段)と同じ機構を使用することができる。検索結果を求める際には検索向け,挿入向け,削除向けのデータ保持手段から求まったタプルIDの集合に対する集合演算のみでよくタプルの属性値を参照する必要がなくなり処理が効率よく行える。
請求項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の発明において、前記データ保持部管理手段は、未使用の挿入向けデータ保持手段又は削除向けデータ保持手段の数が一定数以下になるごとにコミット済みであるような挿入向けデータ保持手段又は削除向けデータ保持手段について、前記データ転送手段によりデータ転送を実行した上で、データ転送を実行した挿入向けデータ保持手段又は削除向けデータ保持手段の状態を未使用に変更することを特徴としたものである。
本発明によれば、検索向けデータ保持手段が提供する高度な検索要求を高速に処理する能力を保ちつつ、それによって更新性能が低下することを防ぐことができる。
また、本発明によれば、複数のユーザから非同期に要求されるデータベース操作要求に対して検索向けデータ保持手段と挿入向けデータ保持手段及び削除向けデータ保持手段の整合性を保ちながら検索にも更新にも高速に応答することができ、ロールバック操作を他のユーザによる操作とは独立に高速に実行することができる。
<システム構成>
図1は、本発明の一実施形態に係るデータベース管理システムの機能を説明するためのブロック構成図である。以下、リレーショナルデータベースを代表させて説明するが、通常のデータベースにも本実施形態に係る発明は適用可能である。データベース操作要求入力手段1からデータベースに対する操作要求が入力され、データベース操作要求処理手段3が操作を実行する。検索向けデータ保持手段4は、データベースの検索操作を処理する。また挿入向けデータ保持手段5はデータベースのデータ挿入操作、削除操作及び更新操作を処理し、削除向けデータ保持手段6はデータベースのデータ挿入操作及び削除操作を処理する。なお、ここでデータ保持手段4,5,6として説明しているものは、例えばリレーショナルデータベースにおいては索引ファイル及び索引ファイルを用いた処理を行うための手段であり、データを参照等するために関連付けて保持し、その関連付けに従って各種処理を行なう手段である。データ転送手段7は、挿入向けデータ保持手段5及び削除向けデータ保持手段6からタプルを読みとって検索向けデータ保持手段4に対するタプルの挿入、更新、削除の操作を行う。トランザクション(排他制御)処理手段2は、システムにおけるトランザクション制御を行う。本実施形態によれば、検索向けデータ保持手段4が提供する高度な検索要求を高速に処理する能力を保ちつつ、それによって更新性能が低下することを防ぐことができる。これら各要素については、この後さらに詳しく説明する。
(データベース操作要求入力手段)
図2は、本発明を具体化するシステム構成の一例を示す図で、データベース操作要求入力手段1は、入力端末21として実現される。データベースを保持するサーバホスト10は、CPU11、プログラム領域12aとデータ領域12bとを有するメモリ12、及びハードディスク13がバス14にて接続され、このサーバホストに対してLAN22により複数の入力端末21が接続可能となっている。この例におけるデータベース操作要求入力手段1は、複数のユーザからのデータベース操作要求を入力することができるものとする。
ユーザは入力端末21から例えばSQL文の形式で文字列により表現されたデータベース操作要求を入力する。データベース操作要求はLAN22を通じてサーバーホスト10に送られて処理される。処理の結果は再びLAN22を通じて入力端末21に送られ、当該入力端末21のディスプレイに表示するなどしてユーザに知らせることができる。この例によれば、複数のユーザから非同期に要求されるデータベース操作要求に対して検索向けデータ保持手段4と挿入向けデータ保持手段5及び削除向けデータ保持手段6の整合性を保ちながら検索にも更新にも高速に応答することができる。
(データベース操作要求処理手段)
図3は、データベース操作要求処理手段の処理手順の一例を示すフロー図である。データベース操作要求の種類によって処理内容が分かれる。この例では表の各タプルは一意に定まるID(タプルID)を付与され、タプルは全てタプルIDで識別される。
データベース操作要求処理手段3がデータベース操作要求処理を受け取ると(ステップS1)、挿入操作かどうかを判断し(ステップS2)、挿入操作の場合は新しいタプルに対してタプルIDを取得した後(ステップS3)、挿入向けデータ保持手段5に対してタプルの挿入操作を実行し(ステップS4)、その結果を返す(ステップS5)。
ステップS2で挿入操作でない場合は、検索向けデータ保持手段4,挿入向けデータ保持手段5,削除向けデータ保持手段6のそれぞれに検索操作を実行し(ステップS6〜S8)、それぞれの検索結果集合Rr,Ri,Rdから、最終結果集合R(R=Rr+Ri−Rd;ただし、+は論理和、−は論理差をあらわす。)を作って結果とする(ステップS9)。
次いで、ステップS10で検索操作であれば、その結果を返し(ステップS5)、検索操作でなければさらに削除操作かどうかを判断し(ステップS11)、削除操作でなければ更新操作として、検索操作と同様の手順で選ばれたタプルに対して新しい値に変更したものを用いて挿入向けデータ保持手段5に対してタプルの更新操作を実行し(ステップS15)、その結果を返す(ステップS5)。
ステップS11で削除操作である場合は、検索操作と同様の手順で選ばれたタプルがRiにある場合には(ステップS12でYES)、挿入向けデータ保持手段5に対して削除処理を実行し(ステップS13)、その結果を返す(ステップ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が保持するタプル数に比べて非常に少数なので全数検索を行っても応答時間に影響しない。
挿入向けデータ保持手段5,削除向けデータ保持手段6,検索向けデータ保持手段4のいずれか1又は複数は、それ自体が独立して動作可能にデータベース管理システムを構成することができるものであってよい。このようなデータ保持手段4,5,6のいずれかを本発明のデータベース管理システムに適用すればよい。すなわち、既存のデータベース管理システムで検索は高速だが更新が比較的低速であるようなものに対して、そのデータベース管理システムに特別な変更を施すことなく、更新要求への応答を向上することができる。また、逆に既存のデータベース管理システムの更新応答が高速ならば、検索が高速なデータ保持手段と組み合わせることによって、更新応答性能を生かしながら検索要求への応答を向上することができる。
また、挿入向けデータ保持手段5及び/又は削除向けデータ保持手段6がメモリ上にあるようにしてもよく、メモリが大量にある場合に、変更向けデータ保持手段、すなわち挿入向けデータ保持手段5,削除向けデータ保持手段6をメモリ上で利用することで更新性能の著しい向上が実現できる。
また、検索向けデータ保持手段4及び挿入向けデータ保持手段5及び削除向けデータ保持手段6は、属性値の特性に応じてその形態を選定することが好ましく、例えばデータ量が少ない属性値については上述のごとくのメモリ上で挿入向けデータ保持手段5及び削除向けデータ保持手段6を用いることによって性能の向上が実現できる。
(データ転送手段)
図4は、データ転送手段の処理手順の一例を説明するためのフロー図である。データ転送手段7によるデータ転送は、挿入向けデータ保持手段5からタプルを順次読み込み、その値に従って検索向けデータ保持手段4に対するタプルの挿入或いは更新の操作を行い、反映が終わったタプルを挿入向けデータ保持手段5から削除する。次に、削除向けデータ保持手段6からタプルを順次読み込み、そのタプルを検索向けデータ保持手段4から削除し、反映が終わったタプルを削除向けデータ保持手段6から削除するという手順で実行される。
図4において、データ転送手段7が挿入向けデータ保持手段5からタプルを得ると(ステップS21)、検索向けデータ保持手段4から同じタプルIDのタプルを探し(ステップS22)、同じタプルがあれば(ステップS23でYES)、検索向けデータ保持手段4にタプルの更新を実行し(ステップS24)、挿入向けデータ保持手段5のタプルを削除する(ステップS25)。同じタプルがなければ(ステップS23でNO)、検索向けデータ保持手段4にタプルの挿入を実行して(ステップS29)、挿入向けデータ保持手段5のタプルを削除する(ステップS25)。ステップS25の処理が終了すると、削除向けデータ保持手段6からタプルを得て(ステップS26)、検索向けデータ保持手段4にタプルの削除を実行し(ステップS27)、削除向けデータ保持手段6のタプルを削除して(ステップS28)、処理を終了する。
また、他の実施形態として、データ転送手段7に転送時刻情報を指定することにより、すなわちデータ転送手段7に転送指定時刻情報を保持させておくことにより、データ転送手段7による検索向けデータ保持手段4へのデータの変更操作を、上記の指定時刻まで遅延することができる。これにより、システムの稼働率が低くなる時間帯が決まっている場合に、検索向けデータ保持手段4へのデータの反映をその時間帯に集中させることでシステム全体のスループットを上げることができる。
さらに、他の実施形態として、データ転送手段7は、データ転送手段7が実行すべき検索向けデータ保持手段4への変更操作要求が一定数になるごとに変更操作を実行するようにしてもよい。データ転送手段7は、検索向けデータ保持手段4への変更操作要求が一定数になるごとに変更操作を実行させるようにすることにより、検索向けデータ保持手段4への更新要求が発生する頻度を減らすことができ、これにより排他制御が必要になる頻度を減らし、システム全体のスループットを上げることができる。
さらに、他の実施形態として、検索向けデータ保持手段4における複数の処理単位データに対する変更操作がバッチ処理として実行されるようにしてもよい。検索向けデータ保持手段4における複数のタプルに対する変更操作が、バッチ処理として実行されるようにすることにより高速に実行できる場合には、データ転送手段7の操作の実行が高速になり、結果としてシステム全体のスループットを上げることができる。
(トランザクション処理手段)
トランザクション処理手段2は非同期に要求される検索操作と変更操作をデータの一貫性を保つように実行順序を制御するための排他制御と、変更操作を中止したときにトランザクション開始前の状態に戻すための情報を記録するためのロギングを行う。排他制御は複数のユーザから要求されるデータベース操作間の排他制御のほかに、データベース操作要求処理手段3とデータ転送手段7の間の排他制御にも用いられる。
前述の文献[1]で説明される複粒度ロックを用いてさまざまなアイソレーションレベルを実現する。ロックの対象は表、タプル、ファイルである。本発明におけるファイルは検索向けデータ保持手段、挿入向けデータ保持手段及び削除向けデータ保持手段からなるものとみなすことができる。排他制御とロギングにおいてはファイルを構成する検索向けデータ保持手段、挿入向けデータ保持手段及び削除向けデータ保持手段がどういう構造であるかは無関係にこれらをまとめて1つのオブジェクトとして扱うことができる。
ここでロックに関して説明する。2相ルールによるロック方式では、書き込み操作は、操作対象に対して更新(X)ロックを、読み出し操作は、操作対象に対して参照(S)ロックをそれぞれ確保することにより、対象を予約してから、操作する。あるトランザクションT1がある種類のロックをしたときに、他のトランザクションT0がその対象に対してすでにある種類のロックをしているときの結果は、表1のようになる。
Figure 2009026334
表1において、○はロックが共存できることを表し、トランザクションT1は、操作対象をロックできる。Xはロックが衝突することを表し、トランザクションT1は、衝突の原因となっているロックが放棄され、操作対象をロックできるようになるまで、実行を中断し、待つことになる。
あるトランザクションにおいては、ロックを1つでも放棄したら、それ以降、トランザクションが終了するまで、ロックを確保しない。あるトランザクションの終了時に、そのトランザクションが確保したロックのうち、放棄されていないものが残っていれば、全て放棄される。つまり、トランザクションを複数のロックを確保していく過程と、確保していたロックをはずす過程の2相に分ける。このことにより、トランザクションの直列化可能性が保証される。
また、トランザクション中において異なる種類の操作対象を認める場合、例えば、データベース、データベースを構成する表、表を構成するタプルなどに対する操作を認める場合、複粒度ロックが必要になる。つまり、ある対象への書き込み操作は、その上位の対象に対して、更新の意図があることを表すIXやSIXを確保してから、その対象に対してXロックを確保する。ある対象への読み出し操作は、その上位の対象に対して、参照の意図があることを表すISロックを確保してから、その対象に対してSロックを確保する。表1にこれらの意図的ロックIX,SIX,ISを加えると、表2のようになる。表1と同様に、○はロックが共存できる事を表し、×はロックが衝突することを表す。
Figure 2009026334
以下で本実施形態においてREAD COMMITTEDのアイソレーションレベルを実現する方法について述べる。まず、ロックに関して以下の前提条件がある。
・表にかかるロックはIS、IX、S、SIX、Xのいずれかのモードを持つ。
・タプルにかかるロックはS、Xのいずれかのモードを持つ。
・タプルにかかっているSロックは参照後にいつでも解除することができる。
・タプルにかかっているXロックはトランザクションの終了まで解除できない。
・ファイルにアクセスする前後では、ファイルに排他的なラッチをかける。
データベース操作の種類に応じて手順を述べる。
(検索操作)
0.操作開始前に対象の表にISロックをかける。
1.ファイルにラッチをかける。
2.検索条件に合致するタプルを探す。
3.得られたタプルにSロックをかける。
4.Sロックをかけることができない場合はファイルへのラッチを解除して1に戻る。
5.タプルを検索結果に加える。
6.タプルへのロックを解除する。
7.ファイルへのラッチを解除する。
(挿入操作)
0.操作開始前に対象の表にIXロックをかける。
1.ファイルにラッチをかける。
2.新たなタプルIDを取得する。
3.そのタプルにXロックをかける。
4.ログにタプル挿入を記録する。
5.ファイルにタプルを挿入する。
6.ファイルへのラッチを解除する。
(更新操作)
0.操作開始前に対象の表にIXロックをかける。
1.ファイルにラッチをかける。
2.更新対象の条件に合致するタプルを探す。
3.得られたタプルにXロックをかける。
4.Xロックをかけることができない場合はファイルへのラッチを解除して1に戻る。
5.ログにタプル更新を記録する。
6.タプルの更新を実行する。
7.ファイルへのラッチを解除する。
(削除操作)
0.操作開始前に対象の表にIXロックをかける。
1.ファイルにラッチをかける。
2.削除対象の条件に合致するタプルを探す。
3.得られたタプルにXロックをかける。
4.Xロックをかけることができない場合はファイルへのラッチを解除して1へ戻る。
5.ログにタプル削除を記録する。
6.タプルの削除を実行する。
7.ファイルへのラッチを解除する。
トランザクションの終了に際しては以下の処理を行う。
(コミット)
0.変更操作の前に対象の表にIXロックがかかっている。
1.ログにコミットを記録する。
2.コミットしたトランザクションが要求したロックを全て解除する。
(ロールバック(アボート))
0.変更操作の前に対象の表にIXロックがかかっている。
1.ログにロールバックを記録する。
2.ログを参照しながら、データ操作をUNDOする。その際、必要なファイルへのラッチを行う。
3.ロールバックしたトランザクションが要求したロックを全て解除する。
<他のシステム構成>
図5は、本発明の他の実施形態に係るデータベース管理システムの機能を説明するためのブロック構成図である。以下、リレーショナルデータベースを代表させて説明するが、通常のデータベースにも本実施形態に係る発明は適用可能である。データベース操作要求入力手段1からデータベースに対する操作要求が入力され、データベース操作要求処理手段3が操作を実行する。検索向けデータ保持手段4は、データベースの検索操作を処理する。また複数の挿入向けデータ保持手段51〜5(しばしば5で代表させて説明する)はデータベースのデータ挿入操作、削除操作及び更新操作を処理し、複数の削除向けデータ保持手段61〜6(しばしば6で代表させて説明する)はデータベースのデータ挿入操作及び削除操作を処理する。なお、ここでデータ保持手段4,5,6として説明しているものは、例えばリレーショナルデータベースにおいては索引ファイル及び索引ファイルを用いた処理を行うための手段であり、データを参照等するために関連付けて保持し、その関連付けに従って各種処理を行なう手段である。データ転送手段7は、挿入向けデータ保持手段51〜5及び削除向けデータ保持手段61〜6からタプルを読みとって検索向けデータ保持手段4に対するタプルの挿入、更新、削除の操作を行う。トランザクション(排他制御)処理手段2は、システムにおけるトランザクション制御を行う。データ保持部管理手段8は、挿入向けデータ保持手段5及び削除向けデータ保持手段6を、同時に実行できるトランザクションの最大数として当該システムに対して定められた個数分、予め作成しておき、トランザクションの開始,コミット,ロールバックに応じて、それぞれの挿入向けデータ保持手段及び削除向けデータ保持手段と各トランザクションの関係を記録し、変更を行う。これら各要素については、この後さらに詳しく説明する。
(データベース操作要求入力手段)
本実施形態におけるデータベース操作要求入力手段1は、複数のユーザからのデータベース操作要求を入力することができるものとする。図2を再度参照すると、ユーザは入力端末21から例えばSQL文の形式で文字列により表現されたデータベース操作要求及びトランザクション処理要求を入力する。データベース操作要求は及びトランザクション処理要求LAN22を通じてサーバーホスト10に送られて処理される。処理の結果は再びLAN22を通じて入力端末21に送られ、当該入力端末21のディスプレイに表示するなどしてユーザに知らせることができる。
本実施形態によれば、複数のユーザから非同期に要求されるデータベース操作要求に対して検索向けデータ保持手段と挿入向けデータ保持手段及び削除向けデータ保持手段の整合性を保ちながら検索にも更新にも高速に応答することができ、ロールバック操作を他のユーザによる操作とは独立に高速に実行することができる。
(データベース操作要求処理手段)
図6乃至図8は、データベース操作要求処理手段の処理手順の一例を示す一連のフロー図である。データベース操作要求の種類によって処理内容が分かれる。この例では表の各タプルは一意に定まるID(タプルID)を付与され、タプルは全てタプルIDで識別される。
データベース操作要求処理手段3がデータベース操作要求処理を受け取ると(ステップS31)、挿入操作かどうかを判断し(ステップS32)、挿入操作の場合は、操作要求が発せられたトランザクションの識別子に対応した挿入向けデータ保持手段(手段51〜5のいずれか)をデータ保持部管理手段8から取得する(ステップS33)。ここで、対応するものがなければ新規に対応させたものを取得する。新しいタプルに対してタプルIDを取得した後(ステップS34)、取得した挿入向けデータ保持手段に対してタプルの挿入操作を実行し(ステップS35)、その結果を返す(ステップS36)。
ステップS32で挿入操作でない場合、この例では検索操作を行う。検索操作では、データ保持部管理手段8からコミット済みの状態にある挿入向けデータ保持手段(手段51〜5のいずれか)及び削除向けデータ保持手段(手段61〜6のいずれか)を取得する(ステップS37,S38)。さらに操作中のトランザクション記述子が記録されている挿入向けデータ保持手段及び削除向けデータ保持手段があればそれも取得する(ステップS39,S40)。コミット済みの状態にある挿入向けデータ保持手段の個数をNi、コミット済みの状態にある削除向けデータ保持手段の個数をNdとする。検索向けデータ保持手段4、コミット済み挿入向けデータ保持手段及びコミット済み削除向けデータ保持手段、操作中のトランザクションの挿入向けデータ保持手段及び削除向けデータ保持手段のそれぞれに検索操作を実行し(ステップS41〜S45)、以下の式(1)の集合演算を行ったものを検索結果とする(ステップS46)。検索操作であるか判断し(ステップS47)、検索操作であればその結果を返す(ステップS36)。
R=Rr+Ri1+Ri2+...+RiNi+Ri−Rd1−Rd2−...−RdNd−Rd (1)
上式(1)において、+は論理和、−は論理差をあらわすものとし、各記号は以下の集合をあらわすものとする。
Rr : 検索向けデータ保持手段の検索結果集合
Ri1 : 1番目の挿入向けデータ保持手段の検索結果集合
Ri2 : 2番目の挿入向けデータ保持手段の検索結果集合(以下同様に3,4,...と続く)
RiNi: Ni番目の挿入向けデータ保持手段の検索結果集合
Rd1 : 1番目の削除向けデータ保持手段の検索結果集合
Rd2 : 2番目の削除向けデータ保持手段の検索結果集合(以下同様に3,4,...と続く)
RdNd: Nd番目の削除向けデータ保持手段の検索結果集合
Ri : 操作中のトランザクションの挿入向けデータ保持手段の検索結果集合
Rd : 操作中のトランザクションの削除向けデータ保持手段の検索結果集合
R : 検索結果集合
検索操作でなければ(ステップS47でNO)、この例では削除操作を実行する。削除操作では、検索操作と同様の手順で選ばれたタプルがコミット済みの挿入向けデータ保持手段にある場合、すなわちRi1,...RiNiのいずれかにある場合は(ステップS48でYES)、その挿入向けデータ保持手段に対して削除処理を実行する(ステップS49)。ない場合は(ステップS48でNO)、操作中のトランザクションの挿入向けデータ保持手段にあるか、すなわちRiにあるかを判断し(ステップS54)、存在すればその挿入向けデータ保持手段に対して削除処理を実行する(ステップS55)。どの挿入向けデータ保持手段にもない場合(ステップS54でNO)、すなわち検索向けデータ保持手段4にある場合には、操作要求が発せられたトランザクションの識別子に対応した削除向けデータ保持手段をデータ保持部管理手段8から取得し、対応するものがなければ新規に対応させたものを取得する(ステップS56)。さらにタプルを削除向けデータ保持手段に対して挿入操作を実行する(ステップS57)。
ステップS49,S55,S57に続き、更新操作であるかを判断し(ステップS50)、更新操作でなければ結果を返す(ステップS36)。更新操作では、検索操作と同様の手順で選ばれたタプルに対して、削除操作と同様の手段で削除操作を実行し、新しい値にタプルを更新する(ステップS51)。さらに、新しい値に変更したタプルに対して、挿入操作と同様の手段で、挿入向けデータ保持手段を取得し(ステップS52)、その挿入向けデータ保持手段にタプルを挿入する操作を実行し(ステップS53)、結果を返す(ステップS36)。
(検索向けデータ保持手段)
検索向けデータ保持手段4は、データベース操作要求処理手段3が実行する検索操作を処理する。また、データ転送手段7が実行する変更操作を処理する。検索向けデータ保持手段4は検索操作を高速で実行できる代わりに変更操作が比較的低速である。例えば、全文検索を行うことができる全文検索サーバを用いることが考えられる。
(挿入向けデータ保持手段)
挿入向けデータ保持手段5はデータベース操作要求処理手段3が実行する挿入操作、削除操作及び更新操作を処理する。また、データ転送手段7が実行する削除操作を処理する。また、データ保持部管理手段8が実行するデータ一括破棄操作を処理する。挿入向けデータ保持手段は変更操作及びデータ一括破棄操作を高速に実行できる。例えばOSが管理する通常のファイルを用いることが考えられる。
通常のファイルのように挿入向けデータ保持手段5が検索操作を実行できない場合は、保持しているタプルを逐次的に返しデータベース操作要求処理手段3が検索条件を評価(全数検索と呼ぶ)する。挿入向けデータ保持手段5が保持するタプル数は検索向けデータ保持手段4が保持するタプル数に比べて非常に少数なので全数検索を行っても応答時間に影響しない。
(削除向けデータ保持手段)
削除向けデータ保持手段6は、データベース操作要求処理手段3が実行する挿入操作を処理する。また、データ転送手段7が実行する削除操作を処理する。また、データ保持部管理手段8が実行するデータ一括破棄操作を処理する。削除向けデータ保持手段は変更操作及びデータ一括破棄操作を高速に実行できる。例えばOSが管理する通常のファイルを用いることが考えられる。
通常のファイルのように削除向けデータ保持手段6が検索操作を実行できない場合は、保持しているタプルを逐次的に返しデータベース操作要求処理手段3が検索条件を評価(全数検索と呼ぶ)する。削除向けデータ保持手段6が保持するタプル数は検索向けデータ保持手段4が保持するタプル数に比べて非常に少数なので全数検索を行っても応答時間に影響しない。
挿入向けデータ保持手段51〜5,削除向けデータ保持手段61〜6,検索向けデータ保持手段4のいずれか1又は複数は、それ自体が独立して動作可能にデータベース管理システムを構成することができるものであってよい。例えば、検索向けデータ保持手段4自体だけが、或いは挿入向けデータ保持手段51〜5及び削除向けデータ保持手段61〜6自体がデータベース管理システムによって実現されているような構成が挙げられる。このようなデータ保持手段4,5,6のいずれかを本発明のデータベース管理システムに適用すればよい。すなわち、既存のデータベース管理システムで検索は高速だが更新が比較的低速であるようなものに対して、そのデータベース管理システムに特別な変更を施すことなく、更新要求への応答を向上することができる。また、逆に既存のデータベース管理システムの更新応答が高速ならば、検索が高速なデータ保持手段と組み合わせることによって、更新応答性能を生かしながら検索要求への応答を向上することができる。
また、挿入向けデータ保持手段51〜5及び/又は削除向けデータ保持手段61〜6がメモリ上にあるようにしてもよい。メモリが大量にある場合に、変更向けデータ保持手段、すなわち挿入向けデータ保持手段51〜5,削除向けデータ保持手段61〜6の一部又は全部をメモリ上で利用することで更新性能の著しい向上が実現できる。
また、検索向けデータ保持手段4及び挿入向けデータ保持手段5及び削除向けデータ保持手段6は、属性値の特性に応じてその形態を選定することが好ましく、例えばデータ量が少ない属性値については上述のごとくのメモリ上で挿入向けデータ保持手段5及び削除向けデータ保持手段6を用いることによって性能の向上が実現できる。
(データ転送手段)
図9は、データ転送手段の処理手順の一例を説明するためのフロー図である。データ転送手段7には転送の対象となる操作を行ったトランザクション識別子が指定される。データ転送手段7は、データ保持部管理手段8から指定されたトランザクション識別子が記録されている挿入向けデータ保持手段及び削除向けデータ保持手段を取得する。取得した削除向けデータ保持手段からタプルを順次読み込み、その値にしたがって検索向けデータ保持手段4から削除し、反映が終わったタプルを削除向けデータ保持手段から削除する。次に、取得した挿入向けデータ保持手段からタプルを順次読み込み、そのタプルを検索向けデータ保持手段4に挿入し、反映が終わったタプルを挿入向けデータ保持手段から削除する。転送が完了するとデータ保持部管理手段8に転送終了を伝える。
図9において、まず、データ転送手段7はデータ保持部管理手段8から指定されたトランザクション識別子が記録されている削除向けデータ保持手段を取得する(ステップS61)。取得できれば(ステップS62でYES)、取得した削除向けデータ保持手段からタプルを順次読み込み(ステップS63)、その値にしたがって検索向けデータ保持手段4から削除し、反映が終わったタプルを削除向けデータ保持手段から削除する(ステップS64)。その後、及びステップS62でNOの場合、データ保持部管理手段8から指定されたトランザクション識別子が記録されている挿入向けデータ保持手段を取得する(ステップS65)。取得できなければ(ステップS66でNO)ステップS69へ進む。取得できれば(ステップS66でYES)取得した挿入向けデータ保持手段からタプルを順次読み込み(ステップS67)、そのタプルを検索向けデータ保持手段4に挿入し、反映が終わったタプルを挿入向けデータ保持手段から削除する(ステップS68)。転送が完了するとデータ保持部管理手段8に、データ保持手段の識別子とともに転送終了を伝え(ステップS69)、処理を終了する。
(データ保持部管理手段)
本発明に係るデータ保持部管理手段8は、変更向けデータ保持手段5,6を予め作成し、それらと各トランザクションとの関係を記録、変更するものであるが、他の実施形態におけるデータ保持部管理手段8では、それぞれの挿入向けデータ保持手段51〜5(又は削除向けデータ保持手段61〜6)について、対応するトランザクションの識別子とともに、「未使用」,「使用中」,「コミット済み」,「転送中」の別を保持するようにし、さらに、データベース操作要求処理手段3にタプル挿入要求(又はタプル削除要求)があった場合に、次の(1)〜(3)の処理を実行する。
(1)未使用の挿入向けデータ保持手段(又は削除向けデータ保持手段)があれば、それを使用中の状態にして要求を発したトランザクションの識別子を記録し、(2)未使用の挿入向けデータ保持手段(又は削除向けデータ保持手段)が1つもなければ、コミット済みの挿入向けデータ保持手段(又は削除向けデータ保持手段)の中から検索向けデータ保持手段4へのデータ転送を行うものを1つ選び、転送中の状態にした上で、データ転送手段7によりデータ転送を行った後、それを未使用の状態にして要求を発したトランザクションの識別子を記録し、(3)未使用又はコミット済みの挿入向けデータ保持手段(又は削除向けデータ保持手段)が1つもない場合は少なくとも1つの挿入向けデータ保持手段(又は削除向けデータ保持手段)が未使用又はコミット済みになるまで待ってからそれに対して、上記(1)又は(2)と同様の操作を行う。
そして、データベース操作要求処理手段3は、その要求を発したトランザクションの識別子が記録されている挿入向けデータ保持手段(又は削除向けデータ保持手段)にタプルを挿入(又は削除)する。データ保持部管理手段8は、トランザクション処理手段2にトランザクションのコミット要求があった場合に、その要求を発したトランザクションの識別子が記録されている挿入向けデータ保持手段(又は削除向けデータ保持手段)の状態をコミット済みにし、トランザクション処理手段2にトランザクションのロールバック要求があった場合に、その要求を発したトランザクションの識別子が記録されている挿入向けデータ保持手段(又は削除向けデータ保持手段)のデータを全て一括して破棄した上でその状態を未使用にする。
本実施形態によれば、異なるトランザクションによる挿入(又は削除)操作に影響されることなくタプル挿入(又はタプル削除)を高速に行うことができ、ロールバック操作はデータ保持手段が保持するデータを一括して破棄することで行えるので通常の変更操作より高速に行うことができ、更新要求及びロールバック操作への応答を向上することができる。
また、他の実施形態として、データ保持部管理手段8が管理する挿入向けデータ保持手段及び削除向けデータ保持手段はシステム起動時には存在しておらず、上述の(3)で未使用又はコミット済みの挿入向けデータ保持手段又は削除向けデータ保持手段が1つもない場合に、挿入向けデータ保持手段の数又は削除向けデータ保持手段の数が所定数を超えていなければ新たに挿入向けデータ保持手段又は削除向けデータ保持手段を作成してそれを使用し、その数が所定数を超えているときには少なくとも1つの挿入向けデータ保持手段又は削除向けデータ保持手段が未使用又はコミット済みになるまで待つようにしてもよい。本実施形態においては、コミット済みの挿入向けデータ保持手段又は削除向けデータ保持手段についてデータ転送が完了したとき、或いは使用中の挿入向けデータ保持手段又は削除向けデータ保持手段と対応しているトランザクションにロールバック要求があったときに、そのデータ保持手段を抹消するものとする。
本実施形態によれば、挿入向けデータ保持手段及び削除向けデータ保持手段の作成が高速に行える場合は同時に発生するトランザクションの数に応じて適切な数のデータ保持手段を管理することができ、無駄なリソースを消費することなく更新要求及びロールバック操作への応答を向上することができる。
また、他の実施形態として、データ保持部管理手段8が時間間隔を保持することにより、コミット済みの挿入向けデータ保持手段のデータ転送をタプル挿入やタプル削除要求時に行うのではなく、データ保持部管理手段8がその保持する時間間隔を経過するごとにコミット済みであるような挿入向けデータ保持手段又は削除向けデータ保持手段について、データ転送手段7によりデータ転送を実行した上で、データ転送を実行した挿入向けデータ保持手段又は削除向けデータ保持手段の状態を未使用に変更するようにしてもよい。
本実施形態によれば、自動的にコミット済みのデータ保持手段からデータ転送することにより未使用のデータ保持手段の割合を増やし、更新要求への応答をさらに向上することができる。
さらに他の実施形態として、データ保持部管理手段8が、未使用の挿入向けデータ保持手段又は削除向けデータ保持手段の数が一定数以下になるごとにコミット済みであるような挿入向けデータ保持手段又は削除向けデータ保持手段について、データ転送手段7によりデータ転送を実行した上で、データ転送を実行した挿入向けデータ保持手段又は削除向けデータ保持手段の状態を未使用に変更するようにしてもよい。
本実施形態によれば、同時に発生するトランザクションの数に応じて自動的にデータ転送することにより、データ転送手段7によって消費されるリソースを必要なときに効果的に使用することができる。
上述した各実施形態におけるデータ保持部管理手段8に関し、その処理の一例を説明する。データ保持部管理手段8には、データ保持手段を取得したいトランザクションの識別子又は取得したいデータ保持手段の状態と、対応するものがないときに新規に対応させたものを取得するか取得せずに対応がないことを知らせるかの別が指定される。データ保持部管理手段8は、挿入向けデータ保持手段5及び削除向けデータ保持手段6のそれぞれに識別子をつけ、データ保持手段の識別子と未使用/使用中/コミット済み/転送中の状態をハッシュ表Aで記録している。ハッシュ表は周知の技術である。下表3はハッシュ表Aに記録する情報を示している。
Figure 2009026334
また、データ保持部管理手段8はトランザクションの識別子とデータ保持手段の識別子もハッシュ表Bにより記録する。下表4はハッシュ表Bに記録する情報を示している。
Figure 2009026334
データ保持部管理手段8は、トランザクションの識別子が指定されている場合、そのトランザクション識別子に対応するデータ保持手段の識別子をハッシュ表Bから取得する。データ保持手段の識別子が取得できた場合、データ保持手段の識別子の状態をハッシュ表Aから取得し返答する。取得したいデータ保持手段の状態が指定されている場合、ハッシュ表Aを走査して指定された状態と等しければデータ保持手段の記述子の集合に加え、全て走査したときに得られたデータ保持手段の記述子の集合を返答する。データ保持手段の識別子が取得できなかった場合、新規に対応させたものを取得するよう指定されている場合は以下のようにして新規に対応させたものを取得する。
(1)ハッシュ表A全体を走査して未使用の状態にあるデータ保持手段の識別子を探索し、それがあればハッシュ表Aに記録されている状態を使用中に変更した上でハッシュ表Bに指定されたトランザクション識別子との対応を記録し、そのデータ保持手段を返答する。
(2)未使用の状態にあるデータ保持手段がなければハッシュ表A全体を走査して転送中の状態にあるデータ保持手段を探索し、それがあればデータ転送手段から転送終了の指示がくるまで待った上で(1)と同様にハッシュ表A及びハッシュ表Bに記録し、返答する。
(3)未使用のものも転送中のものもなければハッシュ表A全体を走査してコミット済みの状態にあるデータ保持手段を探索し、それがあればデータ転送手段にそのデータ保持手段と対応されているトランザクション識別子を指定してデータ転送の開始を指示し、転送終了まで待った上で(1)と同様にハッシュ表A及びハッシュ表Bに記録し、返答する。
(4)未使用のものも転送中のものもコミット済みのものもなければ全て使用中なので他のトランザクションの操作により新たに未使用又はコミット済みのものが現れるまで返答を保留する。
データ保持部管理手段8はさらにトランザクション処理手段2から指示されるロールバック処理も行う。ロールバック処理は対象のトランザクションの識別子を指定され、ハッシュ表Bから対応するデータ保持手段の識別子を取得したらそのデータ保持手段に対してデータの一括破棄を指示した上でハッシュ表Aに未使用の状態を記録する。
図10乃至12は、データ保持部管理手段の処理手順の一例を説明するための一連のフロー図である。以上のデータ保持部管理手段8の一例を図10乃至図12に基づいて説明する。まず、データ保持部管理手段8は、処理要求を受け取ると(ステップS71)、ロールバック処理の要求かを判断し(ステップS72)、ロールバック処理要求であれば、ハッシュ表Bから指定されたトランザクションに対応する挿入向けデータ保持手段及び削除向けデータ保持手段の識別子を得る(ステップS73)。次に挿入向けデータ保持手段及び削除向けデータ保持手段にデータ一括破棄を実行する(ステップS74)。次にハッシュ表Aで挿入向けデータ保持手段の識別子と対応する状態の情報を「未使用」に変更し(ステップS75)、ハッシュ表Aで削除向けデータ保持手段の識別子と対応する状態の情報を「未使用」に変更する(ステップS76)。
ステップS72でロールバック処理要求でないと判断された場合、トランザクションの指定があるかを判断する(ステップS77)。ステップS77でYESの場合、挿入向け取得要求であるかを判断する(ステップS78)。ステップS78でYESの場合、ハッシュ表Bから指定されたトランザクションに対応する挿入向けデータ保持手段の識別子を得る(ステップS79)。ステップS78でNOの場合、ハッシュ表Bから指定されたトランザクションに対応する削除向けデータ保持手段の識別子を得る(ステップS82)。ステップS79,S82に関し、取得できたのであれば(ステップS80でYES)、結果を返し(ステップS81)、処理を終了する。取得できなければ、新たに対応させる指定があるかを判断する(ステップS83)。新たに対応させる指定がなければ、取得できなかったことを結果として(ステップS84)、結果を返し(ステップS81)、処理を終了する。
ステップS77においてトランザクションの指定がないと判断された場合、ハッシュ表Aからエントリを1つ得(ステップS85)、指定された挿入/削除の別とエントリの挿入/削除の別が一致しているかを判断する(ステップS86)。一致していれば、指定された状態とエントリの状態が一致しているかを判断し(ステップS87)、データ保持手段の識別子を結果に加える(ステップS88)。ステップS88の後、及びステップS86でNOの場合、及びステップS87でNOの場合、未処理のエントリが残っているかを判断し(ステップS89)、残っていればステップS85に戻り、残っていなければステップS81へ進み結果を返して処理を終了する。
ステップS83において新たに対応させる指定があると判断された場合、ハッシュ表Aからエントリを1つ得(ステップS84)、指定された挿入/削除の別とエントリの挿入/削除の別が一致しているかを判断する(ステップS91)。一致していれば、エントリの状態が「未使用」かを判断する(ステップS92)。「未使用」であれば、エントリの識別子を結果とし(ステップS93)、結果を返して(ステップS81)処理を終了する。ステップS92にてNOの場合、エントリの状態が「転送中」又は「コミット済み」かを判断する(ステップS94)。「転送中」又は「コミット済み」であれば、転送候補に加える(ステップS95)。ステップS95の後、及びステップS91でNOの場合、及びステップS94でNOの場合、未処理のエントリが残っているかを確認し(ステップS96)、残っていればステップS90に戻る。残っていなければ、ステップS97に進み、転送候補が空でないかを判断する。空であれば、「未使用」又は「コミット済み」のデータ保持手段が現れるまで処理を中断する(ステップS101)。ステップS97にて空でないと判断された場合、転送候補の先頭が「コミット済み」かを判断する(ステップS98)。「コミット済み」であれば、転送候補の先頭に転送を実行し(ステップS99)、データ転送手段から転送終了の通知が来るのを待ち(ステップS100)、ステップS81で結果を返し、処理を終了する。一方、「コミット済み」でなければ、ステップS99を経ずにステップS100へと進む。
(トランザクション処理手段)
トランザクション処理手段2は非同期に要求される検索操作と変更操作をデータの一貫性を保つように実行順序を制御するための排他制御と、変更操作を中止したときにデータ保持部管理手段8にデータの一括破棄の指示を行う。排他制御は複数のユーザから要求されるデータベース操作間の排他制御のほかに、データベース操作要求処理手段3とデータ転送手段7の間の排他制御にも用いられる。
上述した複粒度ロック([1]参照)を用いてさまざまなアイソレーションレベルを実現する。ロックの対象は表、タプル、ファイルである。本発明におけるファイルは検索向けデータ保持手段、挿入向けデータ保持手段及び削除向けデータ保持手段からなるものとみなすことができる。排他制御とロギングにおいてはファイルを構成する検索向けデータ保持手段、挿入向けデータ保持手段及び削除向けデータ保持手段がどういう構造であるかは無関係にこれらをまとめて1つのオブジェクトとして扱うことができる。本発明においてREAD COMMITTEDのアイソレーションレベルを実現する方法については、基本的に上述した通りである。検索操作,挿入操作,更新操作,削除操作,コミットに関する手順は同じであるが、ロールバック(アボート)については以下のようになる。
(ロールバック(アボート))
0.変更操作の前に対象の表にIXロックがかかっている。
1.ログにロールバックを記録する。
2.ログを参照しながら、データ操作をUNDOする。その際、必要なファイルへのラッチを行う。ファイルが挿入向けデータ保持手段又は削除向けデータ保持手段ならばUNDOではなくファイルのデータ一括破棄を行う。
3.ロールバックしたトランザクションが要求したロックを全て解除する。
以上、本発明のデータベース管理システムを中心に各実施形態を説明してきたが、本発明は、これらデータベース管理システムにおける処理手順を含んでなるデータベース管理方法、これらデータベース管理システムとして又は該データベース管理システムの各手段として機能させるためのプログラムとしても、或いは、そのプログラムを記録したコンピュータ読み取り可能な記録媒体としての形態も可能である。
本発明によるデータベース管理の機能を実現するためのプログラムやデータを記憶した記録媒体の実施形態を説明する。記録媒体としては、具体的には、CD−ROM、光磁気ディスク、DVD−ROM、FD、フラッシュメモリ、及びその他各種ROMやRAM等が想定でき、これら記録媒体に上述した本発明の各実施形態のシステムの機能をコンピュータに実行させ、データベース管理の機能を実現するためのプログラムを記録して流通させることにより、当該機能の実現を容易にする。そしてコンピュータ等の情報処理装置に上記のごとくの記録媒体を装着して情報処理装置によりプログラムを読み出すか、若しくは情報処理装置が備えている記憶媒体に当該プログラムを記憶させておき、必要に応じて読み出すことにより、本発明に係わるデータベース管理機能を実行することができる。
本発明の一実施形態に係るデータベース管理システムの機能を説明するためのブロック構成図である。 本発明を具体化するシステム構成の一例を示す図である。 データベース操作要求処理手段の処理手順の一例を示すフロー図である。 データ転送手段の処理手順の一例を説明するためのフロー図である。 本発明の他の実施形態に係るデータベース管理システムの機能を説明するためのブロック構成図である。 データベース操作要求処理手段の処理手順の一例を示すフロー図である。 図6に続くフロー図である。 図7に続くフロー図である。 データ転送手段の処理手順の一例を説明するためのフロー図である。 データ保持部管理手段の処理手順の一例を説明するためのフロー図である。 図10に続くフロー図である。 図10に続くフロー図である。
符号の説明
1 データベース操作要求入力手段
2 トランザクション処理手段
3 データベース操作要求処理手段
4 検索向けデータ保持手段
5,51〜5 挿入向けデータ保持手段
6,61〜6 削除向けデータ保持手段
7 データ転送手段
8 データ保持部管理手段
10 サーバホスト
11 CPU
12 メモリ
12a プログラム領域
12b データ領域
13 ハードディスク
14 バス
21 入力端末
22 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記載のデータベース管理システムにおいて、
    前記データ保持部管理手段は、未使用の挿入向けデータ保持手段又は削除向けデータ保持手段の数が一定数以下になるごとにコミット済みであるような挿入向けデータ保持手段又は削除向けデータ保持手段について、前記データ転送手段によりデータ転送を実行した上で、データ転送を実行した挿入向けデータ保持手段又は削除向けデータ保持手段の状態を未使用に変更することを特徴とするデータベース管理システム。
JP2008271520A 2001-03-19 2008-10-22 書き込み遅延データベース管理システム、及びプログラム Expired - Lifetime JP4287900B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008271520A JP4287900B2 (ja) 2001-03-19 2008-10-22 書き込み遅延データベース管理システム、及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001078026 2001-03-19
JP2008271520A JP4287900B2 (ja) 2001-03-19 2008-10-22 書き込み遅延データベース管理システム、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002044294A Division JP2002351715A (ja) 2001-03-19 2002-02-21 書き込み遅延データベース管理システム

Publications (2)

Publication Number Publication Date
JP2009026334A true JP2009026334A (ja) 2009-02-05
JP4287900B2 JP4287900B2 (ja) 2009-07-01

Family

ID=40398032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008271520A Expired - Lifetime JP4287900B2 (ja) 2001-03-19 2008-10-22 書き込み遅延データベース管理システム、及びプログラム

Country Status (1)

Country Link
JP (1) JP4287900B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248584A (ja) * 2010-05-26 2011-12-08 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データサーバ、トランザクションサーバ、分散データ管理方法、プログラム
WO2012108015A1 (ja) * 2011-02-09 2012-08-16 富士通株式会社 データ同期方法、データ同期プログラム、及びデータ同期制御装置
JP2018504692A (ja) * 2014-12-24 2018-02-15 華為技術有限公司Huawei Technologies Co.,Ltd. トランザクション処理方法及び装置、並びにコンピュータシステム
US10002158B2 (en) 2014-11-04 2018-06-19 International Business Machines Corporation Apparatus and method for processing a query

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5482353B2 (ja) 2009-07-06 2014-05-07 株式会社リコー 中継機器、中継方法およびプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248584A (ja) * 2010-05-26 2011-12-08 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理システム、データサーバ、トランザクションサーバ、分散データ管理方法、プログラム
WO2012108015A1 (ja) * 2011-02-09 2012-08-16 富士通株式会社 データ同期方法、データ同期プログラム、及びデータ同期制御装置
JPWO2012108015A1 (ja) * 2011-02-09 2014-07-03 富士通株式会社 データ同期方法、データ同期プログラム、及びデータ同期制御装置
US10002158B2 (en) 2014-11-04 2018-06-19 International Business Machines Corporation Apparatus and method for processing a query
US10120894B2 (en) 2014-11-04 2018-11-06 International Business Machines Corporation Apparatus and method for processing a query
JP2018504692A (ja) * 2014-12-24 2018-02-15 華為技術有限公司Huawei Technologies Co.,Ltd. トランザクション処理方法及び装置、並びにコンピュータシステム
KR101910759B1 (ko) 2014-12-24 2018-12-19 후아웨이 테크놀러지 컴퍼니 리미티드 트랜잭션 처리 방법, 장치 및 컴퓨터 시스템
US10467044B2 (en) 2014-12-24 2019-11-05 Huawei Technologies Co., Ltd. Transaction processing method and apparatus, and computer system

Also Published As

Publication number Publication date
JP4287900B2 (ja) 2009-07-01

Similar Documents

Publication Publication Date Title
US6772155B1 (en) Looking data in a database system
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
US7240054B2 (en) Techniques to preserve data constraints and referential integrity in asynchronous transactional replication of relational tables
JP4833590B2 (ja) 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization)
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
CA2537411C (en) A database management system with efficient version control
US5123104A (en) Method and apparatus for concurrent modification of an index tree in a transaction processing system utilizing selective indication of structural modification operations
EP2356560B1 (en) Atomic multiple modification of data in a distributed storage system
US6868414B2 (en) Technique for serializing data structure updates and retrievals without requiring searchers to use locks
US7194589B2 (en) Reducing disk IO by full-cache write-merging
JP4287900B2 (ja) 書き込み遅延データベース管理システム、及びプログラム
Taniar et al. A taxonomy of indexing schemes for parallel database systems
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) 書き込み遅延データベース管理システム
JP4289834B2 (ja) データベース管理システム、データベース管理プログラムおよび記録媒体
JP4245282B2 (ja) 書き込み遅延データベース管理方法、装置、プログラム、及び記録媒体
JP2002063055A (ja) 書き込み遅延データベース管理方式及びシステム
CN117687807A (zh) 数据处理方法、装置、电子设备及存储介质
JPH035843A (ja) ファイルのブロック排他方式

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090324

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090327

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

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4287900

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

EXPY Cancellation because of completion of term