JP3698031B2 - Remote access method to secondary storage device - Google Patents
Remote access method to secondary storage device Download PDFInfo
- Publication number
- JP3698031B2 JP3698031B2 JP2000242636A JP2000242636A JP3698031B2 JP 3698031 B2 JP3698031 B2 JP 3698031B2 JP 2000242636 A JP2000242636 A JP 2000242636A JP 2000242636 A JP2000242636 A JP 2000242636A JP 3698031 B2 JP3698031 B2 JP 3698031B2
- Authority
- JP
- Japan
- Prior art keywords
- read
- request
- write
- computer
- reservation
- 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
Description
【0001】
【発明の属する技術分野】
本発明は二次記憶装置への遠隔アクセス方法に関し、より詳細には、複数の計算機が計算機間接続網で接続されている環境において、或る計算機で動くアプリケーションプログラムから、別の計算機に接続されている二次記憶装置上のデータに対してアクセスする方法に関する。
【0002】
【従来の技術】
別の計算機に接続されている二次記憶装置(遠隔二次記憶装置)にアクセスする方法は幾つか存在する。
【0003】
1つの方法は、図17(A)に示すような、Network File System(NFS)による方法である。NFSにおけるデータアクセスは、RPCという通信プロトコルレイヤを設け、ソフトウェアで実現されている(参考文献「NFS&NIS」アスキー出版局)。
【0004】
NFSでは、クライアントプログラムからのリード/ライトの呼び出しをRPC要求という形に変換し、サーバ計算機上で動作するNFSデーモンというプロセスにRPCプロトコルを使って送信する。例えば、ライト呼び出しであれば、要求と共にライトデータが送信されるが、NFSデーモンでこのデータを取り込んでから、二次記憶装置に書き込み、応答をクライアントプログラムに転送する。リード呼び出しであれば、NFSデーモンは二次記憶装置から目的とするデータを読み出し、RPC要求の応答としてデータを返却する。
【0005】
クライアントプログラムからのリード/ライト呼び出しをRPC要求に変換する際は、固定サイズデータへのリード/ライト要求として複数のRPC要求に分解される。通常は、1回のRPC要求でアクセスされるデータのサイズは8KByteとなっている。アクセス要求は1つずつNFSデーモンに送信され、その応答を待ってから次のRPC要求が送信される。つまり、NFSデーモンは同時には1つのRPC要求しか処理しないため、8KByteのデータを取り込む領域さえ確保していれば良い。ただし、1つのクライアントプログラムに対して1つのNFSデーモンが占有されるため、複数のクライアントプログラムからの要求を処理するためには、サイズ計算機上にNFSデーモンを複数立ち上げておく必要がある。
【0006】
別の方法として、例えば特開平4−92943号公報に見られる高速LANのディスクサーバがある。この方法では、図17(B)に示すように、計算機間接続網を高速LANとし、二次記憶装置(ディスクと限定している)を管理するディスクサーバと複数のワークステーションから構成される環境を想定している。
ディスクを管理するディスクサーバは専用のハードウェアとし、複数のリード/ライト要求を同時に処理できる構造となっている。
【0007】
ワークステーション上ではクライアントプログラムが動作し、クライアントプログラムからの遠隔ディスクへのリード/ライト要求を、通信によってディスクサーバに送信する。例えば、ライト要求であれば、要求と共にデータを送信する。これに対しディスクサーバでは、受信したデータをデータバッファに一旦格納してからディスクにデータを書き込み、通信によって要求元のワークステーションに結果を通知する。また、リード要求であれば、ディスクサーバでデータバッファ中に目的のデータがあるかどうかを調べ、なければディスクからデータを読み出し、データバッファに格納する。更に、格納したデータを通信によって要求元のワークステーションに送信する。
【0008】
この方法では、計算機間接続網と二次記憶装置との間でデータを中継するために、ディスクサーバ内にデータバッファを持つ。データバッファは、各ワークステーション毎に領域を区切って使用する。リード/ライト要求はフレームと言う固定長単位で行われる。
【0009】
以上に挙げた2つの方法は、何れもクライアントプログラムからのリード/ライト呼び出しを、複数の固定長データへの断片的なリード/ライト要求として分解し、二次記憶装置を管理する部分(サーバ計算機,ディスクサーバ)に送信することによって、遠隔二次記憶装置へのリード/ライト呼び出しの処理を可能としている。
【0010】
【発明が解決しようとする課題】
しかしながら、分解された各断片リード/ライト要求を1つずつ送信し、処理結果を待ってから次の断片リード/ライト要求を送信するため、通信を何回も行うことになる。1つのリード/ライト呼び出しの処理の流れを見ると図17(C)のようになり、(断片リード/ライト要求送信)→(二次記憶装置リード/ライト)→(応答返信)→(断片リード/ライト要求送信)→……と処理され、全ての断片リード/ライト要求が完了してからクライアントプログラムのリード/ライト呼び出しの結果が返ってくる。そのため、クライアントプログラムから見た遠隔二次記憶装置アクセスのための時間は、断片リード/ライト要求の数だけの往復の通信時間が余分にかかっているように見える。
【0011】
そこで、本発明では、遠隔二次記憶装置へのデータアクセス時間における通信時間のほとんどをクライアントプログラムから見えなくし、あたかもその二次記憶装置がクライアントプログラムの動作する計算機に接続されているかのようなアクセス時間を達成することを目的とする。
【0012】
【課題を解決するための手段】
本発明は上記の目的を達成するために、第1の計算機上で動作するクライアントプログラムから、前記第1の計算機と計算機間接続網を通じて相互に通信可能な第2の計算機に接続されている二次記憶装置上のデータに対してアクセスする方法において、第1の計算機および第2の計算機で以下の(3)乃至(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】
以下、幾つかの実施例について説明するが、その前に、それらの前提となる、ファイルサーバ10で複数の要求を多重処理するための基本的な考え方を説明する。
【0026】
1つの要求に着目した場合、その典型的な処理シーケンスは図2(A)に示すように、幾つかの中断を挟んだ一連のアクションの処理から成り立っている。即ち、要求の種類に応じて該当する初期アクションが決められており、その後の処理の進行に従い幾つかの中間アクションを経て、最終アクションにおいてクライアントプログラム5の動作する計算機1に応答を返却することによって、1つの要求の処理が完結する。従って、中断点において他の要求のアクションを処理することによって、要求の多重処理が実現できる。
【0027】
ファイルサーバ10では、上述のようなアクションをキュー(アクションキュー)によって管理し、図2(B)に示すようなメインループを実行する。ファイルサーバ10は要求を受け取るための口(受信ポート)を持っており、ここを読むことにより要求を受け取る(S1)。次に、受け取った要求に該当する初期アクションをアクションキューの末尾に登録する(S2)。次に、アクションキューの先頭からアクションを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の動作中の任意のタイミングで割り込んで起動するが、アクションキューは、ファイルサーバ10と非同期I/O完了ハンドラとが同時に操作しないように排他する。
【0032】
以下、計算機1上で動作するクライアントプログラム5からサーバ計算機2に接続されている二次記憶装置4上のデータをアクセスする方法について、幾つかの実施例を挙げて説明する。
【0033】
(実施例1)本実施例では、クライアントプログラム5からリード/ライト呼び出しがあった場合、ライブラリ11は図3に示す処理を実行する。
【0034】
先ず、クライアントプログラム5からのリード/ライト呼び出しを解析し、或る一定サイズのデータへのリード/ライト要求に分割する(L11)。例えば、或る一定サイズを8KByteとする場合、クライアントプログラム5からのリード/ライト呼び出しが、例えば24KByteのデータのリードあるいはライトであったとすると、要求されたデータの先頭から8KByte分に対するリード/ライト要求と、次の8KByte分に対するリード/ライト要求と、最後の8KByte分に対するリード/ライト要求に分割する。
【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の総和に比べ相対的に小さくなり、リード/ライト呼び出しの処理時間21は、物理リード/ライトの時間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に送信する(L23)。このとき、未だ送信されなかったリード/ライト要求は内部に保持しておく。そして、サーバ計算機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のファイルサーバ10から上記の予約要求に対する応答を受信すると、その応答に含まれる予約数を取り出し、スレッショルド値とする(L33)。
【0057】
次に、ステップL31での分割数がこのスレッショルド値より大きいかどうかを調べる(L34)。そして、分割数がスレッショルド値より大きくない場合は、分割して得られた全てのリード/ライト要求を全部一度に計算機間接続網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がこのスレッショルド値より大きいかどうかを調べる(L46)。そして、分割数−1がスレッショルド値より大きくない場合は、分割して得られた残りの全てのリード/ライト要求を全部一度に計算機間接続網3を介してサーバ計算機2のファイルサーバ10に送信する(L48)。但し、その内の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)、ステップL49の応答待ちに移る。
【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)。そして、現在の許容数の総計を今回の予約数の分だけ増やしておき(S49)、ステップS48で求めた予約数を指定した応答を要求元に非同期で送信する(S4a)。
【0083】
なお、ステップS48の処理内容を、予約数=min(許容数,分割数−1,1クライアントプログラム当たりに付与する最大許容数)に変更する実施例も考えられる。こうすれば、1クライアントプログラムに付与する最大許容数を制限でき、1つのクライアントプログラムが現時点の許容数を全て占有してしまうことを防止できる。
【0084】
ここまでの処理は実施例3のファイルサーバ10での予約要求処理とほぼ同様である。但し、本実施例では、予約応答を非同期で送信した後、引続きリード/ライト要求の処理に移るため、リード/ライト要求の処理の時間と予約応答の通信時間とが重なる。
【0085】
リード/ライト要求の処理では、まず、当該リード/ライト要求にかかるリード/ライトデータを一旦格納するための中継となるメモリを確保する(S4b)。次に、二次記憶装置4に非同期で物理リード/ライトを行い、その完了を待つ(S4c)。そして、物理リード/ライトが終了すると、リード/ライト応答を要求元に送信する(S4d)。
【0086】
他方、図15は1つの予約解除+リード/ライト一括要求に着目したシーケンスを示している。前述したようにライブラリ11から予約解除+リード/ライト一括要求が送信されてくると、先ずリード/ライト要求処理を行い、次いで予約解除処理を行う。リード/ライト要求処理では、当該リード/ライト要求にかかるリード/ライトデータを一旦格納するための中継となるメモリを確保し(S4e)、二次記憶装置4に非同期で物理リード/ライトを行い、その完了を待つ(S4f)。物理リード/ライトが終了すると、同じクライアントプログラム5からの処理中のリード/ライト要求が他にあるかどうかを調べ(S4g)、若しあれば、処理中のリード/ライト要求がなくなるまで中断する。中断の方法は、当該要求を中断キューに登録することで行う。中断キューに登録された要求は、前述の図13のステップS45で中断キューから要求キューに登録しなおされる。
【0087】
他に処理中のリード/ライト要求がなくなると、予約解除の処理となり、現在の総許容数から予約数を差し引いて更新する(S4h)。これにより当該クライアントプログラムに対して予約されていたメモリ量が解放される。そして、リード/ライト応答に予約解除の応答を含めて要求元に送信する(S4i)。
【0088】
本実施例によれば、予約+リード/ライト一括要求を導入したので、ライブラリ11側では予約要求を別要求として最初に送らずに済むとともに、ファイルサーバ10側では予約応答に引き続いてリード/ライト処理が行われるので、予約応答の通信時間を物理リード/ライトの時間と重ねることができる。また、サーバ計算機での物理リード/ライトの最中に、クライアントプログラムから後続のリード/ライト要求の送信が行われれば、それらの通信時間も物理リード/ライトの時間に重ねることができる。
【0089】
また、予約解除+リード/ライト一括要求を導入したので、予約解除の要求を別要求として最後に送らずに済み、その分の通信時間を削減することができる。
【0090】
以上のことから、最初と最後の予約/予約解除のための通信時間を削減することができる。図16はサーバ計算機2とクライアントプログラム5との間で発生する要求/応答のやり取りの一例を示している。最初の予約+リード/ライト一括要求(ハ)は1要求としてサーバ計算機2に送られる。サーバ計算機2では、まず予約処理を行い、予約応答を返却し、同時にリード/ライト処理に移る。この際、物理リード/ライトと予約応答の通信時間が重なっている。
【0091】
クライアントプログラム5の動作する計算機1のライブラリ11で予約応答を受け取った後のリード/ライト要求処理は、実施例3と同様である。ただし、最後の要求が予約解除+リード/ライト一括要求となる点が異なる。最後の要求の処理は、図16に示す予約解除+リード/ライト(ニ)の処理に相当する。図16の例では、クライアントプログラム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】
本発明によれば、遠隔二次記憶装置へのデータアクセス時における通信時間のほとんどをクライアントプログラムから見えなくし、あたかもその二次記憶装置がクライアントプログラムの動作する計算機に接続されているかのようなアクセス時間を達成することができる。
【0095】
また本発明によれば、クライアントプログラムが大容量のデータをアクセスする場合であっても、即ち分割されたリード/ライト要求の数が多くなる場合であっても、一度に要求するリード/ライトの量を抑制でき、第2の計算機での処理負荷が過大にならないようにすることができる。
【0096】
更に本発明によれば、1台の第2の計算機に対して複数のクライアントプログラムがリード/ライト要求を行う場合でも、第2の計算機の負荷に応じて一度に要求するリード/ライトの量を抑制でき、第2の計算機の処理負荷が過大にならないようにすることができる。
【0097】
また更に本発明によれば、第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…ライブラリ[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for remote access to a secondary storage device, and more specifically, in an environment where a plurality of computers are connected by an inter-computer connection network, an application program running on one computer is connected to another computer. The present invention relates to a method for accessing data on a secondary storage device.
[0002]
[Prior art]
There are several ways to access a secondary storage device (remote secondary storage device) connected to another computer.
[0003]
One method is a method based on the Network File System (NFS) as shown in FIG. Data access in NFS is realized by software by providing a communication protocol layer called RPC (reference document “NFS & NIS” ASCII Publishing Bureau).
[0004]
In NFS, a read / write call from a client program is converted into an RPC request and transmitted to a process called an NFS daemon running on a server computer using the RPC protocol. For example, in the case of a write call, write data is transmitted together with the request, but this data is captured by the NFS daemon, then written to the secondary storage device, and the response is transferred to the client program. If it is a read call, the NFS daemon reads the target data from the secondary storage device and returns the data as a response to the RPC request.
[0005]
When a read / write call from a client program is converted into an RPC request, it is broken down into a plurality of RPC requests as read / write requests for fixed-size data. Normally, the size of data accessed by a single RPC request is 8 Kbytes. Access requests are sent to the NFS daemon one by one, and after waiting for a response, the next RPC request is sent. In other words, since the NFS daemon processes only one RPC request at the same time, it is only necessary to secure an area for capturing 8 Kbytes of data. However, since one NFS daemon is occupied for one client program, it is necessary to start a plurality of NFS daemons on the size calculator in order to process requests from a plurality of client programs.
[0006]
As another method, for example, there is a high-speed LAN disk server as disclosed in JP-A-4-92943. In this method, as shown in FIG. 17B, an inter-computer connection network is a high-speed LAN, and an environment comprising a disk server for managing a secondary storage device (limited to a disk) and a plurality of workstations. Is assumed.
The disk server that manages the disk is dedicated hardware, and has a structure that can process a plurality of read / write requests simultaneously.
[0007]
A client program runs on the workstation, and a read / write request to the remote disk from the client program is transmitted to the disk server by communication. For example, if it is a write request, data is transmitted together with the request. On the other hand, the disk server temporarily stores the received data in the data buffer, writes the data to the disk, and notifies the result to the requesting workstation through communication. If it is a read request, the disk server checks whether there is target data in the data buffer. If not, the data is read from the disk and stored in the data buffer. Further, the stored data is transmitted to the requesting workstation by communication.
[0008]
In this method, a data buffer is provided in the disk server in order to relay data between the inter-computer connection network and the secondary storage device. The data buffer is used by dividing an area for each workstation. A read / write request is made in a fixed length unit called a frame.
[0009]
Both of the above-described two methods decompose the read / write call from the client program as a fragmented read / write request to a plurality of fixed length data, and manage the secondary storage device (server computer , Disk server), it is possible to process read / write calls to the remote secondary storage device.
[0010]
[Problems to be solved by the invention]
However, since each fragment read / write request that has been disassembled is transmitted one by one, and after waiting for the processing result, the next fragment read / write request is transmitted, the communication is performed many times. The flow of processing for one read / write call is as shown in FIG. 17C, and (fragment read / write request transmission) → (secondary storage device read / write) → (response return) → (fragment read) / Write request transmission) →... Is processed, and after all fragment read / write requests are completed, the result of the client program read / write call is returned. Therefore, it seems that the time required for accessing the remote secondary storage device from the viewpoint of the client program takes an extra round-trip communication time corresponding to the number of fragment read / write requests.
[0011]
Therefore, in the present invention, most of the communication time in the data access time to the remote secondary storage device is hidden from the client program, and the access is as if the secondary storage device is connected to the computer on which the client program operates. Aim to achieve time.
[0012]
[Means for Solving the Problems]
In order to achieve the above object, according to the present invention, a client program operating on a first computer is connected to a second computer that can communicate with the first computer through a connection network between computers. In a method of accessing data on a secondary storage device, the first computer and the second computer (3) Any one of the processes (4) to (4) is executed.
[0013]
(1) The first computer divides a read / write call by a client program into read / write requests for data of a certain size, and the read / write requests obtained by the division are all at once described above. After confirming that responses are returned from the second computer for all the read / write requests transmitted, the result of the read / write call is returned to the client program. On the other hand, the second computer receives the read / write request from the first computer, accesses the requested data on the secondary storage device for one received read / write request, and then receives the request source. The process of sending one response to the client program is multiplexed and executed for a plurality of read / write requests.
[0014]
In this way, a read / write call by a client program is divided into read / write requests for data of a certain size and transmitted to the second computer all at once, and a plurality of read / write requests are multiplexed in the second computer. By performing the processing, the physical read / write processing of the secondary storage device in the second computer and the communication processing in the inter-computer connection network are performed in parallel, and most of the communication time is the physical read / write. Overlapping with the processing time, the entire processing time is shortened.
[0015]
(2) The first computer divides the read / write call by the client program into read / write requests for data of a certain size, and the number of read / write requests obtained by the division is predetermined. When the threshold value is less than the threshold value, all are transmitted to the second computer at once. When the threshold value is exceeded, first the read / write request for the threshold value is transmitted to the second computer, and then the read / write is performed. Each time one response from the second computer corresponding to the request is confirmed, one remaining read / write request is transmitted to the second computer, and the second read / write request is transmitted for all the transmitted read / write requests. After confirming that a response is returned from the computer, the result of the read / write call is returned to the client program. The second computer executes the same processing as (1) above.
[0016]
In this way, the threshold value is set as the number of requests that can be received at one time by the second computer, and the number of read / write requests to be transmitted first is kept below the threshold value. The load can be kept below a certain value. Furthermore, since one read / write request is transmitted in response to one response, the number of read / write requests received by the second computer is always less than the threshold value, and the load on the second computer continues to be a constant value. The following can be suppressed.
[0017]
(3) The first computer divides the read / write call by the client program into read / write requests for data of a certain size, and transmits the read / write request obtained by the division prior to the transmission of the read / write request. A read / write request is transmitted to the second computer, a threshold value is determined from the number of reservations included in the response from the second computer to the transmitted reservation request, and the division / read obtained When the number of requests is less than or equal to the threshold value, all of the requests are transmitted to the second computer at once. When the number of requests exceeds the threshold value, a read / write request corresponding to the threshold value is first transmitted to the second computer. Thereafter, every time one response from the second computer corresponding to the read / write request is confirmed, one remaining read / write request is sent to the second computer. And confirming that responses have been returned from the second computer for all the read / write requests transmitted, requesting the second computer to cancel the reservation, and sending the request to the client program Returns the result of a read / write call. On the other hand, in response to a reservation request from the first computer, the second computer uses the number of read / write requests allowed for one client program according to the current load status of the own computer as the reservation number. 1 is notified to the computer and a memory amount corresponding to the number of reservations is secured, a read / write request is received from the first computer, and the requested secondary storage device is received for one received read / write request. After accessing the above data, a process of sending one response to the requesting client program is executed in a multiplexed manner for a plurality of read / write requests, and a reservation cancellation request from the first computer On the other hand, the reserved memory amount is released.
[0018]
In this way, the first computer is notified of the number of reservations allowed for one client program in accordance with the dynamically changing load status of the second computer, and the first computer displays the number of reservations as a threshold value. Thereafter, by making a read / write request according to this threshold value, it is possible to control so that the load generated in the second computer does not exceed a certain value. Therefore, even if the second computer is a partner of a plurality of client programs, the processing capacity of the second computer is not exceeded.
[0019]
(4) The first computer divides the read / write call by the client program into read / write requests for data of a certain size, and reads / writes one of the read / write requests obtained by the division. Reservation with a reservation request added to a write request + read / write batch request is transmitted to the second computer, and included in the reservation response from the second computer with respect to the transmitted reservation + read / write batch request A threshold value is determined from the number of reservations to be reserved, and when the remaining number of read / write requests obtained by the division is equal to or less than the threshold value, a reservation release request is added to one read / write request and reserved. After making a cancellation + read / write batch request, send all to the second computer all at once, and if the threshold value is exceeded, the threshold is set first. After a read / write request corresponding to a read value is transmitted to the second computer, one remaining read / write request is sent each time one response from the second computer corresponding to the read / write request is confirmed. The last one read / write request transmitted to the second computer is transmitted as a reservation cancellation + read / write batch request with a reservation cancellation request added, and the second request is transmitted for all the transmitted requests. After confirming that a response is returned from the computer, the result of the read / write call is returned to the client program. On the other hand, the second computer receives a request from the first computer. When the received request is a reservation + read / write batch request, the second computer allows one client program according to the current load status of the own computer. Notifying the first computer of the number of read / write requests as the number of reservations and securing a memory amount corresponding to the number of reservations, then accessing the requested data on the secondary storage device and requesting the client Processing to send one response to the program. When the received request is a read / write request, after accessing the requested data on the secondary storage device, send one response to the requesting client program. If the received request is a reservation cancellation + read / write batch request, after accessing the requested data on the secondary storage device The process of the read / write request being processed generated from the requesting client program releases the amount of memory to the reserved upon completion all, with respect to multiple requests, executes multiplexes.
[0020]
In this way, by introducing a reservation + read / write batch request that requests a reservation request and a read / write request in a lump, the first computer does not have to send a reservation request as a separate request first. Since the second computer performs read / write processing following the reservation response, the communication time of the reservation response can be overlapped with the physical read / write time. If a subsequent read / write request is transmitted from the first computer during the physical read / write in the second computer, the communication time may overlap the physical read / write time. it can. Furthermore, by introducing a reservation cancellation + read / write batch request that requests a reservation cancellation request and a read / write request at once, it is not necessary to send a reservation cancellation request as a separate request at the end. Time can be saved.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
Next, exemplary embodiments of the present invention will be described in detail with reference to the drawings.
[0022]
Referring to FIG. 1, an example of a computer system to which the present invention is applied includes a
[0023]
A process called a
[0024]
In the
[0025]
Several embodiments will be described below, but before that, a basic concept for performing multiple processing of a plurality of requests in the
[0026]
When attention is paid to one request, the typical processing sequence is made up of a series of actions with several interruptions, as shown in FIG. That is, a corresponding initial action is determined according to the type of request, and after passing through several intermediate actions as the process proceeds, a response is returned to the
[0027]
The
[0028]
One of the interruption points of request processing is physical I / O issuance. At this time, the I / O is issued asynchronously, the action process is terminated, and the multi-process is realized by processing the action of another request. When the asynchronous I / O is completed, an asynchronous I / O completion handler (not shown) operates. The processing shown in FIG. 2C is executed by this asynchronous I / O completion handler.
[0029]
First, an action subsequent to the action that issued the I / O is determined. There are several possible methods for this determination as follows. 1) A method of directly determining by specifying an action as an argument of the handler. 2) A method in which an action subsequent to the action that issued the I / O is registered in the queue, and the handler searches the queue to determine the corresponding action.
[0030]
Next, the determined action is registered at the head of the action queue. This registered action is then taken out and processed in the main loop of the
[0031]
Note that the asynchronous I / O completion handler interrupts and starts at an arbitrary timing during the operation of the
[0032]
Hereinafter, a method for accessing data on the
[0033]
(Embodiment 1) In this embodiment, when there is a read / write call from the
[0034]
First, a read / write call from the
[0035]
Next, all the read / write requests obtained by the division are transmitted all at once to the
[0036]
Next, when a response from the
[0037]
On the other hand, the
[0038]
First, the
[0039]
As described above, in the present embodiment, the read / write call by the
[0040]
A state in which the communication processing time and the physical read / write processing time overlap will be described with reference to FIG. FIG. 5 shows a case where a read / write call from the
[0041]
Referring to FIG. 5, it can be seen that most of the communication time overlaps with the physical read / write time in the
[0042]
Responses are returned one after another from the
[0043]
(Embodiment 2) In this embodiment, when there is a read / write call from the
[0044]
First, as in the first embodiment, a read / write call from the
[0045]
Next, it is examined whether or not the number of divisions is larger than a predetermined threshold value (L22). If the number of divisions is not greater than the threshold value, all read / write requests obtained by the division are transmitted all at once to the
[0046]
Next, when a response from the
[0047]
The processing of the
[0048]
Similar to the first embodiment, the basic effect of the present embodiment includes the effect that most of the communication time is overlapped with the physical read / write to be invisible to the client program. However, in the first embodiment, all read / write requests obtained by division are transmitted all at once. Therefore, when the data amount of the read / write call from the
[0049]
On the other hand, in this embodiment, the threshold value is set as the number of requests that can be received at one time by the
[0050]
An example of the exchange of request / response that occurs between the
[0051]
First, since the threshold value is 4, the
[0052]
Thereafter, the
[0053]
(Embodiment 3) In this embodiment, when there is a read / write call from the
[0054]
First, as in the first embodiment, a read / write call from the
[0055]
Next, a reservation request designating this division number is transmitted to the
[0056]
Next, when a response to the reservation request is received from the
[0057]
Next, it is checked whether or not the number of divisions in step L31 is larger than this threshold value (L34). If the number of divisions is not greater than the threshold value, all read / write requests obtained by the division are all transmitted at once to the
[0058]
Next, when a response from the
[0059]
If all responses have been returned, a request (reservation cancellation request) for canceling the reservation in the
[0060]
In this embodiment, the
[0061]
FIG. 9 shows a sequence focusing on one reservation request process. As described above, when a reservation request is transmitted from the
[0062]
This allowable number depends on the current load status of the
[0063]
Next, the smaller value of the allowable number obtained in step S31 and the number of divisions specified in the reservation request is determined as the reservation number (S32). Then, the total of the current allowable number is increased by the number of reservations this time (S33), and a response specifying the number of reservations obtained in step S32 is transmitted to the request source (S34). By increasing the total number of current allowances by the number of reservations this time, it is possible to prevent the amount of memory commensurate with the current number of reservations from being used in read / write request processing generated by other client programs. . Therefore, it is possible to prevent a memory shortage from occurring when a memory serving as a relay for temporarily storing read / write data related to a read / write request from the client program is secured.
[0064]
An embodiment in which the processing content of step S32 is changed to the number of reservations = min (allowable number, number of divisions, maximum allowable number given per client program) is also conceivable. In this way, the maximum allowable number given to one client program can be limited, and one client program can be prevented from occupying all the current allowable numbers.
[0065]
The reservation request process as described above consists of one action.
[0066]
On the other hand, FIG. 10 shows a sequence focusing on the processing of one reservation cancellation request. As described above, when a reservation cancellation request is transmitted from the
[0067]
As in the second embodiment, when the threshold value is determined in advance by the processing capacity of the
[0068]
On the other hand, in this embodiment, the number of reservations allowed for one client program is notified to the
[0069]
FIG. 11 shows an example of request / response exchange that occurs between the
[0070]
(Embodiment 4) In this embodiment, when there is a read / write call from the
[0071]
First, as in the first embodiment, a read / write call from the
[0072]
Next, it is checked whether or not this division number is larger than 1 (L42). If the number of divisions is one, without making a reservation request, one read / write request is transmitted to the
[0073]
On the other hand, when the number of divisions is greater than 1, one request is a reservation + read / write batch request in which a reservation request is added to one read / write request among the read / write requests obtained by the division. To the
[0074]
Next, when a reservation response is returned from the
[0075]
Next, it is checked whether or not the division number -1 in step L41 is larger than this threshold value (L46). If the division number −1 is not larger than the threshold value, all the remaining read / write requests obtained by the division are transmitted to the
[0076]
Next, when a read / write response is received from the
[0077]
If it is determined in step L4a that there are no untransmitted read / write requests, the number of responses returned so far is checked to determine whether all responses have been returned (L4b). Is less than the division number of the read / write request, that is, if all the responses are not returned, the process returns to step L49 and waits for a response. If all responses have been returned, the process returns to the call of the
[0078]
In this embodiment, the
[0079]
FIG. 13 shows a sequence focusing on one read / write request. The
[0080]
Next, when the physical read / write is completed, it is checked whether the reservation cancellation + read / write batch request processing is interrupted by the request from the same client program 5 (S43). If it is interrupted, it is checked whether there is another read / write request being processed from the same client program 5 (S44), and if it is interrupted, the reservation release interrupted + read / write batch request is interrupted. Is registered in the request queue (S45), and a response to the read / write request for which the physical read / write has been completed is transmitted to the request source (S46). On the other hand, if the reservation cancellation + read / write batch request processing is not interrupted, or if there is no such reservation cancellation + read / write batch request, or there is a suspended reservation cancellation + read / write batch request. However, if there is a read / write batch request being processed from the same client program, step S45 is skipped and a response to the read / write request is transmitted to the request source (S46).
[0081]
FIG. 14 shows a sequence focusing on processing of one reservation + read / write batch request. As described above, when a reservation + read / write batch request is transmitted from the
[0082]
Next, the smaller value of the allowable number obtained in step S47 and the division number -1 specified in the reservation request is determined as the reservation number (S48). Then, the total number of current allowable numbers is increased by the number of reservations this time (S49), and a response specifying the number of reservations obtained in step S48 is asynchronously transmitted to the request source (S4a).
[0083]
An example in which the processing content of step S48 is changed to the number of reservations = min (allowable number, division number-1, maximum allowable number given per client program) is also conceivable. In this way, the maximum allowable number given to one client program can be limited, and one client program can be prevented from occupying all the current allowable numbers.
[0084]
The processing so far is substantially the same as the reservation request processing in the
[0085]
In the read / write request processing, first, a memory serving as a relay for temporarily storing read / write data related to the read / write request is secured (S4b). Next, physical read / write is performed asynchronously to the
[0086]
On the other hand, FIG. 15 shows a sequence focusing on one reservation cancellation + read / write batch request. As described above, when a reservation cancellation + read / write batch request is transmitted from the
[0087]
When there is no other read / write request being processed, the reservation is canceled and the current total allowable number is updated by subtracting the reservation number (S4h). As a result, the memory amount reserved for the client program is released. Then, a reservation cancellation response is included in the read / write response and transmitted to the request source (S4i).
[0088]
According to this embodiment, since the reservation + read / write batch request is introduced, the
[0089]
In addition, since the reservation cancellation + read / write batch request is introduced, it is not necessary to send the reservation cancellation request as a separate request lastly, and the communication time can be reduced accordingly.
[0090]
From the above, the communication time for the first and last reservation / reservation cancellation can be reduced. FIG. 16 shows an example of request / response exchanges that occur between the
[0091]
The read / write request processing after the reservation response is received by the
[0092]
Although the embodiments of the present invention have been described above, the present invention is not limited to the above embodiments, and various other additions and modifications can be made. For example, in FIG. 1, a
[0093]
【The invention's effect】
As described above, according to the present invention, the following effects can be obtained.
[0094]
According to the present invention, most of the communication time at the time of data access to the remote secondary storage device is made invisible to the client program, and the access is as if the secondary storage device is connected to the computer on which the client program operates. Time can be achieved.
[0095]
Further, according to the present invention, even when the client program accesses a large amount of data, that is, when the number of divided read / write requests increases, the read / write requests requested at a time can be performed. The amount can be suppressed, and the processing load on the second computer can be prevented from becoming excessive.
[0096]
Furthermore, according to the present invention, even when a plurality of client programs make read / write requests to one second computer, the amount of read / write requested at a time according to the load on the second computer is reduced. This can suppress the processing load of the second computer from becoming excessive.
[0097]
Furthermore, according to the present invention, the first computer side does not need to send the reservation request as a separate request first, and the second computer side performs read / write processing following the reservation response. Communication time can be overlapped with physical read / write time. If a subsequent read / write request is transmitted from the first computer during the physical read / write in the second computer, the communication time may overlap the physical read / write time. it can. Further, the first computer side does not need to send a reservation cancellation request as a separate request lastly, and the communication time can be reduced accordingly.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an example of a computer system to which the present invention is applied.
FIG. 2 is a flowchart illustrating an example of a process for multi-processing a plurality of requests in a file server.
FIG. 3 is a flowchart illustrating an example of library processing according to the first exemplary embodiment.
FIG. 4 is a flowchart illustrating an example of processing focusing on one read / write request of the file server according to the first embodiment.
FIG. 5 is a timing chart showing request / response exchange between the client program and the server computer in the first embodiment.
FIG. 6 is a flowchart illustrating an example of library processing according to the second exemplary embodiment.
FIG. 7 is a timing chart showing request / response exchanges between a client program and a server computer in
FIG. 8 is a flowchart illustrating an example of library processing according to the third exemplary embodiment.
FIG. 9 is a flowchart illustrating an example of processing focusing on one reservation request of the file server according to the third embodiment.
FIG. 10 is a flowchart illustrating an example of processing focusing on one reservation cancellation request of the file server according to the third embodiment.
FIG. 11 is a timing chart illustrating request / response exchanges between a client program and a server computer according to a third embodiment.
12 is a flowchart illustrating an example of library processing in
FIG. 13 is a flowchart illustrating an example of processing focusing on one read / write request of the file server according to the fourth embodiment.
FIG. 14 is a flowchart illustrating an example of processing focusing on one reservation + read / write batch request of the file server according to the fourth embodiment.
FIG. 15 is a flowchart illustrating an example of processing focusing on one reservation cancellation + read / write batch request in the file server according to the fourth embodiment.
FIG. 16 is a timing chart illustrating request / response exchanges between a client program and a server computer according to a fourth embodiment.
FIG. 17 is an explanatory diagram of a conventional access method to a remote secondary storage device.
[Explanation of symbols]
1. Computer that runs client program
2 ... Server computer
3. Computer network
4 ... Secondary storage device
5 ... Client program
10 ... File server
11 ... Library
Claims (3)
前記第 Said 11 の計算機においては、前記クライアントプログラムによるリード/ライト呼び出しを、一定サイズのデータへのリード/ライト要求に分割し、In this computer, the read / write call by the client program is divided into read / write requests for data of a certain size,
該分割して得られたリード/ライト要求の送信に先立ち、該リード/ライト要求の総数を分割数とし、予約の要求に含めて前記第 Prior to transmission of the read / write request obtained by the division, the total number of the read / write requests is set as the division number, and is included in the reservation request. 22 の計算機に対して送信し、Send to
前記送信した予約の要求に対する前記第 Said request for said transmitted reservation request; 22 の計算機からの応答に含まれる予約数からスレッショルド値を決定し、The threshold value is determined from the number of reservations included in the response from the computer.
前記分割して得られたリード/ライト要求の数が前記スレッショルド値以下のときは全部一度に前記第 When the number of read / write requests obtained by the division is equal to or less than the threshold value, the first 22 の計算機に送信し、スレッショルド値を超えているときは最初にスレッショルド値分のリード/ライト要求を前記第If the threshold value is exceeded, the first read / write request for the threshold value is sent. 22 の計算機に送信した後、リード/ライト要求に対応する前記第After sending to the other computer, the first corresponding to the read / write request 22 の計算機からの応答をResponse from the calculator 11 つ確認する毎に残りのリード/ライト要求をThe remaining read / write requests 11 つ前記第Said first 22 の計算機に送信し、To the calculator
前記送信した全てのリード/ライト要求について前記第 For all the read / write requests sent 22 の計算機から応答が返却されていることを確認した後、前記第After confirming that a response has been returned from 22 の計算機に対して予約解除を要求すると共に、前記クライアントプログラムにリード/ライト呼び出しの結果を戻し、Request the computer to cancel the reservation, and return the result of the read / write call to the client program,
前記第 Said 22 の計算機においては、In the calculator of
前記第 Said 11 の計算機からの予約の要求に対し、自計算機の総メモリ量をIn response to a reservation request from another computer, 11 つのリード/ライト要求で使用するデータサイズで除した商を処理負荷上限とし、該処理負荷上限から現時点での予約済みの総予約数を減じた差を許容数とし、該許容数、前記第The quotient divided by the data size used in one read / write request is defined as the upper limit of the processing load, and the difference obtained by subtracting the total number of reservations currently reserved from the upper limit of the processing load is defined as the allowable number. 11 の計算機からの予約の要求に含まれる分割数、および、The number of divisions included in the reservation request from the computer, and 11 クライアントプログラム当たりに付与する最大許容数の内、最小の値を予約数として決定し、該予約数を前記第Of the maximum allowable number assigned per client program, the minimum value is determined as the reservation number, and the reservation number is determined as the number of reservations. 11 の計算機に通知すると共に、該予約数に見合ったメモリ量を確保し、And ensure the amount of memory commensurate with the number of reservations,
前記第 Said 11 の計算機からのリード/ライト要求を受け取り、受け取ったリード/ライト要求Received read / write requests from other computers and received read / write requests 11 つに対し、要求された二次記憶装置上のデータにアクセスをした後、要求元のクライアントプログラムに応答After accessing the requested data on the secondary storage device, it responds to the requesting client program. 11 つを送信するという処理を、複数のリード/ライト要求に対し、多重化して実行し、The process of sending one is multiplexed for multiple read / write requests,
前記第 Said 11 の計算機からの予約解除の要求に対し、前記確保していたメモリ量を解放し、In response to a reservation cancellation request from the other computer, the reserved memory amount is released,
且つ、前記第 And said first 22 の計算機における処理の多重化は、要求の受け取りから応答の返却までのMultiplexing of processing in the computer of the system from receiving the request to returning the response 11 つの要求にかかる一連のアクションの中断点で他の要求のアクションを実行することで実現し、然も、前記二次記憶装置に対するIt is realized by executing an action of another request at a point of interruption of a series of actions related to one request, II // OO を発行したアクションの続きのアクションは優先的に処理することを特徴とする二次記憶装置への遠隔アクセス方法。A method for remote access to a secondary storage device, characterized in that an action subsequent to an action issued is preferentially processed.
前記第 Said 11 の計算機においては、In the calculator of
前記クライアントプログラムによるリード/ライト呼び出しを、一定サイズのデータへのリード/ライト要求に分割し、 The read / write call by the client program is divided into read / write requests for data of a certain size,
該分割して得られたリード/ライト要求のうちの Of the read / write requests obtained by the division 11 つのリード/ライト要求に、該リード/ライト要求の総数を分割数として含めた予約の要求を付加し、予約+リード/ライト一括要求として前記第A reservation request including the total number of read / write requests as a division number is added to one read / write request, and the above-mentioned reservation + read / write batch request is added. 22 の計算機に対して送信し、Send to
前記送信した予約の要求に対する前記第 Said request for said transmitted reservation request; 22 の計算機からの応答に含まれる予約数からスレッショルド値を決定し、The threshold value is determined from the number of reservations included in the response from the computer.
前記分割して得られたリード/ライト要求の残りの数が前記スレッショルド値以下のときは、 When the remaining number of read / write requests obtained by the division is less than or equal to the threshold value, 11 つのリード/ライト要求に予約解除の要求を付加して予約解除+リード/ライト一括要求とした上で、全部一度に前記第A reservation cancellation request is added to one read / write request to make a reservation cancellation + read / write batch request. 22 の計算機に送信し、スレッショルド値を超えているときは最初にスレッショルド値分のリード/ライト要求を前記第When the threshold value is exceeded, the first read / write request for the threshold value is sent. 22 の計算機に送信した後、リード/ライト要求に対応する前記第After sending to the other computer, the first corresponding to the read / write request 22 の計算機からの応答をResponse from the calculator 11 つ確認する毎に残りEvery time you check のリード/ライト要求をRead / write requests 11 つ前記第Said first 22 の計算機に送信していき、且つ、最後のAnd send it to the last computer 11 つのリード/ライト要求は予約解除の要求を付加した予約解除+リード/ライト一括要求として送信し、One read / write request is sent as a reservation cancellation + read / write batch request with a reservation cancellation request added,
前記送信した全てのリード/ライト要求について前記第 For all the read / write requests sent 22 の計算機から応答が返却されていることを確認した後、前記クライアントプログラムにリード/ライト呼び出しの結果を戻し、After confirming that a response is returned from the computer, the read / write call result is returned to the client program,
前記第 Said 22 の計算機においては、In the calculator of
前記第 Said 11 の計算機から受け取った要求が予約+リード/ライト一括要求のときは、自計算機の総メモリ量をIf the request received from this computer is a reservation + read / write batch request, the total memory amount of the local computer is 11 つのリード/ライト要求で使用するデータサイズで除した商を処理負荷上限とし、該処理負荷上限から現時点での予約済みの総予約数を減じた差を許容数とし、該許容数、前記第The quotient divided by the data size used in one read / write request is defined as the upper limit of the processing load, and the difference obtained by subtracting the total number of reservations currently reserved from the upper limit of the processing load is defined as the allowable number. 11 の計算機からの予約の要求に含まれる分割数、および、The number of divisions included in the reservation request from the computer, and 11 クライアントプログラム当たりに付与する最大許容数の内、最小の値を予約数として決定し、該予約数を前記第Of the maximum allowable number assigned per client program, the minimum value is determined as the reservation number, and the reservation number is determined as the number of reservations. 11 の計算機に通知すると共に、該予約数に見合ったメモリ量を確保した後、要求された二次記憶装置上のデータにアクセスをして要求元のクライアントプログラムに応答After confirming the amount of memory corresponding to the number of reservations, access the requested data on the secondary storage device and respond to the requesting client program. 11 つを送信するという処理を、受け取った要求がリード/ライト要求のときは要求された二次記憶装置上のデータにアクセスをした後、要求元のクライアントプログラムに応答If the received request is a read / write request, access the requested data on the secondary storage device and then respond to the requesting client program. 11 つを送信するという処理を、受け取った要求が予約解除+リード/ライト一括要求のときは要求された二次記憶装置上のデータにアクセスをした後、要求元のクライアントプログラムから発生した処理中のリード/ライト要求が全部完了した時点で前記確保したメモリ量を解放するという処理を、複数の要求に対し、多重化して実行し、If the received request is a reservation cancellation + read / write batch request, the data stored in the requested secondary storage device is accessed, and the request generated by the client program When all the read / write requests are completed, the process of releasing the secured memory amount is executed in a multiplexed manner for a plurality of requests,
且つ、前記第 And said first 22 の計算機における処理の多重化は、要求の受け取りから応答の返却までのMultiplexing of processing in the computer of the system from receiving the request to returning the response 11 つの要求にかかる一連のアクションの中断点で他の要求のアクションを実行することで実現し、然も、前記二時記憶装置に対するIt is realized by executing the action of another request at the interruption point of a series of actions concerning one request, II // OO を発行したアクションの続きのアクションは優先的に処理することを特徴とする二次記憶装置への遠隔アクセス方法。A method for remote access to a secondary storage device, characterized in that an action subsequent to an action issued is preferentially processed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000242636A JP3698031B2 (en) | 2000-08-10 | 2000-08-10 | Remote access method to secondary storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000242636A JP3698031B2 (en) | 2000-08-10 | 2000-08-10 | Remote access method to secondary storage device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8027263A Division JPH09198336A (en) | 1996-01-22 | 1996-01-22 | Remote access method for secondary storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001101058A JP2001101058A (en) | 2001-04-13 |
JP3698031B2 true JP3698031B2 (en) | 2005-09-21 |
Family
ID=18733635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000242636A Expired - Fee Related JP3698031B2 (en) | 2000-08-10 | 2000-08-10 | Remote access method to secondary storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3698031B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5201951B2 (en) * | 2007-11-16 | 2013-06-05 | 富士通コンポーネント株式会社 | KVM switch, information processing apparatus and program |
JP2010026626A (en) * | 2008-07-16 | 2010-02-04 | Ono Sokki Co Ltd | Method, system and program for recording data |
JP6279940B2 (en) * | 2014-03-11 | 2018-02-14 | 株式会社東芝 | Communication apparatus and program |
-
2000
- 2000-08-10 JP JP2000242636A patent/JP3698031B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001101058A (en) | 2001-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Constructing adaptive software in distributed systems | |
US6665704B1 (en) | Bounding delays and reducing threading overheads in caching | |
JP3014358B2 (en) | How to balance your workload across computer networks and servers | |
JP4160642B2 (en) | Network data transfer method | |
KR100326864B1 (en) | Network communication method and network system | |
US6112281A (en) | I/O forwarding in a cache coherent shared disk computer system | |
EP0996260B1 (en) | Wide area load distribution apparatus and method | |
JPH02309445A (en) | Access control method and apparatus for client apparatus of data processing system and computer program product | |
US20050286516A1 (en) | Session multiplex protocol | |
JPH10301871A (en) | System and method for controlling transmission of relatively large data object in communication system | |
JPH06110845A (en) | Inter-processor data communication method | |
JPH1021134A (en) | Gate way device, client computer and distributed file system connecting them | |
JP2010165022A (en) | Inter-processor communication device, inter-processor communication method, program, and recording medium | |
CZ20032079A3 (en) | Method and apparatus for transferring interrupts from a peripheral device to a host computer system | |
JPH02228760A (en) | System for communication between a plurality of processors | |
JPH01142964A (en) | Memory management | |
JP3698031B2 (en) | Remote access method to secondary storage device | |
Chesson | The network UNIX system | |
JPH09198336A (en) | Remote access method for secondary storage device | |
EP0459774A2 (en) | File access system in distributed data processing system | |
JP2017215745A (en) | Data processor, data processing method and program | |
JP2736237B2 (en) | Remote memory access controller | |
JPS61195439A (en) | Remote file access system | |
Cvijović et al. | An approach to the design of distributed real-time operating systems | |
Ahuja et al. | A multi-microprocessor architecture with hardware support for communication and scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040713 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040906 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050314 |
|
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: 20050614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050627 |
|
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: 20090715 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100715 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110715 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110715 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120715 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120715 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130715 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |