JPH09198336A - 二次記憶装置への遠隔アクセス方法 - Google Patents

二次記憶装置への遠隔アクセス方法

Info

Publication number
JPH09198336A
JPH09198336A JP8027263A JP2726396A JPH09198336A JP H09198336 A JPH09198336 A JP H09198336A JP 8027263 A JP8027263 A JP 8027263A JP 2726396 A JP2726396 A JP 2726396A JP H09198336 A JPH09198336 A JP H09198336A
Authority
JP
Japan
Prior art keywords
read
computer
write
request
client program
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.)
Pending
Application number
JP8027263A
Other languages
English (en)
Inventor
Yuichi Aiba
雄一 相場
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP8027263A priority Critical patent/JPH09198336A/ja
Publication of JPH09198336A publication Critical patent/JPH09198336A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 計算機間接続網を介した遠隔二次記憶装置へ
のリード/ライトの処理時間を短縮する。 【解決手段】 クライアントプログラム5からの遠隔二
次記憶装置4へのリード/ライト呼び出しに対し、クラ
イアントプログラム5にリンクされたライブラリ11は、
それを複数のリード/ライト要求に分割して計算機間接
続網3を介してサーバ計算機2に一度に全部送信する。
サーバ計算機2のファイルサーバ10は、リード/ライト
要求を受け取り、受け取ったリード/ライト要求1つに
対し、要求された二次記憶装置4上のデータにアクセス
をした後、要求元のクライアントプログラムに応答1つ
を送信するという処理を、複数のリード/ライト要求に
対し、多重化して実行することにより、計算機間の通信
時間が二次記憶装置4への物理リード/ライト処理時間
に重なるようにして、遠隔二次記憶装置へのリード/ラ
イトの処理時間を短縮する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は二次記憶装置への遠
隔アクセス方法に関し、より詳細には、複数の計算機が
計算機間接続網で接続されている環境において、或る計
算機で動くアプリケーションプログラムから、別の計算
機に接続されている二次記憶装置上のデータに対してア
クセスする方法に関する。
【0002】
【従来の技術】別の計算機に接続されている二次記憶装
置(遠隔二次記憶装置)にアクセスする方法は幾つか存
在する。
【0003】1つの方法は、図17(A)に示すよう
な、Network File System(NF
S)による方法である。NFSにおけるデータアクセス
は、RPCという通信プロトコルレイヤを設け、ソフト
ウェアで実現されている(参考文献「NFS&NIS」
アスキー出版局)。
【0004】NFSでは、クライアントプログラムから
のリード/ライトの呼び出しをRPC要求という形に変
換し、サーバ計算機上で動作するNFSデーモンという
プロセスにRPCプロトコルを使って送信する。例え
ば、ライト呼び出しであれば、要求と共にライトデータ
が送信されるが、NFSデーモンでこのデータを取り込
んでから、二次記憶装置に書き込み、応答をクライアン
トプログラムに転送する。リード呼び出しであれば、N
FSデーモンは二次記憶装置から目的とするデータを読
み出し、RPC要求の応答としてデータを返却する。
【0005】クライアントプログラムからのリード/ラ
イト呼び出しをRPC要求に変換する際は、固定サイズ
データへのリード/ライト要求として複数のRPC要求
に分解される。通常は、1回のRPC要求でアクセスさ
れるデータのサイズは8KByteとなっている。アク
セス要求は1つずつNFSデーモンに送信され、その応
答を待ってから次のRPC要求が送信される。つまり、
NFSデーモンは同時には1つのRPC要求しか処理し
ないため、8KByteのデータを取り込む領域さえ確
保していれば良い。ただし、1つのクライアントプログ
ラムに対して1つのNFSデーモンが占有されるため、
複数のクライアントプログラムからの要求を処理するた
めには、サイズ計算機上にNFSデーモンを複数立ち上
げておく必要がある。
【0006】別の方法として、例えば特開平4−929
43号公報に見られる高速LANのディスクサーバがあ
る。この方法では、図17(B)に示すように、計算機
間接続網を高速LANとし、二次記憶装置(ディスクと
限定している)を管理するディスクサーバと複数のワー
クステーションから構成される環境を想定している。デ
ィスクを管理するディスクサーバは専用のハードウェア
とし、複数のリード/ライト要求を同時に処理できる構
造となっている。
【0007】ワークステーション上ではクライアントプ
ログラムが動作し、クライアントプログラムからの遠隔
ディスクへのリード/ライト要求を、通信によってディ
スクサーバに送信する。例えば、ライト要求であれば、
要求と共にデータを送信する。これに対しディスクサー
バでは、受信したデータをデータバッファに一旦格納し
てからディスクにデータを書き込み、通信によって要求
元のワークステーションに結果を通知する。また、リー
ド要求であれば、ディスクサーバでデータバッファ中に
目的のデータがあるかどうかを調べ、なければディスク
からデータを読み出し、データバッファに格納する。更
に、格納したデータを通信によって要求元のワークステ
ーションに送信する。
【0008】この方法では、計算機間接続網と二次記憶
装置との間でデータを中継するために、ディスクサーバ
内にデータバッファを持つ。データバッファは、各ワー
クステーション毎に領域を区切って使用する。リード/
ライト要求はフレームと言う固定長単位で行われる。
【0009】以上に挙げた2つの方法は、何れもクライ
アントプログラムからのリード/ライト呼び出しを、複
数の固定長データへの断片的なリード/ライト要求とし
て分解し、二次記憶装置を管理する部分(サーバ計算
機,ディスクサーバ)に送信することによって、遠隔二
次記憶装置へのリード/ライト呼び出しの処理を可能と
している。
【0010】
【発明が解決しようとする課題】しかしながら、分解さ
れた各断片リード/ライト要求を1つずつ送信し、処理
結果を待ってから次の断片リード/ライト要求を送信す
るため、通信を何回も行うことになる。1つのリード/
ライト呼び出しの処理の流れを見ると図17(C)のよ
うになり、(断片リード/ライト要求送信)→(二次記
憶装置リード/ライト)→(応答返信)→(断片リード
/ライト要求送信)→……と処理され、全ての断片リー
ド/ライト要求が完了してからクライアントプログラム
のリード/ライト呼び出しの結果が返ってくる。そのた
め、クライアントプログラムから見た遠隔二次記憶装置
アクセスのための時間は、断片リード/ライト要求の数
だけの往復の通信時間が余分にかかっているように見え
る。
【0011】そこで、本発明では、遠隔二次記憶装置へ
のデータアクセス時間における通信時間のほとんどをク
ライアントプログラムから見えなくし、あたかもその二
次記憶装置がクライアントプログラムの動作する計算機
に接続されているかのようなアクセス時間を達成するこ
とを目的とする。
【0012】
【課題を解決するための手段】本発明は上記の目的を達
成するために、第1の計算機上で動作するクライアント
プログラムから、前記第1の計算機と計算機間接続網を
通じて相互に通信可能な第2の計算機に接続されている
二次記憶装置上のデータに対してアクセスする方法にお
いて、第1の計算機および第2の計算機で以下の(1)
乃至(4)のうちの何れかの処理を実行するようにして
いる。
【0013】(1)第1の計算機は、クライアントプロ
グラムによるリード/ライト呼び出しを、一定サイズの
データへのリード/ライト要求に分割し、該分割して得
られたリード/ライト要求を全部一度に前記第2の計算
機に送信し、前記送信した全てのリード/ライト要求に
ついて前記第2の計算機から応答が返却されていること
を確認した後、前記クライアントプログラムにリード/
ライト呼び出しの結果を戻す。他方、第2の計算機は、
第1の計算機からのリード/ライト要求を受け取り、受
け取ったリード/ライト要求1つに対し、要求された二
次記憶装置上のデータにアクセスをした後、要求元のク
ライアントプログラムに応答1つを送信するという処理
を、複数のリード/ライト要求に対し、多重化して実行
する。
【0014】このように、クライアントプログラムによ
るリード/ライト呼び出しを一定サイズのデータへのリ
ード/ライト要求に分割して全部一度に第2の計算機に
送信し、第2の計算機において複数のリード/ライト要
求を多重処理することにより、第2の計算機での二次記
憶装置の物理リード/ライト処理と計算機間接続網での
通信処理が並行して行われることになり、通信の時間の
ほとんどが物理リード/ライト処理の時間と重なり、全
体の処理時間が短縮される。
【0015】(2)第1の計算機は、クライアントプロ
グラムによるリード/ライト呼び出しを、一定サイズの
データへのリード/ライト要求に分割し、該分割して得
られたリード/ライト要求の数が予め定められたスレッ
ショルド値以下のときは全部一度に前記第2の計算機に
送信し、スレッショルド値を超えているときは最初にス
レッショルド値分のリード/ライト要求を前記第2の計
算機に送信した後、リード/ライト要求に対応する前記
第2の計算機からの応答を1つ確認する毎に残りのリー
ド/ライト要求を1つ前記第2の計算機に送信し、前記
送信した全てのリード/ライト要求について前記第2の
計算機から応答が返却されていることを確認した後、前
記クライアントプログラムにリード/ライト呼び出しの
結果を戻す。第2の計算機は、前記(1)と同じ処理を
実行する。
【0016】このように、第2の計算機で一度に受け取
ることのできる要求数としてスレッショルド値を設定
し、最初に送信するリード/ライト要求数をスレッショ
ルド値以下に抑えることにより、第2の計算機での最初
の負荷を一定値以下に抑えることができる。さらに、1
つの応答に対して1つのリード/ライト要求を送信する
ので、第2の計算機で受け取っているリード/ライト要
求数は常にスレッショルド値以下となり、引続き第2の
計算機での負荷を一定値以下に抑えることができる。
【0017】(3)第1の計算機は、クライアントプロ
グラムによるリード/ライト呼び出しを、一定サイズの
データへのリード/ライト要求に分割し、該分割して得
られたリード/ライト要求の送信に先立って前記第2の
計算機に対して予約の要求を送信し、前記送信した予約
の要求に対する前記第2の計算機からの応答に含まれる
予約数からスレッショルド値を決定し、前記分割して得
られたリード/ライト要求の数が前記スレッショルド値
以下のときは全部一度に前記第2の計算機に送信し、ス
レッショルド値を超えているときは最初にスレッショル
ド値分のリード/ライト要求を前記第2の計算機に送信
した後、リード/ライト要求に対応する前記第2の計算
機からの応答を1つ確認する毎に残りのリード/ライト
要求を1つ前記第2の計算機に送信し、前記送信した全
てのリード/ライト要求について前記第2の計算機から
応答が返却されていることを確認した後、前記第2の計
算機に対して予約解除を要求すると共に、前記クライア
ントプログラムにリード/ライト呼び出しの結果を戻
す。他方、第2の計算機は、第1の計算機からの予約の
要求に対し、自計算機の現在の負荷状況に応じて1つの
クライアントプログラムに対して許容するリード/ライ
ト要求数を予約数として前記第1の計算機に通知すると
共にその予約数に見合ったメモリ量を確保し、第1の計
算機からのリード/ライト要求を受け取り、受け取った
リード/ライト要求1つに対し、要求された二次記憶装
置上のデータにアクセスをした後、要求元のクライアン
トプログラムに応答1つを送信するという処理を、複数
のリード/ライト要求に対し、多重化して実行し、第1
の計算機からの予約解除の要求に対し、前記確保してい
たメモリ量を解放する。
【0018】このように、動的に変化する第2の計算機
の負荷状況に応じて、1つのクライアントプログラムに
対して許容する予約数を第1の計算機に知らせ、第1の
計算機はその予約数をスレッショルド値として、以降、
このスレッショルド値に従ってリード/ライト要求を行
うことにより、第2の計算機に発生する負荷が一定値を
超えないように制御することができる。従って、第2の
計算機が複数のクライアントプログラムを相手にして
も、第2の計算機の処理能力を超えることはない。
【0019】(4)第1の計算機は、クライアントプロ
グラムによるリード/ライト呼び出しを、一定サイズの
データへのリード/ライト要求に分割し、該分割して得
られたリード/ライト要求のうちの1つのリード/ライ
ト要求に予約の要求を付加した予約+リード/ライト一
括要求を前記第2の計算機に対して送信し、前記送信し
た予約+リード/ライト一括要求に対する前記第2の計
算機からの予約応答に含まれる予約数からスレッショル
ド値を決定し、前記分割して得られたリード/ライト要
求の残りの数が前記スレッショルド値以下のときは、1
つのリード/ライト要求に予約解除の要求を付加して予
約解除+リード/ライト一括要求とした上で、全部一度
に前記第2の計算機に送信し、スレッショルド値を超え
ているときは最初にスレッショルド値分のリード/ライ
ト要求を前記第2の計算機に送信した後、リード/ライ
ト要求に対応する前記第2の計算機からの応答を1つ確
認する毎に残りのリード/ライト要求を1つ前記第2の
計算機に送信していき且つ最後の1つのリード/ライト
要求は予約解除の要求を付加した予約解除+リード/ラ
イト一括要求として送信し、前記送信した全ての要求に
ついて前記第2の計算機から応答が返却されていること
を確認した後、前記クライアントプログラムにリード/
ライト呼び出しの結果を戻す。他方、第2の計算機は、
第1の計算機から要求を受け取り、受け取った要求が予
約+リード/ライト一括要求のときは自計算機の現在の
負荷状況に応じて1つのクライアントプログラムに対し
て許容するリード/ライト要求数を予約数として前記第
1の計算機に通知すると共にその予約数に見合ったメモ
リ量を確保した後、要求された二次記憶装置上のデータ
にアクセスをして要求元のクライアントプログラムに応
答1つを送信するという処理を、受け取った要求がリー
ド/ライト要求のときは要求された二次記憶装置上のデ
ータにアクセスをした後、要求元のクライアントプログ
ラムに応答1つを送信するという処理を、受け取った要
求が予約解除+リード/ライト一括要求のときは要求さ
れた二次記憶装置上のデータにアクセスをした後、要求
元のクライアントプログラムから発生した処理中のリー
ド/ライト要求が全部完了した時点で前記確保したメモ
リ量を解放するという処理を、複数の要求に対し、多重
化して実行する。
【0020】このように、予約要求とリード/ライト要
求とを一括して要求する予約+リード/ライト一括要求
を導入することにより、第1の計算機側では予約要求を
別要求として最初に送らずに済むとともに、第2の計算
機側では予約応答に引き続いてリード/ライト処理が行
われるので、予約応答の通信時間を物理リード/ライト
の時間と重ねることができる。また、第2の計算機での
物理リード/ライトの最中に、第1の計算機から後続の
リード/ライト要求の送信が行われれば、それらの通信
時間も物理リード/ライトの時間に重ねることができ
る。さらに、予約解除要求とリード/ライト要求とを一
括して要求する予約解除+リード/ライト一括要求を導
入することにより、予約解除の要求を別要求として最後
に送らずに済み、その分の通信時間を削減することがで
きる。
【0021】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0022】図1を参照すると、本発明を適用した計算
機システムの一例は、クライアントプログラムの動作す
る計算機1と、サーバ計算機2と、これらを相互に通信
可能に接続する計算機間接続網3と、サーバ計算機2に
接続された二次記憶装置4とから構成されている。
【0023】サーバ計算機2上ではファイルサーバ10
と呼ぶプロセスが動作している。ファイルサーバ10
は、リード/ライト要求を、通信によって受け付け、要
求内容に従ってサーバ計算機2に接続されている二次記
憶装置4上のデータをリード/ライトし、通信によって
応答を返却する。図1の例では、汎用的な計算機上にフ
ァイルサーバ10というプロセスを動作させることによ
ってサーバ計算機の持つべき機能を実現しているが、他
にも、汎用計算機のOSに同様の機能を実装する実施例
や、専用の計算機にファームウエアを付加して実現する
実施例も考えられる。
【0024】クライアントプログラムの動作する計算機
1では、アプリケーションプログラムであるクライアン
トプログラム5が動作している。図1の例では、このク
ライアントプログラム5からのリード/ライト呼び出し
をサーバ計算機2に伝えるため、ライブラリ11と呼ぶ
専用のプログラムをクライアントプログラム5にリンク
してある。このライブラリ11は、クライアントプログ
ラム5からのリード/ライト呼び出しに従って、適切な
リード/ライト要求を生成し、ファイルサーバ10に伝
える。ライブラリ11とファイルサーバ10との間の要
求/応答のやりとりは後述する転送方式に従うが、要求
の送信はこのライブラリ11が制御する。なお、ライブ
ラリ11の代わりに、それと同様の機能を汎用計算機の
OSに実装する実施例も考えられる。
【0025】以下、幾つかの実施例について説明する
が、その前に、それらの前提となる、ファイルサーバ1
0で複数の要求を多重処理するための基本的な考え方を
説明する。
【0026】1つの要求に着目した場合、その典型的な
処理シーケンスは図2(A)に示すように、幾つかの中
断を挟んだ一連のアクションの処理から成り立ってい
る。即ち、要求の種類に応じて該当する初期アクション
が決められており、その後の処理の進行に従い幾つかの
中間アクションを経て、最終アクションにおいてクライ
アントプログラム5の動作する計算機1に応答を返却す
ることによって、1つの要求の処理が完結する。従っ
て、中断点において他の要求のアクションを処理するこ
とによって、要求の多重処理が実現できる。
【0027】ファイルサーバ10では、上述のようなア
クションをキュー(アクションキュー)によって管理
し、図2(B)に示すようなメインループを実行する。
ファイルサーバ10は要求を受け取るための口(受信ポ
ート)を持っており、ここを読むことにより要求を受け
取る(S1)。次に、受け取った要求に該当する初期ア
クションをアクションキューの末尾に登録する(S
2)。次に、アクションキューの先頭からアクションを
1つ取り出す(S3)。そして、そのアクションを処理
し(S4)、ステップS1に戻る。このようなメインル
ープによって、ファイルサーバ10は複数の要求のアク
ションを交互に処理し、要求の多重処理を実現する。
【0028】また、要求処理の中断点の1つに物理I/
Oの発行がある。このとき、I/Oを非同期で発行して
からアクション処理を終了し、別の要求のアクションを
処理することによって、多重処理を実現する。非同期I
/Oの完了時には非同期I/O完了ハンドラ(図示せ
ず)が動作するが、この非同期I/O完了ハンドラによ
って図2(C)に示す処理が実行される。
【0029】先ず、I/Oを発行したアクションの続き
のアクションを決定する。この決定方法は以下のように
幾つか考えられる。 1)ハンドラの引数にアクションを指定して直接決定す
る方法。 2)I/Oを発行したアクションの続きのアクションを
キューに登録しておき、ハンドラがキューを検索するこ
とにより該当するアクションを決定する方法。
【0030】次に、決定したアクションをアクションキ
ューの先頭に登録する。この登録されたアクションは、
その後ファイルサーバ10のメインループで取り出され
処理される。
【0031】なお、非同期I/O完了ハンドラは、ファ
イルサーバ10の動作中の任意のタイミングで割り込ん
で起動するが、アクションキューは、ファイルサーバ1
0と非同期I/O完了ハンドラとが同時に操作しないよ
うに排他する。
【0032】以下、計算機1上で動作するクライアント
プログラム5からサーバ計算機2に接続されている二次
記憶装置4上のデータをアクセスする方法について、幾
つかの実施例を挙げて説明する。
【0033】(実施例1)本実施例では、クライアント
プログラム5からリード/ライト呼び出しがあった場
合、ライブラリ11は図3に示す処理を実行する。
【0034】先ず、クライアントプログラム5からのリ
ード/ライト呼び出しを解析し、或る一定サイズのデー
タへのリード/ライト要求に分割する(L11)。例え
ば、或る一定サイズを8KByteとする場合、クライ
アントプログラム5からのリード/ライト呼び出しが、
例えば24KByteのデータのリードあるいはライト
であったとすると、要求されたデータの先頭から8KB
yte分に対するリード/ライト要求と、次の8KBy
te分に対するリード/ライト要求と、最後の8KBy
te分に対するリード/ライト要求に分割する。
【0035】次に、分割して得られた全てのリード/ラ
イト要求を全部一度に計算機間接続網3を介してサーバ
計算機2のファイルサーバ10に送信する(L12)。
そして、サーバ計算機2から返されてくる応答を待つ
(L13)。応答を待つとは、クライアントプログラム
5の持つ応答受信用のポートを読む処理であり、応答が
受信されていなければ受信されるまで待つことになる。
リード/ライト要求を複数送信した場合、応答は複数返
ってくることになる。
【0036】次に、サーバ計算機2からの応答を受信す
ると、今までに返却された応答の数を調べ、全応答が返
却されたかどうかを確認する(L14)。応答の数がリ
ード/ライト要求の分割数より少ない、すなわち、全て
の応答が返却されていなければ、再びステップL13に
戻って応答を待つ。全ての応答が返却されていれば、ク
ライアントプログラム5の呼び出しに対してリターンす
る。
【0037】他方、ファイルサーバ10では、ライブラ
リ11からリード/ライト要求を受け取り、受け取った
リード/ライト要求1つに対し、要求された二次記憶装
置4上のデータにアクセスをした後、要求元に応答1つ
を送信するという処理を、複数のリード/ライト要求に
対し、多重化して実行する。要求を多重化して実行する
方法は前述したので、ここでは1つのリード/ライト要
求に着目したシーケンスを図4を参照して説明する。
【0038】ファイルサーバ10は、先ず、当該リード
/ライト要求にかかるリード/ライトデータを一旦格納
するための中継となるメモリ(データバッファ)を確保
する(S11)。次に、二次記憶装置4に物理リード/
ライトを非同期で発行し、その完了を待つ(S12)。
ここで最初のアクションが終了し、要求処理としては中
断する。次に、物理リード/ライトが終了すると、リー
ド/ライト応答を要求元に送信する(S13)。これが
リード/ライト要求の最終アクションとなる。
【0039】このように本実施例では、クライアントプ
ログラム5によるリード/ライト呼び出しを一定サイズ
のデータへのリード/ライト要求に分割して全部一度に
サーバ計算機2に送信し、この送信されてきた複数のリ
ード/ライト要求をサーバ計算機2が多重処理するよう
にしており、サーバ計算機2での二次記憶装置の物理リ
ード/ライト処理と計算機間接続網3での通信処理が並
行して行われることになる。このことによって、通信の
時間が物理リード/ライト処理の時間と重なり、全体の
処理時間が短縮される。
【0040】通信処理の時間と物理リード/ライト処理
の時間とが重なる様子を図5を用いて説明する。図5で
は、クライアントプログラム5からのリード/ライト呼
び出しを4つのリード/ライト要求に分割して要求した
場合を示す。先ず、ライブラリ11は最初に4つのリー
ド/ライト要求をサーバ計算機2に一度に送る。する
と、サーバ計算機2のファイルサーバ10では4つのリ
ード/ライト要求を多重処理するが、最初の要求を受け
た時点で物理リード/ライトが開始されるため、後続の
要求の通信時間が最初のリード/ライト処理時間と重な
る。これによって、要求の通信時間のほとんどがクライ
アントプログラム5から見えなくなる。さらに、各要求
の終了時には応答をライブラリ11に返却することにな
るが、その間、サーバ計算機2のファイルサーバ10で
は、次の要求の物理リード/ライトを重ねて処理する。
これによって、応答の通信時間のほとんどがクライアン
トプログラム5から見えなくなる。
【0041】図5を見ると、通信の時間のほとんどがサ
ーバ計算機2での物理リード/ライトの時間と重なって
いることが判る。これによって、ほとんどの通信時間は
クライアントプログラム5から見えなくなり、リード/
ライト呼び出しの処理時間が短縮される。但し、図5中
の通信時間24はクライアントプログラム5から見えな
くなるが、最初の要求と最後の応答の通信時間23はク
ライアントプログラム5に見えてしまう。しかし、アク
セスするデータが大量で分割数が多くなる程、この時間
23は物理リード/ライトの時間22の総和に比べ相対
的に小さくなり、リード/ライト呼び出しの処理時間2
1は、物理リード/ライトの時間22の総和と同等にな
る。
【0042】また、サーバ計算機2からクライアントプ
ログラム5の動く計算機1に応答が次々と戻ってくる。
これに対し、ライブラリ11は全ての要求の処理が完了
したことを把握することによって、クライアントプログ
ラム5からのリード/ライト呼び出しの完了をみきわめ
ることができる。
【0043】(実施例2)本実施例では、クライアント
プログラム5からリード/ライト呼び出しがあった場
合、ライブラリ11は図6に示す処理を実行する。
【0044】先ず、実施例1と同様に、クライアントプ
ログラム5からのリード/ライト呼び出しを解析し、或
る一定サイズのデータへのリード/ライト要求に分割す
る(L21)。
【0045】次に、分割数が予め定められたスレッショ
ルド値より大きいかどうかを調べる(L22)。そし
て、分割数がスレッショルド値より大きくない場合は、
分割して得られた全てのリード/ライト要求を全部一度
に計算機間接続網3を介してサーバ計算機2のファイル
サーバ10に送信し(L24)、分割数がスレッショル
ド値より大きい場合は、分割して得られたリード/ライ
ト要求のうち、スレッショルド値に等しい個数のリード
/ライト要求だけを一度に計算機間接続網3を介してサ
ーバ計算機2のファイルサーバ10に送信する(L2
3)。このとき、未だ送信されなかったリード/ライト
要求は内部に保持しておく。そして、サーバ計算機2か
ら返されてくる応答を待つ(L25)。
【0046】次に、サーバ計算機2からの応答を受信す
ると、未だ送信していないリード/ライト要求が残って
いるかどうかを確認する(L26)。未だ送信していな
いリード/ライト要求が残っている場合は、その内の1
つのリード/ライト要求をサーバ計算機2のファイルサ
ーバ10に送信し、ステップL25の応答待ちに移る。
ステップL26の確認で未送信リード/ライト要求が残
っていないと判断した場合は、今までに返却された応答
の数を調べ、全応答が返却されたかどうかを確認する
(L28)。応答の数がリード/ライト要求の分割数よ
り少ない、すなわち、全ての応答が返却されていなけれ
ば、再びステップL25に戻って応答を待つ。全ての応
答が返却されていれば、クライアントプログラム5の呼
び出しに対してリターンする。
【0047】ファイルサーバ10の処理は実施例1と同
じであり、ライブラリ11からリード/ライト要求を受
け取り、受け取ったリード/ライト要求1つに対し、要
求された二次記憶装置4上のデータにアクセスをした
後、要求元に応答1つを送信するという処理を、複数の
リード/ライト要求に対し、多重化して実行する。
【0048】本実施例の基本的な効果は、実施例1と同
様に、通信時間のほとんどを物理リード/ライトと重ね
てクライアントプログラムから見えなくするという効果
を含んでいる。ただし、実施例1では分割して得られた
全てのリード/ライト要求を全部一度に送信するため、
クライアントプログラム5からのリード/ライト呼び出
しのデータ量が大きい場合、一度に送信するリード/ラ
イト要求の数が多くなり、サーバ計算機2および計算機
間通信網3の負荷が過大になる。サーバ計算機2等の負
荷が異常に高まると、リード/ライト要求の幾つかが消
滅し処理されなくなる場合が生じるため、クライアント
プログラム5からのリード/ライト呼び出しが失敗して
しまうことがある。
【0049】これに対して本実施例では、サーバ計算機
2で一度に受け取ることのできる要求数としてスレッシ
ョルド値を設定し、最初に送信するリード/ライト要求
数をスレッショルド値以下に抑えているため、サーバ計
算機2での最初の負荷を一定値以下に抑えることができ
る。さらに、1つの応答に対して1つのリード/ライト
要求を送信するので、サーバ計算機2で受け取っている
リード/ライト要求数は常にスレッショルド値以下とな
り、引続きサーバ計算機2での負荷を一定値以下に抑え
ることができる。
【0050】本実施例におけるサーバ計算機2とクライ
アントプログラム5との間で発生する要求/応答のやり
取りの一例を図7に示す。この例では、クライアントプ
ログラム5からのリード/ライト呼び出しが8つのリー
ド/ライト要求に分割され、またスレッショルド値は4
に設定されている。
【0051】先ず、スレッショルド値が4なので、ライ
ブラリ11は最初に4つだけのリード/ライト要求をサ
ーバ計算機2に送信している。これにより、サーバ計算
機2が最初に受け取るリード/ライト要求の数を4以下
に抑えることができる。
【0052】その後、サーバ計算機2のファイルサーバ
10では個々のリード/ライト要求を多重処理し、1つ
ずつ応答を返却する。これに対し、ライブラリ11で
は、1つの応答を受ける毎に、1つのリード/ライト要
求をサーバ計算機2に送信する。これにより、サーバ計
算機2で多重処理しているリード/ライト要求の数は常
に4つ以下となる。
【0053】(実施例3)本実施例では、クライアント
プログラム5からリード/ライト呼び出しがあった場
合、ライブラリ11は図8に示す処理を実行する。
【0054】先ず、実施例1と同様に、クライアントプ
ログラム5からのリード/ライト呼び出しを解析し、或
る一定サイズのデータへのリード/ライト要求に分割す
る(L31)。
【0055】次に、この分割数を指定した予約要求を計
算機間接続網3を介してサーバ計算機2のファイルサー
バ10に送信し、その応答を待つ(L32)。
【0056】次に、サーバ計算機2のファイルサーバ1
0から上記の予約要求に対する応答を受信すると、その
応答に含まれる予約数を取り出し、スレッショルド値と
する(L33)。
【0057】次に、ステップL31での分割数がこのス
レッショルド値より大きいかどうかを調べる(L3
4)。そして、分割数がスレッショルド値より大きくな
い場合は、分割して得られた全てのリード/ライト要求
を全部一度に計算機間接続網3を介してサーバ計算機2
のファイルサーバ10に送信し(L36)、分割数がス
レッショルド値より大きい場合は、分割して得られたリ
ード/ライト要求のうち、スレッショルド値に等しい個
数のリード/ライト要求だけを一度に計算機間接続網3
を介してサーバ計算機2のファイルサーバ10に送信す
る(L35)。このとき、未だ送信されなかったリード
/ライト要求は内部に保持しておく。そして、サーバ計
算機2から返されてくる応答を待つ(L37)。
【0058】次に、サーバ計算機2からの応答を受信す
ると、未だ送信していないリード/ライト要求が残って
いるかどうかを確認する(L38)。未だ送信していな
いリード/ライト要求が残っている場合は、その内の1
つのリード/ライト要求をサーバ計算機2のファイルサ
ーバ10に送信し(L39)、ステップL37の応答待
ちに移る。ステップL38の確認で未送信リード/ライ
ト要求が残っていないと判断した場合は、今までに返却
された応答の数を調べ、全応答が返却されたかどうかを
確認する(L3a)。応答の数がリード/ライト要求の
分割数より少ない、すなわち、全ての応答が返却されて
いなければ、再びステップL37に戻って応答を待つ。
【0059】全ての応答が返却されていれば、サーバ計
算機2における予約を解除するための要求(予約解除要
求)を計算機間接続網3を介してサーバ計算機2のファ
イルサーバ10に送信し、その応答を待つ(L3b)。
そして、予約解除要求に対する応答が返却された後、ク
ライアントプログラム5の呼び出しに対してリターンす
る。
【0060】本実施例の場合、ファイルサーバ10は、
リード/ライト要求処理以外に、予約要求処理と予約解
除要求処理とを行う。リード/ライト要求処理は実施例
1,2とほぼ同じなので、以下、予約要求処理と予約解
除要求処理とを説明する。
【0061】図9は1つの予約要求処理に着目したシー
ケンスを示している。前述したようにライブラリ11か
ら予約要求が送信されてくると、ファイルサーバ10
は、先ず、当該クライアントプログラムに対して許容で
きるリード/ライト要求の数を計算する(S31)。
【0062】この許容数は現在のファイルサーバ10の
負荷状況によって決まる。具体的には、ファイルサーバ
10がリード/ライト要求を処理するために使える現時
点のメモリ残量によってほぼ決まる。例えば、ファイル
サーバ10がリード/ライト要求を処理するために使え
る全メモリ量をAとし、1つのリード/ライト要求を処
理するために必要なメモリ量をBとすると、[A/B]
がファイルサーバ10の処理負荷上限となる。また、現
時点でC個のリード/ライト要求の予約を受け付けてい
る場合、現在の許容数の総計(総許容数)はCなので、
現時点でのリード/ライト要求の許容数は、処理負荷上
限−Cである。そこで、ファイルサーバ10では、処理
負荷の上限となる数から、現在の許容数の総計(総許容
数)を引いたものを、当該クライアントプログラムに対
する許容数として求める。
【0063】次に、ステップS31で求めた許容数と予
約要求で指定された分割数のうち小さい方の値を予約数
として決定する(S32)。そして、現在の許容数の総
計を今回の予約数の分だけ増やし(S33)、ステップ
S32で求めた予約数を指定した応答を要求元に送信す
る(S34)。今回の予約数の分だけ現在の許容数の総
計を増やすことにより、今回の予約数に見合ったメモリ
量を他のクライアントプログラムから発生したリード/
ライト要求処理で使われないようにすることができる。
従って、当該クライアントプログラムからのリード/ラ
イト要求にかかるリード/ライトデータを一旦格納する
ための中継となるメモリを確保する際にメモリ不足が生
じるのを防止できる。
【0064】なお、ステップS32の処理内容を、予約
数=min(許容数,分割数,1クライアントプログラ
ム当たりに付与する最大許容数)に変更する実施例も考
えられる。こうすれば、1クライアントプログラムに付
与する最大許容数を制限でき、1つのクライアントプロ
グラムが現時点の許容数を全て占有してしまうことを防
止できる。
【0065】以上のような予約要求処理は1つのアクシ
ョンから成り立つ。
【0066】他方、図10は1つの予約解除要求の処理
に着目したシーケンスを示している。前述したようにラ
イブラリ11から予約解除要求が送信されてくると、フ
ァイルサーバ10は現在の許容数の総計から、当該クラ
イアントプログラムに与えていた予約数を差し引いて更
新する(S35)。これにより予約されていたメモリ量
が解放され、他のクライアントプログラムからのリード
/ライト要求の処理のために使用できるメモリ量がその
分だけ増加する。そして、予約解除要求処理の終了を応
答によってライブラリ11に伝える(S36)。このよ
うな予約解除要求処理は1つのアクションから成り立
つ。
【0067】実施例2のように、サーバ計算機2の処理
能力によってスレッショルド値を予め決めておいた場
合、クライアントプログラムが1つならば、サーバ計算
機2の処理能力を超えた数のリード/ライト要求が来る
ことはない。しかし、サーバ計算機2に対してリード/
ライト要求を送信するクライアントプログラムが複数存
在する場合、サーバ計算機2の処理能力を超えてしまう
ことがある。
【0068】これに対して本実施例では、動的に変化す
るサーバ計算機2のファイルサーバ10の負荷状況に応
じて、1つのクライアントプログラムに対して許容する
予約数をライブラリ11に知らせ、ライブラリ11はそ
の予約数をスレッショルド値として、以降、このスレッ
ショルド値に従ってリード/ライト要求を行うため、サ
ーバ計算機2に発生する負荷が一定値を超えないように
制御することができる。つまり、サーバ計算機2が複数
のクライアントプログラムを相手にしても、サーバ計算
機2の処理能力を超えることはない。また、クライアン
トプログラムからのリード/ライト要求が全て終了した
際には予約数がリセットされるため、以降に発生するク
ライアントプログラムの予約要求に対してメモリを有効
に活用することができる。
【0069】本実施例におけるサーバ計算機2とクライ
アントプログラム5との間で発生する要求/応答のやり
取りの一例を図11に示す。予約処理(イ)と予約解除
処理(ロ)以外は実施例2と同様のやり取りとなる。図
11の例では、クライアントプログラム5からのリード
/ライト呼び出しを5つのリード/ライト要求に分割し
ているが、ファイルサーバ10からの予約数が3であっ
た場合を想定している。このため、ライブラリ11はス
レッショルド値に3を設定し、最初に3つのリード/ラ
イト要求をサーバ計算機2に送っている。以後の処理は
実施例2の処理手順と同様であるが、全てのリード/ラ
イト要求を処理した後、予約解除処理(ロ)が行われ、
クライアントプログラム5からのリード/ライト呼び出
しへ戻っている。
【0070】(実施例4)本実施例では、クライアント
プログラム5からリード/ライト呼び出しがあった場
合、ライブラリ11は図12に示す処理を実行する。
【0071】先ず、実施例1と同様に、クライアントプ
ログラム5からのリード/ライト呼び出しを解析し、或
る一定サイズのデータへのリード/ライト要求に分割す
る(L41)。
【0072】次に、この分割数が1より大きいかどうか
を調べる(L42)。分割数が1つなら、予約要求する
ことなく、その1つのリード/ライト要求を計算機間接
続網3を介してサーバ計算機2のファイルサーバ10に
送信し、応答の受信を待つ(L44)。
【0073】他方、上記の分割数が1より大きいとき
は、分割して得られたリード/ライト要求のうちの1つ
のリード/ライト要求に予約要求を付加した予約+リー
ド/ライト一括要求を、1つの要求としてサーバ計算機
2のファイルサーバ10に送信し、予約応答の受信を待
つ(L43)。予約応答の受信を待つとは、クライアン
トプログラム5の持つ応答受信用のポートを読む処理で
あり、予約応答が受信されていなければ受信されるまで
待つことになる。
【0074】次に、サーバ計算機2から予約の応答が返
却されると、その応答に含まれる予約数を取り出し、ス
レッショルド値とする(L45)。
【0075】次に、ステップL41での分割数−1がこ
のスレッショルド値より大きいかどうかを調べる(L4
6)。そして、分割数−1がスレッショルド値より大き
くない場合は、分割して得られた残りの全てのリード/
ライト要求を全部一度に計算機間接続網3を介してサー
バ計算機2のファイルサーバ10に送信する(L4
8)。但し、その内の1つのリード/ライト要求は、予
約解除要求を付加して、予約解除+リード/ライト一括
要求とし、これを1つの要求として送信する。また、分
割数−1がスレッショルド値より大きい場合は、分割し
て得られた残りのリード/ライト要求のうち、スレッシ
ョルド値に等しい個数のリード/ライト要求だけを一度
に計算機間接続網3を介してサーバ計算機2のファイル
サーバ10に送信する(L47)。このとき、未だ送信
されなかったリード/ライト要求は内部に保持してお
く。そして、サーバ計算機2から返されてくるリード/
ライトの応答を待つ(L49)。
【0076】次に、サーバ計算機2からのリード/ライ
トの応答を受信すると、未だ送信していないリード/ラ
イト要求が残っているかどうかを確認する(L4a)。
未だ送信していないリード/ライト要求が残っている場
合は、その数が1つかどうかを調べ(L4c)、1つで
なければ、即ち未だ送信していないリード/ライト要求
が2つ以上残っている場合は、その内の1つのリード/
ライト要求をサーバ計算機2のファイルサーバ10に送
信し(L4d)、ステップL49の応答待ちに移る。他
方、未だ送信していないリード/ライト要求が1つの場
合は、それに予約解除要求を付加して予約解除+リード
/ライト一括要求とした1つの要求をサーバ計算機2の
ファイルサーバ10に送信し(L4e)、ステップL4
9の応答待ちに移る。
【0077】そして、ステップL4aの確認で未送信リ
ード/ライト要求が残っていないと判断した場合は、今
までに返却された応答の数を調べ、全応答が返却された
かどうかを確認し(L4b)、応答の数がリード/ライ
ト要求の分割数より少ない、すなわち、全ての応答が返
却されていなければ、再びステップL49に戻って応答
を待つ。全ての応答が返却されていれば、クライアント
プログラム5の呼び出しに対してリターンする。
【0078】本実施例の場合、ファイルサーバ10は、
リード/ライト要求処理以外に、予約+リード/ライト
一括要求処理と予約解除+リード/ライト一括要求処理
とを、多重化して実行する。
【0079】図13は1つのリード/ライト要求に着目
したシーケンスを示している。ファイルサーバ10は、
先ず、当該リード/ライト要求にかかるリード/ライト
データを一旦格納するための中継となるメモリを確保す
る(S41)。次に、二次記憶装置4に非同期で物理リ
ード/ライトを行い、その完了を待つ(S42)。
【0080】次に、物理リード/ライトが終了すると、
同じクライアントプログラム5からの要求で、予約解除
+リード/ライト一括要求の処理が中断しているかどう
かを調べる(S43)。若し、中断しているならば、同
じクライアントプログラム5からの処理中のリード/ラ
イト要求が他にあるかどうかを調べ(S44)、あれ
ば、中断している予約解除+リード/ライト一括要求を
要求キューに登録し(S45)、前記物理リード/ライ
トの終了したリード/ライト要求に対する応答を要求元
に送信する(S46)。他方、予約解除+リード/ライ
ト一括要求の処理が中断していないか或いはそのような
予約解除+リード/ライト一括要求が存在しない場合、
あるいは中断している予約解除+リード/ライト一括要
求があっても同じクライアントプログラムからの処理中
のリード/ライト一括要求があれば、ステップS45を
スキップして、当該リード/ライト要求の応答を要求元
に送信する(S46)。
【0081】図14は1つの予約+リード/ライト一括
要求の処理に着目したシーケンスを示している。前述し
たようにライブラリ11から予約+リード/ライト一括
要求が送信されてくると、ファイルサーバ10は、先
ず、当該クライアントプログラムに対して許容できるリ
ード/ライト要求の数を計算する(S47)。この許容
数は現在のファイルサーバ10の負荷状況によって決ま
る。具体的には、ファイルサーバ10の処理負荷の上限
となる数から、現在の許容数の総計(総許容数)を引い
たものとして計算される。
【0082】次に、ステップS47で求めた許容数と予
約要求で指定された分割数−1のうち小さい方の値を予
約数として決定する(S48)。そして、現在の許容数
の総計を今回の予約数の分だけ増やしておき(S4
9)、ステップS48で求めた予約数を指定した応答を
要求元に非同期で送信する(S4a)。
【0083】なお、ステップS48の処理内容を、予約
数=min(許容数,分割数−1,1クライアントプロ
グラム当たりに付与する最大許容数)に変更する実施例
も考えられる。こうすれば、1クライアントプログラム
に付与する最大許容数を制限でき、1つのクライアント
プログラムが現時点の許容数を全て占有してしまうこと
を防止できる。
【0084】ここまでの処理は実施例3のファイルサー
バ10での予約要求処理とほぼ同様である。但し、本実
施例では、予約応答を非同期で送信した後、引続きリー
ド/ライト要求の処理に移るため、リード/ライト要求
の処理の時間と予約応答の通信時間とが重なる。
【0085】リード/ライト要求の処理では、まず、当
該リード/ライト要求にかかるリード/ライトデータを
一旦格納するための中継となるメモリを確保する(S4
b)。次に、二次記憶装置4に非同期で物理リード/ラ
イトを行い、その完了を待つ(S4c)。そして、物理
リード/ライトが終了すると、リード/ライト応答を要
求元に送信する(S4d)。
【0086】他方、図15は1つの予約解除+リード/
ライト一括要求に着目したシーケンスを示している。前
述したようにライブラリ11から予約解除+リード/ラ
イト一括要求が送信されてくると、先ずリード/ライト
要求処理を行い、次いで予約解除処理を行う。リード/
ライト要求処理では、当該リード/ライト要求にかかる
リード/ライトデータを一旦格納するための中継となる
メモリを確保し(S4e)、二次記憶装置4に非同期で
物理リード/ライトを行い、その完了を待つ(S4
f)。物理リード/ライトが終了すると、同じクライア
ントプログラム5からの処理中のリード/ライト要求が
他にあるかどうかを調べ(S4g)、若しあれば、処理
中のリード/ライト要求がなくなるまで中断する。中断
の方法は、当該要求を中断キューに登録することで行
う。中断キューに登録された要求は、前述の図13のス
テップS45で中断キューから要求キューに登録しなお
される。
【0087】他に処理中のリード/ライト要求がなくな
ると、予約解除の処理となり、現在の総許容数から予約
数を差し引いて更新する(S4h)。これにより当該ク
ライアントプログラムに対して予約されていたメモリ量
が解放される。そして、リード/ライト応答に予約解除
の応答を含めて要求元に送信する(S4i)。
【0088】本実施例によれば、予約+リード/ライト
一括要求を導入したので、ライブラリ11側では予約要
求を別要求として最初に送らずに済むとともに、ファイ
ルサーバ10側では予約応答に引き続いてリード/ライ
ト処理が行われるので、予約応答の通信時間を物理リー
ド/ライトの時間と重ねることができる。また、サーバ
計算機での物理リード/ライトの最中に、クライアント
プログラムから後続のリード/ライト要求の送信が行わ
れれば、それらの通信時間も物理リード/ライトの時間
に重ねることができる。
【0089】また、予約解除+リード/ライト一括要求
を導入したので、予約解除の要求を別要求として最後に
送らずに済み、その分の通信時間を削減することができ
る。
【0090】以上のことから、最初と最後の予約/予約
解除のための通信時間を削減することができる。図16
はサーバ計算機2とクライアントプログラム5との間で
発生する要求/応答のやり取りの一例を示している。最
初の予約+リード/ライト一括要求(ハ)は1要求とし
てサーバ計算機2に送られる。サーバ計算機2では、ま
ず予約処理を行い、予約応答を返却し、同時にリード/
ライト処理に移る。この際、物理リード/ライトと予約
応答の通信時間が重なっている。
【0091】クライアントプログラム5の動作する計算
機1のライブラリ11で予約応答を受け取った後のリー
ド/ライト要求処理は、実施例3と同様である。ただ
し、最後の要求が予約解除+リード/ライト一括要求と
なる点が異なる。最後の要求の処理は、図16に示す予
約解除+リード/ライト(ニ)の処理に相当する。図1
6の例では、クライアントプログラム5からのリード/
ライト呼び出しを5つのリード/ライト要求に分割して
いるが、ファイルサーバ10からの予約数が3であった
場合を想定している。このため、ライブラリ11はスレ
ッショルド値に3を設定し、予約応答受信後、最初に3
つのリード/ライト要求をサーバ計算機2に送ってい
る。以後の処理は実施例2,3の処理手順と同様である
が、リード/ライト要求の残りが1つになったとき、予
約解除とリード/ライトを一緒にした要求(予約解除+
リード/ライト一括要求)を行う。サーバ計算機では、
この要求に対してリード/ライトの処理と予約解除の処
理を行い、1つの応答として返却する。これにより、最
後の通信時間を削減することができる。
【0092】以上本発明の実施例について説明したが、
本発明は以上の実施例にのみ限定されずその他各種の付
加変更が可能である。例えば、図1では、1つのサーバ
計算機2に、1つのクライアントプログラム5が動作す
る計算機1を計算機間通信網3を介して接続している
が、1つ又は複数のクライアントプログラム5が動作す
る計算機を複数台、計算機間通信網3に接続した計算機
システムに対しても適用可能である。また、サーバ計算
機2には1つの二次記憶装置4のみ接続されている例を
示したが、複数の二次記憶装置が接続されていても良
い。
【0093】
【発明の効果】以上説明したように本発明によれば以下
のような効果を得ることができる。
【0094】請求項1ないし4記載の発明によれば、遠
隔二次記憶装置へのデータアクセス時における通信時間
のほとんどをクライアントプログラムから見えなくし、
あたかもその二次記憶装置がクライアントプログラムの
動作する計算機に接続されているかのようなアクセス時
間を達成することができる。
【0095】また請求項2記載の発明によれば、クライ
アントプログラムが大容量のデータをアクセスする場合
であっても、即ち分割されたリード/ライト要求の数が
多くなる場合であっても、一度に要求するリード/ライ
トの量を抑制でき、第2の計算機での処理負荷が過大に
ならないようにすることができる。
【0096】更に請求項3記載の発明によれば、1台の
第2の計算機に対して複数のクライアントプログラムが
リード/ライト要求を行う場合でも、第2の計算機の負
荷に応じて一度に要求するリード/ライトの量を抑制で
き、第2の計算機の処理負荷が過大にならないようにす
ることができる。
【0097】また更に請求項4記載の発明によれば、第
1の計算機側では予約要求を別要求として最初に送らず
に済み、第2の計算機側では予約応答に引き続いてリー
ド/ライト処理が行われるので、予約応答の通信時間を
物理リード/ライトの時間と重ねることができる。ま
た、第2の計算機での物理リード/ライトの最中に、第
1の計算機から後続のリード/ライト要求の送信が行わ
れれば、それらの通信時間も物理リード/ライトの時間
に重ねることができる。さらに、第1の計算機側では予
約解除の要求を別要求として最後に送らずに済み、その
分の通信時間を削減することができる。
【図面の簡単な説明】
【図1】本発明を適用した計算機システムの一例を示す
ブロック図である。
【図2】ファイルサーバで複数の要求を多重処理するた
めの処理の一例を示すフローチャートである。
【図3】実施例1におけるライブラリの処理の一例を示
すフローチャートである。
【図4】実施例1におけるファイルサーバの、1つのリ
ード/ライト要求に着目した処理の一例を示すフローチ
ャートである。
【図5】実施例1におけるクライアントプログラムとサ
ーバ計算機との要求/応答のやり取りを示すタイミング
チャートである。
【図6】実施例2におけるライブラリの処理の一例を示
すフローチャートである。
【図7】実施例2におけるクライアントプログラムとサ
ーバ計算機との要求/応答のやり取りを示すタイミング
チャートである。
【図8】実施例3におけるライブラリの処理の一例を示
すフローチャートである。
【図9】実施例3におけるファイルサーバの、1つの予
約要求に着目した処理の一例を示すフローチャートであ
る。
【図10】実施例3におけるファイルサーバの、1つの
予約解除要求に着目した処理の一例を示すフローチャー
トである。
【図11】実施例3におけるクライアントプログラムと
サーバ計算機との要求/応答のやり取りを示すタイミン
グチャートである。
【図12】実施例4におけるライブラリの処理の一例を
示すフローチャートである。
【図13】実施例4におけるファイルサーバの、1つの
リード/ライト要求に着目した処理の一例を示すフロー
チャートである。
【図14】実施例4におけるファイルサーバの、1つの
予約+リード/ライト一括要求に着目した処理の一例を
示すフローチャートである。
【図15】実施例4におけるファイルサーバの、1つの
予約解除+リード/ライト一括要求に着目した処理の一
例を示すフローチャートである。
【図16】実施例4におけるクライアントプログラムと
サーバ計算機との要求/応答のやり取りを示すタイミン
グチャートである。
【図17】遠隔二次記憶装置への従来のアクセス方法の
説明図である。
【符号の説明】
1…クライアントプログラムの動作する計算機 2…サーバ計算機 3…計算機間接続網 4…二次記憶装置 5…クライアントプログラム 10…ファイルサーバ 11…ライブラリ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 第1の計算機上で動作するクライアント
    プログラムから、前記第1の計算機と計算機間接続網を
    通じて相互に通信可能な第2の計算機に接続されている
    二次記憶装置上のデータに対してアクセスする方法であ
    って、 前記第1の計算機においては、 前記クライアントプログラムによるリード/ライト呼び
    出しを、一定サイズのデータへのリード/ライト要求に
    分割し、該分割して得られたリード/ライト要求を全部
    一度に前記第2の計算機に送信し、 前記送信した全てのリード/ライト要求について前記第
    2の計算機から応答が返却されていることを確認した
    後、前記クライアントプログラムにリード/ライト呼び
    出しの結果を戻し、 前記第2の計算機においては、 前記第1の計算機からのリード/ライト要求を受け取
    り、受け取ったリード/ライト要求1つに対し、要求さ
    れた二次記憶装置上のデータにアクセスをした後、要求
    元のクライアントプログラムに応答1つを送信するとい
    う処理を、複数のリード/ライト要求に対し、多重化し
    て実行することを特徴とする二次記憶装置への遠隔アク
    セス方法。
  2. 【請求項2】 第1の計算機上で動作するクライアント
    プログラムから、前記第1の計算機と計算機間網を通じ
    て相互に通信可能な第2の計算機に接続されている二次
    記憶装置上のデータに対してアクセスする方法であっ
    て、 前記第1の計算機においては、 前記クライアントプログラムによるリード/ライト呼び
    出しを、一定サイズのデータへのリード/ライト要求に
    分割し、 該分割して得られたリード/ライト要求の数が予め定め
    られたスレッショルド値以下のときは全部一度に前記第
    2の計算機に送信し、スレッショルド値を超えていると
    きは最初にスレッショルド値分のリード/ライト要求を
    前記第2の計算機に送信した後、リード/ライト要求に
    対応する前記第2の計算機からの応答を1つ確認する毎
    に残りのリード/ライト要求を1つ前記第2の計算機に
    送信し、 前記送信した全てのリード/ライト要求について前記第
    2の計算機から応答が返却されていることを確認した
    後、前記クライアントプログラムにリード/ライト呼び
    出しの結果を戻し、 前記第2の計算機においては、 前記第1の計算機からのリード/ライト要求を受け取
    り、受け取ったリード/ライト要求1つに対し、要求さ
    れた二次記憶装置上のデータにアクセスをした後、要求
    元のクライアントプログラムに応答1つを送信するとい
    う処理を、複数のリード/ライト要求に対し、多重化し
    て実行することを特徴とする二次記憶装置への遠隔アク
    セス方法。
  3. 【請求項3】 第1の計算機上で動作するクライアント
    プログラムから、前記第1の計算機と計算機間網を通じ
    て相互に通信可能な第2の計算機に接続されている二次
    記憶装置上のデータに対してアクセスする方法であっ
    て、 前記第1の計算機においては、 前記クライアントプログラムによるリード/ライト呼び
    出しを、一定サイズのデータへのリード/ライト要求に
    分割し、 該分割して得られたリード/ライト要求の送信に先立っ
    て前記第2の計算機に対して予約の要求を送信し、 前記送信した予約の要求に対する前記第2の計算機から
    の応答に含まれる予約数からスレッショルド値を決定
    し、 前記分割して得られたリード/ライト要求の数が前記ス
    レッショルド値以下のときは全部一度に前記第2の計算
    機に送信し、スレッショルド値を超えているときは最初
    にスレッショルド値分のリード/ライト要求を前記第2
    の計算機に送信した後、リード/ライト要求に対応する
    前記第2の計算機からの応答を1つ確認する毎に残りの
    リード/ライト要求を1つ前記第2の計算機に送信し、 前記送信した全てのリード/ライト要求について前記第
    2の計算機から応答が返却されていることを確認した
    後、前記第2の計算機に対して予約解除を要求すると共
    に、前記クライアントプログラムにリード/ライト呼び
    出しの結果を戻し、 前記第2の計算機においては、 前記第1の計算機からの予約の要求に対し、自計算機の
    現在の負荷状況に応じて1つのクライアントプログラム
    に対して許容するリード/ライト要求数を予約数として
    前記第1の計算機に通知すると共にその予約数に見合っ
    たメモリ量を確保し、 前記第1の計算機からのリード/ライト要求を受け取
    り、受け取ったリード/ライト要求1つに対し、要求さ
    れた二次記憶装置上のデータにアクセスをした後、要求
    元のクライアントプログラムに応答1つを送信するとい
    う処理を、複数のリード/ライト要求に対し、多重化し
    て実行し、 前記第1の計算機からの予約解除の要求に対し、前記確
    保していたメモリ量を解放することを特徴とする二次記
    憶装置への遠隔アクセス方法。
  4. 【請求項4】 第1の計算機上で動作するクライアント
    プログラムから、前記第1の計算機と計算機間網を通じ
    て相互に通信可能な第2の計算機に接続されている二次
    記憶装置上のデータに対してアクセスする方法であっ
    て、 前記第1の計算機においては、 前記クライアントプログラムによるリード/ライト呼び
    出しを、一定サイズのデータへのリード/ライト要求に
    分割し、 該分割して得られたリード/ライト要求のうちの1つの
    リード/ライト要求に予約の要求を付加した予約+リー
    ド/ライト一括要求を前記第2の計算機に対して送信
    し、 前記送信した予約+リード/ライト一括要求に対する前
    記第2の計算機からの予約応答に含まれる予約数からス
    レッショルド値を決定し、 前記分割して得られたリード/ライト要求の残りの数が
    前記スレッショルド値以下のときは、1つのリード/ラ
    イト要求に予約解除の要求を付加して予約解除+リード
    /ライト一括要求とした上で、全部一度に前記第2の計
    算機に送信し、スレッショルド値を超えているときは最
    初にスレッショルド値分のリード/ライト要求を前記第
    2の計算機に送信した後、リード/ライト要求に対応す
    る前記第2の計算機からの応答を1つ確認する毎に残り
    のリード/ライト要求を1つ前記第2の計算機に送信し
    ていき且つ最後の1つのリード/ライト要求は予約解除
    の要求を付加した予約解除+リード/ライト一括要求と
    して送信し、 前記送信した全ての要求について前記第2の計算機から
    応答が返却されていることを確認した後、前記クライア
    ントプログラムにリード/ライト呼び出しの結果を戻
    し、 前記第2の計算機においては、 前記第1の計算機から要求を受け取り、受け取った要求
    が予約+リード/ライト一括要求のときは自計算機の現
    在の負荷状況に応じて1つのクライアントプログラムに
    対して許容するリード/ライト要求数を予約数として前
    記第1の計算機に通知すると共にその予約数に見合った
    メモリ量を確保した後、要求された二次記憶装置上のデ
    ータにアクセスをして要求元のクライアントプログラム
    に応答1つを送信するという処理を、受け取った要求が
    リード/ライト要求のときは要求された二次記憶装置上
    のデータにアクセスをした後、要求元のクライアントプ
    ログラムに応答1つを送信するという処理を、受け取っ
    た要求が予約解除+リード/ライト一括要求のときは要
    求された二次記憶装置上のデータにアクセスをした後、
    要求元のクライアントプログラムから発生した処理中の
    リード/ライト要求が全部完了した時点で前記確保した
    メモリ量を解放するという処理を、複数の要求に対し、
    多重化して実行することを特徴とする二次記憶装置への
    遠隔アクセス方法。
  5. 【請求項5】 前記第2の計算機に、複数台の前記第1
    の計算機を前記計算機間接続網を通じて接続したことを
    特徴とする請求項1,2,3または4記載の二次記憶装
    置への遠隔アクセス方法。
JP8027263A 1996-01-22 1996-01-22 二次記憶装置への遠隔アクセス方法 Pending JPH09198336A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8027263A JPH09198336A (ja) 1996-01-22 1996-01-22 二次記憶装置への遠隔アクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8027263A JPH09198336A (ja) 1996-01-22 1996-01-22 二次記憶装置への遠隔アクセス方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2000242636A Division JP3698031B2 (ja) 2000-08-10 2000-08-10 二次記憶装置への遠隔アクセス方法

Publications (1)

Publication Number Publication Date
JPH09198336A true JPH09198336A (ja) 1997-07-31

Family

ID=12216196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8027263A Pending JPH09198336A (ja) 1996-01-22 1996-01-22 二次記憶装置への遠隔アクセス方法

Country Status (1)

Country Link
JP (1) JPH09198336A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006004196A1 (ja) * 2004-07-02 2006-01-12 Nec Corporation マルチプロセッサシステムおよびメモリアクセス処理方法
JP2010515116A (ja) * 2006-12-06 2010-05-06 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) インサーバストレージエリアネットワーク用装置、システムおよび方法
US9600184B2 (en) 2007-12-06 2017-03-21 Sandisk Technologies Llc Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
JP2019020989A (ja) * 2017-07-14 2019-02-07 キヤノン株式会社 記録装置

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664900B2 (en) 2004-07-02 2010-02-16 Nec Corporation Multiprocessor system and method for processing memory access
WO2006004196A1 (ja) * 2004-07-02 2006-01-12 Nec Corporation マルチプロセッサシステムおよびメモリアクセス処理方法
US11847066B2 (en) 2006-12-06 2023-12-19 Unification Technologies Llc Apparatus, system, and method for managing commands of solid-state storage using bank interleave
JP2010515116A (ja) * 2006-12-06 2010-05-06 フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) インサーバストレージエリアネットワーク用装置、システムおよび方法
US8495292B2 (en) 2006-12-06 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for an in-server storage area network
US9454492B2 (en) 2006-12-06 2016-09-27 Longitude Enterprise Flash S.A.R.L. Systems and methods for storage parallelism
US9575902B2 (en) 2006-12-06 2017-02-21 Longitude Enterprise Flash S.A.R.L. Apparatus, system, and method for managing commands of solid-state storage using bank interleave
US9734086B2 (en) 2006-12-06 2017-08-15 Sandisk Technologies Llc Apparatus, system, and method for a device shared between multiple independent hosts
US9824027B2 (en) 2006-12-06 2017-11-21 Sandisk Technologies Llc Apparatus, system, and method for a storage area network
US11960412B2 (en) 2006-12-06 2024-04-16 Unification Technologies Llc Systems and methods for identifying storage resources that are not in use
US11573909B2 (en) 2006-12-06 2023-02-07 Unification Technologies Llc Apparatus, system, and method for managing commands of solid-state storage using bank interleave
US11640359B2 (en) 2006-12-06 2023-05-02 Unification Technologies Llc Systems and methods for identifying storage resources that are not in use
US9600184B2 (en) 2007-12-06 2017-03-21 Sandisk Technologies Llc Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
JP2019020989A (ja) * 2017-07-14 2019-02-07 キヤノン株式会社 記録装置

Similar Documents

Publication Publication Date Title
JP3382953B2 (ja) 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置
US6141720A (en) Method and apparatus for coordination of a shared object in a distributed system
US5790807A (en) Computer sysem data I/O by reference among CPUS and I/O devices
US5265261A (en) Method and system for network communications using raw mode protocols
US9405574B2 (en) System and method for transmitting complex structures based on a shared memory queue
US5805823A (en) System and method for optimal multiplexed message aggregation between client applications in client-server networks
US7689694B2 (en) Process management apparatus, computer systems, distributed processing method, and computer program for avoiding overhead in a process management device
CN110351342A (zh) 业务指令处理方法、装置、计算机设备和存储介质
US6212573B1 (en) Mechanism for invoking and servicing multiplexed messages with low context switching overhead
US6112281A (en) I/O forwarding in a cache coherent shared disk computer system
US5954794A (en) Computer system data I/O by reference among I/O devices and multiple memory units
JP2006510996A (ja) 2つまたはそれ以上の機械の間でデータベース動作を行なうための直接メモリアクセスの用法
JPH10301871A (ja) 通信システムで比較的大きなデータ・オブジェクトの伝送を制御するシステムと方法
JP2019521576A (ja) メッセージングシステムの持続性の維持
JPH01142964A (ja) 記憶装置管理方法
CN110011933A (zh) 发送数据包的方法、装置及计算机可读存储介质
JPH09198336A (ja) 二次記憶装置への遠隔アクセス方法
JP3698031B2 (ja) 二次記憶装置への遠隔アクセス方法
JPH01137356A (ja) 作業フロー制御方法、作業要求フロー制御方法及び装置、並びに通信管理装置
JP3345546B2 (ja) データ配送方法及び情報通信装置
WO2014203728A1 (ja) メッセージ制御システム、メッセージ制御装置、メッセージ制御方法及びプログラム
JPH06301655A (ja) 分散処理システム
JPS61195439A (ja) リモ−トフアイルアクセス方式
JP2002163185A (ja) コンテンツ配信方法及びコンテンツ配信装置
CN115085969B (zh) 基于Vpp底层框架的拟态架构及裁决方法