(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6023764
(24)【登録日】2016年10月14日
(45)【発行日】2016年11月9日
(54)【発明の名称】不整合検出装置及び不整合検出方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20161027BHJP
【FI】
G06F12/00 533Z
【請求項の数】6
【全頁数】8
(21)【出願番号】特願2014-170079(P2014-170079)
(22)【出願日】2014年8月25日
(65)【公開番号】特開2016-45749(P2016-45749A)
(43)【公開日】2016年4月4日
【審査請求日】2015年3月11日
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100129230
【弁理士】
【氏名又は名称】工藤 理恵
(72)【発明者】
【氏名】藤原 聡一郎
(72)【発明者】
【氏名】柴田 弘
(72)【発明者】
【氏名】落合 康二
(72)【発明者】
【氏名】高橋 徹
【審査官】
原 忠
(56)【参考文献】
【文献】
特開2001−142765(JP,A)
【文献】
特開平03−222048(JP,A)
【文献】
特開2008−305313(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
データと当該データの管理情報との整合性を確認する不整合検出装置であって、
前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載する不整合検出手段を備え、
前記不整合検出手段は、前記不整合データリストに基づいて所定の間隔を空けて複数回整合性を確認するものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする不整合検出装置。
【請求項2】
前記不整合検出手段は、前記データのキー情報を処理単位として整合性を確認することを特徴とする請求項1記載の不整合検出装置。
【請求項3】
データと当該データの管理情報との整合性を確認する不整合検出方法であって、
前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載するステップと、
前記不整合データリストに基づいて前記データの情報と前記管理情報との整合性を確認するステップと、を有し、
所定の間隔を空けて複数回整合性を確認するものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする不整合検出方法。
【請求項4】
前記データのキー情報を処理単位として整合性を確認することを特徴とする請求項3記載の不整合検出方法。
【請求項5】
前記データ及び前記管理情報を持つサーバの負荷の情報を蓄積したログから抽出した負荷の軽い閑散時間帯に整合性を確認することを特徴とする請求項3又は4記載の不整合検出方法。
【請求項6】
前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を前記処理単位毎に抽出し、前記最大滞在時間を前記所定の間隔で割って、前記処理単位毎に整合性を確認する回数を算出する請求項4記載の不整合検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データと管理情報との整合性を確認する技術に関する。
【背景技術】
【0002】
データを格納するサービスを提供するサーバにおいて、格納されたデータを管理するための管理情報(例えば、検索に用いるために作成されたインデックス情報)は、格納されたデータと整合が取れている必要がある。データに追加、変更、削除の処理が発生すると管理情報に反映される。しかしながら、追加、変更、削除の処理を実行する過程において、物理的もしくは論理的要因にて処理が不完全なまま完了することがある。処理が不完全なまま完了したときに、サーバが正常に完了したと誤認した場合、サーバが保持するデータと管理情報の内容が異なるため整合が取れない状態となる。
図5に、データと管理情報の整合が取れていない様子を示す。同図に示す例では、ユーザAのデータ「a3」の管理情報は存在しないため、データ「a3」が不要なデータであれば削除する対応が必要であり、管理情報の反映漏れであれば管理情報の修正が必要である。また、ユーザBのデータ「b3」は、管理情報は存在するが実データが存在しないので、管理情報を削除する修正が必要である。
【0003】
データと管理情報の整合性を確認する必要があるが、サーバがサービス提供中は、データの状態は常に一定であるとは限らない。追加中、変更中、削除中といった仕掛中状態のデータとその管理情報の整合性を確認した場合に不整合と判定されることがある。整合性を正しく判定するためには、整合性の確認中はサービスの提供を中止するなどの方法を取る必要がある。
【0004】
特許文献1では、整合性の確認を行う対象のデータに対してロックをかけることで、そのデータに追加、変更、削除が発生しないように排他制御している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平08−249222号公報
【非特許文献】
【0006】
【非特許文献1】“WINS データベースの一貫性を確認する”、[online]、2005年1月、Microsoft Corporation、[平成26年8月4日検索]、インターネット〈 URL:http://msdn.microsoft.com/ja-jp/library/cc728358/〉
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、整合性の確認のためにデータをロックする方法では、ロック期間中はデータの更新ができないという問題があった。データへのアクセスを許容し、排他制御を行わない場合は整合性を正しく判定できないという問題がある。
【0008】
また、整合性を確認するデータが多い場合は、整合性の確認に膨大な負荷がかかり、整合性の確認中はデータへのアクセス性能が大幅に低下するという問題があった(非特許文献1参照)。
【0009】
本発明は、上記に鑑みてなされたものであり、データへのアクセスを継続したまま、データと管理情報の整合性を確認することを目的とする。
【課題を解決するための手段】
【0010】
第1の本発明に係る不整合検出装置は、データと当該データの管理情報との整合性を確認する不整合検出装置であって、前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載する不整合検出手段を備え、前記不整合検出手段は、前記不整合データリストに基づいて所定の間隔を空けて複数回整合性を確認する
ものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする。
【0011】
上記不整合検出装置において、前記不整合検出手段は、前記データのキー情報を処理単位として整合性を確認することを特徴とする。
【0012】
第2の本発明に係る不整合検出方法は、データと当該データの管理情報との整合性を確認する不整合検出方法であって、前記データの情報と前記管理情報との整合性を確認し、不整合が検出された前記データと前記管理情報を示す情報を不整合データリストに記載するステップと、前記不整合データリストに基づいて前記データの情報と前記管理情報との整合性を確認するステップと、を有し、所定の間隔を空けて複数回整合性を確認する
ものであって、前記データへのアクセス時に一時的に生成される仕掛中データの存在期間を蓄積したログから仕掛中データの最大滞在時間を抽出し、前記最大滞在時間を前記所定の間隔で割って整合性を確認する回数を算出することを特徴とする。
【0013】
上記不整合検出方法において、前記データのキー情報を処理単位として整合性を確認することを特徴とする。
【発明の効果】
【0014】
本発明によれば、データへのアクセスを継続したまま、データと管理情報の整合性を確認することができる。
【図面の簡単な説明】
【0015】
【
図1】本実施の形態における不整合検出装置の構成を示す機能ブロック図である。
【
図2】本実施の形態における不整合検出装置がデータと管理情報の整合性を確認する処理の流れを示すフローチャートである。
【
図3】リソース使用率の変化の例を示すグラフである。
【
図4】整合確認を行う間隔と回数を説明する図である。
【
図5】データと管理情報の整合が取れていない様子を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について図面を用いて説明する。
【0017】
図1は、本実施の形態における不整合検出装置の構成を示す機能ブロック図である。同図に示す不整合検出装置は、データ蓄積部11、管理情報蓄積部12、不整合検出部13、および処理開始部14を備える。不整合検出装置が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは不整合検出装置が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0018】
データ蓄積部11は、データを格納する。
【0019】
管理情報蓄積部12は、データ蓄積部11に格納されたデータの管理情報をユーザ毎に管理して格納する。管理情報としては、例えば、検索や管理に用いるために作成されたファイル名等のインデックス情報がある。
【0020】
不整合検出部13は、データ蓄積部11に格納されたデータと管理情報蓄積部12に格納された管理情報の整合性を確認する。データと管理情報の間で整合性が取れなかったときは、そのデータと管理情報を示す情報を不整合データリスト15に記載する。不整合検出部13は、データのキー情報(例えばユーザ情報)を整合性を確認する単位として用いる。キー情報としてユーザ情報を用いる場合、データの所有者であるユーザ単位でデータと管理情報を読み出して整合性を確認する。
【0021】
処理開始部14は、整合性を確認する処理を開始する日時を決めて不整合検出部13に処理を開始させる。本実施の形態では、不整合検出部13が整合性を確認する処理中であってもデータを排他処理せずにアクセスを許容するので、仕掛中状態のデータに関して誤って不整合と判定することがある。そこで、処理開始部14は、待ち時間を間に挟んだ複数回の整合性を確認する処理を不整合検出部13に実行させることで、仕掛中に一時的に生成されるデータが誤って不整合と判定されることを回避する。
【0022】
次に、本実施の形態における不整合検出装置の動作について説明する。
【0023】
図2は、本実施の形態における不整合検出装置がデータと管理情報の整合性を確認する処理の流れを示すフローチャートである。
【0024】
不整合検出部13は、ユーザ毎に、各ユーザが所有するデータの情報を抽出してユーザ突合対象リストを生成し(ステップS11)、ユーザ突合対象リストに基づいてデータと管理情報を突合する(ステップS12)。本実施の形態では、ユーザをデータと管理情報を突合させるための管理単位のキー情報とし、データ蓄積部11からキーに合致するデータの情報を一括取得してメモリに格納するとともに、管理情報蓄積部12からキーに合致する管理情報をメモリに格納し、メモリに格納したデータの情報と管理情報を突合する。
【0025】
突合の結果、不整合が検出されたものは、不整合データリスト15に記載する(ステップS13)。
【0026】
初回チェック時には、すべてのユーザについて(つまり全データについて)、ステップS11〜S13の処理を行う。
【0027】
不整合検出部13は、初回チェック後時間差を設けて、不整合データリスト15に記載されたデータと管理情報について再度整合性の確認を行う(ステップS14)。2回目以降の整合性の確認では、全データの整合性を確認するのではなく、前回のチェックにおいて整合性が確認できなかったもののみ、つまり不整合データリスト15に記載されたデータと管理情報について整合性を確認する。ステップS14において整合性が確認できなかったデータと管理情報は再び不整合データリスト15に記載する。なお、不整合データリスト15に記載された全てのデータと管理情報について整合性が確認できたときは、データ蓄積部11に格納されたデータと管理情報蓄積部12に格納された管理情報との整合性は取れているとして、処理を終了する。
【0028】
2回目以降の整合性確認においてもデータと管理情報の不整合が検出された場合は、時間差を設けて、ステップS14の不整合データリスト15に基づく整合性の確認処理を繰り返す(ステップS15)。予め決められたリトライ回数繰り返した後、不整合データリスト15に記載されているデータと管理情報を不整合のあるデータ、管理情報とする。
【0029】
続いて、不整合を検出する処理の開始タイミングについて説明する。
【0030】
処理開始部14は、データの状態を管理情報に反映する通常処理による負荷の情報をログとして蓄積しておき、日々の統計結果から処理の閑散時間帯を抽出する。
図3に、リソース使用率(CPU使用率、メモリ使用率、帯域使用率等)の変化の例を示す。
【0031】
処理開始部14は、収容ユーザ数及びユーザ保持データ量より整合性を確認する処理に要する時間を算出する。
【0032】
そして、処理開始部14は、上記の結果より、リソース使用率の上昇を抑えられるポイントを算出し(例えば、日々の統計結果である
図3のグラフにおいて不整合を検出する処理に必要な時間幅を取ったときに、リソース使用率の面積が最も少なくなる時間帯を算出)、不整合検出部13に処理を開始させる。
【0033】
なお、不整合検出部13が処理を実行しているときに、リソース使用率が閾値を超えた場合は、不整合検出部13の処理を時間をかけて少しずつ行うようにウエイトをかけた処理に切り替え、処理能力低下による通常処理への影響を抑える。
【0034】
また、整合確認は、
図4に示すように、待ち時間tを間に挟んでn回行う。待ち時間tを挟むことで、処理過程において一時的に生成されるデータから不整合を検出することを回避する。この回数nは大きくすると不整合の検出に時間を要してしまい、小さくすると一時的に生成されるデータを不整合データであると誤検知してしまう可能性が高くなる。そのため、整合確認の回数nは、一時的に生成されるデータの存在期間を蓄積したログ情報から最大滞在時間を抽出し、待ち時間tで割るなどの方法で自動的に算出し設定する。また、キー単位で抽出した最大滞在時間を待ち時間tで割り、キー単位で整合確認の回数nを算出してもよい。
【0035】
以上説明したように、本実施の形態によれば、データへのアクセスを排他制御せずに、データと管理情報との整合性を確認する処理を時間差を設けて複数回行うことにより、データへのアクセスを継続したまま、データと管理情報との整合性を確認することができる。また、整合性確認回数を自動的に算出することにより、不整合の発生時には必要以上に待ち時間を費やさずに迅速に検出でき、かつ、一時的なデータに対する不整合の誤検知を抑止することができる。また、整合性確認回数を、ユーザ(キー)毎に個別に設定することによって、大きなサイズのデータを常に使うユーザと小さなサイズのデータを常に使うユーザが混在する環境では、不整合発生時には、より早く検出できる。
【0036】
本実施の形態によれば、キー単位(ユーザ単位)でデータと管理情報との整合性の確認を実施することで、整合性の確認処理時に使用するメモリ容量の軽減とデータ蓄積部11、管理情報蓄積部12へのアクセス頻度の軽減を図ることができる。
【符号の説明】
【0037】
11…データ蓄積部
12…管理情報蓄積部
13…不整合検出部
14…処理開始部
15…不整合データリスト