JP5655538B2 - データ管理装置及びデータ管理方法 - Google Patents
データ管理装置及びデータ管理方法 Download PDFInfo
- Publication number
- JP5655538B2 JP5655538B2 JP2010279255A JP2010279255A JP5655538B2 JP 5655538 B2 JP5655538 B2 JP 5655538B2 JP 2010279255 A JP2010279255 A JP 2010279255A JP 2010279255 A JP2010279255 A JP 2010279255A JP 5655538 B2 JP5655538 B2 JP 5655538B2
- Authority
- JP
- Japan
- Prior art keywords
- record
- area
- update request
- update
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
当該システムでは、システム自体が決定した更新時刻に基づいて管理するデータの各レコードを外部記憶装置上に配置し、更新時刻に基づいて更新対象レコードを読出すことでシーケンシャルアクセスとなり、外部記憶装置へのアクセスを高速化している。
一方、特許文献2に記載の方式は、システム自身が各レコードの更新時刻を決定することで、外部記憶装置へのアクセスをシーケンシャルにすることができ高速化が可能となるが、単独では外部からの要求に基づく更新処理に適さない。
図1はこの発明の実施の形態に係るデータ管理装置の構成図である。
図1において、データ管理装置Aは、外部から受け取るデータの更新内容である更新要求メッセージ1a、更新要求メッセージ1aに受付時刻などの情報を付加した更新要求1、更新要求1を一時的に格納する主記憶装置内の一時領域2、一時領域2が不足した時に一時領域2の更新要求1を退避させる外部記憶装置内の複数の退避領域3a〜3c(それぞれ時刻t〜t+nに対応)、更新要求1に次回更新時刻等の情報を付加した更新要求1ごとの情報であるレコード4、複数のレコード4を外部記憶装置内に格納し次回更新時刻で識別される複数の格納領域5a〜5c(それぞれ時刻t〜t+nに対応)、更新要求1の更新対象レコードを特定するキーと更新要求1を最初に受け付けて格納領域5a〜5cのいずれかに登録した登録順の組を格納したレコード索引6、更新要求1を格納領域5a〜5cのいずれかに格納した最終の登録順を記憶する最終登録順7、格納領域5a〜5cのいずれかに格納される各レコード4の登録順の値が示す配列に次回更新時刻で識別される格納領域5a〜5cのいずれかを識別する領域識別子を記憶する領域索引8、更新要求メッセージ1aを受け付けて受付時刻などの情報を付加し更新要求1として一時領域2に格納する更新要求受付部9、一時領域2の空き領域を作る一時領域消去部10、所定時間ごとに対応する次回更新時刻で識別される格納領域5a〜5cのいずれかのレコード4をバッファに読み込み、一時領域2または所定時間に対応する次回更新時刻で識別される退避領域3a〜3cのいずれかに格納されている更新要求1の更新内容を取得してレコード4の内容を更新する更新要求反映部11、更新要求反映部11によって更新されるレコード4が格納されている格納領域5a〜5cのいずれかと対応する退避領域3a〜3cのいずれかの更新要求1が読み込まれる読み込みバッファ12、更新要求反映部11によって更新されるレコード4が格納されている格納領域5a〜5cのいずれかのレコード4が読み込まれる読込バッファ13、更新要反映部11がデータ更新を行う時間単位に格納領域5a〜5cと1対1に対応し、格納領域5a〜5c毎に書き込みをまとめて行う可変容量の書込バッファ14b〜14c(それぞれ時刻t+1〜t+nに対応)、データ管理装置Aの利用者から検索要求15を受け取ると格納領域5a〜5cと書込バッファ14b〜14cを検索してレコード4を抽出し、一時領域2と退避領域3a〜3cの更新情報である更新要求1を反映させたレコード4を検索応答16として応答する検索処理部17から構成される。
さらに、更新要求受付部9および検索処理部17はLAN等の通信回線を介して要求元と更新要求メッセージ1aや検索要求15および検索応答16の授受を行うことができる。
更新要求メッセージ1aは、更新する対象のレコード4(更新対象レコード)を特定するキー101aとレコード4の更新内容である属性更新情報102aからなる。
更新要求1はキー101、属性更新情報102、受付時刻103、最終受付時刻104、及び受付回数105からなる。
そして、更新要求1のそれぞれの値は、更新要求受付部9が更新要求メッセージ1aを受け付けた際に付与される。キー101に当該更新要求メッセージ1aのキー101a、属性更新情報102に更新要求メッセージ1aの属性更新情報102a、受付時刻103と最終受付時刻104に現在時刻、及び受付回数105に1がそれぞれ付与される。
退避領域3a〜3cは、複数の更新要求1を先頭から順(時系列)に格納したものとなっている。
退避領域3a〜3cのそれぞれに新たに更新要求1を追加格納する際には、末尾に必要な記憶領域が割り当てられ、更新要求1の内容が書き込まれる。このような動作は、退避領域3a〜3cのそれぞれをファイルとして実現し、逐次的に更新要求1を書き込むことで実現される。
また、次回更新時刻により識別される退避領域3a〜3cは、同じ次回更新時刻により識別される格納領域5a〜5cに対応する。
レコード4はキー401、属性情報402、次回更新時刻403、登録順404、平均更新周期405、最終更新時刻406、更新回数407、及び作成時刻408からなる。
登録順404には、レコード索引6に格納されている登録順と同じで、更新要求1が最初にレコード4として格納領域に登録された時の最終登録順7が格納されている。
また、格納領域5a〜5cは、図4の退避領域3a〜3cと同様、複数のレコード4を先頭から順に格納した形式を持つ。
まず、データ管理装置Aにおけるデータの登録(更新要求1を格納領域5a〜5cのいずれかのレコード4として格納する際に、キー401と属性情報402に登録するデータ)は、実施の形態1では、Webページ毎に当該Webページへのハイパーリンクを含むWebページの集合を管理する用途を例にして述べるため、以下のようになる。
このようにハイパーリンク先URLをキーとして、リンク元ページのURLを管理するデータの管理を、大規模なWeb情報の収集と並行して実施すると高い更新負荷となる。しかし、このデータ管理装置Aでのデータの管理によれば、高い更新負荷に追随し、高い更新性能を維持することができる。
一般的に、格納領域5a〜5cのレコード4の属性情報402に更新要求メッセージ1aの属性更新情報102aを反映する方法には、データ管理装置Aの用途に応じて例えば次の様な方法が考えられる。
(2)格納領域5a〜5cのレコード4のキー401毎の属性情報402の集合を保持することが目的の場合、格納領域5a〜5cのレコード4の属性情報402の値に更新要求メッセージ1aの属性更新情報102aの値を連結する。
(3)格納領域5a〜5cのレコード4のキー401毎の属性情報402の統計値を保持することが目的の場合、格納領域5a〜5cのレコード4の属性情報402の値と更新要求メッセージ1aの属性更新情報102aの値の間で何らかの演算(例えば加算)を行う。
本実施の形態1では、(2)の方法となる。
レコード索引6は、キー601と登録順602の組を複数格納したものである。各組はキー601の昇順に格納される。
更新要求1によりデータ管理装置Aに新たなキー101が追加される都度、当該キー101と、最終登録順7から採番した登録順602の組がレコード索引6に格納される。
この時、レコード索引6に格納される最終登録順7から採番した登録順602は、キー101と同じキー401を持つ格納領域5a〜5cのレコード4の登録順404と同じである。
領域索引8は、レコード索引6の登録順602(更新要求1がレコード4として格納領域5a〜5cに登録された順)に、格納領域5a〜5cのいずれかを識別する領域識別子801が格納されている。
領域識別子801は、図1の更新要求反映部11が退避領域3a〜3c及び格納領域5a〜5cを識別する値であり、実施の形態1でのその値は、更新要求反映部11が処理する所定時間単位の時刻(次回更新時刻)である。
一方、領域索引8の内容はデータ管理装置Aが停止している期間も保持される必要がある。そのため、停止時にはランダムアクセスメモリから磁気ディスク装置に退避されるものとする。
同様に、図1の最終登録順7の値も通常はランダムアクセスメモリに保持し、停止時に磁気ディスク装置に退避することが望ましい。
図8は、更新要求受付部9の動作を示すフローチャートである。
まず、ステップS91で、受け取った更新要求メッセージ1aのキー101aと同一のキー101を持つ更新要求1を一時領域2から検索する。
キー101を持つ更新要求1が一時領域2に存在する場合は、ステップS95に進み、存在しない場合はステップS92に進む。
空き領域が存在する場合は、ステップS94に進み、空き領域が存在しない場合は、ステップS93に進む。
そして、この様に設定した新たな更新要求1を一時領域に格納し、終了する。
即ち、ステップS94では、更新要求メッセージ1aの内容を新たな更新要求1として一時領域2に格納する。
具体的には、まず、更新要求1の属性更新情報102に更新要求メッセージ1aの属性更新情報102aを、用途に応じて上書き(置換)、連結、集計等して併合する。
さらに、更新要求1の最終受付時刻104に現在時刻を設定し、受付回数105に1を加える。これにより、一時領域2の更新要求1は過去に受け取った更新要求メッセージ1aと新たに受け取った更新要求メッセージ1aを合わせた情報を持つことになる。
一時領域消去部10は、更新要求受付部9が更新要求1を一時領域2に書き込む際に、書き込むための空き領域がない場合に、一時領域2に空き領域を作るために以下の処理を行う。
(1)格納領域5a〜5cに、一時領域2のキー101と同じキー401のレコード4を持つ場合
(1−1)一時領域2と既存のレコード索引6と領域索引8から新規レコード索引6
を作成する。
(1−2)一時領域2の更新要求1を退避領域3a〜3cに書き出す。
(2)格納領域5a〜5cに、一時領域2のキー101と同じキー401のレコード4がない場合
(2−1)一時領域2の更新要求1をレコード4の形式にし、格納領域5a〜5cに書き出す。
(2−2)最終登録順7と領域索引8の更新を行う。
(2−1)の実際の処理では、一時領域2の更新要求1をレコード4の形式にして書込バッファ14b〜14cに書き出し、書込バッファ14b〜14cの総容量が所定値を超えると書込バッファ14b〜14cのレコード4が格納領域5a〜5cにまとめて書き出される。
始めに、ステップS101において、新規レコード索引6として空のレコード索引を作成する。
続いて、ステップS102で、一時領域2の要素を示すポインタ変数pが一時領域2の先頭要素を指すように、また、レコード索引6の要素を示すポインタ変数qが既存のレコード索引6の先頭要素を指すように設定する。
尚、一時領域2は、キー101の昇順に要素(更新要求1)を取り出すことができるよう構成されているものとする。
そして、p.key<q.keyの場合(更新要求1のキーが既存のレコード索引6に存在しない場合)またはqが有効範囲外の場合(既存のレコード索引6が空の場合、または既存のレコード索引6の要素を示すポインタ変数qが既存のレコード索引6の末尾に達した場合)は、ステップS104に進む。
また、p.key>q.keyの場合(一時領域2に存在しないキーが既存のレコード索引6に存在する場合)、またはpが有効範囲外(一時領域2の要素を示すポインタ変数pが既に一時領域2の末尾に達した場合)は、ステップS114に進む。
ステップS104以降の処理は、更新要求1のキーが既存のレコード索引6に存在しない場合、または既存のレコード索引6の要素を示すポインタ変数qが既存のレコード索引6の末尾に達した場合の処理である。そのため、一時領域2の更新要求1のキー101を新たに新規レコード索引6に追記し、一時領域2の更新要求1を格納する格納領域5a〜5cのいずれかを識別する領域識別子801を領域索引8に追記する。更に、一時領域2の更新要求1をレコード形式にして次回更新時刻以降の格納領域5a〜5cのいずれかに書込バッファ14b〜14cのいずれかを介して格納し、格納領域5a〜5cのいずれかに格納した一時領域2の更新要求1を削除して、一時領域2の空き領域を作る処理を行う。
ステップS104で、最終登録順7に1を加えて更新する。
続いて、ステップS105では、一時領域2の要素を示すポインタ変数pが指す更新要求1のキー101(p.key)と、更新後の最終登録順7の値を組にして、新規レコード索引6の末尾に追記する。
次に、新たなレコード4の格納領域5a〜5cへの格納位置(格納領域5a〜5cのいずれかの領域識別子801)を領域索引8に設定する処理をステップS106とステップS107で行う。
即ち、最終登録順7に対応する領域索引8の要素に、現在時刻から所定時間後の時刻により識別される格納領域5a〜5cのいずれかの領域識別子801を設定する。
書込バッファ14b〜14cのいずれかに追記する具体的な内容は、一時領域2の要素を示すポインタ変数pが指す更新要求1のキー101(p.key)、属性更新情報102、受付時刻103、最終受付時刻104、受付回数105から1引いた値を、書込バッファ14b〜14cのいずれかのキー401、属性情報402、作成時刻408、最終更新時刻406、更新回数407に設定し(更新回数=受付回数−1)、最終登録順7の値を登録順404に、現在時刻に上記所定時間を加えた時刻を次回更新時刻403に設定する。
(最終更新時刻406−作成時刻408)/更新回数407
とし、そうでなければ0とする。
更新要求1をレコード形式にして書込バッファ14b〜14cのいずれかに追記する際に、新たなレコード4を書込む容量を確保できなくなると、各書込バッファ14b〜14cのいずれかの内容を、それぞれの書込バッファ14b〜14cに対応する格納領域5b〜5cのいずれかの末尾にまとめて書き込む処理を行う。
このように、各書込バッファ14b〜14cに対応する各格納領域5b〜5cに書き込むことで各書込バッファ14b〜14cを空にする。
続いてステップS109で一時領域2の要素を示すポインタ変数pを1要素分進め、ステップS116に進む。
ステップS110以降の処理は、更新要求1のキー101と同じキー601が既存のレコード索引6に存在する(格納領域5a〜5cにキー101と同じキー401を持つレコードが存在する)時の処理である。そのため、既存のレコード索引6の内容を新規レコード索引に追記して、更新要求1の内容を退避領域3a〜3cに退避させ、一時領域2の更新要求1を削除して、一時領域2の空き領域を作る処理を行う。
ステップS110では、既存のレコード索引6の要素を示すポインタ変数qが指すレコード索引6の内容(キー601と登録順602の組)を新規レコード索引6の末尾に追記する。
次に、ステップS111で、既存のレコード索引6の要素を示すポインタ変数qが指す登録順602の値をnとし、領域索引8の先頭から第n番目の要素(領域識別子801)を変数rに設定する。この変数rは、更新要求1のキー101と同じキー401のレコード4が存在する格納領域5a〜5cのいずれかを識別する領域識別子801を示す。
続いてステップS113、で一時領域2の要素を示すポインタ変数p及び既存のレコード索引6の要素を示すポインタ変数qをそれぞれ1要素分進め、ステップS116に進む。
ステップS114以降の処理は、一時領域2に存在しないキーが既存のレコード索引6に存在する場合、または一時領域2の要素を示すポインタ変数pが既に一時領域2の末尾に達した場合の処理であり、既存のレコード索引6の内容を新規レコード索引6に追記する処理を行う。
ステップS114以降の処理では、一時領域2に関しての処理は行わない。
続いてステップS115で、qを1要素分進め、ステップS116に進む。
条件が成立しない場合(pまたはqが末尾に達していない場合)は、未処理のデータがあるため、ステップS103に戻る。
また、ステップS113を経由してステップS103に戻った場合には、ポインタ変数pとポインタ変数qどちらも1要素分進んだ一時領域2の要素、1要素分進んだ既存のレコード索引6の要素を指している。
ステップS103以降の処理は前述と同様である。
更新要求反映部11では、所定時間単位ごとに対応する次回更新時刻で識別される格納領域5b〜5cのいずれかと退避領域3a〜3cのいずれかを読込バッファに読み込み、格納領域5b〜5cのいずれかのレコード4に一時領域2または退避領域3a〜3cのいずれかの更新要求1を反映して書込バッファ14b〜14cのいずれかに追記する。反映した更新要求1は一時領域2または退避領域3a〜3cから削除する。
一時領域2の更新要求1が反映された書込バッファ14b〜14cのいずれかのレコード4は、書込バッファ14b〜14cの総容量が所定値を超えた場合に、まとめて格納領域5b〜5cに書き込まれる。
更新要求反映部11は、所定時間単位ごとに動作し、例えば1時間ごとに実行されるプログラムにより実現される。
更新要求反映部11が所定時間単位ごとに起動する時の現在時刻をtとする。
始めに、ステップS121で、次回更新時刻がtの格納領域t(格納領域5a)のレコード4をまとめて読込バッファ13に読込み、各レコード4をキー401の順にソートし、その先頭アドレスをポインタ変数sに設定する。
ソート条件に受付時刻103を含めているのは、一時領域消去部10で一時領域2から退避領域3aへの書込みが複数回起こった場合に、同一キー101を持つ複数の更新要求1が存在する可能性があるためであり、受付時刻103の順に処理することが目的である。
両者が等しければステップS124に進み、両者が等しくない、またはポインタ変数uが読込バッファ12の末尾に達した場合には、ステップS125に進む。
具体的には、格納領域5aのレコード4の属性情報402に退避領域3aの更新要求1の属性更新情報102を反映し、最終更新時刻406に最終受付時刻104を設定し、更新回数407に受付回数105の値を加える。
レコード4の属性情報402に更新要求1の属性更新情報102を反映する方法は、図5の格納領域5a〜5cのレコード4の形式の説明で示したデータの更新と同様である。
その後、さらにポインタ変数uを1要素分進め、ステップS123に戻る。
その後、反映した当該更新要求1は一時領域2から削除する。
一時領域2には、同一キー101を持つ更新要求1は複数存在しないため、繰り返しは行わず、ステップS127に進む。
(最終更新時刻406−作成時刻408)/更新回数407
を設定する。
ただし、更新回数407が0の場合(対応する更新要求1が存在しなかった場合)には、平均更新周期405は、所定時間(例えば、図9のステップS106で示した現在時刻から所定時間後の時刻に対応する格納領域5a〜5cのいずれかの領域識別子801を設定する時の所定時間)とする。
さらに、現在時刻に平均更新周期405の値を加えた値(現在時刻に所定時間を加えた値)をt’とし、次回更新時刻403に設定する。
なお、書込バッファ14b〜14cに十分な容量がない場合は、図9のステップS108と同様、各書込バッファ14b〜14cの内容を各格納領域5b〜5cに書込みを行う。
このように、各書込バッファ14b〜14cの内容を各格納領域5a〜5cに書き込むことで各書込バッファ14b〜14cを空にする。
末尾に達した場合は、ステップS131に進み、tに対応する次回更新時刻の格納領域5a及び該格納領域5aに対応する退避領域3aを削除して終了する。
検索処理部17は、データ管理装置Aの利用者端末や外部プログラムまたはコンピュータなどから検索要求15を受け取って動作を開始する。
始めにステップS141において、検索要求15の検索キー(Qとする)が、レコード索引6中に存在するか否かを判定する。
検索キーQがレコード索引6に存在する場合は、ステップS142において、レコード索引6からキー601が検索キーQに等しい組の登録順602を取得しwとする。
続いてステップS143で、領域索引8の先頭から第w番目に対応する要素を取得し、その要素の領域識別子がxであるとする。
検索キーQに等しいキー101の更新要求1が存在する場合は、受付時刻103の昇順に、各更新要求1の内容(属性更新情報102aなど)を上記レコード4のコピーに反映させ、上記レコード4のコピーの内容(属性情報402など)を更新する。
続いてステップS146において、更新後のレコード4の属性情報402を検索応答16として要求元に応答して動作を終了する。
一方、レコード4の更新頻度が時間とともに変化することも多く、過去の情報を全て保持していると、傾向の変化に追随できないこともある。そこで、更新要求の履歴として、N個以下の範囲で、最近の更新時刻を保持しておき、それらの値からレコード4の最近の平均更新周期を求めることも考えられる。
即ち、現在時刻以降に更新要求反映部11が動作するいずれか1つの時刻の次回更新時刻の書込バッファ14b〜14cに追記することができる。
これにより、高頻度に更新されるレコード4に対し、検索も高速に実現することが可能になる。
特許文献2では、システム自身が決定した更新時刻に、外部の情報源に更新要求1の属性更新情報102を取得しに行き、データの更新を行っていた。しかし、外部からの更新要求を処理する方法について、単発の要求がまれに発生することにしか対応できなかった。
本発明のデータ管理装置によれば、外部からの更新要求1を複数受け付け、蓄積された複数の更新要求1の属性更新情報102を高速にまとめて処理することが可能である。
別の重要な応用としては、全文検索のための転置リストの逐次更新が挙げられる。
この場合、キーはWebページ等文書に含まれる単語であり、属性情報は当該単語が出現する文書の識別情報となる。
従来のデータ管理装置(特許文献1)では、追加された文書に関する転置リストを小索引として本体索引と分離して管理することでスループットの向上を図っていた。しかし、小索引が増えるといずれは本体索引とマージする必要が生じ、その際に大きな遅延が発生することを避けられなかった。
本発明のデータ管理装置によれば、必要最小限のマージ処理を常時実行することにより、全体のスループットを高めるとともに、スループットの変動を避け、安定した性能を提供することが可能になる。
各レコード4が処理される時刻は、レコード4毎の過去の更新履歴から算出した平均更新周期に基づいて予測したものであり、レコード4に対応する更新要求が到着している可能性が高く、データ全体を一括して更新する従来手法に比べて、不要な磁気ディスクアクセスの回避により、高い性能を実現できる。
この発明の実施の形態2にかかるデータ管理装置Aでは、各レコードの格納領域5a〜5cを、次回更新時刻ではなく、レコード4のキー401にハッシュ関数を適用した値に基づいて複数の格納領域5a〜5cに静的(固定的)に決定する。
実施の形態2では、図1において、レコード索引6、最終登録順7、領域索引8を除き、書込バッファ14b〜14cを単一のものとした構成を取る。
退避領域3a〜3cは、格納領域5a〜5cと同様に複数設けられ、格納領域5a〜5cと1対1に対応する。
一時領域消去部10については、一時領域2の領域が不足した場合に、一時領域2の更新要求1のキー101にハッシュ関数を適用し、適用した値(ハッシュ値)に基づいて記憶されている退避領域3a〜3cのいずれかに一時領域2の更新要求1を時系列に記憶して、一時領域2の空き領域を確保する。
次回更新時刻、登録順、レコード索引、領域索引に関する処理は不要である。
その際、格納領域5a〜5cに存在しないキー101を持つ退避領域3a〜3cの更新要求1は、形式を変換して新たなレコード4とする。
また、全レコードを一括して更新する従来手法に比べ、スループットが低下する期間を短縮・分散し、性能の安定化を実現することができる。
この発明の実施の形態3にかかるデータ管理装置Aでは、実施の形態1における退避領域3a〜3cを格納領域5a〜5cで兼用する。
即ち、一時領域2に空きがない場合に、一時領域消去部が、一時領域2の更新要求1を格納領域5a〜5cのいずれかに記憶し、一時領域2に空きを確保すること以外は実施の形態1と同様である。
一時領域消去部10は、一時領域2の領域が不足した場合に、一時領域2の更新要求1を更新要求1のキー101が対応する退避領域3a〜3cのいずれかに追記する代わりに、更新要求1のキー101に対応する格納領域5a〜5cのいずれかの末尾に書き込む。この時の格納領域5a〜5cのいずれかは、レコード索引6及び領域索引8から特定する。書き込む更新要求1は、レコード形式に変換せず、更新要求1の形式のままで追記される。
また、更新要求反映部11は、所定時間単位ごとに対応する次回更新時刻の格納領域5a〜5cのいずれかを格納領域5aとすると、格納領域5aから更新情報1とレコード4を分離し、退避領域3aを別に設けていた実施の形態1と同様の処理を行う。
具体的な処理を実施の形態1の図10の動作フローで示すと、S121及びS122の動作が次の様な処理に置き換わる。
所定時間単位ごとに対応する次回更新時刻の格納領域5a(格納領域t)のデータを全て読込バッファ13に読み込み、キー順にソートする。
一方、キーの変わり目までに見つけた更新要求1は、読み込みバッファ12にコピーして受付時刻順にソートし、その先頭のアドレスをポインタ変数pに設定する。レコード4と対応する更新要求1が見つからない場合は、ポインタ変数pを有効範囲外とする。
また、S130からの戻り先をS122’とする。S124からの戻り先は、S123のままである。
そして、そのレコード4に対して、格納領域5a〜5cのいずれかまたは一時領域2の更新要求1を受付時刻の昇順に全て反映して、レコード4の属性情報402を検索応答16として返す。
Claims (9)
- 外部から受け付けたデータの更新内容と該データを特定するキーを含む更新要求を記憶する主記憶装置内の一時領域と、
前記更新要求によって更新されるデータと該データを特定するキーを含むレコードを記憶する外部記憶装置内の格納領域と、
前記格納領域に格納されているレコードのキーと一致するキーを持つ前記更新要求を記憶する外部記憶装置内の退避領域と、
新たな更新要求を前記一時領域に記憶する際に前記一時領域が不足した時、前記一時領域の更新要求に基づいて更新されるレコードが前記格納領域にある場合は、該レコードが記憶されている前記格納領域に対応する前記退避領域へ前記一時領域の更新要求を記憶して、前記一時領域から前記記憶した更新要求を削除し、前記一時領域の更新要求に基づいて更新されるレコードが前記格納領域にない場合は、前記一時領域の更新要求をレコードにして前記格納領域に記憶して、前記一時領域から前記記憶した更新要求を削除する一時領域消去部と、
所定時間単位ごとに動作し、前記格納領域のレコードのキーと一致するキーを持つ前記一時領域または前記退避領域の少なくともいずれか一方に格納されている前記更新要求に基づいて該レコードを更新し、前記更新した更新要求を削除する更新要求反映部と、
を備えたことを特徴とするデータ管理装置。 - 前記キーを含む検索要求を受け付け、該キーで特定される前記レコードを最新の内容で応答する検索処理部を更に備え、
前記検索処理部は、前記検索要求のキーと一致する前記格納領域のレコードを検索して該レコードを取得し、該レコードとキーが一致する一時領域または退避領域の更新要求を反映して前記レコードを最新の内容にすることを特徴とする請求項1に記載のデータ管理装置。 - 前記レコードは、現在時刻以降に前記更新要求反映部が動作する時刻を次回更新時刻として含み、
前記次回更新時刻により識別される複数の前記格納領域と、前記次回更新時刻により識別される前記格納領域に対応して前記次回更新時刻により識別される複数の前記退避領域とを備え、
前記一時領域消去部は、前記一時領域の更新要求に基づいて更新されるレコードが前記格納領域にある場合は、該レコードが記憶されている前記次回更新時刻により識別される前記格納領域に対応する前記次回更新時刻により識別される前記退避領域へ前記一時領域の更新要求を記憶し、前記一時領域から前記記憶した更新要求を削除し、前記一時領域の更新要求に基づいて更新されるレコードが前記格納領域にない場合は、前記次回更新時刻を設定し、前記設定した次回更新時刻により識別される前記格納領域に前記一時領域の更新要求をレコードにして記憶し、前記一時領域から前記記憶した更新要求を削除し、
前記更新要求反映部は、前記次回更新時刻により識別される前記格納領域単位にレコードの更新処理を行い、該レコードの更新は、更新前のレコードを記憶する第1の前記次回更新時刻により識別される第1の前記格納領域に対応して第1の前記次回更新時刻により識別される第1の前記退避領域に記憶されている更新要求に基づいて該レコードを更新し、次に該レコードのキーと一致するキーを持つ前記一時領域の更新要求に基づいて前記格納領域のレコードを更新し、該更新したレコードを第2の次回更新時刻により識別される第2の前記格納領域に記憶し、前記第1の次回更新時刻により識別される第1の前記格納領域のレコードが全て更新されると、前記第1の前記格納領域のレコードと前記第1の前記退避領域の更新要求を削除することを特徴とする請求項1または請求項2に記載のデータ管理装置。 - 前記更新要求は、前記更新要求を受け付けた受付時刻を含み、
前記レコードは、該レコードのキーと一致するキーを持つ前記更新要求の受付時刻の履歴情報を含み、
前記更新要求反映部は、現在時刻に前記受付時刻の履歴情報に基づいて算出した平均更新周期を加えて前記次回更新時刻とし、前記レコードを前記退避領域の更新要求で更新する際に前記更新要求の受付時刻順に更新し、更新する際に前記レコードに該次回更新時刻を記憶することを特徴とする請求項3に記載のデータ管理装置。 - 前記格納領域のレコードに対応する更新要求を最初に受け付けた順の登録順と該レコードのキーとを対応付けて記憶するレコード索引と、
前記次回更新時刻により識別される複数の前記格納領域から前記レコードが記憶される前記格納領域を識別する領域識別子を前記登録順が示す配列に記憶する領域索引を更に備え、
前記レコードは前記登録順を含み、
前記一時領域消去部は、前記一時領域の更新要求のキーが前記レコード索引に存在する場合は、前記領域索引の領域識別子を参照して、前記キーで特定されるレコードを記憶する前記格納領域の前記領域識別子を求め、前記領域識別子で識別される格納領域に対応する前記次回更新時刻により識別される前記退避領域に前記一時領域の更新要求を記憶して、前記一時領域から前記記憶した更新要求を削除し、前記一時領域の更新要求のキーが前記レコード索引に存在しない場合は、前記一時領域の更新要求をレコードにして前記次回更新時刻により識別される前記格納領域に記憶し、前記更新要求のキーと記憶した新しい登録順を対応付けて前記レコード索引に追加し、記憶した前記次回更新時刻により識別される前記格納領域の前記領域識別子を前記領域索引に追加し、前記一時領域から前記記憶した更新要求を削除し、
前記更新要求反映部は、更新したレコードを記憶する前記第2の次回更新時刻により識別される前記格納領域の領域識別子を前記領域索引の前記新しい登録順が示す配列に記憶することを特徴とする請求項3または請求項4に記載のデータ管理装置。 - 前記次回更新時刻により識別される格納領域に対応して、前記次回更新時刻により識別される格納領域に記憶されるレコードを記憶する前記次回更新時刻により識別される複数の書込バッファを更に備え、
前記一時領域消去部は、前記一時領域の更新要求に基づいて更新されるレコードが前記格納領域にない場合は、前記次回更新時刻により識別される前記格納領域に対応する前記次回更新時刻により識別される前記書込バッファに前記一時領域の更新要求をレコードにして記憶し、前記一時領域から前記記憶した更新要求を削除し、前記書込バッファの容量が所定値になると前記次回更新時刻により識別される前記書込バッファのレコードを対応する前記次回更新時刻により識別される前記格納領域に記憶し、前記書込バッファから前記記憶したレコードを削除し、
前記更新要求反映部は、前記第2の次回更新時刻により識別される前記格納領域に対応する前記第2の次回更新時刻により識別される前記書込バッファに更新したレコードを追記し、前記書込バッファの容量が所定値になると前記次回更新時刻により識別される前記書込バッファのレコードを該書込バッファに対応する前記次回更新時刻により識別される前記格納領域に記憶することを特徴とする請求項3〜5のいずれか一項に記載のデータ管理装置。 - 前記レコードは、前記レコードのキーに任意のハッシュ関数を適用した値に基づいて前記格納領域に記憶し、
前記一時領域消去部は、前記一時領域の前記更新要求のキーにハッシュ関数を適用した値に基づいて前記退避領域に該更新要求を記憶して、前記一時領域から前記記憶した更新要求を削除し、
前記更新要求反映部は、所定時間単位に前記格納領域の先頭から前記レコードを読出し、該レコードのキーと一致するキーを持つ前記一時領域または前記退避領域の少なくともいずれか一方に格納される更新要求に基づいて該レコードを更新し、前記格納領域に存在しないレコードのキーを持つ前記退避領域の前記更新要求をレコードにして前記格納領域に記憶することを特徴とする請求項1または請求項2に記載のデータ管理装置。 - 外部から受け付けたデータの更新内容と該データを特定するキーを含む更新要求を記憶する主記憶装置内の一時領域と、
前記キーで特定されるレコードまたは前記更新要求はそれぞれのデータの形式を識別する情報であるデータ形式を含み、前記レコードまたは更新要求の少なくともいずれか一方を記憶する外部記憶装置内の格納領域と、
新たな更新要求を前記一時領域に記憶する際に前記一時領域が不足した時、前記一時領域の更新要求のキーと一致するキーを持つレコードまたは更新要求が記憶されている格納領域に、前記一時領域の更新要求を記憶し、前記一時領域から前記記憶した更新要求を削除する一時領域消去部と、
所定時間単位に前記格納領域の先頭から同一キーの前記レコードと前記更新要求を検出し、前記データ形式に基づいて前記レコードと前記更新要求に分離して、前記分離したレコードのキーと一致するキーを持つ前記一時領域の更新要求または前記分離した更新要求の少なくともいずれか一方に基づいて該レコードを更新し、前記更新した更新要求を削除する更新要求反映部と、
を備えることを特徴とするデータ管理装置。 - データを特定するキーを含むレコードが外部記憶装置内の格納領域に記憶され、外部から受け付けるデータの更新内容に基づいて前記レコードを更新するデータ管理装置のデータ管理方法において、
前記データ管理装置の更新要求受付部が、外部から受け付けたデータの更新内容と該データを特定するキーを含み、主記憶装置内の一時領域に記憶する更新要求を受け付ける更新要求受付ステップと、
前記データ管理装置の一時領域消去部が、新たな更新要求を前記一時領域に記憶する際に前記一時領域が不足した時、前記更新要求に基づいて更新されるレコードが前記格納領域にある場合は、該レコードが格納されている前記格納領域に対応する退避領域へ前記一時領域の更新要求を記憶して、前記一時領域から前記記憶した更新要求を削除し、前記一時領域の更新要求によって更新されるレコードが前記格納領域にない場合は、前記一時領域の更新要求をレコードにして前記格納領域に記憶して、前記一時領域から前記記憶した更新要求を削除する一時領域消去ステップと、
前記データ管理装置の更新要求反映部が、所定時間単位ごとに動作し、前記格納領域のレコードのキーと一致するキーを持つ前記一時領域または退避領域の少なくともいずれか一方に格納される前記更新要求に基づいて該レコードを更新し、前記更新した更新要求を削除する更新要求反映ステップと、
を備えたことを特徴とするデータ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010279255A JP5655538B2 (ja) | 2010-12-15 | 2010-12-15 | データ管理装置及びデータ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010279255A JP5655538B2 (ja) | 2010-12-15 | 2010-12-15 | データ管理装置及びデータ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012128640A JP2012128640A (ja) | 2012-07-05 |
JP5655538B2 true JP5655538B2 (ja) | 2015-01-21 |
Family
ID=46645590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010279255A Expired - Fee Related JP5655538B2 (ja) | 2010-12-15 | 2010-12-15 | データ管理装置及びデータ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5655538B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649403B (zh) | 2015-11-04 | 2020-07-28 | 深圳市腾讯计算机系统有限公司 | 文件存储中的索引实现方法和系统 |
US11762913B2 (en) * | 2019-12-31 | 2023-09-19 | Micron Technology, Inc. | Cursor seek operations using deleted record spans |
KR102216841B1 (ko) * | 2020-05-19 | 2021-02-18 | (주)이스트소프트 | 유동적인 메모리 사용을 기반으로 하는 고속 압축 해제를 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05151046A (ja) * | 1991-11-30 | 1993-06-18 | Nec Corp | フアイル入出力情報測定装置 |
JP5448428B2 (ja) * | 2008-11-27 | 2014-03-19 | 三菱電機株式会社 | データ管理システム及びデータ管理方法及びデータ管理プログラム |
-
2010
- 2010-12-15 JP JP2010279255A patent/JP5655538B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012128640A (ja) | 2012-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111226205B (zh) | Kvs树数据库 | |
TWI719281B (zh) | 用於串流選擇之系統、機器可讀媒體、及機器實施之方法 | |
TWI702503B (zh) | 實施用於維護操作之合併樹修改之系統、方法及電腦可讀媒體 | |
CN110268394B (zh) | 用于存储和操作键值数据的方法、系统及机器可读存储媒体 | |
US20200175070A1 (en) | Low ram space, high-throughput persistent key-value store using secondary memory | |
TWI702506B (zh) | 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法 | |
KR101708261B1 (ko) | 개별 액세스 가능한 데이터 유닛의 스토리지 관리 | |
US8489553B2 (en) | Managing storage of individually accessible data units | |
US8099421B2 (en) | File system, and method for storing and searching for file by the same | |
US20040205044A1 (en) | Method for storing inverted index, method for on-line updating the same and inverted index mechanism | |
CA2791261C (en) | Managing storage of individually accessible data units | |
US10509769B1 (en) | Method to efficiently track I/O access history | |
CN102819586A (zh) | 一种基于高速缓存的url分类方法和设备 | |
CN111061752B (zh) | 数据处理方法、装置及电子设备 | |
CN112262379B (zh) | 存储数据项并且标识存储的数据项 | |
CN114780530A (zh) | 基于lsm树键值分离的时序数据存储方法及系统 | |
CN113553476A (zh) | 一种利用哈希减少写停顿的键值存储方法 | |
JP5655538B2 (ja) | データ管理装置及びデータ管理方法 | |
CN117573032A (zh) | 一种基于RocksDB数据库写放大的优化方法 | |
WO2011137684A1 (zh) | 基于嵌入式系统的信息记录的检索方法和装置 | |
CN112328587A (zh) | ElasticSearch的数据处理方法和装置 | |
WO2023141987A1 (zh) | 文件读取方法和装置 | |
JP5247192B2 (ja) | 周期更新データ管理システム | |
JP6627809B2 (ja) | データベース処理装置、システム、方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130930 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140307 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20140326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140415 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140530 |
|
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: 20141028 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20141110 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5655538 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |