JP2012053668A - File management program, file management method and file management device - Google Patents
File management program, file management method and file management device Download PDFInfo
- Publication number
- JP2012053668A JP2012053668A JP2010195803A JP2010195803A JP2012053668A JP 2012053668 A JP2012053668 A JP 2012053668A JP 2010195803 A JP2010195803 A JP 2010195803A JP 2010195803 A JP2010195803 A JP 2010195803A JP 2012053668 A JP2012053668 A JP 2012053668A
- Authority
- JP
- Japan
- Prior art keywords
- file
- thread
- request
- identification information
- processing
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は,ネットワークファイルシステムにおいて,他装置がネットワークを介してアクセスするファイルを管理するファイル管理プログラム,ファイル管理方法およびファイル管理装置に関するものである。 The present invention relates to a file management program, a file management method, and a file management apparatus for managing files that other apparatuses access via a network in a network file system.
ネットワークファイルシステムは,離れた場所にあるコンピュータのファイルを,あたかも自コンピュータのローカルにあるファイルのように利用することが可能となるファイルシステムである。ここでは,他のコンピュータにあるファイルにアクセスするコンピュータをクライアント,クライアントがアクセスするファイルを管理するコンピュータをファイルサーバと呼ぶものとする。 The network file system is a file system that makes it possible to use a file on a remote computer as if it were a local file on the local computer. Here, a computer that accesses a file in another computer is called a client, and a computer that manages a file accessed by the client is called a file server.
なお,マルチプロセッサ構成の装置において,プロセッサ間通信でスレッドの識別子を伝達することで,各プロセッサに一貫した処理を実現させ,処理に必要とする情報の伝達し直しなどを防ぐことを可能とする技術が知られている。また,クライアントからのリクエストをマルチスレッドで処理するファイルサーバの技術が知られている。 In a multiprocessor configuration device, by transmitting thread identifiers through inter-processor communication, it is possible to achieve consistent processing for each processor and prevent re-transmission of information required for processing. Technology is known. In addition, a file server technique for processing a request from a client with multithread is known.
ネットワークファイルシステムにおいて,マルチスレッドで処理を行うファイルサーバでは,クライアントからのリクエストに対する処理がスレッドの1つに割り振られる。クライアントからのリクエストを処理するスレッドは,ファイルサーバのローカルファイルシステムにより,ディスクへのアクセスを行う。 In a file server that performs multithread processing in a network file system, processing for a request from a client is allocated to one of the threads. The thread that processes the request from the client accesses the disk by the local file system of the file server.
クライアントにおいて,書き込むデータのサイズが大きい場合などには,ファイルの書き込みリクエストが,複数のリクエストに分割され,ファイルサーバに送信される。ファイルサーバでは,同じクライアントから受信した同じファイルについての複数のファイル書き込みリクエストは,複数のスレッド間で割り振られる。処理が割り振られた各スレッドは,ローカルファイルシステムへの書き込み処理を行う。このとき,ディスクでは,フラグメントが発生する可能性がある。フラグメントは,ディスクなどの記憶装置上でファイルが断片化することである。 In the client, when the size of data to be written is large, the file write request is divided into a plurality of requests and transmitted to the file server. In the file server, multiple file write requests for the same file received from the same client are allocated among multiple threads. Each thread to which processing is allocated performs write processing to the local file system. At this time, fragmentation may occur on the disk. Fragment is the fragmentation of a file on a storage device such as a disk.
ファイルサーバにおいて,同一ファイルに対する書き込み処理を行うスレッドは,ロックを取得する必要がある。ロックを取得したスレッドは,ローカルファイルシステムへのファイルの書き込み処理を行う。ロックが取得できなかった他のスレッドは,ロックを取得したスレッドのファイル書き込み処理の終了を待つことになる。ロックを取得したスレッドによるファイル書き込み処理が終了すると,待ち状態であったスレッドが,ロックの取得を行う。 In a file server, a thread that performs a write process on the same file needs to acquire a lock. The thread that acquired the lock performs the process of writing the file to the local file system. Other threads that could not acquire the lock will wait for the file writing process of the thread that acquired the lock to end. When the file writing process by the thread that acquired the lock is completed, the thread that has been waiting acquires the lock.
このとき,必ずしも分割された書き込みリクエストがクライアントから送信された順に,リクエストの処理を行うスレッドが,ロックを取得できるとは限らない。そのため,同一のファイルに対する複数の書き込みリクエストが,順不同で処理が行われ,フラグメントが起こってしまう可能性がある。フラグメントが起こると,そのファイルの読み込みの際に,ディスク上の領域から連続して読み込みを行うことができず,ディスクシークが発生してファイルの読み込み性能が低下する。 At this time, the thread that processes the requests in the order in which the divided write requests are transmitted from the client may not always acquire the lock. Therefore, multiple write requests for the same file may be processed out of order and fragmentation may occur. When a fragment occurs, the file cannot be read continuously from the area on the disk when the file is read, and a disk seek occurs and the file reading performance deteriorates.
開示する技術の一側面は,上記の問題の解決を図り,ネットワークファイルシステムにおいて,フラグメントの発生を抑制する技術を提供することを目的とする。 One aspect of the disclosed technology aims to solve the above problems and provide a technology for suppressing the occurrence of fragments in a network file system.
開示するプログラムは,他装置がネットワークを介してアクセスするファイルを管理するコンピュータを,次のように機能させる。 The disclosed program causes a computer that manages files that other devices access via a network to function as follows.
すなわち,プログラムは,プログラムがインストールされて実行される,スレッドとファイルの識別情報とが対応する判定情報を記憶する記憶部を備えるコンピュータに,他装置からのファイル書き込みリクエストを受け付ける手順と,記憶部から読み出した判定情報に,ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがある場合,ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドを,ファイル書き込みリクエストの処理を行うスレッドとする手順と,判定情報に,ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがない場合,判定情報において対応付けされていないスレッドをファイル書き込みリクエストの処理を行うスレッドとする手順と,処理を行うスレッドとファイル書き込みリクエストに含まれるファイルの識別情報との対応を,判定情報に記録する手順とを実行させる。 In other words, the program is installed and executed, and the computer includes a storage unit that stores determination information corresponding to the thread and file identification information. If there is a thread corresponding to the file identification information included in the file write request in the determination information read from the file, the thread corresponding to the file identification information included in the file write request is designated as a thread that processes the file write request. And if there is no thread corresponding to the identification information of the file included in the file write request in the determination information, a thread that is not associated in the determination information is set as a thread for processing the file write request, The correspondence between the identification information of the file included in the thread and the file write request for performing management, to execute a step of recording the determination information.
開示する技術によって,ネットワークファイルシステムにおけるフラグメントの発生を抑制することが可能となる。これにより,ネットワークファイルシステムにおけるファイル読み込み性能の低下を防止することが可能となる。 With the disclosed technology, it is possible to suppress the occurrence of fragments in the network file system. As a result, it is possible to prevent a decrease in file reading performance in the network file system.
以下,本実施の形態について,図を用いて説明する。 Hereinafter, the present embodiment will be described with reference to the drawings.
図1は,既存のネットワークファイルシステムの例を説明する図である。 FIG. 1 is a diagram for explaining an example of an existing network file system.
ネットワークファイルシステムでは,他の装置上にあるファイルを,あたかも自装置のローカルにあるファイルのように利用することが可能となる。代表的なネットワークファイルシステムとしては,サン・マイクロシステムズ社のNFS(Network File System )がある。NFSは,米国でのサン・マイクロシステムズ社の商標である。 In the network file system, files on other devices can be used as if they were local to the device. A typical network file system is NFS (Network File System) of Sun Microsystems. NFS is a trademark of Sun Microsystems, Inc. in the United States.
図1に示すネットワークファイルシステムは,既存の一般的なクライアント・サーバ型のネットワークファイルシステムの一例である。図1に示すネットワークファイルシステムにおいて,NFSサーバ510は,他装置がアクセスするファイルを管理する装置である。NFSサーバ510は,上述のファイルサーバに相当する。クライアント520は,NFSサーバ510が管理するファイルを利用する装置である。クライアント520は,インターネットやLAN(Local Area Network)等のネットワーク530を介して,NFSサーバ510上のファイルにアクセスする。
The network file system shown in FIG. 1 is an example of an existing general client / server type network file system. In the network file system shown in FIG. 1, an NFS
図1を用いて,クライアント520がNFSサーバ510にファイルの書き込みを行う例を説明する。
An example in which the
クライアント520は,NFSサーバ510に対して,ファイル書き込みのためのファイル書き込みリクエストを送信する。このとき,書き込むデータのサイズやネットワークファイルシステムの設定によって,同一ファイルに対する書き込みリクエストが複数のリクエストに分割されて送信される場合がある。ここでは,図1に示すように,クライアント520において,同一のファイルについての書き込みリクエストが,書き込むデータの先頭から順にリクエスト#1,リクエスト#2,リクエスト#3の3つのリクエストに分けられて,NFSサーバ510に送信されるものとする。
The
NFSサーバ510は,クライアント520からのリクエストを受信する。NFSサーバ510において,処理スレッド割り振り部511は,NFSサーバ510が受信したリクエストの処理を,idle状態にあるいずれかのスレッド512に割り振る。NFSサーバ510には,複数のスレッド512(a,b,c,... )が存在している。それぞれのスレッドは,処理スレッド割り振り部511により割り振られたリクエストに対する処理を行う。処理を終えたスレッドは,idle状態となり,次の処理の割り振りを待つ。
The NFS
図1に示す例では,クライアント520から送信された3つのファイル書き込みのリクエストが,ネットワーク530を介してNFSサーバ510に受信される。NFSサーバ510において,処理スレッド割り振り部511は,順次受信される3つのファイル書き込みのリクエストの処理を,それぞれidle状態のスレッドに割り振る。ここでは,リクエスト#1の処理がスレッド(th0 )512aに,リクエスト#2の処理がスレッド(th1 )512bに,リクエスト#3の処理がスレッド(th2 )512cに,それぞれ割り振られる。なお,各スレッド512の括弧書きは,それぞれのスレッドの識別情報を示している。
In the example illustrated in FIG. 1, three file write requests transmitted from the
スレッド512は,受信したリクエストの処理が割り振られると,そのリクエストの解釈を行い,リクエストにより依頼された処理を実行する。 When the processing of the received request is allocated, the thread 512 interprets the request and executes the processing requested by the request.
ファイル書き込みのリクエストの処理が割り当てられたスレッド512は,ローカルファイルシステム513へのファイル書き込みを行う。このとき,分割された同一ファイルの書き込み処理を行うスレッド512は,ロックを取得する必要がある。ロックを取得したスレッド512は,ローカルファイルシステム513へのファイルの書き込み処理を行う。ロックが取得できなかった他のスレッド512は,ロックを取得したスレッド512のファイル書き込み処理の終了を待つことになる。ロックを取得したスレッド512によるファイル書き込み処理が終了すると,ロック取得待ち状態であったスレッド512が,ロックの取得を行う。
The thread 512 to which file write request processing is assigned performs file write to the
ローカルファイルシステム513は,NFSサーバ510のOSにおけるファイル制御機構である。ローカルファイルシステム513は,ファイルデータのディスク上の配置先である論理ブロック番号の割り当てを行う。論理ブロック番号は,ディスク上のアドレスを示す情報である。このとき,ローカルファイルシステム513は,同じファイルに対する書き込みの場合に,最後に割り当てた論理ブロック番号にできるだけ近い論理ブロック番号を割り当てようとする。なお,図1に示すネットワークファイルシステムにおいて,ファイル記憶装置514は,ファイルが書き込まれるディスクである。
The
図1に示すネットワークファイルシステムにおいて,分割された同じファイルの書き込みリクエストに対する処理が割り振られたth0 ,th1 ,th2 のスレッド512は,それぞれロックの取得を試みる。 In the network file system shown in FIG. 1, th 0 , th 1 , and th 2 threads 512 to which processing for a divided write request for the same file is allocated respectively attempt to acquire a lock.
図2は,フラグメント発生の例を説明する図である。 FIG. 2 is a diagram illustrating an example of fragment generation.
図2に示す例は,図1に示すネットワークファイルシステムの例において,ファイル記憶装置514のディスクにフラグメントが発生する例である。
The example shown in FIG. 2 is an example in which a fragment is generated on the disk of the
図2に示すように,最初にリクエスト#1の処理を行うスレッド(th0 )512aがロックを取得し,ローカルファイルシステム513へのファイル書き込み処理を行うものとする。このとき,リクエスト#2の処理を行うスレッド(th1 )512bと,リクエスト#3の処理を行うスレッド(th2 )512cとは,スレッド(th0 )512aによる書き込み処理が終わるまで待つことになる。
As shown in FIG. 2, it is assumed that the thread (th 0 ) 512a that first processes the
ローカルファイルシステム513は,スレッド(th0 )512aが処理するリクエスト#1のファイルデータに,論理ブロック番号12345を割り当てる。スレッド(th0 )512aの処理が終わると,ロック取得待ち状態のスレッド512がロックを取得して処理を行うことになる。
The
このとき,必ずしもリクエスト#2の処理を行うスレッド(th1 )512bが次のロックを取得するとは限らない。ここでは,図2に示すように,リクエスト#3の処理を行うスレッド(th2 )512cの方が先にロックを取得したものとする。
At this time, the thread (th 1 ) 512b that performs the processing of the
スレッド(th2 )512cが処理するリクエスト#3のファイルデータは,先のリクエスト#1のファイルデータと同じファイルから分割されたものである。ローカルファイルシステム513は,スレッド(th2 )512cが処理するリクエスト#3のファイルデータに,先のリクエスト#1処理時の論理ブロック番号12345と連続する論理ブロック番号12346を割り当てる。
The file data of the
スレッド(th2 )512cの処理が終わると,最後にロック取得待ち状態のスレッド(th1 )512bがロックを取得して処理を行う。スレッド(th1 )512bが処理するリクエスト#2のファイルデータは,先のリクエスト#3のファイルデータと同じファイルから分割されたものである。ローカルファイルシステム513は,スレッド(th1 )512bが処理するリクエスト#2のファイルデータに,先のリクエスト#3処理時の論理ブロック番号12346と連続する論理ブロック番号12347を割り当てる。
When the processing of the thread (th 2 ) 512c is completed, the thread (th 1 ) 512b in the lock acquisition waiting state finally acquires the lock and performs processing. The file data of the
この結果,図1,図2に示すように,ファイル記憶装置514において,論理ブロック番号12345〜12347の連続するディスク領域上に,リクエスト#1→リクエスト#3→リクエスト#2の順にファイルデータが書き込まれる。ファイルにおける実際のデータの順序は,リクエスト#1→リクエスト#2→リクエスト#3の順であるので,ディスク上ではフラグメントが起こっている。
As a result, as shown in FIGS. 1 and 2, in the
このファイルの読み込みが行われる際には,論理ブロック番号12345→12347→12346の順にデータの読み込みが行われる。すなわち,連続した読み込みが行われないので,ディスクシークが発生し,ファイルの読み込み性能が低下する。
When this file is read, the data is read in the order of
このような問題は,ネットワーク530として,IPoIB(QDR)(Internet Protocol over InfiniBand (Quad Data Rate))などの広帯域ネットワークを利用した場合に特に顕著となる。InfiniBandは,InfiniBand Trade Associationの登録商標である。
Such a problem becomes particularly noticeable when a broadband network such as IPoIB (QDR) (Internet Protocol over InfiniBand (Quad Data Rate)) is used as the
ネットワーク530として広帯域なIPoIB(QDR)などが用いられた場合,ネットワーク530としてGbE(Gigabit Ethernet)などが用いられた場合と比較して,NFSサーバ510への時間当たりのリクエストの到着数が多くなる。そのため,ネットワーク530として広帯域なIPoIB(QDR)などが用いられた場合には,NFSサーバ510において,ファイル書き込みの処理を行うスレッド512が同時に複数存在する状態になる可能性が高い。このとき,上述のように同じファイルの後の方のデータの書き込みを行うスレッド512が先にロックを取得してしまい,フラグメントが起こる可能性が高くなる。
When a broadband IPoIB (QDR) or the like is used as the
以下では,このようなフラグメントの発生を抑止する,本実施の形態によるネットワークファイルシステムを説明する。 In the following, a network file system according to this embodiment for suppressing the occurrence of such a fragment will be described.
図3は,本実施の形態によるネットワークファイルシステムの構成例を示す図である。 FIG. 3 is a diagram showing a configuration example of the network file system according to the present embodiment.
図3に示すネットワークファイルシステムは,NFSサーバ10,複数のクライアント20(a,b,c,... ),ネットワーク30を有する。図3に示すネットワークファイルシステムにおいて,NFSサーバ10は,他装置がアクセスするファイルを管理する装置である。クライアント20は,NFSサーバ10が管理するファイルを利用する装置である。
The network file system shown in FIG. 3 includes an
図3に示すように,複数のクライアント20が,ネットワーク30を介して,NFSサーバ10上のファイルにアクセスすることが可能となっている。図3に示すネットワークファイルシステムにおいて,ネットワーク30は,例えばIPoIB(QDR)などの広帯域ネットワークである。
As shown in FIG. 3, a plurality of clients 20 can access files on the
NFSサーバ10にファイルの書き込みを行う場合に,クライアント20は,NFSサーバ10に対して,ファイル書き込みリクエストを送信する。このとき,クライアント20は,書き込むデータのサイズやネットワークファイルシステムの設定に応じて,ファイルの書き込みリクエストを複数のリクエストに分割して送信する。クライアント20は,書き込むデータの先頭の方から順に,分割されたファイルの書き込みリクエストをNFSサーバ10に送信する。
When writing a file to the
本実施の形態では,クライアント20からNFSサーバ10に送るファイル書き込みリクエストには,ファイルの識別情報が含まれている。ファイルの識別情報は,同一のファイルについての一連のファイル書き込みリクエストを,ファイルごとに識別する情報である。すなわち,同一のファイルについての一連の書き込みリクエストには,同じファイルの識別情報が含まれる。
In the present embodiment, the file write request sent from the client 20 to the
ファイルの識別情報は,一連のファイル書き込みリクエストが同一ファイルに対するリクエストかどうかを判定できる情報であればよい。例えば,ファイルの識別情報として,クライアント20のIPアドレスや書き込みを行うファイルのファイルディスクリプタなど,元々ファイル書き込みリクエストに含まれる情報を利用してもよい。同じクライアント20から短時間で連続して送信される複数のファイル書き込みリクエストは,同一のファイルに対する一連のファイル書き込みリクエストである可能性が高い。また,ファイルの識別情報のために,リクエストに対して新たな情報を定義してもよい。例えば,リクエストの構造体にファイルの識別情報を保持するメンバ変数を追加し,ファイルごとにユニークと考えられる情報をファイルの識別情報として格納するようにしてもよい。 The file identification information may be information that can determine whether a series of file write requests are requests for the same file. For example, information originally included in the file write request such as the IP address of the client 20 or the file descriptor of the file to be written may be used as the file identification information. A plurality of file write requests transmitted continuously from the same client 20 in a short time is highly likely to be a series of file write requests for the same file. Also, new information may be defined for the request for file identification information. For example, a member variable that holds file identification information may be added to the request structure, and information that is considered unique for each file may be stored as file identification information.
図3に示すネットワークファイルシステムにおいて,NFSサーバ10は,リクエスト受付部11,処理スレッド割り振り部12,複数のスレッド13(a,b,c,... ),ローカルファイルシステム14,ファイル記憶装置15を有する。
In the network file system shown in FIG. 3, the
リクエスト受付部11は,クライアント20から送信されたファイル書き込みリクエストを受け付ける。
The
処理スレッド割り振り部12は,リクエスト受付部11が受け付けたファイル書き込みリクエストを,idle状態のスレッド13に割り振る。このとき,本実施の形態による処理スレッド割り振り部12は,同一のファイルに対する一連のファイル書き込みリクエストについては,同じスレッド13に割り振りを行うようにする。処理スレッド割り振り部12は,判定部121,処理スレッド決定部122,削除部123,判定情報記憶部125を備える。
The processing
判定情報記憶部125は,ファイルの識別情報と,そのファイルの識別情報を含むファイル書き込みリクエストを処理するスレッド13との対応が記録された判定情報を記憶する,コンピュータがアクセス可能な記憶部である。
The determination
判定部121は,受け付けたファイル書き込みリクエストから,ファイルの識別情報を抽出する。判定部121は,判定情報記憶部125に記憶された判定情報を参照し,抽出されたファイルの識別情報といずれかのスレッド13との対応が判定情報に記録されているかを判定する。判定情報に記録があれば,判定部121は,受け付けたファイル書き込みリクエストが,以前にスレッド13が割り振られたファイル書き込みリクエストと同じファイルについてのリクエストであると判定する。判定情報に記録がなければ,判定部121は,受け付けたファイル書き込みリクエストが,同一ファイルに対する一連のファイル書き込みリクエストの最初のリクエストであると判定する。
The
処理スレッド決定部122は,判定部121の判定結果に応じて,受け付けたファイル書き込みリクエストの処理を割り振るスレッド13を決定する。処理スレッド決定部122は,ファイル書き込みリクエストから抽出されたファイルの識別情報の記録が判定情報にある場合には,判定情報で抽出されたファイルの識別情報に対応付けられたスレッド13を,ファイル書き込みリクエストを処理するスレッド13に決定する。処理スレッド決定部122は,ファイル書き込みリクエストから抽出されたファイルの識別情報の記録が判定情報にない場合には,判定情報でファイルの識別情報が対応付けられていないスレッド13を,ファイル書き込みリクエストを処理するスレッド13に決定する。
The processing
処理スレッド決定部122は,ファイル書き込みリクエストから抽出されたファイルの識別情報と,決定されたそのファイル書き込みリクエストを処理するスレッド13との対応を,判定情報記憶部125に記憶された判定情報に記録する。これにより,判定情報には,ファイルの識別情報と,そのファイルの識別情報を含むファイル書き込みリクエストの処理が割り振られたスレッド13との対応が記録される。
The processing
削除部123は,1つの同じファイルについての一連のファイル書き込みリクエストが終了したと判定された場合に,そのファイル書き込みリクエストのファイルの識別情報の記録を,判定情報記憶部125に記憶された判定情報から削除する。
When it is determined that a series of file write requests for one and the same file have been completed, the
削除部123は,例えば,受け付けたファイル書き込みリクエストが最終リクエストであると判定された場合に,そのファイル書き込みリクエストに含まれるファイルの識別情報の記録を,判定情報から削除する。一連のファイル書き込みリクエストの最終リクエストの処理には,ファイルクローズの処理が含まれる。
For example, when it is determined that the received file write request is the final request, the
また,削除部123は,判定情報において,最後にファイル書き込みリクエストが割り振られてから所定以上の時間が経過したスレッド13に対応付けられたファイルの識別情報の記録を削除する。1つの同じファイルについての一連のファイル書き込みリクエストは,短時間で連続的にクライアント20から送信されるものと考えられる。
Further, the
ファイル書き込みリクエストの処理が割り振られた各スレッド13,ローカルファイルシステム14,ファイル記憶装置15については,図1に示すスレッド512,ローカルファイルシステム513,ファイル記憶装置514と同様であるので,ここでは説明を省略する。
Each thread 13,
図4は,本実施の形態によるNFSサーバを実現するコンピュータの構成例を示す図である。 FIG. 4 is a diagram illustrating a configuration example of a computer that realizes the NFS server according to the present embodiment.
NFSサーバ10を実現するコンピュータ100は,CPU(Central Processing Unit )101,RAM(Random Access Memory)などのメモリ102,HDD(Hard Disk Drive )などの記憶装置103,入力装置104,出力装置105,通信装置106等を備える。
A
図3に示すNFSサーバ10およびNFSサーバ10が備える各機能部は,コンピュータ100が備えるCPU101,メモリ102等のハードウェアと,ソフトウェアプログラムとによって,実現することが可能である。コンピュータ100が実行可能なプログラムは,記憶装置103に記憶され,その実行時にメモリ102に読み出され,CPU101により実行される。
The
なお,コンピュータ100は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ100は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。さらに,このプログラムは,コンピュータ100で読み取り可能な記録媒体に記録しておくことができる。
The
本実施の形態では,クライアント20を実現するコンピュータも,図4に示すコンピュータ100と同様のハードウェアを有する。
In the present embodiment, the computer that implements the client 20 also has the same hardware as the
図5は,本実施の形態によるファイル書き込みリクエストのデータ構造の例を示す図である。 FIG. 5 is a diagram illustrating an example of a data structure of a file write request according to the present embodiment.
クライアント20から送信されるファイル書き込みリクエストは,ヘッダ部とデータ部とを有する。ヘッダ部は,送信元であるクライアント20のIPアドレスや,書き込みを行うファイルのファイルディスクリプタなどの情報を有する。データ部は,書き込みデータである。リクエストが複数に分割されている場合には,データ部は,書き込むデータの一部となる。 The file write request transmitted from the client 20 has a header part and a data part. The header part has information such as the IP address of the client 20 that is the transmission source and the file descriptor of the file to be written. The data part is write data. When the request is divided into a plurality of parts, the data part becomes a part of the data to be written.
例えば,図5に示すファイル書き込みリクエストにおいて,ヘッダ部に含まれるクライアント20のIPアドレスやファイルディスクリプタなどの情報が,同一ファイルについての一連のファイル書き込みリクエストの判定に利用するファイルの識別情報となり得る。 For example, in the file write request shown in FIG. 5, information such as the IP address and file descriptor of the client 20 included in the header part can be file identification information used for determining a series of file write requests for the same file.
図6は,本実施の形態による判定情報の例を示す図である。 FIG. 6 is a diagram illustrating an example of determination information according to the present embodiment.
図6に示す判定情報126は,判定情報記憶部125に記憶される情報の一例である。判定情報126は,スレッド,ファイルの識別情報,時刻の情報を有する。
The
図6に示す判定情報126において,スレッドは,NFSサーバ10で動作する各スレッド13の識別情報を示す。
In the
図6に示す判定情報126において,ファイルの識別情報の記録があるレコードは,スレッド13とファイルの識別情報とが対応付けられたレコードである。ファイルの識別情報が対応付けられたスレッド13は,過去にファイルの識別情報が含まれるファイル書き込みリクエストの処理を行ったスレッド13である。
In the
図6に示す判定情報126において,時刻は,そのスレッド13に対して,記録されたファイルの識別情報を含むファイル書き込みリクエストの処理が最後に割り振られたときの時刻である。
In the
ここで,図3に示す本実施の形態のネットワークファイルシステムによるファイル書き込みの一例を説明する。 Here, an example of file writing by the network file system of the present embodiment shown in FIG. 3 will be described.
例えばクライアント20aにおいて,同一のファイルについての書き込みリクエストが,書き込むデータの先頭から順にリクエスト#1,リクエスト#2,リクエスト#3の3つのリクエストに分けられて,NFSサーバ10に送信されるものとする。クライアント20aは,3つのファイル書き込みリクエストをファイルの先頭から順に,ネットワーク30を介してNFSサーバ10に送信する。
For example, in the
NFSサーバ10において,リクエスト受付部11は,まず,最初に受信されるリクエスト#1を受け付ける。
In the
処理スレッド割り振り部12において,判定部121は,受け付けたリクエスト#1からファイルの識別情報を抽出する。ここでは,ファイルの識別情報として,送信元のクライアント20aのIPアドレスを抽出するものとする。例えば,リクエスト#1からファイルの識別情報id01が抽出される。
In the processing
判定部121は,判定情報記憶部125に記憶された判定情報126に,抽出されたファイルの識別情報id01の記録があるかを判定する。ここでは,リクエスト#1が,同一のファイルに対する一連の書き込みリクエストの最初のリクエストであるので,判定情報126に抽出されたファイルの識別情報id01の記録はない。
The
処理スレッド決定部122は,判定情報記憶部125に記憶された判定情報126を参照し,ファイルの識別情報の対応付けがないスレッド13を1つ選択する。ここでは,th0 のスレッド13aが選択されたものとする。処理スレッド決定部122は,判定情報記憶部125に記憶された判定情報126のth0 のスレッド13aのレコードに,リクエスト#1から抽出されたファイルの識別情報id01を記録する。
The processing
処理スレッド割り振り部12は,th0 のスレッド13aにリクエスト#1の処理を割り当てる。スレッド13aは,リクエスト#1に対する処理を開始する。
The processing
リクエスト#1の後,リクエスト受付部11は,リクエスト#2を受け付ける。判定部121は,リクエスト#2からファイルの識別情報id01を抽出する。リクエスト#1とリクエスト#2とは,同じクライアント20aから送信されたリクエストであるので,ファイルの識別情報は同じid01である。
After
判定部121は,判定情報記憶部125に記憶された判定情報126に,抽出されたファイルの識別情報id01の記録があるかを判定する。リクエスト#2を含む一連のファイル書き込みリクエストのうち,最初のファイル書き込みリクエストであるリクエスト#1の処理がすでに行われているので,判定情報126にはファイルの識別情報id01の記録がある。処理スレッド決定部122は,判定情報記憶部125に記憶された判定情報126を参照し,ファイルの識別情報id01に対応するスレッド13として,th0 のスレッド13aを抽出する。
The
処理スレッド割り振り部12は,抽出されたth0 のスレッド13aが処理中でなければ,th0 のスレッド13aにリクエスト#2の処理を割り振る。スレッド13aは,リクエスト#2に対する処理を開始する。
If the extracted th 0 thread 13a is not being processed, the processing
なお,処理スレッド割り振り部12は,抽出されたth0 のスレッド13aが処理中であるときに,th1 のスレッド13bやth2 のスレッド13cがidle状態であっても,それらのスレッド13にリクエスト#2の処理を割り振らない。NFSサーバ10は,抽出されたth0 のスレッド13aが処理中であれば,リクエスト#2の送信元のクライアント20aに対してビジー応答する。このとき,NFSサーバ10は,例えばth0 のスレッド13aがidle状態になるまで待ち,idle状態になった時点でクライアント20aに対してその旨を通知する。クライアント20aは,リクエスト#2の再送信を行う。NFSサーバ10では,上述のリクエスト受付時の処理が再び行われ,idle状態となったth0 のスレッド13aにリクエスト#2の処理が割り振られる。
It should be noted that the processing
リクエスト#2の後に送信されるリクエスト#3についても,リクエスト#2と同様に処理が行われる。
The
図7は,本実施の形態のネットワークファイルシステムによる論理ブロック番号の割り当てを説明する図である。 FIG. 7 is a diagram for explaining logical block number assignment by the network file system according to the present embodiment.
図7に示すように,本実施の形態のNFSサーバ10では,同じファイルについての一連のファイル書き込みリクエストの処理は,すべてその最初のリクエストであるリクエスト#1の処理が割り振られたth0 のスレッド13aに割り振られる。最初のリクエスト#1以外のリクエスト#2,リクエスト#3に対する処理は,それぞれ前のリクエストの処理が終わった後に,同じth0 のスレッド13aに割り振られて実行される。複数のスレッド13による同時書き込みが行われないので,ロック取得順によって処理を行うリクエストの順序が変わることはない。すなわち,ローカルファイルシステム14へのファイル書き込みの順序は,クライアント20aから送信されたリクエストの順となる。
As shown in FIG. 7, in the
まず,処理スレッド割り振り部12により,th0 のスレッド13aに,リクエスト#1の処理が割り振られる。割り振られたリクエスト#1の処理を行うスレッド13aは,ローカルファイルシステム14へのファイル書き込み処理を行う。ローカルファイルシステム14は,スレッド13aが処理するリクエスト#1のファイルデータに,論理ブロック番号12345を割り当てる。
First, the processing
次に,リクエスト#1の処理が終わったth0 のスレッド13aに,処理スレッド割り振り部12により,リクエスト#2の処理が割り振られる。割り振られたリクエスト#2の処理を行うスレッド13aは,ローカルファイルシステム14へのファイル書き込み処理を行う。ローカルファイルシステム14は,スレッド13aが処理するリクエスト#2のファイルデータに,論理ブロック番号12346を割り当てる。
Next, the processing of the
さらに,リクエスト#2の処理が終わったth0 のスレッド13aに,処理スレッド割り振り部12により,リクエスト#3の処理が割り振られる。割り振られたリクエスト#3の処理を行うスレッド13aは,ローカルファイルシステム14へのファイル書き込み処理を行う。ローカルファイルシステム14は,スレッド13aが処理するリクエスト#3のファイルデータに,論理ブロック番号12347を割り当てる。
Further, the processing of the
このように,本実施の形態によるNFSサーバ10では,1つのファイルについての一連のファイル書き込みリクエストに対する処理は,同じスレッド13に割り振られる。そのため,図7に示すように,ファイル記憶装置15において,論理ブロック番号12345〜12347の連続するディスク領域上に,クライアント20aからの送信順に,各リクエストのファイルデータが書き込まれる。ファイルにおける実際のデータの順序と,ディスク上でのファイルデータの配置順序とが一致するので,ディスク上ではフラグメントが起こっていない。
Thus, in the
このファイルの読み込みが行われる際には,連続した論理ブロック番号12345→12346→12347の順にデータの読み込みが行われるので,無用なディスクシークが発生せず,ファイルの読み込み性能は向上する。
When this file is read, data is read in the order of consecutive
図8,図9は,本実施の形態のNFSサーバによるファイル管理処理フローチャート(1)である。 8 and 9 are flowcharts (1) of file management processing by the NFS server of this embodiment.
図8,図9に示すフローチャートは,NFSサーバ10において,ファイル書き込みリクエストの受付から,受け付けたファイル書き込みリクエストの処理のスレッド13への割り振りまでの処理の流れの一例を示している。なお,図8,図9に示すフローチャートでは,一連のファイル書き込みリクエストの最終リクエストの検出で,判定情報126から該当するファイルの識別情報の記録を削除する。
The flowcharts shown in FIGS. 8 and 9 show an example of the processing flow from the reception of the file write request to the allocation of the received file write request to the thread 13 in the
NFSサーバ10において,リクエスト受付部11は,クライアント20からのファイル書き込みリクエストを受け付ける(ステップS10)。
In the
処理スレッド割り振り部12において,判定部121は,受け付けたファイル書き込みリクエストからファイルの識別情報を抽出する(ステップS11)。判定部121は,判定情報記憶部125に記憶された判定情報126に,抽出されたファイルの識別情報の記録があるかを判定する(ステップS12)。
In the processing
判定情報126に抽出されたファイルの識別情報の記録があれば(ステップS12のYES),処理スレッド決定部122は,判定情報126から,抽出されたファイルの識別情報に対応するスレッド13を抽出する(ステップS13)。処理スレッド割り振り部12は,抽出されたスレッド13が処理中であるかを判定する(ステップS14)。
If the
抽出されたスレッド13が処理中であれば(ステップS14のYES),NFSサーバ10は,ファイル書き込みリクエストの送信元のクライアント20に対してビジーを応答する(ステップS15)。
If the extracted thread 13 is being processed (YES in step S14), the
抽出されたスレッド13が処理中でなければ(ステップS14のNO),処理スレッド決定部122は,抽出されたスレッド13を,受け付けたファイル書き込みリクエストの処理を行うスレッド13に決定する(ステップS16)。
If the extracted thread 13 is not being processed (NO in step S14), the processing
削除部123は,受け付けたファイル書き込みリクエストが,一連のファイル書き込みリクエストにおける最終リクエストであるかを判定する(ステップS17)。一連のファイル書き込みリクエストの最終リクエストの処理には,ファイルクローズの処理が含まれる。受け付けたファイル書き込みリクエストが最終リクエストである場合には(ステップS17のYES),削除部123は,判定情報記憶部125に記憶された判定情報126から,受け付けたファイル書き込みリクエストから抽出されたファイルの識別情報の記録を削除する(ステップS18)。
The
処理スレッド割り振り部12は,決定されたスレッド13に,受け付けたファイル書き込みリクエストの処理を割り振る(ステップS19)。
The processing
判定情報126に抽出されたファイルの識別情報の記録がなければ(ステップS12のNO),処理スレッド決定部122は,判定情報126にファイルの識別情報の対応付けがないスレッド13があるかを判定する(ステップS20)。
If the
ファイルの識別情報の対応付けがないスレッド13がなければ(ステップS20のNO),NFSサーバ10は,ファイル書き込みリクエストの送信元のクライアント20に対してビジーを応答する(ステップS21)。
If there is no thread 13 that is not associated with file identification information (NO in step S20), the
ファイルの識別情報の対応付けがないスレッド13があれば(ステップS20のYES),処理スレッド決定部122は,判定情報126から,ファイルの識別情報の対応付けがないスレッド13を1つ選択する(ステップS22)。処理スレッド決定部122は,選択されたスレッド13を,受け付けたファイル書き込みリクエストの処理を行うスレッド13に決定する(ステップS23)。
If there is a thread 13 that is not associated with file identification information (YES in step S20), the processing
処理スレッド決定部122は,受け付けたファイル書き込みリクエストが,最終リクエストであるかを判定する(ステップS24)。受け付けたファイル書き込みリクエストが最終リクエストでない場合には(ステップS24のNO),処理スレッド決定部122は,判定情報126に,決定されたスレッド13と抽出されたファイルの識別情報との対応を記録する(ステップS25)。
The processing
処理スレッド割り振り部12は,決定されたスレッド13に,受け付けたファイル書き込みリクエストの処理を割り振る(ステップS26)。
The processing
図10,図11は,本実施の形態のNFSサーバによるファイル管理処理フローチャート(2)である。 10 and 11 are flowcharts (2) of the file management process by the NFS server according to the present embodiment.
図10,図11に示すフローチャートは,NFSサーバ10において,ファイル書き込みリクエストの受付から,受け付けたファイル書き込みリクエストの処理のスレッド13への割り振りまでの処理の流れの一例を示している。なお,図10,図11に示すフローチャートでは,最後に割り振りが行われてから所定時間が経過したスレッド13について,判定情報126のファイルの識別情報の記録を無効とする。
The flowcharts shown in FIGS. 10 and 11 show an example of the flow of processing from the reception of a file write request to the allocation of the received file write request to the thread 13 in the
NFSサーバ10において,リクエスト受付部11は,クライアント20からのファイル書き込みリクエストを受け付ける(ステップS30)。
In the
処理スレッド割り振り部12において,判定部121は,受け付けたファイル書き込みリクエストからファイルの識別情報を抽出する(ステップS31)。判定部121は,判定情報記憶部125に記憶された判定情報126に,抽出されたファイルの識別情報の記録があるかを判定する(ステップS32)。
In the processing
判定情報126に抽出されたファイルの識別情報の記録があれば(ステップS32のYES),処理スレッド決定部122は,判定情報126から,抽出されたファイルの識別情報に対応するスレッド13を抽出する(ステップS33)。処理スレッド割り振り部12は,抽出されたスレッド13が処理中であるかを判定する(ステップS34)。
If the
抽出されたスレッド13が処理中であれば(ステップS34のYES),NFSサーバ10は,ファイル書き込みリクエストの送信元のクライアント20に対してビジーを応答する(ステップS35)。
If the extracted thread 13 is being processed (YES in step S34), the
抽出されたスレッド13が処理中でなければ(ステップS34のNO),処理スレッド決定部122は,抽出されたスレッド13を,受け付けたファイル書き込みリクエストの処理を行うスレッド13に決定する(ステップS36)。処理スレッド決定部122は,判定情報126において,決定されたスレッド13の時刻を更新する(ステップS37)。
If the extracted thread 13 is not being processed (NO in step S34), the processing
処理スレッド割り振り部12は,決定されたスレッド13に,受け付けたファイル書き込みリクエストの処理を割り振る(ステップS38)。
The processing
判定情報126に抽出されたファイルの識別情報の記録がなければ(ステップS32のNO),処理スレッド決定部122は,判定情報126にファイルの識別情報の対応付けがないスレッド13があるかを判定する(ステップS39)。
If the
ファイルの識別情報の対応付けがないスレッド13があれば(ステップS39のYES),処理スレッド決定部122は,判定情報126から,ファイルの識別情報の対応付けがないスレッド13を1つ選択する(ステップS40)。
If there is a thread 13 that is not associated with file identification information (YES in step S39), the processing
処理スレッド決定部122は,選択されたスレッド13を,受け付けたファイル書き込みリクエストの処理を行うスレッド13に決定する(ステップS41)。処理スレッド決定部122は,判定情報126に,決定されたスレッド13と抽出されたファイルの識別情報との対応を記録する(ステップS42)。処理スレッド決定部122は,判定情報126において,決定されたスレッド13の時刻を記録する(ステップS43)。
The processing
処理スレッド割り振り部12は,決定されたスレッド13に,受け付けたファイル書き込みリクエストの処理を割り振る(ステップS44)。
The processing
ファイルの識別情報の対応付けがないスレッド13がなければ(ステップS39のNO),処理スレッド決定部122は,判定情報126に最後に割り振りが行われてから所定時間が経過したスレッド13があるかを判定する(ステップS45)。
If there is no thread 13 that is not associated with file identification information (NO in step S39), the processing
判定情報126に所定時間が経過したスレッド13がなければ(ステップS45のNO),NFSサーバ10は,ファイル書き込みリクエストの送信元のクライアント20に対してビジーを応答する(ステップS46)。
If there is no thread 13 for which the predetermined time has passed in the determination information 126 (NO in step S45), the
判定情報126に所定時間が経過したスレッド13があれば(ステップS45のYES),処理スレッド決定部122は,判定情報126から,所定時間が経過したスレッド13を1つ選択する(ステップS47)。以下,上述のステップS41〜ステップS44の処理が行われる。
If there is a thread 13 for which the predetermined time has elapsed in the determination information 126 (YES in step S45), the processing
上述したように,図10,図11に示すフローチャートでは,判定情報126において,最後に割り振りが行われてから所定時間の経過で,ファイルの識別情報の記録が無効と判定される例が示されている。削除部123が,リクエストに対する処理とは別に,判定情報126において,最後に割り振りが行われてから所定以上の時間が経過したスレッド13に対応付けられたファイルの識別情報の記録を削除するようにしてもよい。この場合には,ステップS46,ステップS47の処理が不要になる。
As described above, the flowcharts shown in FIGS. 10 and 11 show an example in which
図12は,本実施の形態によるネットワークファイルシステムの効果を説明する図である。 FIG. 12 is a diagram for explaining the effect of the network file system according to this embodiment.
図12には,図1に示す既存のネットワークファイルシステムと,図3に示す本実施の形態のネットワークファイルシステムとにおいて,それぞれ同じハードウェア構成,同条件のもとで行われた実験の結果が示されている。既存のネットワークファイルシステムと,本実施の形態のネットワークファイルシステムとの違いは,処理スレッド割り振りの仕組みである。ネットワークには,IPoIB(QDR)が採用されている。 FIG. 12 shows the results of experiments performed under the same hardware configuration and the same conditions in the existing network file system shown in FIG. 1 and the network file system of the present embodiment shown in FIG. It is shown. The difference between the existing network file system and the network file system of the present embodiment is the processing thread allocation mechanism. IPoIB (QDR) is adopted for the network.
図12(A)は,クライアントからNFSサーバに1GBのファイルを作成した場合のフラグメント発生の状況を示す。図12(A)において,extentsは,ディスク上でファイルが何箇所に分かれているかを表す数値である。extentsの値が大きいほど,多くのフラグメントが発生している。図12(A)に示す実験結果から,本実施の形態のネットワークファイルシステムでは,既存のネットワークファイルシステムと比較して,フラグメントの発生が大きく抑制されていることが分かる。 FIG. 12A shows a state of fragmentation when a 1 GB file is created from the client to the NFS server. In FIG. 12A, extents is a numerical value that represents how many files are divided on the disk. The larger the value of extents, the more fragments are generated. From the experimental results shown in FIG. 12A, it can be seen that in the network file system of this embodiment, the generation of fragments is greatly suppressed as compared with the existing network file system.
図12(B)は,クライアントがNFSサーバに作成した1GBのファイルを読み込んだ場合の読み込み速度の状況を示す。図12(B)に示す実験結果から,本実施の形態のネットワークファイルシステムでは,既存のネットワークファイルシステムと比較して,NFSサーバに作成したファイルに対する読み込み速度が約3倍速いことが分かる。 FIG. 12B shows the reading speed when the client reads a 1 GB file created on the NFS server. From the experimental results shown in FIG. 12B, it can be seen that in the network file system of this embodiment, the reading speed for the file created in the NFS server is about three times faster than the existing network file system.
このように,本実施の形態のネットワークファイルシステムによって,NFSサーバ10上にファイルの書き込みを行う際に,ファイルのフラグメントを抑制することが可能となり,書き込みを行ったファイルに対する読み込み速度の低下を防止することが可能となる。
As described above, the network file system according to the present embodiment makes it possible to suppress fragmentation of a file when writing the file on the
以上,本実施の形態について説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。 Although the present embodiment has been described above, the present invention can naturally be modified in various ways within the scope of the gist thereof.
10 NFSサーバ
11 リクエスト受付部
12 処理スレッド割り振り部
121 判定部
122 処理スレッド決定部
123 削除部
125 判定情報記憶部
13 スレッド
14 ローカルファイルシステム
15 ファイル記憶装置
20 クライアント
30 ネットワーク
DESCRIPTION OF
Claims (3)
スレッドとファイルの識別情報とが対応する判定情報を記憶する記憶部を備える前記コンピュータに,
他装置からのファイル書き込みリクエストを受け付ける手順と,
前記記憶部から読み出した前記判定情報に,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがある場合,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドを,前記ファイル書き込みリクエストの処理を行うスレッドとする手順と,
前記判定情報に,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがない場合,前記判定情報において対応付けされていないスレッドを前記ファイル書き込みリクエストの処理を行うスレッドとする手順と,
前記処理を行うスレッドと前記ファイル書き込みリクエストに含まれるファイルの識別情報との対応を,前記判定情報に記録する手順とを
実行させるためのファイル管理プログラム。 A program for causing a computer managing a file accessed by another device via a network,
The computer including a storage unit that stores determination information corresponding to identification information of a thread and a file,
A procedure for accepting file write requests from other devices;
If the determination information read from the storage unit includes a thread corresponding to the file identification information included in the file write request, the thread corresponding to the file identification information included in the file write request The procedure to make a thread to process the request,
When the determination information does not include a thread corresponding to the identification information of the file included in the file write request, a thread that is not associated with the determination information is set as a thread for processing the file write request;
A file management program for executing a procedure for recording, in the determination information, a correspondence between a thread for performing the processing and identification information of a file included in the file write request.
スレッドとファイルの識別情報とが対応する判定情報を記憶する記憶部を備える前記コンピュータが,
他装置からのファイル書き込みリクエストを受け付ける過程と,
前記記憶部から読み出した前記判定情報に,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがある場合,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドを,前記ファイル書き込みリクエストの処理を行うスレッドとする過程と,
前記判定情報に,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがない場合,前記判定情報において対応付けされていないスレッドを前記ファイル書き込みリクエストの処理を行うスレッドとする過程と,
前記処理を行うスレッドと前記ファイル書き込みリクエストに含まれるファイルの識別情報との対応を,前記判定情報に記録する過程とを実行する
ことを特徴とするファイル管理方法。 A file management method by a computer for managing files accessed by other devices via a network,
The computer including a storage unit that stores determination information corresponding to identification information of a thread and a file,
The process of accepting file write requests from other devices,
If the determination information read from the storage unit includes a thread corresponding to the file identification information included in the file write request, the thread corresponding to the file identification information included in the file write request The process of making a request processing thread,
When the determination information does not include a thread corresponding to the identification information of the file included in the file write request, a thread that is not associated with the determination information is set as a thread that processes the file write request;
A file management method comprising: executing a process of recording a correspondence between a thread performing the processing and file identification information included in the file write request in the determination information.
スレッドとファイルの識別情報とが対応する判定情報を記憶する判定情報記憶部と,
他装置からのファイル書き込みリクエストを受け付けるリクエスト受付部と,
前記判定情報に,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがある場合,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドを,前記ファイル書き込みリクエストの処理を行うスレッドとし,前記判定情報に,前記ファイル書き込みリクエストに含まれるファイルの識別情報に対応するスレッドがない場合,前記判定情報において対応付けされていないスレッドを前記ファイル書き込みリクエストの処理を行うスレッドとし,該処理を行うスレッドと前記ファイル書き込みリクエストに含まれるファイルの識別情報との対応を前記判定情報に記録する処理スレッド割り振り部とを備える
ことを特徴とするファイル管理装置。 A file management device that manages files that other devices access via the network,
A determination information storage unit for storing determination information corresponding to the identification information of the thread and the file;
A request reception unit for receiving file write requests from other devices;
If the determination information includes a thread corresponding to the file identification information included in the file write request, a thread corresponding to the file identification information included in the file write request is processed as the thread that processes the file write request. And if there is no thread corresponding to the identification information of the file included in the file write request in the determination information, a thread not associated with the determination information is set as a thread for processing the file write request. A file management apparatus comprising: a processing thread allocating unit that records a correspondence between a thread that performs the process and identification information of a file included in the file write request in the determination information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010195803A JP5494363B2 (en) | 2010-09-01 | 2010-09-01 | File management program, file management method, and file management apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010195803A JP5494363B2 (en) | 2010-09-01 | 2010-09-01 | File management program, file management method, and file management apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012053668A true JP2012053668A (en) | 2012-03-15 |
JP5494363B2 JP5494363B2 (en) | 2014-05-14 |
Family
ID=45906913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010195803A Active JP5494363B2 (en) | 2010-09-01 | 2010-09-01 | File management program, file management method, and file management apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5494363B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762930A (en) * | 2018-05-30 | 2018-11-06 | 郑州云海信息技术有限公司 | A kind of optimization method, system and the associated component of User space NFS threads |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08212090A (en) * | 1995-02-03 | 1996-08-20 | Fujitsu Ltd | Server system |
-
2010
- 2010-09-01 JP JP2010195803A patent/JP5494363B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08212090A (en) * | 1995-02-03 | 1996-08-20 | Fujitsu Ltd | Server system |
Non-Patent Citations (3)
Title |
---|
BRENT CALLAGHAN, NFSバイブル, vol. 第1版, JPN6014004306, 1 October 2001 (2001-10-01), JP, pages 258 - 262, ISSN: 0002738878 * |
中村 隆喜: "RAIDシステム内蔵型NAS(2) −高信頼ファイルシステム−", FIT2004 第3回情報科学技術フォーラム 一般講演論文集, vol. 第1分冊, JPN6014004305, 20 August 2004 (2004-08-20), JP, pages 119 - 120, ISSN: 0002738877 * |
中村 隆喜: "同期書き込みでのファイル同時作成時におけるフラグメントと性能を改善するサイズ調整プリアロケーション方", 情報処理学会論文誌 論文誌ジャーナル, vol. 50, no. 11, JPN6014004307, 15 November 2009 (2009-11-15), JP, pages 2690 - 2698, ISSN: 0002738876 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762930A (en) * | 2018-05-30 | 2018-11-06 | 郑州云海信息技术有限公司 | A kind of optimization method, system and the associated component of User space NFS threads |
Also Published As
Publication number | Publication date |
---|---|
JP5494363B2 (en) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11340672B2 (en) | Persistent reservations for virtual disk using multiple targets | |
US10346067B2 (en) | Multi-tier file storage management using file access and cache profile information | |
JP4452064B2 (en) | Information processing system, information processing apparatus, information processing apparatus control method, and program | |
US8463846B2 (en) | File bundling for cache servers of content delivery networks | |
US20150286413A1 (en) | Handling data block migration to efficiently utilize higher performance tiers in a multi-tier storage environment | |
WO2015067074A1 (en) | Data reading method and apparatus | |
US8001323B2 (en) | Network storage system, management method therefor, and control program product therefor | |
JP2009026141A (en) | Cache method and cache device | |
CN110196681B (en) | Disk data write-in control method and device for business write operation and electronic equipment | |
CN104731635B (en) | A kind of virtual machine access control method and virtual machine access control system | |
CN107153512B (en) | Data migration method and device | |
JP6268116B2 (en) | Data processing apparatus, data processing method, and computer program | |
WO2023246843A1 (en) | Data processing method, apparatus and system | |
US20170123975A1 (en) | Centralized distributed systems and methods for managing operations | |
CN109254958A (en) | Distributed data reading/writing method, equipment and system | |
US10387043B2 (en) | Writing target file including determination of whether to apply duplication elimination | |
WO2014153931A1 (en) | File storage method and device, access client and metadata server system | |
US20080028147A1 (en) | Affecting a caching algorithm used by a cache of a storage system | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
JP5494363B2 (en) | File management program, file management method, and file management apparatus | |
EP3293625B1 (en) | Method and device for accessing file, and storage system | |
JP4606998B2 (en) | Network cache device and program | |
WO2017177400A1 (en) | Data processing method and system | |
US20150106884A1 (en) | Memcached multi-tenancy offload | |
WO2022083267A1 (en) | Data processing method, apparatus, computing node, and computer readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130604 |
|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5494363 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |