[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2005031829A - Lookahead processing in network file server - Google Patents

Lookahead processing in network file server Download PDF

Info

Publication number
JP2005031829A
JP2005031829A JP2003194012A JP2003194012A JP2005031829A JP 2005031829 A JP2005031829 A JP 2005031829A JP 2003194012 A JP2003194012 A JP 2003194012A JP 2003194012 A JP2003194012 A JP 2003194012A JP 2005031829 A JP2005031829 A JP 2005031829A
Authority
JP
Japan
Prior art keywords
file
prefetching
access
file server
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003194012A
Other languages
Japanese (ja)
Inventor
Yoji Nakatani
洋司 中谷
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003194012A priority Critical patent/JP2005031829A/en
Publication of JP2005031829A publication Critical patent/JP2005031829A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the problem that since one request from a client is divided into a plurality of requests with small capacities, which are in turn simultaneously issued, in a file access through a network, or the request is re-transmitted due to the package drop of the network, the arrival order of the request to a file server is out of order, and an access pattern to a file is disturbed, and further valid lookahead is made difficult to perform. <P>SOLUTION: There are arranged on a file server a means for suppressing lookahead according to the use condition of the cache of a file system, a means for changing the calculation system of lookahead amounts by a parameter, and a means for suppressing the succession of the parameter for look-ahead according to the status of whether or not data exist on a cache. Thus, it is possible for the file server to execute valid lookahead by facilitating countermeasures to the disturbance of an access pattern from a client which may happen in a file access through a network. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、ファイルの管理を行う処理であるファイルシステムにおける先読み処理方式に関する。特に、クライアントからネットワークを介してアクセスを行うネットワークファイルサーバにおける先読み方式に関するものである。
【0002】
【従来の技術】
ファイルを管理するファイルシステムにおいて、ファイルの読み出し処理を高速化するために、先読み処理を行う。先読み処理は、今後アクセスされるデータ領域を予測し、ファイルシステムがメインメモリ上に持つキャッシュに前もってデータを読み出す処理である。先読み処理により、キャッシュのヒット率を向上させ、読み出しの応答時間を改善することができる。また、ディスクに対するI/Oを一括して行うため、CPUとディスク両方の負荷を削減することができる。尚、ファイルの先読み技術については、非特許文献1に開示されている。
【0003】
先読み処理は、今後アクセスされるデータ領域を正しく予測できた場合は有効な処理であるが、誤って予測した場合は、アクセスの行われない不必要な領域を読み出すことになり、ファイルアクセスに悪影響を与えてしまう。そのため、今後アクセスが行われるデータ領域を正確に予測することが重要である。
【0004】
先読み処理では、今後アクセスが行われるファイル領域を予測するために、今までに行われたファイルへのアクセスパターンを用いる。それまでに行われたアクセスのパターンがシーケンシャルである場合、その後もシーケンシャルにアクセスが行われる可能性が高いと予測し、先の領域を先読みにより読み出す。逆に、今までに行われたアクセスのパターンがシーケンシャルでない(ランダムである)場合、今後もランダムにアクセスが行われる可能性が高いと予測し、先読みを行わない。
【0005】
【非特許文献1】
ダニエル・P. ボベット(Daniel P. Bovet)、マルコ セサティ(Marco Cesati)著、「詳解Linuxカーネル」、第2版、オライリージャパン、p.569−p575
【0006】
【発明が解決しようとする課題】
前述の通り、先読み処理では今後アクセスされる領域を予測するために、それまでに行われたアクセスパターンを用いる。しかし、クライアントからネットワークを介してアクセスが行われる場合、ネットワークの特性により、ファイルへのアクセスパターンが乱され、有効な先読みを行うことが困難となる。
【0007】
ネットワークを介したファイルアクセスには、よくNFS(Network File System)というプロトコルが使用される。このNFSではクライアントからのひとつの要求が、NFS処理の持つバッファサイズにより8KB等の複数の小容量の要求に分割されて行われる。そして、NFS処理を行うプログラムの実行イメージである非同期スレッド数に応じて、分割された要求が同時に発行される。しかしクライアントからのNFS要求を受け付けるファイルサーバ側の処理では、それらの複数の要求に対する処理間で先読みに関するパラメータを反映する手段がないため、全体として無駄な処理を行ってしまうことがある。
【0008】
また、クライアントからの一つの要求が、複数の連続した小容量の要求に分割されて発行されるため、先読みが大量に動作し、不必要な読み出しを行ってしまうことがある。
【0009】
さらに、ネットワーク経由のアクセスであるため、パケット落ちによる再送等で、要求のファイルサーバへの到着順序が乱れるため、要求によるアクセスのシーケンシャル性が正しく判断できず、必要な先読みを正しく実行できない場合がある。
【0010】
【課題を解決するための手段】
前記のようなネットワークを介したファイルアクセスで起こる、クライアントからのアクセスパターンの乱れに対処するため、本先読み方式では、先読みを行うかどうかを決める先読み量の計算処理において、ファイルシステムの持つキャッシュが、ファイルサーバ上の他の処理により既に利用中であるかをロック状態により調べ、その状態により先読みを抑止する手段を持つ。
【0011】
また、クライアントからのアクセスが何回連続で行われたかというシーケンシャル性を表すパラメータを用い、その値により先読み量の計算方法を変更する手段を持つ。更に、ファイルシステムの持つキャッシュにデータが存在した場合には、その処理によって先読みパラメータの更新を抑止するための手段を持つ。
【0012】
【発明の実施の形態】
以下、本発明による先読み処理方式の実施形態を図面により詳細に説明する。
【0013】
図1は、本発明を実施するシステム構成を示した図である。ネットワーク11を介して、複数のクライアント10がファイルサーバ12に接続される。クライアント10は、ファイルサーバ12に対して、ファイルへの読み出しや書き込みといったファイルへのアクセス要求を、ネットワーク11を介して発行する。ファイルサーバ12に対して要求を行う方法としては、例えばNFSを用いる。クライアント10が発行したNFS要求は、ネットワーク11を介してファイルサーバ12に届けられ、ファイルサーバ12では、NFSを処理するプログラムがCPU15上で動作し、クライアント10からの要求を処理する。そして、その応答をクライアント10に返す。
【0014】
ファイルサーバ12は、情報の送受信を行うためのネットワークインタフェース14、ネットワーク11やファイルシステム、ディスクへの入出力(I/O)等の各種処理を実行するCPU15、CPU15によって実行されるプログラムやファイルシステムで使用するデータを格納するキャッシュが存在するメインメモリ16、ディスクに対してI/O処理を行うためのディスクアダプタ17から構成される。
【0015】
ディスク装置13は、磁気ディスク等の不揮発の媒体で構成され、ファイルのデータ等が記憶される。ファイルサーバ12からディスクアダプタ17を通してデータの読み出しや書き込みのI/O要求を受け取り、ファイルサーバ12のメインメモリ16上にあるキャッシュとの間でデータの交換を行う。
【0016】
クライアント10から読み出し要求が発行された場合、ファイルサーバ12ではその要求に対して先読みを行うかどうかを判定する。先読みが必要な場合読み出し要求をディスク装置13に対して行う。その後、今回の読み出しに対する処理を行って、読み出しデータを応答としてクライアント10に返す。この読み出し要求に伴って、先読み処理が行われる。以下、先読み処理について説明を行う。
【0017】
図2にクライアント10から発行された読み出し要求に対してファイルサーバ12が行う先読み処理について示す。NFS等では、ファイルサーバ12側での処理を容易にするために、クライアント10からの要求毎に処理を完結し、ファイルサーバ12側では、処理間で状態を引き継ぐことは行わない。
【0018】
このため、先読みのように前回のアクセス範囲との関係によってアクセスのシーケンシャル性を判断するような処理の場合、メインメモリ16上に別途必要な状態を格納しておき、処理の開始時にその状態を読み出すことによって、処理間で状態を引き継ぐ必要がある。
【0019】
そのため、クライアント10から発行された読み出し要求を受け取ったファイルサーバ12では、まずステップ21で、そのファイルに対する先読みパラメータを、メインメモリ16上にあるパラメータキャッシュから読み出す。読み出したパラメータには、前回までにファイルに対して行われたアクセス領域およびそれに対して行われた先読み範囲といった情報が格納されている。
【0020】
続くステップ22では、これと今回行われるアクセス領域から、今後のアクセスがシーケンシャルに行われるか判断し、それに応じて先読みを行う先読み量を計算する。
【0021】
次にステップ23で、先読み量に応じてCPU15からはディスクアダプタ17を介してディスクに読み出しの要求を行う。
【0022】
そして、ステップ24で、次回の要求時の処理で先読み量の計算に利用するために、今回の処理によって更新された先読みパラメータを先読みパラメータキャッシュに書き込んで値を更新する。
【0023】
NFS等では、先に示したとおり、先読みに関するパラメータを処理間で引き継ぐために先読みパラメータキャッシュを用いている。このために同時に行われる処理間では、互いの処理による影響が先読みパラメータに反映されない。NFS等のネットワーク11を介したファイルアクセスでは、ネットワーク11によるオーバヘッドを削減するために、複数の要求が同時に発行される。この場合、従来方式では、複数の要求に対する各処理でそれぞれ先読みを行い、ディスクI/Oを発行してしまう。これにより、図4の従来技術45のようにNFS等で発行される8KB等の単位でディスクI/Oが分割され、一括して処理することができない。
【0024】
そこで本発明の先読み量の計算処理では、先読み処理のステップ22の先読み量の計算で、キャッシュの状態による判定を行う。ステップ22内の詳細な処理内容を図3に示す。
【0025】
ステップ31で、アクセスを行おうとする領域に対するメインメモリ16上のキャッシュの状態をチェックし、他の処理により既にキャッシュがロックされている場合は、同時に処理中の他の要求により先読み処理が行われたとみなし、先読みを行わないようにする。
【0026】
そして、ステップ39で先読みパラメータ更新の抑止設定をし、先読み処理フローのステップ24で、本処理による先読みパラメータの更新を行わないようにする。これは、他の処理で先読みが行われ、先読みパラメータが更新されていた場合に、それを本処理のパラメータで上書きして無効にしてしまわないためである。これにより、図4の本発明46のように一括して先読みを行うことが可能となる。
【0027】
また、先読み処理では、同一ファイルに対する読み出し要求のアクセスパターンにより、アクセスのシーケンシャル性を判定している。アクセス範囲が前回の範囲と連続する場合、シーケンシャル性ありと判断する。NFS等のようにネットワーク11を介してアクセスを行う場合、ネットワーク処理のためのバッファのサイズ等の理由により、一回の読み出しを、容量の小さい複数の要求に分割する場合がある。この場合、従来処理では、分割された複数の要求により、シーケンシャル性ありと判断し、大量の先読みを行ってしまう。そして、その後この領域にアクセスが行われず、結果的に先読みが無駄になってしまうことがある。
【0028】
これを防ぐため、本発明の先読み量の計算処理では、アクセスのシーケンシャル性を示すパラメータ(f_seq)を用いる。f_seqでシーケンシャルに行われた読み出し回数(先読みを行った回数)をカウントする。そして閾値を設け、f_seqが閾値以下の場合はランダム向けに小容量の先読みを行い、閾値を超えた場合はシーケンシャル向けに大量の先読みを行う。
【0029】
図3のステップ32で、今回のアクセスを行う領域と、先読みパラメータから得る前回のアクセス領域を比較し、アクセスがシーケンシャル性ありと判断された場合、ステップ33に進み先読み量の計算を行う。シーケンシャル性なしと判断された場合は、ステップ37に進み、ステップ40で、先読み量はゼロとなり、先読みは行われない。ここでシーケンシャル性ありと判断するのは、例えば前回のアクセス範囲の次の領域の領域にアクセスを行う場合である。また、前回の領域に対してある一定の範囲、例えば16KB以内の離れた先の領域であっても良い。
【0030】
ステップ34では、f_seqをあらかじめ設定されている閾値と比較を行い、閾値以下の場合は、ステップ35に進み、ランダム向けの先読み量の計算を行う。閾値より大きい場合には、ステップ34に進み、シーケンシャル向けの先読み量の計算を行う。
【0031】
ステップ35の、ランダム向けの先読みでは、大量の先読みによる無駄な読み出しを減らし、必要と思われる読み出しをある程度一括して行うことが重要である。これにより、ディスクI/Oの発行数を減少させ、I/O発行のためのCPU15負荷とディスクの負荷を低減させる。このために、例えば32KBといった一定量の先読み量を設定する。また、次の先読みは、既に先読みを行った範囲の先にアクセスされた場合に行うようにするため、アクセスされた領域が既に先読みを行った範囲である場合には先読み量をゼロとする。
【0032】
ステップ34の、シーケンシャル向けの先読みでは、例えば先読み量を最大256KB程度まで、前回の先読み量の倍に設定する。次の先読みは、既に行った先読み範囲の後半部分にアクセスされた場合に行うように、アクセスされた領域が既に先読みを行った範囲の前半部分である場合には先読み量をゼロとする。このように、シーケンシャルにアクセスを行う毎に大量の先読みを行うようにすることで、実際にファイルにアクセス要求が行われた時には常にデータがキャッシュ上に存在するようにし、クライアント10への応答を高速にすることができる。
【0033】
NFS等のネットワークを介したファイルアクセスでは、クライアント10からシーケンシャルにアクセスをしている場合でも、図5の51、52のアクセスようにネットワーク11でのパケット落ちによる再送等で連続でない領域(以前に読み出した領域)にアクセスされる場合がある。これにより、従来の先読み処理では、シーケンシャルアクセスでないと判断してしまう。
【0034】
これに対処するために、本発明ではアクセス範囲が前回の範囲に対して連続でない場合でも、その領域がキャッシュヒットした場合には、先読みパラメータの更新処理で、先読みパラメータキャッシュへのパラメータの更新を行わないようにする。つまり、この場合は、シーケンシャルアクセスで読み出した領域に再送によるアクセスが行われたものとみなし、先読み処理がその影響を受けないようにする。
【0035】
図3のステップ32で、シーケンシャル性なしと判断された場合は、ステップ37に進む。ここでアクセス領域のキャッシュの状態を判定し、ヒットした場合は、ステップ39に進み先読みパラメータのクリアは行わない。ヒットしなかった場合は、ステップ38に進み、先読みパラメータおよびf_seqをクリアする。
【0036】
このように、ファイルシステムのキャッシュの使用状態により先読みを抑止する手段と、パラメータにより先読み量の計算方式を変更する手段と、キャッシュ上にデータが存在するかの状態により先読みのためのパラメータの引継ぎを抑止するための手段をファイルサーバ上に持つことにより、ネットワークを介したファイルアクセスで起こる、クライアントからのアクセスパターンの乱れに対処して、ファイルサーバで有効な先読みを行うことを可能とする。
【0037】
【発明の効果】
本発明によれば、ネットワークを介したファイルアクセスで起こる、クライアントからのアクセスパターンの乱れに対処して、ファイルサーバで有効な先読みを行うことができる。
【図面の簡単な説明】
【図1】本発明の実施形態の一例を示すシステム構成図である。
【図2】本発明で行う先読み処理の一例を示すフローチャートである。
【図3】本発明で行う先読み量の計算処理の一例を示すフローチャートである。
【図4】先読み処理のアクセス範囲の一例を示す図である。
【図5】ネットワークを介したファイルアクセスで行われるアクセス範囲の一例を示す図である。
【符号の説明】
10…クライアント
11…ネットワーク
12…ファイルサーバ
13…ディスク装置
14…ネットワークインタフェース
15…CPU
16…メインメモリ
17…ディスクアダプタ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a prefetch processing method in a file system, which is a process for managing files. In particular, the present invention relates to a prefetching method in a network file server that is accessed from a client via a network.
[0002]
[Prior art]
In a file system that manages files, prefetch processing is performed in order to speed up file reading processing. The prefetch process is a process of predicting a data area to be accessed in the future and reading the data in advance in a cache that the file system has on the main memory. The prefetch process can improve the cache hit rate and improve the read response time. Further, since I / O to the disk is performed in a lump, the load on both the CPU and the disk can be reduced. The file prefetching technique is disclosed in Non-Patent Document 1.
[0003]
The read-ahead process is effective when the data area to be accessed in the future can be correctly predicted, but if it is predicted incorrectly, an unnecessary area that is not accessed is read, which adversely affects file access. Will be given. Therefore, it is important to accurately predict the data area to be accessed in the future.
[0004]
In the prefetch process, in order to predict a file area to be accessed in the future, an access pattern to a file that has been performed so far is used. If the pattern of access performed so far is sequential, it is predicted that there is a high possibility of subsequent sequential access, and the previous area is read by prefetching. On the other hand, if the pattern of access performed so far is not sequential (random), it is predicted that there is a high possibility of random access in the future, and prefetching is not performed.
[0005]
[Non-Patent Document 1]
Daniel P. Bobet (Daniel P. Bovet), Marco Cesati, "Detailed Linux kernel", 2nd edition, O'Reilly Japan, p. 569-p575
[0006]
[Problems to be solved by the invention]
As described above, in the prefetching process, in order to predict an area to be accessed in the future, the access pattern performed so far is used. However, when access is performed from the client via the network, the access pattern to the file is disturbed due to the characteristics of the network, and it becomes difficult to perform effective prefetching.
[0007]
For file access via a network, a protocol called NFS (Network File System) is often used. In this NFS, a single request from a client is divided into a plurality of small-capacity requests such as 8 KB depending on the buffer size of the NFS processing. Then, the divided requests are issued simultaneously according to the number of asynchronous threads that is an execution image of the program that performs the NFS processing. However, in the process on the file server side that receives the NFS request from the client, there is no means for reflecting the parameters related to the prefetching between the processes for the plurality of requests, and therefore the process may be performed as a whole.
[0008]
In addition, since one request from the client is divided into a plurality of continuous small-capacity requests and issued, prefetching operates in large quantities, and unnecessary reading may be performed.
[0009]
In addition, because the access is via the network, the order of arrival of the requests to the file server is disturbed due to retransmission due to dropped packets, etc., so the sequential nature of the access due to the request cannot be correctly judged and the necessary prefetching may not be executed correctly. is there.
[0010]
[Means for Solving the Problems]
In order to cope with the disturbance of the access pattern from the client that occurs in the file access through the network as described above, in this prefetching method, the cache of the file system is used in the prefetching amount calculation process for determining whether to perform the prefetching. It has means for checking whether the file server is already being used by another process on the file server based on the lock state, and suppressing prefetching based on the state.
[0011]
In addition, there is a means for changing the method of calculating the prefetching amount by using a parameter indicating the sequentiality of how many times the access from the client has been performed continuously. Furthermore, when data exists in the cache of the file system, there is a means for suppressing update of the prefetch parameter by the processing.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the prefetch processing method according to the present invention will be described below in detail with reference to the drawings.
[0013]
FIG. 1 is a diagram showing a system configuration for implementing the present invention. A plurality of clients 10 are connected to the file server 12 via the network 11. The client 10 issues a file access request such as reading and writing to the file to the file server 12 via the network 11. For example, NFS is used as a method for making a request to the file server 12. The NFS request issued by the client 10 is delivered to the file server 12 via the network 11, and a program for processing the NFS operates on the CPU 15 in the file server 12 to process the request from the client 10. Then, the response is returned to the client 10.
[0014]
The file server 12 includes a network interface 14 for transmitting and receiving information, a network 11 and a file system, a CPU 15 for executing various processes such as input / output (I / O) to a disk, a program executed by the CPU 15 and a file system. The main memory 16 in which a cache for storing data used in the disk exists, and the disk adapter 17 for performing I / O processing on the disk.
[0015]
The disk device 13 is composed of a non-volatile medium such as a magnetic disk, and stores file data and the like. Data read / write I / O requests are received from the file server 12 through the disk adapter 17, and data is exchanged with the cache on the main memory 16 of the file server 12.
[0016]
When a read request is issued from the client 10, the file server 12 determines whether or not prefetching is performed for the request. When pre-reading is necessary, a read request is sent to the disk device 13. Thereafter, processing for the current reading is performed, and the read data is returned to the client 10 as a response. A prefetch process is performed in accordance with this read request. Hereinafter, the prefetch process will be described.
[0017]
FIG. 2 shows prefetch processing performed by the file server 12 in response to a read request issued from the client 10. In NFS or the like, in order to facilitate processing on the file server 12 side, the processing is completed for each request from the client 10, and the file server 12 does not take over the state between the processing.
[0018]
For this reason, in the case of processing for judging the sequentiality of access based on the relationship with the previous access range, such as prefetching, a separately required state is stored in the main memory 16 and the state is stored at the start of processing. It is necessary to take over the state between processes by reading.
[0019]
Therefore, the file server 12 that has received the read request issued from the client 10 first reads the prefetch parameters for the file from the parameter cache in the main memory 16 in step 21. The read parameter stores information such as an access area that has been performed on the file so far and a prefetch range that has been performed on the file.
[0020]
In the subsequent step 22, it is determined whether or not future access is performed sequentially from this and the access area to be performed this time, and the prefetching amount for prefetching is calculated accordingly.
[0021]
Next, in step 23, the CPU 15 issues a read request to the disk via the disk adapter 17 in accordance with the pre-read amount.
[0022]
Then, in step 24, the prefetch parameter updated by the current process is written in the prefetch parameter cache to be used for calculation of the prefetch amount in the next request process, and the value is updated.
[0023]
In NFS or the like, as previously described, a prefetch parameter cache is used to take over parameters relating to prefetching between processes. For this reason, the influence of each other process is not reflected in the prefetch parameter between processes performed simultaneously. In file access via the network 11 such as NFS, a plurality of requests are issued simultaneously in order to reduce the overhead caused by the network 11. In this case, in the conventional method, prefetching is performed in each process for a plurality of requests, and a disk I / O is issued. As a result, the disk I / O is divided in units of 8 KB or the like issued by NFS or the like as in the prior art 45 of FIG. 4 and cannot be processed in a batch.
[0024]
Therefore, in the prefetching amount calculation processing of the present invention, the determination based on the cache state is performed in the prefetching amount calculation in step 22 of the prefetching processing. The detailed processing content in step 22 is shown in FIG.
[0025]
In step 31, the state of the cache on the main memory 16 for the area to be accessed is checked. If the cache is already locked by another process, the prefetch process is performed at the same time by another request being processed. Do not look ahead.
[0026]
In step 39, prefetch parameter update suppression is set, and in step 24 of the prefetch process flow, the prefetch parameter is not updated by this process. This is because when prefetching is performed in another process and the prefetch parameter is updated, it is not overwritten with the parameter of this process and invalidated. As a result, prefetching can be performed collectively as in the present invention 46 of FIG.
[0027]
In the prefetch process, the sequentiality of access is determined based on the access pattern of the read request for the same file. If the access range is continuous with the previous range, it is determined that there is sequentiality. When accessing via the network 11 such as NFS, there is a case where a single read is divided into a plurality of requests having a small capacity for reasons such as the size of a buffer for network processing. In this case, in the conventional process, it is determined that there is sequentiality due to a plurality of divided requests, and a large amount of prefetching is performed. Thereafter, this area is not accessed, and prefetching may be wasted as a result.
[0028]
In order to prevent this, the prefetching amount calculation process of the present invention uses a parameter (f_seq) indicating the sequentiality of access. The number of times of sequential reading (number of times of prefetching) is counted with f_seq. Then, a threshold is provided, and when f_seq is equal to or less than the threshold, a small amount of prefetching is performed for random, and when the threshold is exceeded, a large amount of prefetching is performed for sequential.
[0029]
In step 32 of FIG. 3, the area to be accessed this time is compared with the previous access area obtained from the prefetch parameter, and if it is determined that the access has sequential nature, the process proceeds to step 33 to calculate the prefetch amount. If it is determined that there is no sequentiality, the process proceeds to step 37, and in step 40, the prefetching amount becomes zero and prefetching is not performed. Here, it is determined that there is sequentiality, for example, when an area next to the previous access range is accessed. Further, it may be a certain range with respect to the previous region, for example, a region far away within 16 KB.
[0030]
In step 34, f_seq is compared with a preset threshold value, and if it is equal to or less than the threshold value, the process proceeds to step 35 to calculate a random prefetching amount. If it is larger than the threshold value, the process proceeds to step 34, and the sequential prefetching amount is calculated.
[0031]
In the random prefetching in step 35, it is important to reduce useless reading due to a large amount of prefetching and to perform reading that seems to be necessary to some extent at a time. As a result, the number of issued disk I / Os is reduced, and the CPU 15 load and disk load for I / O issuance are reduced. For this purpose, a predetermined amount of prefetching such as 32 KB is set. Further, the next prefetching is performed when the prefetched range is accessed, so that the prefetching amount is set to zero when the accessed area is the prefetched range.
[0032]
In the sequential prefetching in step 34, for example, the prefetching amount is set to a maximum of about 256 KB, which is double the previous prefetching amount. As in the case where the second half of the prefetch range that has already been accessed is accessed, the next prefetch is set to zero when the accessed area is the first half of the prefetched range. In this way, by performing a large amount of prefetching every time a sequential access is made, data is always present in the cache whenever an access request is actually made to the file, and a response to the client 10 is sent. It can be fast.
[0033]
In a file access via a network such as NFS, even if the client 10 is accessing sequentially, a non-consecutive area (previously due to retransmission due to a packet drop in the network 11 like the access 51 and 52 in FIG. The read area may be accessed. As a result, the conventional prefetching process determines that the access is not sequential.
[0034]
In order to deal with this, in the present invention, even when the access range is not continuous with respect to the previous range, if the area hits the cache, the prefetch parameter update process updates the parameters to the prefetch parameter cache. Do not do it. In other words, in this case, it is assumed that an area read by sequential access has been accessed by retransmission, and the prefetching process is not affected by this.
[0035]
If it is determined in step 32 in FIG. 3 that there is no sequentiality, the process proceeds to step 37. Here, the state of the cache in the access area is determined. If there is a hit, the process proceeds to step 39 and the prefetch parameter is not cleared. If not hit, the process proceeds to step 38, and the prefetch parameter and f_seq are cleared.
[0036]
In this way, means for suppressing prefetching depending on the usage status of the file system cache, means for changing the prefetching amount calculation method using parameters, and taking over parameters for prefetching depending on whether data exists in the cache By providing the file server with a means for inhibiting the file server, it is possible to cope with the disturbance of the access pattern from the client that occurs in the file access via the network, and to perform effective prefetching in the file server.
[0037]
【The invention's effect】
According to the present invention, effective read-ahead can be performed in a file server in response to disturbance of an access pattern from a client that occurs in file access via a network.
[Brief description of the drawings]
FIG. 1 is a system configuration diagram showing an example of an embodiment of the present invention.
FIG. 2 is a flowchart showing an example of prefetch processing performed in the present invention.
FIG. 3 is a flowchart showing an example of prefetching amount calculation processing performed in the present invention.
FIG. 4 is a diagram illustrating an example of an access range for prefetch processing;
FIG. 5 is a diagram illustrating an example of an access range performed by file access via a network.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Client 11 ... Network 12 ... File server 13 ... Disk apparatus 14 ... Network interface 15 ... CPU
16 ... Main memory 17 ... Disk adapter

Claims (3)

ネットワークを介してクライアントからファイルに対するアクセス要求を受け付けるファイルサーバにおいて、ファイルの読み出し要求時に、今後アクセスが行われるファイル領域を予測し、予測した領域を前もってキャッシュ上に読み出す先読み処理を有し、先読み処理ではファイルシステムのキャッシュの使用状態により先読みを抑止する手段を有することを特徴とするファイルサーバ。A file server that accepts an access request for a file from a client via a network has a prefetch process that predicts a file area to be accessed in the future when a file read request is made, and reads the predicted area into the cache in advance. A file server comprising means for suppressing prefetching according to a usage state of a file system cache. ネットワークを介してクライアントからファイルに対するアクセス要求を受け付けるファイルサーバにおいて、ファイルの読み出し要求時に、今後アクセスが行われるファイル領域を予測し、予測した領域を前もってキャッシュ上に読み出す先読み処理を有し、先読み処理ではパラメータにより先読み量の計算方式を変更する手段を有するファイルサーバ。A file server that accepts an access request for a file from a client via a network has a prefetch process that predicts a file area to be accessed in the future when a file read request is made, and reads the predicted area into the cache in advance. Then, a file server having means for changing the prefetching amount calculation method according to parameters. ネットワークを介してクライアントからファイルに対するアクセス要求を受け付けるファイルサーバにおいて、ファイルの読み出し要求時に、今後アクセスが行われるファイル領域を予測し、予測した領域を前もってキャッシュ上に読み出す先読み処理を有し、先読み処理ではキャッシュ上にデータが存在するかの状態により先読みのためのパラメータの引継ぎを抑止するための手段を有するファイルサーバ。A file server that accepts an access request for a file from a client via a network has a prefetch process that predicts a file area to be accessed in the future when a file read request is made, and reads the predicted area into the cache in advance. Then, a file server having means for suppressing inheritance of parameters for prefetching depending on whether data exists in the cache.
JP2003194012A 2003-07-09 2003-07-09 Lookahead processing in network file server Pending JP2005031829A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003194012A JP2005031829A (en) 2003-07-09 2003-07-09 Lookahead processing in network file server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003194012A JP2005031829A (en) 2003-07-09 2003-07-09 Lookahead processing in network file server

Publications (1)

Publication Number Publication Date
JP2005031829A true JP2005031829A (en) 2005-02-03

Family

ID=34205286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003194012A Pending JP2005031829A (en) 2003-07-09 2003-07-09 Lookahead processing in network file server

Country Status (1)

Country Link
JP (1) JP2005031829A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015575A (en) * 2006-07-03 2008-01-24 Hitachi Ltd Information processor
JP2019022170A (en) * 2017-07-21 2019-02-07 パナソニックIpマネジメント株式会社 Communication module and communication method
US10964604B2 (en) 2017-03-01 2021-03-30 Sony Semiconductor Solutions Corporation Magnetic storage element, magnetic storage device, electronic device, and method of manufacturing magnetic storage element

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015575A (en) * 2006-07-03 2008-01-24 Hitachi Ltd Information processor
US8732594B2 (en) 2006-07-03 2014-05-20 Hitachi Consumer Electronics Co., Ltd. Information processing device
US10964604B2 (en) 2017-03-01 2021-03-30 Sony Semiconductor Solutions Corporation Magnetic storage element, magnetic storage device, electronic device, and method of manufacturing magnetic storage element
JP2019022170A (en) * 2017-07-21 2019-02-07 パナソニックIpマネジメント株式会社 Communication module and communication method

Similar Documents

Publication Publication Date Title
US6092149A (en) Disk drive cache system using a dynamic priority sequential stream of data segments continuously adapted according to prefetched sequential random, and repeating types of accesses
JP4067887B2 (en) Arithmetic processing device for performing prefetch, information processing device and control method thereof
US11099997B2 (en) Data prefetching method and apparatus, and storage device
US9336152B1 (en) Method and system for determining FIFO cache size
CN108920387B (en) Method and device for reducing read delay, computer equipment and storage medium
US7809883B1 (en) Cached reads for a storage system
US8307164B2 (en) Automatic determination of read-ahead amount
EP1769364B1 (en) Information processing apparatus and information processing method
US8874840B2 (en) Adaptive prestaging in a storage controller
CN107430551B (en) Data caching method, storage control device and storage equipment
US7246203B2 (en) Queuing cache for vectors with elements in predictable order
US20130086307A1 (en) Information processing apparatus, hybrid storage apparatus, and cache method
CN102999444A (en) Method and device for replacing data in caching module
US6317818B1 (en) Pre-fetching of pages prior to a hard page fault sequence
EP3115904B1 (en) Method for managing a distributed cache
US8667223B2 (en) Shadow registers for least recently used data in cache
US20070079070A1 (en) Cache controller
JP2001331793A (en) Image processor and cache memory
US9342472B2 (en) PRD (physical region descriptor) pre-fetch methods for DMA (direct memory access) units
JP2005031829A (en) Lookahead processing in network file server
US10997077B2 (en) Increasing the lookahead amount for prefetching
US9026693B2 (en) Method for filtering cached input/output data based on data generation/consumption
US9384135B2 (en) System and method of caching hinted data
KR102692838B1 (en) Enhanced read-ahead capability for storage devices
CN115827507A (en) Data prefetching method and device, electronic equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050627