IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧 ▶ 東芝ソリューション株式会社の特許一覧

特許7106656データベース装置、プログラム、およびデータ処理方法
<>
  • 特許-データベース装置、プログラム、およびデータ処理方法 図1
  • 特許-データベース装置、プログラム、およびデータ処理方法 図2
  • 特許-データベース装置、プログラム、およびデータ処理方法 図3A
  • 特許-データベース装置、プログラム、およびデータ処理方法 図3B
  • 特許-データベース装置、プログラム、およびデータ処理方法 図4
  • 特許-データベース装置、プログラム、およびデータ処理方法 図5A
  • 特許-データベース装置、プログラム、およびデータ処理方法 図5B
  • 特許-データベース装置、プログラム、およびデータ処理方法 図6
  • 特許-データベース装置、プログラム、およびデータ処理方法 図7
  • 特許-データベース装置、プログラム、およびデータ処理方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-15
(45)【発行日】2022-07-26
(54)【発明の名称】データベース装置、プログラム、およびデータ処理方法
(51)【国際特許分類】
   G06F 16/11 20190101AFI20220719BHJP
   G06F 16/174 20190101ALI20220719BHJP
   G06F 16/185 20190101ALI20220719BHJP
【FI】
G06F16/11
G06F16/174
G06F16/185
【請求項の数】 8
(21)【出願番号】P 2020540992
(86)(22)【出願日】2018-09-07
(86)【国際出願番号】 JP2018033322
(87)【国際公開番号】W WO2020049746
(87)【国際公開日】2020-03-12
【審査請求日】2020-11-11
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】服部 雅一
【審査官】三橋 竜太郎
(56)【参考文献】
【文献】特開2006-350599(JP,A)
【文献】特開2005-301971(JP,A)
【文献】特開2006-215954(JP,A)
【文献】特開2012-168815(JP,A)
【文献】特開2008-269408(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも1つに有効期限とデータとを含む1または複数のレコードを記憶したデータベースと、
前記データベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定する設定部と、
複数の前記記憶領域の内、登録された最も遅い有効期限が、設定された前記閾値期限以前を示す前記記憶領域を、アーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録する第1登録部と、
前記アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除する削除部と、
を備えるデータベース装置。
【請求項2】
前記レコードを取得する取得部と、
取得した前記レコードを前記データベースの前記記憶領域に登録する第2登録部と、
を備える、請求項1に記載のデータベース装置。
【請求項3】
前記第2登録部は、
取得した前記レコードを、複数の前記記憶領域の内、取得した該レコードに含まれる有効期限に最も近い有効期限を含む他の前記レコードが登録された前記記憶領域に登録する、
請求項2に記載のデータベース装置。
【請求項4】
前記設定部は、
複数の前記記憶領域のそれぞれ毎に、登録された有効期限の内の最も遅い有効期限を特定し、現在より前で且つ現在に最も近い、特定した該有効期限を、前記閾値期限として設定する、
請求項1~請求項3の何れか1項に記載のデータベース装置。
【請求項5】
前記設定部は、
複数の前記記憶領域の内の少なくとも1つの空き容量が所定割合以下となったときに、前記閾値期限を設定する、
請求項1~請求項4の何れか1項に記載のデータベース装置。
【請求項6】
前記記憶領域は、前記データベースにおける予め定めたサイズのブロック領域である、
請求項1~請求項5の何れか1項に記載のデータベース装置。
【請求項7】
互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも1つに有効期限とデータとを含む1または複数のレコードを記憶したデータベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定するステップと、
複数の前記記憶領域の内、登録された最も遅い有効期限が、設定された前記閾値期限以前を示す前記記憶領域を、アーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録するステップと、
前記アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除するステップと、
をコンピュータに実行させるためのプログラム。
【請求項8】
コンピュータによって実行されるデータ処理方法であって、
互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも1つに有効期限とデータとを含む1または複数のレコードを記憶したデータベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定するステップと、
複数の前記記憶領域の内、登録された最も遅い有効期限が、設定された前記閾値期限以前を示す前記記憶領域を、アーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録するステップと、
前記アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除するステップと、
を含む、データ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、データベース装置、プログラム、およびデータ処理方法に関する。
【背景技術】
【0002】
大量のデータが順次登録されるデータベースを管理するシステムが知られている。例えば、データベースの容量を適切に抑制しつつ、且つ、長期間データを管理する機能として、デジタルアーカイブ機能が知られている。
【0003】
例えば、2つのデータベースを用意し、一方のデータベース内の有効期限切れのデータを検索して他方のデータベースに登録すると共に、該一方のデータベースから有効期限切れのデータを検索して削除する技術が開示されている。また、データベース内の情報を定期的にスナップショット取得し、スナップショット取得した情報をブロック単位で圧縮および暗号化し、他のデータベースに格納する技術が開示されている。また、データベース内の有効期限内のデータについて、有効期限切れのデータの検索および更新を無効化し、有効期限切れのデータの位置への新たなデータの挿入や該有効期限切れのデータの削除を行う技術が開示されている。しかし、従来技術では、データベース管理時の処理負荷が大きかった。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平9-223048号公報
【文献】特許第5844554号公報
【文献】特開2005-149348号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、データベース管理の負荷軽減を図ることができる、データベース装置、プログラムおよびデータ処理方法を提供することである。
【課題を解決するための手段】
【0006】
実施形態のデータベース装置は、データベースと、設定部と、第1登録部と、削除部と、を含む。データベースは、互いに非重複の複数の記憶領域を含み、複数の前記記憶領域の少なくとも1つに有効期限とデータとを含む1または複数のレコードを記憶する。設定部は、前記データベースに記憶された前記レコードを有効期限切れと判断するための閾値期限として、前記レコードの状態に基づきタイミングを設定する。第1登録部は、複数の前記記憶領域の内、登録された最も遅い有効期限が設定された前記閾値期限以前を示す前記記憶領域をアーカイブ対象として特定し、特定した前記記憶領域内の全ての前記レコードをアーカイブファイルに登録する。削除部は、アーカイブファイルに登録された前記記憶領域内の全ての前記レコードを、該記憶領域から削除する。
【図面の簡単な説明】
【0007】
図1図1は、データベースシステムを示す模式図である。
図2図2は、データベースを示す模式図である。
図3A図3Aは、アーカイブファイルのデータ構成を示す模式図である。
図3B図3Bは、データベースを示す模式図である。
図4図4は、データベースを示す模式図である。
図5A図5Aは、アーカイブファイルのデータ構成を示す模式図である。
図5B図5Bは、データベースを示す模式図である。
図6図6は、データ処理の手順を示すシーケンス図である。
図7図7は、従来のデータ処理の手順を示すシーケンス図である。
図8図8は、ハードウェア構成を示す模式図である。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、データベース装置、プログラム、およびデータ処理方法を詳細に説明する。
【0009】
図1は、本実施の形態のデータベースシステム1の一例を示す模式図である。
【0010】
データベースシステム1は、データベース装置10と、クライアント端末12と、を備える。データベース装置10とクライアント端末12とは、ネットワーク14などを介して、有線または無線により通信可能に接続されている。
【0011】
データベースシステム1は、1または複数のクライアント端末12を備える。図1には、一例として、2台のクライアント端末12(クライアント端末12A、クライアント端末12B)を示した。しかし、データベースシステム1に含まれるクライアント端末12の数は、1または複数であればよく、2台に限定されない。
【0012】
クライアント端末12は、ネットワーク14に接続され、ネットワーク14を介して他の装置に各種データを送信するIoT(Internet of Things)機器である。クライアント端末12は、例えば、テレビ、デジタルカメラ、DVDプレーヤー、給湯器、各種のセンサ、照明機器、火災報知器、電話機、監視カメラ、などであるが、これらに限定されない。
【0013】
本実施の形態では、クライアント端末12は、測定結果などの各種のデータを、時系列でデータベース装置10へ順次送信する。また、クライアント端末12は、アクセス要求をデータベース装置10へ送信する。アクセス要求は、データベース装置10に記憶されたデータへのアクセスを示す信号であり、データの参照、読取、検索、などの要求を示す信号である。
【0014】
データベース装置10は、クライアント端末12から各種データを受信し、受信したデータを、データベース30を用いて管理する装置である。本実施の形態では、データベース装置10は、クライアント端末12から順次データを受信し、受信したデータを管理する場合を一例として説明する。また、データベース装置10は、クライアント端末12から受信したアクセス要求に応じた処理を実行する。
【0015】
データベース装置10は、制御部20と、記憶部22と、を備える。制御部20と記憶部22とは、データや信号を授受可能に接続されている。
【0016】
記憶部22は、各種データを記憶する。本実施の形態では、記憶部22は、ログファイル28と、データベース30と、アーカイブファイル32と、を記憶する。ログファイル28は、制御部20で実行された処理を記録するファイルである。例えば、ログファイル28は、クライアント端末12から送信されたアクセス要求の受信履歴や、クライアント端末12から送信されたデータの受信履歴や、制御部20で実行された各種処理の履歴を記憶する。データベース30、およびアーカイブファイル32の詳細は後述する。
【0017】
制御部20は、データベース装置10を制御する。制御部20は、データベース管理部24と、アーカイブ処理部26と、を含む。データベース管理部24は、取得部24Aと、第2登録部24Bと、設定部24Cと、削除部24Dと、を含む。アーカイブ処理部26は、第1登録部26Aを含む。
【0018】
データベース管理部24、取得部24A、第2登録部24B、設定部24C、削除部24D、アーカイブ処理部26、および第1登録部26Aは、例えば、1または複数のプロセッサにより実現される。
【0019】
例えば、データベース管理部24、取得部24A、第2登録部24B、設定部24C、削除部24D、アーカイブ処理部26、および第1登録部26Aは、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。これらの各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0020】
データベース管理部24は、データベース30を管理する。データベース30の管理とは、クライアント端末12から受信したアクセス要求に応じたデータベース30へのアクセスや、データベース30に登録された後述するレコードの更新、削除、検索、などを示す。
【0021】
データベース管理部24は、取得部24Aと、第2登録部24Bと、設定部24Cと、削除部24Dと、を含む。
【0022】
取得部24Aは、レコードを取得する。レコードは、有効期限とデータとを含む。データは、クライアント端末12から受信したデータである。有効期限は、データの有効な期限を示す情報である。有効期限は、例えば、タイムスタンプで表される。
【0023】
例えば、取得部24Aは、クライアント端末12からデータを受信するごとに、受信したデータに有効期限を付与する。有効期限の付与によって、取得部24Aは、有効期限とデータとを含むレコードを取得する。
【0024】
取得部24Aは、予め定めた条件に従って、受信したデータに有効期限を付与すればよい。例えば、取得部24Aは、データの受信タイミングから所定時間(例えば、1週間、1年、10年など)後のタイミングを、該データの有効期限として付与する。なお、取得部24Aは、データの送信元のクライアント端末12に応じた期間を予め設定し、データの受信タイミングに、該データの送信元のクライアント端末12に応じた期間を加算したタイミングを、有効期限として付与してもよい。
【0025】
なお、取得部24Aは、有効期限の付与されたデータをクライアント端末12から受信してもよい。この場合、取得部24Aは、クライアント端末12から受信した、有効期限付きのデータを、レコードとして用いればよい。
【0026】
第2登録部24Bは、取得部24Aで取得したレコードをデータベース30へ登録する。
【0027】
図2は、本実施の形態のデータベース30のデータ構成の一例を示す模式図である。
【0028】
本実施の形態では、データベース30は、互いに非重複の複数の記憶領域を含む。記憶領域は、例えば、複数のレコードRの集合を格納可能なブロック領域である。言い換えると、記憶領域は、データベース30を、データベース管理部24によるレコードRの管理単位ごとに予め分割した、各領域を示す。以下では、記憶領域を、ブロックBと称して説明する場合がある。なお、ブロックBは、データブロックと称される場合もある。レコードRは、上述したように、有効期限と、データと、を含む。
【0029】
図2および後述する図3A図5B中、tは、タイミングを示す。図2中、レコードRの各々に含まれるt(t01~t33)は、各々、有効期限を示す。なお、tの後に示す数値が大きいほど、より遅い(より未来側の)タイミングを示す。すなわち、tの後に示す数値が大きいほど、過去から未来へ向かう時系列方向における、より下流側(より未来側)のタイミングを示す。同様に、他の図においても、tの後に示す数値が大きいほど、過去から未来へ向かう時系列方向における、より下流側のタイミングを示す。また、図2および後述する図3A図5B中、レコードRの各々に含まれる“DATA”は、クライアント端末12から受信したデータを示す。
【0030】
図2には、データベース30が4つのブロックB(ブロックB1~ブロックB4)を含む場合を一例として示した。しかし、データベース30が備えるブロックBの数は、2つ以上であればよく、4つに限定されない。
【0031】
また、データベース30内の複数のブロックBは、データベース30内における互いに非重複な領域であればよく、サイズは限定されない。すなわち、ブロックBのサイズは、予め定めたサイズであればよい。また、複数のブロックBは、互いに同じサイズであってもよいし、異なるサイズであってもよい。本実施形態では、複数のブロックBが、同じサイズ(固定長ブロック)である場合を一例として説明する。
【0032】
第2登録部24Bは、取得部24AがレコードRを取得するごとに、取得したレコードを複数のブロックBの何れかに登録する。このため、データベース30は、複数のブロックBの少なくとも1つに、有効期限とデータとを含む1または複数のレコードRを記憶したものとなる。
【0033】
第2登録部24Bは、取得部24Aで取得したレコードRを、データベース30に含まれる複数のブロックBの内の何れかに登録すればよい。
【0034】
例えば、第2登録部24Bは、取得部24AでレコードRを取得するごとに、取得したレコードRを登録する対象のブロックB(ブロックB1~ブロックB4)をランダムに選択し、選択したブロックBへ該レコードRを登録すればよい。
【0035】
また、例えば、第2登録部24Bは、取得部24AでレコードRを取得すると、ブロックBの空き容量が所定割合以下となるまで特定のブロックBへレコードRを登録し、該ブロックBの空き容量が所定割合以下となった場合、他のブロックBへレコードRを登録してもよい。
【0036】
また、第2登録部24Bは、有効期限の近い複数のレコードRが同じブロックBに登録されるように、レコードRをブロックBへ登録してもよい。
【0037】
この場合、第2登録部24Bは、取得部24Aで取得したレコードRを、データベース30の複数のブロックBの内、取得した該レコードRに含まれる有効期限に最も近い有効期限を含む他のレコードRが記憶されたブロックBに、登録すればよい。
【0038】
図2には、第2登録部24Bが、取得部24Aで取得したレコードRを、該レコードRに含まれる有効期限に最も近い有効期限を含む他のレコードRが既に記憶されているブロックBに登録した形態を、一例として示した。
【0039】
この場合、図2に示すように、各ブロックBに、含まれる有効期限が所定範囲内のレコードRの群が登録されることとなる。
【0040】
なお、取得部24Aは、クライアント端末12から受信したデータに、受信順に降順の有効期限を付与することで、レコードRを取得してもよい。そして、第2登録部24Bは、取得部24Aで取得されたレコードRを、該レコードRの取得順にブロックBへ登録してもよい。そして、第2登録部24Bは、1のブロックBの空き容量が所定割合以下となると、次の空のブロックBに順次レコードRを登録する処理を繰返してもよい。
【0041】
図1に戻り説明を続ける。設定部24Cは、データベース30に記憶されたレコードRを有効期限切れと判断するための閾値期限として、レコードRの状態に基づいたタイミングを設定する。
【0042】
具体的には、本実施の形態では、設定部24Cは、設定部24Cは、データベース30に記憶されたレコードRを有効期限切れと判断するための閾値期限として、現在より前のタイミングを設定する。すなわち、本実施の形態では、設定部24Cは、有効期限切れであることを現在のタイミングで判断するのではなく、現在より前のタイミングで判断するように、閾値期限を設定する。
【0043】
例えば、設定部24Cは、データベース30に含まれる複数のブロックBの内の少なくとも1つの空き容量が所定割合以下となったときに、閾値期限を設定する。すなわち、設定部24Cは、データベース30に含まれる複数のブロックBの内の少なくとも1つの空き容量が所定割合以下となった時刻を閾値期限として設定する。このため、閾値期限は、現時刻よりも前である。
【0044】
空き容量を示す所定割合は、データベース30の構成やデータベース30に含まれるブロックBの容量や登録対象のレコードRに含まれるデータのサイズなどに応じて、予め定めればよい。例えば、空き容量を示す所定割合は、50%、40%、30%、20%、10%などである。例えば、空き容量を示す所定割合を20%と定めたと想定する。この場合、設定部24Cは、複数のブロックBの内の少なくとも1つの空き容量が20%以下となったタイミングを“現在”として、閾値期限を設定する。
【0045】
なお、設定部24Cは、後述するアーカイブ処理部26から閾値期限問合せ信号を受付けたときに、該受付けたタイミングを“現在”として、閾値期限を設定してもよい。また、設定部24Cは、後述するアーカイブ処理部26から閾値期限問合せ信号を受付け、且つ、データベース30に含まれる複数のブロックBの内の少なくとも一つの空き容量が所定割合以下となったときに、閾値期限を設定してもよい。
【0046】
設定部24Cは、例えば、現在より1時間、10時間、1日、10日、などの期間を遡った時刻を、閾値期限として設定してもよい。なお、遡る期間は、これらに限定されない。例えば、設定部24Cは、現在より10日前のタイミングを、閾値期限として設定する。
【0047】
本実施の形態では、設定部24Cは、各ブロックBに記憶されているレコードRに含まれる有効期限に応じて、閾値期限を設定する。
【0048】
詳細には、設定部24Cは、データベース30に含まれる複数のブロックBのそれぞれ毎に、登録されている複数のレコードRに含まれる有効期限の内の最も遅い有効期限を特定する。そして、設定部24Cは、現在より前で、且つ、現在に最も近い、特定した該有効期限を、閾値期限として設定する。
【0049】
図2を用いて具体的に説明する。例えば、ブロックB1に、“t01”、“t02”、“t03”、“t04”、“t05”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB1に登録されている複数のレコードRにおける、最も遅い有効期限は、“t05”である。
【0050】
また、ブロックB2に、“t10”、“t12”、“t13”、“t14”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB2に登録されている複数のレコードRにおける、最も遅い有効期限は、“t14”である。
【0051】
また、ブロックB3に、“t21”、“t22”、“t23”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB3に登録されている複数のレコードRにおける、最も遅い有効期限は、“t23”である。
【0052】
また、ブロックB4に、“t31”、“t32”、“t33”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB4に登録されている複数のレコードRにおける、最も遅い有効期限は、“t33”である。
【0053】
このとき、現在のタイミングが、例えば、“t11”であったと想定する。この場合、設定部24Cは、各ブロックB(ブロックB1~ブロックB4)における最も遅い有効期限“t05”、“t14”、“t23”、“t33”の内、現在のタイミング“t11”より前(過去)であり、且つ、現在のタイミング“t11”に最も近い有効期限である“t05”を、閾値期限Tとして決定する。
【0054】
なお、第2登録部24Bは、新たなレコードRをブロックBへ登録したときに、該ブロックBに含まれる有効期限の内の最も遅い有効期限を特定し、特定した有効期限を該ブロックBのヘッダに登録してもよい。この場合、図2に示すように、各ブロックBのヘッダには、各ブロックBに含まれるレコードRの有効期限の内、最も遅い有効期限が登録される。
【0055】
この場合、設定部24Cは、各ブロックBのヘッダに登録されている有効期限を読取ることで、各ブロックBに登録されている最も遅い有効期限を、容易に特定することができる。
【0056】
図1に戻り説明を続ける。設定部24Cは、設定した閾値期限Tを、アーカイブ処理部26へ出力する。
【0057】
アーカイブ処理部26は、アーカイブ処理を実行する機能部である。本実施の形態では、アーカイブ処理部26は、データベース30に登録されているレコードRの少なくとも1つをアーカイブファイル32へ登録する。言い換えると、アーカイブ処理部26は、データベース30に登録されているレコードRを、データベース管理部24による管理対象外であるアーカイブファイル32に登録する。なお、データベース管理部24は閾値期限T以前のブロック(つまりレコードR)へのアクセスをしないように制御するため、アーカイブ処理部26は、データベース30に登録されているレコードRの読取りを行うが、データベース30への書込、データベース30の更新、データベース30に登録されているレコードRの削除は実行不可能である。
【0058】
アーカイブ処理部26は、第1登録部26Aを含む。第1登録部26Aは、データベース30の複数のブロックBの内、登録されているレコードRに含まれる有効期限の内の最も遅い有効期限が、設定部24Cで設定された閾値期限T以前を示すブロックBを、アーカイブ対象として特定する。閾値期限T以前の有効期限とは、閾値期限Tと同じ有効期限と、該閾値期限Tより前の有効期限と、を示す。
【0059】
そして、第1登録部26Aは、特定したブロックB内の全てのレコードRを、データベース30から読取り、アーカイブファイル32へ登録する。
【0060】
図2を用いて具体的に説明する。例えば、設定部24Cが、タイミング“t05”を、閾値期限Tとして設定したと想定する。
【0061】
この場合、アーカイブ処理部26は、データベース30に含まれる複数のブロックBの内、最も遅い有効期限が、該閾値期限T(“t05”)以前であるブロックB1を、アーカイブ対象として特定する。
【0062】
そして、アーカイブ処理部26は、該ブロックB1に登録されている全てのレコードRを読取り(コピーし)、アーカイブファイル32へ登録する。このため、アーカイブファイル32には、図3Aに示すように、データベース30のブロックB1に登録されている全てのレコードRが登録される。
【0063】
図1に戻り説明を続ける。データベース管理部24の削除部24Dは、第1登録部26AによってレコードRがアーカイブファイル32へ登録されると、アーカイブファイル32にレコードRが登録されたブロックB内の全てのレコードRを、データベース30のブロックBから削除する。
【0064】
例えば、図2および図3Aに示すように、第1登録部26Aが、ブロックB1内の全てのレコードRをアーカイブファイル32へ登録したと想定する。この場合、削除部24Dは、データベース30における、ブロックB1内の全てのレコードRを、データベース30から削除する。
【0065】
このため、データベース30のデータ構成は、例えば、図3Bに示すものとなる。図3Bは、削除部24DがブロックB1内の全てのレコードRを削除した後の、データベース30のデータ構成の一例を示す模式図である。
【0066】
なお、図2には、第2登録部24Bが、取得部24Aで取得したレコードRを、該レコードRに含まれる有効期限に最も近い有効期限を含む他のレコードRが既に登録されたブロックBに登録した形態を、一例として示した。
【0067】
しかし、上述したように、第2登録部24Bは、取得部24AでレコードRを取得するごとに、複数のブロックB(ブロックB1~ブロックB4)の内の1つをランダムに選択し、選択したブロックBへ該レコードRを登録してもよい。
【0068】
この場合、同じ有効期限の設定されたレコードRや、所定範囲内の有効期限を設定された複数のレコードRが、複数のブロックBに分散して登録される場合がある。
【0069】
図4は、第2登録部24Bが、取得部24Aで取得したレコードRを複数のブロックBにランダムに登録した場合の、データベース30のデータ構成の一例を示す模式図である。
【0070】
図4に示すように、例えば、ブロックB1に、“t01”、“t12”、“t32”、“t22”、“t03”、“t24”、“t05”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB1に登録されている複数のレコードRにおける、最も遅い有効期限は、“t32”である。
【0071】
また、ブロックB2に、“t11”、“t21”、“t02”、“t12”、“t23”、“t14”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB2に登録されている複数のレコードRにおける、最も遅い有効期限は、“t23”である。
【0072】
また、ブロックB3に、“t01”、“t12”、“t13”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB3に登録されている複数のレコードRにおける、最も遅い有効期限は、“t13”である。
【0073】
また、ブロックB4に、“t01”、“t12”、“t15”、“t03”の各々の有効期限を含むレコードRが登録されていると想定する。このブロックB4に登録されている複数のレコードRにおける、最も遅い有効期限は、“t15”である。
【0074】
このとき、現在のタイミングが、例えば、“t16”であったと想定する。この場合、設定部24Cは、各ブロックB(ブロックB1~ブロックB4)にそれぞれ登録された最も遅い有効期限“t32”、“t23”、“t13”、“t15”の内、現在のタイミング“t16”より前であり、且つ、現在のタイミング“t16”に最も近い有効期限である“t15”を、閾値期限Tとして決定する。
【0075】
なお、上記と同様に、第2登録部24Bは、新たなレコードRをブロックBへ登録したときに、該ブロックBに含まれる複数のレコードRに含まれる有効期限の内、最も遅い(最も未来の)有効期限を特定し、特定した有効期限を該ブロックBのヘッダに登録してもよい。この場合、図4に示すように、各ブロックBのヘッダには、各ブロックBに含まれるレコードRの有効期限の内、最も遅い有効期限が登録される。
【0076】
そして、設定部24Cは、設定した閾値期限T(“t15”)を、アーカイブ処理部26へ出力する。この場合、アーカイブ処理部26の第1登録部26Aは、データベース30に含まれる複数のブロックBの内、最も遅い有効期限が、該閾値期限T(“t15”)以前であるブロックB3およびブロックB4を、アーカイブ対象として特定する。
【0077】
そして、アーカイブ処理部26は、該ブロックB3およびブロックB4に登録されている全てのレコードRを読取り(コピーし)、アーカイブファイル32へ登録する。このため、アーカイブファイル32には、図5Aに示すように、データベース30のブロックB3およびブロックB4に登録されている全てのレコードRが登録される。
【0078】
すると、データベース管理部24の削除部24Dが、データベース30における、ブロックB3およびブロックB4内の全てのレコードRを、データベース30の該ブロックB3およびブロックB4から削除する。このため、削除部24DによるレコードRの削除後のデータベース30は、図5Bに示す状態となる。図5Bは、削除部24DがレコードRを削除した後のデータベース30の一例を示す模式図である。
【0079】
次に、データベース装置10で実行するデータ処理の手順の一例を説明する。
【0080】
図6は、本実施の形態のデータベース装置10で実行するデータ処理の手順の一例を示す、シーケンス図である。
【0081】
―データベース30へのレコードR登録―
まず、データベース装置10のデータベース管理部24が、クライアント端末12から受信したデータを含むレコードRを、データベース30へ登録する、登録処理を実行する(ステップS100~ステップS106)。
【0082】
詳細には、クライアント端末12は、データをデータベース装置10へ送信する(ステップS102)。データベース管理部24の取得部24Aは、クライアント端末12から受信したデータに有効期限を付与する(ステップS104)。ステップS104の処理によって、取得部24Aは、有効期限とデータとを含むレコードを取得する。
【0083】
第2登録部24Bは、取得部24Aで取得したレコードをデータベース30のブロックBへ登録する(ステップS106)。
【0084】
データベース装置10は、クライアント端末12からデータが送信されるごとに、ステップS102~ステップS106の処理を実行する(ステップS100)。このため、データベース30のブロックBには、クライアント端末12から受信したデータと有効期限を含むレコードRが順次登録される。
【0085】
―閾値期限Tの設定―
次に、データベース装置10のアーカイブ処理部26が、閾値期限の設定処理を実行する(ステップS108~ステップS112)。
【0086】
詳細には、データベース装置10のアーカイブ処理部26が、閾値期限問合せ信号をデータベース管理部24へ送信する(ステップS108)。閾値期限問合せ信号は、閾値期限Tの問合せを示す信号である。アーカイブ処理部26は、閾値期限問合せ信号をデータベース管理部24へ送信する。例えば、アーカイブ処理部26は、アーカイブ処理の開始時に、閾値期限問合せ信号をデータベース管理部24へ送信する。なお、アーカイブ処理の開始タイミングは任意であり、特定のタイミングに限定されない。
【0087】
データベース管理部24の設定部24Cは、閾値期限問合せ信号を受信し、データベース30に含まれる複数のブロックBの内の少なくとも一つの空き容量が所定割合以下となったときに、閾値期限Tを設定する(ステップS110)。上述したように、例えば、設定部24Cは、データベース30に含まれる複数のブロックBの内の少なくとも1つの空き容量が所定割合以下となったタイミングを“現在”とし、現在より前の閾値期限Tを設定する。
【0088】
このとき、設定部24Cは、データベース30に含まれる複数のブロックBの各々における最も遅い有効期限の内、現在より前で、且つ現在に最も近い有効期限を、閾値期限Tとして設定する。
【0089】
そして、設定部24Cは、設定した閾値期限Tを、アーカイブ処理部26へ送信する(ステップS112)。
【0090】
―アーカイブ処理―
次に、データベース装置10のアーカイブ処理部26が、アーカイブ処理を実行する(ステップS114)。
【0091】
詳細には、アーカイブ処理部26の第1登録部26Aは、データベース管理部24の設定部24Cから受付けた閾値期限Tを受付ける。そして、アーカイブ処理部26の第1登録部26Aは、データベース30における複数のブロックBの内、登録された最も遅い有効期限が閾値期限T以前を示すブロックBを、アーカイブ対象として特定する。そして、アーカイブ処理部26の第1登録部26Aは、アーカイブ対象として特定したブロックB内の全てのレコードRを、データベース30から読取り、アーカイブファイル32へ登録する(ステップS114)。
【0092】
―アーカイブ済のレコードR削除―
次に、データベース装置10の削除部24Dが、アーカイブ済のレコードRを、データベース30から削除する(ステップS116~ステップS120)。
【0093】
詳細には、アーカイブファイル32への登録が完了すると、アーカイブ処理部26の第1登録部26Aは、削除指示信号をデータベース管理部24へ送信する(ステップS116)。
【0094】
削除指示信号を受付けたデータベース管理部24の削除部24Dは、データベース30における複数のブロックBの内、登録された最も遅い有効期限が閾値期限T以前を示すブロックB内の全てのレコードRを削除する(ステップS118)。すなわち、削除部24Dは、ブロックB単位でレコードRを削除する。そして、データベース管理部24の削除部24Dは、削除終了信号をアーカイブ処理部26へ送信し(ステップS120)、本シーケンスを終了する。
【0095】
以上説明したように、本実施の形態のデータベース装置10は、データベース30と、設定部24Cと、第1登録部26Aと、削除部24Dと、を備える。
【0096】
データベース30は、互いに非重複の複数の記憶領域(ブロックB)を含み、複数の記憶領域(ブロックB)の少なくとも1つに、有効期限とデータとを含む1または複数のレコードRを記憶した、データベースである。設定部24Cは、データベース30に記憶されたレコードRを有効期限切れと判断するための閾値期限Tとして、レコードRの状態に基づいたタイミングを設定する。第1登録部26Aは、複数の記憶領域(ブロックB)の内、登録された最も遅い有効期限が設定された閾値期限T以前を示す記憶領域(ブロックB)を、アーカイブ対象として特定する。そして、第1登録部26Aは、特定した記憶領域(ブロックB)内の全てのレコードRをアーカイブファイル32に登録する。削除部24Dは、アーカイブファイル32に登録された記憶領域(ブロックB)内の全てのレコードRを、該記憶領域(ブロックB)から削除する。
【0097】
このように、本実施の形態のデータベース装置10では、データベース30は、複数のブロックB(記憶領域)にレコードRを記憶する。そして、本実施の形態のデータベース装置10では、第1登録部26Aによるアーカイブファイル32へのレコードRのアーカイブと、削除部24DによるレコードRの削除と、をブロックB(記憶領域)単位で実行する。
【0098】
このため、データベース30に対するアーカイブファイル32へのアーカイブ処理と、データベース30に対するレコードRの登録や削除などのデータベース管理処理と、を独立して並列で実行することができる。
【0099】
このため、本実施の形態のデータベース装置10では、データベース30の管理の負荷軽減を図ることができる。
【0100】
また、本実施の形態のデータベース装置10では、データベース管理部24の設定部24Cが、レコードRの状態に基づいたタイミングを閾値期限Tとして設定する。そして、アーカイブ処理部26の第1登録部26Aは、データベース30の複数のブロックBの内、登録された最も遅い有効期限が閾値期限T以前を示すブロックB内の全てのレコードRをアーカイブファイル32へ登録する。データベース管理部24の削除部24Dは、登録された最も遅い有効期限が閾値期限T以前を示すブロックB内の全てのレコードRを削除する。
【0101】
すなわち、本実施の形態のデータベース装置10では、データベース30を複数のブロックBごとに管理する。そして、データベース装置10では、登録された最も遅い有効期限が、閾値期限T以前のブロックB内の全てのレコードRを、アーカイブファイル32へ登録する。そして、このアーカイブファイル32への登録後、削除部24Dが、該ブロックB内の全てのレコードRを削除する。
【0102】
このため、データベース管理部24の削除部24Dは、データベース30における、アーカイブファイル32へアーカイブされたレコードRを、ブロックB単位で削除することができる。すなわち、削除部24Dは、一つ一つのレコードRを逐次的に削除せず、ブロックBそのものを空き状態にするだけで済むため、非常に高速に、かつ低い処理負荷で容易にアーカイブ済のレコードRを削除することができる。
【0103】
従って、本実施の形態のデータベース装置10では、データベース30の管理の負荷を低減することができる。
【0104】
また、本実施の形態のデータベース装置10は、有効期限切れと判断するための閾値期限Tとして、レコードRの状態に基づいたタイミングを設定する。
【0105】
このため、第1登録部26Aがアーカイブファイル32へのレコードRの登録処理中に、データベース管理部24がデータベース30に対するアクセス要求をクライアント端末12から受信した場合であっても、データベース30とアーカイブファイル32との間でデータの不整合が生じる事を抑制することができる。
【0106】
このため、本実施の形態のデータベース装置10は、上記効果に加えて、データベース30とアーカイブファイル32との整合性および一貫性を確保することができる。
【0107】
一方、従来では、データベース30を記憶領域ごとに管理しておらず、また、有効期限と判断するための閾値期限Tとして、現在のタイミングを設定していた。このため、従来では、データベースの管理負荷が大きかった。
【0108】
図7は、従来のデータ処理の一例を示すシーケンス図である。
【0109】
例えば、従来のデータベース装置のアーカイブ処理部260は、有効期限切れレコードのアーカイブ指示信号を、データベース管理部240へ送信する(ステップS200)。データベース管理部240は、データベース内の現在以前の有効期限切れのレコードをデータベースから読取る(ステップS202)。そして、データベース管理部240は、ステップS202で読取ったレコードをアーカイブファイル32へ登録する(ステップS204)。そして、データベース管理部240は、アーカイブ処理部260へアーカイブ完了信号を送信する(ステップS206)。
【0110】
アーカイブ処理部260は、有効期限切れレコードの削除指示信号をデータベース管理部240へ送信する。データベース管理部240は、該信号を受付けると、データベースから現在以前の有効期限切れレコードを検索し、データベースから削除する(ステップS210)。そして、データベース管理部240は、削除終了信号をアーカイブ処理部260へ送信する(ステップS212)。
【0111】
このように、従来技術では、データベースを記憶領域ごとに管理しておらず、データベース管理部240は、アーカイブファイルへのアーカイブ処理と、データベースに対するレコードの登録や削除などのデータベース管理処理とを、並列で実行することができなかった。このため、従来では、データベース管理の処理負荷が大きかった。また、従来技術では、アーカイブファイルへの登録時やレコードの削除時に、データベース内の全領域を、データベース管理部240側で毎回検索する必要があった。また、従来技術では、データベースのアーカイブ処理を、データベース管理部240側で行っていた。また、従来技術では、有効期限切れと判断する閾値期限が現在のタイミングであったため、データベースとアーカイブファイルとの整合性および一貫性を確保することが困難であった。
【0112】
一方、本実施の形態のデータベース装置10では、データベース管理部24の設定部24Cが、レコードRの状態に基づいたタイミングを閾値期限Tとして設定する。そして、アーカイブ処理部26の第1登録部26Aは、データベース30の複数のブロックBの内、登録された最も遅い有効期限が閾値期限T以前を示すブロックB内の全てのレコードRをアーカイブファイル32へ登録する。データベース管理部24の削除部24Dは、登録された最も遅い有効期限が閾値期限T以前を示すブロックB内の全てのレコードRを削除する。
【0113】
従って、本実施の形態のデータベース装置10では、データベース30の管理の負荷を低減することができる。
【0114】
次に、上記実施の形態のデータベース装置10のハードウェア構成を説明する。
【0115】
図8は、本実施の形態のデータベース装置10のハードウェア構成の一例を示す模式図である。
【0116】
上記実施の形態のデータベース装置10は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53やHDD(ハードディスクドライブ)などの記憶装置と、各種機器とのインターフェースである通信I/F部54と、各部を接続するバス61とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0117】
上記実施の形態のデータベース装置10では、CPU51が、ROM52からプログラムをRAM53上に読み出して実行することにより、上記各機能がコンピュータ上で実現される。
【0118】
なお、上記実施の形態のデータベース装置10で実行される上記各処理を実行するためのプログラムは、HDDに記憶されていてもよい。また、上記実施の形態のデータベース装置10で実行される上記各処理を実行するためのプログラムは、ROM52に予め組み込まれて提供されていてもよい。
【0119】
また、上記実施の形態のデータベース装置10で実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM、CD-R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施の形態のデータベース装置10で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施の形態のデータベース装置10で実行される上記処理を実行するためのプログラムを、インターネットなどのネットワーク経由で提供または配布するようにしてもよい。
【0120】
なお、上記には、本発明の実施の形態を説明したが、上記実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施の形態および変形例やこれらの変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
図1
図2
図3A
図3B
図4
図5A
図5B
図6
図7
図8