JP2009223507A - 周期更新データ管理システム - Google Patents

周期更新データ管理システム Download PDF

Info

Publication number
JP2009223507A
JP2009223507A JP2008066035A JP2008066035A JP2009223507A JP 2009223507 A JP2009223507 A JP 2009223507A JP 2008066035 A JP2008066035 A JP 2008066035A JP 2008066035 A JP2008066035 A JP 2008066035A JP 2009223507 A JP2009223507 A JP 2009223507A
Authority
JP
Japan
Prior art keywords
record
update
records
information source
target
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
JP2008066035A
Other languages
English (en)
Other versions
JP5247192B2 (ja
Inventor
Takayuki Tamura
孝之 田村
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 JP2008066035A priority Critical patent/JP5247192B2/ja
Publication of JP2009223507A publication Critical patent/JP2009223507A/ja
Application granted granted Critical
Publication of JP5247192B2 publication Critical patent/JP5247192B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】大量レコードの更新処理を高速化した周期更新データ管理システムを得る。
【解決手段】記憶部1は、外部の情報源7a〜7cと1対1に対応するレコード3を、各々の次回更新時刻に基づいて異なるバケット2a〜2cに格納する。更新処理部6は、各バケットのうち、現在時刻に対応するものを処理対象バケットとして選択し、処理対象バケット内の対象レコードについて、情報源7a〜7cの中から対象レコードに対応する対象情報源を参照し、対象情報源から取得した取得情報に基づいて、対象レコードの更新後の値を決定するとともに、取得情報の前回参照時からの変化の有無または大きさに基づいて、対象レコードの次回更新時刻を決定し、決定された次回更新時刻に対応するバケットの末尾に、対象レコードの更新後の値を格納し、処理対象バケット内のすべての対象レコードを処理し終えた後に、処理対象バケットを削除する。
【選択図】図1

Description

この発明は、記憶部と更新処理部とを備えた周期更新データ管理システムに関するものである。
一般に、コンピュータが記憶する多数の情報(レコード)の中から特定の1つを更新する際には、まず、更新対象を特定するキー(ID)に基づいてレコードを検索する必要がある。このとき、扱う情報量が大きくなると、主記憶装置に比べて極めて低速な2次記憶装置にアクセスする必要が生じる。
したがって、多数のレコードを管理するデータベースにおいては、少ない2次記憶アクセスでキーに対応するレコードを検索するために、「B−tree」などの木構造索引が利用されることが一般的である。また、一度アクセスしたレコードを主記憶に留めるバッファリングにより、頻繁にアクセスされるレコードについては、2次記憶装置へのアクセスを回避できるようにしている。
2次記憶装置は、磁気ディスク装置に代表されるように、連続するアドレスに対するアクセス(シーケンシャルアクセス)速度(数10MB/s〜数100MB/s)に対して、不連続なアドレスに対するアクセス(ランダムアクセス)速度(数MB/s)が著しく低いという特性がある。
この結果、多数のレコードを更新する際には、2次記憶へのアクセスパターンがシーケンシャルであるかランダムであるかによって、得られる性能が著しく異なってしまう。
キー(ID)に基づく検索のための「B−tree索引」では、キー順のアクセスにおいてはシーケンシャルアクセスに近い性能が得られるものの、キー順と一致しない任意順序のアクセスに対しては、巨大な主記憶バッファがない限り、ランダムアクセスの性能しか得られない。
そこで、上記特性を考慮して、複数レコードに対するアクセス要求をまとめ、キー順に並べ替えてから、実際のアクセスを行うことにより、性能低下を防ぐ方法が提案されている(たとえば、特許文献1参照)。
なお、更新ではなく、新規レコードを追加する際には、レコードの検索が不要であることから、書き込み順にレコードを格納することでシーケンシャルアクセスを実現することができる。これは書き込みの時刻にしたがう格納方式であり、ログ形式として知られる一般的な方式であるが、追加したレコードを再度更新しようとすると、ランダムアクセスが発生するため、更新には不適である。
特開平10−31602号公報、第1頁、図1
従来の周期更新データ管理システムでは、特許文献1に記載のように、レコードをキー順に格納し、複数レコードに対するアクセス要求をキー順に並べ替えてから実際にアクセスしているので、多数のレコードが存在する場合には、アクセス対象がまばらとなり、連続するレコードをアクセスすることがまれになって、性能低下の防止効果が得られないという課題があった。
この発明は、上記のような課題を解決するためになされたもので、各レコードに対する更新時刻があらかじめ判明している場合(システム自体が更新をスケジュールする場合)には、記憶部(2次記憶装置)への読み込みおよび書き込みがシーケンシャルアクセスとなるようにして、大量レコードの更新処理を高速化することのできる周期更新データ管理システムを得ることを目的とする。
この発明による周期更新データ管理システムは、記憶部と更新処理部とを備えた周期更新データ管理システムであって、記憶部は、外部の複数の情報源と1対1に対応する複数のレコードを、各々の次回更新時刻に基づいて異なる複数の領域に格納し、更新処理部は、複数の領域のうち、現在時刻に対応するものを処理対象領域として選択し、処理対象領域内の対象レコードについて、複数の情報源の中から対象レコードに対応する対象情報源を参照し、対象情報源から取得した取得情報に基づいて、対象レコードの更新後の値を決定するとともに、取得情報の前回参照時からの変化の有無または大きさに基づいて、対象レコードの次回更新時刻を決定し、決定された次回更新時刻に対応する領域の末尾に、対象レコードの更新後の値を格納し、処理対象領域内のすべての対象レコードを処理し終えた後に、処理対象領域を削除するものである。
この発明に係る周期更新データ管理システムよれば、大量レコードの更新処理を高速化することができる。
実施の形態1.
図1はこの発明の実施の形態1に係る周期更新データ管理システムを示すブロック構成図である。
図1において、周期更新データ管理システムは、記憶部1と、記憶部1に接続された読込バッファ4と、記憶部1に接続された書込バッファ5a、5b、・・・と、書込バッファ5a、5b、・・・を制御する更新処理部6と、記憶部1とは異なる第2の記憶部8と、第2の記憶部8に接続された要求受付部10とを備えている。
以下、代表的に、複数の書込バッファのうちの2つの書込バッファ5a、5bに注目して説明する。
また、周期更新データ管理システムの外部構成として、複数の情報源(A、B、C、・・・)7a、7b、7c、・・・と、制御端末11とを備えている。以下、代表的に、複数の情報源のうちの3つの情報源7a〜7cに注目して説明する・
記憶部1は、記憶用の複数の領域(以下、「バケット」という)2a、2b、2c、・・・を有し、各バケット2a、2b、2c、・・・は、それぞれ、情報すなわちレコード3を格納する。
以下、代表的に、複数のバケットのうちの3つのバケット2a〜2cに注目して説明する。
更新処理部6は、複数の情報源7a〜7cに基づいて、要求受付部10に登録要求を送信するとともに、書込バッファ5a、5bの保持データ(レコード)を制御する。
第2の記憶部8は、情報源登録テーブル9aを有しており、たとえば情報源7a〜7cに対応した識別子A〜Cを格納する。
要求受付部10は、更新処理部6および制御端末11からの登録要求に応答して、書込バッファ5a、5bの保持データを制御する。
周期更新データ管理システムの外部に存在する情報源7a〜7cおよび制御端末11は、インターネットやLANなどの通信回線を介して周期更新データ管理システムに接続されている。
ここでは、代表例として、情報源7a〜7cは、Webサーバ上のWebページにより構成され、制御端末11は、一般的なコンピュータにより構成されるものとする。
たとえば、情報源7a〜7cは、論理的な実体であり、物理的な実体であるWebサーバに、各情報源7a〜7cを識別するURLを指定して、Webページ取得要求を送付することに対応する。
図1に示したこの発明の実施の形態1によるシステムの目的は、各Webページの時間的な変化をとらえるために、各Webページを取得するタイミングを決定するための情報をレコードとして管理することにある。
ここで、レコードは、Webページを取得するごとに更新され、次の取得タイミングは、適応的に制御されるものとする。実際に取得したWebページの内容自体は、ログ形式などで、記憶部1以外の別の記憶手段に格納されてもよい。
また、図1の周期更新データ管理システムは、一般的なコンピュータを用いて実現することができる。
すなわち、記憶部1および第2の記憶部8を磁気ディスク装置で実現し、読込バッファ4および書込バッファ5a〜5bをランダムアクセスメモリで実現し、更新処理部および要求受付部10を、ランダムアクセスメモリに格納されプロセッサで実行されるコンピュータプログラムとして実現することができる。
バケット2a〜2cは、記憶部1の互いに異なる領域を占めており、それぞれ、独立に新規作成、拡張および削除が可能である。
記憶部1内のバケット2a〜2cは、たとえばLinuxやWindows(登録商標)などの一般的なオペレーティングシステムが提供するファイルとして実現することができる。
各バケット2a〜2cには、レコード3が複数格納される。
各レコード3は、各情報源7a〜7cと1対1に対応しており、それぞれ、独立の周期で、対応する情報源7a〜7cの情報に基づいて更新される。
レコード3は、所定単位(時間分解能)、たとえば「日」で表した次回更新時刻を含んでおり、各バケット2a〜2cに格納されるレコード3は、すべて同一の次回更新時刻を持つようにする。
すなわち、レコード3の次回更新時刻に応じて格納するバケット2a〜2cを定める。また、各バケット2a〜2c内でのレコード3の配置は格納順であり、特定の情報源識別子を持つレコード3を検索するためには、バケット2a〜2cの全体の走査を必要とする。
書込バッファ5a〜5bは、バケット2a〜2cと同様に、次回更新時刻ごとに存在する。
情報源登録テーブル9aは、既知の情報源の識別子を格納しており、たとえば、公知の「B−tree」などの木構造を用いて、特定の情報源識別子の検索が効率的に行えるようにする。
情報源登録テーブル9aへのアクセスは、本質的にランダムアクセスとなるが、レコード3の全体と比較して小規模なので、全体をランダムアクセスメモリでキャッシュすることにより、記憶部1および第2の記憶部8(磁気ディスク装置)へのアクセスを回避することができる。
図2はバケット2内のレコード3に含まれる情報を詳細に示す説明図である。
図2において、レコード3は、情報源識別子31と、次回更新時刻32と、最終状態33と、最終更新時刻34と、更新周期35とを、情報として含む。
情報源識別子31は、情報源であるWebページのURLを表す。
次回更新時刻32は、レコードが次に更新される予定の時刻であり、前述の通り、同一バケット内の各レコード3は、所定単位(たとえば、「日」)で表した同一の次回更新時刻を持つ。
最終状態33は、情報源識別子31に対応する情報源から最後に取得した情報を表す。
なお、レコード3の次回更新時刻32を決定するために、情報の値自体ではなく、値の変化の有無のみ、が重要な場合には、最終状態33には値自体に代えて、値にハッシュ関数(hash function)を適用してデータ長を圧縮した表現を用いることができる。
上述したように、次回更新時刻32の決定以外の目的(たとえば、取得したWebページに対する全文検索索引の生成など)のために、情報の値自体や値の履歴が必要な場合には、別の記憶手段にこれらを格納する。
レコード3内の最終更新時刻34および更新周期35は、次回更新時刻32を決定する際に、参照されるとともに更新されるデータである。
なお、レコード3は、情報源7a〜7cから情報を取得する際に必要な補助的なデータ(たとえば、Webサイトの認証情報やクッキー情報など)をさらに含んでいてもよい。
次に、図3および図4のフローチャートを参照しながら、更新処理部6および要求受付部10の各動作について説明する。まず、図3に示した更新処理部6の動作について説明する。
図3において、更新処理部6は、まず、バケット2a〜2cのうち、最小(t)の次回更新時刻32に対応するものを、処理対象バケット(処理対象領域)t(以下、単に「バケットt」ともいう)として選択する(ステップS1)。
このとき、次回更新時刻32の最小値tに対応するバケットtとしては、単に現在時刻に対応するバケットを選択することもできるが、次回更新時刻32の単位期間(たとえば、1日)内に処理が完了しないバケットが存在した場合には、処理されないバケットが生じる可能性がある。
続いて、現在時刻が「t」に至るまで待機する(ステップS2)。ステップS2は、単位期間内に更新されるレコード3が存在しない場合に、バケット2がまばらになる可能性があるために実行される。
以下、更新処理部6は、バケットtの内容を一括して、読込バッファ4に読み込む(ステップS3)。これにより、記憶部1に対する読み込みを、シーケンシャルアクセスとする。
続いて、読込バッファ4内のすべてのレコードが処理されたか否かを判定して(ステップS4)、すべてのレコードが処理済み(すなわち、YES)と判定されれば、ステップS10に進み、未処理レコードが残っている(すなわち、NO)と判定されれば、ステップS5に進む。
ステップS5において、更新処理部6は、未処理のレコードの1つを選択し、選択されたレコードの情報源識別子31に基づいて、情報源から情報を取得する。
なお、上述したように、取得した情報を別の記憶手段に格納する必要がある場合は、ステップS5の時点で格納する。
また、ここで、取得した情報はWebページであり、ハイパーリンクとして別のWebページのURLが含まれているので、更新処理部6は、それらのURLを取り出して、各URLを情報源識別子とする登録要求を、要求受付部10に送付することにより、新たな情報源を発見することができる。
また、ステップS5において、更新処理部6は、取得した情報に基づいて、次回更新時刻t’を決定する。
次回更新時刻t’は、たとえば、レコード3に格納された最終状態33と、取得した情報に基づく新たな最終状態とを比較して、情報の更新の検出有無に基づいて設定される。すなわち、情報の更新が検出された場合には、更新周期35の1/2を現在時刻に加算し、情報の更新が検出されなかった場合には、更新周期35に「1」を加算した値を現在時刻に加算する、などの方法により決定することができる。
さらに、ステップS5において、更新処理部6は、次回更新時刻32を「t’」に設定し、最終状態33を新たな値に設定し、最終更新時刻34を現在時刻に設定し、更新周期35を、情報の更新が検出された場合には「元の値の1/2」に設定し、情報の更新が検出されなかった場合には「元の値に1を加算した値」に設定する。
なお、より高度な更新周期の決定方法は、公知文献(たとえば、日本データベース学会Letters、Vol.6、No.1、pp.173−176「大規模Webアーカイブのための更新クローラの設計と実装」田村孝之、喜連川優。または、特願2007−018012「Webページ再収集方式」参照)に述べられている。
続いて、レコードが棄却対象か否かを判定する(ステップS6)。
一般に、情報源からの情報取得は、異常終了することもあり、また、情報の更新がないと更新周期35が非常に大きくなる。したがって、たとえば、異常終了が「3回」続いた場合や、更新周期35が「2年以上」になった場合など、の所定条件を設けることにより、所定条件に当てはまる場合に「棄却対象」と判定することができる。
ステップS6において、レコードが棄却対象である(すなわち、YES)と判定された場合には、直ちにステップS4に戻り、棄却対象でない(すなわち、NO)と判定された場合には、次のステップS7に進む。
ステップS7においては、次回更新時刻t’に対応する書込バッファt’の空き容量を調べて、書込バッファt’がフルである(空きがない)か否かを判定する。
ステップS7において、空きがない(すなわち、YES)と判定されれば、次のステップS8に進み、空きがある(すなわち、NO)と判定されれば、ステップS8をスキップしてテップS9に進む。
ステップS8においては、書込バッファt’のフラッシュ処理を行う。すなわち、書込バッファt’内のすべてのレコードをバケットt’の末尾に追加し、書込バッファt’を空にする。ステップS8の動作により、記憶部1に対する書き込みをシーケンシャルアクセスとする。
続いて、ステップS5で更新したレコードの値を書込バッファt’の末尾に追加して(ステップS9)、ステップS4に戻る。
一方、ステップS4において、読込バッファ4によるレコード処理完了(すなわち、YES)と判定された場合には、ステップS10が実行され、ステップS10においては、書込バッファt+1のフラッシュを実行した後に、書込バッファt+1を削除する。
ステップS10は、バケットt+1が次に処理対象となるための処理である。
最後に、読込バッファを空にし(ステップS11)、処理を終えたバケットtを削除して(ステップS12)、ステップS1に戻る。
次に、図4に示した要求受付部10の動作について説明する。
図4において、要求受付部10は、まず、登録要求を受信する(ステップS21)。
このとき、登録要求は、登録対象となる情報源の情報源識別子Rを含んでいる。
続いて、要求受付部10は、登録要求の情報源識別子Rを参照して、第2の記憶部8内の情報源登録テーブル9aを検索し、登録要求の情報源識別子Rが情報源登録テーブル9aに存在する(見付かる)か否かを判定する(ステップS22)。
ステップS22において、情報源登録テーブル9a内に情報源識別子Rが存在する(すなわち、YES)と判定されれば、情報源登録テーブル9aにすでに情報源識別子Rが登録済みなので、ステップS21に戻る。
一方、ステップS22において、情報源登録テーブル9a内に情報源識別子Rが存在しない(すなわち、NO)と判定されれば、次のステップS23に進み、情報源識別子Rを情報源登録テーブル9aに追加登録する。
続いて、情報源識別子Rに対応するレコードを初期化し、次回(初回)更新時刻t’を決定する(ステップS24)。
更新時刻t’は、現在時刻tに所定の定数(たとえば、「1」)、または所定範囲内の乱数を加算して決定することができる。
最後に、要求受付部10は、更新処理部6(図3)のステップS7〜S9と同様のレコード書き込み処理(ステップS25〜S27)を実行して、ステップS21に戻る。
以上のように、この発明の実施の形態1(図1〜図4)によれば、記憶部1と更新処理部6とを備えた周期更新データ管理システムであって、記憶部1は、外部の複数の情報源7a〜7cと1対1に対応する複数のレコード3を、各々の次回更新時刻に基づいて異なる複数のバケット2a〜2cに格納する。
更新処理部6は、複数のバケット2a〜2cのうち、現在時刻に対応するものを処理対象バケットとして選択し、処理対象バケット内の対象レコードについて、複数の情報源7a〜7cの中から対象レコードに対応する対象情報源を参照し、対象情報源から取得した取得情報に基づいて、対象レコードの更新後の値を決定するとともに、取得情報の前回参照時からの変化の有無または大きさに基づいて、対象レコードの次回更新時刻t’を決定し、決定された次回更新時刻t’に対応するバケットの末尾に、対象レコードの更新後の値を格納し、処理対象バケット内のすべての対象レコードを処理し終えた後に、処理対象バケットを削除する。
このように、複数のレコード3を次回更新時刻t’に基づいて格納する複数のバケット2a〜2cを有することにより、同時に更新されるレコードをバケット単位に一括して読み込むことができ、大量レコードの更新処理を高速化することができる。
また、レコード単位のランダムアクセスを回避して、記憶部1(磁気ディスク装置)の性能低下を防ぐことができる。
また、この発明の実施の形態1に係る周期更新データ管理システムは、記憶部1に接続された単一の読込バッファ4と、記憶部1内の複数のバケット2a〜2cと1対1に対応する所定容量の複数の書込バッファ5a、5bとを、さらに備えている。
この場合、更新処理部6は、処理対象バケットに格納されたすべての対象レコードを一括して読込バッファ4に読み込み、読込バッファ4内の各対象レコードについて、複数の情報源7a〜7cの中から対象レコードに対応する対象情報源を参照して、更新後の値および次回更新時刻t’を決定する。
また、更新処理部6は、決定された次回更新時刻t’に対応する第1の書込バッファを、複数の書込バッファ5a、5bから選択し、第1の書込バッファにすでに所定容量のレコードが格納されている場合には、第1の書込バッファ内のすべてのレコードを第1の書込バッファに対応するバケットの末尾に書き込んで、第1の書込バッファを空にしてから、第1の書込バッファの末尾に対象レコードの更新後の値を格納し、読込バッファ4のすべてのレコードを処理し終えた後に、次に処理対象となる次回処理対象バケットに対応する第2の書込バッファ内のすべての次回対象レコードを、次回処理対象バケットの末尾に書き込んで、第2の書込バッファを空にしてから、第2の書込バッファおよび処理対象バケットを削除する。
このように、更新後のレコードを元の位置に書き戻さず、同一の次回更新時刻t’を持つ複数のレコード3を一括して書き込むための書込バッファ5a〜5bを備えることにより、書き込み時のランダムアクセスを回避するとともに、レコードごとに更新周期が異なっていても、次回以降の読み込み動作がシーケンシャルアクセスとなることを保証することができる。
また、一括して読み込まれたバケットは、直ちに再利用可能となるので、バケット(記憶領域)の断片化を回避することができる。
また、この発明の実施の形態1に係る周期更新データ管理システムは、記憶部1とは異なる第2の記憶部8と、第2の記憶部8に接続された要求受付部10とを、さらに備えている。
第2の記憶部8は、記憶部1に格納されたすべてのレコードに対応する各情報源の識別子を格納する情報源登録テーブル9aを有する。
要求受付部10は、複数の情報源のいずれか1つに対応する識別子を含む登録要求を受け付け、その識別子が情報源登録テーブル9aに格納されていない場合には、その識別子を情報源登録テーブル9aに追加するとともに、その識別子に対応するレコードを所定値に初期化して、記憶部1内の複数のバケット2a〜2cのうちの1つ、または書込バッファ5a、5bの1つの末尾に書き込む。
このように、情報源登録テーブル9aを備えることにより、重複を避けながら、新たな情報源を動的に追加する処理を、バケット全体を検索せずに効率的に行うことができる。
特に、情報源の情報がWebサイト上のWebページの場合には、情報源の識別子は、WebページのURLであり、更新処理部6は、処理対象バケット内の対象レコードに対応するWebページの内容をダウンロードして、対象レコードの更新後の値を決定するとともに、対象レコードに対応するWebページからリンクを抽出して、得られたURLの各々を登録要求として要求受付部10に送付することにより、ハイパーリンクから新たな情報源の候補を発見することができ、自律的なWeb情報収集が可能になる。
また、更新処理部6は、レコードの棄却処理(ステップS6)を有し、レコードの更新後の値が所定条件を満たす場合には、そのレコードを複数のバケット2a〜2cまたは書込バッファのいずれにも書き込まないので、更新する必要のなくなったレコードの読み書きを回避することができる。
なお、更新処理部6は、ステップS6において、レコードを書き込まないことにより、レコードの棄却処理を実現したが、さらに、情報源登録テーブル9aから対応する情報源識別子(そのレコードに対応する識別子)を削除してもよい。
これにより、一度不要と判定された情報源を、再度登録することが可能になる。
また、この発明の実施の形態1による更新処理部6は、読込バッファ4のすべてのレコードを処理し終えた後に、次回処理対象バケットに対応する第2の書込バッファを新たな読込バッファとし、元の読込バッファおよび処理対象バケットを削除する。すなわち、ステップS10、S11においては、書込バッファt+1を削除して読込バッファ4を空にしたが、代わりに、読込バッファ4を削除し、書込バッファt+1を新たな読込バッファとしてもよい。
これにより、書込バッファt+1のレコードをバケットt+1に書き込み、再度読込バッファに読み込むオーバーヘッドを回避することができる。
また、上記説明では、情報源をWebページの情報としたが、ファイルサーバ上のファイルとしてもよい。
この場合、情報源の識別子は、ファイルのパス名であり、更新処理部6は、処理対象バケット内の対象レコードに対応するファイルの内容をダウンロードして、対象レコードの更新後の値を決定するとともに、対象レコードに対応するファイルがディレクトリである場合には、そのディレクトリ内のファイルおよびサブディレクトリの各パス名を登録要求として要求受付部10に送付する。
このように、Webページのハイパーリンクに代えて、ディレクトリ(フォルダ)の情報を利用し、更新処理部6は、ステップS5において、ディレクトリ内のファイルのパス名を情報源識別子とする登録要求を要求受付部10に送信することにより、ファイルの追加に自律的に対応することができる。
また、ファイルの削除に対しては、ステップS6の棄却処理で対応することができる。
実施の形態2.
なお、上記実施の形態1(図3)では、ステップS4の判定結果がNO(レコード処理が未完了)の場合に、無条件で次回更新時刻t’の決定処理(ステップS5)を実行したが、図5のように、所定数処理または所定時間経過の判定条件(ステップS51)の正否に応じて、次回更新時刻t’の決定処理(ステップS52、S53)を実行してもよい。
図5はこの発明の実施の形態2による更新処理部6の動作を示すフローチャートであり、前述(図3参照)と同様の処理については、図示が省略されている。
なお、この発明の実施の形態2に係る周期更新データ管理システムの全体構成は、前述(図1参照)と同様であり、更新処理部6の一部動作が異なるのみである。
図5において、更新処理部6は、ステップS4の判定結果がNO(読込バッファ4に未処理レコードが残存)の場合には、読込バッファ4の処理を開始してから所定数のレコードを処理したか否か、または、所定時間が経過したか否かを判定する(ステップS51)。
ステップS51において、条件が不成立(すなわち、NO)と判定されれば、未処理レコードの1つを選択して、前述のステップS5と同様の処理(ステップS52)を実行する。
ただし、ステップS53において選択されるレコードは、未処理レコードのうち、以下の値Kが最も大きいものとする。
K=(現在時刻t−最終更新時刻34)/更新周期35
この値Kは、レコードの更新周期に対する相対的な累積待ち時間の大きさを表しており、累積待ち時間の影響が大きいレコードから優先して処理することに対応する。
一方、ステップS51において、条件が成立する(すなわち、YES)と判定されれば、読込バッファ4の更新に要する時間(負荷)が大き過ぎて、後続バケットの更新に悪影響を及ぼすことを意味するので、未処理レコードの1つを選択して情報源から情報取得する処理(ステップS52)を実行せずに、次回更新時刻t’のみを設定して(ステップS53)、ステップS7に進む。
このとき、次回更新時刻t’は、現在時刻tに所定の定数(たとえば、「1」)または所定範囲の乱数を加算することにより、決定することができる。
以上のように、この発明の実施の形態2(図5)によれば、更新処理部6は、処理対象バケットの所定数のレコードを処理し終えたか、処理対象バケットの処理開始から所定時間が経過した際(ステップS51の判定結果がNOの場合)に、未処理のレコードに対応する情報源を参照せずに、次回更新時刻t’を所定値に更新して(ステップS53)、複数のバケット2a〜2cのうちの1つ、または書込バッファ5a、5bの1つの末尾に書き込む。
このように、バケットの更新処理を打ち切る処理(ステップS51、S53)を有することにより、特定バケットへの更新負荷の集中によって、後続バケットの更新時刻に悪影響を及ぼすことを回避することができる。
また、更新処理部6は、ステップS51の条件が不成立の場合に、レコードを相対累積待ち時間に基づいて、処理対象バケットの各レコードを優先度順に処理(ステップS52)するので、高負荷時であってもレコードの更新を公平に実行することができる。
実施の形態3.
なお、上記実施の形態1、2では特に言及しなったが、図6のように、次々回以降に処理対象となるすべてのバケットに書き込まれるレコードを一時的に格納するために、第1の書込バッファ5xとは別に、第2の書込バッファ5yを設けてもよい。
図6はこの発明の実施の形態3に係る周期更新データ管理システムを示すブロック構成図であり、前述(図1参照)と同様のものについては、前述と同一符号を付して、または符号の後に「A」を付して詳述を省略する。
図6において、第1の書込バッファ5xおよび第2の書込バッファ5yは、更新処理部6Aおよび要求受付部10Aの制御下で、記憶部1A内のバケット2a〜2cに対する格納データを保持する。
この場合、前述の書込バッファ5a、5bの数とは異なり、書込バッファ数は、バケット2a〜2cの数とは無関係に、2つ(第1および第2の書込バッファ5x、5y)である。
第1の書込バッファ5xは、記憶部1A内の単一バケット(処理対象バケットの次のバケット)に対応し、第1の書込バッファ5xには、単一バケットに書き込まれるレコードが格納される。
また、第2の書込バッファ5yには、単一バケット以外のバケットに書き込まれるレコードが格納される。
第2の記憶部8Aは、前述の情報源登録テーブル9aに対応した情報源登録テーブル9bに加えて、棄却バケット12a、12b、・・・を備えている。
棄却バケット12a、12b、・・・は、前述と同様に、バケット2a〜2cに対応した複数のレコードを格納する。
さらに、制御端末11から要求受付部10Aに対しては、前述の登録要求のみならず、検索要求および更新要求が送信される。
図7は第2の記憶部8A内の情報源登録テーブル9bを詳細に示す説明図である。
図7において、情報源登録テーブル9bは、前述(図1参照)の情報源登録テーブル9aとは異なり、情報源識別子91に加えて、情報源(A、B、C、・・・)7a、7b、7c、・・・ごとに、次回更新時刻92を格納している。
次回更新時刻92は、情報源識別子91に対応するレコード3の次回更新時刻32(図2参照)の値であり、一部の情報源については、棄却済みであることを示す場合がある。
図8は記憶部1A内のバケット2a〜2cに含まれる情報を詳細に示す説明図であり、前述(図2参照)と同様のものについては、前述と同一符号を付して詳述を省略する。
図8において、バケット2は、前述(図2)とは異なり、レコード3に加えて、形式の異なる更新レコード30を含む場合がある。
更新レコード30は、前述と同様の情報源識別子31および次回更新時刻32などに加えて、固定更新周期36と、同一情報源に対応するレコードへの更新を指示する更新内容37とを含む。
更新内容37は、レコード3の更新対象項目名およびその値を含む。
次に、図9〜図12のフローチャートを参照しながら、この発明の実施の形態3による更新処理部6Aおよび要求受付部10Aの動作について説明する。
まず、図9を参照しながら、更新処理部6Aの動作について説明する。
図9において、ステップS101〜S104、S106、S107およびS118は、それぞれ、前述(図3参照)のステップS1〜S6およびS12と同様の処理である。
まず、更新処理部6Aは、バケットtの内容を読込バッファ4に読み込み(ステップS101〜S103)、ステップS104で未処理レコードが残っている(すなわち、NO)と判定されれば、読込バッファ4内の未処理レコードの1つを選択して処理対象とし、読込バッファ4中に処理対象レコードと同一の情報源識別子31(図8参照)を持つ更新レコードが存在すれば、その更新レコードの更新内容37にしたがって処理対象レコードを更新し、更新内容37をその更新レコードに反映させる(ステップS105)。
続いて、情報源から情報を取得し、レコードの更新処理および次回更新時刻t’の決定処理(ステップS106)を行い、レコードが棄却対象であるか否かを判定する(ステップS107)。
ステップS107でレコードが棄却対象である(すなわち、YES)と判定されればステップS108に進み、レコードが棄却対象でない(すなわち、NO)と判定されればステップS109に進む。
ステップS108においては、更新後のレコードを棄却バケット12a、12b、・・・のいずれかの末尾に追加する。なお、棄却バケットは単一でもよいが、所定サイズに達したら新たな棄却バケットに書き込むようにして、複数に分割してもよい。
さらに、ステップS108においては、レコードの情報源識別子に対応する情報源登録テーブル9bの次回更新時刻92に対し、書き込んだ棄却バケットを識別するための情報を設定して、ステップS104に戻る。
一方、ステップS109においては、次回更新時刻t’と現在時刻tに「1」を加算した時刻とを比較して、「t’=t+1」であるか否かを判定する。
ステップS109において、t’=t+1(すなわち、YES)と判定されればステップS110に進み、t’≠t+1(すなわち、NO)と判定されればステップS113に進む。
ステップS110〜S112においては、レコードの書き込み先として第1の書込バッファ5xを選択する。
まず、第1の書込バッファ5xが満杯(フル)であるか否かを判定し(ステップS110)、満杯でない(すなわち、NO)と判定されれば、直ちにステップS112に進み、満杯である(すなわち、YES)と判定されれば、第1の書込バッファ5xの各レコードを一括してバケットt+1の末尾に追加して、第1の書込バッファ5xを空にする(ステップS111)。
続いて、ステップS112において、ステップS106で更新したレコードを第1の書込バッファ5xの末尾に追加するとともに、そのレコードの情報源識別子に対応する情報源登録テーブル9bの次回更新時刻92を「t+1(=t’)」に設定して、ステップS104に戻る。
一方、ステップS113〜S115においては、レコードの書き込み先として第2の書込バッファ5yを選択する。
まず、第2の書込バッファ5yが満杯(フル)であるか否かを判定し(ステップS113)、満杯でない(すなわち、NO)と判定されれば、直ちにステップS115に進み、満杯である(すなわち、YES)と判定されれば、第2の書込バッファ5yの各レコードを次回更新時刻順にソートして、同一の次回更新時刻ごとに一括して対応するバケットの末尾に追加し、すべてのレコードを書き込み終えたら第2の書込バッファを空にする(ステップS114)。
続いて、ステップS115において、ステップS106で更新したレコードを第2の書込バッファ5yの末尾に追加するとともに、そのレコードの情報源識別子に対応する情報源登録テーブルの次回更新時刻92を「t’」に設定してステップS104に戻る。
一方、ステップS104において、読込バッファ4のすべてのレコード処理が完了した(すなわち、YES)と判定されれば、第1の書込バッファ5xを「新たな読込バッファ」とし、元の読込バッファ4を空にして「新たな第1の書込バッファ」とし、読込バッファ4と第1の書込バッファ5xとの役割を交換する(ステップS116)。
最後に、ステップS114と同様に、第2の書込バッファ5yをフラッシュして空にし(ステップS117)、処理し終えたバケットtを削除して(ステップS118)、ステップS101に戻る。
次に、図10を参照しながら、登録要求を受信したときの要求受付部10Aの動作について説明する。
図10において、ステップS201、S202およびS204は、それぞれ、前述(図4参照)のステップS21、S22およびS24と同様の処理である。
まず、要求受付部10Aは、ステップS201で登録要求を受信すると、ステップS202で情報源登録テーブル9bを検索し、登録要求の情報源識別子Rが見付かった場合にはステップS205に進み、情報源識別子Rが見付からなかった場合にはステップS203に進む。
ステップS203においては、登録要求の情報源識別子Rに対応するレコードを初期化し、そのときの次回(初回)更新時刻t’を決定する。次回更新時刻t’は、前述のように、現在時刻tに所定定数(たとえば、「1」)、または所定範囲の乱数を加算して決定することができる。
続いて、ステップS204で情報源識別子Rを情報源登録テーブル9bに追加登録し、ステップS208に進む。
ステップS208においては、図9内のステップS109〜S115と同様に、次回更新時刻t’の値に応じて、第1または第2の書込バッファ5x、5yの末尾に情報源識別子Rに対応するレコードを書き込み、ステップS201に戻る。
一方、ステップS205においては、情報源登録テーブル9b内の情報源識別子Rに対応する次回更新時刻92が棄却バケットを示しているか否かを判定し、棄却バケットを示す(すなわち、YES)と判定されればステップS206に進み、棄却バケットを示していない(すなわち、NO)と判定されればステップS201に戻る。
ステップS206においては、情報源識別子Rに対応する棄却バケットを末尾から走査し、情報源識別子Rに対応するレコードが最後に棄却された時点の値を取得する。
続いて、ステップS203と同様に、次回更新時刻t’の値を決定して(ステップS207)、ステップS208に進む。
次に、図11を参照しながら、検索要求(検索対象情報源の情報源識別子Qを含む)を受信したときの要求受付部10Aの動作について説明する。
図11において、ステップS211は、前述(図10参照)のステップS201と同様の処理である。
まず、要求受付部10Aは、ステップS211で検索要求を受信すると、検索要求の情報源識別子Qに関して情報源登録テーブル9bを検索し(ステップS212)、情報源識別子Qが見付かった場合にはステップS213に進み、情報源識別子Qが見付からなかった場合にはステップS216に進む。
ステップS213においては、情報源登録テーブル9bから情報源識別子Qに対応する次回更新時刻92を取得して、「s」とする。
続いて、読込バッファ4、第1の書込バッファ5x、第2の書込バッファ5y、およびバケットsの順に、先頭から走査を行い、情報源識別子Qに対応するレコードを取得する(ステップS214)。
ただし、次回更新時刻s=現在時刻tでない場合には、ステップS214において、読込バッファ4の走査処理をスキップすることができる。
以下、取得したレコードを要求元に送信して(ステップS215)、ステップS211に戻る。
一方、ステップS216においては、検索失敗通知を要求元に送信し、ステップS211に戻る。
次に、図12を参照しながら、更新要求(検索対象情報源の情報源識別子Uと、更新内容とを含む)を受信したときの要求受付部10Aの動作について説明する。
図12において、ステップS221は、前述(図11参照)のステップS211と同様の処理である。
まず、要求受付部10Aは、ステップS221で検索要求を受信すると、更新要求の情報源識別子Uに関して情報源登録テーブル9bを検索し(ステップS222)、情報源識別子Uが見付かった場合にはステップS223に進み、情報源識別子Qが見付からなかった場合にはステップS221に戻る。
ステップS223においては、情報源登録テーブル9bから情報源識別子Uに対応する次回更新時刻92を取得して、「r」とする。
続いて、情報源識別子31を「U」、次回更新時刻32を「r」、更新内容37を更新要求に含まれる更新内容として、更新レコード30を構成し、次回更新時刻32の値rに応じて、適当なバッファに書き込む(ステップS224)。
すなわち、更新レコード30を、次回更新時刻r=現在時刻tであれば読込バッファ4に追加し、r=t+1であれば第1の書込バッファ5xに追加し、r>t+1であれば第2の書込バッファ5yに追加する。
なお、第1の書込バッファ5xおよび第2の書込バッファ5yが満杯であれば、図9内のステップS111、ステップS114と同様にフラッシュ処理を行う。以下、ステップS221に戻る。
以上のように、この発明の実施の形態3(図6)に係る周期更新データ管理システムは、記憶部1Aに接続された単一の読込バッファ4と、記憶部1Aに接続された第1および第2の書込バッファ5x、5yとを備え、更新処理部6Aは、処理対象バケットに格納されたすべての対象レコードを一括して読込バッファ4に読み込み、読込バッファ4内の各対象レコードについて、複数の情報源の中から対象レコードに対応する対象情報源を参照して、更新後の値および次回更新時刻を決定する。
また、更新処理部6Aは、決定された次回更新時刻が現在時刻tよりも1単位だけ大きな値であって、かつ第1の書込バッファ5xにすでに所定数のレコードが格納されている場合には、第1の書込バッファ5x内のすべてのレコードを次回更新時刻に対応する領域の末尾に書き込んで、第1の書込バッファ5xを空にし、決定された次回更新時刻が現在時刻よりも1単位だけ大きな値である場合には、第1の書込バッファ5xの末尾にすべてのレコードの各々の更新後の値を格納する。
また、更新処理部6Aは、決定された次回更新時刻が現在時刻tよりも2単位以上大きな値であって、かつ第2の書込バッファ5yにすでに所定数のレコードが格納されている場合には、第2の書込バッファ5y内のすべてのレコードを次回更新時刻の順に、すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、第2の書込バッファ5yを空にし、決定された前記次回更新時刻が前記現在時刻よりも2単位以上大きな値である場合には、第2の書込バッファ5yの末尾にすべてのレコードの各々の更新後の値を格納し、読込バッファ4のすべてのレコードを処理し終えた後に、読込バッファ4と第1の書込バッファ5xとの役割を交換し、第2の書込バッファ5y内のすべてのレコードを次回更新時刻の順に、すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、第2の書込バッファ5yを空にしてから、処理対象バケットを削除する。
このように、次々回以降に処理対象となるすべてのバケットに書き込まれるレコードを一時的に格納する第2の書込バッファ5yを備えることにより、前述(図1)のようにバケットごとに書込バッファ5a、5b、・・・を用意した場合と比較して、書込バッファごとの使用率の違いによる記憶効率の低下を防ぐことができ、記憶部1A(磁気ディスク装置)への書き込み頻度を抑制することができる。
また、更新処理部6Aは、第2の書込バッファ5yに格納されたレコードを複数のバケット2に振り分けて書き込む際に、次回更新時刻ごと、すなわちバケットごとにレコードを並べ替えて処理する(ステップS114、S117)ので、シーケンシャルアクセスに近い性能を得ることができる。
また、次回処理対象となるバケットに書き込まれるレコードを一時的に格納する第1の書込バッファ5xを備え、処理対象バケットの切り換え時に、第1の書込バッファ5xを新たな読込バッファとする(ステップS116)ので、次回処理対象バケットへの書き込みと再読み込みによるオーバーヘッドを低減することができる。
また、この発明の実施の形態3によれば、第2の記憶部8A内の情報源登録テーブル9bは、各情報源に対応するレコードが格納されているバケット(領域)を識別するための領域識別情報(次回更新時刻)を含み、更新処理部6Aおよび要求受付部10Aは、複数の情報源のいずれかに対応するレコードを記憶部1A内の複数のバケット(領域)2のいずれかに書き込む際に、情報源登録テーブル9bのそのレコードに対応する領域識別情報を更新する。
また、要求受付部10Aは、識別子を含む検索要求を受け付け、その識別子が情報源登録テーブル9bに格納されている場合には、その識別子に対応するバケット(領域)を走査してその識別子に対応するレコードを読み込み、そのレコードの内容を検索要求の要求元に返信する。
このように、情報源登録テーブル9bにおいて、情報源識別子とともに次回更新時刻を格納することにより、すべてのバケットを走査することなく、情報源に対応するレコードの内容を検索することができる。
また、この発明の実施の形態3によれば、要求受付部10Aは、複数の情報源のいずれかに対応する識別子と、その情報源に対応するレコードに対する更新内容とを含む更新要求を受け付け、識別子が情報源登録テーブル9bに格納されている場合には、その識別子に対応するバケット(領域)の末尾にその更新要求を書き込む。
また、更新処理部6Aは、処理対象バケットに格納されたレコードおよび更新要求を識別子の順に処理し、対応する情報源を参照した結果と、更新要求とに基づいてレコードの更新後の値を決定する。
このように、バケット2a〜2cには、通常のレコード3に加えて、更新レコード30を格納し、更新処理部6Aでその処理(ステップS105)を行うことにより、情報源に対応するレコードの内容を外部から更新することができる。
また、この発明の実施の形態3によれば、第2の記憶部8Aは、複数のレコードを格納する棄却バケット12a、12bを有し、更新処理部6Aは、レコードの更新後の値が所定条件を満たす場合には、そのレコードを棄却バケットの末尾に書き込むとともに、情報源登録テーブル9bのそのレコードに対応する領域識別情報を棄却バケットに設定する。
また、要求受付部10Aは、受け付けた登録要求の情報源識別子が情報源登録テーブル9bに格納されており、かつ対応する領域識別情報が棄却バケットを示している場合には、棄却バケットを走査してその識別子に対応するレコードの値を読み込み、そのレコードの値に基づいてそのレコードを再設定して、複数のバケット2のうちの1つ、または書込バッファの1つの末尾に書き込むとともに、情報源登録テーブル9bのそのレコードに対応する領域識別情報を更新する。
このように、棄却バケット12a、12b、・・・を有し、棄却されたレコードの値を棄却バケットに格納するとともに、棄却レコードの格納先を情報源登録テーブル9bに記録する(ステップS108)ことにより、要求受付部10Aが登録要求を受け付けた際に、棄却済みレコードを棄却時点の値で再登録することができる。
なお、上記実施の形態3では、第1および第2の書込バッファ5x、5yを用いたが、第1の書込バッファ5xを用いず、次回更新時刻t+1のレコードをも合わせて第2の書込バッファ(単一の書込バッファ)5yに書き込んでもよい。
この場合、周期更新データ管理システムは、記憶部1Aに接続された単一の読込バッファ4と、記憶部1Aに接続された単一の書込バッファ5yとを備え、更新処理部6Aは、処理対象バケットに格納されたすべての対象レコードを一括して読込バッファ4に読み込み、読込バッファ4内の各対象レコードについて、複数の情報源の中から対象レコードに対応する対象情報源を参照して、更新後の値および次回更新時刻を決定する。
また、更新処理部6Aは、書込バッファ5yにすでに所定数のレコードが格納されている場合には、書込バッファ5y内のすべてのレコードを次回更新時刻の順に、すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、書込バッファ5yを空にしてから、書込バッファ5yの末尾に対象レコードの更新後の値を格納する。
また、更新処理部6Aは、読込バッファ4のすべてのレコードを処理し終えた後に、書込バッファ5yが空でない場合には、書込バッファ5y内のすべてのレコードを次回更新時刻の順に、すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、書込バッファ5yを空にしてから、処理対象バッファを削除する。
これにより、次回処理対象バケットのレコードの一部に対する書き込みおよび読み込みを回避する効果は得られないが、前述(図1)のようにバケット2ごとに書込バッファ5a、5b、・・・を用意した場合の記憶効率の低下を防ぐことができ、記憶部1A(磁気ディスク装置)への書き込み頻度を抑制する効果は維持される。
また、上記実施の形態1〜3では、次回更新時刻の単位を固定(たとえば、1日に設定)したが、たとえば1日以内の更新については、1時間単位、1日以上後の更新については、1日単位、のように単位を可変設定してもよい。
このように、次回更新時刻の時間分解能に対応する単位を、現在時刻との差の大きさに応じて異なる値に設定することにより、最短更新周期を小さくしながら、非常に小さなバケットが多数必要になることを回避し、記憶部1A(磁気ディスク)へのアクセス効率および更新速度の向上を両立させることができる。
さらに、上記実施の形態1〜3では、記憶部1Aとして磁気ディスク装置を用い、情報源7a〜7cとしてWebページやファイルを用いたが、記憶部1Aとしてフラッシュメモリを用い、情報源7a〜7cとして通信機能を有するセンサ素子を用いてもよい。
たとえば、情報源7a〜7cとして通信機能を有するセンサ素子を用いた場合、更新処理部6、6Aは、処理対象バッファ内の対象レコードに対応するセンサ素子からデータを取得して、対象レコードの更新後の値を決定し、要求受付部10、10Aは、センサ素子からの登録要求を受け付けることになる。
一般に、フラッシュメモリは、純粋なランダムアクセスには適さないが、ブロック単位でのアクセスが機能面や性能面から要求されるので、バケット2a〜2cとしてフラッシュメモリのブロックを用いることにより、これらの制約による性能低下を回避することができる。
また、この場合、レコード3の最終状態33(図2、図8参照)には、センサ素子から取得したデータ値自体を格納し、更新処理手段6、6Aは、ステップ5、S106(図3、図9参照)において、最終状態33の値の変化率(単位時間当たり)に比例して次回更新時刻を決定することもできる。
さらに、要求受付部10、10Aは、センサ素子自体からの登録要求を受け付けることにより、センサ素子がアドホック(ad hoc)に追加設置される環境にも対応することができる。
この発明の実施の形態1に係る周期更新データ管理システムを示すブロック構成図である。 この発明の実施の形態1によるバケット内のレコードに含まれる情報を詳細に示す説明図である。 この発明の実施の形態1による更新処理部の動作を示すフローチャートである。 この発明の実施の形態1による要求受付部の動作を示すフローチャートである。 この発明の実施の形態2による更新処理部の要部動作を示すフローチャートである。 この発明の実施の形態3に係る周期更新データ管理システムを示すブロック構成図である。 この発明の実施の形態3による情報源登録テーブルを詳細に示す説明図である。 この発明の実施の形態3によるバケット内のレコードに含まれる情報を詳細に示す説明図である。 この発明の実施の形態3による更新処理部の動作を示すフローチャートである。 この発明の実施の形態3による登録要求受信時の要求受付部の動作を示すフローチャートである。 この発明の実施の形態3による検索要求受信時の要求受付部の動作を示すフローチャートである。 この発明の実施の形態3による更新要求受信時の要求受付部の動作を示すフローチャートである。
符号の説明
1、1A 記憶部、2、2a〜2c バケット(領域)、3 レコード、4 読込バッファ、5a、5b 書込バッファ、5x 第1の書込バッファ、5y 第2の書込バッファ、6、6A 更新処理部、7a〜7c 情報源、8、8A 第2の記憶部、9a、9b 情報源登録テーブル、10、10A 要求受付部、11 制御端末、12a、12b 棄却バケット。

Claims (19)

  1. 記憶部と更新処理部とを備えた周期更新データ管理システムであって、
    前記記憶部は、外部の複数の情報源と1対1に対応する複数のレコードを、各々の次回更新時刻に基づいて異なる複数の領域に格納し、
    前記更新処理部は、
    前記複数の領域のうち、現在時刻に対応するものを処理対象領域として選択し、
    前記処理対象領域内の対象レコードについて、前記複数の情報源の中から前記対象レコードに対応する対象情報源を参照し、前記対象情報源から取得した取得情報に基づいて、前記対象レコードの更新後の値を決定するとともに、
    前記取得情報の前回参照時からの変化の有無または大きさに基づいて、前記対象レコードの次回更新時刻を決定し、
    決定された前記次回更新時刻に対応する領域の末尾に、前記対象レコードの更新後の値を格納し、
    前記処理対象領域内のすべての対象レコードを処理し終えた後に、前記処理対象領域を削除することを特徴とする周期更新データ管理システム。
  2. 前記記憶部に接続された単一の読込バッファと、
    前記記憶部内の複数の領域と1対1に対応する所定容量の複数の書込バッファとを備え、
    前記更新処理部は、
    前記処理対象領域に格納されたすべての対象レコードを一括して前記読込バッファに読み込み、
    前記読込バッファ内の各対象レコードについて、前記複数の情報源の中から前記対象レコードに対応する対象情報源を参照して、前記更新後の値および前記次回更新時刻を決定するとともに、
    決定された前記次回更新時刻に対応する第1の書込バッファを、前記複数の書込バッファから選択し、
    前記第1の書込バッファにすでに所定容量のレコードが格納されている場合には、
    前記第1の書込バッファ内のすべてのレコードを前記第1の書込バッファに対応する領域の末尾に書き込んで、前記第1の書込バッファを空にしてから、
    前記第1の書込バッファの末尾に前記対象レコードの更新後の値を格納し、
    前記読込バッファのすべてのレコードを処理し終えた後に、
    次に処理対象となる次回処理対象領域に対応する第2の書込バッファ内のすべての次回対象レコードを、前記次回処理対象領域の末尾に書き込んで、前記第2の書込バッファを空にしてから、
    前記第2の書込バッファおよび前記処理対象領域を削除することを特徴とする請求項1に記載の周期更新データ管理システム。
  3. 前記更新処理部は、
    前記読込バッファのすべてのレコードを処理し終えた後に、
    前記次回処理対象領域に対応する第2の書込バッファを新たな読込バッファとし、
    元の前記読込バッファおよび前記処理対象領域を削除することを特徴とする請求項2に記載の周期更新データ管理システム。
  4. 前記記憶部に接続された単一の読込バッファと、
    前記記憶部に接続された単一の書込バッファとを備え、
    前記更新処理部は、
    前記処理対象領域に格納されたすべての対象レコードを一括して前記読込バッファに読み込み、
    前記読込バッファ内の各対象レコードについて、前記複数の情報源の中から前記対象レコードに対応する対象情報源を参照して、前記更新後の値および前記次回更新時刻を決定するとともに、
    前記書込バッファにすでに所定数のレコードが格納されている場合には、
    前記書込バッファ内のすべてのレコードを前記次回更新時刻の順に、前記すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、前記書込バッファを空にしてから、
    前記書込バッファの末尾に前記対象レコードの更新後の値を格納し、
    前記読込バッファのすべてのレコードを処理し終えた後に、
    前記書込バッファが空でない場合には、
    前記書込バッファ内のすべてのレコードを前記次回更新時刻の順に、前記すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、前記書込バッファを空にしてから、
    前記処理対象領域を削除することを特徴とする請求項1に記載の周期更新データ管理システム。
  5. 前記記憶部に接続された単一の読込バッファと、
    前記記憶部に接続された第1および第2の書込バッファとを備え、
    前記更新処理部は、前記処理対象領域に格納されたすべての対象レコードを一括して前記読込バッファに読み込み、
    前記読込バッファ内の各対象レコードについて、前記複数の情報源の中から前記対象レコードに対応する対象情報源を参照して、前記更新後の値および前記次回更新時刻を決定するとともに、
    決定された前記次回更新時刻が前記現在時刻よりも1単位だけ大きな値であって、かつ前記第1の書込バッファにすでに所定数のレコードが格納されている場合には、
    前記第1の書込バッファ内のすべてのレコードを前記次回更新時刻に対応する領域の末尾に書き込んで、前記第1の書込バッファを空にし、決定された前記次回更新時刻が前記現在時刻よりも1単位だけ大きな値である場合には、
    前記第1の書込バッファの末尾に前記すべてのレコードの各々の更新後の値を格納し、
    決定された前記次回更新時刻が前記現在時刻よりも2単位以上大きな値であって、かつ前記第2の書込バッファにすでに所定数のレコードが格納されている場合には、
    前記第2の書込バッファ内のすべてのレコードを前記次回更新時刻の順に、前記すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、前記第2の書込バッファを空にし、決定された前記次回更新時刻が前記現在時刻よりも2単位以上大きな値である場合には、
    前記第2の書込バッファの末尾に前記すべてのレコードの各々の更新後の値を格納し、
    前記読込バッファのすべてのレコードを処理し終えた後に、
    前記読込バッファと前記第1の書込バッファとの役割を交換し、
    前記第2の書込バッファ内のすべてのレコードを前記次回更新時刻の順に、前記すべてのレコードの各々の次回更新時刻に対応する領域の末尾に書き込んで、前記第2の書込バッファを空にしてから、
    前記処理対象領域を削除することを特徴とする請求項1に記載の周期更新データ管理システム。
  6. 前記次回更新時刻の時間分解能に対応する単位は、前記現在時刻との差の大きさに応じて異なる値に設定されたことを特徴とする請求項1から請求項5までのいずれか1項に記載の周期更新データ管理システム。
  7. 前記記憶部とは異なる第2の記憶部と、
    前記第2の記憶部に接続された要求受付部とを備え、
    前記第2の記憶部は、前記記憶部に格納されたすべてのレコードに対応する各情報源の識別子を格納する情報源登録テーブルを有し、
    前記要求受付部は、
    前記複数の情報源のいずれか1つに対応する識別子を含む登録要求を受け付け、前記識別子が前記情報源登録テーブルに格納されていない場合には、前記識別子を前記情報源登録テーブルに追加するとともに、
    前記識別子に対応するレコードを所定値に初期化して、前記記憶部内の複数の領域のうちの1つ、または前記書込バッファの1つの末尾に書き込むことを特徴とする請求項1から請求項6までのいずれか1項に記載の周期更新データ管理システム。
  8. 前記情報源登録テーブルは、前記各情報源に対応するレコードが格納されている領域を識別するための領域識別情報を含み、
    前記更新処理部および前記要求受付部は、
    前記複数の情報源のいずれかに対応するレコードを前記記憶部内の複数の領域のいずれかに書き込む際に、前記情報源登録テーブルの前記レコードに対応する領域識別情報を更新し、
    前記要求受付部は、
    前記識別子を含む検索要求を受け付け、前記識別子が前記情報源登録テーブルに格納されている場合には、前記識別子に対応する領域を走査して前記識別子に対応するレコードを読み込み、前記レコードの内容を前記検索要求の要求元に返信することを特徴とする請求項7に記載の周期更新データ管理システム。
  9. 前記要求受付部は、
    前記複数の情報源のいずれかに対応する識別子と、前記情報源に対応するレコードに対する更新内容とを含む更新要求を受け付け、
    前記識別子が前記情報源登録テーブルに格納されている場合には、
    前記識別子に対応する領域の末尾に更新要求を書き込み、
    前記更新処理部は、前記処理対象領域に格納されたレコードおよび更新要求を前記識別子の順に処理し、
    対応する情報源を参照した結果と、更新要求とに基づいてレコードの更新後の値を決定することを特徴とする請求項8に記載の周期更新データ管理システム。
  10. 前記更新処理部は、
    前記レコードの更新後の値が所定条件を満たす場合には、
    前記レコードを前記複数の領域または前記書込バッファのいずれにも書き込まないことを特徴とする請求項1から請求項9までのいずれか1項に記載の周期更新データ管理システム。
  11. 前記更新処理部は、
    前記レコードの更新後の値が所定条件を満たす場合には、
    前記レコードを前記複数の領域または前記書込バッファのいずれにも書き込まず、
    前記レコードに対応する識別子を前記情報源登録テーブルから削除することを特徴とする請求項7から請求項9までのいずれか1項に記載の周期更新データ管理システム。
  12. 前記第2の記憶部は、複数のレコードを格納する棄却領域を有し、
    前記更新処理部は、
    前記レコードの更新後の値が所定条件を満たす場合には、
    前記レコードを前記棄却領域の末尾に書き込むとともに、
    前記情報源登録テーブルの前記レコードに対応する領域識別情報を前記棄却領域に設定し、
    前記要求受付部は、
    受け付けた登録要求の情報源識別子が前記情報源登録テーブルに格納されており、かつ対応する領域識別情報が前記棄却領域を示している場合には、
    前記棄却領域を走査して前記識別子に対応するレコードの値を読み込み、前記レコードの値に基づいて前記レコードを再設定して、前記複数の領域のうちの1つ、または前記書込バッファの1つの末尾に書き込むとともに、
    前記情報源登録テーブルのレコードに対応する領域識別情報を更新することを特徴とする請求項8または請求項9に記載の周期更新データ管理システム。
  13. 前記更新処理部は、
    前記処理対象領域の所定数のレコードを処理し終えたか、前記処理対象領域の処理開始から所定時間が経過した際に、
    未処理のレコードに対応する情報源を参照せずに、前記次回更新時刻を所定値に更新して、前記複数の領域のうちの1つ、または前記書込バッファの1つの末尾に書き込むことを特徴とする請求項1から請求項12までのいずれか1項に記載の周期更新データ管理システム。
  14. 前記更新処理部は、前記処理対象領域の各レコードを優先度順に処理することを特徴とする請求項13に記載の周期更新データ管理システム。
  15. 前記記憶部は、磁気ディスク装置であることを特徴とする請求項1から請求項14までのいずれか1項に記載の周期更新データ管理システム。
  16. 前記記憶部は、フラッシュメモリであることを特徴とする請求項1から請求項14までのいずれか1項に記載の周期更新データ管理システム。
  17. 前記情報源は、Webサイト上のWebページであり、
    前記情報源の識別子は、WebページのURLであり、
    前記更新処理部は、
    前記処理対象領域内の対象レコードに対応するWebページの内容をダウンロードして、前記対象レコードの更新後の値を決定するとともに、
    前記対象レコードに対応するWebページからリンクを抽出して、得られたURLの各々を登録要求として前記要求受付部に送付することを特徴とする請求項7から請求項12までのいずれか1項に記載の周期更新データ管理システム。
  18. 前記情報源は、ファイルサーバ上のファイルであり、
    前記情報源の識別子は、前記ファイルのパス名であり、
    前記更新処理部は、
    前記処理対象領域内の対象レコードに対応するファイルの内容をダウンロードして、前記対象レコードの更新後の値を決定するとともに、
    前記対象レコードに対応するファイルがディレクトリである場合には、前記ディレクトリ内のファイルおよびサブディレクトリの各パス名を登録要求として前記要求受付部に送付することを特徴とする請求項7から請求項12までのいずれか1項に記載の周期更新データ管理システム。
  19. 前記情報源は、通信機能を有するセンサ素子であり、
    前記更新処理部は、前記処理対象領域内の対象レコードに対応するセンサ素子からデータを取得して、前記対象レコードの更新後の値を決定し、
    前記要求受付部は、前記センサ素子からの登録要求を受け付けることを特徴とする請求項7から請求項12までのいずれか1項に記載の周期更新データ管理システム。
JP2008066035A 2008-03-14 2008-03-14 周期更新データ管理システム Active JP5247192B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008066035A JP5247192B2 (ja) 2008-03-14 2008-03-14 周期更新データ管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008066035A JP5247192B2 (ja) 2008-03-14 2008-03-14 周期更新データ管理システム

Publications (2)

Publication Number Publication Date
JP2009223507A true JP2009223507A (ja) 2009-10-01
JP5247192B2 JP5247192B2 (ja) 2013-07-24

Family

ID=41240236

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066035A Active JP5247192B2 (ja) 2008-03-14 2008-03-14 周期更新データ管理システム

Country Status (1)

Country Link
JP (1) JP5247192B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018515859A (ja) * 2015-05-27 2018-06-14 華為技術有限公司Huawei Technologies Co.,Ltd. ファイルにアクセスするための方法および装置、ならびに記憶システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934765A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置
JPH1049553A (ja) * 1996-08-05 1998-02-20 Toshiba Corp 情報収集方法
JPH11328191A (ja) * 1998-05-13 1999-11-30 Nec Corp Wwwロボット検索システム
JP2000011067A (ja) * 1998-06-23 2000-01-14 Oki Software Okayama:Kk 自動機集中監視運用システムにおけるマスタ情報の更新予約方法
JP2004303226A (ja) * 2003-03-19 2004-10-28 Fuji Xerox Co Ltd 文書収集装置および方法
JP2008293218A (ja) * 2007-05-23 2008-12-04 Nec Corp ファイル管理システム、ファイル管理方法、ファイル管理プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934765A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置
JPH1049553A (ja) * 1996-08-05 1998-02-20 Toshiba Corp 情報収集方法
JPH11328191A (ja) * 1998-05-13 1999-11-30 Nec Corp Wwwロボット検索システム
JP2000011067A (ja) * 1998-06-23 2000-01-14 Oki Software Okayama:Kk 自動機集中監視運用システムにおけるマスタ情報の更新予約方法
JP2004303226A (ja) * 2003-03-19 2004-10-28 Fuji Xerox Co Ltd 文書収集装置および方法
JP2008293218A (ja) * 2007-05-23 2008-12-04 Nec Corp ファイル管理システム、ファイル管理方法、ファイル管理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018515859A (ja) * 2015-05-27 2018-06-14 華為技術有限公司Huawei Technologies Co.,Ltd. ファイルにアクセスするための方法および装置、ならびに記憶システム
US10846265B2 (en) 2015-05-27 2020-11-24 Huawei Technologies Co., Ltd. Method and apparatus for accessing file, and storage system

Also Published As

Publication number Publication date
JP5247192B2 (ja) 2013-07-24

Similar Documents

Publication Publication Date Title
US7475341B2 (en) Converting the format of a portion of an electronic document
KR101127304B1 (ko) 극히 큰 파일 시스템에 대한 hsm 상호 고아 조정
US7634517B1 (en) System and method for dynamically updating a document repository without interrupting concurrent querying
US20060010103A1 (en) Version control in a distributed computing environment
JP2008146412A (ja) ネットワーク管理システム、ネットワーク管理プログラムおよびネットワーク管理方法
JP2013541774A (ja) ウェブサイトスキャンデバイスおよびウェブサイトスキャン方法
CN111198856B (zh) 文件管理方法、装置、计算机设备和存储介质
US20100115061A1 (en) Server system, server apparatus, program and method
CN102799613A (zh) 一种最近使用文档的展示方法和装置
CN109766318B (zh) 文件读取方法及装置
CN102819586A (zh) 一种基于高速缓存的url分类方法和设备
CN114116613A (zh) 基于分布式文件系统的元数据查询方法、设备和存储介质
CN103186622A (zh) 一种全文检索系统中索引信息的更新方法以及装置
JP4713257B2 (ja) データ記憶装置及びバージョン管理プログラム
US10599726B2 (en) Methods and systems for real-time updating of encoded search indexes
US9886446B1 (en) Inverted index for text searching within deduplication backup system
JP5448428B2 (ja) データ管理システム及びデータ管理方法及びデータ管理プログラム
US8559764B2 (en) Editing an image representation of a text
US6640225B1 (en) Search method using an index file and an apparatus therefor
JPH09204442A (ja) ドキュメントデータ検索システム
JP5247192B2 (ja) 周期更新データ管理システム
KR20130136730A (ko) 비정형 로그 압축 저장 및 조회 방법 및 장치
JP5514220B2 (ja) 検索装置、及びシステム
JP5655538B2 (ja) データ管理装置及びデータ管理方法
JP2009104669A (ja) 文書検索方法、システム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130409

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5247192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160419

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