JP6720120B2 - Storage device, file writing method, and program - Google Patents
Storage device, file writing method, and program Download PDFInfo
- Publication number
- JP6720120B2 JP6720120B2 JP2017159250A JP2017159250A JP6720120B2 JP 6720120 B2 JP6720120 B2 JP 6720120B2 JP 2017159250 A JP2017159250 A JP 2017159250A JP 2017159250 A JP2017159250 A JP 2017159250A JP 6720120 B2 JP6720120 B2 JP 6720120B2
- Authority
- JP
- Japan
- Prior art keywords
- directory
- file
- files
- write
- storage device
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 26
- 230000004044 response Effects 0.000 claims description 18
- 230000007423 decrease Effects 0.000 claims description 4
- 238000005259 measurement Methods 0.000 claims 3
- 238000012545 processing Methods 0.000 description 59
- 238000010586 diagram Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 230000000052 comparative effect Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000005415 magnetization Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ストレージ装置、ファイル書き込み方法、およびプログラムに関する。 The present invention relates to a storage device, a file writing method, and a program.
従来、複数のファイルサーバにより分散してファイルを管理する技術が知られている(特許文献1参照)。この種の技術において、ファイルサーバには、予め複数のディレクトリが作成され、各ディレクトリに対応付けて複数のファイルが保存される場合がある。 Conventionally, a technique of managing files in a distributed manner by a plurality of file servers is known (see Patent Document 1). In this type of technology, a plurality of directories may be created in advance in the file server, and a plurality of files may be stored in association with each directory.
しかしながら、ファイルサーバに作成するディレクトリ数が少ない場合、各ディレクトリに対応付けて保存されるファイル数が膨大となるため、ディレクトリとファイルとの関係を表すディレクトリ情報が膨大となり、ファイルの書き込み性能が次第に劣化するという問題がある。一方、ファイルサーバに作成するディレクトリ数を多くした場合、ファイルが多くのディレクトリに分散されるため、ファイルの書き込み位置が過度に分散する場合があった。 However, when the number of directories created in the file server is small, the number of files stored in association with each directory becomes huge, so that the directory information indicating the relationship between the directories becomes huge and the file writing performance gradually increases. There is a problem of deterioration. On the other hand, when the number of directories created in the file server is increased, the files are distributed in many directories, and thus the writing positions of the files may be excessively distributed.
本発明は、このような事情を考慮してなされたものであり、ファイルの処理性能を向上させることができるストレージ装置、ファイル書き込み方法、およびプログラムを提供することを目的の一つとする。 The present invention has been made in consideration of such circumstances, and an object of the present invention is to provide a storage device, a file writing method, and a program that can improve file processing performance.
本発明の一態様は、ディレクトリ名を指定したファイルの書き込み要求を受け付ける受付部と、各ディレクトリに対応して記憶装置に書き込まれるファイル数に設けられる上限の範囲内で、前記受付部により受け付けられた書き込み要求に応答して、指定された前記ディレクトリ名のディレクトリに対応付けて前記ファイルを前記記憶装置に書き込む制御部とを備えるストレージ装置である。 According to one aspect of the present invention, a reception unit that receives a write request for a file in which a directory name is specified, and a reception unit that receives the request within the upper limit of the number of files written in a storage device corresponding to each directory. In response to the write request, the control unit writes the file in the storage device in association with the directory having the specified directory name.
本発明の一態様によれば、ファイルの処理性能を向上させることができる。 According to one aspect of the present invention, file processing performance can be improved.
以下、図面を参照し、本発明のストレージ装置、ファイル書き込み方法、およびプログラムの実施形態について説明する。 Embodiments of a storage device, a file writing method, and a program of the present invention will be described below with reference to the drawings.
<第1実施形態>
[ストレージシステム1の全体構成]
図1は、第1実施形態に係るストレージシステム1の一例を示す図である。ストレージシステム1は、例えば、複数のユーザ端末からのアップロード要求に従ってファイルをストレージサーバに蓄積すると共に、ユーザ端末からの閲覧要求またはダウンロード要求に従って、蓄積しているファイルをユーザ端末に閲覧またはダウンロードさせるストレージサービスを提供するものである。
<First Embodiment>
[Overall Configuration of Storage System 1]
FIG. 1 is a diagram showing an example of a
ストレージシステム1は、例えば、フロントサーバ100と、ストレージサーバ200と、メタデータデータベースサーバ300と、ユーザ端末400−1、・・・400−M(Mは2以上の自然数)とを含む。なお、ストレージシステム1において、複数のユーザ端末400とフロントサーバ100とがネットワークNWを介して情報を通信する。ネットワークNWは、例えば、無線基地局、Wi−Fiアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、以下の説明において、ユーザ端末を他のユーザ端末と区別しない場合には「ユーザ端末400」と記載する。
The
また、ストレージシステム1において、フロントサーバ100とストレージサーバ200、およびフロントサーバ100とメタデータデータベースサーバ300とは、ネットワークNWとは異なるネットワークを介して通信接続されている。なお、図1に示したフロントサーバ100、ストレージサーバ200、およびメタデータデータベースサーバ300は、単一のサーバ装置により実現してよく、それぞれ複数のサーバ装置を含んでいてよい。
Further, in the
[フロントサーバ100の構成]
図2は、フロントサーバ100の一例を示す図である。フロントサーバ100は、例えば、ユーザ側通信部110と、サーバ側通信部120と、フロント制御部130と、を含む。
[Configuration of Front Server 100]
FIG. 2 is a diagram showing an example of the
ユーザ側通信部110およびサーバ側通信部120は、例えばNIC(Network Interface Card)を含む。ユーザ側通信部110は、ネットワークNWを介してユーザの使用するユーザ端末400との間で通信を行う。サーバ側通信部120は、他のネットワーク介してストレージサーバ200およびメタデータデータベースサーバ300との間で通信を行う。
The user-
フロント制御部130は、例えば、アプリケーション処理部132と、ファイル管理部134とを含む。アプリケーション処理部132は、例えばCPU(Central Processing Unit)などのプロセッサがプログラムメモリに格納されたアプリケーションプログラムを実行することにより実現される。ファイル管理部134は、例えばCPUなどのプロセッサがプログラムメモリに格納されたOS(Operating System)プログラムを実行することにより実現される。アプリケーション処理部132およびファイル管理部134を含む機能部のうち一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよい。
The
アプリケーション処理部132は、ユーザ側通信部110を用いてユーザ端末400から送信されたファイルのアップロード要求を受け付ける(受付部)。ファイルのアップロード要求は、ディレクトリを指定したファイルの書き込み要求である。アプリケーション処理部132は、ファイルのアップロード要求に応答した書き込み要求をストレージサーバ200に送信する。
The
ファイル管理部134は、アップロード要求によりストレージサーバ200に書き込まれているファイルに関連するディレクトリ情報をキャッシュメモリ136に書き込む。ディレクトリ情報は、ディレクトリを管理する管理情報である。図3は、ディレクトリ情報136Aの一例を示す図である。ディレクトリ情報は、例えば、各ディレクトリ名と、所定の上限数の範囲内でディレクトリ名に対応付けられるファイル名とを対応付けている。ディレクトリ名は、ファイルのアップロード要求により指定されたディレクトリ名である。ファイル名は、アップロード要求により書き込まれるファイルのファイル名である。なお、ディレクトリ名には、追加時刻などその他の情報も対応付けられてよい。また、ファイル名には、ファイル管理部134においてファイル名に対応したファイルを特定するinode番号が対応付けられてよいが、これに限定されず、アップロード時刻などその他の情報も対応付けられてよい。
The
また、ファイル管理部134は、ファイルがストレージサーバ200に書き込まれた場合に、メタデータデータベースサーバ300にメタデータを書き込む。図4は、メタデータ310の一例を示す図である。メタデータ310には、例えば、グループidと、HDDidと、ディレクトリ名と、ファイル名と、LBA(Logical Block Address)とが含まれている。グループidは、ファイルストレージ部210全体の記憶容量を所定の記憶容量に区分した一つのグループを特定する識別情報である。各グループは、一又は複数のハードディスク装置210Aを含む。各グループは、他のグループと並行してファイルが書き込まれる。なお、「メモリ」の一例は、キャッシュメモリ136、またはメタデータデータベースサーバ300である。キャッシュメモリ136に代えて外部メモリを用いてもよい。
Further, the
[メタデータデータベースサーバ300の構成]
ストレージサーバ200に先だってメタデータデータベースサーバ300について説明する。メタデータデータベースサーバ300は、例えば、通信部とメタデータ310を記憶する記憶装置とを含む。メタデータデータベースサーバ300は、通信部を用いてメタデータ310を受信した場合に、記憶部にメタデータ310を書き込む。メタデータデータベースサーバ300は、フロントサーバ100の要求に従って、メタデータ310を読み出して、読み出したメタデータ310をフロントサーバ100に送信する。
[Configuration of Metadata Database Server 300]
The
[ストレージサーバ200の構成]
図5は、ストレージサーバ200の一例を示す図である。ストレージサーバ200は、例えば、ファイルストレージ部210−1、・・・210−N(Nは2以上の自然数)と、サーバ側通信部220と、ストレージ制御部230と、情報記憶部240とを含む。なお、以下の説明において、ファイルストレージ部を他のファイルストレージ部と区別しない場合には「ファイルストレージ部210」と記載する。
[Configuration of Storage Server 200]
FIG. 5 is a diagram showing an example of the
各ファイルストレージ部210は、一又は複数のハードディスク装置210Aを含む。ハードディスク装置210Aは、ファイルの書き込み、読み出し、および削除を実行する。
Each
ファイルストレージ部210は、ストレージ制御部230からライトコマンドが供給された場合、ライトコマンドに含まれるファイルをハードディスク装置210Aに書き込む。ファイルストレージ部210は、ストレージ制御部230からリードコマンドが供給された場合、リードコマンドにより指定されたファイルをハードディスク装置210Aから読み出し、読み出したファイルをストレージ制御部230に出力する。ファイルストレージ部210は、ストレージ制御部230から削除コマンドが供給された場合、リードコマンドにより指定されたファイルをハードディスク装置210Aから削除する。
When the write command is supplied from the
サーバ側通信部220は、例えばNICを含む。サーバ側通信部220は、ネットワークNWとは他のネットワーク介してストレージサーバ200との間で通信を行う。
The server-
ストレージ制御部230は、例えば、記憶制御部232と、ファイルカウンタ部234とを含む。記憶制御部232およびファイルカウンタ部234は、例えばCPUなどのプロセッサがプログラムメモリに格納されたサーバプログラムを実行することにより実現される。記憶制御部232およびファイルカウンタ部234を含む機能部のうち一部または全部は、LSI、ASIC、またはFPGAなどのハードウェアにより実現されてもよい。
The
情報記憶部240は、例えば、論物変換テーブル記憶部242と、ファイル数記憶部244とを含む。情報記憶部240は、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、またはRAM(Random Access Memory)等により実現される。情報記憶部240には、サーバプログラム等の各種プログラム、各種の処理結果などが記憶される。
The
記憶制御部232は、サーバ側通信部220を用いてフロントサーバ100から受信した書き込み要求に応答して、ファイルをハードディスク装置210Aに書き込む。記憶制御部232は、書き込み要求を受信した場合に、書き込み要求により指定されたディレクトリに対応付けてファイルをハードディスク装置210Aに書き込む。このとき、記憶制御部232は、論物変換テーブル記憶部242に記憶された論物変換テーブル242Aを参照して、書き込み要求に含まれるLBAをPBAに変換し、変換したPBAに対応する位置にファイルを書き込む。記憶制御部232は、例えば、複数回ファイルの書き込みを行う場合、ファイルのLBAを連番に設定し、LBAが近いファイルをハードディスク装置210Aにおける近くのPBAに書き込む。図6は、論物変換テーブル242Aの一例を示す図である。論物変換テーブル記憶部242におけるデータ有無は、例えば、PBAにより特定される物理ブロック内にデータが書き込まれているか否かを示すデータ有無フラグである。
The
ファイルカウンタ部234は、各ディレクトリに対応付けられて書き込まれたファイル数をカウントする。ファイルカウンタ部234は、カウントした結果をカウンタテーブル244Aに記憶する。カウンタテーブル244Aは、ディレクトリに対応付けて書き込まれたファイル数を管理する管理情報である。図7は、カウンタテーブル244Aの一例を示す図である。カウンタテーブル244Aにおけるディレクトリ名には、例えば、カウントした結果としてのファイル数と、上限値とが対応付けられている。 The file counter unit 234 counts the number of files written in association with each directory. The file counter unit 234 stores the count result in the counter table 244A. The counter table 244A is management information for managing the number of files written in association with the directory. FIG. 7 is a diagram showing an example of the counter table 244A. For example, the directory name in the counter table 244A is associated with the number of files as a counting result and the upper limit value.
(ハードディスク装置210Aの構成)
図8は、ハードディスク装置210Aの一例を示す図である。ハードディスク装置210Aは、例えば、磁気ディスク211と、ヘッドスタックアッセンブリ(Head Stack Assembly;HSA)212と、駆動回路223と、HDDコントローラ224と、インターフェース225とを含む。
(Structure of
FIG. 8 is a diagram showing an example of the
磁気ディスク211は、アルミニウムやガラス等の基板の表裏面に磁気記録層が形成された円盤(プラッタ)である。磁気ディスク211は、単一の円盤により構成されてもよいし、円盤の厚み方向に対して複数枚の円盤が積み重ねられて構成されてもよい。 The magnetic disk 211 is a disk (platter) having a magnetic recording layer formed on the front and back surfaces of a substrate such as aluminum or glass. The magnetic disk 211 may be configured by a single disc, or may be configured by stacking a plurality of discs in the thickness direction of the disc.
ヘッドスタックアッセンブリ212は、記録再生ヘッド212aと、ヘッドアンプIC212bと、ボイスコイルモータ212cと、スピンドルモータ212dとを含む。
The head stack assembly 212 includes a recording/reproducing
記録再生ヘッド212aは、ヘッドアーム上に搭載され、ボイスコイルモータ212cからの駆動力によって磁気ディスク211上をシークしながら、磁気ディスク211に対して相対的に移動する。記録再生ヘッド212aは、記録および再生兼用の磁性体コアを用いた薄膜ヘッドであってよいが、これに限定されない。
The recording/reproducing
記録再生ヘッド212aは、ファイルを書き込む場合、ヘッドアンプIC212bにより供給された電気信号に基づく磁界を発生させることで、磁気ディスク221の磁気記録層の磁化方向を変化させる。これによって、記録再生ヘッド212aは、ファイルを磁気ディスク221に書き込む。記録再生ヘッド212aは、ファイルを読み出す場合、磁気ディスク211上を移動しながら、磁気ディスク211の磁気記録層の磁化方向に対応した電気信号を生成する。記録再生ヘッド212aは、生成した電気信号を、ヘッドアンプIC212bを介して駆動回路223に供給する。
When writing a file, the recording/reproducing
ヘッドアンプIC212bは、記録再生ヘッド212aにより供給された電気信号の信号強度を増幅する。また、ヘッドアンプIC212bは、駆動回路223により供給されたユーザデータを電気信号に変換し、記録再生ヘッド212aに供給する。
The head amplifier IC 212b amplifies the signal strength of the electric signal supplied by the recording/reproducing
ボイスコイルモータ212cは、駆動回路223により供給された駆動電流に応じて、ヘッドスタックアッセンブリ222を駆動する。これにより、ボイスコイルモータ212cは、記録再生ヘッド212aを、磁気ディスク211の径方向に沿って(あるいは径方向に対して角度を有する斜めの方向に沿って)外側または内側に移動させ、トラック間を移動させる。径方向とは、磁気ディスクの中心を通る方向である。スピンドルモータ212dは、駆動回路223により供給された駆動電流に応じて、磁気ディスク211を回転させる。スピンドルモータ212dは、例えば、DCブラシレスモータである。
The
駆動回路223は、ヘッドアンプICとの間で信号を授受すると共に、ボイスコイルモータ212cおよびスピンドルモータ212dを駆動する。これにより、駆動回路223は、コマンドに含まれるPBAに対応する位置に記録再生ヘッド212aをシークさせてファイルを書き込む。
The
HDDコントローラ224は、インターフェース225を用いて、フロントサーバ100から送信されたリードコマンド、ライトコマンド、および削除コマンドを受信する。HDDコントローラ224は、各コマンドに応じて、磁気ディスク211に情報を書き込んだり、磁気ディスク211に書き込まれた情報を読み出したりする。
The
[ストレージシステム1の全体処理]
以下、フロントサーバ100がディレクトリ名を指定したファイルの書き込み要求を受け付けた場合に、ファイルをハードディスク装置210Aに書き込む処理について説明する。図9は、ユーザ端末400、フロントサーバ100、およびストレージサーバ200による処理の流れの一例を示す図である。
[Overall processing of storage system 1]
Hereinafter, a process of writing a file to the
ユーザ端末400は、ファイルをアップロードする際に、ユーザの操作に従ってファイルをアップロードするアプリケーションプログラムに対してAPI(Application Program Interface)コールを供給する。これにより、ユーザ端末400のアプリケーションプログラムは、フロントサーバ100に、アプリケーション処理部132を呼び出す処理リクエストS1を送信する。なお、処理リクエストS1は、ユーザ端末400におけるアプリケーションまたはブラウザなどのUA(User Agent)により生成されたHTTP(Hypertext Transfer Protocol)リクエストに埋め込まれた情報である。
When uploading a file, the
フロントサーバ100は、処理リクエストS1を受信した場合に、カレントディレクトリのディレクトリ名を要求するディレクトリ名リクエストS2をストレージサーバ200に送信する。ストレージサーバ200は、ディレクトリ名リクエストS2を受信した場合、カレントディレクトリに対応するファイル数をカウントアップする(ステップS10)。ストレージサーバ200は、カレントディレクトリのディレクトリ名S3をフロントサーバ100に送信する。フロントサーバ100は、カレントディレクトリのディレクトリ名S3を受信した場合、ディレクトリ名S3をファイル書き込み先のディレクトリ名S4としてユーザ端末400に送信する。
When receiving the processing request S1, the
ユーザ端末400は、ディレクトリ名S4を指定したアップロード要求S5を含むHTTPリクエストをフロントサーバ100に送信する。フロントサーバ100は、アップロード要求S5を受信した場合、ストレージサーバ200に、ディレクトリ名を指定したファイルの書き込み要求S6を送信する。
The
ストレージサーバ200は、フロントサーバ100により送信された書き込み要求S6を受信した場合、受信した書き込み要求S6により指定されたディレクトリ名のディレクトリに対応付けてファイルをハードディスク装置210Aに書き込む(ステップS11)。ストレージサーバ200は、ファイルの書き込みが完了した場合、レスポンスS7をフロントサーバ100に送信する。
When the
フロントサーバ100は、レスポンスS7を受信した場合、ハードディスク装置210Aに書き込まれたファイルのファイル名に関連するメタデータ310を更新する(ステップS21)。次にフロントサーバ100は、ファイルのアップロードが完了したことを通知する完了通知S8をユーザ端末400に送信する。
When receiving the response S7, the
[フロントサーバ100の動作]
図10は、フロントサーバ100における処理の流れの一例を示す図である。図10に示した処理は、アプリケーション処理部132により所定期間毎に繰り返して実行される。
[Operation of front server 100]
FIG. 10 is a diagram showing an example of the flow of processing in the
まず、アプリケーション処理部132は、処理リクエストS1を受け付けたか否かを判定する(ステップS100)。アプリケーション処理部132は、処理リクエストS1を受け付けた場合、ストレージサーバ200にディレクトリ名リクエストS2を送信する(ステップS102)。
First, the
次にアプリケーション処理部132は、ストレージサーバ200からディレクトリ名S3を受信したか否かを判定する(ステップS104)。アプリケーション処理部132は、ディレクトリ名S3を受信した場合、ユーザ端末400にディレクトリ名S4を送信する(ステップS106)。
Next, the
次にアプリケーション処理部132は、ユーザ端末400からディレクトリ名S4を指定したアップロード要求S5を受信したか否かを判定する(ステップS110)。アプリケーション処理部132は、アップロード要求S5を受信した場合、ディレクトリ名S4を含む書き込み要求S6をストレージサーバ200に送信する(ステップS112)。このとき、アプリケーション処理部132は、書き込み対象のファイルのファイル名をディレクトリ情報136Aにキャッシュする。
Next, the
次に、アプリケーション処理部132は、ストレージサーバ200からレスポンスS7を受信したか否かを判定する(ステップS114)。アプリケーション処理部132は、レスポンスS7を受信した場合、ディレクトリ情報136Aおよびメタデータ310を更新する(ステップS116)。このとき、アプリケーション処理部132は、ハードディスク装置210Aに書き込まれたファイルのファイル名を、指定されたディレクトリ名に対応付けてディレクトリ情報136Aに追加する。また、アプリケーション処理部132は、ハードディスク装置210Aに書き込まれたファイルのファイル名などの情報をメタデータデータベースサーバ300に送信する。次に、アプリケーション処理部132は、完了通知S8をユーザ端末400に送信する(ステップS118)。
Next, the
なお、処理リクエストを受信しない場合、およびアップロード要求を受信しない場合、フロントサーバ100は、本フローチャートの処理を終了する。
When the processing request is not received and the upload request is not received, the
また、フロントサーバ100は、ストレージサーバ200により通知されたディレクトリ名S3をユーザ端末400に送信してよいが、これに限定されず、ディレクトリ名S3をフロントサーバ100のAPI内で処理をするのみであってよい。フロントサーバ100は、ストレージサーバ200からディレクトリ名S3を受信した場合、ディレクトリ名S3をユーザ端末400に送信することなしに、メモリに記憶する。フロントサーバ100は、ユーザ端末400からアップロード要求S5を受信した場合、記憶しておいたディレクトリ名S3を読み出し、読み出したディレクトリ名S3および書き込み要求S6をストレージサーバ200に送信する。これにより、フロントサーバ100とユーザ端末400との間の通信回数を削減することができる。
Further, the
[ストレージサーバ200の動作]
図11は、ストレージサーバ200における第1書き込み処理の流れの一例を示す図である。図11に示した処理は、ストレージ制御部230により所定期間毎に繰り返して実行される。
[Operation of Storage Server 200]
FIG. 11 is a diagram showing an example of the flow of the first write processing in the
まず、記憶制御部232は、ディレクトリ名リクエストS2を受け付けたか否かを判定する(ステップS200)。ファイルカウンタ部234は、ディレクトリ名リクエストS2を受け付けた場合、カレントディレクトリのファイル数をカウントアップする(ステップS202)。
First, the
次に記憶制御部232は、ファイルカウンタ部234によりカウントアップされた結果としてのカレントディレクトリのファイル数が上限値以下であるか否かを判定する(ステップS204)。記憶制御部232は、カレントディレクトリのファイル数が上限値以下である場合、カレントディレクトリのディレクトリ名をフロントサーバ100に送信する(ステップS208)。記憶制御部232は、カレントディレクトリのファイル数が上限値を超えた場合、新たなディレクトリ名をカレントディレクトリのディレクトリ名として決定する(ステップS206)。記憶制御部232は、決定した新たなカレントディレクトリのディレクトリ名をフロントサーバ100に返信する(ステップS208)。
Next, the
次に、記憶制御部232は、フロントサーバ100から書き込み要求S6を受信したか否かを判定する(ステップS210)。記憶制御部232は、書き込み要求S6を受信した場合、指定されたディレクトリ名のディレクトリが存在しているか否かを判定する(ステップS212)。記憶制御部232は、指定されたディレクトリ名のディレクトリがカウンタテーブル244Aに存在している場合、当該ディレクトリに対応付けてファイルを書き込む(ステップS216)。
Next, the
記憶制御部232は、指定されたディレクトリ名のディレクトリがカウンタテーブル244Aに存在しない場合、決定したカレントディレクトリのディレクトリ名に対応したディレクトリの管理情報をカウンタテーブル244Aに書き込むことで、新たなディレクトリ名のディレクトリを追加する(ステップS214)。記憶制御部232は、追加したディレクトリに対応付けてファイルを書き込む(ステップS216)。
When the directory with the designated directory name does not exist in the counter table 244A, the
なお、ディレクトリ名リクエストを受信していない場合、および書き込み要求を受信しない場合、ストレージサーバ200は、本フローチャートの処理を終了する。
When the directory name request is not received and the write request is not received, the
[書き込み処理におけるディレクトリとファイルとの関係]
以下、上述したストレージサーバ200において、各ディレクトリに対応付けてファイルを書き込む様子について説明する。図12は、各ディレクトリとファイルとの関係を示す図である。
[Relationship between directories and files during write processing]
Hereinafter, how the
図12を参照した説明において、ファイル数の上限としての上限値は「1000」であるものとする。記憶制御部232は、図12(a)に示すように、グループidが「001」に対してディレクトリ名が「001」のディレクトリの情報をカウンタテーブル244Aに追加し、990個のファイルの書き込み要求をフロントサーバ100から受信するものとする。この場合、記憶制御部232は、990個のファイルを1つのカレントディレクトリに対応付けて連続的に書き込む。
In the description with reference to FIG. 12, it is assumed that the upper limit value of the number of files is “1000”. As shown in FIG. 12A, the
記憶制御部232は、ディレクトリ名が「001」のディレクトリに対応付けて1000個のファイルを書き込んだ場合において、1001個目のファイルを書き込む場合、ディレクトリ名が「002」の新たなディレクトリを追加する。記憶制御部232は、追加した新たなディレクトリとしてのカレントディレクトリに対応付けて1001個目のファイルを書き込む。すなわち、記憶制御部232は、新たなディレクトリを追加した場合に、ファイル数が上限値を超えたディレクトリに対応付けてファイルを書き込むことなしに、新たなディレクトリに対応付けてファイルを書き込む。このような動作は、各ディレクトリに対応付けて書き込まれたファイル数をカウントし、カウントしたファイル数が上限値を超えた場合に、ディレクトリに対応付けてファイルを書き込むことを制限する、と記載することもできる。
The
[ファイルの書き込み要求と書き込み処理の遷移状態との関係]
図13は、書き込み要求を受け付けた時刻と、ディレクトリごとの書き込み処理との関係を示す図である。記憶制御部232は、ディレクトリ名が「001」のディレクトリdir001に対応付けて書き込んだファイル数が上限値以下である場合、ディレクトリdir001に対応したファイルの書き込み処理を行う。ディレクトリdir001に対応したファイルの書き込み処理は、ディレクトリdir001以外のディレクトリに対応付けて書き込むことなしに、ディレクトリdir001にのみ対応付けてファイルを書き込む処理である。記憶制御部232は、ディレクトリdir001に対応したファイルの書き込み処理を実行している期間において時刻tにファイル(file(t))の書き込み要求を受信した場合には当該ファイルをディレクトリdir001に対応付けて書き込み、時刻t+T1にファイル(file(t+T1))の書き込み要求を受信した場合には当該ファイルをディレクトリdir001に対応付けて書き込む。
[Relationship between file write requests and write processing transition states]
FIG. 13 is a diagram showing the relationship between the time when the write request is accepted and the write processing for each directory. When the number of files written in association with the directory dir001 with the directory name “001” is less than or equal to the upper limit value, the
記憶制御部232は、ファイル(file(t+T1))をディレクトリdir001に対応付けて書き込むことでディレクトリdir001に書き込んだファイル数が上限値を超えた場合、ディレクトリdir002に対応したファイルの書き込み処理に遷移する。ディレクトリdir002に対応したファイルの書き込み処理は、ディレクトリdir002以外のディレクトリに対応付けてファイルを書き込むことなしに、ディレクトリdir002にのみ対応付けてファイルを書き込む処理である。これにより、記憶制御部232は、ディレクトリdir002に対応したファイルの書き込み処理を実行している期間において時刻t+T2にファイル(file(t+T2))の書き込み要求を受信した場合には当該ファイルをディレクトリdir002に対応付けて書き込む。
When the number of files written in the directory dir001 exceeds the upper limit value by writing the file (file(t+T1)) in association with the directory dir001, the
ストレージサーバ200は、図11に示す処理に代えて、以下の処理を行ってもよい。図14は、ストレージサーバ200における書き込み処理の流れの他の一例を示す図である。図14に示した書き込み処理は、ストレージ制御部230により所定期間毎に繰り返して実行される。
The
まず、記憶制御部232は、ディレクトリ名リクエストS2を受け付けたか否かを判定する(ステップS300)。ファイルカウンタ部234は、ディレクトリ名リクエストS2を受け付けた場合、カレントディレクトリのファイル数をカウントアップする(ステップS302)。
First, the
次に記憶制御部232は、ファイルカウンタ部234によりカウントアップされた結果としてのカレントディレクトリのファイル数が上限値以下であるか否かを判定する(ステップS304)。記憶制御部232は、カレントディレクトリのファイル数が上限値以下である場合、カレントディレクトリのディレクトリ名をフロントサーバ100に送信する(ステップS310)。
Next, the
記憶制御部232は、カレントディレクトリのファイル数が上限値を超えた場合、新たなディレクトリ名をカレントディレクトリのディレクトリ名として決定する(ステップS306)。次に、記憶制御部232は、決定したカレントディレクトリのディレクトリ名に対応したディレクトリの管理情報をカウンタテーブル244Aに書き込むことで、ディレクトリを追加する(ステップS308)。次に、記憶制御部232は、追加したカレントディレクトリのディレクトリ名をフロントサーバ100に送信する(ステップS310)。
When the number of files in the current directory exceeds the upper limit value, the
次に、記憶制御部232は、フロントサーバ100から書き込み要求S6を受信したか否かを判定する(ステップS312)。記憶制御部232は、書き込み要求S6を受信した場合、追加したディレクトリにファイルを書き込む(ステップS314)。
Next, the
なお、ディレクトリ名リクエストを受信していない場合、および書き込み要求を受信しない場合、ストレージサーバ200は、本フローチャートの処理を終了する。以上が、第2書き込み処理の説明である。
When the directory name request is not received and the write request is not received, the
ストレージサーバ200は、以上の動作により、各ディレクトリに対応して書き込まれるファイル数に設けられる上限の範囲内で、ファイルをハードディスク装置210Aに書き込む。なお、フロントサーバ100およびストレージサーバ200は、図10と、図11または図14とに示した処理を行うことで、ストレージ装置として機能する。
By the above operation, the
[第1実施形態の効果]
以上説明した第1実施形態のストレージシステム1によれば、各ディレクトリに対応してハードディスク装置210Aに書き込まれるファイル数に設けられる上限の範囲内で、フロントサーバ100により受け付けられた書き込み要求に応答して、指定されたディレクトリ名に対応付けてファイルを書き込むので、ディレクトリに対応付けられるファイル数を制限することができる。これにより、ストレージシステム1によれば、ディレクトリ情報136Aが肥大化することを抑制することができる。この結果、ストレージシステム1によれば、ディレクトリ名をシークする時間を抑制することができることで、ファイルの書き込み時間を短縮することができる。
[Effects of First Embodiment]
According to the
また、第1実施形態のストレージシステム1によれば、ディレクトリに対応付けられるファイル数が上限値に達するまで1つのディレクトリに連続的にファイルを書き込むので、連続的に書き込むファイルを複数のディレクトリに分散させることがない。連続的に書き込まれたファイルは、略同時期に書き込まれたファイルとも言うことができる。これにより、ストレージシステム1によれば、略同時期に書き込まれるファイルにおける磁気ディスク221上の位置を近くに配置することができる。この結果、ストレージシステム1によれば、略同時期に書き込まれた複数のファイルを読み出す際のリード時間を短縮することができる。
Further, according to the
<第2実施形態>
以下、第2実施形態について説明する。第2実施形態のストレージサーバ200は、カレントディレクトリのディレクトリ名に書き込んだファイル数が上限値を超えた場合に、ディレクトリ名をフロントサーバ100にプッシュ通知する点で、第1実施形態のストレージシステム1とは異なる。以下、この点を中心に説明する。
<Second Embodiment>
The second embodiment will be described below. The
[第2実施形態の全体処理]
図15は、ユーザ端末400、フロントサーバ100、およびストレージサーバ200による処理の流れの一例を示す図である。
[Overall processing of the second embodiment]
FIG. 15 is a diagram showing an example of the flow of processing by the
まず、フロントサーバ100は、通知リクエストS20をストレージサーバ200に送信する。通知リクエストS20は、ストレージサーバ200におけるカレントディレクトリを新たに設定したタイミングでカレントディレクトリのディレクトリ名をフロントサーバ100に通知するメッセージをプッシュ通知することを要求するメッセージである。フロントサーバ100は、例えば、フロントサーバ100の電源が投入してアプリケーションプログラムの起動が完了したタイミング、またはフロントサーバ100が起動している最中における定期的に、通知リクエストS20をストレージサーバ200に送信する。通知リクエストS20は、ディレクトリを新たに追加したタイミングでプッシュ通知することに限定されず、図14に示したように新たなディレクトリ名を決定した後に新たなディレクトリを追加する場合において、新たなディレクトリを追加したタイミングであってよい。
First, the
フロントサーバ100は、処理リクエストS21を受信した場合に、既にストレージサーバ200からプッシュ通知されているカレントディレクトリのディレクトリ名S22をユーザ端末400に送信する。フロントサーバ100は、アップロード要求S23を受信した場合、ストレージサーバ200に、ディレクトリ名を指定したファイルの書き込み要求S24を送信する。
When the processing request S21 is received, the
ストレージサーバ200は、フロントサーバ100により送信された書き込み要求S24を受信した場合、受信した書き込み要求S24により指定されたディレクトリ名に対応付けてファイルをハードディスク装置210Aに書き込む(ステップS30)。ストレージサーバ200は、ファイルの書き込みが完了した場合、レスポンスS25をフロントサーバ100に送信する。これにより、ストレージサーバ200は、フロントサーバ100からユーザ端末400に完了通知S26を送信させる。
When the
次にストレージサーバ200は、カレントディレクトリに対応するファイル数をカウントアップする(ステップS31)。ストレージサーバ200は、ファイルの書き込みを実行する度に、カレントディレクトリのディレクトリ名に対するファイル数が上限値を超えたか否かを判定する。ストレージサーバ200は、カレントディレクトリのディレクトリ名に対するファイル数が上限値以下である場合、プッシュ通知を実行しない(ステップS32)。ストレージサーバ200は、カレントディレクトリのディレクトリ名に対するファイル数が上限値を超えた場合に、新たなカレントディレクトリのディレクトリ名を決定する。ストレージサーバ200は、決定した新たなカレントディレクトリのディレクトリ名S27をフロントサーバ100にプッシュ通知する(ステップS33)。
Next, the
なお、フロントサーバ100は、ディレクトリ名S27を受信した場合に、通知リクエストをストレージサーバ200に送信してよい。これにより、フロントサーバ100は、以降に追加されるディレクトリのディレクトリ名をストレージサーバ200にプッシュ通知させることができる。
Note that the
なお、フロントサーバ100は、ストレージサーバ200により通知されたディレクトリ名S3をユーザ端末400に送信してよいが、これに限定されず、ディレクトリ名S3をフロントサーバ100のAPI内で処理をするのみであってよい。フロントサーバ100は、ストレージサーバ200からディレクトリ名S3を受信した場合、ディレクトリ名S3をユーザ端末400に送信することなしに、メモリに記憶する。フロントサーバ100は、ユーザ端末400からアップロード要求S5を受信した場合、記憶しておいたディレクトリ名S3を読み出し、読み出したディレクトリ名S3および書き込み要求S6をストレージサーバ200に送信する。これにより、フロントサーバ100とユーザ端末400との間の通信回数を削減することができる。
The
[第2実施形態の効果]
第2実施形態のストレージシステム1によれば、フロントサーバ100により処理リクエストを受信する度に、ストレージサーバ200からフロントサーバ100にディレクトリ名を通知する必要がない。これにより、ストレージシステム1によれば、ストレージサーバ200の処理負荷を抑制することができる。また、ストレージシステム1によれば、フロントサーバ100およびストレージサーバ200の通信回数を抑制することができる。
[Effects of Second Embodiment]
According to the
<第3実施形態>
以下、第3実施形態について説明する。第3実施形態のストレージサーバ200は、ファイルの書き込み時間が所定時間を超える場合に、カレントディレクトリのディレクトリのファイル数の上限値を減少させる点で、上述した第1実施形態および第2実施形態とは異なる。以下、この点を中心に説明する。
<Third Embodiment>
The third embodiment will be described below. The
[ストレージサーバ200における書き込み処理]
図16は、ストレージサーバ200における第3書き込み処理の流れの一例を示す図である。図16に示した処理は、ストレージ制御部230により所定期間毎に繰り返して実行される。
[Write Processing in Storage Server 200]
FIG. 16 is a diagram showing an example of the flow of the third write processing in the
まず、記憶制御部232は、リクエストを受け付けたか否かを判定する(ステップS400)。ファイルカウンタ部234は、リクエストを受け付けた場合、カレントディレクトリのファイル数をカウントアップする(ステップS402)。
First, the
次に記憶制御部232は、カウントアップされた結果としてのカレントディレクトリのファイル数が上限値以下であるか否かを判定する(ステップS404)。記憶制御部232は、カレントディレクトリのファイル数が上限値以下である場合、カレントディレクトリのディレクトリ名をフロントサーバ100に送信する(ステップS408)。記憶制御部232は、カレントディレクトリのファイル数が上限値を超えた場合、新たなディレクトリ名をカレントディレクトリのディレクトリ名として決定する(ステップS406)。記憶制御部232は、設定した新たなカレントディレクトリのディレクトリ名をフロントサーバ100に返信する(ステップS408)。
Next, the
次に、記憶制御部232は、フロントサーバ100から書き込み要求を受信したか否かを判定する(ステップS410)。記憶制御部232は、書き込み要求を受信した場合、指定されたディレクトリ名が設定されたディレクトリが存在しているか否かを判定する(ステップS412)。記憶制御部232は、指定されたディレクトリ名が設定されたディレクトリが存在している場合、当該ディレクトリにファイルを書き込む(ステップS416)。記憶制御部232は、指定されたディレクトリ名が設定されたディレクトリが存在しない場合、決定したカレントディレクトリのディレクトリ名に対応したディレクトリの管理情報をカウンタテーブル244Aに書き込むことで、ディレクトリを追加する(ステップS414)。
Next, the
次に、記憶制御部232は、追加したディレクトリに対応付けてファイルを書き込む(ステップS416)。次に記憶制御部232は、ファイルの書き込み時間を検出する(ステップS418)。記憶制御部232は、例えば、ハードディスク装置210Aにライトコマンドを出力した時刻から、ハードディスク装置210Aから書き込み完了の応答を入力した時刻までの期間を計測することで、ファイルの書き込み時間を検出する。
Next, the
記憶制御部232は、検出した書き込み時間が所定時間を超えているか否かを判定する(ステップS420)。記憶制御部232は、検出した書き込み時間が所定時間を超えている場合、カレントディレクトリのディレクトリについての上限値を減少させる(ステップS422)。
The
なお、ディレクトリ名リクエストを受信していない場合、書き込み要求を受信しない場合、および書き込み時間が所定時間を超えていない場合、ストレージサーバ200は、本フローチャートの処理を終了する。
It should be noted that the
なお、ストレージシステム1は、ストレージサーバ200によりファイルの書き込み時間が所定時間を超えた場合にファイル数の上限値を変更したが、これに限定されない。フロントサーバ100は、ストレージサーバ200に書き込み要求を送信した時刻から、ストレージサーバ200からレスポンスを受信した時刻までの時間が所定時間を超えた場合に、ストレージサーバ200に通知してよい。ストレージサーバ200は、フロントサーバ100から通知を受信した場合に、カレントディレクトリに対応付けてファイルを書き込むことを制限する。そして、ストレージサーバ200は、新たなカレントディレクトリのディレクトリ名を決定して、フロントサーバ100に新たなカレントディレクトリのディレクトリ名を通知する。
Note that the
また、ストレージシステム1は、ファイルの書き込み時間が所定時間を超える場合にディレクトリに対応する上限値を減少させるが、これに限定されない。ストレージシステム1は、ファイルの書き込み時間が所定時間よりも短い場合に、ディレクトリに対応する上限値を増加させてよい。
Further, the
[第3実施形態の効果]
第3実施形態のストレージシステム1によれば、ファイルの書き込み時間が所定時間を超える場合に、カレントディレクトリのディレクトリに対応する上限値を減少させるので、カレントディレクトリに対応付けて書き込むファイル数を抑制することができる。これにより、ストレージシステム1によれば、ファイルの書き込み時間が長くなることを抑制することができる。
[Effects of Third Embodiment]
According to the
<実施例1>
以下、上述したストレージシステム1の実施例1を説明する。図17は、カレントディレクトリに対応付けて書き込んだファイル数と、秒単位の書き込みリクエストの処理数との関係を示す図である。図17において、実施例1は、上述した実施形態において各ディレクトリに対するファイル数の上限値を「1000」に設定した場合の書き込みリクエストの処理数の変化を表している。実施例2は、上述した実施形態において各ディレクトリに対するファイル数の上限値を「10000」に設定した場合の書き込みリクエストの処理数の変化を表している。比較例1は、1つのカレントディレクトリに対応付けてファイルを書き込んだ場合の書き込みリクエストの処理数の変化を表している。比較例2は、ディレクトリを固定数設定し、さらに、当該ディレクトリの下位にディレクトリを同数設定した場合の書き込みリクエストの処理数の変化を表している。
<Example 1>
The first embodiment of the
実施例1および実施例2におけるリクエストの処理数は、各ディレクトリに対応したファイル数が増加しても大きく低下していないことが分かる。一方、比較例1におけるリクエストの処理数は、ファイル数が一定数を超えると急峻に低下していることが分かる。また、比較例2におけるリクエストの処理数は、ファイル数が一定数を超えても、実施例1および実施例2におけるリクエストの処理数より低いことが分かる。 It can be seen that the number of requests processed in the first and second embodiments does not decrease significantly even if the number of files corresponding to each directory increases. On the other hand, it can be seen that the number of requests processed in Comparative Example 1 sharply decreases when the number of files exceeds a certain number. Further, it can be seen that the number of requests processed in Comparative Example 2 is lower than the number of requests processed in Examples 1 and 2 even if the number of files exceeds a certain number.
<実施例2>
以下、上述したストレージシステム1の実施例2を説明する。図18は、比較例1のディスクオフセット、シーク回数、およびスループットを表す図である。図19は、実施例のディスクオフセット、シーク回数、およびスループットを表す図である。図18および図19の特性は、blktraceを用いて、ストレージサーバ200におけるインターフェース255(ブロックI/Oレイヤ)における信号を検出して得たものである。
<Example 2>
The second embodiment of the
図18および図19を参照すると、実施例におけるディスクオフセットおよびシーク回数は、比較例におけるディスクオフセットおよびシーク回数よりも低いことが分かる。また、実施例におけるスループットは、比較例におけるスループットよりも高いことが分かる。
<実施例3>
以下、上述したストレージシステム1の実施例3を説明する。図20は、磁気ディスク221上に書き込まれたファイルの物理位置の時間的な変化を示す図である。図20を参照すると、実施例は、比較例よりも狭い範囲にファイルを書き込んでいることが分かる。 <ハードウェア構成>
図21は、ユーザ端末400、フロントサーバ100、ストレージサーバ200、およびメタデータデータベースサーバ300のハードウェア構成の一例を示す図である。本図は、ユーザ端末400がスマートフォンなどの携帯電話である例を示している。ユーザ端末400は、例えば、CPU401、RAM402、ROM403、フラッシュメモリなどの二次記憶装置404、タッチパネル405、および無線通信モジュール406が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ナビアプリは、ネットワークNWを介してダウンロードされ、二次記憶装置404に格納される。
18 and 19, it can be seen that the disk offset and the number of seeks in the example are lower than the disk offset and the number of seeks in the comparative example. Further, it can be seen that the throughput in the example is higher than the throughput in the comparative example.
<Example 3>
The third embodiment of the
FIG. 21 is a diagram showing an example of the hardware configuration of the
フロントサーバ100は、例えば、NIC101、CPU102、RAM103、ROM104、フラッシュメモリやHDDなどの二次記憶装置105、およびドライブ装置106が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置106には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置105、またはドライブ装置106に装着された可搬型記憶媒体に記憶されたプログラムがDMAコントローラ(不図示)などによってRAM103に展開され、CPU102によって実行されることで、各サーバの機能部が実現される。
The
ストレージサーバ200は、例えば、NIC201、CPU202、RAM203、ROM204、フラッシュメモリやHDDなどの二次記憶装置205、およびドライブ装置206が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置206には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置205、またはドライブ装置206に装着された可搬型記憶媒体に記憶されたプログラムがDMAコントローラ(不図示)などによってRAM203に展開され、CPU202によって実行されることで、各サーバの機能部が実現される。
The
メタデータデータベースサーバ300は、例えば、NIC301、CPU302、RAM303、ROM304、フラッシュメモリやHDDなどの二次記憶装置305、およびドライブ装置306が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置306には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置305、またはドライブ装置306に装着された可搬型記憶媒体に記憶されたプログラムがDMAコントローラ(不図示)などによってRAM303に展開され、CPU302によって実行されることで、各サーバの機能部が実現される。
The
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。 As described above, the embodiments for carrying out the present invention have been described using the embodiments, but the present invention is not limited to such embodiments, and various modifications and substitutions are made within the scope not departing from the gist of the present invention. Can be added.
1…ストレージシステム
100…フロントサーバ
130…フロント制御部
132…アプリケーション処理部
134…ファイル管理部
136…キャッシュメモリ
136A…ディレクトリ情報
200…ストレージサーバ
210…ファイルストレージ部
230…ストレージ制御部
232…記憶制御部
234…ファイルカウンタ部
244…ファイル数記憶部
244A…カウンタテーブル
400…ユーザ端末
1...
Claims (10)
各ディレクトリに対応して記憶装置に書き込まれるファイル数に設けられる上限の範囲内で、前記受付部により受け付けられた書き込み要求に応答して、指定された前記ディレクトリ名のディレクトリに対応付けて前記ファイルを前記記憶装置に書き込む制御部と、
を備え、
前記制御部は、前記ファイルを前記記憶装置に書き込む際に、書込み指示を出力してから書込み完了の応答が入力されるまでの時間を計測し、計測した結果である前記ファイルの書き込み時間が所定時間を超えている場合、各ディレクトリに対応付けて書き込まれるファイル数に設けられる前記上限を減少させる、
ストレージ装置。 A reception unit that receives write requests for files with directory names specified,
Within the upper limit of the number of files written in the storage device corresponding to each directory, in response to the write request accepted by the accepting unit, the file is associated with the directory with the specified directory name. A control unit for writing the
Equipped with
When writing the file to the storage device , the control unit measures a time from outputting a write instruction to inputting a write completion response, and a predetermined write time of the file, which is a measurement result. If the time is exceeded , decrease the upper limit provided for the number of files written in association with each directory,
Storage device.
請求項1に記載のストレージ装置。 The control unit counts the number of files associated with each directory, and when the number of counted files exceeds the upper limit, restricts writing the file in association with the directory having the directory name,
The storage device according to claim 1.
請求項2に記載のストレージ装置。 The control unit counts the number of files associated with each directory, determines a new directory name when the counted number of files exceeds the upper limit, and transmits the determined new directory name to an external device. To do
The storage device according to claim 2.
請求項3に記載のストレージ装置。 When the receiving unit receives a write request for a file in which the new directory name is specified, the control unit writes management information of a directory corresponding to the new directory name to a memory and stores the new directory name Writing the file to the storage device in association with a directory,
The storage device according to claim 3.
請求項3に記載のストレージ装置。 When the control unit determines the new directory name, the control unit writes management information of a directory corresponding to the determined new directory name in a memory.
The storage device according to claim 3.
請求項4または5に記載のストレージ装置。 When determining the new directory name, the control unit associates the file with the directory with the new directory name without writing the file with the directory having the number of files exceeding the upper limit. Write to storage,
The storage device according to claim 4 or 5.
前記受付部により端末装置からのリクエストを受け付けた場合に、新たな書き込み要求に基づいて書き込まれるファイルに対応付け可能なカレントディレクトリのディレクトリ名を通知部に要求する要求部と、
前記要求部から供給された要求に対して、前記カレントディレクトリのディレクトリ名を前記要求部に通知する通知部と、を含む、
請求項1から6のうちいずれか1項に記載のストレージ装置。 The control unit is
When a request from the terminal device is received by the reception unit, a request unit that requests the notification unit for the directory name of the current directory that can be associated with the file to be written based on the new write request
A notification unit that notifies the request unit of the directory name of the current directory in response to the request supplied from the request unit.
The storage device according to any one of claims 1 to 6.
新たな書き込み要求に基づいて書き込まれるファイルに対応付け可能なカレントディレクトリが変更された場合に、変更されたカレントディレクトリのディレクトリ名を通知することを通知部に要求する要求部と、
前記カレントディレクトリを変更した場合に、前記カレントディレクトリのディレクトリ名を前記要求部に通知する通知部と、を含む、
請求項1から6のうちいずれか1項にストレージ装置。 The control unit is
If the current directory can be associated with the file to be written on the basis of the new write request is changed, a requesting unit for requesting the notification unit to notify the directory name of the changed current directory,
A notification unit that notifies the request unit of the directory name of the current directory when the current directory is changed,
The storage device according to any one of claims 1 to 6.
ディレクトリ名を指定したファイルの書き込み要求を受け付け、
各ディレクトリに対応して記憶装置に書き込まれるファイル数に設けられる上限の範囲内で、受け付けた書き込み要求に応答して、指定された前記ディレクトリ名のディレクトリに対応付けて前記ファイルを前記記憶装置に書き込み、
前記ファイルを前記記憶装置に書き込む際に、書込み指示を出力してから書込み完了の応答が入力されるまでの時間を計測し、計測した結果である前記ファイルの書き込み時間が所定時間を超えている場合、各ディレクトリに対応付けて書き込まれるファイル数に設けられる前記上限を減少させる、
ファイル書き込み方法。 Computer
Accepts a write request for a file with a directory name specified,
Within the upper limit provided for the number of files written to the storage device corresponding to each directory, in response to the received write request, the file is stored in the storage device in association with the directory having the specified directory name. writing,
When writing the file to the storage device, the time from the output of the write instruction to the input of the write completion response is measured, and the write time of the file, which is the measurement result, exceeds the predetermined time. In this case , reduce the upper limit provided for the number of files written in association with each directory,
File writing method.
ディレクトリ名を指定したファイルの書き込み要求を受け付けさせ、
各ディレクトリに対応して記憶装置に書き込まれるファイル数に設けられる上限の範囲内で、受け付けた書き込み要求に応答して、指定された前記ディレクトリ名のディレクトリに対応付けて前記ファイルを前記記憶装置に書き込ませ、
前記ファイルを前記記憶装置に書き込ませる際に、書込み指示を出力してから書込み完了の応答が入力されるまでの時間を計測し、計測した結果である前記ファイルの書き込み時間が所定時間を超えている場合、各ディレクトリに対応付けて書き込まれるファイル数に設けられる前記上限を減少させることを行わせる、
プログラム。 On the computer,
Make a file write request with a directory name specified,
Within the upper limit provided for the number of files written to the storage device corresponding to each directory, in response to the received write request, the file is stored in the storage device in association with the directory having the specified directory name. Let me write
When writing the file to the storage device, the time from the output of the write instruction to the input of the write completion response is measured, and the write time of the file as the measurement result exceeds the predetermined time. If the number of files to be written is associated with each directory, the upper limit provided for the number of files to be written is reduced .
program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017159250A JP6720120B2 (en) | 2017-08-22 | 2017-08-22 | Storage device, file writing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017159250A JP6720120B2 (en) | 2017-08-22 | 2017-08-22 | Storage device, file writing method, and program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016104303A Division JP6227055B1 (en) | 2016-05-25 | 2016-05-25 | Storage system and file writing method |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2017212009A JP2017212009A (en) | 2017-11-30 |
JP2017212009A5 JP2017212009A5 (en) | 2019-05-23 |
JP6720120B2 true JP6720120B2 (en) | 2020-07-08 |
Family
ID=60476192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017159250A Active JP6720120B2 (en) | 2017-08-22 | 2017-08-22 | Storage device, file writing method, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6720120B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6780576B2 (en) | 2017-04-27 | 2020-11-04 | トヨタ自動車株式会社 | Analysis method presentation system, method and program |
-
2017
- 2017-08-22 JP JP2017159250A patent/JP6720120B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017212009A (en) | 2017-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009522611A (en) | Low storage capacity portable media player | |
US11050550B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
WO2015101101A1 (en) | Channel access method and system | |
CN112558872A (en) | Data processing method and device, storage medium and electronic equipment | |
JP6720120B2 (en) | Storage device, file writing method, and program | |
CN106211321B (en) | For the method and apparatus for the positional information for determining user equipment | |
CN109660940B (en) | A method and apparatus for generating information | |
JP6227055B1 (en) | Storage system and file writing method | |
CN107209656B (en) | Adjusting speaker settings | |
KR20090020327A (en) | Method and apparatus for automatically receiving and providing content | |
WO2019228009A1 (en) | Lsm tree optimization method and device and computer equipment | |
KR20150139546A (en) | Removable storage device identity and configuration information | |
JP2015185119A (en) | Position content providing server, position content providing method, and program for position content providing server | |
CN107743151B (en) | Content push method, device, mobile terminal and server | |
US12244678B2 (en) | Content management systems providing zero recovery point objective | |
WO2016169441A1 (en) | Message pushing method and apparatus | |
JP6306992B2 (en) | Account management method, account management server, and account management system | |
US10375370B2 (en) | Audio capture on mobile client devices | |
JP2008250864A (en) | Data storage method, data storage system, and information processing apparatus | |
US11086849B2 (en) | Methods and systems for reading data based on plurality of blockchain networks | |
US20210144217A1 (en) | Service communication proxy apparatus and method | |
CN111931797B (en) | Method, device and equipment for identifying network to which service belongs | |
KR100647272B1 (en) | Method for providing route guidance information to a predetermined communication terminal and a route guidance service providing system employing the above method | |
JP6498462B2 (en) | User information registration server, user information registration method, and user information registration program | |
CN113986987B (en) | A method and device for identifying abnormal users |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190408 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20191101 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20191108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200421 |
|
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: 20200609 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200617 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6720120 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |