(57)【要約】【課題】有効性の高いキャッシュデータの管理方法を提供する。【解決手段】検索時間計測部１０７により、ＲＤＢＭＳ２に対して検索を実行してから検索結果が得られるまでの検索応答時間を計測し、有効期限算出部１０８により、検索応答時間が長い検索結果のキャッシュデータに対してより長い有効期限を動的に設定する。これにより、ＲＤＢＭＳ２への検索応答時間が長くＲＤＢＭＳ２への負荷が大きい検索結果のキャッシュデータが破棄されにくくなるので、有効性の高いキャッシュデータ管理が可能となる。【選択図】図１
2012203792.tif 000002
【特許請求の範囲】
【請求項１】
データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出装置であって、
データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する計測手段と、
前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する算出手段と、
を有することを特徴とする有効期限算出装置。
【請求項２】
データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出方法であって、
計測手段による、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測するステップと、
算出手段による、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出するステップと、
を有することを特徴とする有効期限算出方法。
【請求項３】
データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出プログラムであって、
データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する処理と、
前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する処理と、
をコンピュータに実行させることを特徴とする有効期限算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースのキャッシュ技術に関する。
【背景技術】
【０００２】
近年、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＩＰ）を利用してテレビ放送などの映像を配信するＩＰＴＶサービスが広まっている。ＩＰＴＶサービスでは非常に多くのコンテンツが流通するので、所望のコンテンツを視聴するためには、放送番組やビデオオンデマンド（Ｖｉｄｅｏ  Ｏｎ  Ｄｅｍａｎｄ：ＶＯＤ）コンテンツのタイトル、概要、出演者等のコンテンツに関する番組メタデータを利用した検索が欠かせない。
【０００３】
コンテンツの検索システムとして、例えば、ウェブブラウザからの検索要求を受け付けるＷｅｂサーバ層、番組メタデータの検索等の処理を行うＷｅｂアプリケーション層、番組メタデータを格納するＲｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ（ＲＤＢＭＳ）を備えたデータベース層の３層で構成されるＷｅｂ３層構成のシステムが知られている。
【０００４】
検索システムでは、検索結果の返却を高速化するために、使用頻度の高いデータをキャッシュとして高速なメモリ上に保持しておく方法が取られる。キャッシュを保持するメモリは限られているため、使用頻度の低いキャッシュ、古いキャッシュは削除される。キャッシュの有効期限は、キャッシュの作成時刻に一定の時間を加えることで決定される（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１２４３７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
Ｗｅｂ３層構成をとるコンテンツの検索システムにおいて、ＲＤＢＭＳに与える負荷の観点から見ると、アクセス頻度が高いデータ、ＲＤＢＭＳからの応答時間が長いデータほど該当データをキャッシュとしてメモリ上に保持しておく有効性が高いと考えられる。
【０００７】
通常では、キャッシュに利用できるメモリの残容量が無くなった時点で新たなキャッシュデータを格納する場合、メモリ上の有効期限が切れたキャッシュデータを削除して新たなキャッシュデータを格納する。有効期限が切れたキャッシュデータが無い場合には、Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ（ＬＲＵ）に従って、最後に使われてから最も時間が経過したキャッシュデータを削除して新たなキャッシュデータを格納する。
【０００８】
しかしながら、上記の方式の場合、アクセス頻度が高いキャッシュデータはＬＲＵで保護されるが、アクセス頻度があまり高くないがＲＤＢＭＳへの負荷が高いキャッシュデータは、一定の時間を加えることで設定した有効期限が切れた段階で削除されてしまう可能性がある。
【０００９】
本発明は、上記に鑑みてなされたものであり、有効性の高いキャッシュデータの管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の本発明に係る有効期限算出装置は、データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出装置であって、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する計測手段と、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する算出手段と、を有することを特徴とする。
【００１１】
第２の本発明に係る有効期限算出方法は、データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出方法であって、計測手段による、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測するステップと、算出手段による、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出するステップと、を有することを特徴とする。
【００１２】
第３の本発明に係る有効期限算出プログラムは、データベースの検索結果をキャッシュデータとして保存する際に、当該キャッシュデータの有効期限を算出する有効期限算出プログラムであって、データベースに対して検索を実行してから検索結果が得られるまでの検索応答時間を計測する処理と、前記検索結果をキャッシュデータとして保存しておく有効期限を前記検索応答時間に比例させて算出する処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、有効性の高いキャッシュデータの管理方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態における有効期限算出装置を含むコンテンツ検索システムの構成を示す機能ブロック図である。
【図２】検索処理の流れを示すフローチャートである。
【図３】有効期限の算出処理の流れを示すフローチャートである。
【図４】キャッシュデータの保存処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を用いて説明する。
【００１６】
図１は、本実施の形態における有効期限算出装置を含むコンテンツ検索システムの構成を示す機能ブロック図である。同図に示すコンテンツ検索システム１は、コンテンツの番組メタデータを格納したＲＤＢＭＳ２に接続され、端末４からネットワーク３を介して検索クエリを受信して検索結果を返却するものである。検索結果がキャッシュに存在する場合はその検索結果をキャッシュから読み出して返却し、検索結果がキャッシュに存在しない場合はＲＤＢＭＳ２から検索して検索結果を返却するとともに、その検索結果をキャッシュに保存する。検索結果をキャッシュに保存する際には、有効期限算出装置により、ＲＤＢＭＳ２からの検索応答時間に応じて有効期限を設定する。以下、コンテンツ検索システム１について説明する。
【００１７】
図１に示すコンテンツ検索システム１は、クエリ受信部１０１、キャッシュ取得部１０２、構文解析部１０３、ＳＱＬ生成部１０４、ＤＢ検索実行部１０５、検索結果取得部１０６、検索時間計測部１０７、有効期限算出部１０８、平均値記憶部１０９、応答キャッシュ記憶部１１０、応答データ生成部１１１、応答キャッシュ保存部１１２、および応答データ返却部１１３を備える。検索時間計測部１０７、有効期限算出部１０８、および平均値記憶部１０９が本実施の形態における有効期限算出装置に相当する。コンテンツ検索システム１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはコンテンツ検索システム１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【００１８】
クエリ受信部１０１は、端末４からネットワーク３を介して検索クエリを受信する。検索クエリとは、コンテンツ検索システム１が受信する処理要求の命令を文字列化したものであり、例えば、コンテンツのタイトルやジャンル等の検索条件を論理演算子や修飾子で結合したものである。
【００１９】
キャッシュ取得部１０２は、検索クエリからハッシュ値を生成し、ハッシュ値に該当する応答データを応答キャッシュ記憶部１１０から取得する。応答キャッシュ記憶部１１０は、ハッシュ値、有効期限、応答データの組みをキャッシュデータとして記憶する。ハッシュ値に該当する応答データがある場合は、その応答データを応答データ返却部１１３から端末４に返却する。ハッシュ値に該当する応答データがない場合は、コンテンツ検索システム１に接続されたＲＤＢＭＳ２から検索する。
【００２０】
構文解析部１０３は、検索クエリを正規化して構文木を生成し、ＳＱＬ生成部１０４は、構文置換の定義に従って接続先のＲＤＢＭＳ２用のＳＱＬを生成し、ＤＢ検索実行部１０５は、ＲＤＢＭＳ２へ検索を実行するとともに、その実行時間ｔ１を取得する。
【００２１】
検索結果取得部１０６は、ＲＤＢＭＳ２から検索結果を取得するとともに、その取得時間ｔ２も取得する。
【００２２】
検索時間計測部１０７は、実行時間ｔ１と取得時間ｔ２から検索応答時間ｘ＝ｔ２−ｔ１を算出する。
【００２３】
有効期限算出部１０８は、検索応答時間に応じて、検索結果（応答データ）をキャッシュデータとして保持する有効期限を動的に算出する。具体的には、平均値記憶部１０９から検索応答時間の平均値Ａを取得して検索応答時間ｘと比較し、検索応答時間ｘが平均値Ａよりも長い場合は検索応答時間ｘが平均値Ａ以下の場合の有効期限よりも長くなるように有効期限を設定する。平均値記憶部１０９には、検索応答時間の平均値Ａ、検索数ｎを記憶させておき、有効期限を算出する際に平均値Ａ、検索数ｎを更新する。
【００２４】
応答データ生成部１１１は、検索結果から応答データを生成する。
【００２５】
応答キャッシュ保存部１１２は、検索クエリから生成されたハッシュ値、有効期限算出部１０８が算出した有効期限、応答データ生成部１１１が生成した応答データを組みとしたキャッシュデータを応答キャッシュ記憶部１１０に記憶させる。
【００２６】
応答データ返却部１１３は、応答キャッシュ記憶部１１０から読み出した応答データ、あるいは、検索結果から生成した応答データを端末４に返却する。
【００２７】
次に、検索処理について説明する。
【００２８】
図２は、検索処理の流れを示すフローチャートである。
【００２９】
クエリ受信部１０１が検索クエリを受信すると、キャッシュ取得部１０２は、受信した検索クエリからハッシュ値を生成し（ステップＳ１０１）、生成したハッシュ値に該当するキャッシュデータを応答キャッシュ保存部から検索する（ステップＳ１０２）。
【００３０】
ハッシュ値に該当するキャッシュデータが応答キャッシュ記憶部１１０に存在する場合は、応答キャッシュ記憶部１１０から該当するキャッシュデータを取得してステップＳ１１０へ進み、取得したキャッシュデータの応答データを返却する（ステップＳ１１０）。
【００３１】
一方、ハッシュ値に該当するキャッシュデータが存在しない場合は、構文解析部１０３、ＳＱＬ生成部１０４が、検索クエリを正規化して構文木を生成し、構文置換の定義に従って接続先のＲＤＢＭＳ２用のＳＱＬを生成する（ステップＳ１０３）。
【００３２】
ＤＢ検索実行部１０５が生成したＳＱＬでＲＤＢＭＳ２に対し検索を実行するとともに、その実行時間ｔ１を取得する（ステップＳ１０４）。
【００３３】
検索結果取得部１０６がＲＤＢＭＳ２より検索結果を得ると、検索結果が得られた取得時間ｔ２を取得する（ステップＳ１０５）。
【００３４】
そして、応答データ生成部１１１が検索結果から応答データを生成する（ステップＳ１０６）。
【００３５】
また、平行して、検索時間計測部１０７が実行時間ｔ１と取得時間ｔ２から検索応答時間ｘ＝ｔ２−ｔ１を算出し（ステップＳ１０７）、有効期限算出部１０８が検索応答時間ｘと平均値記憶部１０９に記憶させた検索応答時間の平均値Ａとを比較して、検索結果をキャッシュデータとして保存しておく有効期限を算出する（ステップＳ１０８）。有効期限の算出の詳細については後述する。
【００３６】
そして、応答キャッシュ保存部１１２がハッシュ値、有効期限、応答データを組みとしたキャッシュデータを応答キャッシュ記憶部１１０に記憶させる（ステップＳ１０９）。
【００３７】
応答データ返却部１１３が応答データを返却する（ステップＳ１１０）。
【００３８】
次に、有効期限の算出処理について説明する。
【００３９】
図３は、有効期限算出部１０８による有効期限の算出処理の流れを示すフローチャートである。
【００４０】
まず、ＲＤＢＭＳ２に対し検索を実行した実行時間ｔ１とＲＤＢＭＳ２より検索結果を取得した取得時間ｔ２から算出した検索応答時間ｘ＝ｔ２−ｔ１を検索時間計測部１０７より取得する（ステップＳ２０１）。
【００４１】
続いて、平均値記憶部１０９から検索応答時間の平均値Ａと検索数ｎを取得するとともに、現在時刻ｔを取得する（ステップＳ２０２）。
【００４２】
検索数ｎ＝ｎ＋１、平均値Ａ＝（Ａ＋ｘ）／ｎを算出して平均値Ａ、検索数ｎを更新し、平均値記憶部１０９に記憶させる（ステップＳ２０３）。
【００４３】
そして、検索応答時間ｘと平均値Ａを比較し（ステップＳ２０４）、検索応答時間ｘが平均値Ａよりも長い場合（ｘ＞Ａの場合）、ｙ＝ａｘ＋ｂ＋ｔとして、現在時刻ｔに所定時間ｂを加え、さらに検索応答時間ｘに比例させた時間を加えた有効期限ｙを設定する（ステップＳ２０５）。また、検索応答時間ｘが平均値Ａ以下の場合（ｘ≦Ａの場合）、ｙ＝ｂ＋ｔとして、現在時刻ｔに所定時間ｂを加えて有効期限ｙを設定する（ステップＳ２０６）。ａ，ｂは、状況に応じて設定する任意の値である。
【００４４】
なお、本実施の形態では、検索応答時間の平均値Ａを基準にして有効期限を設定したが、検索応答時間が長い検索結果のキャッシュデータに対してより長い有効期限を設定できるならば、どのように有効期限を設定するものでもよい。
【００４５】
次に、キャッシュデータの保存処理について説明する。
【００４６】
図４は、応答キャッシュ保存部１１２によるキャッシュデータの保存処理の流れを示すフローチャートである。
【００４７】
まず、応答キャッシュ記憶部１１０に空きがあるか否かを判定する（ステップＳ３０１）。
【００４８】
応答キャッシュ記憶部１１０に空きがある場合は、ステップＳ３０５に進み、ハッシュ値、有効期限、応答データの組みを新たなキャッシュデータとして応答キャッシュ記憶部１１０に保存する（ステップＳ３０５）。
【００４９】
一方、応答キャッシュ記憶部１１０に空きがない場合は、応答キャッシュ記憶部１１０に有効期限が切れたキャッシュデータが存在するか否か判定する（ステップＳ３０２）。
【００５０】
有効期限が切れたキャッシュデータが存在する場合は、有効期限が切れたキャッシュデータを削除し（ステップＳ３０３）、新たなキャッシュデータを応答キャッシュ記憶部１１０に保存する（ステップＳ３０５）。
【００５１】
有効期限が切れたキャッシュデータが存在しない場合は、ＬＲＵに従って、最も利用されていないキャッシュデータを削除し（ステップＳ３０４）、新たなキャッシュデータを応答キャッシュ記憶部１１０に保存する（ステップＳ３０５）。
【００５２】
以上説明したように、本実施の形態によれば、検索時間計測部１０７により、ＲＤＢＭＳ２に対して検索を実行してから検索結果が得られるまでの検索応答時間を計測し、有効期限算出部１０８により、検索応答時間が長い検索結果のキャッシュデータに対してより長い有効期限を動的に設定することで、ＲＤＢＭＳ２への検索応答時間が長くＲＤＢＭＳ２への負荷が大きい検索結果のキャッシュデータが破棄されにくくなるので、有効性の高いキャッシュデータ管理が可能となる。
【符号の説明】
【００５３】
１…コンテンツ検索システム
１０１…クエリ受信部
１０２…キャッシュ取得部
１０３…構文解析部
１０４…ＳＱＬ生成部
１０５…ＤＢ検索実行部
１０６…検索結果取得部
１０７…検索時間計測部
１０８…有効期限算出部
１０９…平均値記憶部
１１０…応答キャッシュ記憶部
１１１…応答データ生成部
１１２…応答キャッシュ保存部
１１３…応答データ返却部
２…ＲＤＢＭＳ
３…ネットワーク
４…端末
【図１】
2012203792.tif 000003
【図２】
2012203792.tif 000004
【図３】
2012203792.tif 000005
【図４】
2012203792.tif 000006