JP2003337727A - キャッシュ制御プログラム - Google Patents

キャッシュ制御プログラム

Info

Publication number
JP2003337727A
JP2003337727A JP2003067077A JP2003067077A JP2003337727A JP 2003337727 A JP2003337727 A JP 2003337727A JP 2003067077 A JP2003067077 A JP 2003067077A JP 2003067077 A JP2003067077 A JP 2003067077A JP 2003337727 A JP2003337727 A JP 2003337727A
Authority
JP
Japan
Prior art keywords
cache
extent
file
node
extents
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.)
Granted
Application number
JP2003067077A
Other languages
English (en)
Other versions
JP4299555B2 (ja
Inventor
Tomoaki Sato
友昭 佐藤
Kenji Tonami
健二 利波
Yuji Kato
裕二 加藤
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.)
Fujitsu Prime Software Technologies Ltd
Original Assignee
Fujitsu Prime Software Technologies 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 Fujitsu Prime Software Technologies Ltd filed Critical Fujitsu Prime Software Technologies Ltd
Priority to JP2003067077A priority Critical patent/JP4299555B2/ja
Publication of JP2003337727A publication Critical patent/JP2003337727A/ja
Priority to US10/748,659 priority patent/US7210021B2/en
Application granted granted Critical
Publication of JP4299555B2 publication Critical patent/JP4299555B2/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】オーバーヘッドの少ないキャッシュ制御プログ
ラムを提供すること。 【解決手段】ファイルサーバ機24のMBC機構42は
キャッシュ制御プログラムにて実現され、キャッシュメ
モリ44を複数のエクステントの集まりとして管理す
る。ディスク装置35のディスクブロックからオブジェ
クトが構成され、オブジェクトからファイルが構成され
る階層構造において、MBC機構42は、階層レベルと
同一階層レベル内のオブジェクト識別子からなるキャッ
シュIDを生成し、キャッシュIDとキャッシュ・エク
ステントの関連をキャッシュIDに特有なキーで保持す
るキャッシュ・ヘッダを管理するテーブルを階層毎に作
成する。そして、ディスク装置35の内容に対するアク
セスに応答してキャッシュ・ヘッダ・テーブルを、アク
セスするオブジェクトのキャッシュIDとキーで検索す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュ制御プロ
グラムに関するものである。ネットワークシステムに
は、ファイルの共有等を目的としてファイルサーバ機が
接続されている。ネットワークシステムに接続されたク
ライアント機は、ファイルサーバ機にアクセスすること
により、他のクライアント機で作成されたプログラムや
データを利用できる。近年、クライアント機の性能(処
理能力)の向上に伴い、ファイルアクセスの高速化、即
ちファイルサーバ機の能力向上が求められている。
【0002】
【従来の技術】図32は、ファイルサーバ機1における
ファイル記録の概念図である。ファイルサーバ機1はデ
ィスク装置2を有し、該ディスク装置2にファイル3を
格納する。詳しくは、ディスク装置2は、記録するデー
タを所定量のブロック毎に管理する。従って、ファイル
サーバ機1はファイル3を所定量のデータを含む複数の
ブロック4に分割し、各ブロック4を記憶位置等の情報
により管理する。そして、ファイルサーバ機1は、クラ
イアント機からの要望に応答して読み出した複数のブロ
ック4からなるファイル3をクライアント機へ送信し、
又はクライアント機から受け取ったファイルを複数のブ
ロックに分割してディスク装置2に記憶する。
【0003】ファイルサーバ機1は、データアクセスに
対する応答速度を高速化するためにキャッシュ機構を備
えている。キャッシュ機構は、クライアント機がアクセ
スしたデータ(ファイル)をディスク装置2に比べて入
出力速度が高速な記憶装置(一般的にはメモリ)に格納
しておき、同じデータに対する2回目以降のアクセスに
対してメモリから読み出したデータをクライアント機に
出力する。これにより、ディスク装置2に対するアクセ
スに要する時間に対応して応答速度を高速化している。
【0004】図33は、ファイルサーバ機1が持つ機能
を概略的に示すブロック図である。ファイルサーバ機1
は、通信制御機構11、ページキャッシュ機構12、フ
ァイルシステム13、バッファキャッシュ機構14、及
びブロックデバイス15を有している。通信制御機構1
1はクライアント機5との間のデータ転送に必要な通信
バッファ16を有している。ページキャッシュ機構12
とバッファキャッシュ機構14はそれぞれキャッシュメ
モリ17,18を有している。
【0005】ページキャッシュ機構12はクライアント
機5に対してファイルに対する入出力の効率を上げるた
めに設けられ、バッファキャッシュ機構14はディスク
装置2に対するブロック4の入出力の効率を上げるため
に設けられている。
【0006】クライアント機5から転送されたファイル
データは、通信バッファ16と2つのキャッシュメモリ
17,18を介してディスク装置2に格納される。詳述
すると、通信制御機構11はクライアント機5から送信
されたファイルデータを受け取り、それを通信バッファ
16に格納する。ファイルシステム13は、ファイルを
ファイルID等の情報によって管理する。ページキャッ
シュ機構12はファイルを構成する各ブロック4をキャ
ッシュメモリ17に格納し、それらブロック4をファイ
ルIDとブロックの位置を示すオフセットにより対応付
けている。
【0007】ファイルシステム13はファイルを格納す
るためにディスク装置2上の領域を確保し、デバイスブ
ロック4は指定されたディスク装置2に対してブロック
単位でアクセスする。バッファキャッシュ機構14は、
ディスク装置2に格納されるブロック4をキャッシュメ
モリ18に記憶し、それらブロック4をディスク装置2
のデバイスIDとディスク装置2におけるブロックの位
置を示すオフセットにより対応付けている。
【0008】図34は、ファイルサーバ機1におけるア
クセスの手順を示す説明図である。ファイルサーバ機1
は、ファイル3に対するアクセスに対して、該ファイル
3のファイルIDと、該ファイル3を構成する各ブロッ
ク4のオフセットによりキャッシュメモリ17をアクセ
スする。
【0009】キャッシュメモリ17に該当するブロック
が存在しない場合、ファイルサーバ機1はディスク装置
2をアクセスし、該ディスク装置2から読み出したブロ
ック4をバッファキャッシュ機構14が管理するキャッ
シュメモリ18と、ページキャッシュ機構12が管理す
るキャッシュメモリ17とに格納する。更に、ファイル
サーバ機1は、該ブロック4をファイル3(の一部)と
してクライアント機5に提供する。そして、バッファキ
ャッシュ機構14は読み出したブロック4を格納したキ
ャッシュメモリ18とディスク装置2の部分を関連付
け、ページキャッシュ機構12はキャッシュメモリ17
に格納されたブロック4とファイルの部分を関連付け
る。
【0010】
【発明が解決しようとする課題】ところで、上記のよう
に構成されたファイルサーバ機1では、ページキャッシ
ュ機構12が管理するキャッシュメモリ17と、バッフ
ァキャッシュ機構14が管理するキャッシュメモリ18
が必要である。そして、これら2つのキャッシュメモリ
17,18には実質的に同じブロック4が記憶されてい
る。このため、ファイルサーバ機1が仕様として持つキ
ャッシュメモリの容量に対して2倍のキャッシュメモリ
(2つのキャッシュメモリ17,18)が必要となる。
【0011】更に、両キャッシュメモリ17,18の内
容を実質的に同一にしなければならないため、データを
コピーする必要がある。また、ページキャッシュ機構1
2が管理するキャッシュメモリ17と通信バッファ16
の間でも同様にデータをコピーする必要がある。これら
のデータコピーは、ファイルサーバ機1の入出力動作に
対するオーバーヘッドとなり、入出力特性(応答速度)
を遅くする。
【0012】本発明は上記問題点を解決するためになさ
れたものであって、その目的はオーバーヘッドの少ない
キャッシュ制御プログラムを提供することにある。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の発明のように、前記ファイル制御
装置は、前記キャッシュ領域を複数のエクステントの集
まりとして管理し、一次オブジェクトから二次オブジェ
クトが構成され、二次オブジェクトから三次オブジェク
トが構成されるような階層構造において、階層レベルと
同一階層レベル内のオブジェクト識別子からなるキャッ
シュIDを生成し、前記キャッシュIDとキャッシュ・
エクステントの関連をキャッシュIDに特有なキーで保
持するキャッシュ・ヘッダを管理するテーブルを階層毎
に作成し、前記ディスク装置の内容に対するアクセスに
応答して前記テーブルを、アクセスするオブジェクトの
キャッシュIDと前記キーで検索する。従って、各オブ
ジェクトに対応するキャッシュメモリが必要なく、オー
バーヘッドが少ない。
【0014】請求項2に記載の発明のように、前記ファ
イル制御装置において、前記一次オブジェクトに関連付
けたキャッシュ・エクステントを、他の階層のオブジェ
クトの対応する部分に対してそれぞれの階層のキャッシ
ュ・ヘッダにより関連付ける。従って、キャッシュメモ
リは複数階層のオブジェクトに対して関連付けられ、使
用するメモリ容量が少ない。
【0015】請求項3に記載の発明のように、前記ファ
イル制御装置において、前記各層のオブジェクトのそれ
ぞれを関連付けたマップを記憶し、該テーブルにより各
層のオブジェクトを相互に検索する。従って、各層のオ
ブジェクトの検索が容易である。
【0016】請求項4に記載の発明のように、前記テー
ブルを複数のブロックにて構成し、各ブロックを複数の
エントリにて構成し、前記ファイル制御装置は、前記テ
ーブルのエントリを用いて前記エクステントを管理する
マップを作成し、前記アクセス時に該マップを検索す
る。
【0017】また、請求項5に記載の発明のように、前
記クライアント機及び前記ファイル制御装置はネットワ
ークに接続され、前記キャッシュIDにはネットワーク
上の特定ドメインにおけるノードの識別番号が含まれ、
キャッシュ・ヘッダのテーブルを、前記ネットワークを
介してノード間で配布する。従って、ファイル制御装置
を複数ノード構成とした場合にデータ転送が高速化され
る。
【0018】
【発明の実施の形態】以下、本発明を具体化した一実施
の形態を図1〜図28に従って説明する。図2は、ネッ
トワークシステムの概略構成図である。
【0019】ネットワークシステム20は、複数(本実
施形態では3つ)のクライアント機21,22,23
と、ファイル制御装置としてのファイルサーバ機24,
25,26とを含み、それらはネットワーク27を介し
て相互に接続されている。
【0020】ファイルサーバ機24〜26のディスク装
置には各クライアント機21〜23に顧客管理等の業務
処理や科学計算等の演算処理など、一又は複数の処理を
実行させるためのアプリケーションプログラムとデータ
のファイルが格納されている。それらを要求するため、
ファイルサーバ機24〜26にはそれらをクライアント
機21〜23の要求に応答して提供する(要求元に送信
する)ためのシステムプログラム(OS:オペレーティ
ングシステム)が格納されている。
【0021】図3は、ファイルサーバ機24(コンピュ
ータ)のハードウェア構成を概略的に示すブロック図で
ある。ファイルサーバ機24が提供する機能は、このよ
うな汎用的な目的で使用される計算機上で実行するコン
ピュータプログラムにより実現する。尚、他のファイル
サーバ機25,26、クライアント機21〜23も同様
に汎用的な計算機上で実行するコンピュータプログラム
により実現する。
【0022】ファイルサーバ機24は、中央処理装置
(CPU)31を含み、このCPU31は、メモリ32
と、入力装置33と、出力装置34と、記憶装置(ディ
スク装置)35と、ドライブ装置36と、通信装置37
とをそれに接続された状態で有している。
【0023】CPU31は、メモリ32を利用してプロ
グラムを実行し、ログデータの読み出し、稼働分析等の
機能を実現する。メモリ32には、機能の提供に必要な
プログラムとデータが格納され、メモリ32としては、
通常、キャッシュメモリ、システムメモリおよびディス
プレイメモリを含む。
【0024】入力装置33は、キーボードおよびマウス
装置(図示せず)を含み、ユーザからの要求や指示の入
力に用いられる。また、出力装置34は、表示装置(V
DT)またはモニタおよびプリンタを含み、サービス画
面,分析結果等の出力に用いられる。
【0025】ディスク装置35はメモリ32に比べて入
出力速度が低速な記憶装置であり、該ディスク装置は、
磁気ディスク装置、光ディスク装置、光磁気ディスク装
置を含む。このディスク装置35には、上述のプログラ
ムとデータが格納され、CPU31は、入力装置33に
よる指示に応答してプログラム,データをメモリ32へ
転送し、それを実行する。
【0026】ドライブ装置36は、記録媒体38を駆動
し、その記憶内容にアクセスする。記録媒体38として
は、メモリカード、フレキシブルディスク、光ディスク
(CD-ROM,DVD-ROM,… )、光磁気ディスク(MO,MD,…)
等、任意のコンピュータ読み取り可能な記録媒体を使用
することができる。この記録媒体38に、上述のプログ
ラム,データ、後述するキャッシュ制御プログラムを格
納しておき、必要に応じて、メモリ32にロードして使
用することもできる。
【0027】通信装置37は、ネットワーク27への接
続に用いられ、通信に伴うデータ変換等を行って、他の
装置(クライアント機21〜23、ファイルサーバ機2
5,26)との間でプログラムやデータの送受信を行
う。また、情報処理装置は、外部の情報提供者のデータ
ベース等からネットワークを介して、上述のプログラム
とデータを受け取り、必要に応じて、メモリ32にロー
ドして使用することもできる。
【0028】図1は、ファイルサーバ機24が持つ機能
を概略的に示すブロック図である。尚、他のファイルサ
ーバ機25,26が持つ機能は、ファイルサーバ機24
が持つ機能と実質的に同じであるため、図面及び説明を
省略する。
【0029】ファイルサーバ機24は、通信制御機構4
1、マルチ・バインド・キャッシュ機構(以下、MBC
機構)42、ファイルシステム及びボリュームマネージ
ャ(以下、FVM)43を有している。MBC機構42
はキャッシュメモリ44を制御し、該キャッシュメモリ
44は図3のメモリ32に含まれる。
【0030】尚、上記ファイルサーバ機24が有する機
能は、図3のCPU31が実行するプログラム(キャッ
シュメモリ44を制御するキャッシュ制御プログラムを
含む)にて実現される。
【0031】クライアント機21から転送されたファイ
ルデータは、キャッシュメモリ44を介してディスク装
置35に格納される。MBC機構42はクライアント機
21に対するデータ入出力の効率を上げるために設けら
れている。FVM43はファイルを格納するためにディ
スク装置35上の領域を確保し、デバイスブロック4は
指定されたディスク装置35に対してブロック単位でア
クセスする。
【0032】詳述すると、通信制御機構41はクライア
ント機21から送信されたファイルデータを受け取り、
それをキャッシュメモリ44に格納する。MBC機構4
2は、キャッシュメモリ44に格納されたファイルをそ
のサイズにより複数のオブジェクトに分解し、各オブジ
ェクトを複数のディスクブロックに分割する。即ち、一
次オブジェクトとしてのディスクブロックから二次オブ
ジェクトとしてのオブジェクトが構成され、オブジェク
トから三次オブジェクトとしてのファイルが構成され
る。
【0033】MBC機構42は、キャッシュ領域、即ち
キャッシュメモリ44をエクステントの集まりとして管
理する。エクステントは、オフセット(offset)と長さ(l
ength)で表される線形範囲であり、キャッシュメモリや
ストレージの論理的に連続した領域(記憶空間)であ
る。キャッシュメモリ44の個々のエクステントをキャ
ッシュ・エクステント(C−ext)と呼び、ストレー
ジの個々のエクステントをストレージ・エクステント
(S−ext)と呼ぶ。MBC機構42は、ファイル,
オブジェクト,ディスクブロックとキャッシュ・エクス
テントを、テーブルを用いてそれぞれ関連付ける(バイ
ンドする)。
【0034】この関連付けにおいて、MBC機構42
は、キャッシュ・エクステントを複数階層のオブジェク
トに関連付け、その関連付けを各層毎のキャッシュ・ヘ
ッダ・テーブルにて管理する。詳しくは、MBC機構4
2は、所定層のオブジェクトと、そのオブジェクトに関
連付けたキャッシュ・エクステントをその層に対応する
キャッシュ・ヘッダ・テーブルにて管理する。更に、M
BC機構42は、そのオブジェクトに関連付けたキャッ
シュ・エクステントを、その上位のオブジェクトに関連
付け、その関連付けをキャッシュ・ヘッダ・テーブル
(CHT)にて管理する。
【0035】即ち、MBC機構42は、キャッシュ・ヘ
ッダ・テーブル(CHT)により、ディスクブロックに
関連付けたキャッシュ・エクステントを上位オブジェク
トであるオブジェクトの対応する部分に関連付け、更に
そのキャッシュ・エクステントを上位オブジェクトであ
るファイルの対応する部分に関連付ける。そして、MB
C機構42は、ディスクブロックとキャッシュ・エクス
テント、オブジェクトとキャッシュ・エクステント、フ
ァイルとキャッシュ・エクステントの関連付けをそれぞ
れ対応するキャッシュ・ヘッダ・テーブルにて管理す
る。
【0036】MBC機構42は、各階層のオブジェクト
識別子からなるキャッシュIDを生成し、キャッシュ・
ヘッダ・テーブルは該キャッシュIDとそれに特有なキ
ーを保持する。
【0037】MBC機構42は、クライアント機21が
アクセスするオブジェクト(ファイル、オブジェクト、
ディスクブロックの何れか)のキャッシュIDとキーで
キャッシュ・ヘッダ・テーブルを検索することで、各層
のオブジェクトに対応するキャッシュ・エクステントに
対するアクセスを実現する。
【0038】即ち、MBC機構42は、ファイル、オブ
ジェクト、ディスクブロックの共通なオブジェクトに対
して1つのキャッシュ・エクステントを関連付ける。従
って、MBC機構42によりキャッシュメモリ44が一
つでよく、従来のようにキャッシュメモリ17,18間
とキャッシュメモリ17と通信バッファ16間のデータ
転送が不要になり、オーバーヘッドが少なくなる。ま
た、キャッシュメモリ44が従来の2つのキャッシュメ
モリ17,18と通信バッファ16の機能を提供するた
め、従来に比べてキャッシュメモリ44のメモリ容量が
少なくてすむ。逆に、従来のキャッシュメモリ17,1
8と通信バッファ16を合計したメモリ容量をキャッシ
ュメモリ44の空き容量とした場合、キャッシュメモリ
44のキャッシュ・エクステントの数が多くなる。従っ
て、キャッシュミスが少なくなり、クライアント機21
に対する応答速度が速くなる。
【0039】また、FVM43は、各クライアント機2
1〜23にマウントされた1つ又は複数のファイルサー
バ機24〜26からなる論理ボリュームを管理する。論
理ボリュームは、クライアントが複数のディスク装置を
1つのディスク装置として扱えるように設定されたボリ
ュームである。図4に示すように、1つのクライアント
機(例えば、クライアント機21)にマウントされた複
数(例えば2つ)のファイルサーバ機24,25は1つ
の論理ボリュームを構成する。クライアント機21は、
論理ボリュームに対してファイル51のアクセス(格
納)を行う。
【0040】今、ファイル51は複数(図において2
つ)のオブジェクト51a,51bから構成される。各
ファイルサーバ機24,25は、各オブジェクト51
a,51bを分散管理する。オブジェクトの数は、該オ
ブジェクトが構成するファイルを格納するためにマウン
トされたボリュームの構成(ノード(ファイルサーバ
機)の数)を基準としている。
【0041】詳しくは、ファイルサーバ機24は、ファ
イル51を構成する第1オブジェクト51aを管理し、
ファイルサーバ機25はファイル51を構成する第2オ
ブジェクト51bを管理する。
【0042】第1ファイルサーバ機24における第1オ
ブジェクト51aは複数のディスクブロック52aから
構成され、該ファイルサーバ機24は各ディスクブロッ
ク52aをディスク装置53a(図1及び図3のディス
ク装置35)に格納する。
【0043】第2ファイルサーバ機25における第2オ
ブジェクト51bは複数のディスクブロック52bから
構成され、該ファイルサーバ機25は各ディスクブロッ
ク52bをディスク装置53bに格納する。
【0044】そして、第1,第2ファイルサーバ機2
4,25のMBC機構42は、それぞれ図2のネットワ
ーク27に接続された機器のノード番号をキャッシュ・
ヘッダ・テーブルに格納する。これにより、ネットワー
クを介して接続された各々の機器に格納されたファイ
ル、オブジェクト、ディスクブロックとキャッシュ・エ
クステントを関連付ける。
【0045】このように格納されたファイル51をクラ
イアント機21がアクセスする時、該クライアント機2
1のアクセスに対して2つのファイルサーバ機24,2
5が応答し、それぞれに格納したディスクブロック52
a,52bをクライアント機21へ転送する。
【0046】即ち、複数のファイルサーバ機24,25
にファイル51を構成するオブジェクト51a,51b
を分散配置した。従って、ファイルサーバ機24,25
は、クライアント機21に対して平行にデータの転送を
行う。そのため、1台のファイルサーバ機にファイル5
1を格納する従来の方法に比べてファイルの実質的な転
送速度(アクセスからファイル51の全てのデータをク
ライアント機が読み込むまでの時間)が短くなる。
【0047】また、図4において、複数のファイルサー
バ機24,25のキャッシュメモリは、1つのファイル
51を入出力する際のキャッシュメモリとなる。従っ
て、このファイル51に対するキャッシュメモリの容量
は、従来の2倍の容量となる。即ち、マウントされたフ
ァイルサーバ機の数によりキャッシュメモリの容量が多
くなる(合計値になる)。このため、ファイルの入出力
性能が向上する。
【0048】尚、図2に示す各クライアント機21〜2
3及び各ファイルサーバ機24〜26は、RDMA(Rem
ote Direct Memory Access )転送機能(ハードウェアが
ネットワークを介した2台のマシンのメモリ間で直接デ
ータを転送する機能)を持つ通信装置を備えた構成とし
ても良い。この場合、通信装置の高速性のメリットを引
き出すことが可能となる。
【0049】次に、MBC機構42が持つ機能の詳細を
説明する。MBC機構42は、キャッシュ管理単位及び
各領域管理層のデータ管理単位を「エクステント」で統
一する。MBC機構42は、キャッシュ・エクステント
をファイル,オブジェクト,ディスクブロックとテーブ
ルによって関連付ける。テーブルは、B木(B-tree)構
造のマップにて管理される。そして、MBC機構42
は、キャッシュ・エクステントを、ファイル,オブジェ
クト,ディスクブロックのうちの少なくとも2つと関連
付けすることで、データ管理対象の相互の検索を可能と
している。
【0050】MBC機構42は、テーブルを図3のメモ
リ32上に作成する。テーブルには、キャッシュ・エク
ステント・テーブル(CET)、キャッシュ・ヘッダ・
テーブル(CHT)、ストレージ・エクステント・テー
ブル(SET)、オブジェクト・テーブル(OT)、フ
ァイル・テーブル(FT)の5種類があり、いずれも同
じ形式である。
【0051】先ず、テーブルの構造を説明する。図5
は、テーブルの構造を示す説明図である。尚、図5は構
造を概略的に示すものであり、この構造に限定されな
い。
【0052】テーブル61全体は固定長のブロック62
の集まりから構成される。1つのブロック62はディス
ク装置の入出力やネットワーク転送に適した大きさを持
つ。ブロック62は複数の固定長データの配列であり、
1つ以上のコントロール・エントリ63と複数のデータ
・エントリ64から構成される。
【0053】コントロール・エントリ63は、ブロック
62を構成する複数のデータ・エントリ64を管理する
(使用状況を管理する)ビットマップデータを保持す
る。各データ・エントリ64はエクステントと呼ぶデー
タセットを持ち、データセットは、オフセット(Offse
t)、長さ(Length)、バリュー(Value )からなる。CE
T,SETのデータ・エントリは、1つのエクステント
を含む。CHT,OT,FTのデータ・エントリは複数
のエクステントを含む要素の配列構造であり、各テーブ
ルに含まれる複数のデータ・エントリはBツリーを構成
するノードの材料である。CHT,OT,FTの各デー
タ・エントリを構成する要素は、それぞれに含まれるエ
クステントのオフセットによりソートされている。バリ
ューが0(ゼロ)のエクステントをNull(ヌル)エクス
テントと呼ぶ。全てのデータ・エントリ64には一意な
インデックス(idx)が与えられる。インデックスは
データ・エントリを特定する値を持つ。
【0054】各テーブルに含まれるエクステントのデー
タは、各テーブルの目的によって異なっている。例え
ば、CET,SETのデータ・エントリに含まれるエク
ステントは、実体であるキャッシュ,ストレージのエク
ステント(キャッシュ・エクステント,ストレージ・エ
クステント)を表すデータを表すデータを持つ。図6に
示すように、ストレージ65の1つのストレージ・エク
ステント65aは、オフセットと長さがそれぞれ「 0x1
8000」「0x1000」で表される領域である。CETを構成
するブロック62aのデータ・エントリ64は、ストレ
ージ・エクステント65aを表すデータ(0x18000,0x100
0)が含まれるエクステントを保持する。尚、図6では、
データ・エントリとストレージ65を構成するストレー
ジ・エクステント65aとの関係を説明したが、関連付
けの対象がキャッシュの場合も同様である。即ち、SE
Tを構成するブロックのデータ・エントリは、キャッシ
ュ・エクステントを表す(指定する)情報であるエクス
テント(オフセットと長さ)を保持する。
【0055】図1のMBC機構42は、マップを図3の
メモリ32上に作成する。マップには、フリーストレー
ジ・エクステント・マップ(FSEM),ストレージ・
エクステント・マップ(SEM),オブジェクト・マッ
プ(OM),フリーキャッシュ・エクステント・マップ
(FCEM),キャッシュ・エクステント・マップ(C
EM)の5種類があり、いずれも同じ構造である。
【0056】各マップは対応するテーブルのデータ・エ
ントリにより構成される。マップはエクステントの集ま
りを管理するものであり、オフセットをキーとするB木
(B-tree)構造を持つ。
【0057】図7は、マップの構造を示す説明図であ
る。尚、図7は、構造を概略的に示すものであり、この
構造に限定されない。マップ70は、最上位にルートノ
ード71を持ち、末端に複数(図において5つ)のリー
フノード72a〜72eを持つ。リーフノード72a〜
72eは実際のデータを管理する。
【0058】リーフノード72a〜72eは実際のデー
タ量(ファイルサイズ)に応じた個数設けられ、それら
リーフノード72a〜72eを収容する(ルートノード
71に関連付ける)ためにルートノード71とリーフノ
ード72a〜72eの間にブランチノード73a,73
bが設けられている。各ノード71,72a〜72e,
73a,73bは上記テーブルのデータ・エントリから
なる。
【0059】ルートノード71は、それに繋がるノード
(図において2つのブランチノード73a,73b)を
指し示すデータを格納した2つのエクステントと空きエ
クステントを有している。図において左側に表したブラ
ンチノード73aは、それに繋がる2つのリーフノード
72a,72bを示すデータを格納したエクステントと
空きエクステントを有している。また、図において右側
に表したブランチノード73bは、それに繋がる3つの
リーフノード72c,72d,72eを示すデータを格
納したエクステントと空きエクステントを有している。
【0060】即ち、リーフノード72a〜72eは実体
であるエクステント(キャッシュ・エクステント又はス
トレージ・エクステント)を示すエクステントを保持す
る。そして、ブランチノード73及びルートノード71
は、リーフノードの集まり、ブランチノードの集まり、
又はリーフノードとブランチノードの集まりを示すエク
ステントを保持する。ルートノード、ブランチノードに
よるブランチノード、リーフノードの保持は、各マップ
内のエクステントによりカバーされる範囲のオフセット
と長さ及び当該リーフのインデックスによってなされ
る。
【0061】データ・エントリはマップ、即ちBツリー
のノードであり、ノードは論理的にはBツリーを構成す
る。例えば、図8に示すように、いずれかのテーブルを
構成するブロック62bは複数のデータ・エントリ64
a〜64hを持ち、データ・エントリ64a〜64gは
マップ70aのノードである。データ・エントリ64c
はルートノードであり、データ・エントリ64a,64
d,64eはブランチノードであり、データ・エントリ
64b,64f,64gはリーフノードである。
【0062】図9は、エクステントによるノードの関連
付けを示す説明図である。マップ75は複数のデータ・
エントリ(ノード)76〜79からなる。データ・エン
トリ76には値「10」のインデックス(idx=10)が与え
られ、データ・エントリ77には値「50」のインデッ
クス(idx=50)が与えられ、データ・エントリ78には値
「40」のインデックス(idx=40)が与えられ、データ・
エントリ79には値「30」のインデックス(idx=30)が
与えられている。
【0063】ノード76は複数のエクステント76a〜
76eからなる。エクステント76aはデータ・エント
リ77を示すインデックス(=50)をバリューとして
保持し、エクステント76cはデータ・エントリ78を
示すインデックス(=40)をバリューとして保持し、
エクステント76eはデータ・エントリ79を示すイン
デックス(=30)をバリューとして保持する。これら
エクステント76a,76c,76eは、データ・エン
トリ76と複数のデータ・エントリ77〜79を関連付
ける。
【0064】尚、データ・エントリ76に含まれるエク
ステント76b,76dはバリューとして値「0」を保
持する。これは、各エクステント76b,76dが下位
のノードに関連付けられていないヌルエクステントであ
ることを示す。
【0065】次に、各テーブルの詳細を説明する。キャ
ッシュ・エクステント・テーブル(CET)。このテー
ブルは、キャッシュ上のエクステント(キャッシュ・エ
クステント:C−ext)を管理するテーブルである。
【0066】キャッシュは仮想メモリ空間上の連続した
領域であり、キャッシュ・エクステントの単位で使用さ
れる。キャッシュ・エクステントは、キャッシュ上のオ
フセットと長さで表現される領域である。
【0067】従来のページキャッシュではキャッシュ
は、長さが一定のキャッシュ・エクステントであるペー
ジの単位で使用される。各データ・エントリは以下のデ
ータを保持する。
【0068】
【表1】 各データ・エントリの識別子をキャッシュ・エクステン
ト識別子と呼ぶ。
【0069】データ「head[]」(識別子配列)は、キャ
ッシュ・エクステントに関連付けられているストレー
ジ,オブジェクト,ファイルを保持する配列であり、he
ad[0]がストレージを、head[1] がオブジェクトを、hea
d[2] がファイルを特定する値を保持している。値が
「0」の場合は関連付けられていないことを表す。
【0070】ストレージ・エクステント・テーブル(S
ET)。このテーブルは、ストレージ上のエクステント
(ストレージ・エクステント:S−ext)(エクステ
ントはオフセットと長さで表現される線形範囲)を管理
するテーブルである。
【0071】ストレージは、ディスクパーティション
(論理的に分割されたディスク装置やメモリの領域)や
論理ボリュームなどのボリュームであり、ストレージ・
エクステントの単位で使用される。ストレージ・エクス
テントは、ストレージ上のオフセットと長さで表現され
る領域である。
【0072】従来のファイルシステムではストレージ
は、長さが一定のストレージ・エクステントであるディ
スクブロックの単位で使用される。各データ・エントリ
は以下のデータを保持する。
【0073】
【表2】 キャッシュ・ヘッダ・テーブル(CHT)。このテーブ
ルは、キャッシュ対象とキャッシュ・エクステント(C
−ext)の対応を管理するテーブルである。キャッシ
ュ対象には、ストレージ、オブジェクト、ファイルのい
ずれかがなり得る。キャッシュ対象とキャッシュ・エク
ステントのマップ情報は、キャッシュ・エクステント・
マップ(CEM、後述)というBツリー構造のマップで
管理される。即ち、キャッシュ・ヘッダ・テーブルは、
キャッシュ対象とキャッシュ・エクステントのマップ情
報を保持し、キャッシュ・エクステント・マップを構成
するノード(以下、CEMノードと呼ぶ)を管理するテ
ーブルである。そして、キャッシュ・ヘッダ・テーブル
はCEMノードを配列で保持し、使用中のCEMノード
と空きCEMノードをビットマップで管理する。
【0074】オブジェクト・テーブル(OT)。このテ
ーブルは、ストレージ・エクステント(S−ext)の
情報を管理するテーブルである。ストレージ・エクステ
ントの集まりがオブジェクトを構成し、オブジェクトを
構成するストレージ・エクステントは全て当該ファイル
サーバ機24上に存在する。従って、オブジェクト・テ
ーブルは、オブジェクトとストレージ・エクステントの
マップ情報を管理するテーブルであり、オブジェクトと
ストレージ・エクステントのマップ情報は、ストレージ
・エクステント・マップ(SEM、後述)というBツリ
ー構造のマップで管理される。
【0075】即ち、オブジェクト・テーブルは後述する
ストレージ・エクステント・マップを構成するノード
(以下、SEMノードと呼ぶ)を管理するテーブルであ
り、オブジェクト・テーブルはSEMノードを配列で保
持し、使用中のSEMノードと空きSEMノードをビッ
トマップで管理する。
【0076】ファイル・テーブル(FT)。このテーブ
ルは、ファイルとオブジェクトのマップ情報を管理する
テーブルである。オブジェクトがファイルを構成する。
ファイルは、単一のファイルサーバ機上のオブジェク
ト、又は複数のファイルサーバ機上のオブジェクトで構
成される。ファイルとオブジェクトのマップ情報は、オ
ブジェクト・マップ(OM、後述)というBツリー構造
のマップで管理される。即ち、ファイル・テーブルはオ
ブジェクト・マップを構成するノード(以下、OMノー
ドと呼ぶ)を管理するテーブルであり、OMノードを配
列で保持し、使用中のOMノードと空きOMノードをビ
ットマップで管理する。
【0077】次に、各マップの詳細を説明する。ストレ
ージ・エクステント・マップ(SEM)。このマップは
Bツリー構造にて、オブジェクトとストレージ・エクス
テント(S−ext)のマップ情報を管理する。このマ
ップには、オブジェクト・テーブル(OT)のデータ・
エントリがノードに使用されている。Bツリーを構成す
る各ノード(SEMノード)は以下のデータを保持して
いる。
【0078】
【表3】 尚、上記のSEMノードにデータ「branch」(識別子)
として保持される上位ノードの識別子は、当該SEMノ
ードが繋がる上位のSEMノードのidxである。従っ
て、SEMノードがルートノードの場合、データ「bran
ch」としてキャッシュ・ヘッダ識別子が保持される。デ
ータ「sem[] 」(構造配列)はエクステントの配列であ
り、OTのデータ・エントリは複数のエクステントを含
んでいる。
【0079】フリーストレージ・エクステント・マップ
(FSEM)。このマップは、ディスク上の空きエクス
テント(使用中でないストレージ・エクステント:フリ
ーストレージ・エクステントと呼ぶ)を管理する。この
マップには、オブジェクト・テーブル(OT)のデータ
・エントリが後述するノードに使用されている。フリー
ストレージ・エクステントは、FSEMオブジェクトと
呼ばれるオブジェクトにマップすることで管理される。
FSEMオブジェクトとフリーストレージ・エクステン
トのマップ情報は、通常のオブジェクトと同様に、Bツ
リー構造によって管理される。即ち、FSEMオブジェ
クトを管理対象とするSEMをフリーストレージ・エク
ステント・マップ(FSEM)と呼ぶ。
【0080】オブジェクト・マップ(OM)。このマッ
プはBツリー構造で、ファイルとオブジェクトのマップ
情報を管理する。このマップには、ファイル・テーブル
(FT)のデータ・エントリがノードに使用されてい
る。MBC機構42は、用途別に2つのバンクを持つ。
ファイル毎に1つのBツリーが存在し、Bツリーを構成
する各ノード(OMノード)は以下のデータを保持して
いる。
【0081】
【表4】 尚、上記のOMノードにデータ「branch」(識別子)と
して保持される上位ノードの識別子は、当該OMノード
が繋がる上位のOMノードのidxである。従って、O
Mノードがルートノードの場合、データ「branch」とし
てキャッシュ・ヘッダ識別子が保持される。データ「om
[] 」(構造配列)はエクステントの配列であり、FT
のデータ・エントリは複数のエクステントを含んでい
る。
【0082】キャッシュ・エクステント・マップ(CE
M)。このマップはBツリー構造にて、キャッシュ対象
(ストレージ(S−ext)、オブジェクト、ファイ
ル)とキャッシュ・エクステント(C−ext)のマッ
プ情報を管理する。このマップには、キャッシュ・ヘッ
ダ・テーブル(CHT)のデータ・エントリがノードに
使用されている。キャッシュ対象毎に1つのBツリー、
即ちCEMが存在する。Bツリーを構成する各ノード
(CEMノード)は以下のデータを保持している。
【0083】
【表5】 尚、上記のCEMノードにデータ「branch」(識別子)
として保持される上位ノードの識別子は、当該CEMノ
ードが繋がる上位のCEMノードのidxである。従っ
て、CEMノードがルートノードの場合、データ「bran
ch」としてキャッシュ対象識別子が保持される。データ
「cem[] 」(構造配列)はエクステントの配列であり、
CHTのデータ・エントリは複数のエクステントを含ん
でいる。
【0084】フリーキャッシュ・エクステント・マップ
(FCEM)。このマップは、キャッシュメモリ44上
の空きエクステント(使用中でないキャッシュ・エクス
テント:フリーキャッシュ・エクステントと呼ぶ)を管
理する。このマップには、キャッシュ・ヘッダ・テーブ
ル(CHT)のデータ・エントリがノードに使用されて
いる。フリーキャッシュ・エクステントは、FCEMオ
ブジェクトと呼ばれるオブジェクトにマップすることで
管理される。FCEMオブジェクトとフリーキャッシュ
・エクステントのマップ情報は、通常のキャッシュ対象
と同様に、Bツリー構造によって管理される。即ち、F
CEMオブジェクトを管理対象とするCEMをフリーキ
ャッシュ・エクステント・マップ(FCEM)と呼ぶ。
【0085】従って、図13に示すように、ファイル(F
ILE)81とオブジェクト(OBJECT)82がオブジェクト・
テーブル(OT)85によって関連付けられている。また、
オブジェクト(OBJECT)82とディスクブロック(ストレ
ージ・エクステントS-ext )83がストレージ・エクス
テント・テーブル(SET) 86によって関連付けられてい
る。更に、キャッシュ・エクステント(C-ext) 84とフ
ァイル(FILE)81、オブジェクト(OBJECT)82、ディス
クブロック(ストレージ・エクステントS-ext)83が
それぞれキャッシュ・ヘッダ・テーブル(CHT) 87,8
8,89により関連付けられている。そして、各テーブ
ル85〜89により、相互の検索が可能となる。
【0086】上記の説明をまとめると以下のようにな
る。CHT,OT,FTは「甲に乙をマップする」ため
のテーブルであり、「甲」はルートノードが保持し、
「乙」はリーフノードが保持する。
【0087】図14は、CHTによる関連付けの説明図
である。CHT91はデータ・エントリ91a〜91f
を含み、データ・エントリ91a,91bは1つのCE
M92aを構成するノードである。このCEM92a
は、FT93のデータ・エントリ93aにCET94の
データ・エントリ94aをマップする。即ち、ルートノ
ードであるデータ・エントリ91aはキャッシュ対象識
別子としてFT93のデータ・エントリ93aを示す情
報を保持し、リーフノードであるデータ・エントリ91
bはキャッシュ・エクステント識別子としてCET94
のデータ・エントリ94aを示す情報を保持する。
【0088】同様に、データ・エントリ91c,91d
は1つのCEM92bを構成するノードである。このC
EM92bは、OT95のデータ・エントリ95aにC
ET94のデータ・エントリ94aをマップする。即
ち、ルートノードであるデータ・エントリ91cはキャ
ッシュ対象識別子としてOT95のデータ・エクステン
ト95aを示す情報を保持し、リーフノードであるデー
タ・エントリ91dはキャッシュ・エクステント識別子
としてCET94のデータ・エントリ94aを示す情報
を保持する。
【0089】同様に、データ・エントリ91e,91f
は1つのCEM92cを構成するノードである。このC
EM92cは、SET96にCET94のデータ・エン
トリ94aをマップする。即ち、ルートノードであるデ
ータ・エントリ91eはキャッシュ対象識別子としてS
ET96を示す情報を保持し、リーフノードであるデー
タ・エントリ91fはキャッシュ・エクステント識別子
としてCET94のデータ・エントリ94aを示す情報
を保持する。尚、SET96はボリューム毎に作成さ
れ、それらをマップするCEM92cも同様にボリュー
ム毎に作成される。
【0090】従って、CET94のデータ・エントリ9
4aは、FT93のデータ・エントリ93aと、OT9
5のデータ・エントリ95aと、SET96とにマッピ
ングされている。
【0091】図15は、OTによる関連付けの説明図で
ある。OT95はデータ・エントリ95a,95bを含
み、データ・エントリ95a,95bはSEM97を構
成するノードである。ルートノードであるデータ・エン
トリ95aはオブジェクト識別子を保持し、リーフノー
ドであるデータ・エントリ95bはストレージ・エクス
テント識別子としてSET96のデータ・エントリ96
aを示す情報を保持する。
【0092】図16は、FTによる関連付けの説明図で
ある。FT93はデータ・エントリ93a,93bを含
み、データ・エントリ93a,93bはOM98を構成
するノードである。ルートノードであるデータ・エント
リ93aはファイル識別子を保持し、リーフノードであ
るデータ・エントリ93bはストレージ・エクステント
識別子としてOT95のデータ・エントリ95aを示す
情報を保持し、このデータ・エントリ95aはルートノ
ードである。
【0093】図17は、各種テーブルによる関連付けの
説明図であり、図14〜図16をまとめた説明図であ
る。ファイル101のエクステント101aと、オブジ
ェクト102のエクステント102aと、ストレージ1
03のストレージ・エクステント103aは同じもので
あり、各エクステント101a,102a,103a中
の記載は、それぞれのオフセットと長さである。
【0094】CET94のデータ・エントリ94aは、
キャッシュメモリ104のキャッシュ・エクステント1
04aを表すセットを保持する。そして、このキャッシ
ュ・エクステント104aは、CET94とCHT91
を介して、FT93とOT95とSET96によりファ
イル101のエクステント101aとオブジェクト10
2のエクステント102aとストレージ103のストレ
ージ・エクステント103aにそれぞれマッピングされ
ている。
【0095】次に、MBC機構42が扱うオブジェクト
について説明する。ファイルを構成するオブジェクトを
一般オブジェクトと呼び、この内容はファイルのデータ
である。後述する各種テーブル、転送バッファ等を用途
とするオブジェクトを予約オブジェクトと呼ぶ。個々の
ディスク、オブジェクト、ファイルに付加するオブジェ
クトを予約番号と呼ぶ。この予約番号は、ディスク装置
やファイルに対して付加的な情報(ファイルの所有者や
ディスク装置の容量等)を与えるためのものであり、こ
の内容はメタデータである。
【0096】予約オブジェクトは、後述するWell Known
オブジェクトIDが与えられているオブジェクトのこと
である。オブジェクトIDは実際にオブジェクトを割り
当てるまでその値が決まらないため、OT,FTなどの
オブジェクトにアクセスするために便宜的に Well Know
n オブジェクト ID を決めている。Well Knownオブジェ
クトIDはOMのバンク1を検索することにより対応す
る実際のオブジェクトIDに変換される。
【0097】次に、MBC機構42が扱う識別子(I
D)について説明する。サブネット内のディスクを特定
するIDをストレージIDと呼び、オブジェクトを特定
するIDをオブジェクトIDと呼び、サブネット内のフ
ァイルを特定するIDをファイルIDと呼ぶ。キャッシ
ュ対象(ディスクブロック、オブジェクト、ファイル)
を特定するIDをキャッシュIDと呼ぶ。
【0098】オブジェクトIDは複数のクラスに分けら
れる。CLASS_AオブジェクトIDとCLASS_
CオブジェクトIDはノード内の予約オブジェクトを特
定するWell KnownなID(ID番号に対して取得される
データが既知であるID)(ノード内予約ID)であ
る。CLASS_BオブジェクトIDはクラスタ内の予
約オブジェクトを特定するWell KnownなID(クラスタ
内予約ID)である。CLASS_DオブジェクトID
はサブネット内のオブジェクトを特定するID(サブネ
ット内特定ID)である。
【0099】普通のオブジェクトのID(「単なるI
D」)は、オブジェクトが作成される時点で決まるのに
対し、CHT,CET,SET,OT,FTなどのオブ
ジェクトのIDは「Well Know なID」として予約され
ている。例えば、テーブルが他のファイルサーバ機にあ
る場合、単なるIDではファイル,オブジェクトのID
を問い合わせるための通信が必要となる。しかし、「We
ll Know なID」として予約されているオブジェクトの
IDの問い合わせをすることなくIDの指定が可能であ
る。こうすることにより、目的のテーブル(CHT等)
の参照・変更を容易にしている。
【0100】そして、CLASS_AからCLASS_
CのオブジェクトIDの総称が「Well Knownオブジェク
トIDである。CLASS_Dのオブジェクトは実際の
オブジェクトIDで、CLASS_AからCLASS_
CのオブジェクトはOMのバンク1を検索することによ
りCLASS_DのオブジェクトIDに変換される。マ
ルチ・バインド・キャッシュ機構は、単体のノード(コ
ンピュータ)上だけでなく、サブネット内に展開した複
数のノード(ファイルサーバ機)でクラスタを形成した
場合に、ノード間でキャッシュ対象を共有することが可
能である。
【0101】この場合に使用するWell Knownオブジェク
トIDにクラスを設けている。CLASS_A,CLA
SS_Cはノード内だけでユニークであればノード間で
重複してもよいIDである。CLASS_Aは1つの値
を予約するのに対し、CLASS_C255個の連番の
値を予約する点が異なっている。CLASS_Bはクラ
スタ内においてユニークなIDである。
【0102】次に、関連付け(バインド)について説明
する。関連付けの対象は以下の通りである。関連付け対
象がストレージ・エクステント(S−ext)とオブジ
ェクトの場合、オブジェクトのSEMのノード(データ
・エントリ)に当該ストレージ・エクステントを挿入す
ることで関連付けを行う。
【0103】図11は、エクステントの挿入の説明図で
ある。図11上段に示すように、マップ110は2つの
ノード111,112を含み、各ノード111,112
はそれぞれ4つのエクステントを持つ。ノード112は
リーフノードであり、インデックス「 101」が与えられ
ている。上位のノード111のエクステント113は、
ノード112を表すインデックス「 101」を含むセット
を保持している。
【0104】このマップ110にエクステント114を
挿入する。詳しくは、マップ110に含まれるリーフノ
ード112にエクステント114を挿入する。この時、
挿入されるエクステント114は、オフセット「1200」
と長さ「 200」を保持している。従って、図11下段に
示すように、このエクステント114は、リーフノード
112のエクステント115とエクステント116の間
に挿入される。
【0105】更に、後のエクステント116に影響が無
いように、オフセット「1400」と長さ[ 600」を保持す
るヌルエクステント117を挿入する。そして、エクス
テント115は、挿入されるエクステント114のオフ
セットに対応して長さが「 200」を持つエクステント1
15aに変更される。更に、エクステントの数が規定値
(図において4個)よりも多くなるため、リーフノード
を分割して2つのリーフノード112,112aとす
る。一方のリーフノード112には元のインデックス
「 101」が与えられ、他方のリーフノード112aには
新たなインデックス「1001」が与えられる。そして、上
位のノード111は、一方のリーフノード112を表す
ように内容が変更されたエクステント113aを持ち、
他方のリーフノード112bを表すエクステント118
が挿入される。
【0106】図12は、エクステントの削除の説明図で
ある。図12上段に示すように、マップ120は3つの
ノード121,122,123を含み、各ノード121
〜123はそれぞれ4つのエクステントを持つ。ノード
122,123はリーフノードであり、それぞれインデ
ックス「 101」,「1001」が与えられている。上位のノ
ード121のエクステント124,125は、ノード1
22,123を表すセットを保持している。
【0107】このマップ120からノード122に含ま
れるエクステント126を削除する。この時、削除され
るエクステント126は、オフセット「1200」と長さ
「 200」を保持している。そして、次のエクステント1
27はヌルエクステントである。従って、これらのエク
ステント126,127を、図12中段に示すように空
きエクステント126a,127aとする。更に、エク
ステント128を、エクステント126,127の長さ
を含めるように長さを「1000」を持つエクステント12
8aとする。
【0108】次に、2つのリーフノード122,123
はそれぞれ2つの使用されたエクステントを持ち、これ
ら使用されたエクステントの数は規定値以内であって1
つのノードに含めることが可能である。従って、Bツリ
ーの縮小処理を行う。即ち、図12下段に示すように、
一方のリーフノード122に他方のリーフノード123
の使用されたエクステント129,130を持たせる。
そして、上位のノード121が他方のリーフノード12
3を表さないようにエクステント125(図12中段参
照)を削除すると共に、1つのリーフノード122を表
すように上位ノード121が持つエクステント124
を、長さ「4000」を持つエクステント124aに変更す
る。
【0109】関連付け対象がオブジェクトとファイルの
場合、ファイルのOM(バンク0)にオブジェクトを挿
入することで関連付けを行う。関連付け対象がキャッシ
ュ・エクステント(C−ext)とキャッシュ対象の場
合、キャッシュ対象のCEMのノード(データ・エント
リ)にキャッシュ・エクステントを挿入することで関連
付けを行う。
【0110】ファイルとオブジェクトをマッピングする
OMはFT内にあり、ファイル毎に2つ存在する。一方
をバンク0とし、他方をバンク1とする。バンク0とバ
ンク1は実質的に同じ内容を持つ。バンク0は、ファイ
ルにおけるオブジェクトの場所を保持し、バンク1は、
ファイルに対する付加情報(ファイルの所有者や実行プ
ログラム等)を保持する。従って、「オブジェクト検
索」ではバンク0を検索し、「Well Known オブジェク
トIDを CLASS-D オブジェクトに変換」ではバンク1
を検索する。
【0111】関連付け対象が空きストレージ・エクステ
ント(S−ext)の場合、FSEMのノード(データ
・エントリ)に空きストレージ・エクステントを挿入す
ることで関連付けを行う。関連付け対象が空きキャッシ
ュ・エクステント(C−ext)の場合、FCEMのノ
ード(データ・エントリ)に空きキャッシュ・エクステ
ントを挿入することで関連付けを行う。
【0112】関連付け対象がWell KnownオブジェクトI
Dであり、該Well KnownオブジェクトIDをWell Known
ではないオブジェクトIDに関連付ける場合、ルートデ
ィレクトリのOM(バンク1)にWell Knownオブジェク
トIDを挿入する。関連付け対象が予約番号と付加対象
(ファイル)の場合、付加対象のOM(バンク1)に予
約番号を挿入することで関連付けを行う。
【0113】次に、検索(クエリ)について説明する。
検索は、関連付けに基づいて行い、取得する検索対象に
対応するマップを検索してその対象を取得する、即ち、
検索対象とオフセット,長さを指定し、対応するエクス
テントを取得する処理である。このクエリ処理は、ファ
イルに対して読み書きする場合や、テーブル(オブジェ
クト)を参照変更する場合、ディスクに対して未書き出
しのキャッシュを定期的にディスクに書き出す場合など
に行われる。
【0114】例えば、オブジェクトからストレージ・エ
クステントを取得する場合、該オブジェクトのSEMを
検索し、該当するストレージ・エクステントを検出す
る。同様に、ファイルからオブジェクトを取得する場
合、ファイルのOM(バンク0)を検索し、キャッシュ
対象からキャッシュ・エクステントを取得する場合、キ
ャッシュ対象のCEMを検索する。
【0115】ファイルの作成や拡張時に、空きストレー
ジ・エクステントを取得する場合にはFSEMを検索
し、空きキャッシュ・エクステントを取得する場合には
FCEMを検索する。更に、Well KnownオブジェクトI
Dを取得する場合にはルートディレクトリのOM(バン
ク1)を検索し、付加対象から予約番号を取得する場合
には当該付加対象のOM(バンク1)を検索する。
【0116】エクステントの検索は、以下のように行わ
れる。例えば、図10に示すマップ140からオフセッ
トが「2048」のエクステントを検索する。尚、図におい
てBツリーのノード中に記載した数値はそのノードのイ
ンデックスである。
【0117】先ず、このマップ140のルートノード1
41のエクステント配列をオフセットにて検索し、希望
するオフセット「2048」を含むエクステント、即ちオフ
セット「2000」と長さ[1000]を保持するエクステント1
42を検出する。
【0118】次に、このエクステント142が保持する
バリューに基づいて、該バリューとして保持された下位
ノードの識別子であるインデックス「 4」にて表される
ノード143のエクステント配列を検索する。そして、
希望するオフセット「2048」を含むエクステント、即ち
オフセット「2000」と長さ[ 100]を保持するエクステン
ト144を検出する。
【0119】次に、このエクステント144が保持する
バリューに基づいて、該バリューとして保持された下位
ノードの識別子であるインデックス「41」にて表される
ノード145のエクステント配列を検索する。そして、
希望するオフセット「2048」を含むエクステント、即ち
オフセット「2010」、長さ[50]、バリュー(インデック
ス)「 411」を保持するエクステント146を検出す
る。そして、このエクステント146が保持するバリュ
ーにより、実体を表すインデックス「 411」が得られ
る。
【0120】次に、図2のクライアント機21に対する
ファイルサーバ機24のファイルの入出力について説明
する。ファイルサーバ機24は、ファイルIDとオフセ
ットでキャッシュ・エクステントを検索する。キャッシ
ュ・エクステントが存在する場合、ファイルサーバ機2
4はキャッシュ・エクステントのデータをクライアント
機21に送信する。
【0121】キャッシュ・エクステントが存在しない場
合、先ずファイルサーバ機24はファイルとキャッシュ
・エクステントの関連付けを行う。次に、ファイルサー
バ機24は、その関連付けしたキャッシュ・エクステン
トを他から使用されないようにロックする。次に、ファ
イルサーバ機24は、キャッシュ・エクステントに対し
てデータの入出力を行う(図1のディスク装置35から
読み出したデータをキャッシュ・エクステントに書き込
む。又はキャッシュ・エクステントのデータをディスク
装置35に格納する)。そして、データの入出力を終え
たファイルサーバ機24は、当該キャッシュ・エクステ
ントのロックを解除する。
【0122】キャッシュ・エクステントの関連付けにつ
いて詳述する。先ず、ファイルサーバ機24は、ファイ
ルIDとオフセットによりOMから該当するオブジェク
トを検索する。該当するオブジェクトがない場合、ファ
イルサーバ機24は新規オブジェクトIDを取得し、フ
ァイルにオブジェクトを関連付ける。
【0123】次に、ファイルサーバ機24は、オブジェ
クトIDとオフセットによりSEMから該当するストレ
ージ・エクステントを検索する。該当するストレージ・
エクステントがない場合、FSEMから空きストレージ
・エクステントを取得し、オブジェクトにストレージ・
エクステントを関連付ける。
【0124】次に、ファイルサーバ機24は、FCEM
から空きキャッシュ・エクステントを取得し、その空き
キャッシュ・エクステントをディスク、オブジェクト、
ファイルの順に関連付ける。
【0125】このように、ファイルサーバ機24は、関
連付けをオブジェクト、ストレージの順番で行う。一
方、検索を行う場合、ファイルサーバ機24は、ストレ
ージ、オブジェクトの順番で行う。
【0126】次に、キャッシュ・エクステントの書き出
し(コミット)について説明する。コミットは、キャッ
シュ・エクステントの内容をディスク装置35に格納す
ることであり、キャッシュメモリ44に記憶されたファ
イルの内容が電源遮断により喪失するのを防ぐ。このコ
ミットはコミット・デーモン・プログラムの実行により
行われる。このコミット・デーモン・プログラムによる
CPU31(図3)の動作を、コミット・デーモンの動
作として説明する。
【0127】ファイルサーバ機24は、コミット・デー
モンを一定時間毎に起動する。起動されたコミット・デ
ーモンは、先ずディスク装置35(図3)にバインドさ
れているキャッシュ・エクステントをディスク装置35
のオフセット順にCEM内で検索する。次に、コミット
・デーモンは未書き出しのキャッシュ・エクステントを
所定個数選択し、内容をディスク装置35に書き出す。
【0128】次に、キャッシュ・エクステントの再利用
(解放・パージ)について説明する。キャッシュメモリ
44は有限な資源であるため、バインドを続けると資源
が不足してくる。このため、利用度の低い(利用されて
からの経過時間が長い、又は利用回数が少ない)キャッ
シュ・エクステントのバインドを解除し、再利用する。
このための処理がパージ処理であり、キャッシュ・エク
ステントをキャッシュ対象から引き離し、空きキャッシ
ュ・エクステントとする。この空きキャッシュ・エクス
テントが再利用可能なキャッシュ・エクステントであ
る。
【0129】先ず、キャッシュの内容がディスクに未書
き出しの場合は「コミット処理」を行い、内容をディス
クに書き出す。キャッシュ・エクステントは、自らを書
き出すべきストレージ・エクステントの情報を保持して
いるため、速やかにディスクへの書き出しが可能であ
る。ただし、キャッシュ・エクステントの状態が VALID
かつ DIRTY(未書き出し)の場合以外は書き出しを行う
必要はない。
【0130】次に、「アンバインド処理」を行いキャッ
シュ・エクステントとキャッシュ対象の関連を解消す
る。バインド処理の逆であり、CHTを検索し、対応す
るエクステントを削除する。最後に、キャッシュ・エク
ステントを開放する。FCETオブジェクトにバインド
することによりキャッシュ・エクステントは開放され
る。
【0131】このパージ(パージ処理)はパージ・デー
モン・プログラムの実行により行われる。このパージ・
デーモン・プログラムによるCPU31の動作を、パー
ジ・デーモンの動作として説明する。
【0132】ファイルサーバ機24は、パージ・デーモ
ンを一定時間毎に起動する。起動されたパージ・デーモ
ンは、パージキューの長さを監視し、その長さが基準値
を超えていた場合に、キューの先頭から超えている分の
数のキャッシュ・エクステントのバインドを解除し、空
きキャッシュ・エクステントを生成する。
【0133】次に、上記のように構成された処理の手順
を図18〜図28に従って説明する。図18,図19
は、クエリ処理のフローチャートである。
【0134】尚、図18,図19は、キャッシュ対象か
らキャッシュ・エクステント(C−ext)を検索する
手順を示しており、他の検索についても同様の手順によ
り実施される。
【0135】先ず、ファイルサーバ機24は、キャッシ
ュIDがオブジェクトIDか否かを判断し(ステップ2
01)、オブジェクトIDの場合にはキャッシュIDが
CLASS_DオブジェクトIDか否かを判断する(ス
テップ202)。CLASS_DオブジェクトIDの場
合にはステップ204へ進み、そうでない場合にはWell
KnownオブジェクトIDをCLASS_Dオブジェクト
IDに変換する(ステップ203)。ステップ201に
おいてキャッシュIDがオブジェクトIDではない場合
にはステップ204へ進む。
【0136】ファイルサーバ機24はキャッシュ・エク
ステントを検索し(ステップ204)、キャッシュ・エ
クステントがバインド済みか否かを判断する(ステップ
205)。バインド済みの場合、ファイルサーバ機24
はキャッシュ・エクステントをロックしパージキューか
ら外す(ステップ206)。次に、ファイルサーバ機2
4はキャッシュ・エクステントの状態がVALID(有
効)か否かを判断する(ステップ207)。キャッシュ
・エクステントがキャッシュ対象(ファイル、オブジェ
クト、ストレージ)の内容で満たされている状態、或は
現在のキャッシュ・エクステントの内容でキャッシュ対
象を書き換えることが可能な状態を、キャッシュ・エク
ステントがVALID (有効)であるという。ファイルサー
バ機24は、有効な場合に当該処理を終了する。一方、
キャッシュ・エクステントが有効ではない場合、ファイ
ルサーバ機24はキャッシュ・エクステントにデータを
読み込み(ステップ208)、処理を終了する。
【0137】ステップ205においてバインド済みでは
ない場合、ファイルサーバ機24はキャッシュIDがス
トレージIDか否かを判断し(ステップ209)、スト
レージIDの場合にはキャッシュ・エクステントを割り
当て、ストレージにバインドする(ステップ210)。
【0138】ステップ209においてストレージIDで
はない場合、ファイルサーバ機24は、キャッシュID
がオブジェクトか否かを判断する(図19,ステップ2
11)。オブジェクトの場合、ストレージ・エクステン
トを検索し(ステップ212)、ストレージ・エクステ
ントがバインド済みか否かを判断する(ステップ21
3)。バインド済みでない場合にはストレージ・エクス
テントを割り当てオブジェクトにバインドする(ステッ
プ214)。
【0139】バインド済みの場合又はオブジェクトにバ
インドした後、ディスク装置35に対して再帰的にクリ
エを実行し(ステップ215)、キャッシュ・エクステ
ントをオブジェクトにバインドし(ステップ216)、
処理を終了する。
【0140】一方、ステップ211においてオブジェク
トではない場合、ファイルサーバ機24はオブジェクト
を検索し(ステップ217)、オブジェクトがバインド
済みか否かを判断する(ステップ218)。オブジェク
トがバインド済みではない場合にはオブジェクトIDを
割り当てファイルにバインドする(ステップ219)。
【0141】オブジェクトがバインド済みの場合又はフ
ァイルにバインドした後、オブジェクトに対して再帰的
にクエリを実行し(ステップ220)、キャッシュ・エ
クステントをファイルにバインドし(ステップ22
1)、処理を終了する。
【0142】次に、エクステント検索処理とエクステン
ト割り当て処理を説明する。「エクステント検索処理」
は、CHT,OT,FTの検索処理であり、先のクエリ
処理においてキャッシュ・エクステントを検索するとき
(図18のステップ204)にCHTを検索する。キャ
ッシュが存在しない場合には新規にキャッシュ・エクス
テントを割り当てる「エクステント割り当て処理」を実
行する。このときにもCHTを検索する。尚、使用中で
ないキャッシュ・エクステントはFCETオブジェクト
にバインドされている。
【0143】次に、キャッシュ・エクステントをVALID
な状態にするためにファイルの内容をキャッシュ・エク
ステントに読み込む。このときFTを検索し、対応する
オブジェクトを特定し、ファイル読み込みをオブジェク
ト読み込みに翻訳する。更に、OMを検索し、対応する
ストレージ・エクステントを特定し、オブジェクト読み
込みをストレージ読み込みに翻訳する。最後に、実際に
ストレージのデータをキャッシュ・エクステントに読み
込む。
【0144】このファイル読み込みからストレージ読み
込みへの翻訳において、ストレージが未割当ての場合が
あり、新規にストレージ・エクステントを割り当てる。
このときにもOTを検索する。尚、使用中でないストレ
ージ・エクステントはFSETオブジェクトにバインド
されている。
【0145】割り当てられたキャッシュ・エクステント
やストレージ・エクステントに対して「バインド処理」
を実行する。キャッシュ・エクステントのバインド処理
ではCHTを検索し、対応する場所にエクステントを挿
入する。ストレージ・エクステントのバインド処理では
OTを検索し、対応する場所にエクステントを挿入す
る。
【0146】次に、エクステント検索処理とエクステン
ト割り当て処理をフローチャートに従って説明する。図
20は、エクステント検索処理のフローチャートであ
り、図21は、エクステント割り当て処理のフローチャ
ートである。これらの処理は図18,19のクエリ処理
にて呼び出される。即ち、図20のステップ231〜2
33は図18,19のステップ204,212のサブス
テップであり、図21のステップ241〜251は図1
8,19のステップ210,214のサブステップであ
る。
【0147】先ず、エクステント検索処理を図20に従
って説明する。ファイルサーバ機24はブランチノード
であるか否かを判断し(ステップ231)、ブランチノ
ードの場合にはエクステント配列をオフセットで検索し
(ステップ232)、ステップ231へ移行する。
【0148】ブランチノードではない場合、ファイルサ
ーバ機24はエクステント配列をオフセットで検索し
(ステップ233)、処理を終了する。つまり、リーフ
ノードのエクステント配列をオフセットで検索する。
【0149】次に、エクステント割り当て処理を図21
に従って説明する。先ず、ファイルサーバ機24は、要
求長から検索対象の空きエクステント・マップ(FSE
M又はFCEM)を選択し(ステップ241)、ヒント
オフセットリストから空きエクステントのオフセットを
取得する(ステップ242)。
【0150】ヒントオフセットリストは、フリーキャッ
シュ・エクステントやフリーストレージ・エクステント
の検索を高速化するための仕組みである。過去にFCE
MやFSEMに返却されたキャッシュ・エクステントや
ストレージ・エクステントのオフセット(キャッシュ上
のアドレスやストレージ上のオフセット)を蓄積してお
き、蓄積された情報を参照して検索することにより次回
の検索が省略できる。
【0151】次に、ファイルサーバ機24は、ヒントオ
フセットが得られたか否かを判断し(ステップ24
3)、得られた場合には空きエクステント・マップ(F
SEM又はFCEM)をオフセットで検索する(ステッ
プ244)。
【0152】次に、ファイルサーバ機24は、空きエク
ステントがあるか否かを判断し(ステップ245)、空
きがある場合には空きエクステント・マップから空きエ
クステントをアンバインドする(ステップ246)。
【0153】次に、ファイルサーバ機24は、取得した
空きエクステントが要求長より大きいか否かを判断し
(ステップ247)、大きい場合にはエクステントを要
求長で分割し残りを空きエクステント・マップにバイン
ドする(ステップ248)。要求長は、エクステントに
格納するデータの量に対応する。
【0154】そして、ヒントオフセットリストにバイン
ドしたエクステントのオフセットを登録する(ステップ
249)。一方、ステップ247において要求長よりも
大きくない場合、ファイルサーバ機24はエクステント
割り当て処理を終了する。
【0155】ステップ243においてヒントオフセット
が得られない場合、ファイルサーバ機24は検索対象の
空きエクステント・マップを1クラス小さいものに変更
する(ステップ250)。そして、空きエクステントが
選択できたか否かを判断し(ステップ251)、できた
場合にはステップ242へ、できない場合には処理を終
了する。
【0156】図22は、バインド処理のフローチャート
である。ファイルサーバ機24は、先ずCEMにルート
ノードがあるか否かを判断し(ステップ261)、無い
場合にはルートノードを割り当て、リーフノードとして
初期化する(ステップ262)。
【0157】次に、ファイルサーバ機24は、ブランチ
ノードであるか否かを判断し(ステップ263)、ブラ
ンチノードの場合にはエクステント配列をオフセットで
検索する(ステップ264)。
【0158】次に、ファイルサーバ機24は、エクステ
ントがあるか否かを判断し(ステップ265)、ある場
合にはステップ263へ移行し、無い場合には最終エク
ステントを選択(ステップ266)してステップ263
へ移行する。
【0159】一方、ステップ263においてブランチノ
ードではない場合、ファイルサーバ機24は、エクステ
ントを挿入し(ステップ267)、リーフノードの分割
が必要か否かを判断する(ステップ268)。その分割
が必要な場合にはリーフノードを分割して(ステップ2
69)ステップ267へ移行し、必要がない場合には処
理を終了する。
【0160】図23は、アンロック処理のフローチャー
トである。アンロック処理は、クエリ処理によってキャ
ッシュ・エクステントに施されたロックを解除する処理
であり、クエリ処理とセットで使用される。クエリ処理
によって返されるキャッシュ・エクステントは排他のた
めのロックがされた状態(図18のステップ206)に
ある。このロックされたキャッシュ・エクステントを他
から利用するために、このロックを解除する。 ファイ
ルサーバ機24は、キャッシュ・エクステントを検索し
(ステップ271)、ロックカウントをディクリメント
する(ステップ272)。そして、ロックカウントが
「0」(ゼロ)か否かを判断し(ステップ273)、
「0」でない場合には処理を終了し、「0」の場合には
BUSYフラグを下ろす(ステップ274)。次に、W
ANTフラグが立っているか否かを判断し(ステップ2
75)、立っている場合には待ちスレッドを起動する
(ステップ276)。
【0161】一方、ステップ275においてウエイトフ
ラグが立っていない場合、パージ記述子が全て使用中か
否かを判断する(ステップ277)。キャッシュ対象と
キャッシュ・エクステントのマッピングを解消し、キャ
ッシュ・エクステントを返却することをパージと呼ぶ。
パージ記述子はパージ処理に必要な情報(CEMを検索
するための情報)を保持する。
【0162】パージは「アンロック」時点で可能となる
が、これをできるだけ保留することによって同じキャッ
シュ対象への「クエリ」を高速に処理するいわゆる「キ
ャッシュ・ヒット」させることができる。このパージを
保留するためにパージ記述子を使用する。
【0163】「アンロック」時点にパージ記述子を作成
しLRUリストにつなぎ、一定時間毎にLRUリスト先
頭のパージ記述子が処理される。パージ記述子が処理さ
れる前に再び「クエリ」されることでパージ記述子はL
RUリストから取り除かれる。
【0164】パージ記述子は、キャッシュID,オフセ
ット,長さ,リスト上での前と後ろのエントリのメモリ
上のアドレスからなる。キャッシュIDは、ファイルI
D,オブジェクトID,ストレージIDの何れかであ
る。例えば、パージ記述子は、「0x100000005, 0x10000
00, 0x8000, 0x6bef8f88, 0x0」のように表される。こ
の例において、「0x100000005 」はファイルID、「0x
1000000 」はオフセット、「0x8000」は長さ、「0x6bef
8f88」はリスト上の後のエントリのアドレス、「0x0 」
はリスト上の前のエントリのアドレスである。この例
は、LRUリストの先頭にあるパージ記述子を示す。
【0165】全てのパージ記述子が使用中の場合にはキ
ャッシュ・エクステントをパージし(ステップ27
8)、パージ・デーモンを起動する(ステップ27
9)。パージ記述子が全て使用中ではない場合、パージ
記述子を作成し、キューにつなげる(ステップ28
0)。そして、パージキューの長さが上水線(基準値)
を超えているか否かを判断し(ステップ281)、超え
ている場合にはステップ279においてパージ・デーモ
ンを起動し、超えていない場合には処理を終了する。
【0166】図24は、パージ処理のフローチャートで
ある。先ず、ファイルサーバ機24は、キャッシュ・エ
クステントを検索し(ステップ291)、キャッシュ・
エクステントの内容をコミットする(ステップ29
2)。次に、キャッシュIDがストレージIDか否かを
判断し(ステップ293)、ストレージIDの場合には
キャッシュ・エクステントをストレージからアンバイン
ドし(ステップ294)、処理を終了する。
【0167】キャッシュIDがストレージIDではない
場合、キャッシュIDがオブジェクトIDか否かを判断
する(ステップ295)。オブジェクトIDの場合には
ストレージ・エクステントを検索し(ステップ29
6)、ストレージに対して再帰的にパージを実行し(ス
テップ297)、キャッシュ・エクステントをオブジェ
クトからアンバインドし(ステップ298)、処理を終
了する。
【0168】キャッシュIDがオブジェクトIDではな
い場合、オブジェクトを検索し(ステップ299)、オ
ブジェクトに対して再帰的にパージを実行し(ステップ
300)、キャッシュ・エクステントをファイルからア
ンバインドし(ステップ301)、処理を終了する。
【0169】図25は、コミット処理のフローチャート
である。先ず、ファイルサーバ機24は、キャッシュ・
エクステントを検索し(ステップ311)、キャッシュ
IDがストレージIDか否かを判断する(ステップ31
2)。ストレージIDの場合にはキャッシュ・エクステ
ントの内容をディスク装置35に書き出し(ステップ3
13)、処理を終了する。
【0170】キャッシュIDがストレージIDではない
場合、キャッシュIDがオブジェクトIDか否かを判断
する(ステップ314)。オブジェクトIDの場合には
ストレージ・エクステントを検索し(ステップ31
5)、キャッシュ・エクステントの内容をストレージ・
エクステントに書き出し(ステップ316)、処理を終
了する。
【0171】キャッシュIDがオブジェクトIDではな
い場合、オブジェクトを検索し(ステップ317)、キ
ャッシュ・エクステントの内容をオブジェクトに書き出
し(ステップ318)、処理を終了する。
【0172】図26は、アンバインド処理のフローチャ
ートである。先ず、ファイルサーバ機24は、ブランチ
ノードであるか否かを判断し(ステップ321)、ブラ
ンチノードの場合にはエクステント配列をオフセットで
検索し(ステップ322)、ステップ321へ移行す
る。
【0173】ブランチノードではない場合、ファイルサ
ーバ機24は、エクステントを削除し(ステップ32
3)、ノードにエクステントがないか否かを判断し(ス
テップ324)、無い場合にはB−treeの縮小処理
を実行し(ステップ325)、処理を終了する。また、
ノードにエクステントがある場合にも処理を終了する。
【0174】図27は、パージ・デーモンの処理フロー
チャートである。ファイルサーバ機24(CPU31)
は、起こされるまで待機し(ステップ331)、パージ
キューの長さが上水線を越えているか否かを判断する
(ステップ332)。そして、超えている場合にはパー
ジ記述子をキューからはずし、記述子の内容に従ってパ
ージし(ステップ333)、ステップ332へ移行し、
超えていない場合には再び起こされるまで待機する。
【0175】図28は、コミット・デーモンの処理フロ
ーチャートである。ファイルサーバ機24(CPU3
1)は、一定時間スリープし(ステップ341)、パー
ジキューの長さが下水線(基準値)未満か否かを判断し
ステップ342)、未満の場合は再びスリープする。
【0176】パージキューの長さが下水線以上の場合、
コミット回数が一定回数未満か否かを判断し(ステップ
343)、その場合にはディスク装置35にバインドさ
れているキャッシュ・エクステントを検索する(ステッ
プ344)。そして、キャッシュ・エクステントがある
か否かを判断し(ステップ345)、ある場合にはキャ
ッシュ・エクステントの内容をディスク装置35に書き
出す(ステップ346)。そして、パージキューを一巡
したか否か(パージキューに接続された全てのキャッシ
ュ・エクステントについて実施したか否か)を判断し
(ステップ347)、一巡している場合にはステップ3
42へ移行する。一巡していない場合及びキャッシュ・
エクステントが無い(ステップ345)場合、ステップ
343へ移行する。
【0177】以上記述したように、本実施の形態によれ
ば、以下の効果を奏する。 (1)ファイルサーバ機24のMBC機構42は、キャ
ッシュメモリ44を複数のエクステントの集まりとして
管理する。ディスク装置35のディスクブロックからオ
ブジェクトが構成され、オブジェクトからファイルが構
成される階層構造において、MBC機構42は、階層レ
ベルと同一階層レベル内のオブジェクト識別子からなる
キャッシュIDを生成する。更に、キャッシュIDとキ
ャッシュ・エクステントの関連をキャッシュIDに特有
なキーで保持するキャッシュ・ヘッダを管理するテーブ
ルを階層毎に作成する。そして、ディスク装置35の内
容に対するアクセスに応答してキャッシュ・ヘッダ・テ
ーブルを、アクセスするオブジェクトのキャッシュID
とキーで検索するようにした。その結果、各オブジェク
ト(ファイル、オブジェクト、ディスクブロック)に対
応するキャッシュメモリが必要なく、キャッシュメモリ
間でデータコピーをする必要がないので、オーバーヘッ
ドを少なくすることができる。
【0178】尚、前記実施形態は、以下の態様に変更し
てもよい。 ・上記実施形態のファイルサーバ機24〜26を、別の
形態のシステムに適用しても良い。
【0179】例えば、図29に示す高速大容量データベ
ース向けシステム150に適用する。このシステム15
0は、複数(図において3つ)のクライアント機21,
22,23と、サーバ・クラスタ・システム151がネ
ットワーク27に接続されてなる。サーバ・クラスタ・
システム151は、複数(図において12台)のファイ
ルサーバ機152から構成される。これらファイルサー
バ機152は、上記実施形態のファイルサーバ機24〜
26と実質的に同一の機能を持ち、ノードと呼ばれる。
ノード数はシステム150にて要求される入出力性能要
件により決定される。このシステム150では、データ
ベース(ファイル)の構成オブジェクトをサーバ・クラ
スタ・システム151の各ノードに分散配置する。この
ような構成により、大容量のデータベースを高速にアク
セスすることができる。
【0180】また、図30に示すクラスタ・システム1
60に適用する。このシステム160は、複数(図にお
いて12)のノード161がネットワーク27を介して
相互に接続されてなる。各ノード161はクライアント
機162とファイルサーバ機163から構成されてい
る。従って、各ノード161は、実質的に同じ機能を有
している。そして、クラスタ・システム160全体で1
つのファイルシステムビューを構成する。そして、各ノ
ード161に対してオブジェクトを冗長配置する、即
ち、複数のノード161に実質的に同じオブジェクトを
配置する(オブジェクトをコピーする)。このため、1
つ又はいくつかのノード161が故障しても、同じ機能
を持つ他のノード161にオブジェクトが配置されてい
れば、システム160の稼働に影響はない。即ち、ノー
ドの数とオブジェクト配置の冗長度により稼働率を高
め、耐ノード故障性を設定することができる。
【0181】また、図31に示す並列計算システム17
0に適用する。このシステム170は、クライアント・
システム171とファイルサーバ機172がネットワー
ク27を介して接続されてなる。クライアント・システ
ム171は、複数(図において12)の計算ノード17
3からなり、各計算ノード173は並列的に動作する。
従って、ファイルサーバ機172に格納したファイルに
対する処理を各計算ノード173に分担させる、即ち各
計算ノード173の処理範囲を設定することで、演算処
理時間を極めて短縮することができる。
【0182】以上の様々な実施の形態をまとめると、以
下のようになる。 (付記1) クライアント機とディスク装置の間に設け
られたキャッシュ領域に前記ディスク装置の内容の一部
を記憶させ、該内容に対するアクセスに応答して前記キ
ャッシュ領域に記憶した内容を前記クライアント機へデ
ータ転送するファイル制御装置にて実行されるキャッシ
ュ制御プログラムであって、前記ファイル制御装置は、
前記キャッシュ領域を複数のエクステントの集まりとし
て管理し、一次オブジェクトから二次オブジェクトが構
成され、二次オブジェクトから三次オブジェクトが構成
されるような階層構造において、階層レベルと同一階層
レベル内のオブジェクト識別子からなるキャッシュID
を生成し、前記キャッシュIDとキャッシュ・エクステ
ントの関連をキャッシュIDに特有なキーで保持するキ
ャッシュ・ヘッダを管理するテーブルを階層毎に作成
し、前記ディスク装置の内容に対するアクセスに応答し
て前記テーブルを、アクセスするオブジェクトのキャッ
シュIDと前記キーで検索すること、を実行するキャッ
シュ制御プログラム。 (付記2) 前記ファイル制御装置は、前記一次オブジ
ェクトに関連付けたキャッシュ・エクステントを、他の
階層のオブジェクトの対応する部分に対してそれぞれの
階層のキャッシュ・ヘッダにより関連付けること、を実
行する付記1記載のキャッシュ制御プログラム。 (付記3) 前記ファイル制御装置は、前記各層のオブ
ジェクトのそれぞれを関連付けたマップを記憶し、該テ
ーブルにより各層のオブジェクトを相互に検索するこ
と、を実行する付記1又は2記載のキャッシュ制御プロ
グラム。 (付記4) 前記テーブルを複数のブロックにて構成
し、各ブロックを複数のエントリにて構成し、前記ファ
イル制御装置は、前記テーブルのエントリを用いて前記
エクステントを管理するマップを作成し、前記アクセス
時に該マップを検索すること、を実行する付記1乃至3
のうちの何れか一に記載のキャッシュ制御プログラム。 (付記5) 前記クライアント機及び前記ファイル制御
装置はネットワークに接続され、前記キャッシュIDに
はネットワーク上の特定ドメインにおけるノードの識別
番号が含まれ、前記ファイル制御装置はキャッシュ・ヘ
ッダのテーブルを、前記ネットワークを介してノード間
で配布すること、を実行する付記1乃至4のうちの何れ
か一に記載のキャッシュ制御プログラム。 (付記6) クライアント機とディスク装置の間に設け
られたキャッシュ領域に前記ディスク装置の内容の一部
を記憶させ、該内容に対するアクセスに応答して前記キ
ャッシュ領域に記憶した内容を前記クライアント機へデ
ータ転送するファイル制御装置におけるキャッシュ制御
方法であって、前記ファイル制御装置は、前記キャッシ
ュ領域を複数のエクステントの集まりとして管理し、一
次オブジェクトから二次オブジェクトが構成され、二次
オブジェクトから三次オブジェクトが構成されるような
階層構造において、階層レベルと同一階層レベル内のオ
ブジェクト識別子からなるキャッシュIDを生成し、前
記キャッシュIDとキャッシュ・エクステントの関連を
キャッシュIDに特有なキーで保持するキャッシュ・ヘ
ッダを管理するテーブルを階層毎に作成し、前記ディス
ク装置の内容に対するアクセスに応答して前記テーブル
を、アクセスするオブジェクトのキャッシュIDと前記
キーで検索すること、を特徴とするキャッシュ制御方
法。 (付記7) クライアント機とディスク装置の間に設け
られたキャッシュ領域に前記ディスク装置の内容の一部
を記憶させ、該内容に対するアクセスに応答して前記キ
ャッシュ領域に記憶した内容を前記クライアント機へデ
ータ転送するファイル制御装置であって、前記キャッシ
ュ領域を複数のエクステントの集まりとして管理し、一
次オブジェクトから二次オブジェクトが構成され、二次
オブジェクトから三次オブジェクトが構成されるような
階層構造において、階層レベルと同一階層レベル内のオ
ブジェクト識別子からなるキャッシュIDを生成し、前
記キャッシュIDとキャッシュ・エクステントの関連を
キャッシュIDに特有なキーで保持するキャッシュ・ヘ
ッダを管理するテーブルを階層毎に作成し、前記ディス
ク装置の内容に対するアクセスに応答して前記テーブル
を、アクセスするオブジェクトのキャッシュIDと前記
キーで検索すること、を特徴とするファイル制御装置。 (付記8) クライアント機とディスク装置の間に設け
られたキャッシュ領域に前記ディスク装置の内容の一部
を記憶させ、該内容に対するアクセスに応答して前記キ
ャッシュ領域に記憶した内容を前記クライアント機へデ
ータ転送するファイル制御装置におけるキャッシュ制御
プログラムを記録した記録媒体であって、前記ファイル
制御装置は、前記キャッシュ領域を複数のエクステント
の集まりとして管理し、一次オブジェクトから二次オブ
ジェクトが構成され、二次オブジェクトから三次オブジ
ェクトが構成されるような階層構造において、階層レベ
ルと同一階層レベル内のオブジェクト識別子からなるキ
ャッシュIDを生成し、前記キャッシュIDとキャッシ
ュ・エクステントの関連をキャッシュIDに特有なキー
で保持するキャッシュ・ヘッダを管理するテーブルを階
層毎に作成し、前記ディスク装置の内容に対するアクセ
スに応答して前記テーブルを、アクセスするオブジェク
トのキャッシュIDと前記キーで検索すること、を特徴
とするキャッシュ制御プログラムを記録した記録媒体。
【0183】
【発明の効果】以上詳述したように、本発明によれば、
各オブジェクトに対応するキャッシュメモリが必要な
く、キャッシュメモリ間のコピーが不要になるのでオー
バーヘッドを少なくすることができる。
【図面の簡単な説明】
【図1】 一実施形態のファイルサーバ機の機能説明図
である。
【図2】 一実施形態のネットワークシステムの概略構
成図である。
【図3】 一実施形態のファイルサーバ機の概略構成図
である。
【図4】 ファイルサーバ機のファイル記録の説明図で
ある。
【図5】 テーブルの構造を示す説明図である。
【図6】 データ・エントリとエクステントの関係を示
す説明図である。
【図7】 マップの構造を示す説明図である。
【図8】 データ・エントリとマップの関係を示す説明
図である。
【図9】 エクステントによるノードの関連付けを示す
説明図である。
【図10】 エクステントの検索の説明図である。
【図11】 エクステントの挿入の説明図である。
【図12】 エクステントの削除の説明図である。
【図13】 各種テーブルの関係を示す説明図である。
【図14】 CHTによる関連付けの説明図である。
【図15】 OTによる関連付けの説明図である。
【図16】 FTによる関連付けの説明図である。
【図17】 各種テーブルによる関連付けの説明図であ
る。
【図18】 クエリ処理のフローチャートである。
【図19】 クエリ処理のフローチャートである。
【図20】 エクステント検索処理のフローチャートで
ある。
【図21】 エクステント割り当て処理のフローチャー
トである。
【図22】 バインド処理のフローチャートである。
【図23】 アンロック処理のフローチャートである。
【図24】 パージ処理のフローチャートである。
【図25】 コミット処理のフローチャートである。
【図26】 アンバインド処理のフローチャートであ
る。
【図27】 パージ・デーモンの処理フローチャートで
ある。
【図28】 コミット・デーモンの処理フローチャート
である。
【図29】 適用される別のシステム構成の説明図であ
る。
【図30】 適用される別のシステム構成の説明図であ
る。
【図31】 適用される別のシステム構成の説明図であ
る。
【図32】 従来のファイルサーバ機のファイル記録の
説明図である。
【図33】 従来のファイルサーバ機の機能説明図であ
る。
【図34】 従来のファイルサーバ機のアクセス手順の
説明図である。
【符号の説明】
21,22,23 クライアント機 24,25,26 ファイルサーバ機 27 ネットワーク 35 ディスク装置 42 マルチ・バインド・キャッシュ機構 44 キャッシュメモリ 81 ファイル(三次オブジェクト) 82 オブジェクト(二次オブジェクト) 83 ディスクブロック(ストレージ・エクステント、
一次オブジェクト) 84 キャッシュ・エクステント 87〜89 キャッシュ・エクステント・テーブル
───────────────────────────────────────────────────── フロントページの続き (72)発明者 加藤 裕二 愛知県名古屋市東区葵1丁目16番38号 株 式会社富士通プライムソフトテクノロジ内 Fターム(参考) 5B065 BA01 CA14 CE12 CH02 5B082 FA12 HA02

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 クライアント機とディスク装置の間に設
    けられたキャッシュ領域に前記ディスク装置の内容の一
    部を記憶させ、該内容に対するアクセスに応答して前記
    キャッシュ領域に記憶した内容を前記クライアント機へ
    データ転送するファイル制御装置にて実行されるキャッ
    シュ制御プログラムであって、 前記ファイル制御装置は、 前記キャッシュ領域を複数のエクステントの集まりとし
    て管理し、 一次オブジェクトから二次オブジェクトが構成され、二
    次オブジェクトから三次オブジェクトが構成されるよう
    な階層構造において、階層レベルと同一階層レベル内の
    オブジェクト識別子からなるキャッシュIDを生成し、 前記キャッシュIDとキャッシュ・エクステントの関連
    をキャッシュIDに特有なキーで保持するキャッシュ・
    ヘッダを管理するテーブルを階層毎に作成し、 前記ディスク装置の内容に対するアクセスに応答して前
    記テーブルを、アクセスするオブジェクトのキャッシュ
    IDと前記キーで検索すること、を実行するキャッシュ
    制御プログラム。
  2. 【請求項2】 前記ファイル制御装置は、前記一次オブ
    ジェクトに関連付けたキャッシュ・エクステントを、他
    の階層のオブジェクトの対応する部分に対してそれぞれ
    の階層のキャッシュ・ヘッダにより関連付けること、を
    実行する請求項1記載のキャッシュ制御プログラム。
  3. 【請求項3】 前記ファイル制御装置は、前記各層のオ
    ブジェクトのそれぞれを関連付けたマップを記憶し、該
    テーブルにより各層のオブジェクトを相互に検索するこ
    と、を実行する請求項1又は2記載のキャッシュ制御プ
    ログラム。
  4. 【請求項4】 前記テーブルを複数のブロックにて構成
    し、各ブロックを複数のエントリにて構成し、 前記ファイル制御装置は、前記テーブルのエントリを用
    いて前記エクステントを管理するマップを作成し、前記
    アクセス時に該マップを検索すること、を実行する請求
    項1乃至3のうちの何れか一項に記載のキャッシュ制御
    プログラム。
  5. 【請求項5】 前記クライアント機及び前記ファイル制
    御装置はネットワークに接続され、 前記キャッシュIDにはネットワーク上の特定ドメイン
    におけるノードの識別番号が含まれ、 前記ファイル制御装置はキャッシュ・ヘッダのテーブル
    を、前記ネットワークを介してノード間で配布するこ
    と、を実行する請求項1乃至4のうちの何れか一項に記
    載のキャッシュ制御プログラム。
JP2003067077A 2002-03-15 2003-03-12 キャッシュ制御プログラム Expired - Fee Related JP4299555B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003067077A JP4299555B2 (ja) 2002-03-15 2003-03-12 キャッシュ制御プログラム
US10/748,659 US7210021B2 (en) 2002-03-15 2003-12-31 Cache control program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002-72233 2002-03-15
JP2002072233 2002-03-15
JP2003067077A JP4299555B2 (ja) 2002-03-15 2003-03-12 キャッシュ制御プログラム

Publications (2)

Publication Number Publication Date
JP2003337727A true JP2003337727A (ja) 2003-11-28
JP4299555B2 JP4299555B2 (ja) 2009-07-22

Family

ID=29714213

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003067077A Expired - Fee Related JP4299555B2 (ja) 2002-03-15 2003-03-12 キャッシュ制御プログラム

Country Status (2)

Country Link
US (1) US7210021B2 (ja)
JP (1) JP4299555B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160544A (ja) * 2009-01-06 2010-07-22 Core Micro Systems Inc キャッシュメモリシステム及びキャッシュメモリの制御方法

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716184B1 (en) * 2003-06-12 2010-05-11 Symantec Operating Corporation System and method for performing sparse backups
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
WO2007099643A1 (ja) * 2006-03-03 2007-09-07 Fujitsu Limited マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
JP2008077290A (ja) * 2006-09-20 2008-04-03 Hitachi Ltd 情報処理装置及び情報処理方法並びにストレージシステム
US7796625B2 (en) * 2007-01-10 2010-09-14 International Business Machines Corporation Recovery flushing for a network packet dispatcher
US20080228920A1 (en) * 2007-03-16 2008-09-18 Souders Steven K System and method for resource aggregation and distribution
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US8171220B2 (en) * 2009-04-24 2012-05-01 International Business Machines Corporation Cache architecture with distributed state bits
US8555019B2 (en) 2010-09-08 2013-10-08 International Business Machines Corporation Using a migration cache to cache tracks during migration
US8850130B1 (en) * 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
US10210499B1 (en) 2014-12-15 2019-02-19 Wells Fargo Bank, N.A. Global cache tool systems and methods for adding new payees
US10372607B2 (en) * 2015-09-29 2019-08-06 Veritas Technologies Llc Systems and methods for improving the efficiency of point-in-time representations of databases
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
CN108399050B (zh) * 2018-02-02 2021-06-29 新华三技术有限公司 一种数据处理方法及装置
US10909121B2 (en) * 2019-02-22 2021-02-02 Snowflake Inc. Storing multi-level metadata in database systems

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5933849A (en) 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6134558A (en) * 1997-10-31 2000-10-17 Oracle Corporation References that indicate where global database objects reside
JP2001318902A (ja) 2000-05-09 2001-11-16 Matsushita Electric Ind Co Ltd キャッシュ装置
US20030188021A1 (en) * 2001-12-19 2003-10-02 International Business Machines Corporation Method and system for processing multiple fragment requests in a single message

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160544A (ja) * 2009-01-06 2010-07-22 Core Micro Systems Inc キャッシュメモリシステム及びキャッシュメモリの制御方法

Also Published As

Publication number Publication date
US7210021B2 (en) 2007-04-24
US20040221089A1 (en) 2004-11-04
JP4299555B2 (ja) 2009-07-22

Similar Documents

Publication Publication Date Title
JP4299555B2 (ja) キャッシュ制御プログラム
US9959279B2 (en) Multi-tier caching
JP4568115B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US7720892B1 (en) Bulk updates and tape synchronization
US7640262B1 (en) Positional allocation
US7930559B1 (en) Decoupled data stream and access structures
CA2436517C (en) Method and apparatus for data processing
US6782389B1 (en) Distributing files across multiple, permissibly heterogeneous, storage devices
US7673099B1 (en) Affinity caching
US6651075B1 (en) Support for multiple temporal snapshots of same volume
US8108587B2 (en) Free-space reduction in cached database pages
JP2004178289A (ja) スナップショット取得方法、ディスク装置及びストレージシステム
JPH05210637A (ja) 同時アクセス管理方法
JP2001516099A (ja) スナップショットコピー動作のためのデータファイル格納管理システム
JP2002082775A (ja) 計算機システム
US7225314B1 (en) Automatic conversion of all-zero data storage blocks into file holes
WO2004055675A1 (ja) ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム
Lovelace et al. VSAM demystified
US7177980B2 (en) Cache storage system and method
JPWO2004036432A1 (ja) データベースのアクセラレーター
JP2004078398A (ja) 仮想ボリューム管理方式
WO1998026352A1 (fr) Procede de commande de prelecture de fichiers dans un systeme d'ordinateur
US10387384B1 (en) Method and system for semantic metadata compression in a two-tier storage system using copy-on-write
US7424574B1 (en) Method and apparatus for dynamic striping
CN111274259A (zh) 一种分布式存储系统中存储节点的数据更新方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20050913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050921

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090323

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090417

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140424

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees