JP4315876B2 - ファイル管理プログラム、ファイル管理方法、及びファイル管理装置 - Google Patents
ファイル管理プログラム、ファイル管理方法、及びファイル管理装置 Download PDFInfo
- Publication number
- JP4315876B2 JP4315876B2 JP2004237550A JP2004237550A JP4315876B2 JP 4315876 B2 JP4315876 B2 JP 4315876B2 JP 2004237550 A JP2004237550 A JP 2004237550A JP 2004237550 A JP2004237550 A JP 2004237550A JP 4315876 B2 JP4315876 B2 JP 4315876B2
- Authority
- JP
- Japan
- Prior art keywords
- hash value
- physical block
- value range
- block number
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
Description
メインメモリ内にディレクトリインデックス表を構成する手法である。1回目の当該ディレクトリ検索時に、dirhashと呼ばれるindexを作成し、2回目以降の検索を高速化する。この方法では1回目の検索時間は改善されないが、ディレクトリファイルレイアウトを既存のものから一切変更しなくて良いというメリットがある(例えば、非特許文献1参照)。
メインメモリ外にディレクトリファイル毎に名前のハッシュ値をキーとするB+Treeを構成し、ディレクトリエントリをB+Treeのレコードとして管理する(例えば、非特許文献2参照)。
extensible hashingというハッシュ技術を用いて、名前を入力情報とするハッシュ関数によりディレクトリエントリの論理ブロック番号の候補を決定する。初めは1ブロックから開始し、ブロックが満杯になったらディレクトリサイズを2の階乗個のブロックまで拡張する。満杯になったらブロックはsplitし、ディレクトリエントリをハッシュ値に従って適切な論理ブロックのほうへ振り分ける(非特許文献3)。
既存の論理ブロックの線型空間上に、名前のハッシュ値をキーとするB+Treeを構成する。既存ディレクトリファイルのレイアウトを変更しなくても良いような工夫が施されている(非特許文献4)。
I.Dowse and D.Malone. "Recent File System Optimisation on FreeBSD". In Proc. of the USENIX Annual Technical Conference(FREENIX Track), Monterey, California. June 2002. A. Sweeney, et al. "Scalability in the XFS file system". In USENIX Technical Conference, pp1-14. Usenix, January 1996. F. Schmuck and R. Haskin. "GPFS: A Shared-Disk File System for Large Computing Clusters," In Proc. of the First Conference on File and Storage Technologies (FAST). January 2002. D. Phillips. "A Directory Index for EXT2," In Proceedings of the Fifth Annual Linux Showcase and Conference, November 2001.
・第1の課題は、メモリ搭載量制限による性能向上の限界が存在することである。即ち、メモリ搭載量の制限から、巨大ディレクトリ用のインデックス表の構成、多数のディレクトリのインデックス表の同時構成が、根本的に実現しにくい。例えば「非特許文献1」の技術がこの課題を抱えている。すなわち、ディレクトリインデックス表はメインメモリ外で構成するほうが望ましい。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図2は、本実施の形態のシステム構成を示す図である。このシステムでは、ネットワーク10を介して、メタデータサーバ100、アクセスクライアントホスト210,220,230、クライアント310,320,・・・が接続されている。
図5は、メタデータ管理部の機能を示すブロック図である。メタデータ管理部110は、要求受付部111、ハッシュ値生成部112、物理ブロック番号取得部113、ディレクトリ処理部114、及び結果通知部115を有している。
・ハッシュ関数の第1の例
名前情報を構成する全文字の文字コードを足し合わせる。232−1の値を超えた場合、超えた分のデータ(例えば、32ビットを超えた上位のビット)は切り捨てる。
名前情報を構成する文字列の先頭から、適当なバイト幅(例えば、4バイト)の部分的文字列を繰り返し抽出する。そして、部分的文字列を抽出する毎に、先に抽出されている部分的文字列との間でXOR演算(排他的論理和演算)を行う。名前情報の文字列の最後まで部分的文字列の抽出及びXOR演算が完了したとき、最後のXOR演算の結果をハッシュ値とする。
図6は、ボリューム内のデータ構造例を示す図である。データボリューム410内の記憶領域は、複数の物理ブロック411,412,・・・で構成されている。各物理ブロック411,412,・・・には、非ディレクトリファイルのデータ411a,412a,・・・が格納されている。
図7は、extent表のデータ構造例を示す図である。extent表422には、非ディレクトリファイルを構成するデータの論理ブロック番号、データの長さ、及び物理ブロック番号が、互いに関連づけられて登録されている。そして、関連付けられた、論理ブロック番号、データの長さ、及び物理ブロック番号の組によって、extent情報422a,422b,・・・が構成されている。
図8は、非ディレクトリファイルへのアクセス状況を示す図である。図8には、非ディレクトリファイルのデータイメージ20を示している。非ディレクトリファイル内の任意のデータにアクセスする場合、そのファイルの先頭からのオフセットでアクセス対象が指定される。図8の例では、先頭から所定の長さのデータ21(内容を「データA」とする)が配置され、そのデータ21に続けてファイルの最後(EOF)までデータ22(内容を「データB」とする)が配置されている。
図9は、ハッシュ値レンジ表のデータ構造例を示す図である。ハッシュ値レンジ表424には、ハッシュ値レンジ開始値、データの長さ、及び物理ブロック番号が、互いに関連づけられて登録されている。そして、関連付けられた、ハッシュ値レンジ開始値、データの長さ、及び物理ブロック番号の組によって、ハッシュ値レンジ情報424a,424b,・・・が構成されている。
図10は、ディレクトリファイルへのアクセス状況を示す図である。図10には、ハッシュ値レンジイメージ30を示している。図10の例では、ハッシュ値下限とハッシュ値上限との間が、ハッシュ値レンジ31とハッシュ値レンジ32とに分けられている。
・名前挿入(direnter)
アプリケーション211からディレクトリ配下へのファイル追加指示が出されたときに、アクセス管理部212により、ディレクトリファイルに対する名前挿入の処理要求が出される。UNIX(登録商標)系のOSであれば、CREATE、MKDIR、SYMLINKなどのI/O要求が発生したとき、指定された親ディレクトリの配下にファイルが作成される。このとき親ディレクトリのディレクトリファイル内に、作成されたファイルのレコード(名前情報とdinode番号)が挿入される。
アプリケーション211から任意のディレクトリからのファイルの削除指示が出されたときに、アクセス管理部212により、ディレクトリファイルに対する名前削除の処理要求が出される。UNIX系のOSであれば、REMOVE・RMDIRなどのI/O要求が発生したとき、指定されたファイルの名前情報が、その親ディレクトリから削除される。
アプリケーション211からディレクトリ配下に任意のファイル名のファイルがあるか否かの確認指示が出されたとき、アクセス管理部212により、ディレクトリファイルに対する名前検索の処理要求が出される。UNIX系のOSであれば、LOOKUP要求が発生したとき、指定された親ディレクトリの直下から、指定された名前を持つファイル(非ディレクトリファイルもしくはディレクトリファイル)が検索される。
アプリケーション211からディレクトリ配下の全ファイルのファイル名の取得指示が出された際に、アクセス管理部212により、名前列挙の処理要求が出される。UNIX系のOSであれば、READDIR要求が発生したとき、指定親ディレクトリの管理する直下のファイル/ディレクトリの全名前情報が列挙される。
図11は、名前挿入処理のフローチャートを示す図である。以下、図11に示す処理をステップ番号に沿って説明する。なお、この処理は、アクセス管理部212からメタデータ管理部110に対して、名前挿入を指示する処理要求が出されたときに実行される。
第1の状態(ST1)は、ディレクトリファイルの作成直後の状態を示している。ディレクトリファイルが作成されたときは、ハッシュ値レンジ情報には、0〜232−1の範囲のハッシュ値レンジ41が設定される。そして、ハッシュ値レンジ情報で示される物理ブロック番号[300」に該当する物理ブロック51にレコードが格納される(図12では、格納されたレコードを編みかけで示している)。
第5の状態(ST5)は、ハッシュ値レンジ42が分割され、ハッシュ値レンジ44,45が生成されている。ハッシュ値レンジ44には物理ブロック番号[340]の物理ブロック53が対応付けられており、ハッシュ値レンジ45には物理ブロック番号[520]の物理ブロック52が対応付けられている。
図13は、名前削除処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。なお、この処理は、アクセス管理部212からメタデータ管理部110に対して、名前削除を指示する処理要求が出されたときに実行される。
図15は、名前検索処理の手順を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。なお、この処理は、アクセス管理部212からメタデータ管理部110に対して、名前検索を指示する処理要求が出されたときに実行される。
次に、名前列挙処理について説明する。なお、名前列挙処理では、クッキー値を使用して名前列挙開始位置を管理する。
[ステップS44]物理ブロック番号取得部113は、列挙開始対象のハッシュ値レンジ情報を特定する。具体的には、物理ブロック番号取得部113は、ハッシュ値レンジ表から、ステップS43で抽出したハッシュ値を包含するハッシュ値レンジが設定されたハッシュ値レンジ情報を割り出す。さらに、物理ブロック番号取得部113は、特定したハッシュ値レンジ情報で示される物理ブロック番号をディレクトリ処理部114に渡す。
[ステップS48]ディレクトリ処理部114は、ステップS46の処理がシステム制限(名前列挙数の上限に達したこと)で停止したか否かを判断する。システム制限で停止した場合、処理がステップS49に進められる。システム制限以外で停止した場合、処理がステップS50に進められる。
前記コンピュータを、
処理対象ファイルの名前情報を含む処理要求を受け取ると、前記名前情報に所定のハッシュ関数を適用し、前記処理対象ファイルのハッシュ値を生成するハッシュ値生成手段、
ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記処理対象ファイルのハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得する物理ブロック番号取得手段、
前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行うディレクトリ処理手段、
として機能させることを特徴とするファイル管理プログラム。
前記コンピュータが、
ハッシュ値生成手段が、処理対象ファイルの名前情報を含む処理要求を受け取ると、前記名前情報に所定のハッシュ関数を適用し、前記処理対象ファイルのハッシュ値を生成し、
物理ブロック番号取得手段が、ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記処理対象ファイルのハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得し、
ディレクトリ処理手段が、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行う、
ことを特徴とするファイル管理方法。
処理対象ファイルの名前情報を含む処理要求を受け取ると、前記名前情報に所定のハッシュ関数を適用し、前記処理対象ファイルのハッシュ値を生成するハッシュ値生成手段と、
ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記処理対象ファイルのハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得する物理ブロック番号取得手段と、
前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行うディレクトリ処理手段と、
を有することを特徴とするファイル管理装置。
前記コンピュータを、
処理対象ファイルの名前情報を含む処理要求を受け取ると、前記名前情報に所定のハッシュ関数を適用し、前記処理対象ファイルのハッシュ値を生成するハッシュ値生成手段、
ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記処理対象ファイルのハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得する物理ブロック番号取得手段、
前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行うディレクトリ処理手段、
として機能させることを特徴とするファイル管理プログラムを記録したコンピュータ読み取り可能な記録媒体。
1a ハッシュ値レンジ表
1c 物理ブロック
1d レコード
2 ハッシュ値生成手段
3 物理ブロック番号取得手段
4 ディレクトリ処理手段
5 処理要求
5a 名前情報
6 ハッシュ値
7 物理ブロック番号
Claims (8)
- ストレージデバイス内のファイルを管理するために、コンピュータに対してファイル管理処理を行わせるファイル管理プログラムにおいて、
前記コンピュータを、
処理要求を受け取ると、処理対象がディレクトリファイルか非ディレクトリファイルかを判断する要求受付手段、
前記処理要求の処理対象がディレクトリファイルの場合、前記処理要求に含まれる名前情報に所定のハッシュ関数を適用し、前記名前情報のハッシュ値を生成するハッシュ値生成手段、
前記処理要求の処理対象が非ディレクトリファイルの場合、dinodeを参照してアクセス対象データの論理ブロック番号を取得し、さらに論理ブロック番号と物理ブロック番号との対応関係を示すextent表を参照して、前記アクセス対象データの物理ブロック番号を取得し、前記処理要求の処理対象がディレクトリファイルの場合、前記extent表に代えて、ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得する物理ブロック番号取得手段、
前記処理要求の処理対象がディレクトリファイルの場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行うディレクトリ処理手段、
として機能させ、
前記ディレクトリ処理手段は、
前記処理要求において前記名前情報の挿入が指示されている場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記物理ブロック内のデータに前記レコードを挿入可能か否かを、挿入前に判断し、
挿入可能な場合、前記物理ブロック内の前記データに前記名前情報を含む前記レコードを挿入し、
挿入不可能な場合、前記物理ブロック番号取得手段で抽出された前記ハッシュ値レンジ情報のハッシュ値レンジを複数のハッシュ値レンジに分割し、分割後の前記ハッシュ値レンジそれぞれに応じた複数のハッシュ値レンジ情報を前記ハッシュ値レンジ表に登録し、分割後の前記ハッシュ値レンジのうち前記名前情報のハッシュ値を包含する前記ハッシュ値レンジの前記ハッシュ値レンジ情報で示される物理ブロック番号に該当する物理ブロック内のデータに、前記名前情報を含む前記レコードを挿入する、
ことを特徴とするファイル管理プログラム。 - 前記ディレクトリ処理手段は、前記レコードを挿入することで前記物理ブロックのデータ量が所定の上限値を超える場合、前記レコードを挿入不可能と判断することを特徴とする請求項1記載のファイル管理プログラム。
- ストレージデバイス内のファイルを管理するために、コンピュータに対してファイル管理処理を行わせるファイル管理プログラムにおいて、
前記コンピュータを、
処理要求を受け取ると、処理対象がディレクトリファイルか非ディレクトリファイルかを判断する要求受付手段、
前記処理要求の処理対象がディレクトリファイルの場合、前記処理要求に含まれる名前情報に所定のハッシュ関数を適用し、前記名前情報のハッシュ値を生成するハッシュ値生成手段、
前記処理要求の処理対象が非ディレクトリファイルの場合、dinodeを参照してアクセス対象データの論理ブロック番号を取得し、さらに論理ブロック番号と物理ブロック番号との対応関係を示すextent表を参照して、前記アクセス対象データの物理ブロック番号を取得し、前記処理要求の処理対象がディレクトリファイルの場合、前記extent表に代えて、ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得する物理ブロック番号取得手段、
前記処理要求の処理対象がディレクトリファイルの場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行うディレクトリ処理手段、
として機能させ、
前記ディレクトリ処理手段は、
前記処理要求において前記名前情報の削除が指示されている場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記物理ブロック内のデータから前記名前情報を含む前記レコードを削除し、
前記物理ブロック内の前記データから前記レコードを削除後、前記レコードの削除が行われた前記物理ブロック内の残りのデータ量が所定の下限値以下になったか否かにより、前記ハッシュ値レンジ情報の統合の要否を判断し、
統合が必要と判断された場合、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を、他のハッシュ値レンジ情報と統合して前記ハッシュ値レンジ表に登録する、
ことを特徴とするファイル管理プログラム。 - 前記ディレクトリ処理手段は、前記ハッシュ値レンジ情報の統合を行う場合、前記処理対象ファイルのハッシュ値を包含する前記ハッシュ値レンジに対して隣接するハッシュ値レンジが設定された他のハッシュ値レンジ情報のうち、対応する前記物理ブロックのデータ量が少ない方の前記ハッシュ値レンジ情報を統合相手とすることを特徴とする請求項3記載のファイル管理プログラム。
- コンピュータにより、ストレージデバイス内のファイルを管理するためのファイル管理方法において、
前記コンピュータが、
処理要求を受け取ると、処理対象がディレクトリファイルか非ディレクトリファイルかを判断し、
前記処理要求の処理対象がディレクトリファイルの場合、前記処理要求に含まれる名前情報に所定のハッシュ関数を適用し、前記名前情報のハッシュ値を生成し、
前記処理要求の処理対象が非ディレクトリファイルの場合、dinodeを参照してアクセス対象データの論理ブロック番号を取得し、さらに論理ブロック番号と物理ブロック番号との対応関係を示すextent表を参照して、前記アクセス対象データの物理ブロック番号を取得し、前記処理要求の処理対象がディレクトリファイルの場合、前記extent表に代えて、ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得し、
前記処理要求の処理対象がディレクトリファイルの場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行い、
ディレクトリファイルを処理対象とする前記処理要求において前記名前情報の挿入が指示されている場合、取得された前記物理ブロック番号に該当する前記物理ブロック内のデータに前記レコードを挿入可能か否かを、挿入前に判断し、
挿入可能な場合、前記物理ブロック内の前記データに前記名前情報を含む前記レコードを挿入し、
挿入不可能な場合、抽出された前記ハッシュ値レンジ情報のハッシュ値レンジを複数のハッシュ値レンジに分割し、分割後の前記ハッシュ値レンジそれぞれに応じた複数のハッシュ値レンジ情報を前記ハッシュ値レンジ表に登録し、分割後の前記ハッシュ値レンジのうち前記名前情報のハッシュ値を包含する前記ハッシュ値レンジの前記ハッシュ値レンジ情報で示される物理ブロック番号に該当する物理ブロック内のデータに、前記名前情報を含む前記レコードを挿入する、
ことを特徴とするファイル管理方法。 - コンピュータにより、ストレージデバイス内のファイルを管理するためのファイル管理方法において、
前記コンピュータが、
処理要求を受け取ると、処理対象がディレクトリファイルか非ディレクトリファイルかを判断し、
前記処理要求の処理対象がディレクトリファイルの場合、前記処理要求に含まれる名前情報に所定のハッシュ関数を適用し、前記名前情報のハッシュ値を生成し、
前記処理要求の処理対象が非ディレクトリファイルの場合、dinodeを参照してアクセス対象データの論理ブロック番号を取得し、さらに論理ブロック番号と物理ブロック番号との対応関係を示すextent表を参照して、前記アクセス対象データの物理ブロック番号を取得し、前記処理要求の処理対象がディレクトリファイルの場合、前記extent表に代えて、ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得し、
前記処理要求の処理対象がディレクトリファイルの場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行い、
ディレクトリファイルを処理対象とする前記処理要求において前記名前情報の削除が指示されている場合、取得された前記物理ブロック番号に該当する前記物理ブロック内のデータから前記名前情報を含む前記レコードを削除し、
前記物理ブロック内の前記データから前記レコードを削除後、前記レコードの削除が行われた前記物理ブロック内の残りのデータ量が所定の下限値以下になったか否かにより、前記ハッシュ値レンジ情報の統合の要否を判断し、
統合が必要と判断された場合、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を、他のハッシュ値レンジ情報と統合して前記ハッシュ値レンジ表に登録する、
ことを特徴とするファイル管理方法。 - ストレージデバイス内のファイルを管理するためのファイル管理装置において、
処理要求を受け取ると、処理対象がディレクトリファイルか非ディレクトリファイルかを判断する要求受付手段と、
前記処理要求の処理対象がディレクトリファイルの場合、前記処理要求に含まれる名前情報に所定のハッシュ関数を適用し、前記名前情報のハッシュ値を生成するハッシュ値生成手段と、
前記処理要求の処理対象が非ディレクトリファイルの場合、dinodeを参照してアクセス対象データの論理ブロック番号を取得し、さらに論理ブロック番号と物理ブロック番号との対応関係を示すextent表を参照して、前記アクセス対象データの物理ブロック番号を取得し、前記処理要求の処理対象がディレクトリファイルの場合、前記extent表に代えて、ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得する物理ブロック番号取得手段と、
前記処理要求の処理対象がディレクトリファイルの場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行うディレクトリ処理手段と、
を有し、
前記ディレクトリ処理手段は、
前記処理要求において前記名前情報の挿入が指示されている場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記物理ブロック内のデータに前記レコードを挿入可能か否かを、挿入前に判断し、
挿入可能な場合、前記物理ブロック内の前記データに前記名前情報を含む前記レコードを挿入し、
挿入不可能な場合、前記物理ブロック番号取得手段で抽出された前記ハッシュ値レンジ情報のハッシュ値レンジを複数のハッシュ値レンジに分割し、分割後の前記ハッシュ値レンジそれぞれに応じた複数のハッシュ値レンジ情報を前記ハッシュ値レンジ表に登録し、分割後の前記ハッシュ値レンジのうち前記名前情報のハッシュ値を包含する前記ハッシュ値レンジの前記ハッシュ値レンジ情報で示される物理ブロック番号に該当する物理ブロック内のデータに、前記名前情報を含む前記レコードを挿入する、
ことを特徴とするファイル管理装置。 - ストレージデバイス内のファイルを管理するためのファイル管理装置において、
処理要求を受け取ると、処理対象がディレクトリファイルか非ディレクトリファイルかを判断する要求受付手段と、
前記処理要求の処理対象がディレクトリファイルの場合、前記処理要求に含まれる名前情報に所定のハッシュ関数を適用し、前記名前情報のハッシュ値を生成するハッシュ値生成手段と、
前記処理要求の処理対象が非ディレクトリファイルの場合、dinodeを参照してアクセス対象データの論理ブロック番号を取得し、さらに論理ブロック番号と物理ブロック番号との対応関係を示すextent表を参照して、前記アクセス対象データの物理ブロック番号を取得し、前記処理要求の処理対象がディレクトリファイルの場合、前記extent表に代えて、ハッシュ値の包含範囲を定義したハッシュ値レンジと、前記ストレージデバイス内のデータ格納領域を一意に示す物理ブロック番号との組からなる1以上のハッシュ値レンジ情報が格納されているハッシュ値レンジ表を参照し、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を抽出し、抽出した前記ハッシュ値レンジ情報から前記物理ブロック番号を取得する物理ブロック番号取得手段と、
前記処理要求の処理対象がディレクトリファイルの場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記ストレージデバイス内の物理ブロックに対して、前記名前情報を含むレコードに関する前記処理要求に従った処理を行うディレクトリ処理手段と、
を有し、
前記ディレクトリ処理手段は、
前記処理要求において前記名前情報の削除が指示されている場合、前記物理ブロック番号取得手段で取得された前記物理ブロック番号に該当する前記物理ブロック内のデータから前記名前情報を含む前記レコードを削除し、
前記物理ブロック内の前記データから前記レコードを削除後、前記レコードの削除が行われた前記物理ブロック内の残りのデータ量が所定の下限値以下になったか否かにより、前記ハッシュ値レンジ情報の統合の要否を判断し、
統合が必要と判断された場合、前記名前情報のハッシュ値を包含する前記ハッシュ値レンジが設定された前記ハッシュ値レンジ情報を、他のハッシュ値レンジ情報と統合して前記ハッシュ値レンジ表に登録する、
ことを特徴とするファイル管理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004237550A JP4315876B2 (ja) | 2004-08-17 | 2004-08-17 | ファイル管理プログラム、ファイル管理方法、及びファイル管理装置 |
US11/036,678 US7454405B2 (en) | 2004-08-17 | 2005-01-14 | File management program, file management process, and file management apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004237550A JP4315876B2 (ja) | 2004-08-17 | 2004-08-17 | ファイル管理プログラム、ファイル管理方法、及びファイル管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006058965A JP2006058965A (ja) | 2006-03-02 |
JP4315876B2 true JP4315876B2 (ja) | 2009-08-19 |
Family
ID=35481840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004237550A Expired - Fee Related JP4315876B2 (ja) | 2004-08-17 | 2004-08-17 | ファイル管理プログラム、ファイル管理方法、及びファイル管理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7454405B2 (ja) |
JP (1) | JP4315876B2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8560503B1 (en) * | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
US7734603B1 (en) * | 2006-01-26 | 2010-06-08 | Netapp, Inc. | Content addressable storage array element |
US7707136B2 (en) * | 2006-03-31 | 2010-04-27 | Amazon Technologies, Inc. | System and method for providing high availability data |
KR100809318B1 (ko) * | 2006-04-04 | 2008-03-05 | 삼성전자주식회사 | 파일 관리 장치 및 방법 |
JP4578454B2 (ja) * | 2006-09-21 | 2010-11-10 | 株式会社ソニー・コンピュータエンタテインメント | データベース生成方法および情報処理装置 |
US8161353B2 (en) * | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US8296337B2 (en) | 2006-12-06 | 2012-10-23 | Fusion-Io, Inc. | Apparatus, system, and method for managing data from a requesting device with an empty data token directive |
US8151082B2 (en) * | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US7827201B1 (en) * | 2007-04-27 | 2010-11-02 | Network Appliance, Inc. | Merging containers in a multi-container system |
US7836226B2 (en) | 2007-12-06 | 2010-11-16 | Fusion-Io, Inc. | Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment |
US9519540B2 (en) | 2007-12-06 | 2016-12-13 | Sandisk Technologies Llc | Apparatus, system, and method for destaging cached data |
US20090204967A1 (en) * | 2008-02-08 | 2009-08-13 | Unisys Corporation | Reporting of information pertaining to queuing of requests |
WO2011111837A1 (ja) * | 2010-03-11 | 2011-09-15 | 楽天株式会社 | 情報処理方法、情報処理装置、プログラム及び記録媒体 |
US8660996B2 (en) * | 2010-09-29 | 2014-02-25 | Red Hat, Inc. | Monitoring files in cloud-based networks |
JP2012137850A (ja) * | 2010-12-24 | 2012-07-19 | Fujitsu Ltd | 分散ファイル操作プログラム、分散ファイル操作装置、及び分散ファイル操作方法 |
US9141527B2 (en) | 2011-02-25 | 2015-09-22 | Intelligent Intellectual Property Holdings 2 Llc | Managing cache pools |
JP5733124B2 (ja) * | 2011-09-12 | 2015-06-10 | 富士通株式会社 | データ管理装置、データ管理システム、データ管理方法、及びプログラム |
US9251086B2 (en) | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US20130218934A1 (en) * | 2012-02-17 | 2013-08-22 | Hitachi, Ltd. | Method for directory entries split and merge in distributed file system |
US20130226888A1 (en) * | 2012-02-28 | 2013-08-29 | Netapp, Inc. | Systems and methods for caching data files |
US9208082B1 (en) * | 2012-03-23 | 2015-12-08 | David R. Cheriton | Hardware-supported per-process metadata tags |
US9438447B2 (en) | 2012-12-18 | 2016-09-06 | International Business Machines Corporation | Flow distribution algorithm for aggregated links in an ethernet switch |
FR3001313B1 (fr) * | 2013-01-22 | 2016-02-12 | Univ Aix Marseille | Procede de verification d'au moins une metadonnee d'un bloc de donnees numeriques |
JP6521978B2 (ja) | 2013-09-09 | 2019-05-29 | ユナイテッドレックス コーポレーションUnitedlex Corp. | 対話型事案管理システム |
JP6515635B2 (ja) * | 2015-03-30 | 2019-05-22 | 日本電気株式会社 | 情報処理装置、情報処理システム、情報処理方法、及び、プログラム |
US11232079B2 (en) * | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10698829B2 (en) * | 2015-07-27 | 2020-06-30 | Datrium, Inc. | Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration |
CN108241710A (zh) * | 2016-12-27 | 2018-07-03 | 中移(苏州)软件技术有限公司 | 一种文件创建方法、装置以及文件查询方法、装置 |
CN109446160A (zh) * | 2018-11-06 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种文件读取方法、系统、装置及计算机可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5995648A (ja) | 1982-11-25 | 1984-06-01 | Mitsubishi Electric Corp | フアイル探索方式 |
US5202982A (en) * | 1990-03-27 | 1993-04-13 | Sun Microsystems, Inc. | Method and apparatus for the naming of database component files to avoid duplication of files |
JPH0540680A (ja) | 1991-08-05 | 1993-02-19 | Hitachi Software Eng Co Ltd | フアイル階層管理システム |
US6308320B1 (en) * | 1999-01-15 | 2001-10-23 | Hewlett-Packard Company | Method and apparatus for incremental selective compilation of intermediate code files during computer system compilation and linking |
JP2000357115A (ja) * | 1999-06-15 | 2000-12-26 | Nec Corp | ファイル検索装置及びファイル検索方法 |
US6643654B1 (en) * | 2001-06-25 | 2003-11-04 | Network Appliance, Inc. | System and method for representing named data streams within an on-disk structure of a file system |
US7240211B2 (en) * | 2001-10-09 | 2007-07-03 | Activcard Ireland Limited | Method of providing an access request to a same server based on a unique identifier |
JP4162184B2 (ja) * | 2001-11-14 | 2008-10-08 | 株式会社日立製作所 | データベース管理システムの実行情報を取得する手段を有する記憶装置 |
EP1471429A4 (en) * | 2002-01-31 | 2007-09-12 | Matsushita Electric Ind Co Ltd | STORAGE UNIT, END DEVICE AND DATA REPAIR SYSTEM |
-
2004
- 2004-08-17 JP JP2004237550A patent/JP4315876B2/ja not_active Expired - Fee Related
-
2005
- 2005-01-14 US US11/036,678 patent/US7454405B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006058965A (ja) | 2006-03-02 |
US20050283489A1 (en) | 2005-12-22 |
US7454405B2 (en) | 2008-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4315876B2 (ja) | ファイル管理プログラム、ファイル管理方法、及びファイル管理装置 | |
US7860907B2 (en) | Data processing | |
US9208031B2 (en) | Log structured content addressable deduplicating storage | |
US8484172B2 (en) | Efficient search for migration and purge candidates | |
US8219562B1 (en) | Efficient storage and retrieval for large number of data objects | |
US20130297658A1 (en) | Method and system for synchronizing a virtual file system at a computing device with a storage device | |
US8095678B2 (en) | Data processing | |
US9449007B1 (en) | Controlling access to XAM metadata | |
KR100790991B1 (ko) | 데이터베이스 관리 시스템을 이용하여 파일시스템의메타데이터를 관리하는 방법 | |
US8938425B1 (en) | Managing logical views of storage | |
US8090925B2 (en) | Storing data streams in memory based on upper and lower stream size thresholds | |
JP5241298B2 (ja) | 履歴上のファイル名およびロケーションをインデックス付きにすることによりファイル・サーチおよびファイル操作を支援するためのシステムおよび方法 | |
US8640136B2 (en) | Sharing objects between computer systems | |
KR20090063733A (ko) | 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법 | |
US9178931B2 (en) | Method and system for accessing data by a client from a server | |
US20030221076A1 (en) | Apparatus and method for implementing dynamic structure level pointers | |
US9727588B1 (en) | Applying XAM processes | |
JP2010225024A (ja) | ストレージ装置とそのファイル制御方法およびストレージシステム | |
US8176087B2 (en) | Data processing | |
US8886656B2 (en) | Data processing | |
Tchaye-Kondi et al. | Hadoop perfect file: a fast access container for small files with direct in disc metadata access | |
JP4343669B2 (ja) | ファイル管理装置,動的名前空間生成方法および動的名前空間生成プログラム | |
US8290993B2 (en) | Data processing | |
Du | Intelligent storage for information retrieval | |
WO2024022330A1 (zh) | 一种基于文件系统的元数据管理方法及其相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090128 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090406 |
|
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: 20090519 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090519 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |