JP2007140821A - データ管理装置、データ管理方法およびデータ管理プログラム - Google Patents

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

Info

Publication number
JP2007140821A
JP2007140821A JP2005332648A JP2005332648A JP2007140821A JP 2007140821 A JP2007140821 A JP 2007140821A JP 2005332648 A JP2005332648 A JP 2005332648A JP 2005332648 A JP2005332648 A JP 2005332648A JP 2007140821 A JP2007140821 A JP 2007140821A
Authority
JP
Japan
Prior art keywords
range
data
group
control unit
processing 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.)
Granted
Application number
JP2005332648A
Other languages
English (en)
Other versions
JP4813155B2 (ja
Inventor
Yoshinori Yamagishi
義徳 山岸
Mitsunori Kori
光則 郡
Hidehiro Shimizu
英弘 清水
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 JP2005332648A priority Critical patent/JP4813155B2/ja
Publication of JP2007140821A publication Critical patent/JP2007140821A/ja
Application granted granted Critical
Publication of JP4813155B2 publication Critical patent/JP4813155B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】到達するデータが疎らであっても最適なデータ編成を可能にする。
【解決手段】データ処理部3は端末装置2からロードする行を入力してバッファメモリ951のサイズでまとめたグループを生成する。データアクセス制御部6はデータ処理部3が生成したグループをバッファメモリ951から更新領域8に追加書き出しする。範囲管理制御部4はデータ処理部3が生成したグループであり更新領域8に記憶された複数のグループを範囲として範囲管理テーブル5に設定して管理する。端末装置2がデータ検索要求時、範囲管理制御部4は検索条件に合う行を含むグループを有する範囲を選択し、データアクセス制御部6は範囲管理制御部4が選択した範囲に属するグループをグループ単位にバッファメモリ951に書き出す。そして、データ処理部3はバッファメモリ951に書き出されたグループに対して検索条件に合う行を検索する。
【選択図】図3

Description

本発明は、データベースに追加される行(レコード)を任意の時点で区切った領域の範囲管理方法に係り、高速なデータアクセスやロード、および効率的なデータ管理を実現するデータベースなどにおけるデータ管理装置、データ管理方法およびデータ管理プログラムに関するものである。
データベースは蓄積保存されるデータ量が増加するにしたがって、データベースへのアクセス効率が低下し検索や参照に多くの時間を要するようになる。この対策として、検索に利用するキーに索引を設ける方法が一般的に採られるが、データの追加・削除・更新が頻繁に行われたり、検索により取り出されるデータ量が多くなると、再度、アクセス効率が低下してしまうという課題があった。
この課題を解決するデータ管理方法として、索引を設けず、データベースのデータ格納領域をセグメントという領域単位に分け、時間情報を持ったブックマーク情報を作成して一連のセグメント群を管理する方法が採られている(特許文献1)。
特開平10−260876号公報
しかしながら、特許文献1のデータ管理方法では、データを一定時間分まとめてセグメントに保存し、一度保存したデータは変更することができない。このため、一定時間内に到達するデータが疎らになると小データを次々にセグメントに保存することになるが、データの再編成はできないため各小データに対するアクセス効率が低下してしまう。また、データ格納領域の利用効率も低下することになる。さらに、時間以外のキーで検索しようとする場合、全セグメントを検索する必要があるため高速なデータアクセスはできない。
この発明は、上記の課題などの従来技術の課題を除くためになされたものであって、その目的とするところは、例えば、到達するデータが疎らであっても最適なデータ編成を可能にすることである。
本発明のデータ管理装置は、記憶領域を有する第1の記憶機器と、所定のサイズを有するバッファメモリと、前記バッファメモリのサイズに適合する複数の任意データを1グループとして中央処理装置を用いてデータ処理するデータ処理部と、前記第1の記憶機器に対してグループ単位で任意データを入出力する入出力制御部と、前記第1の記憶機器の連続する記憶領域に記憶された複数のグループを1範囲として当該範囲に属するグループを特定するグループ特定情報と当該範囲に属するグループに含まれる任意データを特定する任意データ特定情報と当該範囲を識別する範囲識別情報とを含む範囲エントリを範囲毎に記憶する第2の記憶機器と、前記第2の記憶機器に記憶された範囲エントリの管理処理を中央処理装置を用いて行う範囲管理制御部とを備えたことを特徴とする。
本発明によれば、データ格納領域を連続する範囲で管理することによって、高速なデータアクセス、ロード、削除やバックアップなど範囲単位の操作による効率的なデータ管理を可能とするデータ管理装置を提供することができる。このデータ管理装置により、例えば、到達するデータが疎らであっても最適なデータ編成を可能にすることができる。
実施の形態1.
図1は、実施の形態1におけるデータ管理システム900の外観を示す図である。
図1において、データ管理システム900は、システムユニット910、表示装置901、キーボード(K/B)902、マウス903、コンパクトディスク装置(CDD)905、プリンタ装置906、スキャナ装置907を備え、これらはケーブルで接続されている。
さらに、データ管理システム900は、FAX機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク(LAN)942、ウェブサーバ941を介してインターネット940に接続されている。
表示装置901、K/B902およびマウス903は端末装置2を構成する。また、システムユニット910はデータ管理処理を行うデータ管理装置1である。
図2は、実施の形態1におけるデータ管理システム900のハードウェア構成図である。
図2において、データ管理システム900は、プログラムを実行するCPU(Central Processing Unit)911を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、K/B902、マウス903、FDD(Flexible Disk Drive)904、磁気ディスク装置920、CDD905、プリンタ装置906、スキャナ装置907と接続されている。
表示装置901には液晶ディスプレイ、CRT(Cathode Ray Tube)ディスプレイなどがある。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶機器、記憶装置あるいは記憶部の一例である。
また、磁気ディスク装置920はデータベースにおける各レコードデータを記憶する記憶機器の一例である。また、RAM914は、磁気ディスク装置920よりデータアクセスが高速であり、CPU911と磁気ディスク装置920との間で入出力するデータを記憶して磁気ディスク装置920に記憶されたデータに対するCPU911のアクセス効率を向上するバッファメモリの一例である。
通信ボード915は、FAX機932、電話器931、LAN942等に接続されている。
例えば、通信ボード915、K/B902、スキャナ装置907、FDD904などは、入力機器、入力装置あるいは入力部の一例である。
また、例えば、通信ボード915、表示装置901などは、出力機器、出力装置あるいは出力部の一例である。
端末装置2は利用者が使用する端末であり、利用者に入力機器から処理要求を入力させ、データ管理装置1から入力した処理結果を出力機器に出力(表示、印刷、音声出力など)する。
ここで、通信ボード915は、LAN942に限らず、直接、インターネット940、或いはISDN等のWAN(ワイドエリアネットワーク)に接続されていても構わない。直接、インターネット940、或いはISDN等のWANに接続されている場合、データ管理システム900は、インターネット940、或いはISDN等のWANに接続され、ウェブサーバ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム(OS)921、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923は、CPU911、OS921、ウィンドウシステム922により実行される。
上記プログラム群923には、実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態の説明において、「〜情報」、「〜要求」、「〜命令」として説明するデータ、「〜部」として説明する機能を実行時の判定結果や演算結果を示すデータ、「〜部」として説明する機能を実行するプログラム間で受け渡しするデータなどが「〜ファイル」として記憶されている。また、データ管理装置1が記憶管理するデータ(例えば、レコードデータ)やデータ管理処理に使用する管理情報(例えば、後述する範囲管理テーブル5)やバックアップファイル(例えば、後述するアーカイブファイル300)がファイル群924に「〜ファイル」として記憶されている。
また、実施の形態の説明において、フローチャートや構成図の矢印の部分は主としてデータの入出力を示し、そのデータの入出力のためにデータは、磁気ディスク装置920、FD(Flexible Disk cartridge)、光ディスク、CD(コンパクトディスク)、MD(ミニディスク)、DVD(Digital Versatile Disk)、その他の記憶媒体に記憶される。あるいは、信号線やその他の伝送媒体により伝送される。
また、実施の形態の説明において「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
また、実施の形態を実施するプログラムは、磁気ディスク装置920、FD、光ディスク、CD、MD、DVD、その他の記憶媒体による記憶装置を用いて記憶されても構わない。
図3は、実施の形態1によるデータ管理システム900の構成図である。
図3において、データ管理システム900はデータ管理装置1と端末装置2とを備える。データのロード、検索、バックアップ/リストア、削除や以下に述べる範囲の追加、削除等の端末装置2からの処理要求はデータ管理装置1がCPU911を用いて処理する。以下、端末装置2からデータ管理装置1にロードされるデータの最小単位を「行」と呼ぶことにする。この「行(任意データの一例)」は、例えば、データベースにおけるレコードに対応する。以下、データ管理装置1をデータベースとして説明する。データ管理システム900は、一度に複数の行を端末装置2からデータ管理装置1のデータベースにロード可能であり、また、必要な行を検索によりデータ管理装置1から抽出することが可能である。
データ管理装置1は、実施の形態1によるデータ管理装置であって、データ処理部3、範囲管理制御部4、データアクセス制御部6(入出力制御部の一例)、データ格納領域部7(第1の記憶機器の一例)、バッファメモリ951を備えるものである。また、範囲管理テーブル5を記憶する記憶機器(第2の記憶機器)とアーカイブファイル300(バックアップファイルの一例)を記憶する記憶機器(第3の記憶機器)とを備える。範囲管理テーブル5およびアーカイブファイル300はデータ格納領域部7と同じ記憶機器に記憶してもよいし、別の記憶機器に記憶してもよい。データ格納領域部7は記憶データを更新する更新領域8と記憶データを更新しない参照領域9とを有する。データ格納領域部7は更新領域8を磁気ディスク装置920の連続領域に割り付けると共に、参照領域9を更新領域8とは別に磁気ディスク装置920の連続領域に割り付ける。また、データ格納領域部7は更新領域8と参照領域9とを磁気ディスク装置920の連続領域に割り付けてもよい。これにより、磁気ディスク装置920に対して磁気ディスク面の連続する場所にアクセスすることで所望の行にアクセスすることができ、ディスクヘッドのシークに無駄のないデータアクセスが可能となる。なお、データ格納領域部7は半導体メモリなど他の記憶媒体であっても実現は可能である。
ここで、範囲管理テーブル5は範囲に対する管理情報を有するテーブルである。データ管理装置1のバッファメモリ951のサイズ(以下、バッファサイズとする)に適合する複数の行を1グループとし、更新領域8または参照領域9において連続する領域に記憶された複数のグループが1範囲である。以下、1範囲に対する管理情報(範囲エントリの一例)を「エントリ」と呼ぶ。
データ管理装置1の各構成部はCPU911を用いて以下のような処理を行う。
データ処理部3は、端末装置2から処理要求を入力し、処理要求に応じて範囲管理制御部4にデータ管理命令を出力する。このとき、データ処理部3は、バッファメモリ951に記憶された行を処理し、処理結果を端末装置2に出力する。
範囲管理制御部4は、データ処理部3からデータ管理命令を入力し、データ管理命令に対応して、範囲管理テーブル5に対するエントリの変更・追加・削除・初期設定などのデータ管理処理を行うと共にデータアクセス制御部6にデータアクセス命令を出力する。
データアクセス制御部6は、範囲管理制御部4からデータアクセス命令を入力し、データアクセス命令に応じたグループの取得・追加・削除などのデータアクセス処理をデータ格納領域部7に対して行う。このとき、データアクセス制御部6は、データ格納領域部7から取得した行をバッファメモリ951に記憶し、または、バッファメモリ951に記憶された行をデータ格納領域部7に追加記憶する。
図4は、データ管理装置1で実現する「範囲」の概念図である。
図4においてデータベース30は3つの範囲30a〜30cを持つ。それぞれの範囲には範囲を区別する番号として範囲ID(範囲識別情報の一例)を割り当てる。データベース30の生成時に1つの範囲を定義し、範囲の追加処理により順番に範囲を追加することができる。
図5は、図4で示すデータベース30に対して、範囲を追加した場合の概念図である。
データベース30に追加する行は、最後に追加された最新の範囲である「現在の範囲」にロードする。図4においては範囲30c、図5においては範囲30dが、現在の範囲である。データ管理装置1は、この範囲を単位としてデータのバックアップ/リストア、削除を行うことが可能である。
図6は、範囲管理テーブル5に保持する範囲管理情報を示した例である。
範囲管理テーブル5はデータベースの生成日付10、データベースへのテーブル最終書込み時刻11、データベースが保持する範囲数12、範囲のキー数13を持つ。また、各エントリにおいて、個々の範囲の属性として、範囲ID14、開始グループ番号15、グループ数16、確定状態17、ロード状態18、確定時刻19、エントリ最終書込み時刻20、最小行番号21(最小番号の一例)、最大行番号22(最大番号の一例)、最小タイムスタンプ23(最小追加時刻の一例)、最大タイムスタンプ24(最大追加時刻の一例)を持つ。図6においては、行番号(最小行番号21、最大行番号22)とタイムスタンプ(最小タイムスタンプ23、最大タイムスタンプ24)が範囲のキーであるが、キーの数、キーにするデータ項目は自由に設定することが可能である。
範囲管理制御部4が範囲管理テーブル5の各範囲管理情報を設定する。特に、各エントリに対して、検索、変更、追加、削除、初期設定などの管理処理を行う。
次に、各エントリが有する個々の範囲の属性について説明する。
範囲ID14(範囲識別情報の一例)は、範囲管理制御部4が範囲の追加処理時に追加した範囲に対して設定するユニークな識別情報であり、例えば、1ずつ増やした番号を設定する。
開始グループ番号15(グループ特定情報の一例)は、データ処理部3が1つ以上の行をまとめたデータ単位(グループ)の開始番号である。データ処理部3は1つ以上の行をバッファサイズにまとめて1グループとし、グループに対して生成順に連番を振る。
グループ数16(グループ特定情報の一例)は、開始グループ番号15から連続する番号を持つ当該範囲に属するグループの数である。
開始グループ番号15とグループ数16とは当該エントリが示す範囲に属するグループを特定する情報である。
確定状態17(追加可否情報の一例)は当該範囲に対しグループのロードが可能であるか否かを示す。
ロード状態18(グループ有無情報の一例)は当該範囲が空(グループ無し)であるかロード済みであるかを示す。
確定時刻19(確定範囲時刻の一例)は当該範囲に対しグループのロードが可能でなくなった時刻(当該エントリの確定状態17に“FIXED”を設定した時刻)である。
エントリ最終書込み時刻20(最終追加時刻の一例)は、データベースの生成、ロード、範囲の削除、またはバックアップのリストアが最後に行われた時刻である。
最小行番号21(任意データ特定情報の一例)、最大行番号22(任意データ特定情報の一例)は、それぞれ当該範囲に含まれる行の番号の最小値、最大値である。
最小タイムスタンプ23(任意データ特定情報の一例)、最大タイムスタンプ24(任意データ特定情報の一例)はそれぞれ当該範囲に属する行のタイムスタンプ(行を当該範囲に追加した時刻)の最小値、最大値である。
最小行番号21、最大行番号22、最小タイムスタンプ23および最大タイムスタンプ24は当該エントリが示す範囲に属する行を特定する情報である。当該エントリが示す範囲に属する行を特定できる情報であれば、行番号とタイムスタンプのいずれか一つであってもよいし、行番号およびタイムスタンプでなくてもよい。以下、最小行番号21と最大行番号22とを「範囲のキー#1」とし、最小タイムスタンプ23と最大タイムスタンプ24とを「範囲のキー#2」とする。
さらに、確定状態17について詳しく説明する。確定状態17には「現在」(CURRENT)と「確定」(FIXED)との状態がある。確定状態がCURRENTとなっている範囲を「現在の範囲(処理中範囲)」、確定状態がFIXEDとなっている範囲を「確定した範囲(確定範囲)」と呼ぶ。現在の範囲はデータベースに1つだけ存在し、現在の範囲以外の全ての範囲は確定した範囲である。新規に生成されたデータベースには1個の現在の範囲が含まれ、確定した範囲は含まれない。つまり、データ管理装置1に新規にデータベースを生成する際、範囲管理制御部4は範囲管理テーブル5に現在の範囲のエントリを1つ生成し、確定した範囲のエントリは生成しない。また、データ処理部3が端末装置2から範囲の追加要求を入力すると、範囲管理制御部4は範囲管理テーブル5に新しい現在の範囲のエントリを生成し、それまでの現在の範囲のエントリの確定状態17をCURRENTからFIXEDに変更し確定した範囲として設定する。範囲管理制御部4は新しい現在の範囲のエントリにはそれまでの現在の範囲の範囲IDに1を加えた範囲IDを割り当てる。範囲管理制御部4はこの範囲の追加以外の操作によって確定状態17を変更することはしない。ここで、現在の範囲に対してはデータのロードを可能とし、確定した範囲に対してデータのロード(グループの追加)はしない。つまり、データ管理システム900の利用者は、端末装置2からデータ管理装置1にロード要求を行うことで、現在の範囲に対してデータのロードを行うことはできるが確定した範囲に対してデータのロードを行うことはできない。
さらに、ロード状態18について詳しく説明する。データ管理装置1のデータベースにおいて、範囲を単位としてデータのバックアップ、削除、リストアを行うことができる。ロード状態には「空」(EMPTY)と「ロード済み」(LOADED)がある。ロード状態がEMPTYとなっている範囲を「空の範囲」、ロード状態がLOADEDとなっている範囲を「ロード済みの範囲」と呼ぶ。データ処理部3がロード要求を入力した際、現在の範囲が空の範囲であれば、範囲管理制御部4は当該エントリのロード状態18をEMPTYからLOADEDの状態に変更する。また、データ処理部3がロード済みの範囲に対する削除要求を入力した際、範囲管理制御部4は当該エントリのロード状態18をLOADEDからEMPTYの状態に変更する。また、データ処理部3は検索要求を入力した際に空の範囲内のデータを検索対象にせず、空の範囲内のデータの参照もしない。また、データ処理部3がバックアップのリストア要求を入力した際、範囲管理制御部4はバックアップ時に保存されたロード状態18を復元する。データ管理装置1に新規にデータベースを生成する際、範囲管理制御部4はロード状態18がEMPTYである1個の空の範囲のエントリを生成する。
図7は、範囲の操作処理に対する確定状態17およびロード状態18の変化について示した範囲の状態遷移図である。
範囲の操作処理とは、端末装置2から入力した処理要求に対応してデータ管理装置1が実行する処理であり、ロード、範囲の削除、範囲の追加、範囲指定のバックアップ、リストアを示す。範囲に対する操作の際に、範囲管理制御部4は範囲管理テーブル5の当該エントリの範囲の状態(確定状態17、ロード状態18)を、図中の矢印で示すように、ST1、ST2、ST3、ST4のいずれかの状態に設定する。
例えば、状態ST1(確定状態17:CURRENT,ロード状態18:EMPTY)の範囲に対して、ロードあるいはリストアの操作を実行する際、範囲管理制御部4は当該範囲のエントリに対して状態ST2(確定状態17:CURRENT,ロード状態18:LOADED)に変更する。範囲の追加の操作をさらに実行する際は、範囲管理制御部4は状態ST2であった当該範囲のエントリの状態を状態ST4(確定状態17:FIXED,ロード状態18:LOADED)に変更する。なお、範囲の追加により範囲管理制御部4が新規に作成した範囲のエントリの状態は状態ST1である。状態ST3は確定状態17がFIXEDでロード状態18がEMPTYである。
データ管理装置1は図に示されていない範囲の操作を行わない。
つまり、データ管理装置1は、空である現在の範囲(状態ST1)に対してバックアップ、リストア、ロード、範囲の追加の各処理を行う。このとき、範囲管理制御部4は、範囲管理テーブル5の当該範囲のエントリの状態に対して、バックアップまたは空の範囲のリストアの際には状態を変更せず、ロードまたは空でない範囲のリストアの際には状態ST2に変更し、範囲の追加の際には状態ST3に変更する。
また、データ管理装置1は、空でない現在の範囲(状態ST2)に対してロード、バックアップ、範囲の追加、範囲の削除の各処理を行う。このとき、範囲管理制御部4は、範囲管理テーブル5の当該範囲のエントリの状態に対して、ロードまたはバックアップの際には状態を変更せず、範囲の追加の際には状態ST4に変更し、範囲の削除の際には状態ST1に変更する。
また、データ管理装置1は、空でない確定範囲(状態ST4)に対してバックアップ、範囲の削除の各処理を行う。このとき、範囲管理制御部4は、範囲管理テーブル5の当該範囲のエントリの状態に対して、バックアップの際には状態を変更せず、範囲の削除の際には状態ST3に変更する。
また、データ管理装置1は、空である確定範囲(状態ST3)に対してバックアップ、リストアの各処理を行う。このとき、範囲管理制御部4は、範囲管理テーブル5の当該範囲のエントリの状態に対して、バックアップまたは空の範囲のリストアの際には状態を変更せず、空でない範囲のリストアの際には状態ST4に変更する。
図7に示すように、範囲管理制御部4は、バックアップ時の状態に復元するリストアの際、ロード状態18の変更は行うが、確定状態17の変更は行わない。なお、データ管理装置1はロード状態18がEMPTYの時に限り当該範囲に対するリストア処理を実行する。
但し、データ管理装置1が各状態において他の処理を実行しても構わない。例えば、ロードされた行の上書きを許可し、ロード状態18がLOADEDの時にもリストア処理を実行してもよい。
次に、データ管理装置1におけるロード処理の動作について説明する。
データ処理部3は、端末装置2からロード要求として入力された行に対して、任意のデータ処理を実行し、複数の行をまとめたデータの固まりであるグループを作成する。
図8は、データ処理の結果生成されるグループの一例である。
この例では、グループ100は、5つの行101a〜101eによって構成される。グループに含まれる行は1つであっても良い。また、グループ内でのデータ配置は自由である。例えば、行が複数のフィールドから構成されている場合、フィールドごとにまとめたブロックをさらにまとめたてグループとしてもよい。あるいは、グループ内のデータに対して圧縮や暗号化などのデータ処理をしてまとめたものであってもよい。
また、データ処理部3は、グループの作成においてグループ単位のキー情報を取り出す。
キー情報とは、例えば、キーの最小値と最大値のことである。なお、キーはデータベースの定義として予め設定され記憶機器に記憶されているものとする。
グループ単位のキー情報は、行においてキー属性が設定されたフィールドと同じでも違っても構わない。
図9は、1つの行が行番号102a、タイムスタンプ102b、カラー102cの3つのフィールドを有する場合のグループ100の例である。
図9において、キーとして定義されているフィールドが行番号102aとタイムスタンプ102bである場合、グループ100のキー情報は、行番号102aが最小値“1”、最大値“5”、タイムスタンプ102bが最小値“2005/10/13 12:01”、最大値“2005/10/20 11:54”である。
範囲管理制御部4は、データ処理部3よりグループとそのキー情報を入力して範囲管理テーブル5を更新し、データアクセス制御部6を介してデータ格納領域部7へのグループの書込みを行う。データアクセス制御部6は、範囲管理制御部4を介してグループをデータ格納領域部7に保存する。
図10は、データ管理装置1におけるロード処理の動作を示すフローチャートである。
データ処理部3が端末装置2からロード要求を入力した際にデータ管理装置1が実行するロード処理について、図10に基づいて以下に説明する。
まず、データ処理部3は、グループのキー情報(最小値、最大値)を特定するための変数(以下、キー情報変数とする)を初期化する。ここでは、一例として、キー情報は行番号とタイムスタンプの2つとし、最小値には通常取りえない十分に大きな値(例えば、十進数で全ての桁が9)を設定し、最大値には0またはナル値を設定する(ステップS100)。
次に、データ処理部3はロードする行を端末装置2から入力する(ステップS101)。
次に、データ処理部3は行入力の終了の判定を行う(ステップS102)。
判定の結果、行入力の終了でない場合、データ処理部3は、入力した行の行番号とタイムスタンプそれぞれのフィールドの値をキー情報変数の値と比較して、入力した行のフィールドの値がキー情報変数の最小値より小さい場合、キー情報変数の最小値をフィールドの値に置き換え、入力した行のフィールドの値がキー情報変数の最大値より大きい場合、キー情報変数の最大値をフィールドの値に置き換える。なお、個々のフィールドの行内での位置は予めデータベースの定義情報を参照して既知であるものとする(ステップS103)。
次に、データ処理部3は入力した行をグループへ追加する。このとき、データ処理部3は入力したグループをバッファメモリ951に追加記憶する(ステップS104)。
次に、データ処理部3は1つのグループとして更新領域8に追加記憶する条件(以下、グループ条件とする)を満たしているかの判定を行う。グループ条件としては、グループに追加した行数が予め設定した行数を満たしている、あるいは、グループに追加した行の長さの積算値が予め設定したグループのサイズを満たしている、などの設定とする。1グループのサイズはバッファサイズ以内でバッファサイズに近いバッファサイズに適合したサイズが好ましい(ステップS105)。
グループ条件を満たしていない場合、データ処理部3は処理をステップS101に移す。
グループ条件を満たしている場合、データ処理部3は範囲管理制御部4に対してグループの書き出しを命令するデータ管理命令を出力する。データ管理命令にはキー情報変数が含まれる。範囲管理制御部4はデータアクセス制御部6に対してデータ格納領域部7の更新領域8へのグループの書き出しを命令するデータアクセス命令を出力し、データアクセス制御部6はデータ処理部3が生成したグループをバッファメモリ951からデータ格納領域部7の更新領域8に追加で書き出し保存する。また、データアクセス制御部6は更新領域8に書き出したグループが記憶されたバッファメモリ951の領域を開放する(ステップS106)。
次に、範囲管理制御部4は範囲管理テーブル5の更新を行う。このとき、範囲管理制御部4は確定状態17がCURRENTであるエントリを範囲管理テーブル5において検索して選択する。そして、選択したエントリのテーブル最終書込み時刻11と選択したエントリのグループ特定情報(開始グループ番号15、グループ数16)と行特定情報(最小行番号21、最大行番号22、最小タイムスタンプ23、最大タイムスタンプ24)とを更新する。また、ロード状態18がEMPTYの場合には、図7の範囲の状態遷移図に従って、ロード状態18をLOADEDに変更する。グループ数16は、ロード状態18がLOADEDの場合には、現在のグループ数16に1を加算した値を設定し、ロード状態18がEMPTYの場合には1つ前の範囲のエントリの開始グループ番号15とグループ数16を加算した値を設定する。そして、エントリ最終書込み時刻20には現在の時刻を設定する。また、キー情報変数が示すグループの行番号の最小値が範囲管理テーブル5の最小行番号21より小さい場合、最小行番号21をキー情報変数の行番号の最小値で置き換え、キー情報変数が示すグループの行番号の最大値が範囲管理テーブル5の最大行番号22より大きい場合、最大行番号22をキー情報変数の行番号の最大値で置き換える。同様に、キー情報変数が示すグループのタイムスタンプの最小値、最大値を最小タイムスタンプ23、最大タイムスタンプ24と比較して置き換える(ステップS107)。
次に、データ処理部3はステップS102で行入力の終了(新たに行が入力されないこと)を検出しているかの判定を行う(ステップS107)。
判定の結果、行入力の終了を検出している場合、データ処理部3はロード処理を終了する。
行入力の終了を検出していない場合、データ処理部3はステップ101に処理を移す。
ステップS102で行の終了と判定した場合、データ処理部3はグループの書き残しがあるかの判定を行う(ステップS109)。
データ処理部3は、グループの書き残しがある場合にはステップS106に処理を移し、グループの書き残しがない場合にはロード処理を終了する。
以上のロード処理の動作の結果、データ格納領域部7の更新領域8にグループが格納される。
図11は、データ管理装置1が3つのグループ100a〜100cを更新領域8に格納した例である。
次に、データ管理装置1における範囲の追加処理の動作概要を説明する。
データ処理部3は、端末装置2から範囲の追加要求(範囲追加要求データの一例)を受付け、範囲の追加を命令するデータ管理命令を出力して範囲管理制御部4を呼び出す。範囲管理制御部4は更新領域8内のグループを参照領域9に移動させるデータアクセス命令を出力してデータアクセス制御部6を呼び出す。データアクセス制御部6はデータ格納領域部7の更新領域8にあるグループを参照領域9に移動し、範囲管理制御部4は範囲管理テーブル5を更新する。
図12は、データ管理装置1における範囲の追加処理の動作を示すフローチャートである。
データ処理部3が端末装置2から範囲の追加要求を入力した際にデータ管理装置1が実行する範囲の追加処理について、図12に基づいて以下に説明する。
まず、データ処理部3は範囲の追加を命令するデータ管理命令を出力して範囲管理制御部4を呼び出し、範囲管理制御部4は確定状態17がCURRENTであるエントリを範囲管理テーブル5において検索して選択する。そして、範囲管理制御部4は選択したエントリの開始グループ番号15とグループ数16を取得してデータ処理部3に出力する(ステップS200)。
次に、データ処理部3は、処理したグループの数をカウントするための変数であるカウンタNを0に初期化する(ステップS201)。
次に、データ処理部3はカウンタNが範囲管理制御部4から入力したグループ数16より小さいかどうかを判定する(ステップS202)。
カウンタNがグループ数16より小さい場合、データ処理部3は範囲管理制御部4から入力した開始グループ番号15にカウンタNを加えたグループ番号のグループを更新領域8から参照領域9に移動させるデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4は入力したデータ管理命令に対応する当該グループの移動を命令するデータアクセス命令をデータアクセス制御部6に出力する。そして、データアクセス制御部6はデータ格納領域部7の更新領域8から当該グループを読み出しバッファメモリ951に書き出す(ステップS203)。
次に、データ処理部3はバッファメモリ951に記憶されたグループをデータ格納領域部7の参照領域9に書き出させるデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4はデータ管理命令に相当するデータアクセス命令をデータアクセス制御部6に出力し、データアクセス制御部6はバッファメモリ951に記憶されたグループを参照領域9に書き出し、参照領域9に書き出したグループが記憶されたバッファメモリ951の領域を開放する(ステップS204)。
次に、データ処理部3はカウンタNに1を加える(ステップS205)。
データ管理装置1は以上の処理をカウンタNがグループ数16以上になるまで繰り返す。
ステップS202でカウンタNがグループ数16以上であると判定した場合、データ処理部3は更新領域8にあるグループの削除を命令するデータ管理命令を範囲管理制御部4に出力する。そして、範囲管理制御部4は更新領域8にあるグループの削除を命令するデータアクセス命令をデータアクセス制御部6に出力し、データアクセス制御部6は更新領域8に記憶されているグループを削除する(ステップS206)。
以上により、行の追加が可能な更新領域8にあるグループを参照だけが可能な参照領域9へ移動したことになる。
図13は、更新領域8にある3つのグループ100a〜100cを参照領域9に移動したイメージを示す。
最後に、データ処理部3はエントリの追加を要求するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4は範囲管理テーブル5を更新する。このとき、範囲管理制御部4はステップS200で検索したエントリに対して、図7の状態遷移図に従い確定状態17をCURRENTからFIXEDに変更すると共に、確定時刻19には現在の時刻を設定する。また、範囲管理制御部4は新たな範囲のエントリを追加し、範囲ID14に一つ前の範囲の範囲ID14に1を加えた値を設定し、開始グループ番号15に1つ前の範囲の開始グループ番号15とグループ数16を足した値を設定し、グループ数16に0を設定し、確定状態17にCURRENTを設定し、ロード状態18にEMPTYを設定し、エントリ最終書込み時刻20に現在の時刻を設定し、追加したエントリのその他の項目にはナル値を設定する。さらに、範囲管理制御部4は、テーブル最終書込み時刻11に現在の時刻を設定し、範囲数12に1を加えた値を設定する(ステップS207)。
図14は、図6に示す範囲管理テーブル5の状態にあるデータベースに対して、範囲の追加を行った直後の範囲管理テーブル5の例である。
次に、データ管理装置1における範囲の削除処理の動作概要を説明する。
データ管理装置1は、範囲の削除処理により、対象となる範囲の領域をデータ格納領域部7から開放することができる。
図15は、範囲の削除の概念図であり、範囲30bを削除した場合を示す。
まず、データ処理部3は、端末装置2から範囲ID指定で範囲の削除要求(範囲削除要求データの一例)を受付け、範囲IDに対応する範囲の削除を命令するデータ管理命令を出力して範囲管理制御部4を呼び出す。範囲管理制御部4は、データ管理要求が示す範囲IDに範囲ID14が一致するエントリを検索して選択し、選択したエントリのグループ特定情報(開始グループ番号15、グループ数16)を範囲管理テーブル5から取得する。そして、選択したエントリが示す範囲に属するグループの削除を命令するデータアクセス命令を出力してデータアクセス制御部6を呼び出し、データアクセス制御部6は指定された範囲IDに対応する範囲に属するグループをデータ格納領域部7から削除する。また、範囲管理制御部4は範囲管理テーブル5を更新する。
図16は、データ管理装置1における範囲の削除処理の動作を示すフローチャートである。
データ処理部3が端末装置2から範囲ID指定で範囲の削除要求を入力した際にデータ管理装置1が実行する範囲の削除処理について、図16に基づいて以下に説明する。
まず、データ処理部3は範囲IDに対応する範囲の削除を命令するデータ管理命令を出力して範囲管理制御部4を呼び出し、範囲管理制御部4はデータ管理命令が示す範囲IDに範囲ID14が一致するエントリを範囲管理テーブル5において検索して選択する。そして、範囲管理制御部4は選択したエントリの開始グループ番号15とグループ数16を取得してデータ処理部3に出力する(ステップS300)。
次に、データ処理部3は、処理したグループの数をカウントするための変数であるカウンタNを0に初期化する(ステップS301)。
次に、データ処理部3はカウンタNが範囲管理制御部4から入力したグループ数16より小さいかどうかを判定する(ステップS302)。
カウンタNがグループ数16より小さい場合、データ処理部3は範囲管理制御部4から入力した開始グループ番号15にカウンタNを加えたグループ番号に対応するグループの削除を命令するデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4は入力したデータ管理命令に対応する当該グループの削除を命令するデータアクセス命令をデータアクセス制御部6に出力する。そして、データアクセス制御部6はデータ格納領域部7において当該グループが記憶された領域を開放する(ステップS304)。
次に、データ処理部3はカウンタNに1を加える(ステップS305)。
データ管理装置1は以上の処理をカウンタNがグループ数16以上になるまで繰り返す。
ステップS302でカウンタNがグループ数16以上であると判定した場合、データ処理部3はエントリの削除を命令するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4はステップS300で検索したエントリに対して、図7の状態遷移図に従い、ロード状態18をLOADEDからEMPTYに変更する。ただし、ロード状態18がすでにEMPTYの場合にはロード状態18を変えない。また、範囲管理制御部4はテーブル最終書込み時刻11とエントリ最終書込み時刻20とに現在の時刻を設定する(ステップS306)。
図17は、図6に示す範囲管理テーブル5の状態にあるデータベースに対して、範囲ID14が“2”の範囲を削除した直後の範囲管理テーブル5の例である。
次に、データ管理装置1における検索処理の動作概要を説明する。
データ処理部3は、端末装置2から検索要求を受付け、検索要求を解析し、範囲管理制御部4に要求し検索対象となるグループを取得する。そして、データ処理部3は取得した各グループに含まれる各行に対する照合処理を実行して結果を端末装置2に出力する。範囲管理制御部4はデータ処理部3から検索要求の解析結果として受け取った範囲のキー情報で範囲管理テーブル5を参照して検索対象範囲のエントリを読み出し、当該エントリのグループ特定情報で検索対象のグループを特定する。そして、範囲管理制御部4はデータアクセス制御部6に要求し検索対象の範囲に属する全てのグループをデータ格納領域部7から読み出す。
図18は、データ管理装置1における検索処理の動作を示すフローチャートである。
データ処理部3が端末装置2から検索条件を示す検索要求(検索要求データの一例)を入力した際にデータ管理装置1が実行する検索処理について、図18に基づいて以下に説明する。
まず、データ処理部3は、検索条件を示す検索問合せ文を検索要求として端末装置2から入力する(ステップS400)。
次に、データ処理部3は検索問合せ文が示す検索条件から範囲のキーになる条件を抽出する。範囲のキーの情報はデータベース定義時に予め設定されているものとする(ステップS401)。
図6における範囲管理テーブル5の例では、行番号とタイムスタンプの2つを範囲のキーとして定義している。
この範囲のキーを前提とした検索問い合わせ文の例を図19に示す。
図19に示す検索問い合わせ文は、行番号が“3000”より大きく、且つ、タイムスタンプが“2004/04/16 00:00”以上“2004/06/15 23:59”以下で、且つ、カラーが“RED”を検索条件にすることを意味する。ここで、範囲のキーの条件として抽出される情報は、行番号が“3000”より大きく、且つ、タイムスタンプが“2004/04/16 00:00”以上“2004/06/15 23:59”以下という情報である。
次に、データ処理部3は検索問い合わせ文が示す検索条件に範囲のキーになる条件があるか否かの判定を行う(ステップS402)。
範囲のキーになる条件がある場合、データ処理部3は範囲のキーに対応する範囲のグループ特定情報を要求するデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4は範囲管理テーブル5を検索してロード状態18がLOADEDで、且つ、範囲のキーに行特定情報(最小行番号21、最大行番号22、最小タイムスタンプ23、最大タイムスタンプ24)が対応する範囲のエントリを選択し、選択したエントリのグループ特定情報(開始グループ番号15、グループ数16)をデータ処理部3に出力する。データ処理部3は範囲管理制御部4が出力した開始グループ番号15とグループ数16とを検索対象グループの情報として入力する(ステップS403)。
図6と図19の条件を前提とした場合、範囲ID14が4、5および6の範囲が検索対象範囲であり、検索対象範囲に属するグループが検索対象グループである。
範囲のキーになる条件がない場合、データ処理部3はロード状態18がLOADEDであるエントリのグループ特定情報を要求するデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4は範囲管理テーブル5を検索してロード状態18がLOADEDである範囲のエントリを選択し、選択したエントリのグループ特定情報(開始グループ番号15、グループ数16)をデータ処理部3に出力する。データ処理部3は範囲管理制御部4が出力した開始グループ番号15とグループ数16とを検索対象グループの情報として入力する(ステップS404)。
次に、データ処理部3は、検索対象グループに含まれる1グループの読み出しを命令するデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4はデータ管理命令に対応する当該グループの読み出しを命令するデータアクセス命令をデータアクセス制御部6に出力する。データアクセス制御部6は検索対象である当該グループをデータ格納領域部7から読み出してバッファメモリ951に記憶する(ステップS405)。
次に、データ処理部3は検索対象グループに含まれる全グループの読み出しが終了したか否かを判定する(ステップS406)。
読み出し終了である場合、データ処理部3は検索処理を終了する。
読み出し終了でない場合、データ処理部3はバッファメモリ951に記憶されたグループに対して行単位の照合処理を行い検索条件に該当する行の情報を検索結果として端末装置2に出力する。図19を例にした場合、データ処理部3はバッファメモリ951に記憶されたグループに含まれる各行を検索し、行の“カラー”フィールドが“RED”である行を選択する照合処理を行う。また、データ処理部3は、検索結果を端末装置2に出力後、照合処理したグループが記憶されたバッファメモリ951の領域を開放する(ステップS407)。
次に、データ管理装置1におけるバックアップ処理の動作概要を説明する。
データ管理装置1では、バックアップの種類として、フルバックアップ、差分バックアップ、増分バックアップに加え、範囲指定によるバックアップを実現する。フルバックアップは全データのバックアップであり、差分バックアップはフルバックアップ後に追加・変更されたデータのバックアップであり、増分バックアップはフルバックアップ以外のバックアップ(差分バックアップまたは増分バックアップ)後に追加・変更されたデータのバックアップである。また、範囲指定バックアップは指定された範囲のバックアップである。
データ処理部3は、端末装置2からバックアップ要求(バックアップ要求データの一例)を受付け、データベースの定義情報やデータ格納領域部7に格納されたデータを範囲管理制御部4を介して取得し、取得したデータをまとめたアーカイブファイル300を生成し記憶機器に記憶する。範囲管理制御部4はデータ処理部3からのバックアップ命令に従い、範囲管理テーブル5の情報を取得すると共にデータアクセス制御部6にバックアップ対象のグループを要求する。
図20は、データ管理装置1がバックアップ処理において生成するアーカイブファイル300のデータ構造を示した図である。
300はアーカイブファイルを示す。
301はバックアップの種類、アーカイブファイル300の生成日付、範囲情報(開始範囲ID、範囲数)などのアーカイブファイル300のヘッダ情報(アーカイブヘッダ情報)である。
302はデータベース定義情報であり、データベースのフィールド情報やキー情報などを含む。
303は範囲管理テーブル5の情報である。
304はデータ格納領域部7からバックアップして生成したアーカイブファイル300に含まれるグループに関する情報(グループデータ情報)である。
図20はバックアップ対象のグループ数が4の場合における例である。
グループデータ情報304はグループデータヘッダ情報313とグループ312a〜312dとを備える。
グループデータヘッダ情報313は、開始グループ番号305、グループ数306、更新領域内グループ数307、個別グループ情報308a〜308dを備える。
さらに、個別グループ情報308a〜308dは、それぞれ、アーカイブファイル300内でのグループの位置を示すオフセット309、グループのサイズ310、空のグループか否かを示すフラグ311を備える。
個別グループ情報308aのオフセット309(OFFSET#1)はグループ312a(グループ#1)の位置を示し、個別グループ情報308bのオフセット309(OFFSET#2)はグループ312b(グループ#2)の位置を示し、個別グループ情報308cのオフセット309(OFFSET#3)はグループ312c(グループ#3)の位置を示し、個別グループ情報308dのオフセット309(OFFSET#4)はグループ312d(グループ#4)の位置を示す。
図21は、データ管理装置1が差分バックアップまたは増分バックアップで使用するバックアップ開始位置を管理するためのテーブル(バックアップ開始位置テーブル)である。
400はバックアップ開始位置テーブルの構造を示す。
401は差分バックアップにおけるバックアップ対象の開始位置を示すグループ番号(差分バックアップ開始グループ番号)である。
402は増分バックアップにおけるバックアップ対象の開始位置を示すグループ番号(増分バックアップ開始グループ番号)である。
差分バックアップ開始グループ番号401には、データ処理部3により、フルバックアップ直後における最後のグループ番号に1を加えた値が設定される。
増分バックアップ開始グループ番号402には、データ処理部3により、差分バックアップ、増分バックアップの直後における最後のグループ番号に1を加えた値が設定される。
図22は、データ管理装置1におけるバックアップ処理の動作を示すフローチャートである。
データ処理部3が端末装置2からバックアップ要求を入力した際にデータ管理装置1が実行するバックアップ処理について、図22に基づいて以下に説明する。
まず、データ処理部3はバックアップの種類が指定されたバックアップ要求を端末装置2から受け取る。バックアップの種類には、範囲指定バックアップ、フルバックアップ、差分バックアップ、増分バックアップがある(ステップS500)。
次に、データ処理部3はアーカイブファイル300に設定する情報を要求するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4は範囲管理テーブル5から取得した情報をデータ処理部3に出力する。このとき、範囲管理制御部4は、アーカイブファイル300のグループデータヘッダ情報313に設定する開始グループ番号305、グループ数306、更新領域内グループ数307と、範囲管理テーブル情報303に設定する情報と、アーカイブヘッダ情報301に設定する開始範囲ID、範囲数とに関する情報を範囲管理テーブル5から取得する(ステップS501)。
次に、データ処理部3は、アーカイブヘッダ情報301、データベース定義情報302、範囲管理テーブル情報303、グループデータヘッダ情報313を作成し、アーカイブファイル300に順番に書き出す。このとき、データ処理部3は、ステップS500で入力したバックアップ要求とステップS501で範囲管理制御部4から取得した範囲管理テーブル5の情報とに基づいてアーカイブヘッダ情報301を生成し、データベース作成時に定義された情報に基づいてデータベース定義情報302を生成し、ステップS501で範囲管理制御部4から取得した範囲管理テーブル5の情報に基づいて範囲管理テーブル情報303を生成する。また、データ処理部3は、ステップS501で範囲管理制御部4から取得した範囲管理テーブル5の情報に基づいてグループデータヘッダ情報313を生成する。データ処理部3は、グループデータヘッダ情報313のうち、個別グループ情報308a〜308dには予め定めた初期値を設定する。範囲管理テーブル情報303には、例えば、ロード状態18(グループ有無情報の一例)などが含まれる(ステップ502)。
次に、データ処理部3は、処理したグループの数をカウントするための変数であるカウンタNを0に初期化する(ステップS503)。
次に、データ処理部3はカウンタNがアーカイブファイル300のグループデータヘッダ情報313に設定したグループ数306より小さいかどうかを判定する(ステップS504)。
カウンタNがグループ数306より小さい場合、データ処理部3は、アーカイブファイル300のグループデータヘッダ情報313に設定した開始グループ番号305にカウンタNを加えた値をバックアップ対象グループの番号を示す変数であるグループ番号GNに設定する(ステップS505)。
次に、データ処理部3は、範囲管理テーブル情報303に含まれるロード状態18に基づいて、グループ番号GNが示すグループが空のグループでないか否かの判定を行う。このとき、データ処理部3はロード状態18がEMPTYである場合に当該グループが空であると判定する(ステップS506)。
グループ番号GNのグループが空であると判定した場合、データ処理部3はステップS509に処理を移す。
グループ番号GNのグループが空でないと判定した場合、データ処理部3はグループ番号GNに対応するグループを要求するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4はデータ管理命令に対応するグループを要求するデータアクセス命令をデータアクセス制御部6に出力する。データアクセス制御部6はグループ番号GNのグループをデータ格納領域部7から読み出してバッファメモリ951に記憶する(ステップS507)。
次に、データ処理部3はバッファメモリ951に記憶されたグループ番号GNに対応するグループをアーカイブファイル300に追加で書き出す。また、データ処理部3はグループ番号GNに対応するグループが記憶されたバッファメモリ951の領域を開放する(ステップS508)。
また、データ処理部3はステップS502でアーカイブファイル300に出力したグループデータヘッダ情報313をグループ番号GNに対応するグループに関して更新する。具体的には、個別グループ情報であるアーカイブファイル300内でのオフセット309、グループのサイズ310、空のグループか否かを示すフラグ311を設定する(ステップS509)。
次に、データ処理部3はカウンタNに1を加える(ステップS510)。
データ管理装置1は以上の処理をカウンタNがグループ数306以上になるまで繰り返す。
ステップS504でカウンタNがグループ数306以上であると判定した場合、データ処理部3はバックアップ開始位置テーブル400を更新しバックアップ処理を終了する。バックアップ開始位置テーブル400を更新する際、データ処理部3は、フルバックアップの場合には、最後にアーカイブファイル300に追加したグループのグループ番号に1を加えた値(グループ番号GN+1)を差分バックアップ開始グループ番号401に設定する。また、データ処理部3は、差分バックアップまたは増分バックアップの場合には、最後にアーカイブファイル300に追加したグループのグループ番号に1を加えた値(グループ番号GN+1)を増分バックアップ開始グループ番号402に設定する(ステップS511)。
図23は、ステップS501についてバックアップの種類に分けて動作の詳細を説明したフローチャートである。
まず、データ処理部3はバックアップ要求が示すバックアップの種類を判定する。範囲指定バックアップの要求にはバックアップする範囲を示す範囲IDが含まれる(ステップS600)。
範囲指定バックアップの場合、データ処理部3は、範囲管理制御部4が範囲管理テーブル5を検索して選択した範囲ID14がバックアップ要求に含まれる範囲IDと一致するエントリについて、開始グループ番号15とグループ数16とを取得する。ステップS502において、データ処理部3は、範囲管理テーブル5から取得した開始グループ番号15とグループ数16とを、アーカイブファイル300のグループデータヘッダ情報313の開始グループ番号305とグループ数306とに設定する(ステップS601)。
フルバックアップの場合、データ処理部3は、範囲管理テーブル5の情報に基づいて、全範囲を対象とする開始グループ番号とグループ数とを算出する。ここで算出する開始グループ番号は範囲管理テーブル5の全エントリにおける最小の開始グループ番号15であり、グループ数は全エントリのグループ数16の合計値である。ステップS502において、データ処理部3は算出した開始グループ番号とグループ数とをアーカイブファイル300のグループデータヘッダ情報313の開始グループ番号305とグループ数306とに設定する。データ処理部3は範囲管理テーブル5の情報を範囲管理制御部4を介して取得する(ステップS602)。
差分バックアップの場合、データ処理部3は、バックアップ開始位置テーブル400を参照して差分バックアップ開始グループ番号401を取得し、範囲管理テーブル5の情報に基づいて差分バックアップ開始グループ番号401以降のグループ数を算出する。ここで算出するグループ数は範囲管理テーブル5の全エントリにおける最大の開始グループ番号15に最大の開始グループ番号15を有する当該エントリのグループ数16を加算した値から差分バックアップ開始グループ番号401を減算した値に1加算した値である。ステップS502において、データ処理部3は、アーカイブファイル300に対して、差分バックアップ開始グループ番号401をグループデータヘッダ情報313の開始グループ番号305に設定し、算出したグループ数をグループデータヘッダ情報313のグループ数306に設定する。データ処理部3は範囲管理テーブル5の情報を範囲管理制御部4を介して取得する(ステップS603)。
増分バックアップの場合、データ処理部3は、バックアップ開始位置テーブル400を参照して増分バックアップ開始グループ番号402を取得し、範囲管理テーブル5に基づいて増分バックアップ開始グループ番号402以降のグループ数を算出する。ここで算出するグループ数は範囲管理テーブル5の全エントリにおける最大の開始グループ番号15に最大の開始グループ番号15を有する当該エントリのグループ数16を加算した値から増分バックアップ開始グループ番号402を減算した値に1加算した値である。ステップS502において、データ処理部3は、アーカイブファイル300に対して、増分バックアップ開始グループ番号402をグループデータヘッダ情報313の開始グループ番号305に設定し、算出したグループ数をグループデータヘッダ情報313のグループ数306に設定する。データ処理部3は範囲管理テーブル5の情報を範囲管理制御部4を介して取得する(ステップS604)。
ステップS601〜ステップS604の処理において、バックアップの種類に応じて取得または算出し、アーカイブファイル300のグループデータヘッダ情報313に設定する開始グループ番号とグループ数とに対して、データ処理部3は、開始グループ番号からグループ数分の各グループにおいて範囲管理テーブル5の確定状態17がCURRENTであるエントリが示す範囲に属するグループの数を算出し、算出したグループ数をS502でアーカイブファイル300のグループデータヘッダ情報313に設定する更新領域内グループ数307とする。また、データ処理部3は、バックアップの種類に応じて取得または算出した開始グループ番号とグループ数とに対応するグループが属する各範囲の範囲IDと範囲数とを範囲管理テーブルに基づいて算出する。ステップS502において、データ処理部3は算出した範囲IDと範囲数とをアーカイブファイル300のアーカイブヘッダ情報301の開始範囲IDと範囲数とに設定する。データ処理部3は範囲管理テーブル5の情報を範囲管理制御部4を介して取得する(ステップS605)。
次に、データ管理装置1におけるリストア処理の動作概要を説明する。
データ管理装置1は、端末装置2からのリストア要求に対して、バックアップ処理時に生成したアーカイブファイル300を入力として範囲管理制御部4およびデータアクセス制御部6を介してリストア処理を実行する。データ処理部3が入力したリストア要求に対応して、範囲管理制御部4は範囲管理テーブル5を更新し、データアクセス制御部6はリストア対象のグループをデータ格納領域部7に書き込む。
図24は、データ管理装置1におけるリストア処理の動作を示すフローチャートである。
データ処理部3が端末装置2からリストア要求を入力した際にデータ管理装置1が実行する範囲の削除処理について、図24に基づいて以下に説明する。
まず、データ処理部3はリストア要求を端末装置2から受け取る(ステップS700)。
次に、データ処理部3は、データ管理装置1の記憶機器からアーカイブファイル300を取得し、アーカイブヘッダ情報301に含まれるバックアップ種類に従い、リストア条件を満足しているか否かのチェックを行う。チェック条件は、例えば、範囲指定バックアップにより生成されたアーカイブファイル300をリストアする場合、リストア対象の範囲を示すエントリのロード状態18が図7の状態遷移図に従いEMPTYであること、アーカイブファイル300内のデータベース定義情報302と範囲管理テーブル情報303とが現在リストアしようとしているデータベースのデータベース定義情報と範囲管理テーブル情報303とに対して矛盾がないことなどである。なお、上書きモードでアーカイブファイル300のリストアをする場合、リストア対象の範囲を示すエントリのロード状態18がEMPTYである必要はない。データ処理部3は範囲管理制御部4を介して範囲管理テーブル5の情報を取得する(ステップS701)。
リストア条件を満足していないと判定した場合、データ処理部3はリストア処理を終了する。
リストア条件を満足していると判定した場合、データ処理部3は、アーカイブファイル300を参照して、グループ数306から更新領域内グループ数307を引いた値を変数である参照領域内グループ数RNに設定する(ステップS702)。
次に、データ処理部3は処理したグループの数をカウントするため変数であるカウンタNを0に初期化する(ステップS703)。
次に、データ処理部3はカウンタNがグループ数306より小さいかどうかを判定する(ステップS704)。
カウンタNがグループ数306より小さい場合、データ処理部3は、開始グループ番号305にカウンタNを加えた値を変数であるグループ番号GNに設定する(ステップS705)。
次に、データ処理部3は、アーカイブファイル300を参照して、グループ番号GNに対応する個別グループ情報のフラグ311が空を示すかの判断をする(ステップS706)。
当該フラグ311が空を示さないと判定した場合、データ処理部3は、グループ番号GNに対応するグループをアーカイブファイル300から読み出しバッファメモリ951に記憶する(ステップS707)。
当該フラグ311が空を示すと判定した場合、データ処理部3は、個別グループ情報のサイズ310を設定情報として持つ仮想的な空のグループを作成する(ステップS708)。
次に、データ処理部3はカウンタNが参照領域内グループ数RNより小さいか否かを判定する(ステップS709)。
カウンタNが参照領域内グループ数RNより小さい場合、データ処理部3は、リストア対象グループをデータ格納領域部7の参照領域9に書き出させるデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4はデータ管理命令に相当するデータアクセス命令をデータアクセス制御部6に出力し、データアクセス制御部6はバッファメモリ951に記憶されたグループを参照領域9に書き出す。また、データアクセス制御部6は参照領域9に書き出したグループが記憶されたバッファメモリ951の領域を開放する(ステップS710)。
カウンタNが参照領域内グループ数RN以上である場合、データ処理部3は、リストア対象グループをデータ格納領域部7の更新領域8に書き出させるデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4はデータ管理命令にデータアクセス命令をデータアクセス制御部6に出力し、データアクセス制御部6はバッファメモリ951に記憶されたグループを更新領域8に書き出す。また、データアクセス制御部6は更新領域8に書き出したグループが記憶されたバッファメモリ951の領域を開放する(ステップS711)。
次に、データ処理部3はカウンタNに1を加えてステップS704に処理を移す。
ステップS704において、カウンタNがグループ数306以上であると判定した場合、データ処理部3は範囲管理テーブル5のリストアを命令するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4は範囲管理テーブル5を更新し、データ管理装置1はリストア処理を終了する(ステップS713)。
図25は、ステップS713における範囲管理テーブル5の更新の動作を示したフローチャートである。
まず、データ処理部3はアーカイブファイル300のアーカイブヘッダ情報301のバックアップ種類を参照し、範囲指定バックアップのリストアか否かを判定する(ステップS800)。
範囲指定バックアップのリストアである場合、データ処理部3は範囲管理テーブル5の1範囲のリストアを命令するデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4は範囲管理テーブル5においてリストア対象の範囲のエントリのロード状態18を、図7の状態遷移図に従って、LOADEDに変更する(ステップS801)。
範囲指定バックアップのリストアでない場合、データ処理部3は範囲管理テーブル5の全範囲のリストアを命令するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4はアーカイブファイル300の範囲管理テーブル情報303で範囲管理テーブル5の情報を置き換える(ステップS802)。
実施の形態におけるバッファメモリはバッファメモリより高速なキャッシュメモリであってもよい。
データベースに代表されるデータ管理装置1ではデータアクセスの高速化が望まれる。そこで、実施の形態におけるデータ管理装置1は、バッファメモリ(またはキャッシュメモリ)を介してCPU911と磁気ディスク装置920との間で個別のデータ(行)を入出力しデータアクセスの効率を向上することでデータアクセスを高速化している。また、行をバッファサイズ(またはキャッシュサイズ)でまとめたデータ(グループ)を単位として管理しグループ単位で行をアクセスしているため、バッファサイズ(またはキャッシュサイズ)に適合するサイズ分の行を入出力することが容易であり、データアクセスの効率をさらに向上している。また、データ管理装置1はグループを任意にまとめたデータ(範囲)を記憶領域(参照領域9または更新領域8)の連続する領域に記憶することで、連続するグループにアクセスする際に磁気ディスク装置920がヘッダおよび磁気ディスクを移動するデータアクセス時間を短縮ている。
このため、実施の形態におけるデータ管理装置1は、追記型のデータベースとして特に有用であり、例えば、時・日・週・月などの時間単位を範囲とすることで任意の時間単位に発生したデータを高速に処理することができる。
上記のように実施の形態1では、複数の行をまとめたグループを単位にデータ格納領域部7にデータを連続的に配置して格納する方法を採っている。入出力単位がグループ単位であること、アクセスするグループが連続的に配置されていることから高速なデータアクセスが可能となる。
また、範囲管理テーブル5に範囲ごとのキー情報(最小値、最大値)を持つことが可能であり、検索においてこのキー情報を利用してデータを読み出す前にアクセス対象の範囲のデータを絞り込むことができ、効率的なデータアクセスが可能となる。
また、範囲管理テーブル5にロード状態18を持ち、空の範囲を検索対象から除外することができ、効率的なデータアクセスが可能となる。
また、データロードにおいては、データの追加が許可された更新領域8に対してグループ単位で連続的に追加していくだけでよく、索引も持たないため、高速なロードが可能である。
また、範囲の追加は、定められた時間単位でなく、ユーザによって任意の時点で可能である。
また、範囲管理テーブル5によりデータ格納領域部7に配置された連続した領域として範囲を管理しているため、一括した処理が可能で範囲の削除に時間がかからない。
また、バックアップにおいては、範囲指定のバックアップの実現に加え、範囲管理テーブル5のロード状態18を参照して空の範囲に対するバックアップ処理をスキップすることで読み出し範囲を限定できるために効率的にバックアップを行うことが可能である。
また、リストアにおいては、範囲指定のリストアの実現に加え、アーカイブファイル300に含まれる範囲管理テーブル5から削除された範囲も削除されたものとして忠実に復元することが可能である。
上記実施の形態1において以下のようなデータ管理装置1について説明した。
データベースのデータ格納領域として、データの追加を許可する更新領域とデータの参照だけを許可する参照領域をもち、更新領域のデータは参照領域に追加され、参照領域へ追加されたデータは更新領域から削除されるデータ格納手段(データ格納領域部7)を備えたデータ管理装置1。
複数の行(レコード)を対象に所定のデータ処理を行うデータ処理手段(データ処理部3)と、前記データ処理の結果複数の行をまとめたグループを単位としてデータ格納領域上の範囲を管理する範囲管理テーブルを備え、データ格納領域に順番に追加される前記範囲を管理・制御する範囲管理制御手段(範囲管理制御部4)と、前記グループを格納するデータ格納領域上の前記グループへのアクセスを制御するデータアクセス制御手段(データアクセス制御部6)とを備えたデータ管理装置1。
前記範囲管理制御手段は、前記グループの追加が許可された現在の前記範囲の状態(CURRENT)と前記グループの追加が許可されない確定した前記範囲の状態(FIXED)のいずれかの前記範囲の状態(確定状態17)を前記範囲管理テーブルに保持し、前記範囲を管理することを特徴とするデータ管理装置1。
前記範囲管理制御手段は、前記範囲の状態を現在の前記範囲の状態から確定した前記範囲の状態に変更するとき、前記更新領域に格納されている前記グループを前記参照領域に移動させることを特徴とするデータ管理装置1。
前記範囲管理制御手段は、前記範囲の状態を前記現在の範囲の状態から前記確定した範囲の状態に変更するとき、前記更新領域に格納されている複数の前記グループを所定の条件(例えば、バッファサイズ)に従って併合して前記参照領域に移動させることを特徴とするデータ管理装置1。
前記範囲管理制御手段は、前記グループが追加されたことを示すロード済みの前記範囲の状態と前記グループが追加されていない空の前記範囲の状態のいずれかの前記範囲の状態を前記範囲管理テーブルに保持し、前記グループの追加において前記現在の範囲の状態を前記ロード済みの範囲の状態に設定することを特徴とする請求項1乃至4のいずれか1つのデータ管理装置。
前記範囲管理制御手段は、前記グループが追加されたことを示すロード済みの前記範囲の状態(LOADED)と前記グループが追加されていない空の前記範囲の状態(EMPTY)のいずれかの前記範囲の状態(ロード状態18)を前記範囲管理テーブルに保持し、前記範囲の削除において前記空の範囲の状態に設定することを特徴とするデータ管理装置1。
前記範囲管理制御手段は、前記グループが追加されたことを示すロード済みの前記範囲の状態と前記グループが追加されていない空の前記範囲の状態のいずれかの前記範囲の状態、および前記範囲に含まれる行に関連づく所定のキーの範囲情報(最小行番号21、最大行番号22、最小タイムスタンプ23、最大タイムスタンプ24)を前記範囲管理テーブルに保持し、検索においてデータ処理手段は前記空の範囲あるいは検索条件が前記キーの範囲情報との比較で偽となる範囲の前記グループを検索対象から外して検索処理を行うことを特徴とするデータ管理装置1。
前記範囲管理制御手段は、前記グループが追加されたことを示すロード済みの前記範囲の状態と前記グループが追加されていない空の前記範囲の状態のいずれかの前記範囲の状態を前記範囲管理テーブルに保持し、前記データ処理手段は前記範囲を指定したバックアップを行うことを特徴とするデータ管理装置1。
前記範囲を指定したバックアップのリストアにおいて、バックアップ時と同じ前記範囲の情報をもつ場合に限りリストアを実行することを特徴とするデータ管理装置1。
前記範囲管理制御手段は、前記グループが追加されたことを示すロード済みの前記範囲の状態と前記グループが追加されていない空の前記範囲の状態のいずれかの前記範囲の状態を前記範囲管理テーブルに保持し、バックアップにおいて前記データ処理手段は前記空の範囲の情報を保持したアーカイブファイルを生成することを特徴とするデータ管理装置1。
バックアップのリストアにおいて、前記データ処理手段は前記空の範囲の情報を復元することを特徴とするデータ管理装置1。
前記範囲管理テーブルは、現在の前記範囲の状態から確定した前記範囲の状態に変更するときの時刻の情報(確定時刻19)を保持し、前記データ処理手段、前記範囲管理制御手段を実行することを特徴とするデータ管理装置1。
前記範囲管理テーブルは、前記範囲に対して前記グループが追加された最終追加時刻の情報(エントリ最終書込み時刻20)を保持し、前記データ処理手段、前記範囲管理制御手段を実行することを特徴とするデータ管理装置1。
前記範囲管理テーブルは、前記範囲に含まれる行の最小行番号と最大行番号の情報を保持し、前記データ処理手段、前記範囲管理制御手段により検索を実行することを特徴とするデータ管理装置1。
前記範囲管理テーブルは、前記範囲に含まれる行の最小タイムスタンプと最大タイムスタンプの情報を保持し、前記データ処理手段、前記範囲管理制御手段により検索を実行することを特徴とするデータ管理装置1。
実施の形態2.
上記実施の形態1によるデータ管理装置1は、データ格納領域部7の更新領域8にあるグループを参照領域9に移動することで範囲の追加を行うものであった。
これに対して実施の形態2では、更新領域8にあるグループをマージ処理して生成した新しいグループを参照領域9に移動することを特徴とするデータ管理装置1について説明する。
図26は、グループのマージ処理を示す概念図である。
図26は、データ処理部3が実行するグループのマージ処理により、グループ100a〜100cが新たなグループ1000aに、グループ100d〜100gが新たなグループ1000bになることを示す。
マージ対象とするグループについて、グループのマージ条件をデータ管理装置1の記憶機器にあらかじめ保持し任意に設定できるものとする。なお、以降の説明において、グループをマージ後の新たなグループをマージグループと呼ぶことにする。
実施の形態2によるデータ管理システム900の構成図および範囲管理テーブル5の例を示す図は、上記実施の形態1と同様とする(図3、図6)。但し、実施の形態2におけるデータ管理装置1はバッファメモリ951と同じバッファサイズを持つマージ用のバッファメモリを備える。
図27は、実施の形態2による範囲の追加処理における動作を示すフローチャートである。
実施の形態2によるデータ管理装置1における範囲の追加処理の動作について、図27に基づいて以下に説明する。
データ処理部3は、端末装置2から範囲の追加要求を入力した際、現在の範囲のグループ特定情報を要求するデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4は、確定状態17がCURRENTである現在の範囲のエントリを範囲管理テーブル5において検索して選択し、選択したエントリの開始グループ番号15とグループ数16とを取得してデータ処理部3に出力する(ステップS900)。
次に、データ処理部3は処理したグループの数をカウントする変数であるカウンタNを0に初期化する(ステップS901)。
次に、データ処理部3はマージしたグループの数をカウントする変数であるカウンタMを0に初期化する(ステップS902)。
次に、データ処理部3はカウンタNが範囲管理制御部4から入力したグループ数16より小さいかどうかを判定する(ステップS903)。
カウンタNがグループ数16より小さい場合、データ処理部3は範囲管理制御部4から入力した開始グループ番号15にカウンタNを加えたグループ番号に対応するグループを要求するデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4はデータ管理命令に相当するデータアクセス命令をデータアクセス制御部6に出力する。データアクセス制御部6はデータアクセス命令に対応する当該グループをデータ格納領域部7の更新領域8から読み出しバッファメモリ951に記憶する(ステップS904)。
次に、データ処理部3は、参照領域9に書き出していないマージグループがある場合、そのマージグループにバッファメモリ951に記憶されたグループをマージして新たなマージグループとする。このとき、データ処理部3はマージグループをマージ用のバッファメモリに記憶する。また、データ処理部3はマージしたグループが記憶されたバッファメモリ951の領域を開放する(ステップS905)。
次に、データ処理部3はカウンタNに1を加える(ステップS906)。
次に、データ処理部3はマージグループがマージ完了条件を満たしているか否かの判定を行う。マージ完了条件は、マージ対象の最大グループ数やマージグループの最大サイズなど任意の条件を予め設定することが可能である。マージグループのサイズがバッファメモリ951に適合するとよい(ステップS907)。
マージ完了条件を満たしていないと判定した場合、データ処理部3はステップS903に処理を移す。
マージ完了条件を満たしていると判定した場合、データ処理部3はマージグループをデータ格納領域部7の参照領域9に書き出させるデータ管理命令を範囲管理制御部4に出力する。範囲管理制御部4はデータ管理命令に相当するデータアクセス命令をデータアクセス制御部6に出力し、データアクセス制御部6はマージ用バッファメモリに記憶されたマージグループを参照領域9に書き出す。また、データアクセス制御部6は参照領域9に書き出したグループが記憶されたマージ用バッファメモリの領域を開放する(ステップS908)。
次に、データ処理部3はカウンタMに1を加えてステップS903に処理を移す(ステップ909)。
データ管理装置1は以上の処理をカウンタNがグループ数16以上になるまで繰り返す。
ステップS903でカウンタNがグループ数16以上であると判定した場合、データ処理部3はマージグループの書き残しがあるかの判定を行う(ステップS910)。
マージグループの書き残しがあると判定した場合、データ処理部3はステップS908およびステップ909と同様にしてマージグループを参照領域9に書き出し(ステップS911)、カウンタMに1を加算する(ステップS912)。
マージグループの書き残しがないと判定した場合、データ処理部3はステップS913に処理を移す。
次に、データ処理部3は更新領域8にあるグループの削除を命令するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4はデータ管理命令に相当するデータアクセス命令をデータアクセス制御部6に出力し、データアクセス制御部6は更新領域8に記憶されているグループを削除する(ステップS913)。
以上により、更新領域8にあるグループをマージして参照領域9へ移動したことになる。
最後に、データ処理部3はマージグループ数がカウンタMである場合のマージ後の範囲管理テーブル5の更新を命令するデータ管理命令を範囲管理制御部4に出力し、範囲管理制御部4は範囲管理テーブル5の更新を行う。このとき、範囲管理制御部4は、確定状態17がCURRENTであるエントリを検索して範囲管理テーブル5から選択する。範囲管理制御部4は選択したエントリのグループ数16にマージグループの数であるカウンタMを設定し、確定状態17をCURRENTからFIXEDに変更し、確定時刻19には現在の時刻を設定する。また、範囲管理制御部4は、新たな範囲のエントリを追加し、範囲ID14に一つ前のエントリの範囲IDに1を加えた値を設定し、開始グループ番号15に1つ前のエントリの開始グループ番号15とグループ数16とを足した値を設定し、グループ数16に0を設定し、確定状態17にCURRENTを設定し、ロード状態18にEMPTYを設定し、エントリ最終書込み時刻20は現在の時刻を設定し、エントリのその他の項目にナル値を設定する。さらに、範囲管理制御部4はテーブル最終書込み時刻11に現在の時刻を設定し、範囲数12に1を加えた値を設定する(ステップS914)。
なお、前記グループのマージ処理は、範囲の追加処理の実行時だけでなく、行の追加(ロード)の途中で更新領域8にあるグループが所定のサイズ(例えば、バッファサイズ)あるいは件数を越えたときに実施してもよい。
実施の形態2では、範囲の追加の際に更新領域8にあるグループを参照領域9に移動する際に、更新領域8のグループをマージして新たなグループを生成する点が実施の形態1とは異なる。
これにより、行のロード頻度が低く更新領域8に追加されるグループのサイズが小さくなってアクセス効率を低下させる場合においても、前記マージ処理により入出力効率を向上するのに適切なグループのサイズ(例えば、バッファサイズ)に保つことができ、アクセス効率を向上させることが可能となる。
上記実施の形態2において以下のようなデータ管理装置1について説明した。
範囲管理制御手段(範囲管理制御部4)は、範囲の追加において現在の範囲(CURRENT)の状態から確定した範囲の状態(FIXED)に範囲の状態(確定状態17)を変更し、新たに追加した範囲を現在の範囲に設定し、現在の範囲を常に1つだけ持つことを特徴とするデータ管理装置1。
実施の形態1におけるデータ管理システム900の外観を示す図。 実施の形態1におけるデータ管理システム900のハードウェア構成図。 実施の形態1によるデータ管理システム900の構成図。 実施の形態1におけるデータ管理装置1で実現する「範囲」の概念図。 図4で示すデータベース30に対して範囲を追加した場合の概念図。 実施の形態1における範囲管理テーブル5に保持する範囲管理情報を示した例。 実施の形態1における範囲の操作処理に対する確定状態17およびロード状態18の変化について示した範囲の状態遷移図。 実施の形態1におけるデータ処理の結果として生成されるグループの一例。 実施の形態1における1つの行が行番号102a、タイムスタンプ102b、カラー102cの3つのフィールドを有する場合のグループ100の例。 実施の形態1のデータ管理装置1におけるロード処理の動作を示すフローチャート。 実施の形態1におけるデータ管理装置1が3つのグループ100a〜100cを更新領域8に格納した例。 実施の形態1のデータ管理装置1における範囲の追加処理の動作を示すフローチャート。 実施の形態1における更新領域8にある3つのグループ100a〜100cを参照領域9に移動したイメージ。 図6に示す範囲管理テーブル5の状態にあるデータベースに対して範囲の追加を行った直後の範囲管理テーブル5の例。 実施の形態1における範囲30bを削除した場合の概念図。 実施の形態1のデータ管理装置1における範囲の削除処理の動作を示すフローチャート。 図6に示す範囲管理テーブル5の状態にあるデータベースに対して範囲ID14が“2”の範囲を削除した直後の範囲管理テーブル5の例。 実施の形態1のデータ管理装置1における検索処理の動作を示すフローチャート。 実施の形態1における検索問い合わせ文の例。 実施の形態1におけるデータ管理装置1がバックアップ処理において生成するアーカイブファイル300のデータ構造を示した図。 実施の形態1におけるデータ管理装置1が差分バックアップまたは増分バックアップで使用するバックアップ開始位置を管理するためのテーブルを示す図。 実施の形態1のデータ管理装置1におけるバックアップ処理の動作を示すフローチャート。 ステップS501についてバックアップの種類に分けて動作の詳細を説明したフローチャート。 実施の形態1のデータ管理装置1におけるリストア処理の動作を示すフローチャート。 ステップS713における範囲管理テーブル5の更新の動作を示したフローチャート。 実施の形態2におけるグループのマージ処理を示す概念図。 実施の形態2による範囲の追加処理における動作を示すフローチャート。
符号の説明
1 データ管理装置、2 端末装置、3 データ処理部、4 範囲管理制御部、5 範囲管理テーブル、6 データアクセス制御部、7 データ格納領域部、8 更新領域、9 参照領域、10 生成日付、11 テーブル最終書込み時刻、12 範囲数、13 範囲のキー数、14 範囲ID、15 開始グループ番号、16 グループ数、17 確定状態、18 ロード状態、19 確定時刻、20 最終書込み時刻、21 最小行番号、22 最大行番号、23 最小タイムスタンプ、24 最大タイムスタンプ、30 データベース、30a,30b,30c,30d 範囲、100 グループ、101 行、102a 行番号、102b タイムスタンプ、102c カラー、200 検索問い合わせ文、300 アーカイブファイル、301 アーカイブヘッダ情報、302 データベース定義情報、303 範囲管理テーブル情報、304 グループデータ情報、305 開始グループ番号、306 グループ数、307 更新領域内グループ数、308 個別グループ情報、309 オフセット、310 サイズ、311 フラグ、312 グループ、400 バックアップ開始位置テーブル、401 差分バックアップ開始グループ番号、402 増分バックアップ開始グループ番号、900 データ管理システム、901 表示装置、902 K/B、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 FAX機、940 インターネット、941 ウェブサーバ、942 LAN、951 バッファメモリ、1000 グループ。

Claims (19)

  1. 記憶領域を有する第1の記憶機器と、
    所定のサイズを有するバッファメモリと、
    前記バッファメモリのサイズに適合する複数の任意データを1グループとして中央処理装置を用いてデータ処理するデータ処理部と、
    前記第1の記憶機器に対してグループ単位で任意データを入出力する入出力制御部と、
    前記第1の記憶機器の連続する記憶領域に記憶された複数のグループを1範囲として当該範囲に属するグループを特定するグループ特定情報と当該範囲に属するグループに含まれる任意データを特定する任意データ特定情報と当該範囲を識別する範囲識別情報とを含む範囲エントリを範囲毎に記憶する第2の記憶機器と、
    前記第2の記憶機器に記憶された範囲エントリの管理処理を中央処理装置を用いて行う範囲管理制御部と
    を備えたことを特徴とするデータ管理装置。
  2. 前記第2の記憶機器は任意データを識別する番号であり当該範囲に属する任意データの内での最小番号と最大番号とを前記任意データ特定情報に含む範囲エントリを記憶する
    ことを特徴とする請求項1記載のデータ管理装置。
  3. 前記第2の記憶機器は任意データを当該範囲に追加した時刻であり当該範囲に属する任意データの内での最小追加時刻で最大追加時刻とを前記任意データ特定情報に含む範囲エントリを記憶する
    ことを特徴とする請求項1〜請求項2いずれかに記載のデータ管理装置。
  4. 前記データ処理部は検索対象データの条件を示す検索要求データを入力機器から入力し、
    前記範囲管理制御部は前記データ処理部の入力した前記検索要求データが示す検索対象データの条件に任意データ特定情報が対応する範囲エントリを検索して選択し、
    前記入出力制御部は前記範囲管理制御部が選択した範囲エントリのグループ特定情報が示すグループを前記第1の記憶機器から取得し、
    前記データ処理部は前記入出力制御部が取得したグループに含まれる任意データから前記検索要求データが示す検索対象データの条件に対応する任意データを検索して出力機器に出力する
    ことを特徴とする請求項1〜請求項3いずれかに記載のデータ管理装置。
  5. 前記第2の記憶機器はグループを有さない空範囲を特定するグループ有無情報を前記範囲エントリに含んで記憶し、
    前記範囲管理制御部は前記検索要求データが示す検索対象データの条件に任意データ特定情報が対応する範囲エントリであり且つグループ有無情報が空範囲でないことを示す範囲エントリを検索して選択する
    ことを特徴とする請求項4記載のデータ管理装置。
  6. 前記第2の記憶機器はグループを追加中の処理中範囲とグループの追加が終了した確定範囲とを特定する追加可否情報を前記範囲エントリに含んで記憶し、
    前記データ処理部は、前記第1の記憶機器に新たに記憶する任意データを入力機器から入力し、入力した任意データを含む新たなグループを生成し、
    前記範囲管理制御部は、前記データ処理部が新たなグループを生成した際、前記追加可否情報に基づいて処理中範囲の範囲エントリを検索して選択し、処理中範囲の範囲エントリのグループ特定情報を処理中範囲に属するグループと前記新たなグループとを特定するグループ特定情報に更新すると共に処理中範囲の範囲エントリの任意データ特定情報を処理中範囲に属するグループに含まれる任意データと前記新たなグループに含まれる任意データとを特定する任意データ特定情報に更新し、
    前記入出力制御部は、前記データ処理部が生成した前記新たなグループを入力し、処理中範囲に含まれるグループが記憶された記憶領域と連続する記憶領域に前記新たなグループを記憶する
    ことを特徴とする請求項1〜請求項5いずれかに記載のデータ管理装置。
  7. 前記第2の記憶機器はグループを有さない空範囲を特定するグループ有無情報を前記範囲エントリに含んで記憶し、
    前記範囲管理制御部は、前記データ処理部が新たなグループを出力した際、前記追加可否情報に基づいて処理中範囲の範囲エントリを検索して選択し、処理中範囲の範囲エントリに空範囲でないことを示すグループ有無情報を設定する
    ことを特徴とする請求項6記載のデータ管理装置。
  8. 前記第2の記憶機器は当該範囲にグループを最後に追加した最終追加時刻を前記範囲エントリに含んで記憶し、
    前記範囲管理制御部は前記データ処理部が新たなグループを出力した際の時刻を処理中範囲の範囲エントリの最終追加時刻に設定する
    ことを特徴とする請求項6〜請求項7いずれかに記載のデータ管理装置。
  9. 前記第2の記憶機器はグループを追加中の処理中範囲とグループの追加が終了した確定範囲とを特定する追加可否情報を前記範囲エントリに含んで記憶し、
    前記データ処理部は範囲追加要求データを入力機器から入力し、
    前記範囲管理制御部は、前記データ処理部が範囲追加要求データを入力した際、前記追加可否情報に基づいて処理中範囲の範囲エントリを検索して選択し、選択した範囲エントリの追加可否情報を確定範囲に変更し、処理中範囲を示す追加可否情報を設定した範囲エントリを新たに追加して前記第2の記憶機器に記憶する
    ことを特徴とする請求項1〜請求項8いずれかに記載のデータ管理装置。
  10. 前記第1の記憶機器は記憶データを更新する更新領域と記憶データを更新しない参照領域とを前記記憶領域として有して前記更新領域に処理中範囲を記憶すると共に前記参照領域に確定範囲を記憶し、
    前記入出力制御部は、前記データ処理部が範囲追加要求データを入力した際、前記更新領域に記憶された処理中範囲に属するグループを前記参照領域に追加記憶すると共に処理中範囲に属するグループを前記更新領域から削除する
    ことを特徴とする請求項9記載のデータ管理装置。
  11. 前記データ処理部は、範囲追加要求データを入力した際、前記更新領域に記憶された複数のグループで前記バッファメモリのサイズに適合する1グループを生成し、
    前記入出力制御部は前記データ処理部が生成したグループを前記参照領域に追加記憶する
    ことを特徴とする請求項10記載のデータ管理装置。
  12. 前記第2の記憶機器は当該範囲が確定範囲になった確定範囲時刻を前記範囲エントリに含んで記憶し、
    前記範囲管理制御部は、前記データ処理部が範囲追加要求データを入力した際の時刻を処理中範囲の範囲エントリの確定範囲時刻に設定する
    ことを特徴とする請求項9〜請求項11いずれかに記載のデータ管理装置。
  13. 前記第2の記憶機器はグループを有さない空範囲を特定するグループ有無情報を前記範囲エントリに含んで記憶し、
    前記データ処理部は削除する範囲の識別情報を含む範囲削除要求データを入力機器から入力し、
    前記範囲管理制御部は、前記データ処理部が入力した範囲削除要求データに含まれる識別情報に範囲識別情報が対応する範囲エントリを検索して選択し、選択した範囲エントリに空範囲を示すグループ有無情報を設定する
    ことを特徴とする請求項1〜請求項12いずれかに記載のデータ管理装置。
  14. 前記データ管理装置は、さらに、第3の記憶機器を備え、
    前記データ処理部はバックアップする範囲の識別情報を含むバックアップ要求データを入力機器から入力し、
    前記範囲管理制御部は前記データ処理部が入力したバックアップ要求データに含まれる識別情報に範囲識別情報が対応する範囲エントリを検索して選択し、
    前記入出力制御部は前記範囲管理制御部が選択した範囲エントリのグループ特定情報が示すグループを前記第1の記憶機器から取得し、
    前記データ処理部は前記入出力制御部が取得したグループを含むバックアップファイルを生成し前記第3の記憶機器に記憶する
    ことを特徴とする請求項1〜請求項13いずれかに記載のデータ管理装置。
  15. 前記第2の記憶機器はグループを有さない空範囲を特定するグループ有無情報を前記範囲エントリに含んで記憶し、
    前記データ処理部は前記範囲管理制御部が選択した範囲エントリのグループ有無情報を含めて前記バックアップファイルを生成する
    ことを特徴とする請求項14記載のデータ管理装置。
  16. 前記データ処理部は前記第3の記憶機器に記憶されたバックアップファイルを前記第1の記憶機器にリストアするリストア要求データを入力機器から入力し、
    前記範囲管理制御部は、前記データ処理部がリストア要求データを入力した際、バックアップファイルに含まれるグループ有無情報を当該範囲エントリに設定し、
    前記入出力制御部は、前記データ処理部がリストア要求データを入力した際、バックアップファイルに含まれるグループを前記第1の記憶機器に記憶する
    ことを特徴とする請求項15記載のデータ管理装置。
  17. 前記データ処理部はバックアップファイルからリストアする範囲の識別情報を含むリストア要求データを入力機器から入力し、
    前記範囲管理制御部は前記データ処理部が入力したリストア要求データに含まれる識別情報に範囲識別情報が対応する範囲エントリを検索して選択し、
    前記データ処理部と前記範囲管理制御部と前記入出力制御部とは、前記範囲管理制御部が選択した範囲エントリのグループ有無情報が空範囲を示さない場合にリストア処理を行い、前記範囲管理制御部が選択した範囲エントリのグループ有無情報が空範囲を示す場合にリストア処理を行わない
    ことを特徴とする請求項15〜請求項16いずれかに記載のデータ管理装置。
  18. データ処理部がバッファメモリのサイズに適合する複数の任意データを1グループとして中央処理装置を用いてデータ処理を行い、
    入出力制御部が第1の記憶機器に対してグループ単位で任意データを入出力する入出力制御処理を行い、
    範囲管理制御部が、前記第1の記憶機器の連続する記憶領域に記憶された複数のグループを1範囲として当該範囲に属するグループを特定するグループ特定情報と当該範囲に属するグループに含まれる任意データを特定する任意データ特定情報と当該範囲を識別する範囲識別情報とを含む範囲エントリを範囲毎に第2の記憶機器に記憶し、第2の記憶機器に記憶された範囲エントリの管理処理を中央処理装置を用いて行う
    ことを特徴とするデータ管理方法。
  19. 請求項18記載のデータ管理方法をコンピュータに実行させることを特徴とするデータ管理プログラム。
JP2005332648A 2005-11-17 2005-11-17 データ管理装置、データ管理装置のデータ管理方法およびデータ管理プログラム Active JP4813155B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005332648A JP4813155B2 (ja) 2005-11-17 2005-11-17 データ管理装置、データ管理装置のデータ管理方法およびデータ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005332648A JP4813155B2 (ja) 2005-11-17 2005-11-17 データ管理装置、データ管理装置のデータ管理方法およびデータ管理プログラム

Publications (2)

Publication Number Publication Date
JP2007140821A true JP2007140821A (ja) 2007-06-07
JP4813155B2 JP4813155B2 (ja) 2011-11-09

Family

ID=38203608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005332648A Active JP4813155B2 (ja) 2005-11-17 2005-11-17 データ管理装置、データ管理装置のデータ管理方法およびデータ管理プログラム

Country Status (1)

Country Link
JP (1) JP4813155B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204971A (ja) * 2009-03-04 2010-09-16 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP7185953B1 (ja) 2021-07-02 2022-12-08 Eaglys株式会社 データ管理システム、データ管理方法、及びデータ管理プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653845B1 (ko) * 2018-12-03 2024-04-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260876A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd データベースのデータ構造及びデータベースのデータ処理方法
JP2000066933A (ja) * 1998-08-18 2000-03-03 Nec Corp 時系列データ管理方式
JP2001142752A (ja) * 1999-11-15 2001-05-25 Hitachi Ltd データベース管理方法
JP2001331509A (ja) * 2000-05-22 2001-11-30 Hitachi Ltd リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260876A (ja) * 1997-03-19 1998-09-29 Hitachi Ltd データベースのデータ構造及びデータベースのデータ処理方法
JP2000066933A (ja) * 1998-08-18 2000-03-03 Nec Corp 時系列データ管理方式
JP2001142752A (ja) * 1999-11-15 2001-05-25 Hitachi Ltd データベース管理方法
JP2001331509A (ja) * 2000-05-22 2001-11-30 Hitachi Ltd リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204971A (ja) * 2009-03-04 2010-09-16 Mitsubishi Electric Corp 情報処理装置及び情報処理方法及びプログラム
JP7185953B1 (ja) 2021-07-02 2022-12-08 Eaglys株式会社 データ管理システム、データ管理方法、及びデータ管理プログラム
JP2023007959A (ja) * 2021-07-02 2023-01-19 Eaglys株式会社 データ管理システム、データ管理方法、及びデータ管理プログラム

Also Published As

Publication number Publication date
JP4813155B2 (ja) 2011-11-09

Similar Documents

Publication Publication Date Title
JP4313323B2 (ja) サーチ可能なアーカイブ
JP4255373B2 (ja) ネットワークファイルシステムのための管理および同期化アプリケーション
JP5233233B2 (ja) 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム
KR101631004B1 (ko) 위치 독립적 파일
JP5186390B2 (ja) ノードの番号付けによるファイル・システムのダンプ/復元のための方法、システム、およびデバイス
KR100667827B1 (ko) 컨텐츠 파일 정보 관리 방법, 장치와 그 방법을 수행하는프로그램이 기록된 기록 매체
JPH1153240A (ja) 計算機のデータバックアップ装置及びデータバックアップ方法並びにデータバックアッププログラムを記録したコンピュータ読み取り可能な記録媒体
CN101477516B (zh) 一种电子数据处理方法和系统
CN105740303A (zh) 改进的对象存储的方法及装置
KR20160100216A (ko) 대량 오디오 지문 데이터베이스의 온라인 실시간 업데이트를 구축하는 방법과 장치
JP5254141B2 (ja) アーカイブ装置、データ格納プログラムおよびデータ格納方法
JP4813155B2 (ja) データ管理装置、データ管理装置のデータ管理方法およびデータ管理プログラム
JPWO2012114402A1 (ja) データベース管理装置及びデータベース管理方法
US20210255998A1 (en) Method for object management using trace identifier, apparatus for the same, computer program for the same, and recording medium storing computer program thereof
WO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
JP2014154971A (ja) 画像表示装置、画像表示方法及びプログラム
JP5063465B2 (ja) 文書管理装置、文書管理方法、情報処理プログラム及び記録媒体
JPH05113920A (ja) フアイル管理方法及びその装置
CN111177088A (zh) 一种数据重删方法、装置及电子设备和存储介质
JP2002140218A (ja) データ処理方法、コンピュータ読み取り可能な記録媒体及びデータ処理装置
JPH0687225B2 (ja) フアイル・サービス要求の処理方法及び装置
TWI475419B (zh) 用於在儲存系統上存取檔案的方法和系統
JP2013118510A (ja) 画像処理装置及び画像処理方法
CN111831231B (zh) 分区合并、分区拆分的方法及装置
JP2011070369A (ja) データベース統合装置およびデータベース統合方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080508

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110519

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4813155

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

Year of fee payment: 3

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