(57)【特許請求の範囲】
【請求項１】
ユーザ端末とストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置であって、
前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録するデータ記録手段と、
前記記憶部が記憶するバッファデータを前記ストレージ装置に送信するバッファ送信手段と、
前記バッファ送信手段が送信したバッファデータを前記記憶部から削除するバッファ削除手段と、
前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定する削除キャッシュ決定手段と、
前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除するキャッシュ削除手段と
を備えることを特徴とするキャッシュ装置。
【請求項２】
前記記憶部が記憶する前記バッファデータのデータ量が所定の閾値以上である場合に、前記バッファデータを送信すると判定する送信判定手段を備え、
前記バッファ送信手段は、前記送信判定手段が前記バッファデータを送信すると判定した場合に、前記バッファデータを前記ストレージ装置に送信する
ことを特徴とする請求項１に記載のキャッシュ装置。
【請求項３】
前記バッファデータに対するアクセス情報を用いて送信するバッファデータを決定する送信バッファ決定手段を備え、
前記バッファ送信手段は、前記送信バッファ決定手段が決定したバッファデータを前記ストレージ装置に送信する
ことを特徴とする請求項１または請求項２に記載のキャッシュ装置。
【請求項４】
前記ストレージ装置との間のネットワークにおけるクロストラフィック数が多いほど送信速度が遅くなるように前記バッファデータの送信速度を決定する送信速度決定手段を備え、
バッファ送信手段は、前記送信速度決定手段が決定した送信速度で前記バッファデータを前記ストレージ装置に送信する
ことを特徴とする請求項１から請求項３の何れか１項に記載のキャッシュ装置。
【請求項５】
前記削除キャッシュ決定手段は、
前記キャッシュデータのファイルタイプごとに求められるレスポンスタイムに基づいて、削除するキャッシュデータを決定する
ことを特徴とする請求項１から請求項４の何れか１項に記載のキャッシュ装置。
【請求項６】
前記削除キャッシュ決定手段は、
前記キャッシュデータのサイズ及び／または前記キャッシュデータの利用頻度に基づいて、削除するキャッシュデータを決定する
ことを特徴とする請求項１から請求項５の何れか１項に記載のキャッシュ装置。
【請求項７】
前記削除キャッシュ決定手段が決定したキャッシュデータから、当該キャッシュデータのデータ量を削減したキャッシュデータである小サイズデータを生成する小サイズデータ生成部と、
前記小サイズデータ生成部が生成したキャッシュデータを前記記憶部に記録する小サイズデータ記録部と
を備えることを特徴とする請求項１から請求項６の何れか１項に記載のキャッシュ装置。
【請求項８】
ユーザ端末とストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置を用いたデータ管理方法であって、
データ記録手段は、前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録し、
バッファ送信手段は、前記記憶部が記憶するバッファデータを前記ストレージ装置に送信し、
バッファ削除手段は、前記バッファ送信手段が送信したバッファデータを前記記憶部から削除し、
削除キャッシュ決定手段は、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定し、
キャッシュ削除手段は、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除する
ことを特徴とするデータ管理方法。
【請求項９】
ユーザ端末とストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置を、
前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録するデータ記録手段、
前記記憶部が記憶するバッファデータを前記ストレージ装置に送信するバッファ送信手段、
前記バッファ送信手段が送信したバッファデータを前記記憶部から削除するバッファ削除手段、
前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定する削除キャッシュ決定手段、
前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除するキャッシュ削除手段
として機能させるためのプログラム。
【請求項１０】
データを格納するストレージ装置と、前記ストレージ装置からデータを読み出し、また前記ストレージ装置にデータを書き込むユーザ端末と、前記ユーザ端末と前記ストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置とを備えるキャッシュシステムであって、
前記キャッシュ装置は、
前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録するデータ記録手段と、
前記記憶部が記憶するバッファデータを前記ストレージ装置に送信するバッファ送信手段と、
前記バッファ送信手段が送信したバッファデータを前記記憶部から削除するバッファ削除手段と、
前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定する削除キャッシュ決定手段と、
前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除するキャッシュ削除手段と
を備えることを特徴とするキャッシュシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ端末とストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置、データ管理方法、プログラム、及びキャッシュシステムに関する。
【背景技術】
【０００２】
コンピュータの普及や各種情報のデジタル化に伴い、ユーザが蓄積するデジタルデータの総量及び価値は共に増大してきている。近年、その膨大且つ重要なデータをバックアップとして保管し、また複数の端末から利用するために、ユーザ端末とネットワークを介して接続されるストレージ装置にデータを格納するオンラインストレージサービスが広まっている。
【０００３】
しかしながら、ユーザ端末からの全てのデータ送信要求に対してストレージ装置が応答すると、データのやり取りが全てネットワークを経由することになる。これにより、ネットワークの負荷が増大するとともに、各アクセスの応答遅延が増大してユーザの体感品質が著しく損なわれる惧れがある。
【０００４】
これに対し、ユーザ端末が要求するデータの一部を格納するキャッシュ装置を、直接または小規模なネットワークを介してユーザ端末に接続し、このキャッシュ装置に一時的にデータを蓄積することでネットワーク負荷を削減しユーザの体感品質を向上させる解決策が講じられてきた。
【０００５】
ユーザ端末がデータを受信する際にキャッシュ装置がデータを蓄積する方法としてはキャッシュ方式が存在し、例えば特許文献１に示されるような方法でユーザが要求する可能性の高いデータがキャッシュ装置に蓄積される。特許文献１によれば、ユーザ端末のアクセスログを解析してどのデータにアクセスが集中するかの傾向を求め、アクセスが集中するデータがキャッシュ装置に蓄積されるようにデータの入れ替えを行う。これによって、ユーザ端末からのデータ送信要求の多くに対してキャッシュ装置が応答することができるため、ネットワークの負荷を削減することができる。
特許文献１に記載の方法は、複数のユーザが映像を視聴するサービスにおいて多くのユーザに視聴され得る（人気の高い）コンテンツを中継サーバに格納するものであるが、単一のユーザが高い頻度で繰り返し使い得るデータをキャッシュ装置に格納する方法に流用することもできる。
【０００６】
また、ユーザが作成・編集したデータを送信する際にキャッシュ装置がデータを蓄積する方法としては、バッファ方式やバッチ処理が存在し、例えば特許文献２に示されるような方法でデータが蓄積された後に送信される。特許文献２によれば、送信するデータを中継する送信バッファ部に十分なデータが蓄えられてから当該データを送信するように、蓄積されたデータ量を監視する手段を備える。これによって少量のデータの送信により発生するオーバヘッドや無駄な再送信の発生を抑えることができ、効率的なデータ送信ができる。
【０００７】
また、特許文献３には、キャッシュ装置を用いてユーザ端末からストレージ装置へのデータ書き込み処理の高速化、及びユーザ端末がストレージ装置に書き込んだデータを読み出す処理の高速化を図る方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−００５３０９号公報
【特許文献２】特開２００６−０６０６３１号公報
【特許文献３】特開２００３−３４５７０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献３のように、ユーザ端末からのデータ受信要求によるネットワークの負荷を削減とユーザ端末からのデータ送信の効率化との両方を目的とする場合、キャッシュ装置は、ストレージ装置が記憶する一部のデータであるキャッシュデータ、及びストレージ装置に書き込むデータであるバッファデータの両方を記憶部に格納することとなる。
しかしながら、特許文献３に記載の方法を用いる場合において、記憶部に十分な容量が確保できないため、記憶部にバッファデータを書き込むことができないとき、キャッシュ装置は、バッファデータを記憶部に記録せず、そのままストレージ装置に転送する。そのため、キャッシュ装置が記憶するキャッシュデータのデータ量が多く、バッファデータを記憶することができなくなった場合、ユーザ端末からのアップデートの高速化を図ることができなくなってしまうという問題がある。
【課題を解決するための手段】
【００１０】
本発明は上記の課題を解決するためになされたものであり、ユーザ端末とストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置であって、前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録するデータ記録手段と、前記記憶部が記憶するバッファデータを前記ストレージ装置に送信するバッファ送信手段と、前記バッファ送信手段が送信したバッファデータを前記記憶部から削除するバッファ削除手段と、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定する削除キャッシュ決定手段と、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除するキャッシュ削除手段とを備えることを特徴とする。
【００１１】
また、本発明は、ユーザ端末とストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置を用いたデータ管理方法であって、データ記録手段は、前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録し、バッファ送信手段は、前記記憶部が記憶するバッファデータを前記ストレージ装置に送信し、バッファ削除手段は、前記バッファ送信手段が送信したバッファデータを前記記憶部から削除し、削除キャッシュ決定手段は、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定し、キャッシュ削除手段は、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除することを特徴とする。
【００１２】
また、本発明は、ユーザ端末とストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置を、前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録するデータ記録手段、前記記憶部が記憶するバッファデータを前記ストレージ装置に送信するバッファ送信手段、前記バッファ送信手段が送信したバッファデータを前記記憶部から削除するバッファ削除手段、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定する削除キャッシュ決定手段、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除するキャッシュ削除手段として機能させるためのプログラムである。
【００１３】
また、本発明は、データを格納するストレージ装置と、前記ストレージ装置からデータを読み出し、また前記ストレージ装置にデータを書き込むユーザ端末と、前記ユーザ端末と前記ストレージ装置との間で送受信されるデータを一時的に格納するキャッシュ装置とを備えるキャッシュシステムであって、前記キャッシュ装置は、前記ストレージ装置が記憶する一部のデータであるキャッシュデータ、及び前記ストレージ装置に書き込むデータであるバッファデータを記憶部に記録するデータ記録手段と、前記記憶部が記憶するバッファデータを前記ストレージ装置に送信するバッファ送信手段と、前記バッファ送信手段が送信したバッファデータを前記記憶部から削除するバッファ削除手段と、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、前記記憶部から削除するキャッシュデータを決定する削除キャッシュ決定手段と、前記記憶部に記録するデータのデータ量と前記記憶部が記憶するキャッシュデータのデータ量と前記記憶部が記憶するバッファデータのデータ量との和が所定の閾値未満になるまで、前記削除キャッシュ決定手段が決定したキャッシュデータを前記記憶部から削除するキャッシュ削除手段とを備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、キャッシュ装置は、記憶部に記録するデータのデータ量と、記憶部が記憶するキャッシュデータのデータ量と、記憶部が記憶するバッファデータのデータ量との和が所定の閾値以上となる場合に、キャッシュデータを削除する。つまり、記憶部が記憶するデータ量が多く、十分な容量が確保できない場合、キャッシュ装置は、記憶部が記憶するキャッシュデータを削除する。これにより、キャッシュ装置は、バッファデータを書き込むことができるようになるため、ユーザ端末からのアップデートの高速化を図ることができるようになる。
【図面の簡単な説明】
【００１５】
【図１】本発明を実施するための第１の実施の形態の構成を示すブロック図である。
【図２】ユーザがデータを使用・閲覧する際にユーザ端末がデータを受信する動作を示すフローチャートである。
【図３】データ量調整処理の手順を示すフローチャートである。
【図４】ユーザが作成・更新したデータを送信する際に、ユーザ端末がキャッシュ装置にデータを送信する動作を示すフローチャートである。
【図５】キャッシュ装置がユーザが作成・更新したデータをストレージ装置に送信する動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
図１は、本発明を実施するための第１の実施の形態の構成を示すブロック図である。
図１を参照すると、本発明の第１の実施の形態によるキャッシュシステムは、ユーザ端末１、キャッシュ装置２、ストレージ装置３を備える。
ユーザ端末１は、例えばＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などのように、データを使用・閲覧・作成・更新するためにユーザによって操作される装置である。
キャッシュ装置２は、ネットワーク４を介してユーザ端末１に接続され、ストレージ装置３が記憶するデータをキャッシュしてユーザ端末１に送信し、またユーザ端末１において作成・更新されたデータを一時的にバッファしてオンラインストレージ装置３３へ一括して送信する。
ストレージ装置３は、ネットワーク５を介してキャッシュ装置２に接続され、ユーザのデータの一部または全部を格納する。
【００１７】
なお、ネットワーク４は、例えば建物内のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や建物−基地局間のアクセスネットワークなどのようにユーザ近傍の狭い範囲を繋ぐネットワークである。また、ネットワーク５は、例えばインターネットやＮＧＮ（Ｎｅｘｔ  Ｇｅｎｅｒａｔｉｏｎ  Ｎｅｔｗｏｒｋ）などのように広域に展開するネットワークである。
【００１８】
図１に示すように、ユーザ端末１は、データ処理部１１を備える。データ処理部１１は、ユーザからのデータの使用・閲覧・作成・更新といった操作を受け付け、当該データを一時的に記憶し、データの表示や作成・更新を行う。
具体的には、データ処理部１１は、ユーザからのデータの使用・閲覧の要求があった際に、キャッシュ装置２に当該データの送信を要求する。また、データ処理部１１は、キャッシュ装置２からデータを受信すると、当該データを内部メモリに一時的に格納してユーザに表示する。また、データ処理部１１は、ユーザからのデータ作成・更新の操作を受けた際に、データを作成・更新して内部メモリに格納する。そして、ユーザが作成・更新しているデータの保存処理や作成・更新に用いているアプリケーションの終了処理を行った際に、データを内部メモリから読み出してデータキャッシュ装置２へ送信する。
なお、データ処理部１１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によって構成される。
【００１９】
また、図１に示すように、キャッシュ装置２は、蓄積データ管理部２１（データ記録手段、バッファ送信手段、バッファ削除手段、キャッシュ削除手段）、アップロード制御部２２（送信判定手段、送信バッファ決定手段、送信速度決定手段）、削除キャッシュ決定部２３（削除キャッシュ決定手段）、ネットワーク状態監視部２４、データ記憶部２５（記憶部）、アクセス履歴記憶部２６を備える。
蓄積データ管理部２１は、ユーザ端末１からデータの送信要求を受け付け、該当するデータをデータ記憶部２５またはストレージ装置３から取得して、ユーザ端末１に送信する。このとき、蓄積データ管理部２１は、必要に応じてデータをデータ記憶部２５にキャッシュデータとして記録する。また、蓄積データ管理部２１は、ユーザ端末１からデータを受信し、当該データをデータ記憶部２５にバッファデータとして格納し、ストレージ装置３へ送信する。また、蓄積データ管理部２１は、データ記憶部２５の記憶容量が不足した際に、削除キャッシュ決定部２３が決定したキャッシュデータをデータ記憶部２５から削除する。なお、蓄積データ管理部２１は、これらの動作を実行した際に、その時刻、対象データのメタ情報、及び動作の内容をログとしてアクセス履歴記憶部２６に記録する。
【００２０】
アップロード制御部２２は、データ記憶部２５が記憶するバッファデータのデータ量（以下、送信バッファ量と記載する）、利用回数、最終アクセスからの経過時間、及びオンラインストレージ装置３３の負荷、ネットワーク５の負荷などの情報を計測・収集し、これらの情報に基づいてバッファデータをストレージ装置３にアップロードするか否かを判定する。また、アップロード制御部２２は、アップロードすると判定した場合、アップロードする際の送信速度を決定する。
【００２１】
削除キャッシュ決定部２３は、データ記憶部２５が記憶するキャッシュデータのサイズ、キャッシュデータの利用頻度、及びネットワーク５の遅延時間や帯域などの情報を計測・収集する。なお、キャッシュデータが動画である場合、削除キャッシュ決定部２３は、当該キャッシュデータの必要ビットレートの情報をあわせて収集しておく。そして、削除キャッシュ決定部２３は、これらの情報に基づいてデータ記憶部２５が記憶するバッファデータのデータ量及びキャッシュデータのデータ量が所定の閾値以上となる場合に、どのキャッシュデータを削除するかを決定する。
【００２２】
ネットワーク状態監視部２４は、ネットワーク５の遅延時間、帯域、及び他の通信トラヒックの負荷等、ネットワーク５の情報を計測・収集する。
データ記憶部２５は、ユーザが使用・閲覧するために受信したデータをキャッシュデータとして記憶し、ストレージ装置３へ送信するためにユーザが作成・更新したデータを、バッファデータとして記憶する。
アクセス履歴記憶部２６は、ユーザが操作を行った時刻、操作対象のデータのメタ情報、及び操作の内容などをログとして記憶する。
【００２３】
また、図１に示すように、ストレージ装置３は、データ送受信部３１、記憶部３２を備える。
データ送受信部３１は、キャッシュ装置２からデータの送信要求を受け付け、該当するデータを記憶部３２から読み出し、キャッシュ装置２に送信する。また、データ送受信部３１は、キャッシュ装置２からデータのアップロードの通知を受け付け、ストレージ装置３の負荷及び最後にキャッシュ装置２からデータのアップロードがあった時刻からの経過時間（以下、アップロード待機時間と記載する）などに基づいて、アップロードを受け付けるか否かを判定してキャッシュ装置２に通知する。また、データ送受信部３１は、キャッシュ装置２からデータを受信し、当該データを記憶部３２に記録する。
記憶部３２は、ユーザが所有するデータの一部または全部を記憶する。
【００２４】
次に、本実施形態によるキャッシュシステムの動作を説明する。
まず、ユーザがデータを使用・閲覧する際にユーザ端末１がデータを受信する動作について説明する。
図２は、ユーザがデータを使用・閲覧する際にユーザ端末１がデータを受信する動作を示すフローチャートである。
まず、ユーザがユーザ端末１に対してデータの使用・閲覧の要求を入力すると、ユーザ端末１のデータ処理部１１は、キャッシュ装置２にデータの送信要求を送信する（ステップＳ１０）。ユーザ端末１がデータの送信要求を送信すると、キャッシュ装置２の蓄積データ管理部２１は、データの送信要求を受信し、データ記憶部２５に該当するデータが存在するか否かを確認する（ステップＳ１１）。蓄積データ管理部２１は、データ記憶部２５に該当するデータが存在すると判定した場合（ステップＳ１１：ＹＥＳ）、データ記憶部２５から該当するデータを取得する（ステップＳ１２）。
【００２５】
他方、蓄積データ管理部２１は、データ記憶部２５に該当するデータが存在しないと判定した場合（ステップＳ１１：ＮＯ）、ストレージ装置３にデータの送信要求を送信する（ステップＳ１３）。キャッシュ装置２がデータの送信要求を送信すると、ストレージ装置３のデータ送受信部３１は、データの送信要求を受信し、送信要求が示すデータを記憶部３２から取得してキャッシュ装置２に送信する（ステップＳ１４）。
【００２６】
ストレージ装置３がデータを送信すると、キャッシュ装置２の蓄積データ管理部２１は、当該データを受信し、当該データをデータ記憶部２５にキャッシュデータとして記録するか否かを判定する（ステップＳ１５）。なお、キャッシュデータを格納するか否かの判定方法としては、全て格納と判定する方法、所定の確率でランダムに格納する方法、ファイルタイプによって格納するか否か判定する方法、ファイルタイプによって個別に設定された確率でランダムに格納するか否かを判定する方法などを用いることができる。
蓄積データ管理部２１が、データをキャッシュデータとして記録すると判定した場合（ステップＳ１５：ＹＥＳ）、キャッシュ装置２は、データ量調整処理を実行する（ステップＳ１６）。データ量調整処理とは、データ記憶部２５が記憶するデータ量が過多とならないよう、データ量を調整する処理のことである。
【００２７】
ここで、データ量調整処理について説明する。
図３は、データ量調整処理の手順を示すフローチャートである。
まず、キャッシュ装置２の蓄積データ管理部２１は、データ記憶部２５に記録しようとするデータのデータ量と、データ記憶部２５が記憶するキャッシュデータのデータ量と、データ記憶部２５が記憶するバッファデータのデータ量とを加算した値が、所定の閾値（例えば、データ記憶部２５の最大記憶容量）を超えるか否かを判定する（ステップＳ１００）。
【００２８】
蓄積データ管理部２１は、データ記憶部２５に記録しようとするデータとデータ記憶部２５が記憶するデータのデータ量の総和が所定の閾値以上であると判定した場合（ステップＳ１００：ＹＥＳ）、削除キャッシュ決定部２３は、ネットワーク状態監視部２４からネットワーク５の通信遅延時間（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）と帯域を取得する（ステップＳ１０１）。また、削除キャッシュ決定部２３は、データ記憶部２５が記憶するキャッシュデータそれぞれのサイズを取得し、アクセス履歴記憶部２６から各キャッシュデータの利用頻度を取得する（ステップＳ１０２）。
【００２９】
そして、削除キャッシュ決定部２３は、ステップＳ１０２、Ｓ１０３で取得した情報に基づいて、削除するキャッシュデータを決定して蓄積データ管理部２１に通知する（ステップＳ１０３）。なお、削除するキャッシュデータを決定する方法としては、様々な方法を挙げることができるが、例えば各キャッシュデータの推定レスポンスタイムＲｅを、以下に示す式（１）を用いて算出し、各キャッシュデータのうち式（２）が示す値が最も低いものを削除対象に決定する方法を用いる。
【００３０】
Ｒｅ＝ＲＴＴ＋Ｓ／ＢＷ  ・・・（１）
Ｆ×Ｒｅ／Ｒｒ  ・・・（２）
但し、ＲＴＴは、ネットワーク５における通信遅延時間を示す。また、ＢＷはネットワーク５の帯域を示す。また、Ｓは、キャッシュデータのサイズを示す。また、Ｆはキャッシュデータの利用頻度を示す。また、Ｒｒは予め設定されたファイルタイプごとに求められるレスポンスタイムを示す。
【００３１】
なお、削除するキャッシュデータを決定する方法は上記決定方法に限られず、例えば、Ｒｅ≦Ｒｒとなるキャッシュデータのうち利用頻度Ｆが最も低いものを削除対象に決定する方法を用いても良い。
また、キャッシュデータが動画である場合、必要ビットレートをＢＲとしてＢＷ≧ＢＲとなるキャッシュデータのうち利用頻度Ｆが最も低いものを削除対象に決定する方法を用いても良い。なお、ＢＷ≧ＢＲとなるキャッシュデータがない場合、ＢＷ＜ＢＲとなるキャッシュデータの利用頻度Ｆに１以上の値である所定の倍率Ｘを乗算し（キャッシュデータが動画でない場合は、倍率の乗算は行わない）、その値が最も低いキャッシュデータを削除対象に決定する。なお、所定の倍率Ｘは、固定値であっても良いし、ＢＲの大きさに応じて変化する値であっても良い。所定の倍率ＸをＢＲの大きさに応じて変化させる場合、ＢＲが大きいほど倍率Ｘが大きくなるようにすることが好ましい。
【００３２】
削除キャッシュ決定部２３がステップＳ１０３で削除対象のキャッシュデータを決定すると、蓄積データ管理部２１は、削除対象のキャッシュデータをデータ記憶部２５から削除する（ステップＳ１０４）。なお、削除対象のキャッシュデータが動画である場合、蓄積データ管理部２１は、キャッシュデータの全てを削除する代わりに、ストリーミング再生においてバースト的に必要となる先頭部分のキャッシュデータを残し、残りの部分のみを削除するようにしても良い。キャッシュデータを削除すると、ステップＳ１００に戻り、データ記憶部２５に記録しようとするデータとデータ記憶部２５が記憶するデータのデータ量の総和が所定の閾値を超えるか否かの判定を行う。
ステップＳ１００において、蓄積データ管理部２１が、データ記憶部２５に記録しようとするデータとデータ記憶部２５が記憶するデータのデータ量の総和が所定の閾値未満であると判定した場合（ステップＳ１００：ＮＯ）、データ量の調整が不要であると判定し、データ量調整処理を終了する。
【００３３】
キャッシュ装置２がデータ量調整処理を実行すると、蓄積データ管理部２１は、ストレージ装置３から受信したデータをキャッシュデータとしてデータ記憶部２５に記録する（ステップＳ１７）。
蓄積データ管理部２１は、ステップＳ１２でデータ記憶部２５からデータを読み出した場合、ステップＳ１５でデータをキャッシュデータとして記録しないと判定した場合（ステップＳ１５：ＮＯ）、またはステップＳ１７でデータをデータ記憶部２５に記録した場合、ユーザ端末１から受信した送信要求が示すデータを、ユーザ端末１に送信する（ステップＳ１８）。キャッシュ装置２がデータをユーザ端末１に送信すると、ユーザ端末１のデータ処理部１１は、当該データを受信してユーザに提示する（ステップＳ１９）。
【００３４】
次に、ユーザが作成・更新したデータを送信する際に、ユーザ端末１がキャッシュ装置２にデータを送信する動作について説明する。
図４は、ユーザが作成・更新したデータを送信する際に、ユーザ端末１がキャッシュ装置２にデータを送信する動作を示すフローチャートである。
ユーザ端末１のデータ処理部１１は、ユーザからのデータ作成・更新の操作を受けた際に、当該データを作成・更新して内部メモリに記録する。そして、ユーザが当該データの保存処理や作成・更新に用いているアプリケーションの終了処理を行った際に、当該データを内部メモリから読み出してキャッシュ装置２に送信する（ステップＳ２０）。
【００３５】
キャッシュ装置２の蓄積データ管理部２１は、データ記憶部２５がユーザ端末１から受信したデータの更新前のデータをデータ記憶部２５にバッファデータとして記憶しているか否かを判定する（ステップＳ２１）。更新前のデータがバッファデータとして記憶されているかの判定は、例えば、更新対象のデータのパス情報と同じパス情報を示すバッファデータが存在するか否かによって判定すると良い。蓄積データ管理部２１は、更新前のデータを記憶していると判定した場合（ステップＳ２１：ＹＥＳ）、当該バッファデータを削除する（ステップＳ２２）。
【００３６】
データ記憶部２５が更新前のデータを記憶していない場合（ステップＳ２１：ＮＯ）、またはステップＳ２２でバッファデータを削除した場合、キャッシュ装置２は、上述したデータ量調整処理を実行する（ステップＳ２２）。キャッシュ装置２がデータ量調整処理を実行すると、蓄積データ管理部２１は、ユーザ端末１から受信したデータをバッファデータとしてデータ記憶部２５に記録する（ステップＳ２３）。
【００３７】
次に、キャッシュ装置２がユーザが作成・更新したデータをストレージ装置３に送信する動作について説明する。
図５は、キャッシュ装置２がユーザが作成・更新したデータをストレージ装置３に送信する動作を示すフローチャートである。
キャッシュ装置２のアップロード制御部２２は、一定時間間隔ごとに、または蓄積データ管理部２１がユーザ端末１からデータを受信したときに、ネットワーク状態監視部２４からクロストラヒックのセッション数や必要帯域などの情報を取得する（ステップＳ３０）。なお、クロストラヒックとは、ネットワーク５におけるキャッシュ装置２−ストレージ装置３間の通信と同じ物理回線を使用する他の通信トラヒックのことである。
【００３８】
また、アップロード制御部２２は、データ記憶部２５が記憶するバッファデータのデータ量、またはデータ記憶部２５の全記憶容量におけるバッファデータのデータ量が占める割合を取得する（ステップＳ３１）。また、アップロード制御部２２は、アクセス履歴記憶部２６からデータ記憶部２５が記憶する各バッファデータの利用回数及び最終アクセスからの経過時間を取得する（ステップＳ３２）。なお、バッファデータの利用回数としては、当該バッファデータと同じフルパスを有するデータが読み出された回数や、当該データが読み出された回数と当該データを書き換えた回数を加算した値などを用いると良い。
【００３９】
そして、アップロード制御部２２は、データ記憶部２５が記憶するバッファデータの一部または全部をストレージ装置３に送信するか否かの判定を行う（ステップＳ３３）。なお、バッファデータを送信するか否かの判定は、ステップＳ３１で取得したバッファデータのデータ量またはバッファデータのデータ量の占める割合が、予め設定された閾値を超えているか否かを判定することで行う。
アップロード制御部２２は、データ記憶部２５が記憶するバッファデータを送信しないと判定した場合（ステップＳ３３：ＮＯ）、処理を終了し、次回のアップロードの判定の実行を待機する。
【００４０】
アップロード制御部２２は、データ記憶部２５が記憶するバッファデータを送信すると判定した場合（ステップＳ３３：ＹＥＳ）、ストレージ装置３に送信するバッファデータを決定する（ステップＳ３４）。送信するバッファデータの決定は、各バッファデータに対し、ステップＳ３２で取得した利用回数を最終アクセスからの経過時間で除算した値を算出し、これらの値が予め設定されたアクセス閾値を下回るものを、ストレージ装置３へ送信するバッファデータとして決定することで行う。
【００４１】
次に、アップロード制御部２２は、送信する際の送信速度を決定する（ステップＳ３５）。送信速度の決定は、ステップＳ３０で取得したクロストラヒックのセッション数にあわせて予め設定された送信速度に決定する方法を用いると良い。具体的には、キャッシュ装置２に予めセッション数と送信速度とを関連付けたテーブルを記憶させておき、アップロード制御部２２が、クロストラフィックのセッション数を読み出して当該テーブルを参照することで送信速度を決定する。なお、送信速度の決定は、これに限られず、例えば、キャッシュ装置２−ストレージ装置３間の通信回線の帯域を、クロストラヒックのセッション数＋１で除算した値に決定する方法や、キャッシュ装置２−ストレージ装置３間の通信回線の帯域から各クロストラヒックの必要帯域を減じた値に決定する方法を用いても良い。
次に、蓄積データ管理部２１は、ストレージ装置３にアップロード許可の要求を送信する（ステップＳ３６）。
【００４２】
ストレージ装置３のデータ送受信部３１は、キャッシュ装置２からアップロード許可の要求を受信し、当該アップロードを受け付けるか否かを判定し、その判定結果を蓄積データ管理部２１に通知する（ステップＳ３７）。データ送受信部３１によるアップロードの受け付け可否の判定方法としては、例えば、以下の方法が挙げられる。
例えば、既にストレージ装置３に書き込み中のセッション数や残りの書き込みのデータ量や、既にストレージ装置３から読み出し中のセッション数や残りの読み出しのデータ量（以下、ストレージ負荷）が、予め設定された負荷閾値を超えている場合、データ送受信部３１は、アップロードを受け付けないと判定する。他方、ストレージ負荷が負荷閾値を下回っている場合、データ送受信部３１は、アップロードを受け付けると判定する、といった判定方法が挙げられる。
また、アップロード待機時間が予め設定された時間閾値を下回る場合、データ送受信部３１は、アップロードを受け付けないと判定する。他方、アップロード待機時間が時間閾値を超える場合、データ送受信部３１は、アップロードを受け付けると判定する、といった判断方法が挙げられる。
また、上記した判断方法に限らず、例えば上記２つの判断方法を組み合わせて、アップロード待機時間が予め設定された時間閾値を超えるか否かに応じて異なる負荷閾値を設定し、ストレージ負荷が当該負荷閾値を超えている場合はアップロードを受け付けず、負荷閾値を下回っている場合はアップロードを受け付ける、といった判断方法であっても良い。
【００４３】
キャッシュ装置２の蓄積データ管理部２１は、ストレージ装置３からアップロード許可の要求の応答を受信し、アップロードが許可されたか否かを判定する（ステップＳ３８）。ストレージ装置３から受信した応答がアップロードを拒否する旨の応答であった場合（ステップＳ３８：ＮＯ）、ステップＳ３６に戻り、一定時間またはランダム時間だけ待機した後に、再度ストレージ装置３にアップロード許可の要求を送信する。
【００４４】
他方、ストレージ装置３から受信した応答がアップロードを許可する旨の応答であった場合（ステップＳ３８：ＹＥＳ）、蓄積データ管理部２１は、ステップＳ３４で決定したバッファデータをデータ記憶部２５から読み出し、当該バッファデータをステップＳ３５で決定した送信速度でストレージ装置３に送信する（ステップＳ３９）。そして、蓄積データ管理部２１は、送信したバッファデータをデータ記憶部２５から削除する（ステップＳ４０）。
【００４５】
次に、本実施形態によるキャッシュシステムによる効果について説明する。
本実施形態によれば、キャッシュ装置２は、ユーザ端末１からアップロードするデータを受信した場合において、キャッシュ装置２の記憶容量が所定の閾値を超えるとき、キャッシュデータを削除してバッファデータを記録する。これにより、キャッシュ装置２は、キャッシュ装置２の残り記憶容量に左右されずにユーザ端末１からのアップデートの高速化を図ることができるようになる。
【００４６】
また、本実施形態によれば、キャッシュ装置２に格納されているキャッシュデータのサイズ、求められるレスポンス、必要ビットレート、利用頻度、及びネットワーク５の遅延時間、帯域などの情報に基づいて、キャッシュ装置２の記憶容量が所定の閾値を超える場合に、どのキャッシュを削除するかを決定する。これにより、キャッシュミスによるレスポンス低下がユーザに強い影響を与えるデータをキャッシュから削除してしまう可能性を低減することができる。
【００４７】
また、本実施形態によれば、キャッシュ装置２に格納されているバッファデータのデータ量、利用回数、最終アクセスからの経過時間、及びストレージ装置３やネットワーク５の負荷などの情報に基づいて、送信データをストレージ装置３にアップロードするか否かの判定、及びアップロードする際の送信速度を制御する。これにより、送信データの過度に頻繁なアップロードによってストレージ装置３やネットワーク５に過負荷をかけることなく受信データのキャッシュ領域の圧迫を避けることができる。
【００４８】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、バッファデータのデータ量またはバッファデータのデータ量の占める割合が、予め設定された閾値を超えているか否かを判定することでバッファデータを送信するか否かを決定し、利用回数を最終アクセスからの経過時間で除算した値が予め設定されたアクセス閾値を下回るもの送信するバッファデータとして決定する場合を説明したが、これに限られない。
【００４９】
例えば、バッファデータのデータ量またはバッファデータのデータ量の占める割合が、予め設定された閾値を超えている場合に、データ記憶部２５が記憶する全てのバッファデータを送信するようにしても良い。また、例えば、バッファデータを送信するか否かの判定を行わずに、単に利用回数を最終アクセスからの経過時間で除算した値がアクセス閾値を下回るものを送信するようにしても良い。
【００５０】
なお、本実施形態では、データ記憶部２５に記録するデータ量が過多となる場合に、データ記憶部２５からキャッシュデータを削除することでデータ量の削減を図る場合を説明したが、これに限られない。例えば、キャッシュデータから、当該キャッシュデータよりデータ量の小さいキャッシュデータ（小サイズデータ）を生成し、元のキャッシュデータを削除して当該小サイズデータを記録することで、データ量の削減を図り、かつキャッシュデータを残すようにしても良い。なお、小サイズデータとしては、キャッシュデータの圧縮データ、キャッシュデータが画像である場合には画質を落としたデータ、キャッシュデータが動画や音声である場合にはビットレートを落としたデータなどが挙げられる。なお、上記処理を行うには、キャッシュ装置２が、削除キャッシュ決定部２３が決定したキャッシュデータから当該キャッシュデータのデータ量を削減したキャッシュデータ（小サイズデータ）を生成する小サイズデータ生成部と、当該小サイズデータをデータ記憶部２５に記録する小サイズデータ記録部とを備える必要がある。
【００５１】
上述のユーザ端末１、キャッシュ装置２、及びストレージ装置３は、それぞれ内部にコンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００５２】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００５３】
１…ユーザ端末  ２…キャッシュ装置  ３…ストレージ装置  ４…ローカルネットワーク  ５…ネットワーク  １１…データ処理部  ２１…蓄積データ管理部  ２２…アップロード制御部  ２３…削除キャッシュ決定部  ２４…ネットワーク状態監視部  ２５…データ記憶部  ２６…アクセス履歴記憶部  ３１…データ送受信部  ３２…記憶部
【図１】
0005699619.tif 000002
【図２】
0005699619.tif 000003
【図３】
0005699619.tif 000004
【図４】
0005699619.tif 000005
【図５】
0005699619.tif 000006