JP5448428B2 - データ管理システム及びデータ管理方法及びデータ管理プログラム - Google Patents

データ管理システム及びデータ管理方法及びデータ管理プログラム Download PDF

Info

Publication number
JP5448428B2
JP5448428B2 JP2008303056A JP2008303056A JP5448428B2 JP 5448428 B2 JP5448428 B2 JP 5448428B2 JP 2008303056 A JP2008303056 A JP 2008303056A JP 2008303056 A JP2008303056 A JP 2008303056A JP 5448428 B2 JP5448428 B2 JP 5448428B2
Authority
JP
Japan
Prior art keywords
record
area
update request
key
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008303056A
Other languages
English (en)
Other versions
JP2010128812A (ja
Inventor
孝之 田村
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 JP2008303056A priority Critical patent/JP5448428B2/ja
Publication of JP2010128812A publication Critical patent/JP2010128812A/ja
Application granted granted Critical
Publication of JP5448428B2 publication Critical patent/JP5448428B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、データ管理システム及びデータ管理方法及びデータ管理プログラムに関するものである。本発明は、特に、更新予告型データ管理システムに関するものである。
大量の情報(レコード)を管理するデータベースシステムにおいては、主記憶装置に比べて極めて低速な二次記憶装置へのアクセスを効率化する様々な工夫がなされている。また、二次記憶装置には、磁気ディスク装置に代表されるように、連続するアドレスに対するアクセス(シーケンシャルアクセス)速度(数10MB/s〜数100MB/s)に対して、不連続なアドレスに対するアクセス(ランダムアクセス)速度(数MB/s)が著しく低いという特性があり、同じデータ転送量でもアクセスパターンがシーケンシャルかランダムかによって、得られる性能が著しく異なる。
検索キーに対して「B−tree」等の木構造索引を作成することは、キーの値に応じてレコードの格納位置を定め、探索範囲を狭めることで、検索時の二次記憶アクセスの回数を減らす工夫である。一方、レコードを追加順に記憶領域末尾に格納していくログ形式は、二次記憶装置への書き込みをシーケンシャルアクセスで実現するための工夫である。しかし、大量のレコードを継続的に更新する処理においては、これらのいずれの方法を用いても性能低下を防ぐことはできない。索引方式では、レコードがキー順に更新されるのでない限り、ランダムアクセスの発生を回避できない。一方、ログ形式では、更新前のレコードの値を取得することが困難である。
そこで、索引方式のランダムアクセス性を緩和するために、複数の更新要求をまとめ、処理順序をキー順に変更してから、実際のアクセスを行う方法が提案されている(例えば、特許文献1参照)。
特開平10−31602号公報
従来のデータ管理システムは、特許文献1に記載のように、レコードをキー順に格納し、複数レコードに対するアクセス要求をキー順に並べ替えてから実際にアクセスしているので、大量のレコードが存在する場合、アクセス対象がまばらとなり、ランダムアクセスと同等の性能しか得られないという課題があった。
本発明は、大量のレコードを継続的に更新するデータ管理システムにおけるデータアクセスの処理の効率化を目的とする。例えば、本発明は、各レコードに対する更新要求とともに次回更新予定時刻を外部から受け取ることで、外部からの要求に従って動作しつつ、二次記憶装置に対する読み込み及び書き込みがシーケンシャルアクセスとなるようにして、大量レコードの更新処理を高速化する更新予告型データ管理システムを得ることを目的とする。
本発明の一の態様に係るデータ管理システムは、
キーで識別される複数のレコードを、各レコードが更新される予定時刻に応じて複数の領域に分けて記憶する第1記憶部と、
キーと当該キーに対応するレコードの更新内容と当該レコードを次に更新する予定時刻とを指定した更新要求の入力を受け付ける更新要求受付部と、
単位時間ごとに、前記複数の領域のうち、現在時刻に対応する領域を処理対象領域として選択し、選択した処理対象領域内の各レコードについて、前記更新要求受付部が入力を受け付けた更新要求に、レコードと同じキーを指定した更新要求がある場合、当該レコードを当該更新要求で指定された更新内容で更新し、更新したレコードを当該更新要求で指定された予定時刻に対応する領域内に書き込む更新要求処理部とを備えることを特徴とする。
本発明の一の態様によれば、データ管理システムにおいて、第1記憶部が、複数のレコードを、各レコードが更新される予定時刻に応じて複数の領域に分けて記憶し、更新要求処理部が、単位時間ごとに、前記複数の領域のうち、現在時刻に対応する領域を処理対象領域として選択し、選択した処理対象領域内の各レコードを更新要求で指定された更新内容で更新し、更新したレコードを当該更新要求で指定された予定時刻に対応する領域内に書き込むことにより、データアクセスの処理が効率化できる。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
図1は本実施の形態に係る更新予告型データ管理システム100(データ管理システムの一例)の構成図である。
図1において、更新予告型データ管理システム100は、第1記憶部101、読込バッファ104、複数の書込バッファ105、受信バッファ106、更新要求受付部107、更新要求処理部108、第2記憶部109、検索処理部112を備える。
第1記憶部101は、複数のレコード103を、各レコード103の次回更新予定時刻に応じて複数の領域102に分けて記憶する。例えば、次回更新予定時刻がt(tは例えば日時)のレコード103は、領域tに記憶される。次回更新予定時刻がt+1(例えば単位時間が1分であればtの1分後)のレコード103は、領域t+1に記憶される。次回更新予定時刻がt+n(例えばnはn>1となる整数)のレコード103は、領域t+nに記憶される。各レコード103には、キー、次回更新時刻、登録順、属性情報等のデータが記録されている。キーはレコード103を一意に識別する。次回更新時刻はレコード103が更新される予定時刻を示す。登録順はレコード103が最初に第1記憶部101に書き込まれた順番を示す。属性情報はレコード103に記録される任意のデータである。レコード103の具体例については後述する。
更新要求受付部107は、更新要求の入力を受け付け、入力された更新要求を受信バッファ106に格納する。更新要求は、キー、属性情報、次回更新時刻等を指定したデータである。属性情報はキーに対応するレコード103の更新内容を示す。次回更新時刻はキーに対応するレコード103を次に更新する予定時刻を示す。更新要求の具体例については後述する。
第2記憶部109は、キーごとに、領域識別子を記録した索引情報を記憶する。領域識別子はキーに対応するレコード103が記憶された領域102を識別する。例えば、キーAの領域識別子としては、キーAに対応するレコード103が記憶されている領域tを識別する領域識別子Aが索引情報に記憶される。本実施の形態では、索引情報には、レコード索引110、領域索引111が含まれている。レコード索引110には、キーごとに、キーに対応するレコード103の登録順が記録されている。領域索引111には、キーの登録順に、キーに対応する領域識別子が記録されている。なお、領域索引111には、キーは記録されていない。領域索引111には、キーの登録順に、キーに対応する領域識別子のほか、領域オフセットが記録されていてもよい。あるキーに対応する領域識別子と領域オフセットが領域索引111に記録されている場合、領域オフセットは領域識別子に対応する領域102にて当該キーに対応するレコード103が記憶された位置を示す。
更新要求処理部108は、単位時間ごとに(例えば単位時間が1分であれば毎分)、複数の領域102のうち、現在時刻に対応する領域102を処理対象領域として選択する。また、更新要求処理部108は、単位時間ごとに、更新要求受付部107が入力を受け付けた更新要求を受信バッファ106から読み出す。そして、更新要求処理部108は、単位時間ごとに、選択した処理対象領域内の各レコード103について、受信バッファ106から読み出した更新要求に、レコード103と同じキーを指定した更新要求がある場合、当該レコード103を当該更新要求で指定された属性情報で更新し、更新したレコード103を当該更新要求で指定された次回更新時刻に対応する領域102内に書き込む。一方、受信バッファ106から読み出した更新要求に、レコード103と同じキーを指定した更新要求がない場合、更新要求処理部108は、当該レコード103を現在時刻より所定の単位時間(例えば1単位時間)後の次回更新時刻に対応する領域102内に書き込む。
更新要求処理部108は、レコード103をいずれかの領域102内に書き込む際に、第2記憶部109の索引情報に記録された、当該レコード103のキーに対応する領域識別子を、当該レコード103を書き込む領域102の領域識別子で更新する。本実施の形態では、このとき、更新要求処理部108は、当該レコード103の登録順を当該レコード103から読み取り、領域索引111にて当該登録順の位置に記録された領域識別子を、当該レコード103を書き込む領域の領域識別子で更新する。領域索引111に領域オフセットが記録されている場合、更新要求処理部108は、さらに、領域索引111にて当該レコード103の登録順の位置に記録された領域オフセットを、当該レコード103を書き込む領域102内の位置を示す領域オフセットで更新する。
例えば、現在時刻がtのとき、更新要求処理部108は、領域tを処理対象領域として選択するとともに、更新要求受付部107が時刻tに入力を受け付けた(あるいは時刻tに更新を実施するように要求する)更新要求を受信バッファ106から読み出す。そして、更新要求処理部108は、領域t内の各レコード103について更新処理を行う。以下、更新処理の具体例を記述する。
この例において、領域t内にキーC、次回更新時刻C(時刻tを示す)、登録順C、属性情報C等を記録したレコードCと、キーA、次回更新時刻A(時刻tを示す)、登録順A、属性情報A等を記録したレコードAが存在するものとする。受信バッファ106から読み出された更新要求には、キーA、属性情報A´、次回更新時刻A´を指定した更新要求Aが含まれているが、キーCを指定した更新要求は含まれていないものとする。
受信バッファ106から読み出した更新要求に、レコードAと同じキーAを指定した更新要求Aがあるため、更新要求処理部108は、レコードAを更新要求Aで指定された属性情報A´で更新し、更新したレコードAを更新要求Aで指定された次回更新時刻A´に対応する領域102内に書き込む。このとき、更新要求処理部108は、第2記憶部109の索引情報に記録された、レコードAのキーAに対応する領域識別子Aを、レコードAを書き込む領域102の領域識別子で更新する。具体的な処理として、更新要求処理部108は、レコードAの登録順AをレコードAから読み取り、領域索引111にて登録順Aの位置(例えば登録順Aが3であれば領域索引111の先頭から3番目)に記録された領域識別子Aを、レコードAを書き込む領域102の領域識別子で更新する。
一方、受信バッファ106から読み出した更新要求に、レコードCと同じキーCを指定した更新要求がないため、更新要求処理部108は、レコードCを現在時刻より1分後の次回更新時刻に対応する領域t+1内に書き込む。このとき、更新要求処理部108は、第2記憶部109の索引情報に記録された、レコードCのキーCに対応する領域識別子Cを、領域t+1の領域識別子で更新する。具体的な処理として、更新要求処理部108は、レコードCの登録順CをレコードCから読み取り、領域索引111にて登録順Cの位置に記録された領域識別子Cを、レコードCを書き込む領域102の領域識別子で更新する。
以下のように、本実施の形態では、更新要求処理部108は、更新処理を行う際に読込バッファ104及び複数の書込バッファ105を用いる。更新要求処理部108は、単位時間ごとに(例えば単位時間が1分であれば毎分)、以下の処理を実行する。
(1)更新要求処理部108は、処理対象領域内のレコード103を読込バッファ104に一括して読み込む。
(2)更新要求処理部108は、読込バッファ104内の各レコード103について、受信バッファ106から読み出した更新要求に、レコード103と同じキーを指定した更新要求がある場合、当該レコード103を当該更新要求によって更新する。
(3)更新要求処理部108は、読込バッファ104内の各レコード103について、レコード103を、次回更新時刻に対応する複数の書込バッファ105のうち、当該レコード103を書き込む領域102と同じ次回更新時刻に対応する書込バッファ105に格納する。
(4)更新要求処理部108は、書込バッファ105ごとに、書込バッファ105内のレコード103を当該書込バッファ105と同じ次回更新時刻に対応する領域102内に一括して書き込む。
前述した更新処理の具体例では、以下の処理が実行されることになる。
(1)更新要求処理部108は、領域t内の全てのレコード103を読込バッファ104に一括して読み込む。
(2)更新要求処理部108は、読込バッファ104内のレコードAを更新要求Aによって更新する。読込バッファ104内のレコードCは、対応する更新要求がないため、更新されない。
(3)更新要求処理部108は、読込バッファ104内のレコードAを、次回更新時刻Aに対応する書込バッファ105に格納する。また、更新要求処理部108は、読込バッファ104内のレコードCを、次回更新時刻t+1に対応する書込バッファt+1に格納する。
(4)更新要求処理部108は、書込バッファ105ごとに、書込バッファ105内のレコード103を当該書込バッファ105と同じ次回更新時刻に対応する領域102内に一括して書き込む。
更新要求処理部108は、上記(4)において、現在時刻より1単位時間後の次回更新時刻に対応する書込バッファ105については、以下のような処理を実行してもよい。
(4)更新要求処理部108は、現在時刻より1単位時間後の次回更新時刻に対応する書込バッファ105内のレコード103を当該書込バッファ105と同じ次回更新時刻に対応する領域102内に書き込まず、当該書込バッファ105を新たな読込バッファ104として設定する。このとき、元の読込バッファ104は削除する。
検索処理部112は、キーを指定した検索要求の入力を受け付け、当該検索要求で指定されたキーに対応する領域識別子を第2記憶部109の索引情報から読み取る。そして、検索処理部112は、読み取った領域識別子に対応する領域102から当該キーに対応するレコード103を抽出する。本実施の形態では、このとき、検索処理部112は、入力を受け付けた検索要求で指定されたキーに対応する登録順をレコード索引110から読み取り、領域索引111にて当該登録順の位置に記録された領域識別子を読み取る。そして、検索処理部112は、読み取った領域識別子に対応する領域102から当該キーに対応するレコード103を抽出し、検索応答として出力する。領域索引111に領域オフセットが記録されている場合、検索処理部112は、さらに、領域索引111にて、レコード索引110から読み取った登録順の位置に記録された領域オフセットを読み取り、当該領域識別子に対応する領域102内の当該領域オフセットで示された位置から当該キーに対応するレコード103を抽出する。
前述した更新処理の具体例で更新されたレコード103の検索を行う場合、例えば、キーAを指定した検索要求が入力されると、検索処理部112は、キーAに対応するに登録順Aをレコード索引110から読み取る。続けて、検索処理部112は、領域索引111にて登録順Aの位置に記録された領域識別子Aを読み取る。そして、検索処理部112は、領域識別子Aに対応する領域tからキーAに対応するレコードAを抽出し、検索応答として出力する。
更新予告型データ管理システム100は一般的なコンピュータを用い、第1記憶部101及び第2記憶部109を磁気ディスク装置で、読込バッファ104、書込バッファ105及び受信バッファ106をランダムアクセスメモリ(RAM)で、更新要求受付部107、更新要求処理部108、及び検索処理部112をランダムアクセスメモリに格納されプロセッサで実行されるコンピュータプログラムとして、それぞれ実現することができる。また、領域102は、Linux(登録商標)やWindows(登録商標)等の一般的なオペレーティングシステム(OS)が提供するファイルとして実現することができる。さらに、更新要求受付部107及び検索処理部112はローカルエリアネットワーク(LAN)等の通信回線を介して要求元と更新要求や検索要求及び検索応答の授受を行うことができる。
図2は、更新予告型データ管理システム100のハードウェア構成の一例を示す図である。
図2において、更新予告型データ管理システム100は、コンピュータであり、LCD901(Liquid・Crystal・Display)、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ906といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。LCD901の代わりに、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置が用いられてもよい。マウス903の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
更新予告型データ管理システム100は、プログラムを実行するCPU911(Central・Processing・Unit)を備えている。CPU911は、プロセッサの一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914、通信ボード915、LCD901、キーボード902、マウス903、FDD904、CDD905、プリンタ906、HDD920(磁気ディスク装置)と接続され、これらのハードウェアデバイスを制御する。HDD920の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ又はその他の記憶媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、HDD920は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905は、入力装置の一例である。また、通信ボード915、LCD901、プリンタ906は、出力装置の一例である。
通信ボード915は、LAN等に接続されている。通信ボード915は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。
HDD920には、オペレーティングシステム921、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、CPU911により読み出され実行される。ファイル群924には、本実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、RAM914やHDD920等の記憶媒体に記憶される。RAM914やHDD920等の記憶媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理(動作)に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
本実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、RAM914等のメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、HDD920の磁気ディスク、光ディスク、DVD(Digital・Versatile・Disc)、あるいは、その他の記録媒体に記録される。また、データや信号は、バス912、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
本実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
図3に更新要求受付部107が受け取る更新要求170の具体例を示す。
1つの更新要求170が1つのデータ管理単位(レコード)に対して入力される。キー171は更新対象のレコード103を特定するための更新予告型データ管理システム100中で一意な情報である。次回更新時刻172は次に同一のレコード103に対する更新要求170がなされる予定の時刻である。フラグ173は「新規」又は「更新」のいずれかの値を取り、キー171に対する更新要求170が初回であるか、2回目以降であるかを示す。属性情報174はキー171に対応付けて記憶されるデータ本体であり、アプリケーションごとに可変の内容を持つ。
例えば、更新要求170の発信元が、インターネット上の多数のWebページの内容を繰り返し収集しており、収集した内容から抽出したハイパーリンクの情報を蓄積するために更新予告型データ管理システム100を用いているものとすると、当該WebページのURL(Uniform・Resource・Locator)文字列をキー171とし、収集時刻及びリンク先URL文字列の集合を属性情報174に含めることができる。また、次回更新時刻172は次に当該Webページの収集を行う予定の時刻を基に設定すればよい。あるいは、例えば、更新要求170の発信元が、センサ素子から測定データを繰り返し取得しており、取得した測定データを蓄積するために更新予告型データ管理システム100を用いているものとすると、当該センサ素子の識別子をキー171とし、取得時刻及び測定データを属性情報174に含めることができる。また、次回更新時刻172は次に当該センサ素子から測定データを取得する予定の時刻を基に設定すればよい。
図4はレコード103に含まれる情報の具体例を示す図である。
キー131は、更新要求170のキー171に対応する。次回更新時刻132は、更新要求170の次回更新時刻172に対応する。登録順133は、当該レコード103が更新予告型データ管理システム100に新規登録された順を表す整数値を取る。属性情報134は、更新要求170の属性情報174に基づく値を持つが、必ずしも同一である必要はない。例えば、属性情報134は過去に受け取った更新要求170の属性情報174を連結したものであってもよい。
更新予告型データ管理システム100に登録された全てのレコード103は、次回更新時刻132の値が一定範囲にあるもの同士でまとめられ、複数の領域102に分割して格納される。例えば、この範囲の長さを1分とすると、ある領域102に格納された全てのレコード103の次回更新時刻132は、同一の時刻を持つ(秒は異なってもよい)。また、例えば、この範囲の長さを1日とすると、ある領域102に格納された全てのレコード103の次回更新時刻132は、同一の日付を持つ(時刻は異なってもよい)。このように、複数の領域102は、所定の範囲の長さを単位として表した次回更新時刻132により識別される。所定の単位で表した現在時刻をtとすると、領域t、領域t+1、・・・が存在する。
また、領域102内でのレコード103の配置は格納順とする。このため、ある領域102中で特定の値のキー131を持つレコード103を検索するには、領域102内の全レコード103を順に走査する必要がある。書込バッファ105は領域102と同様に所定の単位で表した次回更新時刻132に対応しており、現在時刻tに対応するものを除く、書込バッファt+1、書込バッファt+2、・・・が存在する。
図5にレコード索引110の具体例を示す。
キー201は、レコード103のキー131に対応する。登録順202は、レコード103の登録順133に対応する。レコード索引110は、キー201の値を指定して、対応する登録順202の値を得るために用いられる。新たな値のキー131を持つレコード103が登録された際には、適切な位置にキー201と登録順202の組を挿入する必要がある。公知のB−tree等のデータ構造を用いることで、効率的な検索や挿入を実現することができる。
図6は領域索引111の具体例を示す図である。
領域索引111は領域識別子211の配列であり、k(kはk≧1となる整数)番目の要素がk番目に登録されたレコード103の格納された領域102を表す。この例において、領域識別子は、各領域102に対応する次回更新時刻を表す固定長の値であるが、必要十分な精度を用いることで記憶領域を低減することができる。例えば、ある基準日時からの経過時間(分単位)を用いると、32ビットで約8166年分を表現することが可能である。このため、領域索引111はレコード索引110と同数の要素を含むが、必要とする記憶領域が小さく、全体をランダムアクセスメモリにキャッシュすることができる(上記のような表現形式により、512MBで1億件以上を保持可能である)。
次に、更新要求受付部107、更新要求処理部108、及び検索処理部112の動作を説明する。
更新要求受付部107は、要求元から更新要求170を受け取って受信バッファ106に追加する処理を繰り返す。
図7のフローチャートは、更新要求処理部108の単位時間ごとの動作を示したものである。
ステップS1において更新要求処理部108は現在時刻tに対応する領域t(図1参照)の内容を一括して読込バッファ104に読み込み、複数のレコード103をキー131の昇順にソートする。このとき、第1記憶部101からの読み込みはシーケンシャルアクセスとなる。次にステップS2で受信バッファ106の複数の更新要求170をキー171の昇順にソートする。
ステップS3で更新要求処理部108は読込バッファ104内のレコード103と受信バッファ106内の更新要求170を先頭から全て処理し終えたかどうかをプロセッサにより判定し、処理が完了していればステップS14に進み、そうでなければステップS4に進む。
ステップS4では、更新要求処理部108は読込バッファ104内の未処理のレコード103のうち先頭のもののキー131の値と、受信バッファ106内の未処理の更新要求170のうち先頭のもののキー171の値とをプロセッサにより比較する。ただし、未処理のレコード103又は未処理の更新要求170が存在しない場合は、キー131,171の値を無限大とする。先頭のレコード103のキー131の値が先頭の更新要求170のキー171の値より小さい場合はステップS6に、両者が等しい場合はステップS5に、それ以外の場合はステップS9に進む。
ステップS5においては、更新要求処理部108は先頭の更新要求170の内容に基づいて先頭のレコード103の値を更新した後に、先頭の更新要求170を受信バッファ106から削除する。また、t´を更新後の次回更新時刻132の値として、ステップS7に進む。
ステップS7では更新要求処理部108は先頭のレコード103を書込バッファt´を経由して領域t´の末尾に追加する。これは、書込バッファt´に先頭のレコード103を追加する十分な空きがない場合には、書込バッファt´の内容を領域t´の末尾に追加して書込バッファt´を空にし、元々書込バッファt´に十分な空きがある場合には、書込バッファt´の内容をそのままにし、いずれの場合においても先頭のレコード103を書込バッファt´の末尾に追加するということである。その後、先頭のレコード103を読込バッファ104から削除する。次いでステップS8では、領域索引111の先頭から登録順133の順番にあるエントリにt´を設定し、ステップS3に戻る。
ステップS6では、更新要求処理部108はt´=t+1としてステップS7に進む。これは、元の値を領域t+1に書き込み、1単位時間後に再度更新を試みるためである。当該レコード103に対する更新要求170が、予告された次回更新時刻132の通りに発信されるとは限らないため、この処理が必要になる。
ステップS9では、更新要求処理部108は先頭の更新要求170のフラグ173の値を調べ、「新規」であればステップS10に、そうでなければステップS13に進む。
ステップS10では、更新要求処理部108は先頭の更新要求170の内容と現時点でのレコード103の登録数に基づいて、新規のレコード103の内容を初期化する。即ち、キー131、次回更新時刻132、及び属性情報134を先頭の更新要求170のキー171、次回更新時刻172、及び属性情報174にそれぞれ設定し、登録順133を登録済のレコード103の数+1、に設定する(登録済のレコード103の数は例えば第1記憶部101に記憶し、新規のレコード103の登録がある度に更新しておけばよい)。さらに、先頭の更新要求170を受信バッファ106から削除し、t´を次回更新時刻132の値とする。続くステップS11では新規のレコード103を書込バッファt´を経由して領域t´の末尾に追加する。次いでステップS12では、キー131と登録順133の組をレコード索引110に挿入するとともに、領域索引111の末尾に要素を1つ追加してt´を設定して、ステップS3に戻る。
ステップS13では、更新要求処理部108は先頭の更新要求170をスキップしてステップS3に戻る。スキップされた更新要求170は、新たに受け付けられた更新要求170とともに、1単位時間後に再度処理される。
ステップS14は、処理対象データがなくなった際に実行される。更新要求処理部108は書込バッファt+1の内容を領域t+1の末尾に追加した後に、書込バッファt+1を削除し、さらに領域tを削除して終了する。これらの処理により、不要になった記憶領域を直ちに回収して新たな領域102や書込バッファ105に利用することが可能になる。
このように、本実施の形態では、外部からの要求に基づく更新処理を効率的に実行できる。
図8は、検索処理部112の動作のうち、単一の検索要求に対する処理を示すフローチャートである。
まず、ステップS121において検索処理部112は要求元から検索要求として検索対象のレコード103を示すキーの値Qを受け取る。次にステップS122でレコード索引110を検索し、キー201がQに一致する要素が存在するかどうかをプロセッサにより調べる。存在する場合はステップS123に、存在しない場合はステップS127に進む。
ステップS123では検索処理部112はレコード索引110からキー201がQに一致する要素の登録順202の値Sを取得する。次にステップS124で、領域索引111のS番目の要素として、領域識別子の値bを取得する。さらにステップS125で、書込バッファb及び領域bを先頭から走査し、キー131がQに一致するレコード103を取得する。最後にステップS126で、取得したレコード103を要求元に送信して終了する。
ステップS127では、検索処理部112は要求元に検索失敗通知を送信して終了する。
以上のように、本実施の形態によれば、複数のレコード103を要求元により予告された次回更新時刻172に基づいて格納する複数の領域102を有するので、同時に更新されるレコード103を領域102単位に一括して読み込むことができ、レコード103単位のランダムアクセスを回避し、磁気ディスク装置の性能低下を防ぐことができる。
また、検索処理部112と索引情報を備えるので、キーに基づくレコード103の検索を、単一の領域102の走査により実現することができる。さらに、索引情報はレコード索引110及び領域索引111で構成されており、領域索引111は稠密な整数を添え字に持つ容量の比較的小さな配列であるため、ランダムアクセスメモリにキャッシュすることが可能であり、更新要求処理部108によるレコード103の格納先の領域102の変更を、余分な磁気ディスク装置へのアクセスを発生させることなく実施することができる。
ここで、前述したように、領域索引111に領域識別子211に加え、レコード103の領域102内の格納位置を示す領域オフセットを含めることができる。これにより、領域索引111の容量は増加するが、検索処理部112が領域102の全体を走査してレコード103を検索する必要がなくなるため、検索の効率が向上するという効果がある。
また、更新後のレコード103を元の位置に書き戻すのではなく、同一の次回更新時刻132を持つ複数のレコード103を書込バッファ105を経由して一括して領域102に書き込むので、書き込み時のランダムアクセスを回避するとともに、レコード103ごとに更新周期が異なっていても次回以降の読み込みがシーケンシャルアクセスとなることを保証する。また、一括して読み込まれた領域102は直ちに再利用可能となるので、記憶領域の断片化を避けることができる。
ステップS14では、書込バッファt+1の内容を領域t+1に書き出し、書込バッファt+1を削除するが、代わりに読込バッファ104を削除し、書込バッファt+1を新たな読込バッファ104としてもよい。これにより、書込バッファt+1のレコード103を領域t+1に書き込み、再度読込バッファ104に読み込むオーバヘッドを回避することができる。
また、本実施の形態では、第1記憶部101が磁気ディスク装置であることを想定しているが、第1記憶部101はフラッシュメモリとしてもよい。フラッシュメモリは純粋なランダムアクセスには適さず、ブロック単位でのアクセスが機能面や性能面から要求されるが、領域102をフラッシュメモリのブロックとすることでこれらの制約による性能低下を回避することができる。
以上説明したように、本実施の形態に係る更新予告型データ管理システムは、
更新要求受付部と、受信バッファと、第1記憶部と、更新要求処理部とを備え、
前記第1記憶部は、キーで識別される複数のレコードを、各々の次回更新時刻に基づいて異なる複数の領域に格納し、
前記更新要求受付部は、前記キーと、当該キーで識別される前記レコードに対する更新内容と、当該レコードの次回更新時刻と、からなる更新要求を受け取って前記受信バッファに蓄積し、
前記更新要求処理部は、前記複数の領域のうち、現在時刻に対応するものを処理対象領域として選択し、
前記処理対象領域内の各レコードについて、
前記キーが一致する前記受信バッファ内の前記更新要求に基づいて更新後の値を決定し、
前記次回更新時刻に対応する領域の末尾に前記レコードの更新後の値を格納するとともに、
前記レコードと前記キーが一致した前記更新要求を前記受信バッファから削除し、
前記受信バッファ内に前記キーが一致する前記更新要求が存在しない前記レコードについては、現在時刻よりも1単位だけ大きい時刻に対応する領域の末尾に前記レコードの元の値を格納し、
前記処理対象領域内の全てのレコードを処理し終えた後に、前記処理対象領域を削除することを特徴とする。
前記更新予告型データ管理システムは、
前記第1記憶部とは異なる第2記憶部と、検索処理部とを備え、
前記第2記憶部は、前記第1記憶部に格納された全てのレコードについて、前記キーに対応付けて前記レコードが格納された前記領域の領域識別子を格納する索引情報を有し、
前記更新要求処理部は、前記レコードの更新後又は元の値を前記次回更新時刻に対応する領域に格納する際に、前記索引情報の前記レコードのキーに対応する前記領域識別子を更新し、
前記検索処理部は、前記キーからなる検索要求を受け取り、前記キーに対応する前記領域識別子を前記索引情報から取得し、取得した前記領域識別子に対応する領域を走査して、前記キーと一致する前記レコードの値を前記検索要求の要求元に返信することを特徴とする。
前記更新要求は、前記キーが既知の値であるか新規の値であるかを示すフラグを含み、
前記レコードは、当該レコードが最初に前記第1記憶部に格納された登録順を表す値を含み、
前記索引情報は、前記キーに対応付けて前記レコードの前記登録順を格納するレコード索引と、前記登録順に前記レコードの前記領域識別子を格納する領域索引と、からなり、
前記更新要求処理部は、
前記フラグが新規を示す前記受信バッファ内の前記更新要求について、当該更新要求と登録順に基づいて新たなレコードを初期化して前記次回更新時刻に対応する領域の末尾に格納し、
前記更新要求を前記受信バッファから削除するとともに、
前記キーと前記登録順の組を前記レコード索引に挿入し、
前記領域索引の末尾に前記領域識別子を追加し、
前記処理対象領域内の各レコードの更新後又は元の値を前記次回更新時刻に対応する領域に格納する際に、前記領域索引の前記レコードの前記登録順に対応する前記領域識別子を更新し、
前記検索処理部は、前記検索要求の前記キーに対応する前記登録順を前記レコード索引から取得し、さらに取得した前記登録順に対応する前記領域識別子を前記領域索引から取得することを特徴とする。
前記領域索引は、さらに前記領域内の前記レコード格納位置を示す領域オフセットを含み、
前記更新要求処理部は、
前記領域索引への要素追加又は更新の際に、前記領域識別子とともに、前記領域オフセットを設定し、
前記検索処理部は、前記領域識別子とともに前記領域オフセットを前記領域索引から取得し、
前記領域識別子と前記領域オフセットとで指定される位置から前記レコードの値を取得することを特徴とする。
前記更新予告型データ管理システムは、
前記第1記憶部に接続された単一の読込バッファと、
前記第1記憶部内の複数の領域と1対1に対応する所定容量の複数の書込バッファとを備え、
前記更新要求処理部は、
前記処理対象領域からのレコードの読み込みを、前記読込バッファを介して一括して行い、
前記レコードの前記領域への書き込みを、前記領域と1対1に対応する前記書込バッファを介して一括して行い、
前記処理対象領域の全てのレコードを処理し終えた後に、
現在時刻よりも1単位だけ大きい時刻に処理対象となる次回処理対象領域に対応する書込バッファ内の全てのレコードを、前記次回処理対象領域の末尾に書き込んで、前記次回処理対象領域に対応する書込バッファを空にしてから、
前記次回処理対象領域に対応する書込バッファ及び前記処理対象領域を削除することを特徴とする。
前記更新要求処理部は、前記処理対象領域の全てのレコードを処理し終えた後に、
前記次回処理対象領域に対応する書込バッファを新たな読込バッファとし、
元の前記読込バッファ及び前記処理対象領域を削除することを特徴とする。
前記第1記憶部は、磁気ディスク装置であることを特徴とする。
前記第1記憶部は、フラッシュメモリであることを特徴とする。
前記更新要求における前記キーは、WebページのURLであり、
前記更新要求における前記レコードに対する更新内容は、時刻と、前記時刻における前記Webページの内容に含まれるリンク先URLの集合であり、
前記更新要求処理部は、
前記時刻と、前記時刻における前記Webページの内容に含まれるリンク先URLの集合とを、前記レコードに追加して前記レコードの更新後の値とすることを特徴とする。
前記更新要求における前記キーは、センサ素子の識別子であり、
前記更新要求における前記レコードに対する更新内容は、時刻と、前記時刻における前記センサ素子の測定データであり、
前記更新要求処理部は、
前記時刻と、前記時刻における前記センサ素子の測定データとを、前記レコードに追加して前記レコードの更新後の値とすることを特徴とする。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
図9は本実施の形態に係る更新予告型データ管理システム100の構成図である。
図9において、図1と同一符号を有するものは同一構成要素を表す。本実施の形態では、更新予告型データ管理システム100は、第1の書込バッファ105x、第2の書込バッファ105yを備える。実施の形態1と異なり、書込バッファの数は領域102の数と関わりなく2つである。第1の書込バッファ105xは単一の領域102(処理対象領域の次の領域)に対応し、第2の書込バッファ105yはそれ以外の領域102に書き込まれるレコード103を格納するものである。
以下のように、本実施の形態では、更新要求処理部108は、更新処理を行う際に読込バッファ104、第1の書込バッファ105x、及び第2の書込バッファ105yを用いる。更新要求処理部108は、単位時間ごとに(例えば単位時間が1分であれば毎分)、以下の処理を実行する。
(1)更新要求処理部108は、処理対象領域内のレコード103を読込バッファ104に一括して読み込む。
(2)更新要求処理部108は、読込バッファ104内の各レコード103について、受信バッファ106から読み出した更新要求170に、レコード103と同じキー171を指定した更新要求170がある場合、当該レコード103を当該更新要求170によって更新する。
(3)更新要求処理部108は、読込バッファ104内の各レコード103について、レコード103を、第2の書込バッファ105yに格納する。ただし、更新要求処理部108は、読込バッファ104内のレコード103のうち、現在時刻より1単位時間後に更新される予定のレコード103については、レコード103を第2の書込バッファ105yではなく、別の書込バッファである第1の書込バッファ105xに格納する。
(4)更新要求処理部108は、次回更新時刻132が同じレコード103ごとに、第2の書込バッファ105y内のレコード103を次回更新時刻132に対応する領域102内に一括して書き込む。また、更新要求処理部108は、第1の書込バッファ105xを新たな読込バッファ104として設定する。このとき、元の読込バッファ104は削除する。
更新要求処理部108は、上記(3)、(4)において、第1の書込バッファ105xを使用せず(第1の書込バッファ105xは不要となる)、以下のような処理を実行してもよい。
(3)更新要求処理部108は、読込バッファ104内の各レコード103(現在時刻より1単位時間後に更新される予定のレコード103も含む)について、レコード103を、第2の書込バッファ105yに格納する。
(4)更新要求処理部108は、次回更新時刻132が同じレコード103ごとに、第2の書込バッファ105y内のレコード103を次回更新時刻132に対応する領域102内に一括して書き込む。
次に、更新要求処理部108の動作をフローチャートを用いて説明する。
図10のフローチャートは、更新要求処理部108の動作を示したものである。
図10において、図7と同一符号を有するものは同一処理を表す。本実施の形態では、実施の形態1のステップS7、S11、及びS14に代わり、それぞれステップS70、S110、及びS140を実行する。
ステップS70では、ステップS7と異なり、更新要求処理部108は第1の書込バッファ105x及び第2の書込バッファ105yのいずれかを経由して領域t´の末尾に先頭のレコード103の更新後又は元の値を書き込む。ここで、t´=t+1であれば第1の書込バッファ105xが用いられ、t´>t+1であれば第2の書込バッファ105yが用いられる。
第1の書込バッファ105xを経由する場合、第1の書込バッファ105xに先頭のレコード103を追加する十分な空きがなければ、更新要求処理部108は第1の書込バッファ105x内の各レコード103を領域t+1の末尾に追加して第1の書込バッファ105xを空にしてから、先頭のレコード103を第1の書込バッファ105xの末尾に追加する。
第2の書込バッファ105yを経由する場合、第2の書込バッファ105yに先頭のレコード103を追加する十分な空きがなければ、更新要求処理部108は第2の書込バッファ105y内の各レコード103を、次回更新時刻132の順に、次回更新時刻132に対応する領域102の末尾に追加して第2の書込バッファ105yを空にしてから、先頭のレコード103を第2の書込バッファ105yの末尾に追加する。
ステップS110においても、ステップS70と同様に、更新要求処理部108は第1の書込バッファ105x及び第2の書込バッファ105yのいずれかを経由して領域t´の末尾に新規のレコード103の書き込みを行う。
ステップS140では、まず、更新要求処理部108は読込バッファ104と第1の書込バッファ105xの役割を交換し、時刻tにおける読込バッファ104を時刻t+1における第1の書込バッファ105xとして、時刻tにおける第1の書込バッファ105xを時刻t+1における読込バッファ104として用いるようにする。次に、更新要求処理部108は第2の書込バッファ105y内の各レコード103を、次回更新時刻132の順に、次回更新時刻132に対応する領域102の末尾に追加して第2の書込バッファ105yを空にし、最後に領域tを削除する。
以上のように、本実施の形態によれば、次々回(t+2)以降に処理対象となる全ての領域102に書き込まれるレコード103を一時的に格納する第2の書込バッファ105yを備えるので、各領域102に書込バッファを用意した場合と比較し、書込バッファごとの使用率の違いによる記憶効率の低下を防ぎ、磁気ディスク装置への書き込み頻度を抑えることができる。また、更新要求処理部108は、第2の書込バッファ105yに格納されたレコード103を複数の領域102に振り分けて書き込む際に、次回更新時刻132ごと、即ち領域102ごとにレコード103を並べ替えて処理するステップS70、S110及びS140を有するので、シーケンシャルアクセスに近い性能を得ることができる。さらに、次回処理対象となる領域102に書き込まれるレコード103を一時的に格納する第1の書込バッファ105xを備え、処理対象領域の切り換え時に第1の書込バッファ105xを新たな読込バッファ104とするステップS140を有するので、次回処理対象領域への書き込みと再読み込みによるオーバヘッドを低減することができる。
なお、前述したように、上記において、第1の書込バッファ105xを用いず、次回更新時刻t+1のレコード103も合わせて第2の書込バッファ105yに書き込んでもよい。この場合、次回処理対象領域のレコード103の一部に対する書き込みと読み込みを回避する効果は得られないが、領域102ごとに書込バッファを用意した場合の記憶効率の低下を防ぎ、磁気ディスク装置への書き込み頻度を抑える効果は維持される。
以上説明したように、本実施の形態に係る更新予告型データ管理システムは、実施の形態1に係るものと異なる点として、
前記第1記憶部に接続された単一の読込バッファと、
前記第1記憶部に接続された単一の書込バッファとを備え、
前記更新要求処理部は、
前記処理対象領域からのレコードの読み込みを、前記読込バッファを介して一括して行い、
前記レコードの前記領域への書き込みを、前記書込バッファに対して行い、
前記書込バッファが所定容量に達した際には、前記書込バッファ内の全てのレコードを、前記次回更新時刻の順に、前記全てのレコードの各々の次回更新時刻に対応する領域の末尾に一括して書き込み、
前記処理対象領域の全てのレコードを処理し終えた後に、
前記書込バッファ内の全てのレコードを前記次回更新時刻の順に、前記全てのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、前記書込バッファを空にし、
前記処理対象領域を削除することを特徴とする。
あるいは、本実施の形態に係る更新予告型データ管理システムは、
前記第1記憶部に接続された単一の読込バッファと、
前記第1記憶部に接続された第1及び第2の書込バッファとを備え、
前記更新要求処理部は、
前記処理対象領域からのレコードの読み込みを、前記読込バッファを介して一括して行い、
前記レコードの前記領域への書き込みを、
前記次回更新時刻が現在時刻よりも1単位だけ大きな値であれば、前記第1の書込バッファに対して行い、
前記次回更新時刻が現在時刻よりも2単位以上大きな値であれば、前記第2の書込バッファに対して行い、
前記第1の書込バッファが所定容量に達した際には、前記第1の書込バッファ内の全てのレコードを、現在時刻よりも1単位だけ大きい時刻に処理対象となる次回処理対象領域の末尾に一括して書き込み、
前記第2の書込バッファが所定容量に達した際には、前記第2の書込バッファ内の全てのレコードを、前記次回更新時刻の順に、前記全てのレコードの各々の次回更新時刻に対応する領域の末尾に一括して書き込み、
前記処理対象領域の全てのレコードを処理し終えた後に、
前記読込バッファと前記第1の書込バッファの役割を交換し、
前記第2の書込バッファ内の全てのレコードを、前記次回更新時刻の順に、前記全てのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、前記第2の書込バッファを空にし、
前記処理対象領域を削除することを特徴とする。
実施の形態3.
本実施の形態について、主に実施の形態1との差異を説明する。
本実施の形態では、更新予告型データ管理システム100は、実施の形態1の構成要素に加え、第1記憶部101及び第2記憶部109と異なる第3記憶部を備える。
更新要求処理部108は、第3記憶部に、更新要求170の属性情報174の内容を格納し、その格納位置を示すポインタをレコード103の属性情報134に連結してレコード103の更新後の値とする。例えば、属性情報174にWebページの収集時刻と当該時刻におけるWebページの内容を含め、レコード103によりキー131のURLに対応するWebページ内容の時系列的な変化を格納しようとする場合を考える。この場合、Webページの内容を直接レコード103に格納すると、レコード103が肥大化してしまうが、ポインタのみをレコード103に格納することで、アクセスするデータ量を削減することが可能になる。
以上説明したように、本実施の形態に係る更新予告型データ管理システムは、実施の形態1に係るものと異なる点として、
前記第1記憶部とは異なる第3記憶部を備え、
前記更新要求における前記キーは、WebページのURLであり、
前記更新要求における前記レコードに対する更新内容は、時刻と、前記時刻における前記Webページの内容であり、
前記更新要求処理部は、
前記時刻における前記Webページの内容を前記第3記憶部に格納するとともに、
前記時刻と、前記時刻における前記Webページの内容の前記第3記憶部における格納位置とを、前記レコードに追加して前記レコードの更新後の値とすることを特徴とする。
以上、本発明の実施の形態について説明したが、これらのうち、2つ以上の実施の形態を組み合わせて実施しても構わない。あるいは、これらのうち、1つの実施の形態を部分的に実施しても構わない。あるいは、これらのうち、2つ以上の実施の形態を部分的に組み合わせて実施しても構わない。
実施の形態1に係るデータ管理システムの構成図である。 実施の形態1に係るデータ管理システムのハードウェア構成の一例を示す図である。 実施の形態1に係る更新要求の具体例を示す図である。 実施の形態1に係るレコードの具体例を示す図である。 実施の形態1に係るレコード索引の具体例を示す図である。 実施の形態1に係る領域索引の具体例を示す図である。 実施の形態1に係る更新要求処理部の動作を示すフローチャートである。 実施の形態1に係る検索処理部の動作を示すフローチャートである。 実施の形態2に係るデータ管理システムの構成図である。 実施の形態2に係る更新要求処理部の動作を示すフローチャートである。
符号の説明
100 更新予告型データ管理システム、101 第1記憶部、102 領域、103 レコード、104 読込バッファ、105 書込バッファ、105x 第1の書込バッファ、105y 第2の書込バッファ、106 受信バッファ、107 更新要求受付部、108 更新要求処理部、109 第2記憶部、110 レコード索引、111 領域索引、112 検索処理部、131 キー、132 次回更新時刻、133 登録順、134 属性情報、170 更新要求、171 キー、172 次回更新時刻、173 フラグ、174 属性情報、201 キー、202 登録順、211 領域識別子、901 LCD、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 HDD、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (12)

  1. キーで識別される複数のレコードを、各レコードが更新される予定時刻に応じて複数の領域に分けて記憶する第1記憶部と、
    キーと当該キーに対応するレコードの更新内容と当該レコードを次に更新する予定時刻とを指定した更新要求の入力を受け付ける更新要求受付部と、
    単位時間ごとに、前記複数の領域のうち、現在時刻に対応する領域を処理対象領域として選択し、選択した処理対象領域内の各レコードについて、前記更新要求受付部が入力を受け付けた更新要求に、レコードと同じキーを指定した更新要求がある場合、当該レコードを当該更新要求で指定された更新内容で更新し、更新したレコードを当該更新要求で指定された予定時刻に対応する領域内に書き込む更新要求処理部とを備えることを特徴とするデータ管理システム。
  2. 前記更新要求処理部は、選択した処理対象領域内の各レコードについて、前記更新要求受付部が入力を受け付けた更新要求に、レコードと同じキーを指定した更新要求がない場合、当該レコードを現在時刻より所定の単位時間後の予定時刻に対応する領域内に書き込むことを特徴とする請求項1に記載のデータ管理システム。
  3. 前記所定の単位時間は、1単位時間であることを特徴とする請求項2に記載のデータ管理システム。
  4. 前記データ管理システムは、さらに、
    キーごとに、キーに対応するレコードが記憶された領域を識別する領域識別子を記録した索引情報を記憶する第2記憶部を備え、
    前記更新要求処理部は、レコードをいずれかの領域内に書き込む際に、前記索引情報に記録された、当該レコードのキーに対応する領域識別子を、当該レコードを書き込む領域の領域識別子で更新し、
    前記データ管理システムは、さらに、
    キーを指定した検索要求の入力を受け付け、当該検索要求で指定されたキーに対応する領域識別子を前記索引情報から読み取り、読み取った領域識別子に対応する領域から当該キーに対応するレコードを抽出する検索処理部を備えることを特徴とする請求項1から3までのいずれかに記載のデータ管理システム。
  5. 各レコードには、レコードが最初に前記第1記憶部に書き込まれた順番が登録順として記録されており、
    前記索引情報には、キーごとに、キーに対応するレコードの登録順を記録したレコード索引と、キーの登録順に、キーに対応する領域識別子を記録した領域索引とが含まれており、
    前記更新要求処理部は、レコードをいずれかの領域内に書き込む際に、当該レコードの登録順を当該レコードから読み取り、前記領域索引にて当該登録順の位置に記録された領域識別子を、当該レコードを書き込む領域の領域識別子で更新し、
    前記検索処理部は、入力を受け付けた検索要求で指定されたキーに対応する登録順を前記レコード索引から読み取り、前記領域索引にて当該登録順の位置に記録された領域識別子を読み取り、読み取った領域識別子に対応する領域から当該キーに対応するレコードを抽出することを特徴とする請求項4に記載のデータ管理システム。
  6. 前記領域索引には、キーの登録順に、キーに対応する領域識別子のほか、当該領域識別子に対応する領域にて当該キーに対応するレコードが記憶された位置を示す領域オフセットが記録されており、
    前記更新要求処理部は、レコードをいずれかの領域内に書き込む際に、さらに、前記領域索引にて当該レコードの登録順の位置に記録された領域オフセットを、当該レコードを書き込む領域内の位置を示す領域オフセットで更新し、
    前記検索処理部は、前記領域索引にて、前記レコード索引から読み取った登録順の位置に記録された領域識別子のほか、領域オフセットを読み取り、当該領域識別子に対応する領域内の当該領域オフセットで示された位置から当該キーに対応するレコードを抽出することを特徴とする請求項5に記載のデータ管理システム。
  7. 前記更新要求処理部は、単位時間ごとに、
    (1)前記処理対象領域内のレコードを読込バッファに一括して読み込み、
    (2)前記読込バッファ内の各レコードについて、前記更新要求受付部が入力を受け付けた更新要求に、レコードと同じキーを指定した更新要求がある場合、当該レコードを当該更新要求によって更新し、
    (3)前記読込バッファ内の各レコードについて、レコードを、予定時刻に対応する複数の書込バッファのうち、当該レコードを書き込む領域と同じ予定時刻に対応する書込バッファに格納し、
    (4)書込バッファごとに、書込バッファ内のレコードを当該書込バッファと同じ予定時刻に対応する領域内に一括して書き込むことを特徴とする請求項1から6までのいずれかに記載のデータ管理システム。
  8. 前記更新要求処理部は、
    (4´)現在時刻より1単位時間後の予定時刻に対応する書込バッファについては、当該書込バッファ内のレコードを当該書込バッファと同じ予定時刻に対応する領域内に書き込まず、当該書込バッファを新たな読込バッファとして設定することを特徴とする請求項7に記載のデータ管理システム。
  9. 前記更新要求処理部は、単位時間ごとに、
    (1)前記処理対象領域内のレコードを読込バッファに一括して読み込み、
    (2)前記読込バッファ内の各レコードについて、前記更新要求受付部が入力を受け付けた更新要求に、レコードと同じキーを指定した更新要求がある場合、当該レコードを当該更新要求によって更新し、
    (3)前記読込バッファ内の各レコードについて、レコードを書込バッファに格納し、
    (4)次に更新される予定時刻が同じレコードごとに、前記書込バッファ内のレコードを予定時刻に対応する領域内に一括して書き込むことを特徴とする請求項1から6までのいずれかに記載のデータ管理システム。
  10. 前記更新要求処理部は、
    (3´)前記読込バッファ内のレコードのうち、現在時刻より1単位時間後に更新される予定のレコードについては、レコードを前記書込バッファに格納せず、当該レコードを別の書込バッファに格納し、
    (4´)前記別の書込バッファを新たな読込バッファとして設定することを特徴とする請求項9に記載のデータ管理システム。
  11. 第1記憶部が、キーで識別される複数のレコードを、各レコードが更新される予定時刻に応じて複数の領域に分けて記憶し、
    更新要求受付部が、キーと当該キーに対応するレコードの更新内容と当該レコードを次に更新する予定時刻とを指定した更新要求の入力を受け付け、
    更新要求処理部が、単位時間ごとに、前記複数の領域のうち、現在時刻に対応する領域を処理対象領域として選択し、選択した処理対象領域内の各レコードについて、前記更新要求受付部が入力を受け付けた更新要求に、レコードと同じキーを指定した更新要求がある場合、当該レコードを当該更新要求で指定された更新内容で更新し、更新したレコードを当該更新要求で指定された予定時刻に対応する領域内に書き込むことを特徴とするデータ管理方法。
  12. キーで識別される複数のレコードを、各レコードが更新される予定時刻に応じて複数の領域に分けて記憶する第1記憶部を備えるコンピュータにより実行されるデータ管理プログラムであって、
    キーと当該キーに対応するレコードの更新内容と当該レコードを次に更新する予定時刻とを指定した更新要求の入力を受け付ける更新要求受付手順と、
    単位時間ごとに、前記複数の領域のうち、現在時刻に対応する領域を処理対象領域として選択し、選択した処理対象領域内の各レコードについて、前記更新要求受付手順が入力を受け付けた更新要求に、レコードと同じキーを指定した更新要求がある場合、当該レコードを当該更新要求で指定された更新内容で更新し、更新したレコードを当該更新要求で指定された予定時刻に対応する領域内に書き込む更新要求処理手順とをコンピュータに実行させることを特徴とするデータ管理プログラム。
JP2008303056A 2008-11-27 2008-11-27 データ管理システム及びデータ管理方法及びデータ管理プログラム Expired - Fee Related JP5448428B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008303056A JP5448428B2 (ja) 2008-11-27 2008-11-27 データ管理システム及びデータ管理方法及びデータ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008303056A JP5448428B2 (ja) 2008-11-27 2008-11-27 データ管理システム及びデータ管理方法及びデータ管理プログラム

Publications (2)

Publication Number Publication Date
JP2010128812A JP2010128812A (ja) 2010-06-10
JP5448428B2 true JP5448428B2 (ja) 2014-03-19

Family

ID=42329155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008303056A Expired - Fee Related JP5448428B2 (ja) 2008-11-27 2008-11-27 データ管理システム及びデータ管理方法及びデータ管理プログラム

Country Status (1)

Country Link
JP (1) JP5448428B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5655538B2 (ja) * 2010-12-15 2015-01-21 三菱電機株式会社 データ管理装置及びデータ管理方法
JP5649508B2 (ja) * 2011-05-09 2015-01-07 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
JP6251388B2 (ja) 2014-11-12 2017-12-20 華為技術有限公司Huawei Technologies Co.,Ltd. KeyValueデータベースのデータテーブルを更新するための方法およびテーブルデータを更新するための装置
JP6398693B2 (ja) * 2014-12-19 2018-10-03 富士通株式会社 ファイルシステム、ファイルシステムの制御方法、および、ファイルシステムの制御プログラム
CN111399748B (zh) * 2019-01-02 2023-09-05 ***通信有限公司研究院 一种数据放置方法、装置和计算机可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0677239B2 (ja) * 1984-12-20 1994-09-28 富士通株式会社 メモリアクセス制御装置
JPH0827751B2 (ja) * 1993-07-23 1996-03-21 日本電気株式会社 トランザクション資源動的更新方式
JPH08249224A (ja) * 1995-03-10 1996-09-27 Toshiba Corp トランザクション管理装置
JPH0934765A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置
JP3618917B2 (ja) * 1996-08-05 2005-02-09 株式会社東芝 情報収集方法
KR100578143B1 (ko) * 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
JP4795258B2 (ja) * 2007-01-29 2011-10-19 三菱電機株式会社 Webページ再収集方式

Also Published As

Publication number Publication date
JP2010128812A (ja) 2010-06-10

Similar Documents

Publication Publication Date Title
CN109254733B (zh) 用于存储数据的方法、装置和***
US9858282B2 (en) Information searching apparatus, information managing apparatus, information searching method, information managing method, and computer product
US6754799B2 (en) System and method for indexing and retrieving cached objects
KR100330576B1 (ko) 컴퓨터네트워크로부터월드와이드웹상의페이지위치을파악하고문서위치를파악하는시스템및방법
US8099421B2 (en) File system, and method for storing and searching for file by the same
CN100454305C (zh) 文档管理方法和装置以及文档搜索方法和装置
JP2004530216A (ja) 異なるブロックサイズのテーブルスペースの統合
JP5448428B2 (ja) データ管理システム及びデータ管理方法及びデータ管理プログラム
US11449256B2 (en) Method for accelerating image storing and retrieving differential latency storage devices based on access rates
CN107704203A (zh) 聚合大文件的删除方法、装置、设备及计算机存储介质
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
US20180075116A1 (en) Information processing system, control device, and computer-readable recording medium having processing program recorded therein
KR100882864B1 (ko) 디지털 포렌식 시스템을 위한 대용량 데이터 고속 검색시스템 및 방법
US7953721B1 (en) Integrated search engine devices that support database key dumping and methods of operating same
CN111752941B (zh) 一种数据存储、访问方法、装置、服务器及存储介质
US5588149A (en) Document classification and retrieval with title-based on-the-fly class merge
US20120317130A1 (en) Computer product, search method, search apparatus, and node
CN111290700A (zh) 分布式数据读写方法和***
CN112084141A (zh) 一种全文检索***扩容方法、装置、设备及介质
CN111723266A (zh) 海量数据处理方法和装置
JPH1011570A (ja) 電子ファイリング装置
JP5247192B2 (ja) 周期更新データ管理システム
CN115827653B (zh) 一种用于htap和海量数据的纯列式更新方法及装置
CN106991021A (zh) 从现有数据文件构建新数据文件的方法及***
CN116136838A (zh) 一种深度学习训练数据集快速载入临时缓存方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130924

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees