JP3785741B2 - リモートファイルの入出力方法 - Google Patents
リモートファイルの入出力方法 Download PDFInfo
- Publication number
- JP3785741B2 JP3785741B2 JP13643497A JP13643497A JP3785741B2 JP 3785741 B2 JP3785741 B2 JP 3785741B2 JP 13643497 A JP13643497 A JP 13643497A JP 13643497 A JP13643497 A JP 13643497A JP 3785741 B2 JP3785741 B2 JP 3785741B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- size
- remote file
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、計算機システム間においてリモートファイルを入出力する方法に係わる。
【0002】
【従来の技術】
パーソナルコンピュータ,ワークステーションやメインフレーム等の様々な規模の計算機システムがネットワークにより接続された分散コンピューティング環境が構築されている。このような分散コンピューティング環境では、通常、様々な情報が分散ファイルシステムにより共有されている。特に、米国 サン マイクロシステムズ(Sun Microsystems)社が開発した分散ファイルシステムの仕様(倉骨彰訳/砂原秀樹監訳「NFS & NIS」アスキー出版局,pp.183−218(1992)(原著:Managing NFS and NIS 、原著者:Hal Stern、原発行所:O'Reilly & Associates,Inc.)は業界標準として分散ファイルシステムに使用されている。
【0003】
この分散ファイルシステムにおいて、クライアント計算機からサーバ計算機への入出力要求はバッファサイズと呼ばれる単位で読み出し/書き込み処理される。このバッファサイズはネットワークの物理的なパケットの転送単位、及び、計算機システムのディスクの入出力単位とは独立である。1985年にリリースされたバージョン2ではバッファサイズの上限は8キロバイトであった。信頼性の高いネットワークを利用できるようになり、また、動画像データといった数メガバイト程度の大きなデータを転送したりするようになったために、1993年にリリースされたバージョン3ではこの上限値が除去され、個々の実装により任意の値をバッファサイズとして設定できるようになった。
【0004】
バージョン2においてバッファサイズは、ネットワークやクライアント計算機やサーバ計算機の性能に基づいて、入出力処理が行われる時点ではなく、計算機管理者がファイルシステムをマウントする際に設定され、一旦設定されたバッファサイズはそのファイルシステムがマウントされている間は一定であった。バージョン3においては、計算機管理者がファイルシステムに対してバッファサイズの最大値および好ましいと考える値を設定し、クライアントが入出力を行う際にそれを知ることができるようになっている。しかし、これらの値はファイルシステムの静的な情報として保持されているのであり、動的に変更されることはない。
【0005】
【発明が解決しようとする課題】
ファイルシステムの中には、画像データのような数メガバイトのサイズをもつ大きなファイルからプログラムのような数キロバイトの比較的小さなファイルなど大小様々な大きさのファイルが混在する。そのため、ファイルシステムをマウントする際にバッファサイズを決定してしまったり、ファイルシステムの好ましいバッファサイズを静的に決定してしまうと、バッファサイズを大きく設定した場合には小さなサイズの入出力要求にとっては大きすぎるために、バッファサイズを小さく設定した場合には大きなサイズの入出力要求にとって小さすぎるために、いずれも入出力要求の処理性能が低下してしまうという問題があった。
【0006】
例えば、バッファサイズが大きく設定されている場合に小さなデータのリモート入出力要求が生じると、その入出力要求の処理は、バッファサイズのデータの入出力要求が蓄積されるまで、もしくは、この待ちがタイムアウトするまで遅らせなければならない。また、例えば、バッファサイズが小さく設定されている場合に大きなデータのリモート入出力要求が生じると、その入出力要求を処理するために小さなサイズの入出力要求をいくつも出さなければならなくなってしまう。
【0007】
本発明の目的は、大きなデータ,小さなデータの入出力が混在している場合においても効率的なリモートファイル入出力方法を提供することである。
【0008】
【課題を解決するための手段】
上記の目的達成のために、本発明のリモートファイル入出力方法では、クライアント計算機が新たなリモートファイル入出力要求を出す際に、上記リモートファイル入出力要求が要求するデータの大きさがある値以上である場合には、各々のリモートファイル入力要求(リモートファイル出力要求)が受信データ格納領域(送信データ格納領域)に一度に書き込むことができるデータのサイズ(これを以後、入力バッファサイズ(出力バッファサイズ)と呼ぶ)を、上記リモートファイル入出力要求が入出力を要求するデータの大きさに基づいて設定する。
【0009】
上記送受信データ格納領域は、ある一定の大きさの連続領域(メッセージバッファ)のリスト複数種類から構成されている。その複数種類のメッセージバッファリストには、計算機のメモリ管理の特性に基づいて決定された大きさのメッセージバッファ(デフォルトメッセージバッファ)のリストと、デフォルトメッセージバッファの大きさの倍数であり、かつ、使用可能なネットワークの最大データ転送サイズ以下であるという条件を満たした大きさのメッセージバッファのリストが含まれている。
【0010】
上記リモートファイル入出力要求の入出力バッファサイズは、入出力を要求するデータサイズがあらかじめ決められた値以下である場合には、デフォルトメッセージバッファサイズに設定され、入出力を要求するデータサイズがあらかじめ決められた値より大きい場合には、入出力を要求するデータサイズ以下であるメッセージバッファサイズの中の最大値に設定される。各リモートファイル入出力要求を処理する際には、上記リモートファイル入出力要求の入出力バッファサイズと等しいサイズのメッセージバッファのリストが使用される。
【0011】
上記クライアント計算機は上記入力バッファサイズ(出力バッファサイズ)のデータの受信(送信)にある基準以上失敗した場合に上記入力バッファサイズ(出力バッファサイズ)をより小さいメッセージバッファサイズに設定し、上記入力バッファサイズ(出力バッファサイズ)のデータの受信(送信)にある基準以上成功した場合には上記入力バッファサイズ(出力バッファサイズ)をより大きいメッセージバッファサイズに設定する。
【0012】
あるメッセージバッファサイズのリストの使用率がある基準以下であり、かつ、他のメッセージバッファサイズのリストの使用率がある基準以上である場合には適当なサイズのメッセージバッファリストを新たに作成する。
【0013】
【発明の実施の形態】
次に、本発明によるリモートファイルの入出力方法の一実施例を図面を用いて詳細に説明する。
【0014】
〔1〕構成の概略
図1は本発明によるリモートファイル入出力方法を実施するクライアントサーバシステムの構成例を示している。100はクライアント計算機(以下では簡単化のためにクライアントと呼ぶ)、200はサーバ計算機(以下では簡単化のためにサーバと呼ぶ)、300はネットワーク、310はディスクを示している。クライアントとサーバはネットワークにより接続されている。
【0015】
クライアント100上では、OS110の制御下において、ユーザプログラム120,クライアントリモートファイル入出力処理プログラム130,入出力バッファ設定プログラム140,入出力バッファ更新プログラム150,送受信データ格納領域調整プログラム160が稼働しており、送信データ格納領域131と受信データ格納領域132は送受信データ格納領域管理表180により管理されている。
【0016】
サーバ200上では、OS210の制御下において、リモートファイル入力処理プログラム230,送受信データ格納領域調整プログラム260が稼働しており、送信データ格納領域231と受信データ格納領域232は送受信データ格納領域管理表280により管理されている。
【0017】
クライアント100がサーバ200へリモートファイル出力(書き込み)要求を出すと、出力データは送信データ格納領域132に書き込まれ、ネットワーク300を介してサーバ200の受信データ格納領域231に移動する。クライアント100がサーバ200にリモートファイル入力(読み出し)要求を出すと、入力データはサーバ200の送信データ格納領域232に書き込まれ、データはネットワーク300を介して受信データ格納領域131に移動する。
【0018】
〔2〕リモートファイル出力方法の実施例
次に具体的な例を挙げてリモートファイル出力方法の処理の流れを示す。図2は、クライアント100上においてユーザプログラムがリモートファイル出力を要求した例における、本発明のリモートファイル出力方法の主要部分のタイムチャートを示している。タイムチャートはクライアントリモートファイル入出力処理プログラム130(出力),サーバリモートフイル入出力処理プログラム230(入力)の動作を示す。
【0019】
(1)リモートファイル出力要求400
クライアント100においてユーザプログラム120がリモートファイル出力要求400を起こすと、クライアントリモートファイル入出力処理プログラム130が実行される。
【0020】
図3はクライアントリモートファイル入出力処理プログラム130(出力)の処理の流れを示す。入出力バッファ設定プログラム140を実行し(ステップ500)、リモートファイル出力要求400の出力バッファサイズを設定する。図4は入出力バッファ設定プログラム140の処理の流れを示している。
【0021】
出力データサイズがある基準より小さいか否かを調べ(ステップ600)、小さければ出力バッファサイズをデフォルトメッセージバッファサイズに設定する(ステップ610)。出力データサイズがある基準以上である場合には、送受信データ格納領域管理表180を参照し、出力データサイズ以上のメッセージバッファがある場合にはその最小のメッセージバッファサイズを、ない場合には最大のメッセージバッファサイズを出力バッファサイズとして入出力バッファ管理表170に設定する(ステップ620)。送受信データ格納領域管理表180の出力バッファサイズの大きさのメッセージバッファのリストを使用するリモートファイル出力要求の数を一つ増やす(ステップ621)。
【0022】
(2)データ送信401
クライアントリモートファイル入出力処理プログラム130は未出力データが存在するか否かを調べ(ステップ501)、未出力データが存在しない場合にはクライアントリモートファイル入出力処理プログラム130を終了する。未出力データが存在する場合には、リモートファイル出力要求400の出力バッファサイズを参照し(ステップ502)、出力バッファサイズのデータを出力バッファサイズの大きさのメッセージバッファに書き込み(ステップ503)、書き込んだデータをリモートファイル出力要求先のサーバ200に送信し(ステップ504)、送受信データ格納領域管理表180の出力バッファサイズのメッセージバッファリストに関して、メッセージバッファ使用率,メッセージバッファリスト使用率を更新する(ステップ505)。そして、送受信データ格納領域調整プログラム160を実行し(ステップ506)、サーバ200から出力バッファ転送成功/失敗通知を受信することを待つ(ステップ507)。
【0023】
図5は送受信データ格納領域管理表180の例である。図5はクライアント100のリモートファイル出力要求の80%が60キロバイトのメッセージバッファを使用しており、1回のデータ送信において60キロバイトのメッセージバッファの平均して8キロバイトしか使用していないことを示している。
【0024】
図6は送受信データ格納領域調整プログラム160の処理の流れを示している。使用率がある基準以上であるメッセージバッファリストがあるか調べる(ステップ700)。ある場合にはそのメッセージバッファリストのメッセージバッファ使用率に基づき新しいメッセージバッファリストを作成する(ステップ710)。使用率がある基準より小さく、かつ、使用しているリモートファイル出力要求がないメッセージバッファリストがあるか調べる(ステップ701)。ある場合にはそのメッセージバッファリストを削除する(ステップ720)。
【0025】
(3)データ受信402、データ転送成功/失敗通知送信403
サーバ200は書き込みデータを受信すると、サーバリモートファイル入出力処理プログラム230を実行する。
【0026】
図7はサーバリモートファイル入出力処理プログラム(入力)を示している。送受信データ格納領域管理表280を参照し、受信したデータのサイズ以上のメッセージバッファがあるか調べる(ステップ800)。ない場合には転送失敗をクライアント100に通知し(ステップ820)、サーバリモートファイル入出力処理プログラム230を終了する。受信したデータのサイズ以上のメッセージバッファがある場合には、その中の最小のメッセージバッファにデータを読み出し(ステップ810)、送受信データ格納領域管理表280のメッセージバッファ使用率とメッセージバッファリスト使用率を更新する(ステップ811)。そして、送受信データ格納領域調整プログラム160を実行し(ステップ812)、クライアント100に転送成功を通知する(ステップ813)。
【0027】
(5)データ転送成功/失敗通知受信404
クライアント100がデータ転送成功/失敗通知を受信すると、入出力バッファ管理表170のリモートファイル出力要求400に関して転送成功率を更新し(ステップ508)、入出力バッファ更新プログラム150を実行する(ステップ509)。送信した出力バッファサイズのデータすべてが受信されなかった場合には転送は失敗したと見なす。入出力バッファ更新プログラム実行後ステップ501に戻る。
【0028】
図8は入出力バッファ管理表170の例である。図8はリモートファイル入出力要求400の入出力バッファサイズは4キロバイトであり、転送成功率は95%であることを示している。
【0029】
図9は入出力バッファ更新プログラム150の処理の流れを示す。入出力バッファ更新プログラム150は、入出力バッファの転送の成功率がある基準より小さいか調べる(ステップ900)。小さい場合には、入出力データ格納領域管理表180を参照し、入出力バッファサイズを現在よりも小さいメッセージバッファのサイズに設定する(ステップ901)。入出力バッファの転送の成功率がある基準以上であるか調べる(ステップ902)。以上である場合には、入出力データ格納領域管理表180を参照し、入出力バッファサイズを現在よりも大きいメッセージバッファのサイズに設定する(ステップ903)。
【0030】
〔3〕リモートファイル入力方法の実施例
次に具体的な例を挙げてリモートファイル入力方法の処理の流れを示す。図10はクライアント100上がリモートファイル入力要求を出した例における、本発明のリモートファイル入力方法の主要部分のタイムチャートである。タイムチャートはクライアントリモートファイル入出力処理プログラム130(入力),サーバリモートファイル入力処理プログラム230(出力)の動作を示す。
【0031】
(1)リモートファイル入力要求1000
クライアント100のユーザプログラム120がリモートファイル入力要求1000を出すと、クライアントリモートファイル入出力処理プログラム130が実行される。
【0032】
図11はクライアントリモートファイル入出力処理プログラム130(入力)の処理の流れを示す。入出力バッファ調停プログラム140を実行し(ステップ1100)、リモートファイル入力要求1000の入力バッファサイズを設定する。未入力データが存在するか否かを調べ(ステップ1101)、未入力データが存在しない場合にはクライアントリモートファイル入出力プログラム130を終了させる。未入力データが存在する場合には、入出力バッファ管理表170のリモートファイル入力要求1000の入力バッファサイズを参照し(ステップ1102)、リモートファイル入力要求先のサーバ200に入力要求・入力バッファサイズを送信する(ステップ1103)。
【0033】
(3)リモートファイル入力要求・入力単位受信1002
サーバリモートファイル入出力処理プログラム230はクライアント100から送信されてきたリモートファイル入力要求・入力バッファサイズを受信すると、サーバリモートファイル入出力処理プログラム230を実行する。
【0034】
図12はサーバリモートファイル入出力処理プログラム230の処理の流れを示している。送受信データ格納領域管理表280を参照し、受信した入力バッファサイズ以下である最大のメッセージバッファを用いてリモートファイル入力要求元のクライアント100にデータを送信する(ステップ1200)。送受信データ格納領域管理表280のメッセージバッファ使用率とメッセージバッファリスト使用率を更新し(ステップ1201)、送受信データ格納領域調整プログラム260を実行する(ステップ1202)。
【0035】
(5)データ及びデータ転送成功/失敗通知受信1004
クライアント100がデータ及びデータ転送成功/失敗通知を受信すると、入力バッファサイズのメッセージバッファに受信したデータを読み出し(ステップ1105)、送受信データ格納領域管理表180のリモートファイル入力要求1000の入力バッファサイズのメッセージバッファリストに関して、メッセージバッファ使用率及びメッセージバッファリスト使用率を更新して(ステップ1105)、送受信データ格納領域調整プログラム160を実行する(ステップ1106)。そして、入出力バッファ管理表170のリモートファイル入力要求1000の転送成功率を更新し(ステップ1107)、入出力バッファ更新プログラム150を実行する(ステップ1108)。受信したデータのサイズが入力バッファサイズよりも小さい場合には転送は失敗したと見なす。入出力バッファ更新プログラム150を実行後ステップ1102に戻る。
【0036】
【発明の効果】
本発明は、リモートファイルの入出力要求が起きる毎に、入出力を要求するデータの大きさに基づいて転送単位を決め、データ転送の成功率に基づいて転送単位を調節し、クライアント計算機が処理しているリモートファイル入出力要求の転送単位の分布に応じて送受信データ格納領域の構成を調節することにより効率的なリモートファイル入出力が可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例のクライアントサーバシステムの構成を示すブロック図。
【図2】リモートファイル出力例のタイムチャート。
【図3】クライアントリモートファイル入出力処理プログラム(出力)のフローチャート。
【図4】入出力バッファ設定プログラムのフローチャート。
【図5】送受信データ格納領域管理表の構造を示す説明図。
【図6】送受信データ格納領域調整プログラムのフローチャート。
【図7】サーバリモートファイル入出力処理プログラム(入力)のフローチャート。
【図8】入出力バッファ管理表の構造を示す説明図。
【図9】入出力バッファ更新プログラムのフローチャート。
【図10】リモートファイル入力例のタイムチャート。
【図11】クライアントリモートファイル入出力処理プログラム(入力)のフローチャート。
【図12】サーバリモートファイル入出力処理プログラム(出力)のフローチャート。
【符号の説明】
100…クライアント計算機、110…OS、120…ユーザプログラム、130…クライアントリモートファイル入出力処理プログラム、131…送信データ格納領域、132…受信データ格納領域、140…入出力バッファ設定プログラム、150…入出力バッファ更新プログラム、160…送受信データ格納領域調整プログラム、170…入出力バッファ管理表、180…送受信データ格納領域管理表、200…サーバ計算機、210…OS、230…リモートファイル入力処理プログラム、231…送信データ格納領域、232…受信データ格納領域、260…送受信データ格納領域調整プログラム、280…送受信データ格納領域管理表、300…ネットワーク、310…ディスク。
Claims (1)
- リモートファイル入力およびリモートファイル出力を要求するクライアント計算機とその要求を処理するサーバ計算機から構成されるクライアントサーバシステムにおいて、
クライアント計算機は複数種類のサイズのメモリの連続領域をメッセージバッファとしてあらかじめ準備し、
リモートファイルの出力要求もしくは入力要求が発生すると、前記メッセージバッファのなかから、該出力要求もしくは入力要求が要求するデータサイズが格納できるサイズのメッセージバッファがあれば該出力要求もしくは入力要求が要求するデータサイズが格納できる最小のサイズのメッセージバッファを、また該出力要求もしくは入力要求が要求するデータサイズが格納できるサイズのメッセージバッファがなければ前記複数種類のサイズのメッセージバッファのなかの最大サイズのメッセージバッファを受信データ格納領域もしくは送信データ格納領域に設定してサーバ計算機にリモートファイル出力要求もしくはリモートファイル入力要求を送信し、
かつ各サイズのメッセージバッファの使用率を算出し、使用率が第1の基準値を超えた場合は当該サイズのメッセージバッファを新たに作成し、使用率が第2の基準を下回るメッセージバッファがあれば当該サイズのメッセージバッファを削除することを特徴とするリモートファイルの入出力方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13643497A JP3785741B2 (ja) | 1997-05-27 | 1997-05-27 | リモートファイルの入出力方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13643497A JP3785741B2 (ja) | 1997-05-27 | 1997-05-27 | リモートファイルの入出力方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10326217A JPH10326217A (ja) | 1998-12-08 |
JP3785741B2 true JP3785741B2 (ja) | 2006-06-14 |
Family
ID=15175054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13643497A Expired - Fee Related JP3785741B2 (ja) | 1997-05-27 | 1997-05-27 | リモートファイルの入出力方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3785741B2 (ja) |
-
1997
- 1997-05-27 JP JP13643497A patent/JP3785741B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10326217A (ja) | 1998-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7065541B2 (en) | Database migration | |
EP2282276B1 (en) | System for client connection distribution according to system load | |
US8661055B2 (en) | File server system and storage control method | |
US10203894B2 (en) | Volume admission control for a highly distributed data storage system | |
JP4144897B2 (ja) | 共通作業キュー環境における最適格サーバ | |
US7849167B2 (en) | Dynamic distributed adjustment of maximum use of a shared storage resource | |
CN111712802B (zh) | 数据存储系统中的虚拟存储驱动器管理 | |
US20100138540A1 (en) | Method of managing organization of a computer system, computer system, and program for managing organization | |
US20060123121A1 (en) | System and method for service session management | |
JPH1165969A (ja) | サーバ装置および通信接続方法並びに通信の接続を行うプログラムを記録した記録媒体 | |
EP3951607A1 (en) | Data reading method, data writing method, and server | |
US11994944B2 (en) | Efficient networking for a distributed storage system | |
US9298765B2 (en) | Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network | |
EP0536375A1 (en) | Fault tolerant network file system | |
US8463886B2 (en) | Method and apparatus for distributed computing, and computer product | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
JP2010108114A (ja) | ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム | |
US10942821B1 (en) | Method and apparatus for dynamic binding and unbinding thin logical storage volumes to snapshots of a file system | |
JP3785741B2 (ja) | リモートファイルの入出力方法 | |
US20150212898A1 (en) | Data migration method and systems | |
KR101696911B1 (ko) | 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법 | |
JP6700557B2 (ja) | サーバ、制御方法、プログラム | |
US20070033305A1 (en) | Method or apparatus for transferring data | |
JP2022029976A (ja) | メタデータ管理プログラム及び情報処理装置 | |
JP2004126896A (ja) | 自律分散データ計算処理サーバーシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050607 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050628 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050829 |
|
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: 20060228 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060313 |
|
LAPS | Cancellation because of no payment of annual fees |