JP3858648B2 - データ格納領域管理方法および装置 - Google Patents
データ格納領域管理方法および装置 Download PDFInfo
- Publication number
- JP3858648B2 JP3858648B2 JP2001276247A JP2001276247A JP3858648B2 JP 3858648 B2 JP3858648 B2 JP 3858648B2 JP 2001276247 A JP2001276247 A JP 2001276247A JP 2001276247 A JP2001276247 A JP 2001276247A JP 3858648 B2 JP3858648 B2 JP 3858648B2
- Authority
- JP
- Japan
- Prior art keywords
- page
- data
- continuous
- area
- data storage
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、データ格納領域管理方法および装置に関し、特にデータベースシステムでデータを格納する領域を管理するデータ格納領域管理方法および装置に関するものである。
【0002】
【従来の技術】
データベースシステムで扱うデータ量の増大とともに、そのデータに対する処理時間が増加するため、従来より、その処理効率の改善を目的としたデータ格納領域管理方式が提案されている(例えば、特開昭59−020068号公報など参照)。
このデータ格納領域管理方式は、1つのデータ格納領域を構成する各ページのヘッダ部に当該ページのページ番号、前ページ番号、次ページ番号およびページ内レコード数を表すページ情報が付加されている順編成ファイルと、ファイルアクセスの際の情報を有するファイルコントロールブロックと、これを記憶する補助記憶装置と、演算制御装置とファイルコントロールブロックを主記憶にロードする手段と、ファイルコントロールブロックを更新する手段と、更新ページのページ情報を変更する追加/削除手段とから構成されている。
【0003】
このような構成を有する従来のデータ格納領域管理方式では、データ削除を行う際、まずレコード削除時には削除位置(ページ)を決定した後、該当ページに削除対象レコードしか格納されていなかった場合には、前のページのヘッダ部にある次ページ番号と後ろのページのヘッダ部にある前ページ番号を更新して、該当ページを空きページとする。
また、該当ページに削除対象レコード以外にもレコードが存在している場合は、該当ページと隣接ページのレコードがひとつのページに収容できるような際にひとつのページにレコードを寄せ集め(併合処理)、この併合によって不要になったページを空きページとするものとなっていた。
【0004】
【発明が解決しようとする課題】
しかしながら、このような従来のデータ格納領域管理方法では、次のような問題点があった。
第1の問題点は、データ削除処理時に削除対象レコードのあったページ自身、あるいは併合処理によって不要になったページを空きページとするための処理に時間が掛かるということである。その理由は、不要となったページを空きページとする際には、ページ間チェーンの更新のために、常に当該ページ、前ページおよび次ページの3ページ分にわたってページ情報を更新しなければならないためである。
【0005】
第2の問題点は、ページ間チェーンを辿ってページ削除処理を繰り返すためにデータベースに対するIO回数が増加し、それに比例してデータ削除処理に時間が掛かるようになるということである。その理由は、ページ間チェーンはファイル内のセクタ・トラック・シリンダ順に並んで昇順に繋がっているわけではなく、従って、ページ削除処理を行うにはページ単位でのIO要求を発行せざるを得ないからである。
本発明はこのような課題を解決するためのものであり、大量データを一括削除する際の処理時間を大幅に削減できるデータ格納領域管理方法および装置を提供することを目的としている。
【0006】
【課題を解決するための手段】
このような目的を達成するために、本発明にかかるデータ格納領域管理方法は、各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理方法であって、データ格納領域管理装置で、同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを1つの連続領域としてそれぞれ管理し、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが1つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離すようにしたものである。
【0007】
連続領域の管理については、データ格納領域管理装置で、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる連続領域の終了ページ番号と、当該連続領域の後方に繋がる連続領域の開始ページ番号とを領域管理情報として保持することにより、各連続領域を管理するようにしてもよい。
【0008】
連続領域を単位として削除する際、データ格納領域管理装置で、領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページをデータベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定するようにしてもよい。
【0009】
連続領域を単位として削除する際、データ格納領域管理装置で、領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページをデータベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定することを特徴とするデータ格納領域管理方法。
【0010】
また、本発明にかかるデータ格納領域管理装置は、各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理装置であって、同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを1つの連続領域としてそれぞれ管理するレコード処理制御手段と、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが1つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離す連続ページ削除手段とを備えるものである。
【0011】
連続領域の管理については、レコード処理制御手段で、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる前方連続領域の終了ページ番号からなる前方チェーン番号と、当該連続領域の後方に繋がる後方連続領域の開始ページ番号からなる後方チェーン番号とを領域管理情報として保持することにより、各連続領域を管理するようにしてもよい。
【0012】
連続領域を単位として削除する際、領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページをデータベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定するようにしてもよい。
【0013】
連続領域を単位として削除する際、連続ページ削除手段で、領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページをデータベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、データベースファイルへ書き出すとともに、領域管理情報のうち後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定するようにしてもよい。
【0014】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図1は本発明の一実施の形態にかかるデータ格納領域管理装置を示すブロック図である。
このデータ格納領域管理装置10は、レコード処理制御手段1、追加ページ確保手段2、領域確保手段3、領域間チェーン更新手段4、および連続ページ削除手段5から構成されている。
【0015】
データ格納領域管理装置10は、全体としてコンピュータから構成されており、レコード処理制御手段1、追加ページ確保手段2、領域確保手段3、領域間チェーン更新手段4および連続ページ削除手段5の各機能手段は、各種プログラムを実行するマイクロプロセッサやその周辺回路からなるハードウェア資源と、これら機能手段での処理を記述したプログラムとが協働することにより実現されている。
【0016】
データベース7は、データ格納領域管理装置10に接続されたハードディスクなどの情報記憶装置から構成されている。このデータベース7には、データ格納領域として情報記憶装置内の記憶領域に物理的に連続して設けられた複数のデータページからなり、所望のデータレコードを格納するためのデータページ群72と、このデータページ群72の先頭ページ番号および最終ページ番号を保持する管理レコード71が設けられている。
また、管理レコード71は、同一データベースファイルで用いられる、トラック単位など物理的に連続する複数ページをそれぞれ1つの連続領域として管理するための領域管理情報6を保持している。
【0017】
図7に管理レコードとデータページ群との関連および領域管理情報6の構成例を示す。
ここでは、データページ群72に複数の連続領域01,02,03が設けられており、それぞれページ「a」〜「c」,「d」〜「f」,「g」〜「i」から構成されている。これらページ「a」〜「i」のうち、ページ「a」〜「h」はデータが格納されているデータページであり、ページ「i」はデータが格納されていない空きページである。
【0018】
管理レコード71には当該格納領域の先頭ページ番号「a」と最終ページ番号「h」とが管理されている。各連続領域は、領域管理情報6に記録されている属性データ61により、各連続領域ごとに、その開始ページ番号、終了ページ番号、前方チェーン番号および後方チェーン番号が管理されている。
また、各データページには、複数のデータレコードのほか、そのヘッダ部には一般的なページ間チェーンのための前ページ番号や後ページ番号などの情報がそれぞれ格納されている(図示せず)。
【0019】
レコード処理制御手段1は、管理レコード71さらには領域管理情報6を用いてデータベースファイルで用いる各データページの状態を管理し、利用者から上位アプリケーション9を介して、データベースファイルに対するレコード追加、更新処理等の処理要求が与えられた際に、レコード格納可能な領域に処理対象レコードを追加、更新処理を施すための制御を行う。また、レコード削除処理要求が与えられた際、削除条件に合うレコードが含まれるデータページ区間が、1つまたは複数の連続領域を含む場合に、該当連続領域に対する一括削除処理を施すための制御も行う。
【0020】
追加ページ確保手段2は、追加処理の要求が与えられた際、レコード格納のための空き領域が、ページ間チェーンの最後にあるデータ格納ページに存在しない場合に、レコード処理制御手段1から起動され、確保されている連続領域から空きページをサーチし、ページ間チェーンでデータベースファイルとして確保された一連のページにリンクを張るための制御を行う。
領域確保手段3は、追加ページ確保手段2で施した空きページサーチ処理で、連続領域内には空きページが存在しない場合に、新たな連続路領域を確保するための制御を行う。
【0021】
領域間チェーン更新手段4では、データ追加処理の途中で追加ページ確保手段2が起動された後に動作し、2つの連続領域にページ間チェーンがまたがる場合の領域管理情報のメンテナンス処理を施すための制御を行う。
連続ページ削除手段5では、削除処理の要求が与えられた際に、連続領域を一括削除するため準備処理の制御を行う。特にデータページ間のチェーンを辿って順削除を行う場合に、予め領域管理情報6に登録されている情報に基づいて削除要求範囲内に含まれるようなデータ格納連続領域をページ間チェーンから切り離すための制御を行う。
【0022】
次に、図面を参照して、本発明にかかるデータ格納領域管理装置の動作について詳細に説明する。
まず、図2〜図5を参照して、データ格納領域管理装置におけるレコード追加処理について説明する。図2はレコード追加処理の全体動作を示すフローチャート、図3は追加ページ確保手段2の処理動作を示すフローチャート、図4は領域確保手段3の処理動作を示すフローチャート、図5は領域間チェーン更新手段4の処理動作を示すフローチャートである。
【0023】
利用者から上位アプリケーション9を介してレコード追加処理の実行要求が与えられると、レコード処理制御手段1では、処理対象となるレコードに関する領域管理情報が格納されている管理レコード71内の領域管理情報6をデータベース7から読み込む(ステップ100)。このとき、対象レコードのデータページ間チェーンの最終ページに、当該最終ページの更新を禁止するための更新ロックを掛けて読み込む。
【0024】
そして、上記最終ページ内に追加対象のデータレコードが格納できる空き領域があり、格納可能レコード数を越えていない場合にのみ、当該データの最終ページにデータレコードを格納可能と判断し(ステップ101:YES)、追加データレコードをその最終ページへ格納し(ステップ109)、レコード追加処理を終了する。
また当該データの最終ページにデータレコードを格納できない場合は(ステップ102:NO)、追加ページ確保手段2を起動して、該当データ最終ページが属する最終連続領域内から空きページ(未使用ページ)を探し出す(ステップ103)。
【0025】
このとき、最終連続領域内に空きページがあれば(ステップ102:YES)、その空きページを新たなデータ最終ページとして確保し(ステップ103)、ページ間チェーンのメンテナンス処理を行わせる(ステップ104)。
そして、制御が追加ページ確保手段2からレコード処理制御手段1に戻ってきた後に新規に確保した未使用ページすなわちデータ最終ページに対しデータを挿入する処理を行い(ステップ109)、レコード追加処理を終了する。
【0026】
一方、追加ページ確保手段2を起動した結果、追加ページ確保手段2により該当最終連続領域に空きページがないと判断された場合には(ステップ102:NO)、領域確保手段3に対し、ファイル内から連続未使用ページを探し出すとともに、その連続未使用ページを新たな最終連続領域として確保し、その属性データを領域管理情報6に登録する処理を行わせる(ステップ105)。
【0027】
レコード処理制御手段1では、制御が領域確保手段3からレコード処理制御手段1に戻ってきた後、改めて追加ページ確保手段2を動作させて、その空きページを新たなデータ最終ページとして確保し(ステップ106)、ページ間チェーンのメンテナンス処理を行わせる(ステップ107)。そして領域間チェーン更新手段4を起動して、旧最終領域の属性データである後方チェーン番号として新たに確保した最終ページ番号を記録するとともに、新たな最終領域の属性データである前方チェーン番号として旧最終ページ番号を記録し、領域間チェーンのメンテナンス処理を行わせた後(ステップ108)、新規確保した未使用ページすなわちデータ最終ページにデータを挿入する処理を行い(ステップ109)、レコード追加処理を終了する。
【0028】
次に、図3を参照して、追加ページ確保手段2の処理動作について説明する。図3は追加ページ確保手段の処理動作を示すフローチャートである。
追加ページ確保手段2は、レコード処理制御手段1によってレコード格納のために必要となる空き領域がデータ最終ページに存在しない場合に起動され、空きページを最終連続領域中から探して、その空きページを最終ページの直後に挿入し、これを新たなデータ最終ページとし、ここに追加要求のあったデータレコードの格納する。
【0029】
レコード処理制御手段1からの起動に応じて、追加ページ確保手段2では、図3に示すように、まず、確保されている最終連続領域中から空きページを探し出し、これを更新ロックを掛けて読み込む(ステップ201)。
そして、この空きページ(以降、新規確保ページという)をデータ最終ページとするために、当該新規確保ページのヘッダ部にある次ページ番号格納域に、ページ間チェーンの一番最後であることを示すNULL値をセットするとともに、該ページのヘッダ部にある前ページ番号域に、旧データ最終ページのページ番号をセットする(ステップ202)。
【0030】
次に、旧最終ページを読み込み、該ページのヘッダ部にある次ページ番号領域に新規確保ページのページ番号をセットした後(ステップ203)、管理レコードをデータベース中から読み込み、データ格納ページ間チェーンの最後にあるページを指し示している領域に新規確保ページのページ番号をセットする(ステップ204)。
【0031】
この結果、新規確保ページのヘッダ部にある次ページ番号格納域にはNULL値が、前ページ番号格納域には旧最終データページ番号がセットされたことになる。
上記ステップ201で最終連続領域中に空きページがひとつも無いと判断された場合には、以降の処理を行わずにその旨を示すリターンコードとともに制御を呼び出し元のレコード処理制御手段1に返す。
【0032】
次に、図4を参照して、領域確保手段3の処理動作について説明する。図4は領域確保手段の処理動作を示すフローチャートである。
領域確保手段3は、追加ページ確保手段2によって最終連続領域に空きページが確保できなかった場合に、レコード処理制御手段1から起動され、連続空きページをファイル中から探し、新たな最終連続領域として確保し、その中の空きページに追加要求のあったデータレコードの格納するための準備処理として呼び出される。
【0033】
レコード処理制御手段1からの起動に応じて、領域管理手段3では、図4に示すように、まず、ファイル内から連続している空きページ群を探し出し、このページ群を新たな最終連続領域(以降、新規確保領域と称す)として確保する(ステップ301)。
次に、この新規確保領域の属性データである開始ページ番号と終了ページ番号を領域管理情報6に登録する(ステップ302)。また、前方チェーン番号と後方チェーン番号を記憶しておくための領域をNULL値で初期化しておく(ステップ303)。
【0034】
この結果、領域管理情報6には、新規確保領域の属性データである開始ページ番号、終了ページ番号には、それぞれ連続空きページ群の最初と最後のページ番号が、また前方ページ番号と後方ページ番号には初期値であるNULL値がセットされたことになる。
この後、追加ページ確保手段2は、制御をレコード処理制御手段1に返し、制御が戻ってきたレコード処理制御手段1は、改めて追加ページ確保手段2を起動する。
【0035】
再起動された追加ページ確保手段2では、直前に領域確保手段3で確保された最終領域内未使用ページのうちの一つを新たなデータ最終ページとして確保し、必要なページ間チェーンのメンテナンス処理(ステップ202,203)および管理レコードの更新処理(ステップ204)を行った後に、制御をレコード処理制御手段1に返す。
【0036】
次に、図5を参照して、領域間チェーン更新手段4の処理動作について説明する。図5は領域間チェーン更新手段の処理動作を示すフローチャートである。
再起動した追加ページ確保手段2から制御が戻ってきたレコード処理制御手段1では、更に領域間チェーン更新手段4を起動して、旧最終連続領域内にある旧データ最終ページと、新規確保領域中にある新規確保ページとを結び付けるためのページ間チェーンを領域間チェーン情報として登録する。
【0037】
領域間チェーン更新手段4では、図5に示すように、まず旧最終領域に対応する属性データを領域管理情報6から見つけ出し、その後方チェーン番号記憶域に、新規確保ページ自身のページ番号をセットする(ステップ401)。
次に、領域確保手段3で確保した新規確保領域に対応する属性データを領域管理情報6から見つけ出し、その前方チェーン番号に、旧最終データページ自身のページ番号をセットし(ステップ402)、制御をレコード処理制御手段1に返す。
【0038】
このレコード処理制御手段1を中心とした追加ページ確保手段2,領域確保手段3および領域間チェーン更新手段4を用いた一連の処理の結果、データページ間チェーンは相互リンクが確立されているのは無論のこと、連続領域間でも相互に最終データページと先頭データページ間のチェーンを持つことになる。
【0039】
次に、図6を参照して、データ格納領域管理装置におけるレコードの一括削除処理について説明する。図6は連続ページ削除手段5の処理動作を示すフローチャートである。
利用者から上位アプリケーション9を介してレコードの一括削除処理の実行要求が与えられた際、レコード処理制御手段1は、削除要求ページの範囲が1つ以上の連続領域を含むような場合には連続ページ削除手段5を起動し、連続領域を一括して削除するための領域管理情報のメンテナンス処理やページ間チェーンのメンテナンス処理をさせる。
その後、連続ページ削除手段5から制御がレコード処理制御手段1に戻ってきた後、ページ間チェーンを辿って各ページ単位に削除処理を行うのではなく、連続領域を一括削除する処理を行なう。
【0040】
レコード処理制御手段1から起動された連続ページ削除手段5では、削除対象である連続領域の属性データを領域管理情報6から読み込む。
そして、前方チェーン番号の示す当該連続領域の直前にある連続領域内の最終データページと後方チェーン番号の示す当該連続領域の直後にある連続領域内の先頭データページとを結びつけるためのページ間チェーンのメンテナンス処理を行い、削除対象である連続領域内の各ページをファイル内未使用ページに戻すために必要な処理を行う。
【0041】
連続ページ削除手段5は、レコード処理制御手段1によって、ひとつあるいは複数の連続領域内にある全ページを一括して削除する際に起動される。
レコード処理制御手段1からの起動に応じて、連続ページ削除手段5では、図6に示すように、まず、削除対象領域の属性データである前方チェーン番号を検査し、NULL値以外のページ番号が登録されているかを判定する(ステップ501)。
【0042】
ここで、上記ステップ501で前方チェーン番号が登録されていた場合は(ステップ501:YES)、該当ページのページ間チェーンを更新するため、まず該当ページをファイルから読み込み(ステップ502)、該当ページのページヘッダ部ある次ページ番号域に、削除対象領域の属性データである後方チェーン番号を転記し(ステップ503)、該当ページをファイルに書き戻す(ステップ504)。
さらに、削除対象領域の一つ前に登録されている連続領域(前方連続領域)の属性データである後方チェーン番号に、削除対象領域の後方チェーン番号を転記する(ステップ505)。
【0043】
一方、ステップ501で、削除対象領域の前方チェーン番号がNULL値であった場合は(ステップ501:NO)、該当連続領域は一番初めに確保された連続領域であると判断し、ステップ502からステップ505を行う代わりに、管理レコードで保持しているデータページ間チェーンの先頭ページ番号域に、削除対象領域の後方チェーン番号を格納する(ステップ506)。
次に、削除対象領域の属性データである後方チェーン番号を検査し、NULL値以外のページ番号が登録されているかを判定する(ステップ507)。
【0044】
ここで、後方チェーン番号が登録されていた場合は(ステップ507:YES)、該当ページのページ間チェーンを更新するため、まず該当ページをファイルから読み込む(ステップ508)。
そして、該当ページのページヘッダ部ある前ページ番号域に、削除対象領域の属性データである前方チェーン番号を転記し(ステップ509)、該当ページをファイルに書き戻す(ステップ510)。
さらに、削除対象領域の一つ後ろに登録されている連続領域(後方連続領域)の属性データである前方チェーン番号に、削除対象領域の前方チェーン番号を転記する(ステップ511)。
【0045】
一方、ステップ507で、削除対象領域の後方チェーン番号がNULL値であった場合は(ステップ507:NO)、該当連続領域は一番後に確保された連続領域、つまり最終連続領域であると判断する。
そして、ステップ508からステップ511を行う代わりに、管理レコードで保持しているデータページ間チェーンの最終ページ番号域に、削除対象領域の前方チェーン番号を格納し(ステップ512)、制御をレコード処理制御手段1に戻す。
【0046】
この結果、データページ間チェーンからは、削除対象領域に含まれる全ページが切り離されたことになり、制御が戻ってきたレコード処理制御手段1により、これらの連続ページをファイル内の未使用ページに戻すことが可能となる。
なお、連続ページをファイル内の連続未使用ページに戻す際には、トラック単位あるいはシリンダ単位IO処理などを利用して複数ページを一括して読み書きできるため、1つずつ未使用ページに戻すよりも高速化を図ることができる。また、削除対象領域を一括削除する際には、領域管理情報に登録されている属性データもクリアする。
【0047】
このように、同一データベースファイルで用いられる複数のデータページのうち、連続する複数のデータページを1つの連続領域としてそれぞれ管理し、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが1つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを一括してページ間チェーンから切り離すようにしたので、削除対象ページごとにそれぞれのチェーン情報を更新する必要がなくなり、ページ間チェーン更新処理に掛かる時間を削減することができる。
【0048】
また、連続データを一括削除する際には、トラック単位など連続する複数ページに対して一括IO要求を出す一般的な方式を利用でき、大量データの順次削除処理に掛かるIO回数とIO時間を削減できる。
したがって、本実施の形態によれば、大量データを一括削除する際の処理時間を大幅に削減できる。
【0049】
次に、図7〜10を参照して、本発明にかかるデータ格納領域管理装置の具体的動作について説明する。図7〜10は、データ格納領域管理装置の具体的動作例を示す説明図である。
まず、図7にデータ格納領域の初期状態例を示す。ここでは、複数の連続領域01,02,03が設けられており、それぞれページ「a」〜「c」,「d」〜「f」,「g」〜「i」から構成されている。これらページ「a」〜「i」のうち、ページ「a」〜「h」はデータが格納されているデータページであり、ページ「i」はデータが格納されていない空きページである。
【0050】
管理レコードには当該格納領域の先頭ページ番号「a」と最終ページ番号「h」とが管理されており、管理レコードからデータページ群の先頭ページ「a」へのチェーンと最終ページ「h」へのチェーンとが張られている。
各連続領域は、領域管理情報6に記録されている属性データ61によりその状態が管理されている。属性データ61では、各連続領域ごとに、その開始ページ番号、終了ページ番号、前方チェーン番号および後方チェーン番号が管理されており、これらデータページ「a」〜「h」間はそれぞれ前ページと次ページを指し示すページ間チェーンが張られている。
【0051】
この属性データ61によれば、連続領域01は、開始ページ番号「a」、終了ページ番号「c」の範囲のページ群であり、前方チェーン番号が「NULL値」であるので、これより前には連続領域とデータページは存在しないことがわかる。逆に、後方チェーン番号にページ番号「d」がセットされているので、この後ろに連続領域が存在し、かつ、その領域内でページ間チェーンの先頭にあるページが「d」であることを示している。
【0052】
また、連続領域02は、ページ「d」からページ「f」までの領域であり、前方には連続領域が存在するとともに、その連続領域内のページ間チェーン最終ページがページ「c」であること、並びに後方の連続ページ内のページ間チェーン先頭ページがページ「g」であることを表している。
さらに、ページ「g」からページ「i」までの連続領域03は、前方チェーンとしてページ「f」を指す情報を保有しており、その一方で後方チェーン番号が「NULL値」であり、当該データページ群の最終連続領域であることを表している。
【0053】
次に、上記図7の状態から連続ページ削除手段5を起動して、連続領域01のすべてページ(ページ「a」〜「c」)を一括削除する場合、連続ページ削除手段5では、上記図6のフローチャートに基づき以下の処理を行う。
まず、連続領域01の属性データ61を参照し、前方チェーン番号が登録されているか判定し(ステップ501)、その内容が未登録を表すNULL値であることから(ステップ501:NO)、後方チェーン番号のページ番号「d」を、管理レコードの先頭ページ番号に埋め込む(ステップ506)。
【0054】
続いて、連続領域01の後方チェーン番号が登録されているかを判定し(ステップ507)、ページ番号「d」が登録されているので(ステップ507:YES)、その後方チェーン番号のページ番号「d」の指すページをファイルから読み込み(ステップ508)、そのページ「d」の前ページ番号として、連続領域01の前方チェーン番号である「NULL値」を埋め込み(ステップ509)、ファイルに書き戻す(ステップ510)。
【0055】
そして、その1つ後ろ、つまり連続領域02の前方チェーン番号のページ番号を、連続領域01の前方チェーン番号である「NULL値」に書き換える(ステップ511)。
これにより、図8に示すように、連続領域01のすべてのページ(ページ「a」〜「c」)が一括して削除されたことになる。
【0056】
また、図7の状態から連続領域02を一括削除する場合は、連続ページ削除手段5で、ステップ501:YES以降のステップ502〜505、およびステップ507:YES以降のステップ508〜511の各処理が行われ、図9の状態となる。
同様にして図7の状態から連続領域03を一括削除する場合は、連続ページ削除手段5で、ステップ501:YES以降のステップ502〜505、およびステップ507:NO以降のステップ512の各処理が行われ、図10の状態となる。
【0057】
これら図7〜10からも解るように、領域間の相互ページチェーンである前方チェーン番号と後方チェーン番号を領域管理情報6として保持しておくことにより、1つ以上の連続領域にわたってデータレコードを削除する際には、不要となった連続領域を一括してページ間チェーンから容易に切り離すことができ、ファイル内未使用ページに戻してやることができるようになる。
【0058】
【発明の効果】
以上説明したように、本発明は、同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを1つの連続領域としてそれぞれ管理し、同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが1つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを一括してページ間チェーンから切り離すようにしたので、削除対象ページごとにそれぞれのチェーン情報を更新する必要がなくなり、ページ間チェーン更新処理に掛かる時間を削減することができる。
また、連続データを一括削除する際には、トラック単位など連続する複数ページに対して一括IO要求を出す一般的な方式を利用でき、大量データの順次削除処理に掛かるIO回数とIO時間を削減できる。したがって、本発明によれば、大量データを一括削除する際の処理時間を大幅に削減できる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態にかかるデータ格納領域管理装置を示すブロック図である。
【図2】 レコード追加処理の全体動作を示すフローチャートである。
【図3】 追加ページ確保手段の処理動作を示すフローチャートである。
【図4】 領域確保手段の処理動作を示すフローチャートである。
【図5】 領域間チェーン更新手段の処理動作を示すフローチャートである。
【図6】 連続ページ削除手段の処理動作を示すフローチャートである。
【図7】 データ格納領域管理装置の具体的動作例(初期状態)を示す説明図である。
【図8】 データ格納領域管理装置の具体的動作例(連続領域01削除後の状態)を示す説明図である。
【図9】 データ格納領域管理装置の具体的動作例(連続領域02削除後の状態)を示す説明図である。
【図10】 データ格納領域管理装置の具体的動作例(連続領域03削除後の状態)を示す説明図である。
【符号の説明】
10…データ格納領域管理装置、1…レコード処理制御手段、2…追加ページ確保手段、3…領域確保手段、4…領域間チェーン更新手段、5…連続ページ削除手段、6…領域管理情報、7…データベース、71…管理レコード、72…データページ群、9…上位アプリケーション。
Claims (8)
- 各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理方法であって、
前記データ格納領域管理装置で、
同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを1つの連続領域としてそれぞれ管理し、
同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが1つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離すことを特徴とするデータ格納領域管理方法。 - 請求項1記載のデータ格納領域管理方法において、
前記データ格納領域管理装置で、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる連続領域の終了ページ番号と、当該連続領域の後方に繋がる連続領域の開始ページ番号とを領域管理情報として保持することにより、各連続領域を管理することを特徴とするデータ格納領域管理方法。 - 請求項2記載のデータ格納領域管理方法において、
連続領域を単位として削除する際、前記データ格納領域管理装置で、前記領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページを前記データベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定することを特徴とするデータ格納領域管理方法。 - 請求項2記載のデータ格納領域管理方法において、
連続領域を単位として削除する際、前記データ格納領域管理装置で、前記領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページを前記データベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定することを特徴とするデータ格納領域管理方法。 - 各種データを記憶する情報記憶装置内にデータ格納領域として物理的に連続する複数のデータページを設け、これらデータページを用いてデータベースファイルを構成する複数のデータレコードを格納する際、データ格納領域管理装置で各データページごとに格納されている前ページ番号および次ページ番号からなるページ間チェーンを更新することにより、所望データレコードの追加・削除を行うデータ格納領域管理装置であって、
同一データベースファイルで用いられる複数のデータページのうち、物理的に連続する複数のデータページを1つの連続領域としてそれぞれ管理するレコード処理制御手段と、
同一データベースファイルに属する複数のデータレコードを一括削除する際、その削除対象データレコードが1つ以上の連続領域にわたって格納されている場合は、当該連続領域を単位として複数のデータページを当該データベースファイルのページ間チェーンから一括して切り離す連続ページ削除手段とを備えることを特徴とするデータ格納領域管理装置。 - 請求項5記載のデータ格納領域管理装置において、
前記レコード処理制御手段は、各連続領域ごとに、当該連続領域を構成する連続データページのうちの開始ページ番号および終了ページ番号と、当該連続領域の前方に繋がる前方連続領域の終了ページ番号からなる前方チェーン番号と、当該連続領域の後方に繋がる後方連続領域の開始ページ番号からなる後方チェーン番号とを領域管理情報として保持することにより、各連続領域を管理することを特徴とするデータ格納領域管理装置。 - 請求項6記載のデータ格納領域管理装置において、
前記連続ページ削除手段は、連続領域を単位として削除する際、前記領域管理情報から当該削除対象連続領域の前方チェーン番号を参照し、その前方チェーン番号に対応する前方データページが存在する場合は、その前方データページを前記データベースファイルから読み込んで、その前方データページに続く次ページを示す次ページ番号として当該削除対象連続領域の後方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記前方データページが属する前方連続領域の後方チェーン番号として当該削除対象連続領域の後方チェーン番号を設定することを特徴とするデータ格納領域管理装置。 - 請求項6記載のデータ格納領域管理装置において、
前記連続ページ削除手段は、連続領域を単位として削除する際、前記領域管理情報から当該削除対象連続領域の後方チェーン番号を参照し、その後方チェーン番号に対応する後方データページが存在する場合は、その後方データページを前記データベースファイルから読み込んで、その後方データページに続く前ページを示す前ページ番号として当該削除対象連続領域の前方チェーン番号を設定した後、前記データベースファイルへ書き出すとともに、前記領域管理情報のうち前記後方データページが属する後方連続領域の前方チェーン番号として当該削除対象連続領域の前方チェーン番号を設定することを特徴とするデータ格納領域管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001276247A JP3858648B2 (ja) | 2001-09-12 | 2001-09-12 | データ格納領域管理方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001276247A JP3858648B2 (ja) | 2001-09-12 | 2001-09-12 | データ格納領域管理方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003085009A JP2003085009A (ja) | 2003-03-20 |
JP3858648B2 true JP3858648B2 (ja) | 2006-12-20 |
Family
ID=19100978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001276247A Expired - Fee Related JP3858648B2 (ja) | 2001-09-12 | 2001-09-12 | データ格納領域管理方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3858648B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10963454B2 (en) | 2018-09-24 | 2021-03-30 | Salesforce.Com, Inc. | System and method for bulk removal of records in a database |
-
2001
- 2001-09-12 JP JP2001276247A patent/JP3858648B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003085009A (ja) | 2003-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0284664B1 (en) | Method of rapidly opening disc files identified by path names | |
KR100398753B1 (ko) | 효과적인 파일 갱신 처리 및 복구 처리를 이용하는트랜잭션 처리 시스템 | |
US7350017B2 (en) | Magnetic disk unit, file management system, and file management method | |
US7349927B2 (en) | Transactional file system for realizing atomic update of plural files by transactions | |
EP0745934A2 (en) | File system for a data storage device having a power fail recovery mechanism for write/replace operations | |
JP4916892B2 (ja) | トランザクション処理のためのログ情報管理システムおよび方法 | |
JPH1063555A (ja) | ファイル管理方法 | |
CN1983267A (zh) | 延迟验证数据完整性的文件系统 | |
JP2001243021A (ja) | ランダムディスクライトに好適なディスク制御機構 | |
JP3793868B2 (ja) | フラッシュメモリ管理装置及び記録媒体 | |
JP3858648B2 (ja) | データ格納領域管理方法および装置 | |
JP2624170B2 (ja) | 論理削除データ物理削除方式 | |
JP2002063057A (ja) | データ更新装置 | |
EP0745939A2 (en) | Re-entrant garbage collection process for a flash memory resident file system | |
JPH11353215A (ja) | 更新後ジャーナル採取処理方式 | |
JPH0362137A (ja) | 可変長ブロック群による長大データの格納方法 | |
JP3027782B2 (ja) | データベース回復方式 | |
JPH0778097A (ja) | ファイル再配置システム | |
JP3497053B2 (ja) | オンラインデータベース管理システムにおける処理方法及びオンラインデータベース管理システム | |
JP3278637B2 (ja) | ログファイルのメンテナンス装置および方法 | |
CN118012669A (zh) | 一种分布式文件系统的文件元数据恢复系统与方法 | |
JP2610972B2 (ja) | データベースのデータ保全方式 | |
JPH06231016A (ja) | ファイル結合/分割方法 | |
JP2650504B2 (ja) | ファイル再構成装置 | |
JPH05151037A (ja) | 業務処理中データベース再編成処理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060724 |
|
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: 20060829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060911 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |