(57)【特許請求の範囲】
【請求項１】
データと当該データの管理情報との整合性を確認する不整合検出装置であって、
前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載する不整合検出手段を備え、
前記不整合検出手段は、前記不整合データリストに基づいて所定の間隔を空けて複数回整合性を確認するものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする不整合検出装置。
【請求項２】
前記不整合検出手段は、前記データのキー情報を処理単位として整合性を確認することを特徴とする請求項１記載の不整合検出装置。
【請求項３】
データと当該データの管理情報との整合性を確認する不整合検出方法であって、
前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載するステップと、
前記不整合データリストに基づいて前記データの情報と前記管理情報との整合性を確認するステップと、を有し、
所定の間隔を空けて複数回整合性を確認するものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする不整合検出方法。
【請求項４】
前記データのキー情報を処理単位として整合性を確認することを特徴とする請求項３記載の不整合検出方法。
【請求項５】
前記データ及び前記管理情報を持つサーバの負荷の情報を蓄積したログから抽出した負荷の軽い閑散時間帯に整合性を確認することを特徴とする請求項３又は４記載の不整合検出方法。
【請求項６】
前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を前記処理単位毎に抽出し、前記最大滞在時間を前記所定の間隔で割って、前記処理単位毎に整合性を確認する回数を算出する請求項４記載の不整合検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データと管理情報との整合性を確認する技術に関する。
【背景技術】
【０００２】
データを格納するサービスを提供するサーバにおいて、格納されたデータを管理するための管理情報（例えば、検索に用いるために作成されたインデックス情報）は、格納されたデータと整合が取れている必要がある。データに追加、変更、削除の処理が発生すると管理情報に反映される。しかしながら、追加、変更、削除の処理を実行する過程において、物理的もしくは論理的要因にて処理が不完全なまま完了することがある。処理が不完全なまま完了したときに、サーバが正常に完了したと誤認した場合、サーバが保持するデータと管理情報の内容が異なるため整合が取れない状態となる。図５に、データと管理情報の整合が取れていない様子を示す。同図に示す例では、ユーザＡのデータ「ａ３」の管理情報は存在しないため、データ「ａ３」が不要なデータであれば削除する対応が必要であり、管理情報の反映漏れであれば管理情報の修正が必要である。また、ユーザＢのデータ「ｂ３」は、管理情報は存在するが実データが存在しないので、管理情報を削除する修正が必要である。
【０００３】
データと管理情報の整合性を確認する必要があるが、サーバがサービス提供中は、データの状態は常に一定であるとは限らない。追加中、変更中、削除中といった仕掛中状態のデータとその管理情報の整合性を確認した場合に不整合と判定されることがある。整合性を正しく判定するためには、整合性の確認中はサービスの提供を中止するなどの方法を取る必要がある。
【０００４】
特許文献１では、整合性の確認を行う対象のデータに対してロックをかけることで、そのデータに追加、変更、削除が発生しないように排他制御している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０８−２４９２２２号公報
【非特許文献】
【０００６】
【非特許文献１】“ＷＩＮＳ データベースの一貫性を確認する”、［online］、２００５年１月、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ、［平成２６年８月４日検索］、インターネット〈 URL：http://msdn.microsoft.com/ja-jp/library/cc728358/〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、整合性の確認のためにデータをロックする方法では、ロック期間中はデータの更新ができないという問題があった。データへのアクセスを許容し、排他制御を行わない場合は整合性を正しく判定できないという問題がある。
【０００８】
また、整合性を確認するデータが多い場合は、整合性の確認に膨大な負荷がかかり、整合性の確認中はデータへのアクセス性能が大幅に低下するという問題があった（非特許文献１参照）。
【０００９】
本発明は、上記に鑑みてなされたものであり、データへのアクセスを継続したまま、データと管理情報の整合性を確認することを目的とする。
【課題を解決するための手段】
【００１０】
第１の本発明に係る不整合検出装置は、データと当該データの管理情報との整合性を確認する不整合検出装置であって、前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載する不整合検出手段を備え、前記不整合検出手段は、前記不整合データリストに基づいて所定の間隔を空けて複数回整合性を確認するものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする。
【００１１】
上記不整合検出装置において、前記不整合検出手段は、前記データのキー情報を処理単位として整合性を確認することを特徴とする。
【００１２】
第２の本発明に係る不整合検出方法は、データと当該データの管理情報との整合性を確認する不整合検出方法であって、前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載するステップと、前記不整合データリストに基づいて前記データの情報と前記管理情報との整合性を確認するステップと、を有し、所定の間隔を空けて複数回整合性を確認するものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする。
【００１３】
上記不整合検出方法において、前記データのキー情報を処理単位として整合性を確認することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、データへのアクセスを継続したまま、データと管理情報の整合性を確認することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態における不整合検出装置の構成を示す機能ブロック図である。
【図２】本実施の形態における不整合検出装置がデータと管理情報の整合性を確認する処理の流れを示すフローチャートである。
【図３】リソース使用率の変化の例を示すグラフである。
【図４】整合確認を行う間隔と回数を説明する図である。
【図５】データと管理情報の整合が取れていない様子を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を用いて説明する。
【００１７】
図１は、本実施の形態における不整合検出装置の構成を示す機能ブロック図である。同図に示す不整合検出装置は、データ蓄積部１１、管理情報蓄積部１２、不整合検出部１３、および処理開始部１４を備える。不整合検出装置が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは不整合検出装置が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００１８】
データ蓄積部１１は、データを格納する。
【００１９】
管理情報蓄積部１２は、データ蓄積部１１に格納されたデータの管理情報をユーザ毎に管理して格納する。管理情報としては、例えば、検索や管理に用いるために作成されたファイル名等のインデックス情報がある。
【００２０】
不整合検出部１３は、データ蓄積部１１に格納されたデータと管理情報蓄積部１２に格納された管理情報の整合性を確認する。データと管理情報の間で整合性が取れなかったときは、そのデータと管理情報を示す情報を不整合データリスト１５に記載する。不整合検出部１３は、データのキー情報（例えばユーザ情報）を整合性を確認する単位として用いる。キー情報としてユーザ情報を用いる場合、データの所有者であるユーザ単位でデータと管理情報を読み出して整合性を確認する。
【００２１】
処理開始部１４は、整合性を確認する処理を開始する日時を決めて不整合検出部１３に処理を開始させる。本実施の形態では、不整合検出部１３が整合性を確認する処理中であってもデータを排他処理せずにアクセスを許容するので、仕掛中状態のデータに関して誤って不整合と判定することがある。そこで、処理開始部１４は、待ち時間を間に挟んだ複数回の整合性を確認する処理を不整合検出部１３に実行させることで、仕掛中に一時的に生成されるデータが誤って不整合と判定されることを回避する。
【００２２】
次に、本実施の形態における不整合検出装置の動作について説明する。
【００２３】
図２は、本実施の形態における不整合検出装置がデータと管理情報の整合性を確認する処理の流れを示すフローチャートである。
【００２４】
不整合検出部１３は、ユーザ毎に、各ユーザが所有するデータの情報を抽出してユーザ突合対象リストを生成し（ステップＳ１１）、ユーザ突合対象リストに基づいてデータと管理情報を突合する（ステップＳ１２）。本実施の形態では、ユーザをデータと管理情報を突合させるための管理単位のキー情報とし、データ蓄積部１１からキーに合致するデータの情報を一括取得してメモリに格納するとともに、管理情報蓄積部１２からキーに合致する管理情報をメモリに格納し、メモリに格納したデータの情報と管理情報を突合する。
【００２５】
突合の結果、不整合が検出されたものは、不整合データリスト１５に記載する（ステップＳ１３）。
【００２６】
初回チェック時には、すべてのユーザについて（つまり全データについて）、ステップＳ１１〜Ｓ１３の処理を行う。
【００２７】
不整合検出部１３は、初回チェック後時間差を設けて、不整合データリスト１５に記載されたデータと管理情報について再度整合性の確認を行う（ステップＳ１４）。２回目以降の整合性の確認では、全データの整合性を確認するのではなく、前回のチェックにおいて整合性が確認できなかったもののみ、つまり不整合データリスト１５に記載されたデータと管理情報について整合性を確認する。ステップＳ１４において整合性が確認できなかったデータと管理情報は再び不整合データリスト１５に記載する。なお、不整合データリスト１５に記載された全てのデータと管理情報について整合性が確認できたときは、データ蓄積部１１に格納されたデータと管理情報蓄積部１２に格納された管理情報との整合性は取れているとして、処理を終了する。
【００２８】
２回目以降の整合性確認においてもデータと管理情報の不整合が検出された場合は、時間差を設けて、ステップＳ１４の不整合データリスト１５に基づく整合性の確認処理を繰り返す（ステップＳ１５）。予め決められたリトライ回数繰り返した後、不整合データリスト１５に記載されているデータと管理情報を不整合のあるデータ、管理情報とする。
【００２９】
続いて、不整合を検出する処理の開始タイミングについて説明する。
【００３０】
処理開始部１４は、データの状態を管理情報に反映する通常処理による負荷の情報をログとして蓄積しておき、日々の統計結果から処理の閑散時間帯を抽出する。図３に、リソース使用率（ＣＰＵ使用率、メモリ使用率、帯域使用率等）の変化の例を示す。
【００３１】
処理開始部１４は、収容ユーザ数及びユーザ保持データ量より整合性を確認する処理に要する時間を算出する。
【００３２】
そして、処理開始部１４は、上記の結果より、リソース使用率の上昇を抑えられるポイントを算出し（例えば、日々の統計結果である図３のグラフにおいて不整合を検出する処理に必要な時間幅を取ったときに、リソース使用率の面積が最も少なくなる時間帯を算出）、不整合検出部１３に処理を開始させる。
【００３３】
なお、不整合検出部１３が処理を実行しているときに、リソース使用率が閾値を超えた場合は、不整合検出部１３の処理を時間をかけて少しずつ行うようにウエイトをかけた処理に切り替え、処理能力低下による通常処理への影響を抑える。
【００３４】
また、整合確認は、図４に示すように、待ち時間ｔを間に挟んでｎ回行う。待ち時間ｔを挟むことで、処理過程において一時的に生成されるデータから不整合を検出することを回避する。この回数ｎは大きくすると不整合の検出に時間を要してしまい、小さくすると一時的に生成されるデータを不整合データであると誤検知してしまう可能性が高くなる。そのため、整合確認の回数ｎは、一時的に生成されるデータの存在期間を蓄積したログ情報から最大滞在時間を抽出し、待ち時間ｔで割るなどの方法で自動的に算出し設定する。また、キー単位で抽出した最大滞在時間を待ち時間ｔで割り、キー単位で整合確認の回数ｎを算出してもよい。
【００３５】
以上説明したように、本実施の形態によれば、データへのアクセスを排他制御せずに、データと管理情報との整合性を確認する処理を時間差を設けて複数回行うことにより、データへのアクセスを継続したまま、データと管理情報との整合性を確認することができる。また、整合性確認回数を自動的に算出することにより、不整合の発生時には必要以上に待ち時間を費やさずに迅速に検出でき、かつ、一時的なデータに対する不整合の誤検知を抑止することができる。また、整合性確認回数を、ユーザ（キー）毎に個別に設定することによって、大きなサイズのデータを常に使うユーザと小さなサイズのデータを常に使うユーザが混在する環境では、不整合発生時には、より早く検出できる。
【００３６】
本実施の形態によれば、キー単位（ユーザ単位）でデータと管理情報との整合性の確認を実施することで、整合性の確認処理時に使用するメモリ容量の軽減とデータ蓄積部１１、管理情報蓄積部１２へのアクセス頻度の軽減を図ることができる。
【符号の説明】
【００３７】
１１…データ蓄積部
１２…管理情報蓄積部
１３…不整合検出部
１４…処理開始部
１５…不整合データリスト
【図１】
0006023764.tif 000002
【図２】
0006023764.tif 000003
【図３】
0006023764.tif 000004
【図４】
0006023764.tif 000005
【図５】
0006023764.tif 000006