JP5192506B2 - ファイルキャッシュの管理方法、装置、及び、プログラム - Google Patents

ファイルキャッシュの管理方法、装置、及び、プログラム Download PDF

Info

Publication number
JP5192506B2
JP5192506B2 JP2010055552A JP2010055552A JP5192506B2 JP 5192506 B2 JP5192506 B2 JP 5192506B2 JP 2010055552 A JP2010055552 A JP 2010055552A JP 2010055552 A JP2010055552 A JP 2010055552A JP 5192506 B2 JP5192506 B2 JP 5192506B2
Authority
JP
Japan
Prior art keywords
data
file
client
block
bandwidth
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.)
Expired - Fee Related
Application number
JP2010055552A
Other languages
English (en)
Other versions
JP2011191856A (ja
Inventor
輝 米川
秀貴 青木
雄次 對馬
啓生 宮本
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010055552A priority Critical patent/JP5192506B2/ja
Publication of JP2011191856A publication Critical patent/JP2011191856A/ja
Application granted granted Critical
Publication of JP5192506B2 publication Critical patent/JP5192506B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、ファイルキャッシュの管理方法であり、特に、プレフェッチ処理をするファイルキャッシュの管理方法に関する。
WANを介してDC(データセンター)及び拠点間でデータアクセスを行う場合、データアクセスが距離に従って遅延したり、実行スループット(すなわち、実際の処理能力)が小さくなったりするため、キャッシュを用いて情報の取得を高速化させる方法が知られている。キャッシュを用いる方法は、データのうちアクセスした部分(およびその近傍)のコピーを参照側の拠点に保持することによって、同拠点からの再参照を、WANを介さず高速におこなうことを可能とする。また、キャッシュにデータがないキャッシュミスの発生による性能低下を低減するよう、参照される可能性のあるデータを事前にキャッシュに転送しておくプレフェッチが知られている。
プレフェッチを用いる方法として、ユーザからのアクセス指示に迅速に応答するため、アクセスされる可能性の高いコンテンツ(特に、ストリーム型コンテンツ)を予測し、各コンテンツを帯域制御した上でキャッシュにプレフェッチする方法がある(例えば、特許文献1参照)。特許文献1に示される方法では、各コンテンツをプレフェッチするために割り当てられる帯域は、参照される可能性の高さに基づいて各コンテンツに対するプレフェッチの優先度を定められた上で、その優先度と各ストリーム型コンテンツの要求する帯域とを用いて決定される。
特開2004―021769号公報
特許文献1に示される方法は、要求する帯域があらかじめ規定されているストリーム型コンテンツをプレフェッチする対象としており、各コンテンツが要求する帯域を用いて、各コンテンツをプレフェッチする際の帯域を決定している。しかし、ストリーム型コンテンツではないファイルについては、転送速度に対する要求がファイルごとに規定されていないため、特許文献1に示される方法を用いても、プレフェッチ時の割り当て帯域を算出できないという課題があった。
さらに特許文献1に示される方法では、コンテンツの受信側で使用可能なネットワーク帯域は一定であることを前提としているため、使用可能な実効帯域が動的に変化する一般の環境において特許文献1に示される方法を用いても、プレフェッチに割り当てられる総帯域に過不足が生じるという課題があった。
本発明は、このような課題を鑑みてなされたものであり、要求する帯域が規定されていない非ストリーム型コンテンツのプレフェッチにおいて、アプリケーションによるデータの利用速度に応じた帯域制御をおこなうことによって、ネットワークに過大な負荷をかけず、適切な速度によってプレフェッチすることを実現する。
図19は、従来技術の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。従来技術によって非ストリーム型コンテンツをプレフェッチする場合、図19に示すように帯域を多く使う。一方、本発明において用いる方法は、はアプリケーションによるデータの利用速度に従って帯域を制御することによって、図1のようにプレフェッチの際にネットワークに過大な負荷をかけることを防ぐ。
図1は、本発明の実施形態の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。
さらに、本発明は、利用可能な帯域が動的に変化するネットワーク帯域に適したプレフェッチをおこなうこと実現するファイルキャッシュ装置の提供することを目的とする。
本発明の代表的な一例を示せば以下の通りである。すなわち、ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継する装置におけるファイルキャッシュの制御方法であって、前記ファイルサーバに格納されたファイルを一定の大きさの複数のブロックに分割し、前記クライアントからの前記ファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持し、前記保持されたデータを前記クライアントに提供し、前記データを取得した履歴を保持し、前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出し、前記算出された単位時間あたりに必要とするデータ量に基づいて、前記クライアントが必要とするブロックを、前記ファイルサーバから先読みして保持し、前記先読みして保持されたブロックを前記クライアントから要求を受け、前記クライアントに提供する。
本発明の一実施形態によると、本発明は、アプリケーションがファイルを処理するための速度を算出することによって、ファイルのプレフェッチにおいて、ネットワーク帯域を有効に活用することができる。
本発明の実施形態の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。 本発明の第1の実施形態のネットワーク構成を示すブロック図である。 本発明の第1の実施形態のファイルキャッシュ装置のハードウェアの構成を示すブロック図である。 本発明の第1の実施形態のファイルキャッシュ装置の論理的な構成を示すブロック図である。 本発明の第1の実施形態の帯域制御の処理を示す説明図である。 本発明の第1の実施形態のレイヤー3、レイヤー4、及びレイヤー7のパケットを示す説明図である。 本発明の第1の実施形態のアクセスパターン解析部の処理を示すフローチャートである。 本発明の第1の実施形態のアクセスパターンを示す説明図である。 本発明の第1の実施形態の要求の対象となるファイルの分割を示す説明図である。 本発明の第1の実施形態のシーケンシャルな順番によって転送を要求する場合のネットワーク帯域を示す説明図である。 本発明の第1の実施形態のアクセスパターンを示す説明図である。 本発明の第1の実施形態のシーケンシャルではない順番によって要求する場合のネットワーク帯域を示す説明図である。 本発明の第1の実施形態の帯域を予測する処理を示すフローチャートである。 本発明の第1の実施形態のキャッシュ情報蓄積部の構成を示す説明図である。 本発明の第1の実施形態のキャッシュ制御部のプレフェッチの処理を示すフローチャートである。 本発明の第1の実施形態の帯域計算部の処理を示すフローチャートである。 本発明の第1の実施形態の業務帯域とプレフェッチの帯域とを示す説明図である。 本発明の第2の実施形態のネットワーク構成を示すブロック図である。 従来技術の非ストリーム型コンテンツをプレフェッチする場合の帯域と時間との関係を示す説明図である。
以下、本発明にかかる実施形態について、図面を参照して説明する。
(第1の実施形態)
第1の実施形態におけるネットワーク構成は、例えば、図2のようにクライアントのPC10とネットワーク13との間にファイルキャッシュ装置11が実装された構成である。
図2は、本発明の第1の実施形態のネットワーク構成を示すブロック図である。
本実施形態におけるクライアントのPC10は、ファイルキャッシュ装置11とクライアント側のゲートウェイ12とを介してネットワーク13に接続される。また、ファイルキャッシュ装置11に使用可能な帯域を割り当てる管理サーバ17は、ファイルサーバ側のゲートウェイ14を介してネットワーク13に接続される。また、ファイルサーバ15はファイルサーバ側のゲートウェイ14を介してネットワーク13に接続される。図2に示すネットワーク構成は、管理サーバ17及び管理サーバ側のゲートウェイ16を備えるが、管理サーバ及び管理サーバ側のゲートウェイ16を備えなくてもよい。ネットワーク13は、LANであっても、WANであってもよい。
図3は、本発明の第1の実施形態のファイルキャッシュ装置11のハードウェアの構成を示すブロック図である。
ファイルキャッシュ装置11は、制御部20と、スイッチ21と、インターフェイスカード22とを備える。スイッチ21は、インターフェイスカード22からの入力を所望のインターフェイスカード22に振り分ける。制御部20は、プロセッサ80及びメモリ90を備える。
メモリ90には、プロセッサ80が実行する各種プログラムが格納されている。例えば、アクセスパターン解析プログラム103A、アクセス場所予測プログラム106A、帯域予測プログラム107A、キャッシュ制御プログラム108A、帯域計算プログラム109A、帯域予約プログラム110Aである。また、メモリ90には、図8で後述するアクセスパターン116が保持され、図14で後述するキャッシュ情報蓄積部117が構成される。なお、メモリ90は、制御部20内に構成される記憶部として例を示したが、制御部外の記憶装置によって構成されていてもよい。
インターフェイスカード22は、クライアント側のゲートウェイ12又はクライアントのPC10から送信されるパケットを送受信するためのネットワークインターフェースであり、カード型ネットワークインターフェース及び内蔵型ネットワークインターフェースのうちいずれでもよい。
スイッチ21は、インターフェイスカード22からの入力パケットを所望の宛先に届けたり、入力パケットを解析したりするパケット処理部23と、パケットを蓄積するパケット蓄積部24と、パケットの宛先及びアクセスパターンなどの各種情報を保存する各種情報蓄積部25を備える。パケット蓄積部24及び各種情報蓄積部25は、メモリ90上に構成されてもよく、ハードディスクなどの記憶媒体に構成されてもよい。パケット処理部23には、例えば、パケット内のコマンドを解析したり、クライアントなどの計算機からのリクエストに対応するレスポンスを生成する処理を実行するためのプログラムが格納される。
図4は、本発明の第1の実施形態のファイルキャッシュ装置11の論理的な構成を示すブロック図である。
本発明の第1の実施形態のファイルキャッシュ装置11は、コマンド解析部102と、アクセスパターン解析部103と、時刻取得部104と、レスポンス部生成部105と、アクセス場所予測部106と、帯域予測部107と、キャッシュ制御部108と、帯域計算部109と、帯域予約部110と、要求生成部111と、ネットワークモニタリング部112と、総帯域取得部113とを備える。
ファイルキャッシュ装置11が備えるこれらの処理部の一部は、図3に示す制御部20に格納されるプログラムを実行することによって実装される。例えば、アクセスパターン解析部103と、アクセス場所予測部106と、帯域予測部107と、キャッシュ制御部108と、帯域計算部109と、帯域予約部110とは、アクセスパターン解析プログラム103A、アクセス場所予測プログラム106A、帯域予測プログラム107A、キャッシュ制御プログラム108A、帯域計算プログラム109A、帯域予約プログラム110Aが、プロセッサ80によって実行されることによって実装される。
また、ファイルキャッシュ装置11は、アクセスパターン116及びキャッシュ情報蓄積部117を保持する。アクセスパターン116及びキャッシュ情報蓄積部117は、データの集合である。なお、制御部のメモリ90ではなく、アクセスパターン116は、スイッチ21内の各種情報蓄積部25に格納され、キャッシュ情報蓄積部117は、パケット蓄積部24に格納されてもよい。
なお、図4において、図2に示すクライアント側のゲートウェイ12、ファイルサーバ側のゲートウェイ14、管理サーバ側のゲートウェイ16、及び、管理サーバ17の記載は、省略する。
図5は、本発明の第1の実施形態の帯域制御の処理を示す説明図である。
図5に示す本実施形態の帯域制御の処理の概要は、以下の通りである。
最初に、クライアントのPC10からファイルキャッシュ装置11に所定のパケットによって要求が送信され、送信された要求は、インターフェイスカード22を介してコマンド解析部102に入力される(ステップ201)。
コマンド解析部102は、クライアントのPC10から送信された要求を解析することによって、ファイルのオープン、読み込み、又はクローズなどのコマンドの種類と、そのコマンドに付帯するファイル名及び読み込み範囲などの情報とを取得する(ステップ202)。
アクセスパターン解析部103は、クライアントのPC10から送信された要求を解析することによって、クライアントのPC10から送信された要求が示す送信元IPアドレス及び送信元ポートと、コマンドの種類及びコマンドに付帯する情報とを取得し(ステップ203)、取得した情報をアクセスパターン116に格納する(ステップ204)。その際に、クライアントのPC10から送信された要求に含まれる情報を受信した時刻を、時刻取得部104から取得する(ステップ205)。そして、ステップ204において格納した情報とともに、ステップ205において取得された時刻を、アクセスパターン116に格納する。
キャッシュ制御部108は、ステップ202において取得されたコマンド及びコマンドに付帯する情報が、コマンドの種類はファイルの読み込みであり、かつ、そのファイルの読み込み範囲を参照しキャッシュ情報蓄積部117に存在するか否かを判定する(ステップ206)。
ステップ206において、キャッシュ情報蓄積部117にファイルの読み込み範囲の情報が存在すると判定された場合、キャッシュ制御部108は、その情報をキャッシュ情報蓄積部117から取得し(ステップ207)、取得された情報を付加したレスポンス用のパケットをレスポンス部生成部105に生成させ(ステップ208)、生成させたレスポンス用のパケットを、クライアントのPC10へ返信する(ステップ209)。
ステップ203の後、アクセス場所予測部106は、アクセスパターン116を参照し、クライアントのPC10が次にファイルのどの部位(後述するブロック)を参照するか予測し、予測された場所をキャッシュ制御部108にプレフェッチするよう要求する(ステップ210)。
また、ステップ203の後、帯域予測部107は、アクセスパターン116を参照し、読み込みが要求されたファイルを用いるアプリケーションが、情報を処理するアクセス速度を予測し、そのアクセス速度を要求帯域としてキャッシュ制御部108に設定する(ステップ211)。
キャッシュ制御部108は、ステップ206において、コマンドがファイルの読み込みであり、キャッシュ情報蓄積部117にファイルの読み込み範囲の情報が存在しない、すなわちキャッシュミスであると判定した場合、帯域予測部107によって設定された要求帯域を帯域計算部109に設定する。
帯域計算部109は、ネットワークモニタリング部112と総帯域取得部113とによって、空き帯域を取得する。帯域計算部109は、取得された空き帯域と、キャッシュ制御部108によって設定された要求帯域とを比較し、要求帯域が空き帯域より小さいか、同じである場合は要求帯域を帯域予約部110に割り当てる。また、要求帯域が空き帯域より大きい場合は、要求帯域を空き帯域以下に設定し、帯域予約部110に割り当てる。設定方法は比例配分又は優先度による配分などの公知の技術を用いる(ステップ212)。クライアントのPC10からの共有ファイルアクセスにおいて、キャッシュミスが発生すると、帯域計算部109は空き帯域に基づいて可能な限り最大の転送速度を求め、帯域予約部110に割り当てる。
帯域予約部110は、ステップ212において割り当てられた帯域を、ファイルサーバ15までのネットワークにおいて予約する(ステップ213)。具体的には、帯域予約部110は、クライアント側のゲートウェイ12、ファイルサーバ側のゲートウェイ14、及び、ファイルサーバ15に割り当てられた帯域を予約するように指示する。
キャッシュ制御部108は、アクセス場所予測部106によって予測された場所をプレフェッチするため、要求生成部111にプレフェッチするファイルのブロックを転送する要求を送る。そして、要求生成部111は、キャッシュ制御部108から送られたプレフェッチするファイルのブロックを要求するパケットを生成し(ステップ214)、生成されたパケットを送信することによって、プレフェッチするファイルのブロックをファイルサーバ15に要求する(ステップ215)。
ファイルサーバ15に送信したパケットに対するレスポンスを、ファイルサーバ15から受信すると、キャッシュ制御部108は、受信したレスポンスに含まれる情報を取得する(ステップ216)。そして、受信したレスポンスが、プレフェッチを要求するパケットのレスポンスである場合、受信したレスポンスに含まれる情報、すなわちプレフェッチされたファイルのブロックを、キャッシュ情報蓄積部117に格納する(ステップ217)。
また、キャッシュ制御部108は、ステップ206においてキャッシュミスであると判定されていた場合、レスポンス部生成部105を用いてクライアントのPC10へのレスポンスのためのパケットを生成し、ファイルサーバ15から取得したファイルのブロックを、生成されたパケットに含める(ステップ218)。そして、レスポンス部生成部105は、生成されたパケットをクライアントのPC10に送信する(ステップ219)。
また、キャッシュ制御部108は、アクセスパターン解析部103に、クライアントのPC10にブロックを送信した旨、すなわち、ファイルのブロックの転送が終わった旨を送り、また、ファイルサーバ15からのレスポンスに含まれる情報を送る。そして、アクセスパターン解析部103は、ステップ216において取得されたファイルのブロックを、既存のアクセスパターン116と照合し(ステップ220)、既存のファイルのブロックのうち、レスポンスに含まれたファイルのブロックに連続するファイルの情報とともに、ファイルのブロックをクライアントのPC10に送信した時刻を、アクセスパターン116に格納する(ステップ221)。
以下、コマンド解析部102、アクセスパターン解析部103、アクセス場所予測部106、帯域予測部107、キャッシュ制御部108、及び帯域計算部109における処理の詳細について説明する。
(コマンド解析部102)
クライアントのPC10からの要求は、ネットワークのパケットとしてファイルキャッシュ装置11に備わるコマンド解析部102へ入力される。
図6は、本発明の第1の実施形態のパケットのレイヤー3、レイヤー4、及びレイヤー7のフォーマットを示す説明図である。本実施形態におけるクライアントのPC10からの要求は、CIFS(Common Internet File System)のフォーマットによるパケットによって送信される。なお、本実施形態のCIFS以外でも、ファイルを共有するシステムにおいてファイルの転送を要求するためのパケットであれば、いずれのフォーマットを用いてもよい。
レイヤー3のフォーマットには、接続先のサーバを示す宛先アドレスが含まれている。ファイルキャッシュ装置11は、PC10のパケットを解析することにより、PC10がどのサーバへ接続しようとしているか知ることができる。また、CIFSには、PC10がどのファイルをアクセスしようとしているか、PC10がファイルのアクセス範囲を示すコマンドなどが記載されている。
このため、コマンド解析部102は、図6のCIFSパケットのフォーマットのコマンド番号と、CIFSパケットのデータ部を参照することによってクライアントのPC10からの要求がファイルのオープン、ファイルのクローズ、アクセス範囲の指定、ファイルの読み込みのコマンドであるかを解析する。
(アクセスパターン解析部103)
図7は、本発明の第1の実施形態のアクセスパターン解析部103の処理を示すフローチャートである。図7に示すフローチャートは、図5に示すステップ202〜ステップ204に相当する。
アクセスパターン解析部103は、クライアントのPC10から送信された要求に含まれるコマンドを解析後(ステップ301)、要求に含まれる情報を受信した時刻を時刻取得部104から取得し(ステップ302)、接続元IPアドレス及び接続元ポートを取得する(ステップ303)。アクセスパターン解析部103は、図6に示すパケットのレイヤー3から送信元IPアドレスを取得し、レイヤー4から送信元ポートを取得する。
アクセスパターン解析部103は、コマンドの種類を判定し(ステップ304)、コマンドの種類がファイルのオープンの場合、ステップ302及びステップ303において取得された情報を、ともにアクセスパターン116へ記録する(ステップ305)。
また、ステップ304においてコマンドの種類がファイルのオーブンではないと判定された場合、アクセスパターン解析部103は、コマンドの種類がファイルの読み込みであるか否かを判定する(ステップ306)。ファイルの読み込みであると判定された場合、アクセスパターン解析部103は、図6に示すデータ部に含まれるファイルの読み込み範囲を示す値を、ブロック番号へ変換する(ステップ307)。そして、アクセスパターン解析部103は、ファイルの読み込みが開始したことを示すため、アクセスパターン116へ記録を開始する(ステップ308)。
また、ステップ306においてコマンドの種類がファイルの読み込みではないと判定された場合、アクセスパターン解析部103は、コマンドの種類がファイルのクローズであるか否かを判定する(ステップ309)。ファイルのクローズであると判定された場合、ファイルのオープン又は読み込みが終了したことを示すため、アクセスパターン116への記録を終了する(ステップ310)。
ステップ309においてコマンドの種類がファイルのクローズではないと判定された場合、アクセスパターン解析部103は、コマンド解析部102から送信された要求に対して処理をしない(ステップ311)。
図8は、本発明の第1の実施形態のアクセスパターン116を示す説明図である。図8に示すアクセスパターン116は、シーケンシャル、すなわちブロック番号の順番にブロックの転送を要求する場合のアクセスパターン116を示す。
アクセスパターン116には、要求を送信した接続元のIPアドレス及び接続元ポート番号などの接続元固有の情報と、ファイルのオープン、読み込み又はクローズなどのコマンドの種類を示す情報と、アクセスパターン116に情報を格納する際に時刻取得部104から取得された時刻を示す情報とが、テーブルとして関連付けられ、保持される。
図8に示すアクセスパターン116は、接続元IPアドレス1161、接続元ポート番号1162、ファイル名1163、ブロック番号1164、自ブロックの転送終了時刻1165、及び、次のブロックのアクセス時刻1166を含む。なお、ファイルのオープン、読み込み又はクローズなどのコマンドの種類を示す情報を加えてもよい。
接続元IPアドレス1161には、要求をファイルキャッシュ装置11に送信したクライアントのPC10を一意に示す値が含まれる。接続元ポート番号1162は、要求が送信されたポート番号を示す。ポート番号は一般的に、アプリケーションによって一意に定められる。このため接続元ポート番号1162は、クライアントのPC10においてファイルキャッシュ装置11に要求を送信したアプリケーションの種類を示す。接続元IPアドレス1161と接続元ポート番号1162との値は、図5に示すステップ204、及び、図7に示すステップ305において格納される。
ファイル名1163には、要求の対象となるファイル名称が含まれる。図8に示すファイル名1163は、CIFSを用いた場合のファイル名であるが、ファイル名を一意に特定されればいずれの表記でもよい。ファイル名1163は、図5に示すステップ204、及び、図7に示すステップ305において格納される。
ブロック番号1164は、要求の対象となるファイルを一定の大きさに分割し、分割されたブロックに付された番号を示す。ブロック番号1164の値は、図7に示すステップ307において生成された後、ステップ308においてブロック番号1164に格納される。
自ブロックの転送終了時刻1165は、同じ行のブロック番号1164に示されたブロックを、ファイルサーバ15から転送し終わった時刻を示す。次のブロックのアクセス時刻1166は、次の行のブロックを転送し始める時刻を示す。図8に示す時刻は任意の時刻を基準にしたシリアル値によって示されるが、時刻を一意に特定できればどのような形式でもよい。
アクセスパターン解析部103は、キャッシュ制御部108からレスポンス部生成部105へ転送終了後のブロックが送られる際に、キャッシュ制御部108からブロックの転送が終了した旨を通知され、ブロックの転送が終了した旨を通知された時刻を、時刻取得部104から取得し、自ブロックの転送終了時刻1165の値に格納してもよい。
さらに、アクセスパターン解析部103は、アプリケーションから次のブロックの転送を要求された際の時刻を、時刻取得部104から取得し、次のブロックのアクセス時刻1165に格納してもよい。
また、アクセスパターン解析部103は、アプリケーションがブロックを処理する時間を予測し、自プロックの転送終了時刻1165に予測された時間を加算して、次のブロックのアクセス時刻1166に格納してもよい。
例えば、図8に示すアクセスパターン116のテーブルのうち1行目は、ブロック番号1164が”1”のブロック(以下、ブロック1と記載)の転送が終了した時刻が”5”であり、次のブロック番号1164が”2”のブロック(以下、ブロック2と記載)へアクセスを開始した時刻が”15”であることを示す。このため、接続元ポート番号1162が示すアプリケーションが、ブロック1を処理するために要する時間は、”10”であることが算出される。
さらに、ブロック1の容量を、アプリケーションがブロックを処理するために要した時間によって割ることによって、ブロック一つあたりのアプリケーションのアクセス速度が求まる。接続元IPアドレス1161と接続元ポート1162とは、それぞれ図6に示す送信元アドレスと送信元ポートとを参照することによって取得される。
図8に示すブロック番号1164が”3”のブロック(以下、ブロック3と記載)の自ブロックの転送終了時刻1165には、”キャッシュヒット”を示す値が格納される。ブロック3がプレフェッチによって取得され、キャッシュ制御部108が、既にキャッシュ情報蓄積部117に格納されていたブロック3をクライアントのPC10に送信する旨をキャッシュ制御部108から通知された場合、アクセスパターン解析部103は、自ブロックの転送終了時刻1165に、”キャッシュヒット”を示す値を格納する。
クライアントのPC10においてアプリケーションによるブロック3の処理が終了した後、クライアントのPC10のアプリケーションは、次のブロック4を転送する旨の要求をコマンド解析部102を介してアクセスパターン解析部103に送信する。アクセスパターン解析部103は、アプリケーションからブロック4を転送する旨の要求を受けると、次のブロックのアクセス時刻1165に時刻取得部104から取得した時刻を格納する。
一方で、アクセスパターン解析部103は、ブロック3がクライアントのPC10に送信された旨を受けると、ブロック4のプレフェッチをするように、アクセス場所予測部106及び帯域予測部107にアクセスパターン116の情報を送る。このため、アプリケーションがブロック3を処理している間、ブロック4はプレフェッチされる。
アプリケーションがブロック3の処理を終了し、アプリケーションからコマンド解析部102を介してブロック4を転送する旨の要求を受けた場合、キャッシュ制御部108は、キャッシュ情報蓄積部117を参照した後、クライアントのPC10にキャッシュ情報蓄積部117に格納されていたブロック4を送り、アクセスパターン解析部103にブロック4が既にキャッシュ情報蓄積部117に格納されていた旨を通知する。
アクセスパターン解析部103は、図7に示すステップ310において、クライアントのPC10から送られた要求に含まれる一つのファイルへの処理が終了(すなわち、クローズ)したことを示すため、同じファイル名1163のブロック番号1164のうち、最後のブロック番号1164の次のブロックのアクセス時刻1166に、”NULL”を格納する。
なお、本実施形態のブロック番号とは、図9のように要求の対象となるファイルを、一定の大きさに分割した、分割された各々のブロックに付された番号である。
図9は、本発明の第1の実施形態の要求の対象となるファイルの分割を示す説明図である。
図9に示すファイルは、要求の対象となるファイルを示す。本実施形態のアクセスパターン解析部103は、図7に示すステップ307において、ファイルの読み込み範囲を、512バイトごとのブロック1〜nに分割する。なお、ブロックの大きさは512バイトに限定されず、いずれの大きさでもよい。
図8に示すアクセスパターン116は、シーケンシャル、すなわちブロック番号順にアクセスする場合のテーブルである。図8に対応するネットワーク帯域を図10に示す。
図10は、本発明の第1の実施形態のシーケンシャルな順番によって転送を要求する場合のネットワーク帯域を示す説明図である。
図10に示すブロック1は、時刻が”5”になるまでファイルサーバ15から転送され、ブロック1の転送によって帯域が使用される。時刻が”5”〜”15”の間、ファイルサーバ15から転送されるブロックがないため、帯域は空きとなる。なお、時刻が”5”〜”15”の間、ブロック1を要求したアプリケーションは、ブロック1を処理する。
時刻が”15”〜”20”の間、ブロック2がファイルサーバ15から転送され、帯域が使用される。時刻が”20”から、プロック2を要求したアプリケーションはブロック2を処理する。また、アクセス場所予測部106は、次に転送を要求されるブロックがブロック2の次のブロック3であると予測して、キャッシュ制御部108にブロック3をプレフェッチさせる。すなわち、キャッシュ制御部108は、アクセス場所予測部106から送られた帯域によって、ブロック2の転送が終了した時刻から、アプリケーションが一つのブロックを処理するまでの時間、ブロック3をプレフェッチする。
時刻が”30”から、アプリケーションは、プレフェッチされたブロック3を処理する。そして、ブロック3が処理されている間、キャッシュ制御部108は、帯域予測部107から送られた帯域によって、ブロック4をプレフェッチする。
時刻が”40”から、アプリケーションはプレフェッチされたブロック4を処理する。
なお、帯域予測部107から送られるプレフェッチするための帯域が、確保することができないと帯域計算部109によって判定された場合、キャッシュ制御部108はプレフェッチを中止してもよい。
また、図8及び図10において、プレフェッチのために使用される帯域は、ブロックを転送するための帯域よりも少ない。しかし、アプリケーションが一つのブロックを処理するための時間が、一つのブロックを転送するための時間よりも短い場合、プレフェッチのために使用される帯域は、一つのブロックを転送するための帯域より多くなってもよい。これは、後述のように、プレフェッチのために使用される帯域は、その時のネットワークの空き帯域に依存するためである。
図11は、本発明の第1の実施形態のアクセスパターン116を示す説明図である。図11に示すアクセスパターン116は、ブロック番号が示す順番によってブロックの要求をしない場合のアクセスパターン116である。図11に示すブロック番号1164は、一つ飛ばしであり、奇数番号のみが格納される。
図12は、本発明の第1の実施形態のシーケンシャルではない順番によって要求する場合のネットワーク帯域を示す説明図である。図12は、図11に示すアクセスパターン116に対応する。
図12に示す時間が”2”までに、ブロック1が転送される。次にアクセス場所予測部106は、アクセスパターン解析部103を介して取得したアクセスパターン116に示される、ファイルサーバ15に転送を要求したファイルの情報に基づいて、クライアントのPC10がブロック1の次はブロック2を要求すると予測し、キャッシュ制御部108にブロック2をプレフェッチさせる。しかし、実際はアプリケーションからブロック3が要求され、キャッシュにブロック3が存在せず、キャッシュミスとなるため、キャッシュ制御部108は、ブロック3の転送をファイルサーバ15に要求する。
アクセスパターン解析部103は、クライアントのPC10からのファイル要求が発生すると、前回要求されたブロックと、今回要求されたブロックの統計を取り、アクセスパターン116を更新する。これによって、アクセス場所予測部106は、次にどのブロックが要求されるかを予測できる。
時刻が”10”〜”15”においてブロック3が転送された後、アクセス場所予測部106は、アクセスパターン116に示される、ファイルサーバ15に転送を要求したファイルの情報に基づいて、次はブロック5を要求すると予測し、キャッシュ制御部108にブロック5をプレフェッチさせる。その後、ブロック7が要求された場合、ブロック7がファイルサーバ15から転送される。
(アクセス場所予測部106)
アクセス場所予測部106は、アクセスパターン解析部103から取得された、現在ファイルを要求している部位に基づいて、次は最も数字の近い部位が要求されると予測する。例えば図9に示すファイルを要求する場合、ブロック1を要求すると、次は隣接するブロック2を要求すると予測する。また、アクセスパターン解析部103から取得されたブロック番号に基づいて、要求される順番の一つ飛ばしなどの規則性を判定し、次に要求されるブロックを予測する。
(帯域予測部107)
図13は、本発明の第1の実施形態の帯域を予測する処理を示すフローチャートである。図13に示す帯域予測部107による処理は、図5に示すステップ211に相当する。
帯域予測部107は、図13に示すフローによって、アプリケーションがファイルを処理するためのアクセス速度、すなわち、アプリケーションが必要とする単位時間あたりのデータ量を予測し、要求帯域を決定する。まず、帯域予測部107は、ファイルのうち一部分のブロックの転送が終了すると(ステップ401)、転送したブロックの番号及びサイズと、転送終了時の時刻とをアクセスパターン116から取得する(ステップ402、ステップ403)。さらに、帯域予測部107は、取得したブロックのサイズと、転送終了時の時刻とを保存する(ステップ404)。
再び他のブロックが要求されたことをアクセスパターン解析部103から取得した場合(ステップ405)、要求されたブロックの転送が開始される(ステップ406)。この時、帯域予測部107は、転送開始の時刻をアクセスパターン116から取得する(ステップ407)。この転送開始の時刻と、ステップ403において取得された転送終了の時刻との差を算出し(ステップ408)、算出された差を、アプリケーションがブロックを処理した時間とみなし、前回転送されたブロックのサイズを、この時間によって割ることで、アプリケーションのアクセス速度を求める(ステップ409)。例えば、図8に示す例では、アプリケーションがブロック1とブロック2とを処理した時間は、各々5秒であり、アプリケーションのアクセス速度は、512バイト/5秒である。
(キャッシュ制御部108)
図14は、本発明の第1の実施形態のキャッシュ情報蓄積部117の構成を示す説明図である。
キャッシュ情報蓄積部117には、ヘッダ領域601とデータ領域602との組が含まれる。ヘッダ領域601は、プレフェッチする対象のファイルの情報を含み、すなわち、サーバ名603、ファイル名604、ファイルID605、データ領域上のデータの位置であるポインタ606、ブロックの大きさ607、及び、合計のブロックサイズ608を含む。ファイルID605には、クライアントのPC10から要求されたファイルを一意に示す識別子が格納される。
データ領域には、ブロックごとのプレフェッチの有無を示す情報609と、実際のファイルのデータ610とが含まれる。キャッシュ情報蓄積部117は、プレフェッチする対象のファイル毎に、図14に示すヘッダ領域601とデータ領域602との組を、複数個保持する。
図15は、本発明の第1の実施形態のキャッシュ制御部108のプレフェッチの処理を示すフローチャートである。
キャッシュ制御部108は、アクセス場所予測部106及び帯域予測部107からコマンドの解析結果とプレフェッチするブロックの場所と、プレフェッチのための要求帯域とを取得する(ステップ500)。なお、アクセスパターン解析部103は、キャッシュ制御部108がクライアントのPC10へ一つのブロックを送信する旨を、キャッシュ制御部108から通知された場合、アクセスパターン116を参照し、次のブロックのプレフェッチをさせるため、アクセス場所予測部106及び帯域予測部107にプレフェッチするブロックの場所と、プレフェッチのための要求帯域とをキャッシュ制御部108に送らせる。
キャッシュ制御部108は、コマンドの種類がファイルのオープンであるか否かを判定する(ステップ501)。コマンドの種類がファイルのオープンである場合、キャッシュ制御部108は、キャッシュ情報蓄積部117のヘッダ領域601にオープンの対象となるファイル名604を格納することによってキャッシュ情報蓄積部117を初期化する(ステップ502)。
ステップ501においてコマンドの種類がオープンではないと判定された場合、キャッシュ制御部108は、コマンドの種類が読み込みか否かを判定する(ステップ503)。コマンドの種類がファイルの読み込みである場合、ファイルの情報が既にキャッシュ情報蓄積部117にあるか否かを判定する(ステップ504)。ファイルの情報が既にキャッシュ情報蓄積部117にある場合、キャッシュ制御部108は、キャッシュ情報蓄積部117からファイルの情報を取得し、クライアントのPC10に送信する(ステップ505)。
なお、ステップ505においてキャッシュ制御部108は、アクセスパターン解析部103に”キャッシュヒット”である旨を通知してもよい。
ステップ504において、ファイルの情報がキャッシュ情報蓄積部117にないと判定された場合、キャッシュ制御部108は、キャッシュミスであると判定し、ファイルの送信を114へ依頼するためステップ508に移行する。
ステップ503において、コマンドの種類がファイルの読み込みではないと判定された場合、キャッシュ制御部108は、コマンドの種類がファイルのクローズであるか否かを判定する(ステップ506)。コマンドの種類がファイルのクローズであると判定された場合、キャッシュ制御部108は、キャッシュ情報蓄積部117のヘッダ領域601及びデータ領域602のうち、クローズとなるファイルに相当する領域を解放、すなわち削除する(ステップ507)。
ステップ506において、コマンドの種類がファイルのクローズではないと判定された場合、コマンドの種類が、オープン、読み込み及びクローズのいずれでもないため、コマンドをファイルサーバ15に送信するため、ステップ508に移行する。
なお、ステップ500〜ステップ504、ステップ506は、図5に示すステップ206に相当する。また、ステップ505は、図2に示すステップ207〜ステップ209に相当する。
ステップ502、ステップ504、又はステップ506の後、キャッシュ制御部108は、コマンドを要求生成部111へ送信する(ステップ508)。ステップ508は、図5に示すステップ214に相当する。
要求生成部111によってコマンドがファイルサーバ15に送信された後、キャッシュ制御部108は、コマンドに対応するレスポンスをファイルサーバ15から取得し(ステップ509)、取得したレスポンスに対応するコマンドを解析する(ステップ510)。
ステップ510の結果に基づいて、キャッシュ制御部108は、ステップ509において受信したコマンドの種類がファイルのオープンであるか否かを判定する(ステップ511)。コマンドの種類がファイルのオープンであると判定された場合、キャッシュ制御部108は、ヘッダ領域601のうちコマンドの対象となるファイルに該当するサーバ名603及びファイル名604を含むレコードのファイルID605に、オープンしたファイルのIDを格納する(ステップ512)。
ステップ511において、ステップ509において受信したレスポンスに対応するコマンドがファイルのオープンではないと判定された場合、キャッシュ制御部108は、レスポンスに含まれるファイルIDが、キャッシュ情報蓄積部117に格納されたファイルID605と一致するか否かを判定する(ステップ513)。レスポンスに含まれるファイルID605がキャッシュ情報蓄積部117に格納されたファイルが一致しない場合、キャッシュ制御部108は、受信したレスポンスを無視、すなわち、受信したレスポンスをそのままレスポンス部生成部105に転送する(ステップ518)。
ステップ513において、レスポンスに含まれるファイルIDがキャッシュ情報蓄積部117に格納されたファイルID605と一致する場合、キャッシュ制御部108は、レスポンスに対応するコマンドの種類が、ファイルの読み込みであるか否かを判定する(ステップ514)。レスポンスに対応するコマンドの種類が読み込みではないと判定された場合、キャッシュ制御部108は、受信したレスポンスを無視、すなわち、受信したレスポンスをそのままレスポンス部生成部105に転送する(ステップ518)。
ステップ514において、レスポンスに対応するコマンドの種類が読み込みであると判定された場合、キャッシュ制御部108は、読み込んだファイルのプレフェッチするためにステップ515に移行する。ステップ515においてキャッシュ制御部108は、読み込んだファイルのブロックを保存する領域がキャッシュ情報蓄積部117にあるか否かを判定する(ステップ515)。
読み込んだファイルのブロックを保存する領域がキャッシュ情報蓄積部117にある場合、キャッシュ制御部108は、読み込んだファイルのブロックをキャッシュ情報蓄積部117に格納することによって、プレフェッチする(ステップ517)。読み込んだファイルを保存する領域がキャッシュ情報蓄積部117になく、領域が足りない場合、キャッシュ制御部108は、長時間アクセスされていないファイルに該当する領域を削除し(ステップ516)、読み込み範囲の情報を格納することによって、プレフェッチする(ステップ517)。ステップ513〜ステップ518は、図5に示すステップ217に相当する。
なお、特にプレフェッチするための手順を前述したが、通常のファイルについても、同様な手順によって転送してもよい。その際は、ステップ500において、キャッシュ制御部108はコマンド解析部102からコマンドの解析結果を送られる。そして、ステップ517において、キャッシュ情報蓄積部117にファイルのブロックを格納した後、ファイルのブロックを転送した旨をアクセスパターン解析部103に通知し、読み込んだファイルをクライアントのPC10に送信する。
また、ステップ517において読み込んだファイルをキャッシュ情報蓄積部117に格納する際に、キャッシュ制御部108は、図14に示すブロックごとのプレフェッチの有無を示す情報609のうち、ファイルを格納する場所に相当する部分に、プレフェッチによって格納されたブロックであることを示す場合は”1”を格納し、通常の転送によって格納されたブロックであることを示す場合は、”0”を格納する。
(帯域計算部109)
図16は、本発明の第1の実施形態の帯域計算部109の処理を示すフローチャートである。
まず帯域計算部109は、総帯域取得部113からネットワークの総帯域を取得する(ステップ701)。総帯域取得部113は、ネットワーク13又はファイルサーバ側のゲートウェイ14から、ファイルキャッシュ装置11に割り当てられたネットワーク帯域を取得することによってネットワーク総帯域を取得し、取得したネットワーク帯域を帯域計算部109に送る。
さらに帯域計算部109は、ネットワークモニタリング部112から、現在の業務帯域とプレフェッチの帯域とを取得する(ステップ702)。これによって、現在のネットワークの空き帯域を算出する(ステップ703)。
なお、業務帯域とは、ファイルキャッシュ装置11によって行われるプレフェッチ以外の通常の転送が用いるネットワーク帯域である。また、プレフェッチの帯域とは、プレフェッチに用いられるネットワーク帯域である。プレフェッチの帯域は、ネットワークの総帯域と業務帯域との差分よりも、小さくなければいけない。
ネットワークモニタリング部112は、要求生成部111から送信される要求が、プレフェッチであるかプレフェッチ以外であるかを判定し、業務帯域とプレフェッチの帯域とを算出する。
図17は、本発明の第1の実施形態の業務帯域とプレフェッチの帯域とを示す説明図である。ネットワークの総帯域1700から、業務帯域とプレフェッチの帯域とを差し引いた量が、空き帯域である。
一方帯域計算部109は、キャッシュ制御部108からファイルにアクセスするために必要な帯域である要求帯域を取得する(ステップ704)。
帯域計算部109は、ステップ303において算出した空き帯域と、ステップ704において取得した要求帯域を比較し、要求帯域が空き帯域を超えているか否かを判定する(ステップ703)。要求帯域が空き帯域を超えていると判定された場合、帯域計算部109は、空き帯域を超えない範囲で要求帯域を小さくする(ステップ706)。
ステップ705において、要求帯域が空き帯域を超えず、空き帯域よりも少ない場合、帯域計算部109は、キャッシュ制御部108から送信された要求帯域通りにプレフェッチをさせるため、ステップ707に移行する。
ステップ706又はステップ705において要求帯域が決まった後、帯域計算部109は、帯域予約部110に帯域の予約を依頼する(ステップ707)。その後、帯域予約部110は、要求帯域に従って、クライアント側のゲートウェイ12、ネットワーク13、又はファイルサーバ側のゲートウェイ14の帯域を予約する。
図16に示す処理は、図5に示すステップ212に相当する。
第1の実施形態によれば、アプリケーションによるデータの処理速度に従って帯域を制御し、かつ、業務帯域を圧迫しないことによって、ネットワーク13に過大な負荷をかけずに適切な速度によってプレフェッチすることが可能となる。
(第2の実施形態)
図18は、本発明の第2の実施形態のネットワーク構成を示すブロック図である。
本発明の第2の実施形態のファイルキャッシュ装置1811は、第1の実施形態のファイルキャッシュ装置11は、クライアントのPC10のアプリケーション又はOSなどのソフトウェアとして実装され、機能及び動作についても、第1の実施形態のファイルキャッシュ装置11と同じである。
なお、第2の実施形態においては1811をクライアントのPC10内に実装したが、本発明のファイルキャッシュ装置は、WANアクセラレータ、ルータ、又はスイッチなどのハードウェア製品、及び、アプリケーション、又は、OSなどのソフトウェア製品にも適用可能である。
10 クライアントのPC
11 ファイルキャッシュ装置
12 クライアント側のゲートウェイ
13 ネットワーク
14 ファイルサーバ側のゲートウェイ
15 ファイルサーバ
16 管理サーバ側のゲートウェイ
17 管理サーバ
20 制御部
21 スイッチ
22 インターフェイスカード
23 パケット処理部
24 パケット蓄積部
25 各種情報蓄積部
80 プロセッサ
90 メモリ
102 コマンド解析部
103 アクセスパターン解析部
104 時刻取得部
105 レスポンス生成部
106 アクセス場所予測部
107 帯域予測部
108 キャッシュ制御部
109 帯域計算部
110 帯域予約部
111 要求生成部
112 ネットワークモニタリング部
113 総帯域取得部
116 アクセスパターン
117 キャッシュ情報蓄積部

Claims (15)

  1. ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継する装置におけるファイルキャッシュの制御方法であって、
    前記ファイルサーバに格納されたファイルを一定の大きさの複数のブロックに分割し、
    前記クライアントからの前記ファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持し、
    前記保持されたデータを前記クライアントに提供し、
    前記データを取得した履歴を保持し、
    前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出し、
    前記算出された単位時間あたりに必要とするデータ量に基づいて、前記クライアントが必要とするブロックを、前記ファイルサーバから先読みして保持し、
    前記先読みして保持されたブロックを前記クライアントから要求を受け、前記クライアントに提供することを特徴とするファイルキャッシュの制御方法。
  2. 前記履歴は、現在ファイルを要求している部位の情報を含み、
    前記部位に基づいて、前記クライアントから次に要求されるブロックを推定し、
    前記クライアントが必要とするブロックは、前記推定されたブロックであることを特徴とする、請求項1に記載のファイルキャッシュの制御方法。
  3. 前記通信が行われるネットワークの空き帯域を取得し、
    前記取得した空き帯域が、前記算出された単位時間あたりに必要とするデータ量を満たさない場合、前記先読みは、前記取得した空き帯域によって算出される単位時間あたりのデータ量以下の速度で行われることを特徴とする請求項2に記載のファイルキャッシュの制御方法。
  4. 前記算出された単位時間あたりに必要とするデータ量を満たす帯域を、前記ネットワークにおいて予約して前記先読みを行うことを特徴とする請求項2に記載のファイルキャッシュの制御方法。
  5. 前記クライアントからのデータ要求は少なくとも、
    前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
    を含むことを特徴とする請求項1に記載のファイルキャッシュの制御方法。
  6. 前記データを取得した履歴は少なくとも、
    前記データの取得開始時間、前記データの取得終了時間と、前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
    を含むことを特徴とする請求項5に記載のファイルキャッシュの制御方法。
  7. 前記クライアントからのデータ要求は、CIFSによって規定されるフォーマットを含むパケットによるものであることを特徴とする請求項6に記載のファイルキャッシュの制御方法。
  8. ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継する装置であって、
    前記ファイルサーバに格納されたファイルを一定の大きさの複数のブロックに分割し、
    前記クライアントからの前記ファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持し、
    前記保持されたデータを前記クライアントに提供し、
    前記データを取得した履歴を保持し、
    前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出し、
    前記保持された履歴に基づいて、前記クライアントから次に要求されるブロックを推定し、
    前記算出された単位時間あたりに必要とするデータ量に基づいて、前記推定されたブロックを前記ファイルサーバから先読みして保持し、
    前記先読みして保持されたブロックを前記クライアントから要求を受け、前記クライアントに提供することを特徴とする装置。
  9. 前記通信が行われるネットワークの空き帯域を取得し、
    前記取得した空き帯域が、前記算出された単位時間あたりに必要とするデータ量を満たさない場合、前記先読みは、前記取得した空き帯域によって算出される単位時間あたりのデータ量以下の速度で行われることを特徴とする請求項8に記載の装置。
  10. 前記算出された単位時間あたりに必要とするデータ量を満たす帯域を、前記ネットワークにおいて予約して、前記先読みを行うことを特徴とする請求項8に記載の装置。
  11. 前記クライアントからのデータ要求は少なくとも、
    前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
    を含み、前記データを取得した履歴は少なくとも、
    前記データの取得開始時間、前記データの取得終了時間と、前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
    を含むことを特徴とする請求項8に記載の装置。
  12. ネットワーク上の装置をして、ファイルサーバと、前記ファイルサーバにデータを要求するクライアントとの通信を介して中継させるプログラムであって、
    前記ファイルサーバに格納されたファイルを一定の大きさの複数のブロックに分割し、
    前記クライアントからの前記ファイルの一部分についてデータの要求を受け、前記データを前記ファイルサーバから取得して保持するステップと、
    前記保持されたデータを前記クライアントに提供するステップと、
    前記データを取得した履歴を保持するステップと、
    前記保持された履歴に基づいて、前記クライアントが単位時間あたりに必要とするデータ量を算出するステップと、
    前記保持された履歴に基づいて、前記クライアントから次に要求されるブロックを推定するステップと、
    前記算出された単位時間あたりに必要とするデータ量に基づいて、前記推定されたブロックを前記ファイルサーバから先読みして保持するステップと、
    前記先読みして保持されたブロックを前記クライアントから要求を受け、前記クライアントに提供するステップを備えることを特徴とするプログラム。
  13. 前記通信が行われるネットワークの空き帯域を取得させるステップと、
    前記取得した空き帯域が、前記算出された単位時間あたりに必要とするデータ量を満たさない場合、前記先読みは、前記取得した空き帯域によって算出される単位時間あたりのデータ量以下の速度で行うことを特徴とする請求項12に記載のプログラム。
  14. 前記算出された単位時間あたりに必要とするデータ量を満たす帯域を、前記ネットワークにおいて予約して、前記先読みを行わせるステップを備える請求項12に記載のプログラム。
  15. 前記クライアントからのデータ要求は少なくとも、
    前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
    を含み、前記データを取得した履歴は少なくとも、
    前記データの取得開始時間、前記データの取得終了時間と、前記ファイルサーバの特定情報、前記ファイルの前記ファイルサーバ上における位置特定情報、前記ファイル上における前記データの開始位置、前記データのサイズ、
    を含むことを特徴とする請求項12に記載のプログラム。
JP2010055552A 2010-03-12 2010-03-12 ファイルキャッシュの管理方法、装置、及び、プログラム Expired - Fee Related JP5192506B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010055552A JP5192506B2 (ja) 2010-03-12 2010-03-12 ファイルキャッシュの管理方法、装置、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010055552A JP5192506B2 (ja) 2010-03-12 2010-03-12 ファイルキャッシュの管理方法、装置、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2011191856A JP2011191856A (ja) 2011-09-29
JP5192506B2 true JP5192506B2 (ja) 2013-05-08

Family

ID=44796732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010055552A Expired - Fee Related JP5192506B2 (ja) 2010-03-12 2010-03-12 ファイルキャッシュの管理方法、装置、及び、プログラム

Country Status (1)

Country Link
JP (1) JP5192506B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886752B2 (en) * 2011-11-21 2014-11-11 Sony Computer Entertainment America System and method for optimizing transfers of downloadable content
JP2013218505A (ja) * 2012-04-09 2013-10-24 Hitachi Ltd クライアントとサーバ間の通信を中継する通信装置及び通信システム
JP6515761B2 (ja) * 2015-09-24 2019-05-22 富士通株式会社 中継装置、中継方法、及び中継プログラム
CN107819804B (zh) * 2016-09-14 2021-03-16 先智云端数据股份有限公司 云端储存设备系统及决定其架构的高速缓存中数据的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6868439B2 (en) * 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US7617256B2 (en) * 2004-07-19 2009-11-10 Microsoft Corporation Remote file updates through remote protocol
JP4320444B2 (ja) * 2005-03-25 2009-08-26 日本電気株式会社 データ配布システム、データ配布方法、及びデータ配布プログラムならびにプログラム記録媒体
JP4345828B2 (ja) * 2007-03-09 2009-10-14 日本電気株式会社 プロキシサーバ及びプロキシ制御プログラム

Also Published As

Publication number Publication date
JP2011191856A (ja) 2011-09-29

Similar Documents

Publication Publication Date Title
US8745262B2 (en) Adaptive network content delivery system
EP2359536B1 (en) Adaptive network content delivery system
US8612668B2 (en) Storage optimization system based on object size
EP3089039B1 (en) Cache management method and device
US8086634B2 (en) Method and apparatus for improving file access performance of distributed storage system
US8463846B2 (en) File bundling for cache servers of content delivery networks
US9462077B2 (en) System, method, and circuit for servicing a client data service request
US20060112155A1 (en) System and method for managing quality of service for a storage system
KR20120102664A (ko) 미래 사용 추정에 기반한 저장 메모리 할당
CN107430551B (zh) 数据缓存方法、存储控制装置、及存储设备
CN107864391B (zh) 视频流缓存分发方法及装置
JP5192506B2 (ja) ファイルキャッシュの管理方法、装置、及び、プログラム
KR100671635B1 (ko) 스트리밍 미디어 서비스 관리 방법
CN106657182B (zh) 云端文件处理方法和装置
US20200169598A1 (en) Transmitting data including pieces of data
JP5798523B2 (ja) 通信制御システム、集約サーバおよび通信制御方法
JPH10124396A (ja) バッファ交換方法
CN114651433A (zh) 云存储中访问模式驱动的数据放置
US6915386B2 (en) Processing service level agreement (SLA) terms in a caching component of a storage system
JP2002259197A (ja) アクティブコンテンツキャッシュ制御システムと、アクティブコンテンツキャッシュ制御装置及び方法と、アクティブコンテンツキャッシュ制御処理用プログラム及びそのプログラムの記録媒体
CN104333803B (zh) 防止视频编辑时丢帧的方法、设备及系统
JP5494363B2 (ja) ファイル管理プログラム,ファイル管理方法およびファイル管理装置
JP2005508114A (ja) 家庭用ビデオ・サーバのための受入れ制御システム
JP2010097568A (ja) 情報処理システム及び情報処理システムの運用方法
KR100594951B1 (ko) Ns 카드를 이용한 컨텐츠 전송 방법

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130131

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees