JP3545906B2 - ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 - Google Patents
ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 Download PDFInfo
- Publication number
- JP3545906B2 JP3545906B2 JP13947297A JP13947297A JP3545906B2 JP 3545906 B2 JP3545906 B2 JP 3545906B2 JP 13947297 A JP13947297 A JP 13947297A JP 13947297 A JP13947297 A JP 13947297A JP 3545906 B2 JP3545906 B2 JP 3545906B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- buffer
- nodes
- node
- file system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1858—Parallel file systems, i.e. file systems supporting multiple processors
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は,複数の計算機を高速の接続網で接続した並列計算機上で動作する並列プログラム向けファイルシステム(パラレルファイルシステム)の性能を向上させることができるようにしたファイルシステム制御方法,そのパラレルファイルシステムおよびそれを実現するためのプログラム記憶媒体に関する。
【0002】
【従来の技術】
ユーザプログラムが動作する複数の計算機(これをクライアントノードという)から,ネットワークを介して他のI/Oノードである計算機(これをサーバノードという)上のファイルをアクセスする際の高速化手法として,クライアント側にキャッシュを持ち,クライアント・サーバ間を流れるデータ量の最小化を図るクライアントキャッシュ方式がよく知られている。
【0003】
しかし,クライアントキャッシュ方式においては,複数のノードが同一のファイルを同時に更新する,いわゆるライトシェア(write share)が一般的であるような環境下では,クライアントキャシュの使用権の獲得制御やキャッシュデータの無効化処理に伴うオーバヘッドが増大するという問題がある。
【0004】
この問題を解決する方法として,ユーザプログラムからリード(read)/ライト(write)要求が発行される度にサーバノードと通信を行うクライアントキャッシュレス方式もよく採用されている。しかし,クライアントキャッシュレス方式においては,ユーザプログラムが発行するリード/ライトのデータ長が小さいと,通信オーバヘッドが急激に増大し,かつI/Oノードストライピングの効果を発揮できなくなるという欠点がある。
【0005】
クライアントキャッシュレス方式のもとでユーザプログラムが発行するリード/ライトのデータ長を大きくする手法として,ストライドアクセスインタフェースが提案されている。ストライドアクセスインタフェースは,ファイルに対する離散シーケンシャルアクセスのパターンを宣言することにより,複数のファイル区画に対するアクセスを一回のリード/ライト要求で処理するものである。すなわち,ストライドアクセスでは,例えばあるファイルの1000バイト目から200バイト,2000バイト目から200バイト,3000バイト目から200バイト,…というような飛び飛びのデータをアクセスする場合に,アクセス対象データの配置パターンを宣言することによって,一回のリード/ライト要求で処理する。
【0006】
ストライドアクセスインタフェースは,個々にリード/ライト要求を発行する場合に比べて,ファイルシステムによる最適化が可能であり,ネットワークの使用効率を高めることができる。
【0007】
一方,パラレルファイルシステムの重要な構成要素であるディスク記憶装置(以下,ディスクという)は,シーケンシャルにアクセスされた時に最高の性能を発揮することができ,ランダムにアクセスされるとシーク時間や回転待ち時間のため大幅に性能が劣化するという特性を持つ。この特性を利用し,複数のクライアントノードから発行された互いに関連することを宣言されたストライドアクセスインタフェースの要求をまとめて評価し,ディスクアクセスをシーケンシャルなものに変換する手法としてコレクティブI/Oが知られている。
【0008】
コレクティブI/Oでは,サーバノードは,ディスクアクセスとデータ転送のスケジューリングを行い,関連する全クライアントノードのアクセス要求を合体して入出力(I/O)を実行することにより,ディスクアクセスおよび転送時間の最小化を図る。
【0009】
【発明が解決しようとする課題】
ストライドアクセスインタフェースやコレクティブI/Oの技法は,並列プログラムの入出力を大幅に向上させる技法ではあるが,従来,並列プログラムを作成する前提となっていた,例えばUNIXシステムなどの既存のファイルアクセスインタフェースとは大きく異なること,またユーザプログラムが大きなI/Oバッファを用意しないと効果がないことなどから,既存のプログラムの大幅修正が必要となるという欠点がある。
【0010】
また,クライアントキャッシュ方式は,データ長の小さいリード/ライト要求を効率よく処理でき,しかも既存のプログラムを無修正で使える利点があるが,キャッシュコンシステンシを保証するためのオーバヘッドが大きいという欠点がある。
【0011】
本発明は上記問題点の解決を図り,既存のプログラムを大幅に変更することなく,パラレルファイルシステムの性能を向上させる手段を提供することを目的とする。
【0015】
【課題を解決するための手段】
本発明は,複数のクライアントノードがネットワークを介して複数のサーバノードに接続され,ストライプ配置によりデータが所定の大きさで前記複数のサーバノード上に分割して配置されたファイルを共用するネットワークファイルシステムにおいて,各クライアントノードは,ユーザプログラムの発行したライト要求のデータを一旦バッファに蓄積し,バッファが一杯になった時点またはバッファ内のデータが所定量以上になった時点で一括して複数のサーバノードへ送り出し,ユーザプログラムの発行したリード要求に対しては,複数のサーバノードからデータを一括して先読みし,後続のリード要求に対してバッファ内のデータで解決する(先読みしたバッファ内のデータをユーザバッファへコピーする)ことを特徴とする。
【0016】
データ長の小さなライト要求を多用するユーザプログラムの場合でも,データが一旦バッファに蓄えられ,バッファが一杯となったところで複数のサーバノードへデータが並列に送られるので,データ長の大小にかかわらずI/Oノードストライピングの効果を発揮することができる。データ長が小さいリード要求が多発する環境でも全サーバノードからバッファ分のデータが一括して先読みされるので,データ長の大小にかかわらずサーバノード数に比例した性能を発揮することができる。
【0017】
さらに,各クライアントノードは,前記バッファをファイルがストライプ配置されたサーバノード単位に複数用意し,ユーザプログラムの発行したライト要求のデータにより一つのバッファが一杯になったときに,他のバッファに所定量以上のデータが蓄積されていれば同時に複数のサーバノードへデータを送り出すようにする。
【0018】
これにより,バッファをサーバノードとの間の通信バッファとしてそのまま使うことができ,例えばユーザバッファからシステムバッファへのコピー,システムバッファから転送用バッファへのコピーというような無駄なメモリコピーを削減できる。また,一つのバッファが一杯になった時に他のノード用バッファ中のデータを同時に送り出すので,データ長がストライプ幅に比べて小さいリード/ライト要求が多い環境下でも,サーバノード数に比例した高い性能を実現できる。
【0019】
また,本発明に関連する技術は,複数のクライアントノードがネットワークを介して1または複数のサーバノード上のファイルを共用するネットワークファイルシステムにおいて,サーバノードは,クライアントノードから直前のアクセスと非連続な範囲をアクセスする要求を受け取ると,他のクライアントノードからの要求が到着していないかをチェックし,アクセスが記憶媒体のアドレスの昇順になるように要求の処理順序を並べ替えてI/Oを実行することを特徴とする。
【0020】
クライアントノード上で動くユーザプログラムがファイルをアドレスの昇順に不連続にアクセスした場合にも,複数のクライアントからの要求を評価し,ディスクアクセスが連続シークエンシャルになるように要求の処理順を並べ替えることにより,ファイルが格納されたディスクの無駄な回転待ちやシーク時間が不要となり,高性能を発揮することができる。
【0021】
また,本発明に関連する技術は,複数のクライアントノードがネットワークを介して1または複数のサーバノード上のファイルを共用するネットワークファイルシステムにおいて,サーバノードは,アクセス要求を記憶媒体のアドレスの昇順になるように並べ替えて処理するシーケンシャルモードと,アクセス要求を受け付けた順に処理する非シーケンシャルモードとの切り替え手段を持ち,各クライアントノードから発行されたアクセス要求が,記憶媒体のアドレスの昇順であるかどうかをクライアントノード単位に監視し,非シーケンシャルモードのときに,記憶媒体のアドレスの昇順にアクセスする要求がすべてのクライアントノードから所定の回数以上続くとシーケンシャルモードへ遷移し,シーケンシャルモードのときに,前記いずれかのクライアントノードから記憶媒体のアドレスの昇順でないアクセス要求がくると非シーケンシャルモードへ遷移することを特徴とする。
【0022】
このようにシーケンシャルモードと非シーケンシャルモードの自動切り替えを行うことにより,複数のアクセス要求に対する連続的なアクセスを効率的に行うとともに,連続的なアクセスとならないようなケースについて要求の無駄な待ち時間や並べ替えの時間を削減することができる。
【0023】
以上の処理を実現するためのクライアントノードまたはサーバノードで動作させるプログラムは,計算機が読み取り可能な適当な記憶媒体に格納することができる。
【0024】
【発明の実施の形態】
図1は,本発明の構成例を示すブロック構成図である。
図1において,1A〜1Cは並列プログラムを実行する計算機であるコンピュートノード,2は各コンピュートノード1A〜1Cで並列に動作するユーザプログラム(並列プログラム),3は並列プログラムから発行されるI/O要求を受け付けるファイルシステムクライアント部,4A〜4CはI/Oノード単位に用意されるバッファ,5A〜5Cはファイルへの入出力を行うI/Oノード,6はディスクが配置されたI/Oノード上でファイルシステムクライアント部3からの要求に従い実際にディスクをアクセスするファイルシステムサーバ部,7A〜7Cはファイルを格納するディスク,8はディスク7A〜7Cにデータがストライプ配置された(所定の大きさで分割して配置された)ファイルを表す。
【0025】
コンピュートノード1A〜1Cはクライアントノード,I/Oノード5A〜5Cはサーバノードであり,高速の接続網で接続されている。この例では,3台のコンピュートノード1A〜1Cが示されているが,複数台であれば何台でもよい。また,3台のI/Oノード5A〜5Cが示されているが任意の台数でよい。
【0026】
各コンピュートノード1A〜1Cでは,それぞれ並列プログラムとして構成されるユーザプログラム2とファイルシステムクライアント部3とが動作し,各I/Oノード5A〜5Cでは,ファイルシステムサーバ部6が動作する。ファイルシステムクライアント部3は,例えばプログラムライブラリの形で提供され,ユーザプログラム2と結合編集される。もちろん,ファイルシステムクライアント部3をオペレーティング・システムの一部として,ユーザプログラム2とは独立に組み込んでもよい。
【0027】
ファイルシステムクライアント部3は,ユーザプログラム2からの要求によりファイル8のオープン処理を行うオープン部31,リード要求を処理するリード部32,ライト要求を処理するライト部33,ファイル8をクローズするクローズ部34,ファイル更新通知部35,I/Oノード毎のバッファ管理部36を持つ。
【0028】
また,ファイルシステムサーバ部6は,ある一つのコンピュートノード1A〜1Cのファイル更新通知部35からの通知により該当する他のコンピュートノード1A〜1Cのファイル更新通知部35へ更新データの無効化を指示するデータ無効化指示部61と,各ディスク7A〜7Cに対するアクセス要求をアドレスの昇順に並べ替える要求アクセス並べ替え部62と,アクセスに関するシーケンシャルモードと非シーケンシャルモードとを切り替えるモード切り替え部63とを持つ。
【0029】
ファイルシステムクライアント部3において,I/Oノード毎のバッファ管理部36は,ファイル単位に各I/Oノード5A〜5Cに対応したバッファ4A〜4Cを管理する。
【0030】
ファイルシステムクライアント部3は,ユーザプログラム2からファイル更新通知部35が呼ばれる(propagate される)まで,ファイル更新データを自ノード内のバッファ4A〜4Cにバッファリングし,ファイル更新通知部35が呼ばれたら,ファイルの更新をファイルシステムサーバ部6へ通知する。ファイルシステムサーバ部6では,ファイル更新通知があると,他のコンピュートノード1A〜1Cが先読みしているデータをチェックし,必要ならデータ無効化指示部61によりファイルの更新に伴うデータの無効化を他のコンピュートノード1A〜1Cのファイル更新通知部35に指示する。その通知を受けたファイル更新通知部35は,バッファ4A〜4Cの該当データを無効化する。
【0031】
リード部32は,ユーザプログラム2の発行したリード要求に対して,要求されたデータとともに後続するデータを,複数のI/Oノード5A〜5Cからバッファ4A〜4Cに一括して先読みし,後続のリード要求に対しては,バッファ4A〜4C内のデータをユーザプログラム2内のユーザバッファへコピーする。
【0032】
ライト部33は,ユーザプログラム2の発行したライト要求のデータを一旦バッファ4A〜4Cに蓄積し,バッファ4A〜4Cが一杯になった時点で一括してI/Oノード5A〜5Cに送り出す。
【0033】
ファイルシステムサーバ部6の要求アクセス並べ替え部62は,直前のディスクアクセスと非連続な範囲をアクセスする要求を受け取ると,他のクライアント(コンピュートノード)からの要求が到着していないかどうかをチェックし,到着していれば,ディスクアクセスがアドレスの昇順となるように要求を並べ替え,その順にI/O処理を実行する。
【0034】
ファイルシステムサーバ部6は,要求アクセス並べ替え部62によってファイルシステムクライアント部3からのアクセス要求を各ディスク7A〜7Cのアドレスの昇順になるように並べ替えて処理するシーケンシャルモードと,アクセス要求を受け付けた順に処理する非シーケンシャルモードとを切り替えるモード切り替え部63を持つ。モード切り替え部63は,ファイルシステムクライアント部3から発行されたアクセス要求が,ディスク7A〜7Cのアドレスの昇順であるかどうかを,コンピュートノード単位に監視し,ディスク7A〜7Cのアドレスの昇順にアクセスする要求がすべてのコンピュートノード1A〜1Cから所定の回数以上続くと,シーケンシャルモードへ移行させ,いずれかのコンピュートノード1A〜1Cからディスク7A〜7Cのアドレスの昇順でないアクセス要求がくると非シーケンシャルモードへ移行させる。
【0035】
ユーザプログラム2は,ファイルシステムクライアント部3に対するオープン要求において,以上の機能を利用するかしないかを宣言することができる。以上の機能を利用しないことを宣言すれば,従来と同様なファイルアクセス制御が行われる。ファイルのライトシェアを行う既存の並列プログラム(ユーザプログラム2)は,ファイルオープン時に本発明の機能を有効にすることを宣言し,ファイルの更新が起こったことを他ノードに通知している個所に,ファイル更新通知部35をコール(propagate)するステートメントを追加するだけで,大きく変更することなく本機能を利用することができる。逐次プログラムの場合には,ファイルシステムクライアント部3が自動的に本機能を有効にする。
【0036】
従来のファイルのライトシェアを行う並列プログラムには,データのコンシステンシを保証するための論理が必ず組み込まれている。図2は,ファイルのライトシェアを行う並列プログラムの一般的な動作を示す図である。プロセス2A(process1)とプロセス2B(process2)は,並列プログラムを構成するサブプログラムであり,異なるコンピュートノード1A,1B上で動く。プロセス2Aは,ファイル8の準備が整ったことを他コンピュートノード1B上のプロセス2Bにメッセージを送ることにより通知している。
【0037】
すなわち,ライトシェアを行う並列プログラムでは,ファイルを更新したことを他のコンピュートノードで動く並列プログラムに通知する処理(notify nodeB)がプログラムに必ず含まれているはずであり,タイミング依存のシーケンシャルコンシステンシだけに頼っている訳はない。
【0038】
したがって,ライト結果を他のノードに反映するためのステートメントを既存のプログラムに追加するのは極めて容易である。この他に必要となるプログラム変更は,ファイルをオープンするステートメントに本機能を利用することを示すパラメータを追加するだけである。
【0039】
このように,本発明による並列ファイルアクセスに関する高性能化をユーザプログラムが享受するのに,既存の並列プログラムを若干修正するだけでよく,論理自体を変更する必要がない。逐次プログラムの場合には,システムが自動的に本機能を有効にすることにより,既存プログラムを修正しなくても,リード/ライト要求長にかかわらずコンスタントな高性能を得ることができる。
【0040】
以下,本発明の実施の形態についてさらに詳しく説明する。
〔1〕バッファの確保
ファイルシステムクライアント部3は,ファイルのオープン要求で,本発明の方式を有効化することをユーザプログラム2から通知されると,使用するI/Oノード5A〜5Cを決め,その数分のバッファ4A〜4Cを初期化する。
【0041】
リード/ライト要求がユーザプログラム2から発行されると,ファイルシステムクライアント部3のリード部32またはライト部33が動作し,I/Oノード毎のバッファ4A〜4Cを使って要求を処理する。以後このバッファ4A〜4Cのことをコヒーレントバッファと呼ぶ。
【0042】
〔2〕コヒーレントバッファの構造
図3は,コヒーレントバッファの構成例を示す図である。
コヒーレントバッファ40は,図3に示すように,バッファ中のデータを管理する制御部41と,実際のデータが入るデータ部42からなる。制御部41は,バッファの最下部から最上部に拡張する形をとり,データ部42は逆にバッファの最上部から最下部の方向に広がる構造となっている。
【0043】
制御部41は,制御レコード(コントロールエレメント)の集合からなり,一つの制御レコードが一つのI/Oノードに対する一つのディスクアクセス要求(ライト要求)を表す。制御部41のi番目の制御レコードには,データ部42のi番目のデータエレメントに格納されるデータのディスクアドレスとデータ長とが格納される。
【0044】
ユーザが要求したI/O要求が,最後の制御レコードで表わされるディスクアクセス要求と連続したものでない場合には,制御部41を上方向へ拡張して新たに制御レコードを作り,この中に新しいディスクアクセス要求に関するディスクアドレスとデータ長の情報を格納する。最後の制御レコードで表わされるディスクアクセス要求とディスクアドレスが連続している場合には,最後の制御レコードのデータ長に新しいI/O要求のデータ長を加え,最後の制御レコードを更新して一つのI/O要求にまとめる。
【0045】
〔3〕ライト(write)時の処理
図4は,ライト要求時のバッファへのデータ設定例を示す。図4を用いて,ユーザプログラム2が発行したライト要求がバッファとの関係でどう処理されるかを説明する。
【0046】
ユーザプログラム2がライトするデータを格納したユーザバッファ20を指定してライト要求を発行すると,ファイルシステムクライアント部3内のライト部33が制御を受け取る。ライト部33は,ライト要求で指定されたユーザバッファ20中のデータを,予め指定されたI/Oノードストライピングの指定に従い,各I/Oノード5A〜5Cごとのデータに分割し,対応するコヒーレントバッファ40A〜40Cに入れていく。この例では,ユーザバッファ20の中のデータのうち,data1がI/OノードA用のコヒーレントバッファ40Aに,data2がI/OノードB用のコヒーレントバッファ40Bに,data3がI/OノードC用のコヒーレントバッファ40Cに,data4がI/OノードA用のコヒーレントバッファ40Aに順に設定されている。
【0047】
コヒーレントバッファ40A〜40Cが一杯になると,その内容を対応するI/Oノード5A〜5C上のファイルシステムサーバ部6に送り,応答を待つ。
ファイルシステムサーバ部6から応答を受けると,対応するコヒーレントバッファ40A〜40Cの先頭から次のデータを埋めていく。したがって,短いデータ長のライト要求では,ユーザバッファ20からコヒーレントバッファ40A〜40Cにデータを移動するだけで,ファイルシステムサーバ部6との会話はコヒーレントバッファ40A〜40Cが一杯になるまで遅らされる。
【0048】
ライト要求で指定されたデータ長が十分大きければ,一回の要求ですべてのコヒーレントバッファが一杯になり,全I/Oノード5A〜5Cを並列に動かすことができる。
【0049】
しかし,ライト要求のデータ長がコヒーレントバッファ長に比べて小さい場合には,一つのバッファだけが一杯になり,結果として一つのI/Oノードとだけ会話することになる可能性がある。これでは,複数のI/Oノード5A〜5C配下のディスク7A〜7Cを並列に動かすことができず,I/Oノードストライピングの効果を十分に発揮することができない。
【0050】
そこで,短いデータ長のライト要求が多い環境でも,I/Oノードストライピングの効果が発揮できるよう,1つのコヒーレントバッファが一杯になったときに他のI/Oノード用のコヒーレントバッファの状態も調べ,所定量以上(例えばバッファの半分以上)データが詰まっている場合には,同時にそのバッファに対応するI/Oノードにもデータを送るようにする。
【0051】
図5は,バッファフルでのライト要求時の並列転送の例を示している。図5を用いて,ユーザプログラム2がライト要求を発行した結果,コヒーレントバッファ40Aが一杯になった場合の処理を説明する。
【0052】
ユーザプログラム2から,ストライプ4−1のデータのライト要求があったとする。このデータにより,I/OノードA用のコヒーレントバッファ40Aだけが一杯になる。本来であれば,I/OノードA用のコヒーレントバッファ40Aのデータだけをファイルシステムサーバ部6へ送り出せば,ライト要求の目的は達成される。しかし,I/Oノード5A〜5Cにおけるディスクアクセスの並列動作の観点からは効率上望ましくない。そこで,他のコヒーレントバッファ40B,40Cにはまだ余裕があっても,データが半分以上詰まっている場合には,コヒーレントバッファ40A〜40Cのデータを同時にファイルシステムサーバ部6へ送り出す。
【0053】
この制御により,データ長が小さいライト要求が多いプログラムでも,ストライピング数に比例した並列動作による高速のI/Oを実現できる。各I/Oノード5A〜5C上のファイルシステムサーバ部6は,転送されたバッファの内容を調べ,必要なディスクアクセスを行う。
【0054】
アクセスするディスクアドレスが連続する連続アクセス要求の場合には,クライアント側,すなわちコンピュートノード1A〜1C側で複数の要求が一つにまとめられるので,ファイルシステムサーバ部6に送られる制御レコードは一つとなり,ファイルシステムサーバ部6はディスクアクセス要求をローカルのファイルシステムに対して一回発行するだけでよい。
【0055】
アクセスアドレスが連続していないような離散アクセスの場合には,ユーザが発行したライト要求毎に制御レコードが作られ,ファイルシステムサーバ部6に複数のディスクアクセス要求が伝えられる。この場合,ファイルシステムサーバ部6は受信したデータ中に格納されている複数のライト要求を順に取り出して処理する。
【0056】
〔4〕リード(read)処理
リード(read)要求は,ファイルシステムクライアント部3内のリード部32で処理される。リード処理においては,コヒーレントバッファ40A〜40Cは先読みバッファの役割を果たす。リード部32は,コヒーレントバッファ40A〜40Cに必要なデータが既に入っているなら,コヒーレントバッファ40A〜40Cからユーザバッファ20にデータをコピーする。この場合,I/Oノード5A〜5Cとの間の通信は発生しない。
【0057】
コヒーレントバッファ40A〜40Cに必要なデータがなければ,直前の要求と今回のリード要求の関係から先読みを行うかどうかを決める。同じI/Oノードに対する直前の要求もリード要求で,かつ今回の要求の開始ディスクアドレスと直前の要求の転送終了ディスクアドレスとの差が所定量以下(例えばコヒーレントバッファ長の半分以下)なら,コヒーレントバッファにバッファ分だけ,先読みをする。
【0058】
バッファサイズの半分以上アクセスアドレスが離れている場合には,バッファサイズ分先読みするオーバヘッドが,次回のアクセスでバッファ上でヒットすることで得られる効果を相殺してしまうと判断し,先読みは行わない。
【0059】
図6は,リード要求時のバッファへの同時読み込みの例を示している。図6を用いて,ユーザプログラム2がリード要求を発行してバッファ中のデータを使い切ったときの処理を説明する。
【0060】
データ長が小さいリード要求が多い環境でも,I/Oノードストライピングの効果を発揮するため,コヒーレントバッファへの先読みが必要となった時には他のコヒーレントバッファの使用状況を調べ,そのバッファ中の所定量以上(例えば半分以上)のデータが既にユーザに送られているなら,そのバッファに対しても並行して先読みを起動する。
【0061】
例えば,図6に示すように,コヒーレントバッファ40A〜40Cには,それぞれストライプ3−1の一部,ストライプ3−2の一部,ストライプ3−3の一部が先読みされていて,バッファ中の他のデータは,ユーザプログラム2からのリード要求により既にユーザバッファ20へ転送されているものとする。この状態でユーザプログラム2からストライプ3−1のリード要求があったとする。このリード要求を満たすにはI/OノードA用のコヒーレントバッファ40Aだけにデータを読み込めばいいが,他のコヒーレントバッファ40B,40C中のデータも大部分が使われているので,同時にI/OノードB,C用のコヒーレントバッファ40B,40Cにもデータを読み込む。ただし,既にバッファ中にあるデータを再度読み込むことはない。
【0062】
なお,リード要求の対象となったI/Oノード用のコヒーレントバッファにライトデータが残っていた場合には,そのI/Oノードへコヒーレントバッファの内容を送り,ファイルに変更を反映する。
【0063】
〔5〕プロパゲート(propagate)処理
ユーザプログラム2が発行したプロパゲート(propagate)要求はファイルシステムクライアント部3内のファイル更新通知部35で処理される。
【0064】
図7はバッファとユーザプログラムから発行されるプロパゲート要求の関係を示す図であり,図8はプロパゲート処理を説明する図である。
以下,図7に示す(a) 〜(e) に従って動作を説明する。
【0065】
(a) コンピュートノード1B上で動作するユーザプログラム2は,ファイルシステムサーバ部6に対してdata1のリード要求を行う。このとき,data1の内容とともにdata2およびdata3が先読み(read ahead)される。
【0066】
(b) コンピュートノード1A上で動作するユーザプログラム2は,data3,data4,data5とライト要求を出してデータを書き直しているが,コンピュートノード1B上のユーザプログラム2は気づかずに動作する。
【0067】
(c) コンピュートノード1A上のコヒーレントバッファ40が一杯になると,コンピュートノード1Aからファイルシステムサーバ部6への実際のライト要求が行われ,コヒーレントバッファ40の内容が一括転送される。
【0068】
(d) コンピュートノード1A上のユーザプログラム2は,更新データについてのコンシステンシの保証が必要なタイミングでプロパゲート要求を発行する。この要求は,ファイル更新通知部35を介してファイルシステムサーバ部6へ通知される。
【0069】
(e) ファイルシステムサーバ部6では,プロパゲート要求を受け取ると,他のコンピュートノード1Bのコヒーレントバッファ40に先読みされているデータをチェックし,無効化が必要なデータ(data3)を見つけ出し,コンピュートノード1Bにそのデータの無効化を指示する。これにより,コンピュートノード1B上のバッファが無効化され,以降,必要であれば実際のリード要求の処理によりコンピュートノード1Bのユーザプログラム2に正しいデータが伝わる。
【0070】
なお,上記の処理において,ユーザプログラム2からプロパゲート要求が出されると,コヒーレントバッファ40内のデータは,バッファが一杯になっていなくても,プロパゲートの指示とともにファイルシステムサーバ部6へ転送され,該当するディスク7への書き出しが行われる。
【0071】
このプロパゲート処理を,図8の(a) 〜(f) に従ってさらに詳しく説明すると,以下のとおりである。
(a) 図8に示すように,ユーザプログラム2からライトデータのコンシステンシの保証が必要なときにプロパゲート(propagate)要求があると,そのユーザプログラム2が動作するコンピュートノード1Aのファイルシステムクライアント部3Aにあるファイル更新通知部35Aに通知される。
【0072】
(b) ファイル更新通知部35Aは,まずコヒーレントバッファ40Aに残っているライトデータにプロパゲート指示を付加して,I/Oノード上のファイルシステムサーバ部6へ送る。ファイルシステムサーバ部6は,受け取ったライトデータをディスク7に反映する。
【0073】
(c) 続いて,ファイルシステムサーバ部6のデータ無効化指示部61は,コヒーレントバッファにデータを先読みしている他のコンピュートノードの中からデータの無効化が必要なものを見つけ出し,もしコンピュートノード1Bのバッファが該当すれば,そのデータの無効化を指示するメッセージを,コンピュートノード1B上のファイル更新通知部35Bへ送る。ファイル更新通知部35Bがこのメッセージを受けると,コヒーレントバッファに先読みデータが入っているかどうかを調べ,もし入っているならコヒーレントバッファを無効化する。この結果,後続のリード要求では,ファイルシステムサーバ部6に新しいデータを要求するようになる。
【0074】
(d) 無効化が完了すると,ファイルシステムクライアント部3Bのファイル更新通知部35Bは,要求を送ったI/Oノード上のファイルシステムサーバ部6に完了の通知を応答する。
【0075】
(e) バッファの無効化完了を通知されたファイルシステムサーバ部6は,プロパゲート要求したファイルシステムクライアント部3Aのファイル更新通知部35Aに応答を返す。
【0076】
(f) さらに,ファイル更新通知部35Aは,ユーザプログラム2にプロパゲート要求の処理の完了を応答する。
以上の処理により,プロパゲート要求発行以前にそのクライアント(コンピュートノード)が行ったファイルの変更が他のクライアント(コンピュートノード)に確実に伝わったという保証を得ることができる。無効化処理はライトの結果無効となった古いデータをクライアント側のコンピュートノード1A〜1Cが先読みしている場合だけに行われる。そうでない場合には,ファイルシステムサーバ部6はプロパゲートを要求したコンピュートノード1A〜1C上のファイルシステムクライアント部3に直ちに応答を返す。
【0077】
〔6〕クローズ(close)時の処理
ユーザプログラム2が発行したファイル8のクローズ(close)要求は,ファイルシステムクライアント部3のクローズ部34で処理される。クローズ部34はコヒーレントバッファ40A〜40Cにライトデータが残っていた場合には,I/Oノード5A〜5Cのファイルシステムサーバ部6にコヒーレントバッファ40A〜40Cの内容を送り,ファイル8に変更を反映する。
【0078】
〔7〕ディスクI/Oのスケジューリング
I/Oノード5A〜5C上のファイルシステムサーバ部6は,ファイルシステムクライアント部3から送られた要求を以下のように処理する。
【0079】
単一のノードで動作しているユーザプログラムからの要求の場合には,送られてきたディスクアクセス要求を順に処理する。
複数のノード上で動作している並列プログラムからの要求の場合には,モード切り替え部63は,各クライアントノード1A〜1Cから発行された要求をクライアントノード単位に監視し,シーケンシャルモードと非シーケンシャルモードとの切り替えを制御する。
【0080】
図9は,シーケンシャルモードと非シーケンシャルモードとの間の遷移を示す図である。
ファイル8は,オープン直後に非シーケンシャルモードに設定される。ファイルシステムサーバ部6のモード切り替え部63は,各クライアントノード1A〜1Cから発行された要求をクライアントノード単位に監視し,アドレスの昇順(クライアントノード毎にみて)にアクセスする要求がすべてのクライアントノードから一定回数以上続くと,シーケンシャルモードに変更する。
【0081】
シーケンシャルモードの時に一つでも,アドレスの昇順でない要求がきたら非シーケンシャルモードに変更する。一旦非シーケンシャルモードになっても,一定回数以上アドレス昇順の要求が全クライアントノードで続けば,シーケンシャルモードに復帰する。
【0082】
ディスクI/Oのスケジューリングは,シーケンシャルモードの場合に行われ,ディスクアクセス要求をキューで管理しながら処理する。非シーケンシャルモードのときには,ディスクアクセス要求を受け付けた順に処理する。
【0083】
図10は,シーケンシャルモード時のディスクI/Oスケジュールの処理フローチャートであり,リード/ライト要求の処理方法を示している。
非シーケンシャルモードからシーケンシャルモードに遷移したときには,直前の各ノードのディスクアクセス要求の中で最もディスクアクセス終端アドレスの小さいものを基準アドレスとして設定する。図中で「連続」とは要求の始端アドレスが基準アドレスと一致するかまたは小さかったことを意味している。
【0084】
ファイルシステムサーバ部6は,まず受け付けた要求が連続かどうかを調べ,シーケンシャルモード時に受け付けた要求の始端アドレスが基準アドレスに等しいか小さかった場合には(ステップS11),直ちにその要求を処理し,基準アドレスをこの要求の終端アドレスに変更する(ステップS12)。ディスクアクセスが完了したら,キュー上の先頭につながっている要求を取り出し(ステップS13),ステップS11へ戻って同じ基準で評価する。キューに他の要求がなければ処理を終了して,新しい要求の到着を待つ。
【0085】
基準アドレスより大きい始端を持つ要求の場合には,この要求を要求の始端アドレスの昇順に並べたキューにつなぐ(ステップS14)。
次に,他のノードからの要求が到着していないかどうかを調べ(ステップS15),到着していれば,ステップS11へ戻り,同様に処理する。
【0086】
遅延させていた要求あるいは到着している要求の始端アドレスがすべて基準アドレスより大きく,かつ要求を受け付けていないクライアントノード(コンピュートノード)がある場合,一定時間そのノードから要求が到着するのを待つ(ステップS16,S17)。この間に到着した要求を同じ基準で評価する。
【0087】
すべてのノードから要求が到着するか,または一定時間待った後にも基準を満たす要求が見つからなかった場合には,キュー上の先頭にある最も小さな始端アドレスを持つ要求を処理し,基準アドレスを変更する(ステップS18)。この要求の処理が完了したら,キューから他の要求を取り出し(ステップS19),ステップS11へ戻って同じチェックを繰り返す。ステップS18,S19において,キューに要求が残っていなければ処理を終了し,新しい要求が到着したときに,同様に処理を繰り返す。
【0088】
以上の処理の過程で,アドレスの昇順でない要求を見つけたら,見つけた要求とキューにつながれている要求を順にすべて処理し,非シーケンシャルモードに遷移する。
【0089】
本発明の他の実施の形態として,以下のような実施も可能である。
前述した本発明の実施の形態においては,コヒーレントバッファをファイル単位にI/Oノード数分もち,各I/Oノードに伝えるデータをI/Oノード毎のコヒーレントバッファに保持するようにしている。さらに制御を単純化するために,メモリコピーのオーバヘッドが増えるが,バッファにユーザプログラムに渡すイメージのデータを持つことも可能である。すなわち,全I/Oノードに対するデータをまとめて格納するバッファを設けて,前記コヒーレントバッファとの間でコピーするようにしてもよい。
【0090】
また,前述した本発明の実施の形態においては,I/Oサーバでの要求の並べ替えの精度を高めるために全コンピュートノードから要求が到着するのを一定時間待つ方式を採用している。これを既に到着している要求間だけで,並べ替えを行うように変更することも可能である。
【0091】
図11は,本発明を用いた処理と従来の処理との処理結果を比較した図であり,図11(A)は連続するライト要求の場合,図11(B)は連続するリード要求の場合のコヒーレントバッファを用いた処理とそうでない処理の結果の比較を表している。
【0092】
図中,横軸は転送データのレコードサイズ(単位:バイト),縦軸はスループット(単位:メガバイト/秒)である。コンピュートノードで実行されるプログラムは,典型的なUNIXインタフェースを持つリード/ライト要求を発行する。
【0093】
“ufs ”(−◇−)は,一つのI/Oノードでローカルファイルシステムがアクセスされている場合の参考のための処理結果,“spfs1n”(−◆−)はストライピング・ファクターが1(I/Oノード数が1)でコヒーレントバッファを用いない場合の処理結果,“spfs1n(c.b.)”(−□−)はストライピング・ファクターが1(I/Oノード数が1)で本発明によるコヒーレントバッファを用いた場合の処理結果,“spfs3n”(−■−)はストライピング・ファクターが3(I/Oノード数が3)でコヒーレントバッファを用いない場合の処理結果,“spfs3n(c.b.)”(−△−)はストライピング・ファクターが3(I/Oノード数が3)で本発明によるコヒーレントバッファを用いた場合の処理結果である。
【0094】
図11(A),(B)に示されるように,コヒーレントバッファを用いない場合の処理結果は,リード/ライト要求時のデータが十分に大きい場合を見る限りではI/Oノードの数に比例したスループットを得ている。しかし,要求データのサイズが小さい時には,スループットはかなり低い。
【0095】
一方,本発明によるコヒーレントバッファを使用した場合,スループットはデータ長にかかわらず,I/Oノード数に比例した結果が得られている。
【0096】
【発明の効果】
以上説明したように,本発明によれば,ファイル更新結果の他ノードへの反映のタイミングをユーザプログラムから通知してもらうメカニズムを設け,同一ファイルに対する更新を各ノードで並行して行えるようにし,かつ複数のノードから発行されたI/O要求をI/Oノード上でディスクアクセス時間が最短になるように並べ替えることで,ファイルのライトシェアを行っている既存のユーザプログラムのI/O性能を飛躍的に向上させることができる。
【0097】
具体的には,以下のような効果を奏する。
1)サーバノード上に存在する一つのファイルを複数のクライアントノードが同時に更新する場合にも,ファイルを破壊することなく高速に処理することができる。
【0098】
2)ファイルが複数のサーバノード上のディスクにストライプ配置(I/Oノードストライピング)された環境で,クライアントノード上で動くユーザプログラムが発行するリード/ライト要求のデータ長が小さくても,ファイルが存在するサーバノード数に比例した高性能を発揮することができる。
【0099】
3)さらに,バッファをI/Oノード単位に持つことにより,データのコピー回数を削減することができる。
4)クライアントノード上で動くユーザプログラムがファイルをアドレスの昇順に不連続にアクセスした場合にも,複数のクライアントからの要求を評価し,ディスクアクセスが連続シーケンシャルになるように要求の処理順を並べ替えることにより,高性能を発揮することができる。
【0100】
5)複数のクライアントノード上で動作する既存の並列プログラムに最小限の変更を加えるだけで,高性能化することができる。
【図面の簡単な説明】
【図1】本発明の構成例を示すブロック構成図である。
【図2】ファイルのライトシェアを行う並列プログラムの一般的な動作を示す図である。
【図3】コヒーレントバッファの構成例を示す図である。
【図4】ライト要求時のバッファへのデータ設定例を示す図である。
【図5】バッファフルでのライト要求時の並列転送の例を示す図である。
【図6】リード時のバッファへの同時読み込みの例を示す図である。
【図7】バッファとユーザプログラムから発行されるプロパゲート要求の関係を示す図である。
【図8】プロパゲート要求の処理を説明する図である。
【図9】シーケンシャルモードと非シーケンシャルモードとの間の遷移を示す図である。
【図10】シーケンシャルモード時のディスクI/Oスケジュールの処理フローチャートである。
【図11】本発明を用いた処理と従来の処理との処理結果を比較した図である。
【符号の説明】
1A〜1C コンピュートノード(クライアントノード)
2 ユーザプログラム
3 ファイルシステムクライアント部
31 オープン部
32 リード部
33 ライト部
34 クローズ部
35 ファイル更新通知部
36 I/Oノード毎のバッファ管理部
4A〜4B I/OノードA〜C用のバッファ
5A〜5C I/Oノード
6 ファイルシステムサーバ部
61 データ無効化指示部
62 要求アクセス並べ替え部
63 モード切り替え部
7A〜7C ディスク
8 ファイル
Claims (4)
- 複数のクライアントノードがネットワークを介して複数のサーバノードに接続され,ストライプ配置によりデータが所定の大きさで前記複数のサーバノード上に分割して配置されたファイルを共用するネットワークファイルシステムにおける制御方法であって,
前記各クライアントノードは,
前記ファイルがストライプ配置されたサーバノード単位にバッファを複数個持ち,
ユーザプログラムの発行したライト要求に対して,そのライト要求のデータを一旦,ライト先のサーバノードに対応するバッファに蓄積し,そのライト先のサーバノードに対応するバッファが一杯になったときに,他のサーバノードに対応するバッファの状態を調べて,前記一杯になったバッファのデータをライト先のサーバノードへ送るとともに,他のサーバノードに対応するバッファに所定量以上のデータが詰まっている場合に,そのサーバノードに対しても同時にデータを送り出し,
ユーザプログラムの発行したリード要求に対しては,複数のサーバノードからデータを一括して先読みし,後続のリード要求に対してバッファ内のデータで解決する
ことを特徴とするファイルシステム制御方法。 - 請求項1記載のファイルシステム制御方法において,
前記クライアントノードが複数のサーバノードからデータを一括して先読みする際に,前記バッファの使用状況を調べ,そのバッファ中の所定量以上のデータがユーザプログラムに送られている場合にのみ先読みを行う
ことを特徴とするファイルシステム制御方法。 - 複数のクライアントノードがネットワークを介して複数のサーバノードに接続され,ストライプ配置によりデータが所定の大きさで前記複数のサーバノード上に分割して配置されたファイルを共用するネットワークファイルシステムにおいて,
前記クライアントノードは,
前記ファイルがストライプ配置されたサーバノード単位に用意される複数のバッファを管理する手段と,
ユーザプログラムの発行したライト要求に対して,そのライト要求のデータを一旦,ライト先のサーバノードに対応するバッファに蓄積し,そのライト先のサーバノードに対応するバッファが一杯になったときに,他のサーバノードに対応するバッファの状態を調べて,前記一杯になったバッファのデータをライト先のサーバノードへ送るとともに,他のサーバノードに対応するバッファに所定量以上のデータが詰まっている場合に,そのサーバノードに対しても同時にデータを送り出すライト要求の処理手段と,
ユーザプログラムの発行したリード要求に対して,複数のサーバノードからデータを一括して先読みし,後続のリード要求に対して前記バッファ内のデータで解決するリード要求の処理手段とを備える
ことを特徴とするパラレルファイルシステム。 - 複数のクライアントノードがネットワークを介して複数のサーバノードに接続され,ストライプ配置によりデータが所定の大きさで前記複数のサーバノード上に分割して配置されたファイルを共用するネットワークファイルシステムにおける各クライアントノードで動作するプログラムを格納したプログラム記憶媒体であって,
前記ファイルがストライプ配置されたサーバノード単位に用意される複数のバッファを管理する手段と,
ユーザプログラムの発行したライト要求に対して,そのライト要求のデータを一旦,ライト先のサーバノードに対応するバッファに蓄積し,そのライト先のサーバノードに対応するバッファが一杯になったときに,他のサーバノードに対応するバッファの状態を調べて,前記一杯になったバッファのデータをライト先のサーバノードへ送るとともに,他のサーバノードに対応するバッファに所定量以上のデータが詰まっている場合に,そのサーバノードに対しても同時にデータを送り出すライト要求の処理手段と,
ユーザプログラムの発行したリード要求に対して,複数のサーバノードからデータを一括して先読みし,後続のリード要求に対して前記バッファ内のデータで解決するリード要求の処理手段として,
コンピュータを機能させるためのプログラムを格納した
ことを特徴とするコンピュータ読み取り可能なプログラム記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13947297A JP3545906B2 (ja) | 1997-05-29 | 1997-05-29 | ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 |
US09/042,798 US6385624B1 (en) | 1997-05-29 | 1998-03-17 | File system control method, parallel file system and program storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13947297A JP3545906B2 (ja) | 1997-05-29 | 1997-05-29 | ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003103192A Division JP3574649B2 (ja) | 2003-04-07 | 2003-04-07 | ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 |
JP2003330308A Division JP2004046898A (ja) | 2003-09-22 | 2003-09-22 | ファイルシステム制御方法およびプログラム記憶媒体 |
JP2003330309A Division JP3981057B2 (ja) | 2003-09-22 | 2003-09-22 | ファイルシステム制御方法およびプログラム記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10334067A JPH10334067A (ja) | 1998-12-18 |
JP3545906B2 true JP3545906B2 (ja) | 2004-07-21 |
Family
ID=15246048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13947297A Expired - Fee Related JP3545906B2 (ja) | 1997-05-29 | 1997-05-29 | ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6385624B1 (ja) |
JP (1) | JP3545906B2 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002196960A (ja) * | 2000-12-25 | 2002-07-12 | Hitachi Ltd | ファイル入出力制御方法、ファイル管理サーバ及び並列計算機システム |
EP1229433A1 (en) * | 2001-01-31 | 2002-08-07 | Hewlett-Packard Company | File sort for backup |
US7197536B2 (en) * | 2001-04-30 | 2007-03-27 | International Business Machines Corporation | Primitive communication mechanism for adjacent nodes in a clustered computer system |
WO2003042811A1 (en) * | 2001-11-13 | 2003-05-22 | Koninklijke Philips Electronics N.V. | Efficient fifo communication using semaphores |
US20030191761A1 (en) * | 2002-04-04 | 2003-10-09 | International Business Machines Corporation | Methods and apparatus for remote file access |
US7376713B2 (en) * | 2002-06-27 | 2008-05-20 | International Business Machines Corporation | Apparatus, system and method of distributing block data on a private network without using TCP/IP |
US7801894B1 (en) | 2004-10-28 | 2010-09-21 | Stored IQ | Method and apparatus for harvesting file system metadata |
WO2004012379A2 (en) * | 2002-07-30 | 2004-02-05 | Deepfile Corporation | Method and apparatus for managing file systems and file-based data storage |
US8417678B2 (en) * | 2002-07-30 | 2013-04-09 | Storediq, Inc. | System, method and apparatus for enterprise policy management |
US8612404B2 (en) * | 2002-07-30 | 2013-12-17 | Stored Iq, Inc. | Harvesting file system metsdata |
US7925246B2 (en) | 2002-12-11 | 2011-04-12 | Leader Technologies, Inc. | Radio/telephony interoperability system |
US8195714B2 (en) | 2002-12-11 | 2012-06-05 | Leaper Technologies, Inc. | Context instantiated application protocol |
US20050050135A1 (en) * | 2003-08-25 | 2005-03-03 | Josef Hallermeier | Handheld digital multimedia workstation and method |
US7273179B2 (en) * | 2004-07-09 | 2007-09-25 | Datalogic Scanning, Inc. | Portable data reading device with integrated web server for configuration and data extraction |
US7844582B1 (en) | 2004-10-28 | 2010-11-30 | Stored IQ | System and method for involving users in object management |
US8510331B1 (en) | 2004-10-28 | 2013-08-13 | Storediq, Inc. | System and method for a desktop agent for use in managing file systems |
JP2010033125A (ja) * | 2008-07-25 | 2010-02-12 | Hitachi Ltd | ストレージ装置及びデータ転送方法 |
US8082313B2 (en) * | 2009-10-26 | 2011-12-20 | International Business Machines Corporation | Efficient utilization of read-ahead buffer by partitioning read-ahead buffer in correspondence with selectors |
US8612374B1 (en) | 2009-11-23 | 2013-12-17 | F5 Networks, Inc. | Methods and systems for read ahead of remote data |
US9015333B2 (en) | 2009-12-18 | 2015-04-21 | Cisco Technology, Inc. | Apparatus and methods for handling network file operations over a fibre channel network |
US9330055B2 (en) * | 2013-06-04 | 2016-05-03 | International Business Machines Corporation | Modular architecture for extreme-scale distributed processing applications |
JP6503945B2 (ja) * | 2015-07-13 | 2019-04-24 | 富士通株式会社 | 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法 |
WO2019059069A1 (ja) * | 2017-09-21 | 2019-03-28 | 日本電信電話株式会社 | 秘密読み書き装置、秘密読み書き方法、およびプログラム |
US11855898B1 (en) | 2018-03-14 | 2023-12-26 | F5, Inc. | Methods for traffic dependent direct memory access optimization and devices thereof |
CN111104344B (zh) * | 2019-11-06 | 2023-11-03 | 无锡科技职业学院 | 一种基于d-s证据理论的分布式文件系统数据读取方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4831552A (en) * | 1987-01-29 | 1989-05-16 | International Business Machines Corporation | Method for concurrently displaying entries from a plurality of different electronic calendars based on interactively entered non-temporal criteria |
US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
US5157776A (en) * | 1987-12-30 | 1992-10-20 | Zenith Data Systems Corporation | High speed memory for microcomputer systems |
US5208914A (en) * | 1989-12-29 | 1993-05-04 | Superconductor Systems Limited Partnership | Method and apparatus for non-sequential resource access |
US5261059A (en) * | 1990-06-29 | 1993-11-09 | Digital Equipment Corporation | Crossbar interface for data communication network |
JPH0480841A (ja) | 1990-07-24 | 1992-03-13 | Nec Corp | ファイル更新方式 |
US5852747A (en) * | 1995-09-08 | 1998-12-22 | International Business Machines Corporation | System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client |
US5918020A (en) * | 1997-02-28 | 1999-06-29 | International Business Machines Corporation | Data processing system and method for pacing information transfers in a communications network |
-
1997
- 1997-05-29 JP JP13947297A patent/JP3545906B2/ja not_active Expired - Fee Related
-
1998
- 1998-03-17 US US09/042,798 patent/US6385624B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6385624B1 (en) | 2002-05-07 |
JPH10334067A (ja) | 1998-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3545906B2 (ja) | ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 | |
US20190075163A1 (en) | Apparatus including an i/o interface and a network interface and related method of use | |
Lougher et al. | The design of a storage server for continuous media | |
US6141707A (en) | Input/output request allocation by establishing master command queue among plurality of command queues to receive and store commands, determine logical volume, and forwarding command to determined logical volume | |
US7124152B2 (en) | Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network | |
JP5142995B2 (ja) | メモリページ管理 | |
US20080270698A1 (en) | Data migration including operation environment information of a host computer | |
JPH11296313A (ja) | 記憶サブシステム | |
JP2004185349A (ja) | ジャーナルログを利用した更新データ書込方法 | |
JPH11282631A (ja) | 入出力制御装置および入出力制御方法 | |
US7275072B2 (en) | Data processing system and method with data sharing for the same | |
US6687764B2 (en) | File I/O control method | |
US5822773A (en) | Method and system for accelerating the copying of repetitively copied computer data | |
JPH06332625A (ja) | ファイルのデータ多重化方法及びデータ処理システム | |
JP3609841B2 (ja) | ファイル管理装置 | |
JP3574649B2 (ja) | ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体 | |
JP3489157B2 (ja) | 分散共有メモリシステムおよび計算機 | |
JP4606998B2 (ja) | ネットワークキャッシュ装置およびプログラム | |
JP3981057B2 (ja) | ファイルシステム制御方法およびプログラム記憶媒体 | |
JP2004046898A (ja) | ファイルシステム制御方法およびプログラム記憶媒体 | |
Bosch | Mixed-media file systems | |
KR20190069134A (ko) | 응용 프로그램간 파일 공유 장치 및 방법 | |
JP2774728B2 (ja) | ディスクアレイ制御方式 | |
WO2016001959A1 (ja) | ストレージシステム | |
Bosch et al. | Cut-and-Paste file-systems: integrating simulators and file systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20030722 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040315 |
|
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: 20040406 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040409 |
|
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: 20080416 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090416 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100416 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110416 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110416 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120416 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140416 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |