JP2006004304A - データ管理装置及びデータ管理方法及びプログラム - Google Patents

データ管理装置及びデータ管理方法及びプログラム Download PDF

Info

Publication number
JP2006004304A
JP2006004304A JP2004181950A JP2004181950A JP2006004304A JP 2006004304 A JP2006004304 A JP 2006004304A JP 2004181950 A JP2004181950 A JP 2004181950A JP 2004181950 A JP2004181950 A JP 2004181950A JP 2006004304 A JP2006004304 A JP 2006004304A
Authority
JP
Japan
Prior art keywords
optimization
record
update
data
area
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
JP2004181950A
Other languages
English (en)
Other versions
JP4494878B2 (ja
Inventor
Mitsunori Kori
光則 郡
Yosuke Kaneko
洋介 金子
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2004181950A priority Critical patent/JP4494878B2/ja
Publication of JP2006004304A publication Critical patent/JP2006004304A/ja
Application granted granted Critical
Publication of JP4494878B2 publication Critical patent/JP4494878B2/ja
Anticipated expiration legal-status Critical
Active legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 データベースのレコードの追加、削除、更新におけるレコード格納方法に係り、ディスクの利用効率やアクセス効率を最適化することを課題とする。
【解決手段】 最適化処理実行部4は、最適化の際に、最適化管理テーブル5から最適化の条件を読み出し、その条件に従って、更新領域のレコードを抽出し、抽出したレコードを参照領域に書き込み、抽出したレコードを更新領域から削除し、残りのレコードを再配置する。最適化管理テーブル5は、最適化の条件として、レコード蓄積量、最適化周期、非更新期間、更新可否を設定可能であり、これらを選択的に組み合わせて、データベースを運用する。
【選択図】 図1

Description

本発明は、データベースのレコードの追加、削除、更新におけるレコード格納方法に係り、ディスクの利用効率やアクセス効率を最適化するデータベースに関する。
データベースにおいてレコードの削除や更新が頻繁に行われた場合、ディスクの利用効率やデータベースへのアクセス効率が低下するため、データベースの最適化処理(レコードの再配置処理や再編成処理)を行い、ディスクの利用効率やデータベースへのアクセス効率の改善を行う必要がある。しかし、データベースの最適化処理の実行時は基本的にデータベースへのアクセスが行えないため、処理に時間がかかる場合にデータベースへのアクセスが長時間行えなくなってしまう課題があった。
データベースの最適化処理を高速に行う技術としては特許文献1があげられる。また、レコードの再配置方式としては特許文献2があげられる。
特許文献1はデータベースの格納領域を分割管理し、レコードの更新が行われた領域だけを対象に再編成処理を行うことによって、最適化対象となる格納領域を絞りこみ、最適化処理を高速化する手法であるが、レコードの更新が分割管理した領域に点在した場合、結局は全ての領域に対して最適化処理を行わなければ成らず、最適化処理にかかる時間を短縮することはできない。
特許文献2は、データベース内でレコードの配置を変更することでレコードへの効率的なアクセスを実現するものであるが、ディスクの利用効率の改善を考慮した方式ではない。
これらの方式の課題は、最適化対象のレコードがデータベース内に点在してしまうことや、最適化処理が必要となる状況、つまりレコードの更新や削除が頻発する状況を抑える管理方法を用いないことにある。
特開平5−313961号公報 特開平10−333949号公報
本発明は、上記した従来技術の欠点を除くためになされたものであって、その目的とするところは、特定の領域に格納されたレコードを最適化の対象とするデータ管理方法と、特定の領域から最適化の対象となるレコードを選択的に抽出するデータ選択手段を用いることで、レコードの更新や削除が行われた場合も、ディスクの利用効率やデータベースへのアクセス効率が低下することを抑えるデータ管理方法を提供することである。
本発明に係るデータ管理装置は、
データベースとしてデータを管理するデータ管理装置であって、以下の要素を有することを特徴とする
(1)データベースで管理しているレコードを格納する参照領域
(2)更新によりデータベースに追加されるレコードを格納する更新領域
(3)最適化の条件を記憶する最適化管理テーブル
(4)更新領域のレコードを参照領域のレコードに移す最適化処理として、最適化管理テーブルから最適化の条件を読み出し、当該最適化の条件に従って、更新領域のレコードを抽出し、抽出したレコードを参照領域に書き込み、抽出したレコードを更新領域から削除する最適化処理実行部。
本発明においては、最適化処理時に更新領域内に配置されたレコードの中から更新、削除処理が発生する可能性が低いレコードを選択的に抽出することができ、参照領域へ追加したレコードの更新、削除処理の発生が低下し、ディスクの利用効率やデータベースのアクセス効率の低下を抑えることができる。
実施の形態1.
以下本発明を図面に示す実施例に基づいて説明する。図1は本発明で用いるデータ管理装置1の構成図である。アプリケーションプログラム14はデータ管理装置1を使用する上位プログラムである。データ管理部2はアプリケーションプログラム14の要求を受け、データの登録処理、更新処理、削除処理を行う。データアクセス部8はデータ管理装置1が保持する情報であるデータ格納領域9、実体管理テーブル13へのアクセスを行う。データ格納領域9は参照領域10、更新領域11、およびレコードアクセス情報12から構成され、アプリケーションプログラム14により登録されたデータを管理する。実体管理テーブル13は登録されたデータが論理的に存在するか否かの管理を行う。
最適化処理部3は最適化処理実行部4、最適化管理テーブル5、タイマー6、および蓄積量監視部7から構成され、データ格納領域9の最適化処理を行う。最適化処理実行部4は最適化処理実行時に、最適化対象のレコードの選択、参照領域10、更新領域11のレコードの再配置、実体管理テーブル13の更新を行う。また、タイマー6を用いることで定期的に最適化処理を実行することや、蓄積量監視部7を用いることでデータ格納領域9の更新領域11のレコード蓄積量に応じて最適化処理を実行することができる。最適化管理テーブル5には、最適化処理時に最適化の対象とするレコードを抽出する条件が設定される。
次に、データ管理装置1のデータの管理方法について説明する。図2はデータ格納領域9のデータの格納形式を示した図である。データ格納領域9は参照領域10と更新領域11とレコードアクセス情報12で構成される。参照領域10と更新領域11はそれぞれを1つのファイルとして管理してもよいし、それぞれを物理的に連続した領域として確保してもよい。
参照領域10および更新領域11の1つのレコードはアプリケーションプログラム14によって登録された1つのデータに対応する。参照領域10および更新領域11に格納された各レコードはデータ格納領域9において一意のレコード番号を持つ。図2において、レコード1はレコード番号が1のレコード、レコード2はレコード番号が2のレコード、…、レコードNはレコード番号がNのレコードとなる。参照領域10と更新領域11において、レコードは各領域の先頭から連続して配置される。レコードは各レコードのサイズが同一の固定長レコードでも、各レコードのサイズが異なる可変長レコードでも構わない。
更新領域11はアプリケーションプログラム14の登録処理、更新処理時にレコードの追加が行われる領域である。参照領域10は最適化処理実行部4の最適化処理によって、更新領域11のレコードが追加される領域である。レコードアクセス情報12は、参照領域10、更新領域11に格納されたレコードにアクセスを行うための情報を格納する。レコード番号15とアクセス情報16で構成される。アクセス情報16は、各レコードにアクセスできればどのような情報でも構わないが、例えば、参照領域10、更新領域11の先頭を起点としたオフセットとレコードのサイズなどとすればよい。また、レコードが固定長レコードの場合など、計算により各レコードへのアクセス情報16を求めることが可能である場合は、レコードアクセス情報12はなくてもよい。
図3は実体管理テーブル13のデータの格納形式を示した図である。実体管理テーブル13はデータ格納領域9に格納された全レコード数の情報である総レコード数14、参照領域10に格納された全レコード数の情報である参照領域レコード数15、および参照領域10と更新領域11に格納された各レコードに対応する、レコード番号16、論理ID17、削除フラグ18、作成日付19、および更新可否20の情報を管理する。
論理ID17はアプリケーションプログラム14が付与する情報であり、アプリケーションプログラム14は論理ID17を基に参照領域10または更新領域11に格納されたレコードを一意に特定することが可能である。削除フラグ18はデータ格納領域9において、レコードが論理的に削除されているか否かを示す情報である。データ格納領域9でレコードが論理的に削除されている場合、該当レコードの削除フラグ18には1が付与される。削除フラグ18が1であるレコードはアプリケーションプログラム14に対しては削除されたレコードとして扱われる。実体管理テーブル13はレコードの論理的な矛盾が生じないように管理を行う。つまり、実体管理テーブル13で同一の論理ID17を持つレコードは複数存在しても良いが、その中で削除フラグ18が0であるレコードは0個もしくは1個しか存在しない。
作成日付19はレコードが更新領域11に追加された日付を記録する。更新可否20は、レコードに対する更新や削除を許可する場合は1、許可しない場合は0を記録する。各レコードの更新可否20はアプリケーションプログラム14が、任意のタイミングで変更することが可能である。
次に、データ管理装置1のデータ登録処理について説明する。図4はデータ管理装置1のデータ登録処理を示すフローチャートである。図5は、データ登録処理に係るデータフローを示す図である。まず、ステップS11において、データ管理部2がアプリケーションプログラム14の登録要求を受ける。アプリケーションプログラム14は、登録を行うデータ、データに対応する論理ID、およびデータの更新可否を指定してデータ管理部2へ登録要求を行う。更新可否は、登録を行うデータに対して更新や削除を許可する場合は1、許可しない場合は0を指定する。
データ管理部2は登録要求を受けると、ステップS12において、ステップS11で受け取ったデータをデータ格納領域9が管理するレコードの形式へ変換し、ステップS13において、ステップS12で作成したレコード、ステップS11で受け取った論理ID、およびステップS11で受け取った更新可否を指定してデータアクセス部8へレコードの追加要求を行う。
データアクセス部8はレコードの追加要求を受けると、ステップS14において、ステップS13で指定された論理IDの重複チェックを行う。重複チェックは、実体管理テーブル13を参照して、ステップS13で指定された論理IDと同一の論理ID17を持ち、削除フラグ18が0であるレコードが存在する場合にエラーとする。データアクセス部8は、重複チェックでエラーが発生するとステップS14:YESに進み、ステップS15において、ステップS13で指定された論理IDを持つレコードが既に登録されていることをデータ管理部2へ伝える。データアクセス部8は、重複チェックでエラーが発生しなかった場合、ステップS14:NOに進み、ステップS16において、実体管理テーブル13の総レコード数14の値Nを参照し、更新領域11のレコードNの後にステップS13で指定されたレコードをレコードN+1として追加する。この時に、データ格納領域9がレコードアクセス情報12を持つ場合、レコード番号15がN+1のアクセス情報16を追加する。ステップS16の処理完了後、データアクセス部8はステップS17において、実体管理テーブル13へレコードN+1の情報を追加する。この時、レコード番号16はN+1、論理ID17はステップS13で指定された論理ID、削除フラグ18は0、作成日付19は現在の日付、更新可否20はステップS13で指定された更新可否の値を設定する。また、実体管理テーブル13の総レコード数14の値をN+1に更新する。
次に、データ管理装置1のデータ削除処理について説明する。図6はデータ管理装置1のデータ削除処理を示すフローチャートである。図7は、データ削除処理に係るデータフローを示す図である。まず、ステップS21において、データ管理部23がアプリケーションプログラム14の削除要求を受ける。この時に、アプリケーションプログラム14は削除を行うデータの論理IDを指定する。
データ管理部2は削除要求を受けると、ステップS22において、ステップS21で受け取った論理IDを指定してデータアクセス部8へレコードの削除要求を行う。
データアクセス部8はレコードの削除要求を受けると、ステップS23において、ステップS22で指定された論理IDの存在チェックを行う。存在チェックでは実体管理テーブル13を参照し、ステップS22で指定された論理IDと同一の論理ID17を持ち、削除フラグ18が0であるレコードが存在しない場合にエラーとする。存在チェックでエラーが発生すると、データアクセス部8はステップS23:NOに進み、ステップS26において、データ管理部2へステップS22で指定された論理IDを持つレコードが存在しないことを伝える。存在チェックでエラーが発生しなかった場合、データアクセス部8はステップS23:YESに進み、ステップS24において更新許可チェックを行う。更新許可チェックでは、ステップS23で見つかったレコードの更新可否20を参照し、値が0であればエラーとする。更新許可チェックでエラーが発生した場合、データアクセス部8はステップS24:NOに進み、ステップS26において、ステップS22で指定された論理IDを持つレコードは更新、削除が許可されていないことをデータ管理部2へ伝える。更新許可チェックでエラーが発生しなかった場合、データアクセス部8はステップS24:YESに進み、ステップS25において、ステップS23で見つかったレコードの削除フラグ18の値を1に変更する。
次に、データ管理装置1のデータ更新処理について説明する。図8はデータ管理装置1のデータ更新処理を示すフローチャートである。図9は、データ更新処理に係るデータフローを示す図である。まず、ステップS31において、データ管理部2がアプリケーションプログラム14の更新要求を受ける。アプリケーションプログラム14は、更新を行うデータの論理ID、更新データ、およびデータの更新可否を指定してデータ管理部2へ更新要求を行う。
データ管理部2は更新要求を受けると、ステップS32において、ステップS31で受け取った更新データをデータ格納領域9が管理するレコードの形式へ変換し、ステップS33において、ステップS32で作成したレコード、ステップS31で受け取った論理ID、ステップS31で受け取った更新可否を指定してデータアクセス部8へレコードの更新要求を行う。
データアクセス部8はレコードの更新要求を受けると、ステップS34において、ステップS33で指定された論理IDの存在チェックを行う。存在チェックの方法はデータ削除時と同様であるので説明を省略する。存在チェックでエラーが発生した場合、データアクセス部8はステップS34:NOに進み、ステップS39においてステップS33で指定された論理IDを持つレコードが存在しないことをデータ管理部2へ伝える。存在チェックでエラーが発生しなかった場合、データアクセス部8はステップS34:YESに進み、更新許可チェックを行う。更新許可チェックの方法はデータ削除時と同様であるので説明を省略する。更新許可チェックでエラーが発生した場合、データアクセス部8はステップS35:NOに進み、ステップS39においてデータ管理部2へステップS33で指定された論理IDを持つレコードは更新、削除が許可されていないことを伝える。更新許可チェックでエラーが発生しなかった場合、データアクセス部8はステップS35:YESに進み、ステップS36において、ステップS34でみつかったレコードの削除フラグ18を1に変更し、ステップS37の処理を行う。ステップS37において、データアクセス部8は実体管理テーブル13の総レコード数14の値Nを参照する。データアクセス部8は更新領域11のレコードNの後にステップS33で指定されたレコードをレコードN+1として追加する。このとき、データ格納領域9がレコードアクセス情報12を持つ場合、レコード番号15がN+1のアクセス情報16を追加する。ステップS37の処理完了後、データアクセス部8はステップS38において、実体管理テーブル13へレコードN+1の情報を追加する。この時、レコード番号16はN+1、論理ID17はステップS33で指定された論理ID、削除フラグ18は0、作成日付19は現在の日付、更新可否20はステップS33で指定された更新可否を設定する。また、実体管理テーブル13の総レコード数14の情報をN+1に更新する。
次に、データ管理装置1の最適化処理について説明する。最適化処理では、最適化処理部3が最適化管理テーブル5に設定された条件に従い、更新領域11のレコードを選択的に抽出して参照領域10へ追加する処理を行う。まず、最適化管理テーブル5について説明する。図10は最適化管理テーブル5を示す図である。最適化管理テーブル5では最適化条件51として、レコード蓄積量54、最適化周期55、非更新期間56、更新可否57の設定を行うことができる。
レコード蓄積量54は、更新領域11に一定数のレコードが蓄積された時に最適化処理を行う場合に設定する。図10ではレコード蓄積量54の設定値52が1000に設定されているため、更新領域11に1000レコードが蓄積された時に最適化処理が実行される。
最適化周期55は、一定期間経過ごとに最適化処理を行う場合に設定する。図10では最適化周期55の設定値52が30日に設定されているため、30日ごとに最適化処理が実行される。
非更新期間56は、一定期間更新処理が行われなかったレコードを最適化処理の対象とする場合に設定する。図10では非更新期間56の設定値52が60日に設定されているため、60日間更新処理が行われなかったレコードを対象に最適化処理が実行される。
更新可否57は、最適化処理時に実体管理テーブル13の更新可否20を参照し、更新可否の値が0であるレコードを対象に最適化処理を実行する場合に設定する。
最適化管理テーブル5において、レコード蓄積量54、最適化周期55、非更新期間56、更新可否57の最適化条件を有効にする場合は設定53の値を1に、無効にする場合は0に設定する。最適化管理テーブル5の設定値52、および設定53はアプリケーションプログラム14が、任意のタイミングで変更することができる。
ここで、最適化処理が実行されるタイミングについて説明する。最適化処理はアプリケーションプログラム14、タイマー6、蓄積量監視部7のいずれかが、最適化処理実行部4に最適化処理要求を発行することで実行される。アプリケーションプログラム14は任意のタイミングで最適化処理実行部4へ最適化処理要求を行うことができる。タイマー6は最適化条件51の最適化周期55の設定53が1の場合に、前回最適化処理を行った時、もしくは最適化周期55の設定値52が変更された時からの経過時間を測定し、最適化周期55の設定値52に指定された時間が経過すると、最適化処理実行部4へ最適化処理要求を行う。蓄積量監視部7は最適化条件51のレコード蓄積量54の設定53が1の場合に、更新領域11のレコード数を監視し、レコード蓄積量54の設定値52に指定されたレコード数に達した場合に、最適化処理実行部4へ最適化処理要求を行う。
次に、最適化処理の手順について説明する。図11は最適化処理の手順を示すフローチャートである。図12は、最適化処理に係るデータフローを示す図である。ステップS51において、最適化処理実行部4が最適化要求を受けると、ステップS52において、最適化処理実行部4が実体管理テーブル13、レコードアクセス情報12の更新領域に関する情報、およびデータ格納領域9の更新領域11を退避し、ステップS53において最適化対象とするレコードの選択を行う。
ここで、最適化対象レコード選択の処理について詳細に説明する。図13は最適化対象レコード選択処理を示すフローチャートであり、図14は最適化対象レコード選択処理の説明図である。図14において、更新領域60にはレコード1001からレコード1011が格納されており、最適化管理テーブル61、および実体管理テーブル62は図の通りの値に設定されている。以後、説明のため、最適化対象とするレコードの集合を集合L、最適化対象外とするレコードの集合を集合Kとする。
まず、ステップS61において、最適化処理実行部4は最適化管理テーブル5を参照し、レコード蓄積量54の設定53が1である場合は、ステップS61:YESに進みステップS62の処理を実行する。レコード蓄積量54の設定53が0である場合は、集合Lを更新領域11の全レコードとし、ステップS61:NOに進みステップS63の処理を実行する。図14では最適化管理テーブル61のレコード蓄積量の設定が1であるため、ステップS62の処理を実行する。最適化処理実行部4は、ステップS62において、実体管理テーブル13の参照領域レコード数15の値が最適化管理テーブル5のレコード蓄積量54の設定値52以上である場合は、集合Lを更新領域11の全レコードとするが、そうでない場合は集合Kを更新領域11の全レコードとする。図14では、実体管理テーブル62の参照領域レコード数が11であり、最適化管理テーブル61のレコード蓄積量の設定値が10であるため、集合Lを更新領域60の全レコードとし、集合Lと集合Kは状態A63となる。
次に、ステップS63において、最適化処理実行部4は最適化管理テーブル5を参照し、非更新期間56の設定53が1である場合は、ステップS63:YESに進みステップS64の処理を実行する。非更新期間56の設定53が0である場合は、ステップS63:NOに進みステップS65の処理を実行する。図14では最適化管理テーブル61の非更新期間の設定が1であるため、ステップS64の処理を実行する。最適化処理実行部4はステップS64において、集合Lに属するレコードの内、実体管理テーブル13の作成日付19と現在の日付の差が、最適化管理テーブル5の非更新期間56の設定値52以下であるレコードを集合Kに移す。図14では、状態A63の集合Lの内、実体管理テーブル62の作成日付から30日以上が経過していないレコードが集合Kに移される。例えば、現在の日付が”2004/2/10”である場合、状態A63の集合Lの内、レコード1006からレコード1011が作成日付から30日以上が経過していないため、集合Kに移され、状態B64となる。
更に、ステップS65において、最適化処理実行部4は最適化管理テーブル5を参照し、更新可否57の設定53が1である場合は、ステップS65:YESに進みステップS66の処理を実行する。更新可否57の設定53が0である場合は、ステップS65:NOに進みステップS67の処理を実行する。図14では、最適化管理テーブル61の更新可否の設定が1であるため、ステップS66の処理を実行する。最適化処理実行部4はステップS66において、集合Lに属するレコードの内、実体管理テーブル13の更新可否20が1であるレコードを集合Kに移動する。図14では、状態B64の集合Lの内、最適化管理テーブル61の更新可否が1であるレコード1002とレコード1005が集合Kに移され、状態C65となる。
最後に、ステップS67において、最適化処理実行部4は集合Lに属するレコードの内、実体管理テーブル13の削除フラグ18が1であるレコードを集合Kに移動する。図14では、状態C65の集合Lの内、実体管理テーブルの削除フラグが1であるレコードが存在しないため、状態C65のままとなる。
ここで再び、図11のフローチャートに戻り、最適化処理の手順について説明する。ステップS54において、最適化処理実行部4は、実体管理テーブル13の参照領域レコード数15を参照し、その値をMcとする。また、ステップS53で求めた最適化対象レコードの数をLc、最適化対象外レコードの数をKcとする。次にステップS55において、参照領域10の再配置を行う。
ここで、参照領域10の再配置処理の手順について詳細に説明する。図15は参照領域10の再配置処理を示すフローチャートであり、図16は参照領域10の再配置処理の説明図である。図16において、最適化対象とするレコードの集合L80、ステップS52で退避した更新領域81、ステップS52で退避した実体管理テーブル85、および実体管理テーブル86は図に示す通りである。退避した実体管理テーブル85、および実体管理テーブル86のレコード情報は、実体管理テーブル13が管理するレコード番号16、論理ID17、削除フラグ18、作成日付19、更新可否20の情報である。また、参照領域10の再配置処理の実行前の参照領域10は状態A82であるとする。
まず、ステップS71において、最適化処理実行部4は集合Lに含まれる全てのレコードに対して処理を完了したか否かの判定を行う。全てのレコードに対して処理を完了した場合(Lcが0の場合)は、ステップS71:NOへ進み、ステップS76において参照領域10の再配置処理を終了する。まだ処理が完了していないレコードが存在する場合、ステップS71:YESへ進みステップS72の処理を実行する。ステップS72では、最適化処理実行部4は集合Lの中でまだ処理が完了していないレコードlを選択し、ステップS73を実行する。図16では最適化処理実行部4はレコード1001を選択する。次に、ステップS73において、最適化処理実行部4は、レコードlのデータをステップS52で退避した更新領域から取得し、データアクセス部8を介して参照領域10のレコードMcの後に追加する。図16では、ステップS73において、レコード1001のデータを退避した更新領域81から取得し、状態A82の参照領域のレコード1000の後にレコード1001として追加し、参照領域は状態B83となる。更に、ステップS74において、最適化処理実行部4は実体管理テーブル13のレコード番号16がMc+1の情報を更新する。また、データ格納領域9がレコードアクセス情報12を持つ場合、最適化処理実行部4はレコード番号15がMc+1のアクセス情報16を更新する。実体管理テーブル13の更新は、ステップS52で退避した実体管理テーブルからレコードlに関する情報を取得し、データアクセス部8を介して実体管理テーブル13のレコードMc+1の情報として書き込むことで行う。また、レコードアクセス情報12の更新は、ステップS73で参照領域10へ追加したレコードlにアクセスするための情報を、データアクセス部8を介してレコードアクセス情報12のレコード番号15がMc+1のアクセス情報16として書き込むことで行う。図16では、ステップS74において、実体管理テーブル86のレコード1001に関する情報を更新する。実体管理テーブル86の更新は、退避した実体管理テーブル85からレコード1001に関する情報を取得し、実体管理テーブル86の1001の情報として書き込むことで行う。最後に、ステップS75において、Mcの値を1増加させ、Lcの値を1減少させ、ステップS71の処理を再度行う。図16において、集合L80の全てのレコードに対して参照領域の再配置処理を実行することで、退避した更新領域81のレコード1003、レコード1004が参照領域へ順次追加され、処理終了時に参照領域は状態C84となる。また、実体管理テーブル86のレコード1002、レコード1003のレコード情報は、それぞれ、退避した実体管理テーブル85のレコード1003、レコード1004のレコード情報となる。
ここで再び、図11のフローチャートに戻り、最適化処理の手順について説明する。ステップS56において、最適化処理実行部4は、更新領域11の再配置を行う。
ここで、更新領域11の再配置処理の手順について詳細に説明する。図17は更新領域11の再配置処理を示すフローチャートであり、図18は更新領域11の再配置処理の説明図である。図18において、最適化対象外とするレコードの集合K90、ステップS52で退避した更新領域91、ステップS52で退避した実体管理テーブル96、および実体管理テーブル97は図に示す通りである。退避した実体管理テーブル96、および実体管理テーブル97のレコード情報は、実体管理テーブル13が管理するレコード番号16、論理ID17、削除フラグ18、作成日付19、更新可否20の情報である。また、更新領域11の再配置処理の実行前の更新領域11は状態A92であるとする。
まず、ステップS81において最適化処理実行部4は、データアクセス部8を介して更新領域11の初期化を行う。更新領域11をファイルとして管理する場合、データアクセス部8は更新領域11のファイルを空にすることで初期化を行う。更新領域11を物理的に連続した領域として確保する場合、データアクセス部8は更新領域11のデータを全て削除し初期化を行う。ステップS81の処理により、図18の更新領域11は状態B93となる。
次に、ステップS82において最適化処理実行部4は、更新領域11の書込み位置Wpを0にセットする。書込み位置Wpは、更新領域11においてレコードを書込む位置を特定する情報であり、更新領域11の先頭を起点としたオフセットとする。ステップS82の処理により、図18において書込み位置Wpは状態B93の更新領域の先頭を指す。ステップS82の処理完了後、最適化処理実行部4は、ステップS83において、集合Kに含まれる全てのレコードに対して処理を完了したか否かの判定を行う。全てのレコードに対して処理を完了した場合(Kcが0の場合)、最適化処理実行部4はステップS83:NOへ進み、ステップS91において更新領域11の再配置処理を終了する。まだ処理が完了していないレコードが存在する場合、最適化処理実行部4はステップS83:YESへ進み、ステップS84の処理を実行し、集合Kの中でまだ処理が完了していないレコードkを選択する。図18では、レコード1002を選択する。
次に、ステップS85において、ステップS84で選択したレコードkが論理削除済みか否かの判定を行う。判定ではステップS52で退避した実体管理テーブルを参照し、ステップS84で選択したレコードkの削除フラグが1である場合にレコードkが削除済みであると判定し、ステップS85:YESに進みステップS90の処理を実行する。レコードkが削除済みでないと判定した場合、ステップS85:NOに進みステップS86の処理を実行する。図18では、退避した実体管理テーブル91のレコード1002の削除フラグが0であるため、ステップS85:NOに進みステップS86の処理を実行する。最適化処理実行部4は、ステップS86においてレコードkのデータをステップS52で退避した更新領域11から取得し、データアクセス部8を介してWpの位置から書込みを行う。ステップS86において、書き込みを行なったレコードkのデータは、データ格納領域9のレコードMc+1のデータとなる。図18では、ステップS86において、レコード1002のデータを退避した更新領域91から取得し、レコード1004のデータとして状態B93の更新領域の先頭から書き込み、更新領域は状態C94となる。
更に、ステップS87において、最適化処理実行部4は、ステップS86で更新領域11へ書き込みを行ったレコードkのデータサイズをWpに加え、次のレコードの書き込み位置Wpを求め、ステップS88において、実体管理テーブル13のレコード番号16がMc+1の情報を更新する。また、データ格納領域9がレコードアクセス情報12を持つ場合、最適化処理実行部4はレコード番号15がMc+1のアクセス情報16を更新する。実体管理テーブル13の更新時、最適化処理実行部4はステップS52で退避した実体管理テーブルからレコードkに関する情報を取得し、データアクセス部8を介して取得した情報を実体管理テーブル13のレコードMc+1の情報として書き込む。また、レコードアクセス情報12の更新時、最適化処理実行部4はステップS86で更新領域11へ追加したレコードkにアクセスするための情報を、データアクセス部8を介してレコードアクセス情報12のレコード番号15がMc+1のアクセス情報16として書き込む。図18では、ステップS88において、実体管理テーブル97のレコード1004に関する情報を更新する。実体管理テーブル97の更新は、退避した実体管理テーブル96からレコード1002に関するレコード情報を取得し、実体管理テーブル97のレコード1004のレコード情報として書き込むことで行う。最後に、ステップS89において、Mcの値を1増加させ、更にステップS90においてKcの値を1減少させ、ステップS83の処理を再度行う。図18において、集合Kの全てのレコードに対して更新領域11の再配置処理を行うことで、退避した更新領域91のレコード1005、レコード1006、レコード1008、レコード1010、レコード1011が更新領域へ順次追加され、処理終了時には状態D95となる。また、実体管理テーブル97は退避した実体管理テーブル96のレコード1005、レコード1006、レコード1008、レコード1010、レコード1011のレコード情報が、それぞれ、実体管理テーブル13のレコード1005、レコード1006、レコード1007、レコード1008、レコード1009の情報となる。
ここで再び、図11のフローチャートに戻り、最適化処理の手順について説明する。ステップS57において、最適化処理実行部4は、実体管理テーブル13の更新を行う。最適化処理実行部4は実体管理テーブル13の総レコード数をMcに変更し、実体管理テーブル13のレコードMc+1以降の情報を削除する。また、実体管理テーブル13の参照領域レコード数15の現在の値にステップS55で参照領域10へ追加したレコード数の値を加える。
また、上記では、参照領域10と更新領域11が管理するデータの最小単位をレコードとしているが、参照領域10では複数のレコードをまとめたブロックを最小単位として管理し、更新領域11が管理するデータの最小単位をレコードとして管理する構成をとることも可能である。この場合、上記の参照領域10の再配置処理では、ステップS72で複数のレコードを選択し、ブロック化して参照領域10へ書込みを行う。この場合に、ブロック化したレコードに対して、圧縮処理を行い参照領域10へ書き込むこんでもよい。
以上の通り説明したデータ管理方式、および最適化方式を用いることで、最適化処理時に更新領域内に配置されたレコードの中から更新、削除処理が発生する可能性が低いレコードを選択的に抽出することができ、参照領域へ追加したレコードの更新、削除処理の発生が低下し、ディスクの利用効率やデータベースのアクセス効率の低下を抑えることができる。
また、最適化対象となるレコードを更新領域のレコードに限定して管理を行うため、最適化処理に必要となる時間を短縮することができる。
また、一定の期間ごとにレコードの更新、削除が頻繁に行われるデータを管理する場合、最適化条件に最適化周期の条件を設定することで、更新領域でレコードの更新、削除処理が発生する状況を低下することができる。例えば、月単位でデータの更新、削除が頻繁に行われる月次データなどを管理する場合、最適化条件に最適化周期の条件を1月に設定することで、参照領域のレコードの更新、削除が発生する状況を低下することができる。
また、最適化条件に非更新期間の条件を設定することで、一定期間更新、削除が発生していないレコードを選択的に抽出することが可能となり、データの登録直後などに、更新、削除の処理が頻発することによるディスクの利用効率やデータベースのアクセス効率の低下を抑えることができる。
また、最適化条件に更新可否の条件を設定することで、更新、削除が発生しないレコードを選択的に抽出することが可能となる。
また、最適化条件にレコード蓄積量の条件を設定し、蓄積した複数のレコードをブロック化して圧縮処理を行い参照領域へ追加することにより、ディスクの利用効率や圧縮効率を高めることが可能となる。
実施の形態2.
上述の例におけるデータ管理装置を、複数の装置に分割することも考えられる。図19は、実施の形態2におけるデータ管理装置の構成図である。
図に示す通り、データアクセス部をインターフェースとするデータ管理下位装置と、当該インターフェースにアクセスするデータ管理上位装置に分けることも考えられる。
実施の形態3.
また、データ管理下位装置に最適化処理実行部と最適化に関連するモジュールを加え、データ管理部からなるデータ管理上位装置によりシステム全体を構成することも考えられる。図20は、実施の形態3におけるデータ管理装置の構成図である。
上述のデータ管理装置は、コンピュータであり、各要素はプログラムにより処理を実行することができる。また、プログラムを記憶媒体に記憶させ、記憶媒体からコンピュータに読み取られるようにすることができる。
図21は、データ管理装置のハードウエア構成例を示す図である。バスに、演算装置2101、データ記憶装置2102、メモリ2103が接続されている。データ記憶装置2102は、例えばROM(Read Only Memory)やハードディスクである。メモリ2103は、通常RAM(Random Access Memory)である。
プログラムは、通常データ記憶装置2102に記憶されており、メモリ2103にロードされた状態で、順次演算装置2101に読み込まれ処理を行う。
本発明で用いるデータ管理装置の構成図である。 データ格納領域のデータの格納形式を示した図である。 実体管理テーブルのデータの格納形式を示した図である。 データ管理装置のデータ登録処理を示すフローチャートである。 データ登録処理に係るデータフローを示す図である。 データ管理装置のデータ削除処理を示すフローチャートである。 データ削除処理に係るデータフローを示す図である。 データ管理装置のデータ更新処理を示すフローチャートである。 データ更新処理に係るデータフローを示す図である。 最適化管理テーブルを示す図である。 最適化処理の手順を示すフローチャートである。 最適化処理に係るデータフローを示す図である。 最適化対象レコード選択処理を示すフローチャートである。 最適化対象レコード選択処理の説明図である。 参照領域の再配置処理を示すフローチャートである。 参照領域の再配置処理の説明図である。 更新領域の再配置処理を示すフローチャートである。 更新領域の再配置処理の説明図である。 実施の形態2におけるデータ管理装置の構成図である。 実施の形態3におけるデータ管理装置の構成図である。 データ管理装置のハードウエア構成例を示す図である。
符号の説明
1 データ管理装置、2 データ管理部、3 最適化処理部、4 最適化処理実行部、5 最適化管理テーブル、6 タイマー、7 蓄積量監視部、8 データアクセス部、9 データ格納領域、10 参照領域、11 更新領域、12 レコードアクセス情報、13 実体管理テーブル。

Claims (9)

  1. データベースとしてデータを管理するデータ管理装置であって、以下の要素を有することを特徴とするデータ管理装置
    (1)データベースで管理しているレコードを格納する参照領域
    (2)更新によりデータベースに追加されるレコードを格納する更新領域
    (3)最適化の条件を記憶する最適化管理テーブル
    (4)更新領域のレコードを参照領域のレコードに移す最適化処理として、最適化管理テーブルから最適化の条件を読み出し、当該最適化の条件に従って、更新領域のレコードを抽出し、抽出したレコードを参照領域に書き込み、抽出したレコードを更新領域から削除する最適化処理実行部。
  2. 最適化管理テーブルは、最適化の条件として、非更新期間を記憶し、
    最適化処理実行部は、各レコードが更新領域に格納された日付を参照し、当該日付から非更新期間が経過したレコードを抽出することを特徴とする請求項1記載のデータ管理装置。
  3. 最適化処理実行部は、最適化管理テーブルの最適化の条件として、更新可否が設定されている場合に、各レコードについて更新及び削除が許可されているか否かを示す更新可否を参照し、更新及び削除が許可されていないレコードを抽出することを特徴とする請求項1記載のデータ管理装置。
  4. 最適化管理テーブルは、最適化の条件として、レコード蓄積量を記憶し、
    データ管理装置は、更に、更新領域に蓄積されたデータ量を監視する蓄積量監視部を有し、
    最適化処理実行部は、更新領域に蓄積されたデータ量が、最適化管理テーブルに設定されているデータ蓄積量に達した時に最適化処理を実行することを特徴とする請求項1記載のデータ管理装置。
  5. 最適化管理テーブルは、最適化の条件として、最適化周期を記憶し、
    データ管理装置は、更に、前回最適化処理が行われてから経過した時間を監視するタイマーを有し、
    最適化処理実行部は、前回最適化処理が行われてから、最適化管理テーブルに設定された最適化周期の時間が経過した時に、最適化処理を実行することを特徴とする請求項1記載のデータ管理装置。
  6. データ管理装置は、更に、各レコードが論理的に削除されているか否かを示す削除フラグを記憶する実体管理テーブルを有し、
    最適化処理実行部は、抽出した更新領域の前記レコードが論理的に削除されている場合に、最適化対象から外し、参照領域へ追加せずに更新領域から物理的に削除することを特徴とする請求項1記載のデータ管理装置。
  7. 最適化処理実行部は、最適化の際に、複数のレコードを圧縮し、圧縮されたデータを参照領域へ追加することを特徴とする請求項1記載のデータ管理装置。
  8. データベースで管理しているレコードを格納する参照領域と、更新によりデータベースに追加されるレコードを格納する更新領域と、最適化の条件を設定する最適化管理テーブルとを有するデータ管理装置によるデータ管理方法であって、以下の要素を有することを特徴とするデータ管理方法
    (1)最適化管理テーブルから最適化の条件を読み出し、当該最適化の条件に従って、更新領域のレコードを抽出する最適化対象レコード選択工程
    (2)抽出したレコードを参照領域に書き込む参照領域の再配置工程
    (3)抽出したレコードを更新領域から削除し、残りのレコードを再配置する更新領域の再配置工程。
  9. データベースで管理しているレコードを格納する参照領域と、更新によりデータベースに追加されるレコードを格納する更新領域と、最適化の条件を設定する最適化管理テーブルとを有するデータ管理装置となるコンピュータに、以下の手順を実行させるためのプログラム
    (1)最適化管理テーブルから最適化の条件を読み出し、当該最適化の条件に従って、更新領域のレコードを抽出する最適化対象レコード選択手順
    (2)抽出したレコードを参照領域に書き込む参照領域の再配置手順
    (3)抽出したレコードを更新領域から削除し、残りのレコードを再配置する更新領域の再配置手順。
JP2004181950A 2004-06-21 2004-06-21 データ管理装置及びデータ管理方法及びプログラム Active JP4494878B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004181950A JP4494878B2 (ja) 2004-06-21 2004-06-21 データ管理装置及びデータ管理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004181950A JP4494878B2 (ja) 2004-06-21 2004-06-21 データ管理装置及びデータ管理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006004304A true JP2006004304A (ja) 2006-01-05
JP4494878B2 JP4494878B2 (ja) 2010-06-30

Family

ID=35772635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004181950A Active JP4494878B2 (ja) 2004-06-21 2004-06-21 データ管理装置及びデータ管理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4494878B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249453A (ja) * 2006-03-15 2007-09-27 Mitsubishi Electric Corp データ管理装置及びデータ管理方法及びプログラム
JP2013171565A (ja) * 2012-02-23 2013-09-02 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
KR101478327B1 (ko) * 2013-01-28 2014-12-31 네이버 주식회사 시스템 최적화 모니터링 및 오동작 방지 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
JP2017091133A (ja) * 2015-11-09 2017-05-25 三菱電機株式会社 コンテンツ作成装置およびコンテンツ作成方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02116973A (ja) * 1988-09-23 1990-05-01 Internatl Business Mach Corp <Ibm> リレーシヨナル・データベース管理システム
JPH07325741A (ja) * 1994-05-30 1995-12-12 Nec Corp データベースデータ管理制御方式
JPH1021124A (ja) * 1996-07-02 1998-01-23 Mitsubishi Electric Corp データベースシステムにおける自動最適化方式及び自動最適化方法
JPH10143418A (ja) * 1996-09-13 1998-05-29 Toshiba Corp 文書情報更新監視装置および文書情報の更新監視方法
JPH1196050A (ja) * 1997-09-24 1999-04-09 Oki Electric Ind Co Ltd データベース管理システム
JP2001154995A (ja) * 1999-11-26 2001-06-08 Toshiba Corp データ配置最適化サーバ、ネットワークシステムおよび記録媒体
JP2002082955A (ja) * 2000-09-11 2002-03-22 Dat Japan Kk 可変長データベース装置及びアクセス方法
JP2003345632A (ja) * 2002-05-23 2003-12-05 Hitachi Ltd ストレージ機器管理方法、システム、およびプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02116973A (ja) * 1988-09-23 1990-05-01 Internatl Business Mach Corp <Ibm> リレーシヨナル・データベース管理システム
JPH07325741A (ja) * 1994-05-30 1995-12-12 Nec Corp データベースデータ管理制御方式
JPH1021124A (ja) * 1996-07-02 1998-01-23 Mitsubishi Electric Corp データベースシステムにおける自動最適化方式及び自動最適化方法
JPH10143418A (ja) * 1996-09-13 1998-05-29 Toshiba Corp 文書情報更新監視装置および文書情報の更新監視方法
JPH1196050A (ja) * 1997-09-24 1999-04-09 Oki Electric Ind Co Ltd データベース管理システム
JP2001154995A (ja) * 1999-11-26 2001-06-08 Toshiba Corp データ配置最適化サーバ、ネットワークシステムおよび記録媒体
JP2002082955A (ja) * 2000-09-11 2002-03-22 Dat Japan Kk 可変長データベース装置及びアクセス方法
JP2003345632A (ja) * 2002-05-23 2003-12-05 Hitachi Ltd ストレージ機器管理方法、システム、およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249453A (ja) * 2006-03-15 2007-09-27 Mitsubishi Electric Corp データ管理装置及びデータ管理方法及びプログラム
JP4718351B2 (ja) * 2006-03-15 2011-07-06 三菱電機株式会社 データ管理装置及びデータ管理方法及びプログラム
JP2013171565A (ja) * 2012-02-23 2013-09-02 Mitsubishi Electric Corp データ処理装置及びデータ処理方法及びプログラム
KR101478327B1 (ko) * 2013-01-28 2014-12-31 네이버 주식회사 시스템 최적화 모니터링 및 오동작 방지 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
JP2017091133A (ja) * 2015-11-09 2017-05-25 三菱電機株式会社 コンテンツ作成装置およびコンテンツ作成方法

Also Published As

Publication number Publication date
JP4494878B2 (ja) 2010-06-30

Similar Documents

Publication Publication Date Title
CN107102819B (zh) 向固态硬盘写入数据的方法及设备
US8578112B2 (en) Data management system and data management method
CN101673192B (zh) 时序化的数据处理方法、装置及系统
GB2518158A (en) Method and system for data access in a storage infrastructure
CN110147203B (zh) 一种文件管理方法、装置、电子设备及存储介质
KR20150122533A (ko) 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치
CN103713972B (zh) 一种增量备份系统和方法
CN105677236A (zh) 一种存储设备及其存储数据的方法
JP2016066220A (ja) ストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラム
CN105095495A (zh) 一种分布式文件系统缓存管理方法和系统
US20160064030A1 (en) Shingled magnetic recording data store
JP6293709B2 (ja) ストレージシステムおよびストレージシステム用プログラム
CN111625203A (zh) 一种分级存储的方法、系统、设备及介质
CN106844491B (zh) 一种临时数据的写入、读取方法及写入、读取装置
CN114416677A (zh) 一种冷存储数据的更新方法、装置、设备及存储介质
JP2008158661A (ja) アクセス制御方法、アクセス制御装置、及びアクセス制御プログラム
JP4494878B2 (ja) データ管理装置及びデータ管理方法及びプログラム
US11392510B2 (en) Management method of cache files in storage space and recording device for storing cache files
JP6582721B2 (ja) 制御装置、ストレージシステム、及び制御プログラム
JP2011048679A (ja) ストレージシステム、管理方法及びプログラム
CN114153395B (zh) 一种对象存储数据生命周期管理方法、装置及设备
JP2016162245A (ja) ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム
EP3819754B1 (en) Information processing apparatus and recording medium storing information processing program
JP6107341B2 (ja) データ管理プログラム,データ管理装置およびデータ管理方法
CN114297196A (zh) 元数据存储方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100127

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: 20100406

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: 20100408

R150 Certificate of patent or registration of utility model

Ref document number: 4494878

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140416

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250