JP3698031B2 - Remote access method to secondary storage device - Google Patents

Remote access method to secondary storage device Download PDF

Info

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
Application number
JP2000242636A
Other languages
Japanese (ja)
Other versions
JP2001101058A (en
Inventor
雄一 相場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2000242636A priority Critical patent/JP3698031B2/en
Publication of JP2001101058A publication Critical patent/JP2001101058A/en
Application granted granted Critical
Publication of JP3698031B2 publication Critical patent/JP3698031B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 computer 1 on which a client program operates, a server computer 2, an inter-computer connection network 3 that connects these computers so that they can communicate with each other, and a server computer 2 And a secondary storage device 4 connected to the.
[0023]
A process called a file server 10 is operating on the server computer 2. The file server 10 receives a read / write request by communication, reads / writes data on the secondary storage device 4 connected to the server computer 2 according to the request content, and returns a response by communication. In the example of FIG. 1, the functions that the server computer should have are realized by operating a process called the file server 10 on a general-purpose computer, but other similar functions are implemented in the OS of the general-purpose computer. Embodiments and embodiments realized by adding firmware to a dedicated computer are also conceivable.
[0024]
In the computer 1 on which the client program operates, a client program 5 that is an application program is operating. In the example of FIG. 1, a dedicated program called a library 11 is linked to the client program 5 in order to transmit a read / write call from the client program 5 to the server computer 2. The library 11 generates an appropriate read / write request in accordance with a read / write call from the client program 5 and transmits it to the file server 10. Request / response exchange between the library 11 and the file server 10 follows the transfer method described later, but the transmission of the request is controlled by the library 11. In addition, instead of the library 11, an embodiment in which the same function as that of the library 11 is installed in the OS of a general-purpose computer is also conceivable.
[0025]
Several embodiments will be described below, but before that, a basic concept for performing multiple processing of a plurality of requests in the file server 10 which is the premise thereof will be described.
[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 computer 1 in which the client program 5 operates in the final action. One request is completed. Accordingly, multiple processing of requests can be realized by processing actions of other requests at the interruption point.
[0027]
The file server 10 manages the actions as described above using a queue (action queue), and executes a main loop as shown in FIG. The file server 10 has a mouth (reception port) for receiving a request, and receives the request by reading this (S1). Next, the initial action corresponding to the received request is registered at the end of the action queue (S2). Next, one action is extracted from the head of the action queue (S3). Then, the action is processed (S4), and the process returns to step S1. By such a main loop, the file server 10 alternately processes a plurality of request actions, thereby realizing multiple processing of requests.
[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 file server 10.
[0031]
Note that the asynchronous I / O completion handler interrupts and starts at an arbitrary timing during the operation of the file server 10, but the action queue is exclusive so that the file server 10 and the asynchronous I / O completion handler are not operated simultaneously. .
[0032]
Hereinafter, a method for accessing data on the secondary storage device 4 connected to the server computer 2 from the client program 5 operating on the computer 1 will be described with some examples.
[0033]
(Embodiment 1) In this embodiment, when there is a read / write call from the client program 5, the library 11 executes the processing shown in FIG.
[0034]
First, a read / write call from the client program 5 is analyzed and divided into read / write requests for data of a certain size (L11). For example, when a certain fixed size is 8 Kbytes, and the read / write call from the client program 5 is, for example, reading or writing of 24 Kbytes of data, a read / write request for 8 Kbytes from the top of the requested data And a read / write request for the next 8 KB, and a read / write request for the last 8 KB.
[0035]
Next, all the read / write requests obtained by the division are transmitted all at once to the file server 10 of the server computer 2 via the inter-computer connection network 3 (L12). Then, it waits for a response returned from the server computer 2 (L13). Waiting for a response is a process of reading a response reception port of the client program 5, and if a response is not received, waits until it is received. When a plurality of read / write requests are transmitted, a plurality of responses are returned.
[0036]
Next, when a response from the server computer 2 is received, the number of responses that have been returned so far is checked to see if all responses have been returned (L14). If the number of responses is smaller than the division number of the read / write request, that is, if all responses have not been returned, the process returns to step L13 and waits for responses. If all responses have been returned, the process returns to the call of the client program 5.
[0037]
On the other hand, the file server 10 receives a read / write request from the library 11, accesses the requested data on the secondary storage device 4 for one received read / write request, and then responds 1 to the request source. The process of transmitting one is multiplexed and executed for a plurality of read / write requests. Since the method of multiplexing and executing requests has been described above, a sequence focusing on one read / write request will be described with reference to FIG.
[0038]
First, the file server 10 secures a memory (data buffer) serving as a relay for temporarily storing read / write data relating to the read / write request (S11). Next, the physical read / write is issued asynchronously to the secondary storage device 4 and waits for its completion (S12). Here, the first action ends, and the request processing is interrupted. Next, when the physical read / write is completed, a read / write response is transmitted to the request source (S13). This is the final action of the read / write request.
[0039]
As described above, in the present embodiment, the read / write call by the client program 5 is divided into read / write requests for data of a certain size and transmitted all at once to the server computer 2, and the plurality of read / write requests received are transmitted. The server computer 2 multiplexes the write request, and the physical read / write processing of the secondary storage device in the server computer 2 and the communication processing in the inter-computer connection network 3 are performed in parallel. As a result, the communication time overlaps with the physical read / write processing time, and the overall processing time is shortened.
[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 client program 5 is divided into four read / write requests and requested. First, the library 11 first sends four read / write requests to the server computer 2 at a time. Then, the file server 10 of the server computer 2 multiplexes four read / write requests, but since physical read / write is started when the first request is received, the communication time of the subsequent request is the first read. / Overlapping with write processing time. This makes most of the requested communication time invisible to the client program 5. Further, at the end of each request, a response is returned to the library 11. During that time, the file server 10 of the server computer 2 processes the physical read / write of the next request in an overlapping manner. As a result, most of the response communication time is invisible to the client program 5.
[0041]
Referring to FIG. 5, it can be seen that most of the communication time overlaps with the physical read / write time in the server computer 2. As a result, most of the communication time is invisible to the client program 5, and the processing time of the read / write call is shortened. However, although the communication time 24 in FIG. 5 is invisible to the client program 5, the communication time 23 of the first request and the last response is visible to the client program 5. However, as the amount of data to be accessed increases and the number of divisions increases, this time 23 becomes relatively smaller than the total of the physical read / write times 22, and the read / write call processing time 21 becomes the physical read / write time. It is equivalent to the sum total of the time 22.
[0042]
Responses are returned one after another from the server computer 2 to the computer 1 on which the client program 5 runs. On the other hand, the library 11 can determine the completion of the read / write call from the client program 5 by grasping that the processing of all the requests has been completed.
[0043]
(Embodiment 2) In this embodiment, when there is a read / write call from the client program 5, the library 11 executes the processing shown in FIG.
[0044]
First, as in the first embodiment, a read / write call from the client program 5 is analyzed and divided into read / write requests for data of a certain fixed size (L21).
[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 file server 10 of the server computer 2 via the inter-computer connection network 3 (L24). If the number of divisions is larger than the threshold value, among the read / write requests obtained by the division, only the number of read / write requests equal to the threshold value are sent to the server computer 2 via the inter-computer connection network 3 at a time. It transmits to the file server 10 (L23). At this time, read / write requests that have not yet been transmitted are held inside. Then, it waits for a response returned from the server computer 2 (L25).
[0046]
Next, when a response from the server computer 2 is received, it is confirmed whether or not there is a read / write request that has not been transmitted yet (L26). If there is still a read / write request that has not been transmitted, one of the read / write requests is transmitted to the file server 10 of the server computer 2 and the process waits for a response in step L25. If it is determined in step L26 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 (L28). If the number of responses is smaller than the division number of the read / write request, that is, if all responses are not returned, the process returns to step L25 again to wait for responses. If all responses have been returned, the process returns to the call of the client program 5.
[0047]
The processing of the file server 10 is the same as that of the first embodiment, receives a read / write request from the library 11, and accesses the requested data on the secondary storage device 4 for one received read / write request. Thereafter, the process of transmitting one response to the request source is executed in a multiplexed manner for a plurality of read / write requests.
[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 client program 5 is large, the read / write request transmitted at once. And the load on the server computer 2 and the inter-computer communication network 3 becomes excessive. If the load on the server computer 2 or the like increases abnormally, some of the read / write requests may disappear and may not be processed, so the read / write call from the client program 5 may fail.
[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 server computer 2, and the number of read / write requests to be transmitted first is kept below the threshold value. The initial load at 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 server computer 2 is always below the threshold value, and the load on the server computer 2 continues to be below a certain value. Can be suppressed.
[0050]
An example of the exchange of request / response that occurs between the server computer 2 and the client program 5 in this embodiment is shown in FIG. In this example, the read / write call from the client program 5 is divided into eight read / write requests, and the threshold value is set to 4.
[0051]
First, since the threshold value is 4, the library 11 first transmits only four read / write requests to the server computer 2. Thereby, the number of read / write requests received first by the server computer 2 can be suppressed to 4 or less.
[0052]
Thereafter, the file server 10 of the server computer 2 multiplexes each read / write request and returns a response one by one. On the other hand, the library 11 transmits one read / write request to the server computer 2 every time one response is received. As a result, the number of read / write requests being multiplexed by the server computer 2 is always 4 or less.
[0053]
(Embodiment 3) In this embodiment, when there is a read / write call from the client program 5, the library 11 executes the processing shown in FIG.
[0054]
First, as in the first embodiment, a read / write call from the client program 5 is analyzed and divided into read / write requests for data of a certain size (L31).
[0055]
Next, a reservation request designating this division number is transmitted to the file server 10 of the server computer 2 via the inter-computer connection network 3, and a response is waited (L32).
[0056]
Next, when a response to the reservation request is received from the file server 10 of the server computer 2, the number of reservations included in the response is extracted and set as a threshold value (L33).
[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 file server 10 of the server computer 2 via the inter-computer connection network 3 (L36). If the number of divisions is larger than the threshold value, among the read / write requests obtained by the division, only the number of read / write requests equal to the threshold value are sent to the server computer 2 via the inter-computer connection network 3 at a time. It transmits to the file server 10 (L35). At this time, read / write requests that have not yet been transmitted are held inside. Then, it waits for a response returned from the server computer 2 (L37).
[0058]
Next, when a response from the server computer 2 is received, it is confirmed whether or not there is a read / write request that has not been transmitted yet (L38). If there is a read / write request that has not been sent yet, one of the read / write requests is sent to the file server 10 of the server computer 2 (L39), and the process goes to the waiting for response in step L37. If it is determined in step L38 that there is no untransmitted read / write request, the number of responses that have been returned is checked to see if all responses have been returned (L3a). If the number of responses is smaller than the division number of the read / write request, that is, if all responses are not returned, the process returns to step L37 and waits for responses.
[0059]
If all responses have been returned, a request (reservation cancellation request) for canceling the reservation in the server computer 2 is transmitted to the file server 10 of the server computer 2 via the inter-computer connection network 3, and the response is awaited. (L3b). Then, after a response to the reservation cancellation request is returned, the process returns to the call of the client program 5.
[0060]
In this embodiment, the file server 10 performs a reservation request process and a reservation release request process in addition to the read / write request process. Since the read / write request process is almost the same as in the first and second embodiments, the reservation request process and the reservation release request process will be described below.
[0061]
FIG. 9 shows a sequence focusing on one reservation request process. As described above, when a reservation request is transmitted from the library 11, the file server 10 first calculates the number of read / write requests that are allowable for the client program (S31).
[0062]
This allowable number depends on the current load status of the file server 10. Specifically, it is almost determined by the current remaining memory capacity that can be used by the file server 10 to process read / write requests. For example, if the total amount of memory that can be used by the file server 10 to process a read / write request is A and the amount of memory required to process one read / write request is B, [A / B] is a file. It becomes the processing load upper limit of the server 10. In addition, when reservations for C read / write requests are accepted at this time, the current allowable total number (total allowable number) is C, and the current allowable number of read / write requests is the processing load upper limit − C. Thus, the file server 10 obtains the allowable number for the client program by subtracting the current allowable number (total allowable number) from the upper limit of the processing load.
[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 library 11, the file server 10 updates the current allowable number by subtracting the reservation number given to the client program (S35). As a result, the reserved memory amount is released, and the amount of memory that can be used for processing read / write requests from other client programs is increased accordingly. Then, the end of the reservation cancellation request process is notified to the library 11 by a response (S36). Such reservation cancellation request processing consists of one action.
[0067]
As in the second embodiment, when the threshold value is determined in advance by the processing capacity of the server computer 2, if there is one client program, the number of read / write requests exceeding the processing capacity of the server computer 2 will come. There is no. However, when there are a plurality of client programs that transmit read / write requests to the server computer 2, the processing capacity of the server computer 2 may be exceeded.
[0068]
On the other hand, in this embodiment, the number of reservations allowed for one client program is notified to the library 11 in accordance with the load status of the file server 10 of the server computer 2 that changes dynamically, and the library 11 reserves the reservation. Since the number is set as a threshold value and a read / write request is subsequently made according to the threshold value, the load generated in the server computer 2 can be controlled so as not to exceed a certain value. That is, the server computer 2 does not exceed the processing capacity of the server computer 2 even if a plurality of client programs are dealt with. Further, since the number of reservations is reset when all the read / write requests from the client program are completed, the memory can be effectively used for the reservation request of the client program that occurs thereafter.
[0069]
FIG. 11 shows an example of request / response exchange that occurs between the server computer 2 and the client program 5 in this embodiment. Except for the reservation process (A) and the reservation cancellation process (B), the exchange is the same as in the second embodiment. In the example of FIG. 11, the read / write call from the client program 5 is divided into five read / write requests, but it is assumed that the number of reservations from the file server 10 is three. For this reason, the library 11 sets 3 as the threshold value, and first sends three read / write requests to the server computer 2. The subsequent processing is the same as the processing procedure of the second embodiment. However, after all read / write requests have been processed, the reservation cancellation processing (b) is performed, and the processing returns to the read / write call from the client program 5. .
[0070]
(Embodiment 4) In this embodiment, when there is a read / write call from the client program 5, the library 11 executes the processing shown in FIG.
[0071]
First, as in the first embodiment, a read / write call from the client program 5 is analyzed and divided into read / write requests for data of a certain size (L41).
[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 file server 10 of the server computer 2 via the inter-computer connection network 3, and a response is received (L44).
[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 file server 10 of the server computer 2 and wait for reception of a reservation response (L43). Waiting for reception of a reservation response is a process of reading a response reception port of the client program 5, and if a reservation response has not been received, it waits until it is received.
[0074]
Next, when a reservation response is returned from the server computer 2, the number of reservations included in the response is taken out and set as a threshold value (L45).
[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 file server 10 of the server computer 2 all at once via the inter-computer connection network 3. (L48). However, one of the read / write requests is added with a reservation release request to make a reservation release + read / write batch request, which is transmitted as one request. When the division number −1 is larger than the threshold value, only the number of read / write requests equal to the threshold value among the remaining read / write requests obtained by the division are transmitted via the inter-computer network 3 at a time. To the file server 10 of the server computer 2 (L47). At this time, read / write requests that have not yet been transmitted are held inside. Then, it waits for a read / write response returned from the server computer 2 (L49).
[0076]
Next, when a read / write response is received from the server computer 2, it is confirmed whether or not there is a read / write request that has not been transmitted (L4a). If there is still a read / write request that has not been transmitted, it is checked whether the number is 1 (L4c). If it is not 1, there are two or more read / write requests that have not yet been transmitted. If it is, one of the read / write requests is transmitted to the file server 10 of the server computer 2 (L4d), and the process waits for a response in step L49. On the other hand, if there is one read / write request that has not been transmitted yet, a request for canceling reservation is added to the request and a request for canceling reservation + read / write batch request is transmitted to the file server 10 of the server computer 2 ( L4e), the process waits for a response in step L49.
[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 client program 5.
[0078]
In this embodiment, the file server 10 multiplexes and executes reservation + read / write batch request processing and reservation cancellation + read / write batch request processing in addition to read / write request processing.
[0079]
FIG. 13 shows a sequence focusing on one read / write request. The file server 10 first secures a memory serving as a relay for temporarily storing read / write data relating to the read / write request (S41). Next, physical read / write is asynchronously performed on the secondary storage device 4, and the completion is waited (S42).
[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 library 11, the file server 10 first calculates the number of read / write requests that can be accepted for the client program (S47). This allowable number depends on the current load status of the file server 10. Specifically, it is calculated as a value that is the upper limit of the processing load of the file server 10 minus the total of the current allowable number (total allowable number).
[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 file server 10 of the third embodiment. However, in this embodiment, since the reservation response is transmitted asynchronously and then the read / write request processing is continued, the read / write request processing time and the reservation response communication time overlap.
[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 secondary storage device 4, and the completion is awaited (S4c). When the physical read / write is completed, a read / write response is transmitted to the request source (S4d).
[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 library 11, first read / write request processing is performed, and then reservation cancellation processing is performed. In the read / write request processing, a memory serving as a relay for temporarily storing read / write data related to the read / write request is secured (S4e), and the physical read / write is asynchronously performed on the secondary storage device 4, Wait for the completion (S4f). When the physical read / write is completed, it is checked whether there is another read / write request being processed from the same client program 5 (S4g), and if there is any, it is suspended until there is no read / write request being processed. . The interruption method is performed by registering the request in the interruption queue. The request registered in the suspension queue is reregistered from the suspension queue to the request queue in step S45 of FIG.
[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 library 11 does not need to send the reservation request as a separate request first, and the file server 10 reads / writes following the reservation response. Since processing is performed, the communication time for the reservation response can be overlapped with the physical read / write time. If a subsequent read / write request is transmitted from the client program during physical read / write in the server computer, the communication time can be overlapped with the physical read / write time.
[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 server computer 2 and the client program 5. The first reservation + read / write batch request (c) is sent to the server computer 2 as one request. The server computer 2 first performs reservation processing, returns a reservation response, and proceeds to read / write processing at the same time. At this time, the physical read / write and reservation response communication time overlap.
[0091]
The read / write request processing after the reservation response is received by the library 11 of the computer 1 on which the client program 5 operates is the same as in the third embodiment. However, the difference is that the last request is a reservation cancellation + read / write batch request. The last request processing corresponds to the reservation cancellation + read / write (d) processing shown in FIG. In the example of FIG. 16, the read / write call from the client program 5 is divided into five read / write requests, but it is assumed that the number of reservations from the file server 10 is three. Therefore, the library 11 sets the threshold value to 3, and after receiving the reservation response, first sends three read / write requests to the server computer 2. Subsequent processing is the same as the processing procedure of the second and third embodiments, but when the remaining read / write request becomes one, a request that combines reservation cancellation and read / write (reservation cancellation + read / write). (Collective request). In response to this request, the server computer performs read / write processing and reservation cancellation processing, and returns it as one response. Thereby, the last communication time can be reduced.
[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 computer 1 on which one client program 5 operates is connected to one server computer 2 via an inter-computer communication network 3, but a computer on which one or more client programs 5 operate. It is also applicable to a computer system in which a plurality of computers are connected to the inter-computer communication network 3. Further, although an example in which only one secondary storage device 4 is connected to the server computer 2 has been shown, a plurality of secondary storage devices may be connected.
[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 Embodiment 2.
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 Embodiment 4. FIG.
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)

First 11 の計算機上で動作するクライアントプログラムから、前記第From the client program running on the other computer 11 の計算機と計算機間網を通じて相互に通信可能な第That can communicate with each other through the computer network 22 の計算機に接続されている二次記憶装置上のデータに対してアクセスする方法であって、A method of accessing data on a secondary storage device connected to a computer of
前記第  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.
First 11 の計算機上で動作するクライアントプログラムから、前記第From the client program running on the other computer 11 の計算機と計算機間網を通じて相互に通信可能な第That can communicate with each other through the computer network 22 の計算機に接続されている二次記憶装置上のデータに対してアクセスする方法であって、A method of accessing data on a secondary storage device connected to a computer of
前記第  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.
前記第Said 22 の計算機に、複数台の前記第A plurality of the above-mentioned computers 11 の計算機を前記計算機間接続網を通じて接続したことを特徴とする請求項1または2記載の二次記憶装置への遠隔アクセス方法。3. The method for remote access to a secondary storage device according to claim 1, wherein said computers are connected through said inter-computer connection network.
JP2000242636A 2000-08-10 2000-08-10 Remote access method to secondary storage device Expired - Fee Related JP3698031B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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