JP3142101B2 - バッファ管理システム及び方法 - Google Patents

バッファ管理システム及び方法

Info

Publication number
JP3142101B2
JP3142101B2 JP06039609A JP3960994A JP3142101B2 JP 3142101 B2 JP3142101 B2 JP 3142101B2 JP 06039609 A JP06039609 A JP 06039609A JP 3960994 A JP3960994 A JP 3960994A JP 3142101 B2 JP3142101 B2 JP 3142101B2
Authority
JP
Japan
Prior art keywords
file
buffer
read
server
file server
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
JP06039609A
Other languages
English (en)
Other versions
JPH06314223A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06314223A publication Critical patent/JPH06314223A/ja
Application granted granted Critical
Publication of JP3142101B2 publication Critical patent/JP3142101B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般に1個または複数の
ファイルサーバ・サブシステムを有する電子コンピュー
タ・システムに関し、特にファイルサーバの一時記憶装
置(すなわちファイルサーバ・バッファ)の管理に関す
る。これはソフトウェアにより管理されるこうしたファ
イルサーバ・バッファ(例えばファイルサーバ内の通常
のメモリ・キャッシュ)だけでなく、ハードウェアによ
り管理されるバッファ(例えばファイルサーバに接続さ
れるディスク記憶ユニットの制御装置内のキャッシュ)
にも関する。より詳細には、本発明はクライアント・サ
ーバ環境における最高(すなわち最速)レベルのファイ
ルサーバ一時記憶の管理に関する。
【0002】
【従来の技術】ファイルサーバはユーザ・プログラム及
びデータ・ファイルを記憶するコンピュータ・システム
である。これらは、通常、コンピュータ・ネットワーク
に接続され、ユーザ(すなわちクライアント)はネット
ワークを介してファイルをアクセスすることが可能とな
る。こうした環境は一般にクライアント・サーバ環境と
呼ばれる。
【0003】一般に、ファイルサーバはファイルを記憶
するためにディスクを使用する。ディスク上のデータを
アクセスまたは更新するために要する時間は、全体的な
ファイルサーバ性能の重要な要素となる。性能を改良す
るために、ファイルサーバは通常は、ファイルサーバ・
システムのメモリ・バッファ(本明細書では "ファイル
サーバ・バッファ" と称する)内に幾つかのファイルの
幾つかの部分(または幾つかの完全なファイル)を保持
する。これらのファイルサーバ・バッファは、ファイル
サーバ・コンピュータ・システムの主メモリに存在する
これらのバッファだけでなく、ディスク・ドライブまた
はコンピュータ・システム内の他のハードウェア・コン
ポーネント内に存在するバッファも含む。どのデータを
ファイルサーバ・バッファに記憶するかを決定するため
に、ファイルサーバにより使用される手法及び機構を、
本明細書ではファイルサーバ・バッファ管理ポリシとし
て参照する。一般に、クライアントによりファイルサー
バから所望されるファイル(またはファイルの一部)
が、そのファイルサーバの最高レベル(従って最速)の
バッファ内で見い出される確率を最大化するファイルサ
ーバ・バッファ管理ポリシを採用することが望ましい。
【0004】クライアント・サーバ環境におけるクライ
アントは、それら自身の局所コンピュータ・システムま
たはある中間コンピュータ・システム(本明細書では一
般に"クライアント・バッファ"と称する)のバッファ内
でアクセスするファイルの全部または一部のコピーを保
持する。クライアント・バッファはファイルサーバ・シ
ステムへのアクセスを排除する(すなわちフィルタ・ア
ウトする)効果を有し、それによってクライアントのフ
ァイル・アクセスが、代わりにクライアント・バッファ
で満足される。これにより、クライアント・サーバ環境
において使用されるバッファ管理アルゴリズムは、理想
的には、従来の環境において、通常、使用されたバッフ
ァ管理アルゴリズムと異なるべきであるにも関わらず、
これまで実施されてこなかった。
【0005】従来環境(及びクライアント・サーバ環
境)において現在使用される最も一般的なバッファ管理
ポリシは、最長未使用(LRU:Least Recently Use
d) アルゴリズムである。ファイルサーバ・バッファが
B個のブロックを保持するのに十分な大きさを持ち、L
RUバッファ管理ポリシがファイルサーバによって使用
される場合、最も最近に参照されたB個のブロックがフ
ァイルサーバ・バッファ内に保持される。別の一般的に
使用されるアルゴリズムにクロック・アルゴリズムがあ
り、これはある所定の時間間隔内に1度も参照されない
ブロックを廃棄する。
【0006】これらの既知のアルゴリズム及びそれらの
変形のいずれもが、特にクライアント・サーバ環境用に
設計されておらず、こうした環境の特殊な特性を利用し
ていない。クライアント・サーバ環境においては、クラ
イアントは自身の局所バッファ内に見い出されない場合
に限り、ファイルサーバからページ(またはブロック)
の読出し要求を発行する。その結果、クライアント・バ
ッファは、ユーザの私的ファイルに対する読出し要求を
フィルタ・アウト(filter out)する傾向がある。なぜ
なら、これらのファイルは頻繁に参照される傾向があ
り、それ故にクライアント・バッファ内に見い出される
からである。しかしながら、これらのファイルに対する
数多くの更新は、損失に対する永久的に安全な記憶のた
めに、未だにファイルサーバに伝播されており、たとえ
クライアントがこれらのファイルを再度更新するのでは
なく直ちに要求する可能性が低い場合にも、LRU及び
クロック・アルゴリズムによりファイルサーバ・バッフ
ァにルーチン的に保存されている。従って、ファイルサ
ーバにおけるバッファにおいて、これらのファイルをキ
ャッシュ記憶することはあまり有用ではない。それに比
較して、読出し専用ファイルは非常に多くのクライアン
トにより共用される傾向があるため、例えこれらがクラ
イアント・ファイルが更新されるよりも少ない頻度で少
なく読出されるとしても、ファイルサーバ・バッファに
おいてこれらのファイルをキャッシュすることはより有
用である。
【0007】"Load Balancing in a Multi-server Envi
ronment by DistributingOperations on Mostly-Read F
ilesets over the Servers"(IBM TechnicalDisclosure
Bulletin、Vol.34、No.11(1992年4月)pp.14
6-147) においては、最も多く読出されるファイル及び
読出し書込みされるファイルが、クライアント・サーバ
環境において異なるアクセス特性を有することを認識し
ており、最も読出されるファイルに関してのみファイル
サーバ上でのアクセス動作を分散することにより、複数
のファイルサーバ上でのロードを均衡させることを提案
している。しかしながら、ファイルサーバにおけるバッ
ファ管理の改良に関しては提案されていない。
【0008】
【発明が解決しようとする課題】本発明の目的は、クラ
イアント・サーバ環境における効率的なファイルサーバ
・バッファ・マネージャを提供することである。
【0009】本発明の別の目的は、従来のバッファ管理
ポリシに比較して、ファイルサーバへの読出しアクセス
において高いヒット率を生成する、ファイルサーバにお
けるバッファ管理ポリシを提供することである。
【0010】更に本発明の別の目的は、ファイルサーバ
・バッファにおいて、大部分の時間を通じて読出される
ブロック(またはページ)に対して、しばしば更新され
るブロック(またはページ)よりも、ファイルサーバ内
に留まる高い優先度を与える、ファイルサーバ・バッフ
ァ・マネージャを提供することである。
【0011】更に本発明の別の目的は、アクセス動作
(すなわち読出し/書込み)統計にもとづき、ファイル
を分類することである。
【0012】更に本発明の別の目的は、ファイルの各こ
うした類別に対して、別々のバッファ管理ポリシを提供
することである。
【0013】更に本発明の別の目的は、ファイルサーバ
の最高記憶レベルを効率的に区分し、各ファイルの類別
に1区分を効率的に割当てることにより、このような個
別のバッファ管理ポリシを実施することである。
【0014】
【課題を解決するための手段】これらの目的及び特徴
が、本発明により、関連ファイルをファイルセットにグ
ループ化し、各ファイルセットに対するファイルサーバ
・アクセス動作(すなわち読出し及び書込み)統計を収
集し、ファイルセットを、類似のアクセス動作統計を有
する複数のファイルセットの類別(category:カテゴ
リ)に分類し、異なるファイルセット類別の各々から、
ブロック(またはページ)に対する異なるファイルサー
バ・バッファ管理ポリシをインプリメントすることによ
り、達成される。これらの類別の各々に適用されるバッ
ファ管理ポリシは、一般的に高い読出し、書込み比率を
有するファイルのブロック(またはページ)を、一般的
に高い優先度を生成するように設計して、ファイルサー
バ・バッファ内に保存する。
【0015】好適には、読出しアクセス動作及び書込み
アクセス動作の数が、(所定の期間において)各ファイ
ルセット毎に収集され、次にマッピング機能により、所
定のカウント機能に従い、ファイルセットに類別を割当
てる。好適な実施例では、各ファイルセットにおける合
計アクセス(読出し+書込み)に対する読出しアクセス
の比率(本明細書では読出し/書込み比率または単に読
出し比率と称したりする)が計算される。0乃至1の読
出し/書込み比率の範囲が次に細分化され、細分化され
た(すなわち区分された)範囲の同一部分内の読出し/
書込み比率を有する全てのファイルセットが、同一のフ
ァイルセット類別に割当てられる。
【0016】読出し/書込み比率が最も高い範囲のファ
イルセットの類別は、この類別にあるファイルが、通
常、読出されしばしば更新されることがないことを示す
アクセス動作統計を有するファイルセット類別に相当す
る。ファイルサーバ・バッファ記憶内にこうしたファイ
ルのブロック(またはページ)を保存することを奨励す
るバッファ管理ポリシが、この類別のファイルセットに
適用される。
【0017】読出し/書込み比率が最も低い範囲のファ
イルセットの類別は、この類別のファイルがしばしば更
新されるが、頻繁に読出されることがないことを示すア
クセス動作統計を有するファイルセットに対応する。フ
ァイルサーバ・バッファ記憶内のこうしたファイルのペ
ージ(またはブロック)の置換を奨励するバッファ管理
ポリシが、この類別のファイルセットに適用される。
【0018】中間範囲の読出し/書込み比率を有するフ
ァイルセットの類別は、この類別のファイルが時々更新
され、時々読出されるアクセス動作統計を有するファイ
ルセットに対応する。前述の2つのバッファ管理ポリシ
の中間に相当するバッファ管理ポリシが、こうしたファ
イルセットの類別に適用される。
【0019】いくつかのファイルセットの類別はファイ
ルサーバのバッファ資源への保存を奨励し、また他のフ
ァイルセットの類別は多くの異なる方法による置換を奨
励するように、バッファ資源が管理される。好適な実施
例では、ファイルサーバ・バッファ資源が複数のバッフ
ァ・プールに効果的に分割され、各プールは単一のファ
イルセット類別の異なるファイル・ブロック(またはペ
ージ)を記憶するために使用される。これは各バッファ
・プールが同一の置換アルゴリズムを使用して管理され
る時にも、各ファイルセット類別に対して、異なるバッ
ファ管理ポリシを自動的に生成及びインプリメントす
る。例えば、実施例では、各バッファ・プールを管理す
るために同一のLRUアルゴリズムが使用される。
【0020】最も低い読出し/書込み比率のファイルセ
ット類別では、そのファイルセット類別のサイズに関し
(またはより正確には、そのファイルセット類別におい
て経験されるまたは期待される活動の量に関し)、単に
そのファイルセット類別に割当てられるバッファ・プー
ルを適切に小さくすることにより置換を奨励し、それに
より置換が頻繁に発生する。究極的には、置換に最も好
都合なこの類別に対応するバッファ・プールが完全に排
除され、この類別のファイルのファイルサーバ・バッフ
ァ記憶への保存が全く発生しない。
【0021】それとは逆に、最も高い読出し/書込み比
率を有するファイルセット類別では、そのファイルセッ
ト類別のサイズまたは予想される活動の量に関し、その
ファイルセット類別に対応するバッファ・プールを適切
に大きくすることにより保存を奨励する。
【0022】代わりに、単一のファイルサーバ・バッフ
ァ・プールに適用されるLRUポリシの下でも、こうし
た優先機構は、ブロック(またはページ)を優先順位に
より決定される位置のLRUスタックに挿入することに
より、効果的に達成される。(そのブロックのファイル
セットの類別の結果、)保存に対する低い優先順位を有
するブロックは、それをスタックの上部ではなく下部に
近い方に挿入することにより、事前に効果的に配置さ
れ、それによってスタックの上部または上部近辺に挿入
される場合よりも、より迅速に置換される。
【0023】単一のファイルサーバ・バッファ・プール
において使用される汎用クロック・ポリシ(例えばV.N
icola、A.Dan及びD.Diasによる"Analysis of theGene
ralized Clock Buffer Replacement Scheme for Databa
se TransactionProcessing"(ACM SIGMETRICS Conferen
ce、1992)に記載)の下においては、低い優先順位のフ
ァイルセット類別のブロックに、低い値の初期重みが与
えられる。
【0024】
【実施例】以下に示す説明では、クライアント・サーバ
環境が、それぞれが独自の局所バッファを有する複数の
クライアント、及びディスクが接続される1個または複
数のサーバから構成されるものと仮定する。全てのクラ
イアントにより更新されるブロックは、ディスクへ最終
的に伝播されるようにサーバ・バッファに伝播される。
各クライアントは、そのクライアントの局所バッファ内
にブロックが見い出されない場合、適切なサーバからブ
ロックを要求する。ファイルはまたファイルセットと称
されるセットにグループ化されるものとする。ファイル
セットは予め定義されるか、各ファイルが別のファイル
セットと見なされる。
【0025】図1は本発明が組込まれるクライアント・
サーバ・システムのハイレベル・ブロック図である。ク
ライアント160はネットワーク165を介して、サー
バ170に読出し要求及び書込み要求を送信する。読出
し要求及び書込み要求は全て、ファイルID及びブロッ
クIDが従来のように獲得または導出されるアドレスを
含む。サーバは読出し要求に応答して、高レベル記憶部
(すなわちバッファ)120からデータを返却する(或
いは必要に応じ、それを低レベル記憶部110からフェ
ッチする)。書込み要求時には、サーバは高レベル記憶
部120を介して、書込みを低レベル記憶部110に伝
播する。
【0026】ファイルセットのアクセス動作統計はブロ
ック125で収集される。好適にはブロック125は、
各ファイルセットに対する全ての読出し要求及び書込み
要求をカウントする。収集されたファイルセットのアク
セス動作統計(好適には、ある経過時間枠(past time
window)における各ファイルセットへの読出しカウント
及び書込みカウント)がブロック130により周期的に
使用され、ファイルセット類別(category:カテゴリ)
が各ファイルセット(またはある経過時間枠の間に十分
活動状態であったファイルセットだけ)に割当てられ
る。各ファイルセットに対応する現ファイルセット類別
がルックアップ・テーブル140に記憶される。ブロッ
ク130は、ファイルセット類別の割当て変更(すなわ
ち再割当て)だけをルックアップ・テーブル140に送
信することが可能であり、或いは現ファイルセット・ア
クセス動作統計を有する全てのファイルセット類別の割
当てを送信できる。現ファイルセット・アクセス動作統
計を有さないファイルセットに対応するファイルセット
類別については、それが最後に現ファイルセット・アク
セス統計を有した時と同じ状態を維持するか、或いは省
略時のファイルセット類別に戻される。
【0027】図1において、ファイルセットは3つの類
別に分類され、それぞれ類別1、類別2、及び類別3と
称される。しかしながら、2つのまたは4つ以上の類別
の存在も可能である。類別1はバッファ使用度が低いフ
ァイルセットを含む。類別2及び類別3は、それぞれ、
バッファ使用度が中間及び高いファイルセットを含む。
類別1のファイルは第1のバッファ管理ポリシ(類別1
ポリシと称する)によりバッファ記憶内で管理され、こ
れはこの類別1に含まれるファイルに対して、低バッフ
ァ使用特性を提供する。類別2及び3のファイルは、第
2及び第3のバッファ管理ポリシ(それぞれ類別2ポリ
シ及び類別3ポリシと称する)によりバッファ記憶内に
管理され、これらは類別2及び類別3に含まれるファイ
ルに対して、それぞれ中間及び高バッファ使用特性を提
供する。類別1ポリシはブロック145によりインプリ
メントされ、類別2及び類別3ポリシはそれぞれブロッ
ク150及び155によりインプリメントされる。
【0028】各ファイル・アクセス要求(読出しまたは
書込み)において、その要求に対応するファイルIDが
マッピング・テーブル170に送信され、これがファイ
ルセットIDを決定し、それを読出し及び書込みカウン
タ・ブロック125及びルックアップ・テーブル140
に送信する。ルックアップ・テーブル140は次に、フ
ァイルセットIDに対応するファイルセット類別(1、
2または3)を決定し、対応するブロック145、15
0または155を活動化することにより、対応するバッ
ファ管理ポリシを、そのアクセス要求によりカバーされ
るブロックに適用する。ファイルセットIDが代わりに
クライアントによりブロック要求内に提供されたり、或
いは直接ファイルID内のビットから抽出される(また
はファイルID自身である)ことも可能である。
【0029】本発明は更に、ファイルセットのP個の類
別及びP個のバッファ管理ポリシをインプリメントする
一般的な具体例について述べる(図2)。Pは3(図1
の場合)または1よりも大きい他の整数である。合計サ
イズがBのサーバ・バッファがP個の区分に分割され
る。各区分230乃至240はバッファ・プール(プー
ル1からプールP)と称され、これらのバッファ・ルー
プは一般にそのサイズが等しくなく、個別に効果的に管
理される。これらのバッファ・プールの各々は、特定の
バッファ管理類別に割当てられるファイルセット内のフ
ァイル・ブロックをバッファリング(すなわち一時記
憶)するために使用される。相対的なバッファ使用レベ
ルは、(例えば図1のブロック130により)各ファイ
ルセットに割当てられるファイルの相対数の制御を通じ
て、或いは各バッファ・プールの相対サイズにより、間
接的に制御することもできる。図2に示されるこれらの
バッファ・プール及びそれらのディレクトリ250は、
図1に示される最高レベル・サーバ記憶部120の詳細
図と見なすことができる。
【0030】図3のテーブル310は図1のルックアッ
プ・テーブル機能140をインプリメントする。クライ
アントからのブロック・アクセスの要求が生成される
と、要求内のファイルIDがテーブル170(図1)に
より使用され、対応するファイルセットIDに相当する
Fi が見い出され、これが次に対応するバッファ・プー
ル管理類別(または本実施例では特定のバッファ・プー
ルIDに相当するBPi)を識別するテーブル310内
の特定のエントリ312を見い出すために使用される。
【0031】ファイルIDのfi及びブロックIDのBi
がディレクトリ250内のエントリをアクセスするため
に使用され、これが入来要求により指定されるブロック
を含むバッファ・フレームのアドレスを返却する。各フ
ァイルセットに対するバッファ・プール割当ては動的に
変化し、それにより、1つのブロックがバッファリング
された後、他のブロックがバッファリングされる前に、
バッファ・プール割当て(すなわちバッファ管理類別割
当て)が変化する場合に、同じファイルセットからの異
なるブロックが異なるバッファ・プールに存在すること
が可能となる。図2のディレクトリ・エントリ210及
び220は、同一ファイルfi((fi、Bj)及び(f
i、Bk)で示される)のファイルセット・ブロックBj
及びBk が、それぞれバッファ・プールのプールP及び
プール1にマッピングされる様子を表す。しかしなが
ら、同一のファイルセット・ブロックが複数のバッファ
・プールに複製されることはない。従って、全てのバッ
ファ・プールはルックアップ用に同一のディレクトリを
共用する。
【0032】テーブル310はまた現バッファ・プール
割当てBPi だけでなく、各ファイルセットFi に対応
するファイル・アクセス統計を保持する。各ファイルセ
ットに対して、テーブル310は図3のブロック310
に示されるように、読出しカウントrci、書込みカウ
ントwci、及び読出し比率rri を保持する。本実施
例では、一般性を失うことなく、図1のブロック125
及び140がテーブル310として結合できる。読出し
カウントまたは書込みカウントは毎アクセス動作後に更
新され、現バッファ・プール割当て及び読出し比率は、
後述のように周期的にのみ更新される。ファイルセット
が割当てられるバッファ・プール、すなわち図1のブロ
ック130のマッピング機能は、その読出し比率に依存
する。ファイルセットの読出し比率は、ある経過時間枠
(past time window)におけるこのファイルセットに対
するアクセス要求(すなわち読出し+書込み)の合計回
数に対する読出し要求回数の比率として定義される。
【0033】図4を参照すると、ブロック403に示さ
れるように、ファイルセットFi のブロックBjに対す
る各読出し要求または書込み要求時に、Fiに対応する
現バッファ・プール割当てBPi を獲得するために、フ
ァイル・アクセス統計テーブル(テーブル310)が最
初に使用される。ファイルサーバが次にディレクトリ2
50を使用し、所望のブロックBj の実際のロケーショ
ンを見つけ出す(ブロック406)。これにはこのブロ
ックが配置される実際のバッファ・プールBPkの識別
が含まれる。ファイルサーバは次に、このブロックが実
際に配置されるバッファ・プールBPkが現バッファ・
プールBPiと同一のバッファ・プールであるか否かを
確認する(ブロック409)。このブロックがBPi で
ない場合、図4のブロック410に示されるように、ブ
ロックがBPkからBPiに転送される。これはバッファ
・プールBPk 内に空の(無効な)ロケーションを生成
し、これは新たなブロックを受信するためのバッファ・
プールBPk 内の好適なロケーションとなる。転送後、
ディレクトリが図4のステップ410に示されるように
更新される。ファイルサーバは次に、図4のステップ4
15に示されるように、アクセス動作が読出しアクセス
動作か、または書込みアクセス動作かをチェックし、図
4のブロック420及び430に示されるように、読出
しカウントまたは書込みカウントを増分する。
【0034】ステップ406のディレクトリ・ルックア
ップが失敗の場合、すなわちブロックがバッファ・プー
ル内に見い出されない場合、図4のステップ450に示
されるように、ファイルサーバはディスクからブロック
を取出し、それをバッファ・プールBPi に挿入し、デ
ィレクトリ250を更新する。ファイルサーバは次に図
4のステップ415及びステップ420またはステップ
430のいずれかを介して、読出しカウンタ及び書込み
カウンタを更新する。
【0035】本実施例では、ファイルセットがファイル
セット・アクセス統計テーブル310内のエントリを持
たないこともある。これは例えば、ファイルセット・ア
クセス統計テーブル310がファイルセットの数よりも
小さく、ファイルセットが最近アクセスされなかった場
合に発生する。ファイルセット・アクセス統計テーブル
内にエントリが存在しない場合、ステップ403のルッ
クアップが失敗する。この場合、図4のブロック440
に示されるように、rri の値をあるデフォルト値にセ
ットし、読出しカウンタ及び書込みカウンタをゼロにセ
ットすることにより、そのファイルセットに対応して新
たなエントリが生成される。ファイルサーバは次に図4
のブロック450に移行し、ここでブロックがバッファ
・プールに挿入される。
【0036】次に、周期的に実行される動的バッファ・
プール割当て及び読出し比率予測の詳細について簡単に
述べる。ファイルサーバは最初に、図5のステップ50
5で、ファイルセットが非活動状態であったかどうかを
チェックし、ファイルセットが非活動状態であった場合
には脱出する。そうでない場合は、読出し比率rriが
再計算される。ブロック510に示されるように、計算
されてテーブル310に記憶されるrriは、旧rriと
新たな読出し比率との加重平均(weightedaverage) と
することができる。読出し比率の各再計算の後、図5の
ブロック520でバッファ・プールが再割当てされる。
数学的には、これは1≦i≦Pに対してTi-1<Ti、且
つTP =1などのように、T1乃至TPに閾値を予め定義
することにより達成される。この時、j=1且つ0≦r
ri≦T1、またはj>1且つTj-1<rri<Tjならば
BPi=jである。
【0037】本欄のまとめとして、本発明の構成を以下
の通りに開示する。
【0038】1.ファイルサーバがファイルを記憶し、
クライアントによる高速アクセスのために、少なくとも
幾つかの該ファイルの少なくとも一部をキャッシュ記憶
するメモリ・バッファを有するクライアント・サーバ・
コンピュータ・システムにおける、該ファイルサーバの
バッファ管理システムであって、その一部が上記メモリ
・バッファに記憶される上記の各ファイルについて、少
なくとも対応するファイルサーバ読出し/書込み比率を
決定する手段と、複数の異なるバッファ管理ポリシを定
義する手段と、上記決定されたファイルサーバ読出し/
書込み比率に応答して、特定の上記バッファ管理ポリシ
を、対応する上記各ファイルに割当てる手段と、上記各
ファイルに割当てられる特定のバッファ管理ポリシに従
って、上記メモリ・バッファ内に記憶される各ファイル
の部分を管理する手段と、を含むバッファ管理システ
ム。
【0039】2.ファイルをファイルセットにグループ
化する手段を含み、上記決定手段が、該ファイルセット
内の任意のファイルに対する読出し要求回数、及び書込
み要求回数をカウントする手段を含む、上記1.に記載
のバッファ管理システム。
【0040】3.上記決定手段が、上記書込み要求カウ
ント回数及び上記読出し要求カウント回数の合計に対す
る、該読出し要求カウント回数の比率を計算する手段を
含む、上記2.に記載のバッファ管理システム。
【0041】4.上記カウント手段が周期的にゼロにリ
セットされる、上記2.に記載のバッファ管理システ
ム。
【0042】5.複数の異なるバッファ管理ポリシを定
義する上記定義手段が、上記メモリ・バッファを複数の
バッファ・プールに区分し、上記割当て手段が、その一
部が該メモリ・バッファに記憶される上記各ファイル
に、特定のバッファ・プールを割当てる、上記1.に記
載のバッファ管理システム。
【0043】6.上記管理手段が、上記各ファイルの任
意の部分を、該ファイルに割当てられた上記バッファ・
プールの特定の1つに記憶する、上記5.に記載のバッ
ファ管理システム。
【0044】7.上記バッファ・プールが、各々同一の
アルゴリズムにより管理され、相対的に高い読出し/書
込み比率を有するファイルに割当てられたバッファ・プ
ール内に該ファイルの少なくとも一部が記憶される平均
時間が、相対的に低い読出し/書込み比率を有するファ
イルに割当てられたバッファ・プール内に該ファイルの
少なくとも一部が記憶される平均時間よりも長くなるよ
うに、各バッファ・プールの相対サイズを選択する、上
記6.に記載のバッファ管理システム。
【0045】8.上記複数の異なるファイルセット・バ
ッファ管理ポリシが、単一のLRUスタックを用い、そ
れぞれの該異なるファイルサーバ・バッファ管理ポリシ
に対応して、エントリを該スタック内の異なる位置に挿
入することにより実施される、上記1.に記載のバッフ
ァ管理システム。
【0046】9.ファイルサーバがファイルを記憶し、
クライアントによる高速アクセスのために、該ファイル
の少なくとも一部をキャッシュ記憶するメモリ・バッフ
ァを有するクライアント・サーバ・コンピュータ・シス
テムにおいて、該メモリ・バッファを管理する方法であ
って、複数の関連ファイルをファイルセットとしてグル
ープ化するステップと、上記各ファイルセットに対応す
るファイルサーバ・アクセス動作統計を収集するステッ
プと、上記ファイルセットを、類似のアクセス動作統計
を有する複数のファイルセット類別に分類するステップ
と、上記各ファイルセット類別内のファイルごとに異な
るファイルサーバ・バッファ管理ポリシを適用するステ
ップと、を含むバッファ管理方法。
【0047】10.上記の各ファイルセット類別に適用
されるファイルサーバ・バッファ管理ポリシが優先度を
生成し、相対的に高い読出し、書込み比率に対応するア
クセス動作統計を有するファイルの部分を上記メモリ・
バッファ内に保存する、上記9.に記載の方法。
【0048】
【発明の効果】以上説明したように、本発明によれば、
クライアント・サーバ環境において、クライアントによ
るファイルサーバへの読出しアクセスのヒット率が改良
される。
【図面の簡単な説明】
【図1】本発明によるクライアント・サーバ環境におけ
るファイルサーバ・バッファ・マネージャのブロック図
である。
【図2】アクティブ・ファイルに対応する様々なバッフ
ァ・プールに対するデータ・ブロックのマッピングを表
す図である。
【図3】アクセス・オペレーション統計を維持するため
に使用されるデータ構造、及び各ファイルセットに対応
して現在割当てられているバッファ・プールの識別子を
表す図である。
【図4】アクセス統計を収集し、ブロックを正しいバッ
ファ・プールに維持するためのハイレベル流れ図であ
る。
【図5】読出し比率を周期的に更新し、バッファ・プー
ルを再割当てするハイレベル流れ図である。
【符号の説明】
110 低レベル記憶部 120 高レベル記憶部 125 カウンタ・ブロック 140 ルックアップ・テーブル 160 クライアント 165 ネットワーク 170 サーバ 250 ディレクトリ 310 ファイルセット・アクセス統計テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アシット・ダン アメリカ合衆国10604、ニューヨーク州 ウェスト・ハリソン、ゲインスボーグ・ アベニュー 75 (72)発明者 ディンカー・シタラム アメリカ合衆国10598、ニューヨーク州 ヨークタウン・ハイツ、スプリングハー スト・ストリート 2756 (72)発明者 フィリップ・シ−ラン・ユ アメリカ合衆国10514、ニューヨーク州 チャパクア、ストーノウェイ 18 (56)参考文献 特開 平2−151944(JP,A) 特開 平4−237344(JP,A) 特開 昭59−220853(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】ファイルサーバがファイルを記憶し、クラ
    イアントによる高速アクセスのために、少なくとも幾つ
    かの該ファイルの少なくとも一部をキャッシュ記憶する
    メモリ・バッファを有するクライアント・サーバ・コン
    ピュータ・システムにおける、該ファイルサーバのバッ
    ファ管理システムであって、 その一部が上記メモリ・バッファに記憶される上記の各
    ファイルについて、少なくとも対応するファイルサーバ
    読出し/書込み比率を決定する手段と、 複数の異なるファイルサーバ・バッファ管理ポリシを定
    義する手段であって、上記メモリ・バッファを複数のバ
    ッファ・プールに区分するものと、 上記決定されたファイルサーバ読出し/書込み比率に応
    答して、特定の上記ファイルサーバ・バッファ管理ポリ
    シを、対応する上記各ファイルに割当てる手段と、 上記各ファイルに割当てられる特定のファイルサーバ・
    バッファ管理ポリシに従って、上記メモリ・バッファ内
    に記憶される各ファイルの部分を管理する手段とを含
    み、 上記バッファ・プールが、各々同一のアルゴリズムによ
    り管理され、相対的に高い読出し/書込み比率を有する
    ファイルに割当てられたバッファ・プール内に該ファイ
    ルの少なくとも一部が記憶される平均時間が、相対的に
    低い読出し/書込み比率を有するファイルに割当てられ
    たバッファ・プール内に該ファイルの少なくとも一部が
    記憶される平均時間よりも長くなるように、各バッファ
    ・プールの相対サイズを選択することを特徴とするバッ
    ファ管理システム。
  2. 【請求項2】ファイルサーバがファイルを記憶し、クラ
    イアントによる高速アクセスのために、該ファイルの少
    なくとも一部をキャッシュ記憶するメモリ・バッファを
    有するクライアント・サーバ・コンピュータ・システム
    において、該メモリ・バッファを管理する方法であっ
    て、 複数の関連ファイルをファイルセットとしてグループ化
    するステップと、 上記各ファイルセットに対応するファイルサーバ・アク
    セス動作統計を収集するステップと、 上記ファイルセットを、類似のアクセス動作統計を有す
    る複数のファイルセット類別に分類するステップと、 上記各ファイルセット類別内のファイルごとに異なるフ
    ァイルサーバ・バッファ管理ポリシを適用するステップ
    とを含み、 上記メモリ・バッファが各々同一のアルゴリズムにより
    管理される複数のバッファ・プールに区分され、相対的
    に高い読出し/書込み比率に対応するアクセス動作統計
    を有するファイルに割り当てられたバッファ・プール内
    に該ファイル部分が記憶される平均時間が、相対的に低
    い読出し/書込み比率に対応するアクセス動作統計を有
    するファイルに割り当てられたバッファ・プール内に該
    ファイル部分が記憶される平均時間よりも長くなるよう
    に、各バッファ・プールの相対サイズが選択されること
    を特徴とするバッファ管理方法。
JP06039609A 1993-04-30 1994-03-10 バッファ管理システム及び方法 Expired - Fee Related JP3142101B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US055422 1987-05-28
US08/055,422 US6088767A (en) 1993-04-30 1993-04-30 Fileserver buffer manager based on file access operation statistics

Publications (2)

Publication Number Publication Date
JPH06314223A JPH06314223A (ja) 1994-11-08
JP3142101B2 true JP3142101B2 (ja) 2001-03-07

Family

ID=21997690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06039609A Expired - Fee Related JP3142101B2 (ja) 1993-04-30 1994-03-10 バッファ管理システム及び方法

Country Status (2)

Country Link
US (1) US6088767A (ja)
JP (1) JP3142101B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6632507B2 (en) 1998-06-05 2003-10-14 Premark Rwp Holdings, Inc. Holographically enhanced decorative laminate
US6272598B1 (en) * 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6560632B1 (en) * 1999-07-16 2003-05-06 International Business Machines Corporation System and method for managing files in a distributed system using prioritization
US6654855B1 (en) * 2000-10-26 2003-11-25 Emc Corporation Method and apparatus for improving the efficiency of cache memories using chained metrics
US6631446B1 (en) * 2000-10-26 2003-10-07 International Business Machines Corporation Self-tuning buffer management
US6868516B1 (en) 2000-12-21 2005-03-15 Emc Corporation Method for validating write data to a memory
US6779150B1 (en) * 2000-12-21 2004-08-17 Emc Corporation CRC error detection system and method
US6748491B2 (en) * 2001-04-19 2004-06-08 International Business Machines Corporation Designing a cache using an LRU-LFU array
US6745295B2 (en) * 2001-04-19 2004-06-01 International Business Machines Corporation Designing a cache with adaptive reconfiguration
AU2002313583A1 (en) * 2001-08-01 2003-02-17 Actona Technologies Ltd. Virtual file-sharing network
US6859758B1 (en) * 2002-11-12 2005-02-22 Cisco Technology, Inc. Stress testing database storage
US7627587B2 (en) * 2003-09-25 2009-12-01 Unisys Corporation System and method for improving information retrieval from a database
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US20060074872A1 (en) * 2004-09-30 2006-04-06 International Business Machines Corporation Adaptive database buffer memory management using dynamic SQL statement cache statistics
JP2006134034A (ja) * 2004-11-05 2006-05-25 Murata Mach Ltd コンテンツデータ提供装置およびネットワークシステム
US7747627B1 (en) * 2005-12-09 2010-06-29 Cisco Technology, Inc. Method and system for file retrieval using image virtual file system
US7693884B2 (en) * 2006-01-02 2010-04-06 International Business Machines Corporation Managing storage systems based on policy-specific proability
US7720892B1 (en) * 2006-06-30 2010-05-18 Emc Corporation Bulk updates and tape synchronization
US8745315B2 (en) * 2006-11-06 2014-06-03 Rambus Inc. Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory
JP2008282428A (ja) * 2008-08-11 2008-11-20 Murata Mach Ltd コンテンツデータ提供装置およびネットワークシステム
JP2008269657A (ja) * 2008-08-11 2008-11-06 Murata Mach Ltd コンテンツデータ提供装置およびネットワークシステム
CN101799741A (zh) * 2009-02-09 2010-08-11 联想(北京)有限公司 存储数据读取装置和方法
US9933978B2 (en) 2010-12-16 2018-04-03 International Business Machines Corporation Method and system for processing data
US8935476B2 (en) * 2012-01-17 2015-01-13 International Business Machines Corporation Managing caching of extents of tracks in a first cache, second cache and storage
US8949491B1 (en) * 2013-07-11 2015-02-03 Sandisk Technologies Inc. Buffer memory reservation techniques for use with a NAND flash memory
US10521601B2 (en) * 2014-04-30 2019-12-31 Sailpoint Technologies, Israel Ltd. System and method for data governance
US11461677B2 (en) 2020-03-10 2022-10-04 Sailpoint Technologies, Inc. Systems and methods for data correlation and artifact matching in identity management artificial intelligence systems
US11308186B1 (en) 2021-03-19 2022-04-19 Sailpoint Technologies, Inc. Systems and methods for data correlation and artifact matching in identity management artificial intelligence systems
US11782851B2 (en) * 2021-09-01 2023-10-10 Micron Technology, Inc. Dynamic queue depth adjustment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3702006A (en) * 1971-06-09 1972-10-31 Ibm Method for balancing the utilization of input/output devices
US4463424A (en) * 1981-02-19 1984-07-31 International Business Machines Corporation Method for dynamically allocating LRU/MRU managed memory among concurrent sequential processes
US4422145A (en) * 1981-10-26 1983-12-20 International Business Machines Corporation Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool
JPS58203558A (ja) * 1982-05-21 1983-11-28 Hitachi Ltd 計算機・記憶装置へのフアイル割り当て方式
US4509119A (en) * 1982-06-24 1985-04-02 International Business Machines Corporation Method for managing a buffer pool referenced by batch and interactive processes
JPS59220853A (ja) * 1983-05-27 1984-12-12 Toshiba Corp デイスクキヤツシユシステム
GB2184267A (en) * 1985-12-13 1987-06-17 Hitachi Ltd File allocation
US4993030A (en) * 1988-04-22 1991-02-12 Amdahl Corporation File system for a plurality of storage classes
US5142670A (en) * 1988-07-26 1992-08-25 International Business Machines Corporation Method and apparatus for calculating disk-access footprints for use in selecting a storage management method
JPH02151944A (ja) * 1988-12-02 1990-06-11 Casio Comput Co Ltd データ処理装置
US5131087A (en) * 1988-12-29 1992-07-14 Storage Technology Corporation Computer system having apparatus for automatically redistributing data records stored therein
JPH04237344A (ja) * 1991-01-22 1992-08-25 Nec Corp データベース管理システムにおけるページ管理方式
US5305389A (en) * 1991-08-30 1994-04-19 Digital Equipment Corporation Predictive cache system
US5325505A (en) * 1991-09-04 1994-06-28 Storage Technology Corporation Intelligent storage manager for data storage apparatus having simulation capability

Also Published As

Publication number Publication date
JPH06314223A (ja) 1994-11-08
US6088767A (en) 2000-07-11

Similar Documents

Publication Publication Date Title
JP3142101B2 (ja) バッファ管理システム及び方法
US6385699B1 (en) Managing an object store based on object replacement penalties and reference probabilities
US20220091739A1 (en) Write type based crediting for block level write throttling to control impact to read input/output operations
US6745295B2 (en) Designing a cache with adaptive reconfiguration
US6507893B2 (en) System and method for time window access frequency based caching for memory controllers
US5675797A (en) Goal-oriented resource allocation manager and performance index technique for servers
US5893139A (en) Data storage device and storage method in which algorithms are provided for calculating access frequencies of data
US6792509B2 (en) Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US6944711B2 (en) Cache management method for storage device
US7404062B2 (en) System and method of allocating contiguous memory in a data processing system
US6961835B2 (en) System and method for autonomically reallocating memory among buffer pools
US7478216B2 (en) Method, system, and article of manufacture for returning physical volumes
CN101681268B (zh) 管理虚拟机存储器的系统、方法和程序
US7784053B2 (en) Management of virtual machines to utilize shared resources
US20100274826A1 (en) Method for clipping migration candidate file in hierarchical storage management system
JP4317531B2 (ja) 複数のメモリ・バッファ・サイズを均衡させるためのシステムおよび方法
US20020103975A1 (en) System and method for time weighted access frequency based caching for memory controllers
US20050262326A1 (en) Method, system, and article of manufacture for borrowing physical volumes
US20060136525A1 (en) Method, computer program product and mass storage device for dynamically managing a mass storage device
US6154813A (en) Cache management system for continuous media system
WO2002039284A2 (en) Systems and methods for management of memory
US20030105926A1 (en) Variable size prefetch cache
US20070079103A1 (en) Method for resource management in a logically partitioned storage system
CN1786928A (zh) 应用层高速缓存映像知晓和再分配的系统和方法
CN1786927A (zh) 应用层高速缓存映像知晓和再分配的系统和方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees