JP5798503B2 - ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム - Google Patents
ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム Download PDFInfo
- Publication number
- JP5798503B2 JP5798503B2 JP2012017738A JP2012017738A JP5798503B2 JP 5798503 B2 JP5798503 B2 JP 5798503B2 JP 2012017738 A JP2012017738 A JP 2012017738A JP 2012017738 A JP2012017738 A JP 2012017738A JP 5798503 B2 JP5798503 B2 JP 5798503B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- directory
- list
- scanning
- hierarchy
- 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
- G06F16/13—File access structures, e.g. distributed indices
-
- 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
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
これに対して、ファイルサーバ内のファイルツリー構造を幾つかに分割し、それらのサブツリーに対する走査処理を並列に行うことにより、走査処理を高速化することが考えられる。
前記走査処理の分割単位を決定するステップは、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
前記ファイル走査処理分割方針決定手段は、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
前記ファイル走査処理分割方針決定手段は、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定するものであることを特徴とする。
前記ファイルリスト作成サーバを、
前記インデクス作成済みのファイルリストを前記記憶装置から取得し、そのファイルリストから走査対象ファイルのディレクトリURLを取得し、そのディレクトリURLを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分割して行う分割単位を決定するファイル走査処理分割方針決定手段と、決定された分割方針に従い走査対象ファイルのディレクトリを分割し、分割した単位で各ディレクトリ上の走査対象ファイルを前記分散処理サーバによって分散走査し、走査対象ファイルのファイルリストを作成するファイル走査手段と、作成されたファイルリストと前記インデクス作成済みのファイルリストとを比較して前記インデクス作成後に追加、変更、削除されたファイルの一覧を作成して出力する比較手段として機能させ、
さらに前記ファイル走査処理分割方針決定手段を、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位ディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定する手段として機能させることを特徴とする。
図1は、本発明に係る第一の実施形態におけるシステム構成図である。
図1に示したファイルリスト生成システムは、ファイルリスト作成サーバ1、分散処理サーバ群2、およびファイルサーバ3(以下「サーバ等」という)を、LAN(Local Area Network)4等の有線又は無線の通信回線により互いに通信可能に接続したシステムである。
図1においては、サーバ等はLAN4によって互いに通信可能に接続されているが、接続方法はLANに限定されるものではなく、例えばWAN(Wide Area Network)やインターネットによって接続されていてもよい。また、図1においては、サーバ等が同一LANセグメント上で接続されているが、この構成は一例に過ぎず、どのような構成になっていてもよい。さらに、図1においては、ファイルリスト作成サーバ1、分散処理サーバ群2、およびファイルサーバ3はそれぞれ1台ずつ存在しているが、それぞれ2台以上存在しても構わない。また、ファイルリスト作成サーバ1、分散処理サーバ群2、およびファイルサーバ3はそれぞれ異なる装置である必要はなく、例えば、ファイルリスト作成サーバ1、分散処理サーバ群2、およびファイルサーバ3の機能を1台の装置によって実現することも可能である。
ファイルリスト作成サーバ1はPC等の装置であり、記憶装置15と通信可能に接続されている。
ファイルリスト作成サーバ1はスケジューラ11、ファイル走査処理分割方針決定手段12、ファイル走査実行手段13、およびファイルリスト比較手段14を備えている。
また、ファイルリスト作成サーバ1はCPU、主記憶装置等を備えており、CPUは記憶装置15に記憶されているファイルリスト比較手段等のプログラムを主記憶装置上にローディングし、その命令コードを実行することで各種の処理を実行する。
ファイル走査処理分割方針決定手段12は記憶装置15に記憶されているインデクス済みファイルリスト16を分析し、ファイル走査処理をどのように分割して並列実行させるかの方針を判定する。この動作については、ファイル走査処理分割方針決定処理(図4)として後述する。
ファイルリスト比較手段14はファイル走査実行手段13によって作成された現在ファイルサーバ3上にあるファイルデータの一覧と、記憶装置15に記憶されているインデクス済みファイルリスト16とを比較し、追加、更新、削除されたファイルデータの一覧を作成する。この動作については、ファイル走査処理(図5)として後述する。
インデクス済みファイルリスト16は、1以上のインデクス済みファイルレコード160から構成される。インデクス済みファイルレコード160には、検索用インデクス作成済みであるファイルに関して、その情報がディレクトリURL161とディレクトリ内ファイル情報162に分けて記憶されている。
ディレクトリ内ファイル情報162は、ファイル名163とファイル情報ハッシュ値164から構成される。ディレクトリ内ファイル情報162は1つのディレクトリURL160に対して、ディレクトリ直下にあるファイルの個数分(n個)情報が記憶される。具体的にはファイル名163はfile1.docやfile2.xmlのようなファイル名が記憶される。
ここで、最終更新時刻とファイルサイズは一例であり、例えばファイルや上位ディレクトリのアクセス権情報が管理者等によって変更された場合にファイルが更新されたと判断できるよう、それらのアクセス権情報をもとにハッシュ値を算出することも考えられる。
この概念図に示すファイルサーバ3の構成においては、あるファイルサーバ3の識別名が“server1”である。“server1”では2つのディレクトリが共有されており、それぞれ”share1”、”share2”という共有名により一意に識別可能である。“server1”の”share1”、”share2”には、図示したようなディレクトリおよびファイルが存在する。例えば、“server1”の“share1”には、“etc”、“doc”の2つのディレクトリが存在し、“etc”ディレクトリには“file1.doc”、“file2.xml”の2つのファイルが、“doc”ディレクトリには“file3.doc”の1つのファイルが存在する。
例えば、図3における点線内の部分31に対するインデクス済みファイルリスト16のデータとしては、ディレクトリURL161には”http://server1/share1/etc/”という値が記憶され、ディレクトリ内ファイル情報162のファイル名163が”file1.doc”であり、ファイル情報ハッシュ値164が”5c34a4dd1B46183A58ABC2B2C8F1B1D58EA34FC65DA8EB25B9FFD1A6131308CC”であるレコードと、ファイル名163が”file2.xml”であり、ファイル情報ハッシュ値164が”63b2cda32728C336134A8836A765270710D6712F11B2BEE0FA68715D7FDE74A3”であるレコードが記憶される。
ファイル走査処理分割方針決定手段12は、走査対象のファイルツリー構造を複数に分割して走査処理を並列に行うことで高速化するという本発明の目的に対し、分割された範囲があまりに小さかった場合には並列処理を行うことによるオーバーヘッドが並列処理による高速化のメリットを上回ってしまうことを避けるために、既にインデクス済みのファイルの一覧を分析することにより、最初に行う走査処理の範囲が適切な大きさになるように判断する処理である。このような判断処理は、走査対象のファイルツリー構造が、走査処理開始ディレクトリに近い上位階層ほどディレクトリ数が少なく、下位階層ほどディレクトリ数が多い三角形構造の場合に適している。三角形構造の中でも特に、階層間のディレクトリ数の増加の割合が一定ではなく途中の階層で増加の割合が急激に大きくなるような場合、最上位階層から増加割合が急激に大きくなる直前の階層までを最初の走査範囲に設定する。
この概念図に示すファイルサーバ3のファイルツリーの構造においては、第一階層1301に1ディレクトリが属し、第二階層1302には3ディレクトリが属し、第三階層1303には6ディレクトリが属し、第四階層1304には12ディレクトリが属し、第五階層1305には10000ディレクトリが属している。このようなファイルツリー構造を持つファイルサーバとしては企業組織のヒエラルキーに即して構築された企業内ファイルサーバが考えられる。例えば第一階層1301を”本部”とし、第二階層1302を”部”、第三階層1303を”課”、第四階層1304を”各従業員”用のディレクトリとする場合、このようなディレクトリ数の比率を持つファイルツリー構造になる。各階層間のディレクトリ数の増加の割合は階層間のディレクトリ数の2階差分値によって近似的に算出できる。
2階差分値とは図14の説明図に示すように、各階層のディレクトリ数について上位階層と直下の下位階層のディレクトリ数の差を1階差分値としたとき、さらに下位階層のディレクトリ数と1階差分値との差を2階差分値とするものである。2階微分演算を近似したものに相当する。
図13の例においては、第一階層1301、第二階層1302、第三階層1303間の2階差分値は1となり、第二階層1302、第三階層1303、第四階層1304間の2階差分値は3となり、第三階層1303、第四階層1304、第五階層1305間の2階差分値は9982となる。これらの2階差分値の比較から第四階層1304と第五階層1305の間で増加の割合が急激に大きくなっていることが判断できる。ファイル走査処理分割方針決定手段12はこの手法によって、最上位階層1301から第4階層1304までを1つの分割深度として初回走査範囲に設定する。
なお、ディレクトリ数が多い第5階層以下の階層においては、当該階層に属するディレクトリの走査を複数の分散処理サーバ群2で分担して走査する。この場合、分担の仕方については任意である。
また、最下位階層までのディレクトリ数の集計結果が非常に少なく所定数未満であった場合には、分割して走査しても高速化の目的に反するので、分割数を1として走査する。
そこで、当初の原型ツリーと追加、削除、更新を反映した最新ツリーとをファイルリスト同士(URLリスト同士)で比較することによって追加、削除、更新のあったファイルリストを抽出することが可能になる。この場合、ファイルリスト同士の比較処理も分散処理サーバ群2の各分散処理実行手段21で分散して実行することにより、高速に追加、削除、更新のあったファイルリストを抽出することが可能になる。
従って、ディレクトリ数が多くない所定数未満の階層までは初回走査で一挙にディレクトリ構造を解明し、ディレクトリ数が多い下位階層では1階層単位で走査してそのディレクトリ構造を解明するという処理を行っていることになる。
まず、走査対象となるファイルサーバ3の共有ディレクトリに関わる全てのディレクトリのURL161(全ての走査対象ディレクトリのURL)を記憶装置15に記憶されたインデクス済みファイルリスト16から取得する(S401)。
次に取得した各ディレクトリURL161を文字”/”でファイルパス上の各階層のディレクトリ名に分割する(S402)。例えば、前述の例でいうと、”http://server1/share1/etc/”は、”http:”、””(空字列)、”server1”、
”share1”、”etc”に分割される。
次に、階層ごとにディレクトリ数を集計する。例えば図3に示したファイルツリーの場合、共有ディレクトリ”share1”に係る第一階層は”share1”一つであると算出される。同様に第二階層は”etc”と”doc”の二つであると算出される。S402とS403は複数の分散処理サーバ群2において分散処理実行手段21を利用して並列に処理できる。例えば、ディレクトリURL161を5000行ずつ各分散処理サーバ群2に分配し、各分散処理サーバ群2は割り当てられたディレクトリURL161一つずつに対して、S402とS403の処理を行う。
このS402〜S404がファイルツリー構造を解析するする処理に相当する。
次に、第一階層の推定ファイル数を算出して、推定総ファイル数に加算する(S406)。なお、推定ファイル数は、S404で算出した第一階層のディレクトリ数に一定の数をかけることで算出する。一定の数とは例えば100といった値である。この値はファイルリスト作成サーバ1上の設定ファイルなどに記憶している値を参照する。この値は、1ディレクトリが保持するファイルの平均の数に近い値を推定して設定することが望ましい。
次に、2階差分値が階層数2階差分閾値以上かどうかを判定する(S409)。なお、階層数2階差分閾値はファイルリスト作成サーバ1上の設定ファイルなどに記憶している値を参照する。この値は階層間のディレクトリ数の増加の割合がどの程度急激であるかを近似的に示す値であり、例えば5000といった値を設定する。
推定総ファイル数が最低推定総ファイル数以上である場合は、最初の階層から今階層までをまとめて走査する対象として判断する(S412)。
S409の判断で2階差分値が2階差分閾値より小さかった場合は、次の階層に進む(S411)。
S411で次の階層に進んだ後は、S406の処理に戻る。S407かS409とS410のどちらかの判断によって走査範囲が決まるまでS406からS411の処理を繰り返し実行する。
これらの処理により、ファイル走査実行手段13が最初に行う走査処理の範囲として、適切な範囲が決定される。
図4のフローチャートに示した処理の終了後、スケジューラ11が図5の処理を起動させる。
図4のフローチャートで示された分割方針決定手段によって判断された範囲を走査範囲に設定する(S501)。
ファイルサーバ3内の一部範囲を走査してファイルとディレクトリを列挙することは周知の技術であるため、ファイルサーバ走査実行手段13がどのように走査を行うかについてはここでは詳細には記載しないが、例えばファイルリスト作成サーバ1がファイルサーバ3の記憶装置31の検索対象ファイル32を、ネットワークファイルシステムを通じてアクセス可能な状態にし、ファイルリスト作成サーバ1のローカルファイル用のファイルツリー探索プログラムを使用して各ファイルデータのファイルシステム上のファイルパスの一覧を出力するなどさせればよい。ファイルシステム上のファイルパスが求まれば、ファイルパスにファイルサーバ3の識別名などをファイルパスに付け加えることでURLを作成することができる。
次に、次回走査範囲が空かどうかを判断する(S504)。
もし次回走査範囲が空であれば、ファイルツリーを全て探索し終えたので、処理を終了する。
次回走査範囲が空でなければ、S502に戻って次の走査範囲について走査し、ファイルとディレクトリのURLを列挙する。
最初に、S502で列挙されたファイルとディレクトリのURLを文字列順にソートする(S601)。
次に、インデクス済みファイルリスト16から走査範囲のインデクス済みファイルのURLリストを取得する(S602)。インデクス済みファイルのURLリストは、インデクス済みファイルリスト16から走査範囲に含まれるディレクトリURL161のレコードをすべて抽出し、それらのレコードに含まれるファイル名163をそれぞれ接続してファイルのURLを作成することで作成できる。ここで走査範囲は階層数で表すことができ、階層数はディレクトリURLに含まれる”/”の数から算出可能である。よって、例えば”/”を指定数含む正規表現を作成して、その正規表現に適合するディレクトリURL161を抽出することで、走査範囲のディレクトリURL161のレコードを抽出することができる。
次に、インデクス済みファイルのURLリストの先頭行を取り出す(S604)。このURLは記憶装置15に記憶されたインデクス済みファイルリスト16のなかで走査範囲に含まれるファイルのうち、ファイルURLが辞書順で最も前にあるファイルのURLである。
次に、S603とS604で取り出したURL同士を文字列として比較する(S605)。
次に、S605の比較の結果、URLが文字列として一致していたかどうかを判断する(S606)。
もしソート済みURLリストに次の行がある場合は、次に、インデクス済みファイルのURLリストに次の行があるかを判断する(S609)。
もしインデクス済みファイルのURLリストに次の行がある場合は、ソート済みURLリストの次の行を取り出す(S610)。
次に、S605に戻り、次のURL同士を比較する。ソート済みURLリストとインデクス済みファイルのURLリストの全てのURLについて処理を終えるまで、これらの処理を繰り返し実行する。
もしS608の判断で、ソート済みURLリストに次の行が無かった場合は、インデクス済みファイルのURLリストに残っているURLを削除されたファイルまたはディレクトリであるとして追加、更新、削除ファイル一覧に追加する処理(図7のS620)を行う。この処理の詳細はインデクス済みファイルのURLリストの残件処理(S701等)として後述する。
もしS606の判断で、URLが文字列として一致していなかった場合は、次にソート済みURLリストのURLが辞書順でインデクス済みファイルのURLリストのURLより前かどうかを判断する(図7のS612)。
もしソート済みURLリストに次の行があればソート済みURLリストの次の行を取り出す(S615)。
次に、図6のS605に戻ってURL同士を比較する。このとき、ソート済みURLリストのURLはS615の処理によって次の行に進んでいるが、インデクス済みファイルのURLリストのURLは次の行に進んでいない。
もしS614の判断でソート済みURLリストに次の行がなかった場合は、次にインデクス済みファイルのURLリストの残件処理(S620)を行う。
もしS612の判断でソート済みURLリストのURLが辞書順でインデクス済みファイルのURLリストのURLより後だった場合は、インデクス済みファイルリストに含まれていたファイルまたはディレクトリが、現在のファイルサーバ3上には存在しないということを示すので、次に削除されたファイルまたはディレクトリであるとして、追加、更新、削除されたファイルデータの一覧に追加する処理(図7のS616)を行う。この処理の詳細は削除ファイル追加処理(S1101等)として後述する。
もしインデクス済みファイルのURLリストに次の行があればインデクス済みファイルのURLリストの次の行を取り出す(S618)。
次に、S605に戻ってURL同士を比較する。このとき、インデクス済みファイルのURLリストのURLはS618の処理によって次の行に進んでいるが、ソート済みURLリストのURLは次の行に進んでいない。
これまで述べたように、S605の判断でURLが一致していた場合は、ソート済みURLリストとインデクス済みファイルのURLリストを共に次の行に進め、S605の判断でURLが一致せず、かつS612の判断でソート済みURLリストのURLが辞書順で前だった場合はソート済みURLリストのみを次の行に進め、S605の判断でURLが一致せず、かつS612の判断でソート済みURLリストのURLが辞書順で後だった場合はインデクス済みファイルのURLリストのみを次の行に進める。このような方法で両URLリストのURLを先頭から最後尾まで比較していくことで、該当範囲について追加、更新、削除されたファイルを全て追加、更新、削除されたファイルデータの一覧に追加することができる。
図8はインデクス済みファイルのURLリストの残件処理の動作を示すフローチャートである。これは図7のS620の処理の詳細なフローである。
最初に、インデクス済みファイルのURLリストに次の行があるかどうかを判断する(S801)。ここでインデクス済みファイルのURLリストとは、図6の処理におけるインデクス済みファイルのURLリストと同じものを指す。
もしインデクス済みファイルのURLリストに次の行がある場合は、次にインデクス済みファイルのURLリストの次の行を取り出す(S802)。
もし取り出したURLがディレクトリのものである場合は、次にインデクス済みファイルリストからURLが示すディレクトリ以下のファイルの一覧を取得する(S804)。これは、ファイルツリーにおいて上位のディレクトリが削除されると、その配下のファイルおよびディレクトリは全て削除されることから、インデクス済みファイルリストに存在する当該ファイルを、全て削除ファイルとして追加、更新、削除ファイル一覧に追加しなければならないためである。インデクス済みファイルリスト一覧から取り出したURLが示すディレクトリ以下のファイルの一覧を取得する方法としては、例えばインデクス済みファイルリストから取り出したURLと前方一致するURLを検索する方法が考えられる。
次にS801に戻り、インデクス済みファイルのURLリストに次の行があるかどうかを判断する。
もしインデクス済みファイルのURLリストに次の行が無い場合は処理を終了する。
もしインデクス済みファイルのURLリストに次の行がある場合はS801からS805の処理をインデクス済みファイルのURLリスト全てに対して繰り返し行う。
もしS803の判断でURLがディレクトリのものではなくファイルのものだった場合は、次にそのファイルを削除ファイルとして追加、更新、削除ファイル一覧に追加する(S805)。
最初に、ソート済みURLリストに次の行があるかどうかを判断する(S901)。
もしソート済みURLリストに次の行がある場合は、次にソート済みURLリストの次の行を取り出す(S902)。
次に、URLがディレクトリのものかどうかを判断する(S903)。
もしURLがディレクトリのものである場合は、次に、それが走査範囲の最下層のディレクトリであるかどうかを判断する(S904)。例えば、図12のファイルツリーで第一階層1201から第五階層1205までを走査範囲に設定した場合は、第五階層1205に属するディレクトリのURLが最下層のディレクトリと判断される。
もしS903の判断でURLがディレクトリのものではなくファイルのものだった場合は、そのファイルを追加ファイルであるとして追加、更新、削除ファイル一覧に追加する。
次に、S901に戻ってソート済みURLリストに次の行があるか判断する。
もしS901の判断でソート済みURLリストに次の行が無かった場合は、処理を終了する。
図10は更新ファイル追加処理の動作を示すフローチャートである。これは図6のS607の処理の詳細なフローである。
最初に、URLがディレクトリのものであるかどうか判断する(S1001)。このURLは図6のS605で比較し、S606で一致していると判断されたURLであり、ソート済みURLリストから取り出したURLを使用してもよいし、インデクス済みファイルのURLリストから取り出したURLを使用してもよい。
もしURLが示すディレクトリが最下層のディレクトリだった場合は、そのディレクトリは次回走査範囲における起点ディレクトリの一つとして含まれるため、次回走査範囲に追加する(S1003)。
もしS1001の判断で、URLがディレクトリのものではなくファイルのものだった場合は、次にそのURLに対するインデクス済みファイルのファイル情報ハッシュ値164と、ファイルサーバ3上のソート済みURLリストのURLが示すファイルのメタデータからファイル情報ハッシュ値164と同様の方式で算出したハッシュ値を比較する(S1004)。
S1005の判断でハッシュ値に差がある場合は、そのファイルが更新されていることを示すので、次にそのURLを更新ファイルとして追加、更新、削除ファイル一覧にURLを追加する(S1006)。
S1005の判断でハッシュ値に差が無い場合は、そのファイルが更新されていないことを示すので、そのファイルについては追加、更新、削除ファイル一覧に追加する必要は無い。そのため、これで処理を終了する。
これらの処理により、URLがファイルであり、かつ更新されていた場合は、更新ファイルであるとして追加、更新、削除されたファイルデータの一覧に追加され、また、走査範囲の最下層のディレクトリの場合は次回走査範囲に追加される。
最初に、ソート済みURLリストのURLがディレクトリのものかどうかを判断する(S1101)。
もしURLがディレクトリのものだった場合は、次にそのディレクトリが走査範囲の最下層のディレクトリかどうかを判断する(S1102)。
もしディレクトリが最下層のものだった場合は、次にディレクトリを次回走査範囲に追加する(S1103)。
もしS1102の判断で、ディレクトリが走査範囲の最下層のディレクトリではなかった場合は、これで処理を終了する。
これらの処理により、URLがファイルである場合は、追加ファイルであるとして追加、更新、削除されたファイルデータの一覧に追加され、また、走査範囲の最下層のディレクトリの場合は次回走査範囲に追加される。
最初に、インデクス済みファイルのURLリストのURLがディレクトリのものかどうかを判断する(S1201)。
もしURLがディレクトリのものだった場合は、そのディレクトリ以下のファイル全てを削除ファイルとして追加、更新、削除ファイル一覧に追加する必要があるため、次に、インデクス済みファイルリストからURL配下のファイルの一覧を取得する(S1202)。
次に、削除ファイルとして追加、更新、削除ファイル一覧に取得した一覧に含まれるファイル全てを追加する(S1203)。
また、図5で示したS503のファイルリスト作成処理と次回走査範囲の設定も複数の分散処理サーバ群2において分散処理実行手段21を利用して並列に処理できる。S503の処理を分散させる場合は、1つのディレクトリに対する処理を一つの分散処理実行手段21に割り当てる。例えば図3に示す例で走査範囲が”http://server1/share1/etc”と”http://server1/share1/doc”だと設定されていた場合、”http://server1/share1/etc/”についての処理を一つの分散処理実行手段21に割り当てて、”http://server1/share1/doc/”についての処理を一つの分散処理実行手段21に割り当てる。例えば”http://server1/share1/etc/”についての処理を割り当てられた分散処理実行手段21は”http://server1/share1/etc/file1.doc”や”http://server1/share1/etc/file2.xml”などの”http://server1/share1/etc/”の直下にあるディレクトリおよびファイルについてS503の処理を行う。
2 分散処理サーバ群
3 ファイルサーバ
4 ネットワーク
11 スケジューラ
12 ファイル走査処理分割方針決定手段
13 ファイル走査実行手段
14 ファイルリスト比較手段
15 ファイルリスト作成サーバ1に接続された記憶装置
16 インデクス済みファイルリスト
21 分散処理実行手段
31 ファイルサーバ3に接続された記憶装置
32 検索対象ファイル
160 インデクス済みファイルリスト16のファイルレコード
161 ディレクトリURL
162 ディレクトリ内ファイル情報
163 ファイル名
164 ファイル情報ハッシュ値
Claims (4)
- 走査対象ファイルのインデクス作成済みのファイルリストを分散処理サーバによって作成するステップと、前記分散処理サーバによって作成されたインデクス作成済みのファイルリストを記憶装置に記憶させるステップと、前記インデクス作成済みのファイルリストを前記記憶装置から取得し、そのファイルリストから走査対象ファイルのディレクトリURLを取得し、そのディレクトリURLを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分割して行う分割方針を決定するステップと、決定された分割方針に従い走査対象ファイルのディレクトリを分割し、分割した単位で各ディレクトリ上の走査対象ファイルを前記分散処理サーバによって分散走査し、走査対象ファイルのファイルリストを作成するステップと、作成されたファイルリストと前記インデクス作成済みのファイルリストとを比較して前記インデクス作成後に追加、変更、削除されたファイルの一覧を作成して出力するステップとを備え、
前記走査処理の分割方針を決定するステップは、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成方法。 - 走査対象ファイルのインデクス作成済みのファイルリストを作成する分散処理サーバと、該分散処理サーバによって作成されたインデクス作成済みのファイルリストを記憶した記憶装置と、前記インデクス作成済みのファイルリストを前記記憶装置から取得し、そのファイルリストから走査対象ファイルのディレクトリURLを取得し、そのディレクトリURLを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分割して行う分割単位を決定するファイル走査処理分割方針決定手段と、決定された分割方針に従い走査対象ファイルのディレクトリを分割し、分割した単位で各ディレクトリ上の走査対象ファイルを前記分散処理サーバによって分散走査し、走査対象ファイルのファイルリストを作成するファイル走査手段と、作成されたファイルリストと前記インデクス作成済みのファイルリストとを比較して前記インデクス作成後に追加、変更、削除されたファイルの一覧を作成して出力する比較手段とを備え、
前記ファイル走査処理分割方針決定手段は、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成システム。 - 走査対象ファイルのインデクス作成済みのファイルリストを取得し、そのファイルリストから走査対象ファイルのディレクトリURLを取得し、そのディレクトリURLを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分割して行う分割単位を決定するファイル走査処理分割方針決定手段と、決定された分割方針に従い走査対象ファイルのディレクトリを分割し、分割した単位で各ディレクトリ上の走査対象ファイルを分散処理サーバによって分散走査し、走査対象ファイルのファイルリストを作成するファイル走査手段と、作成されたファイルリストと前記インデクス作成済みのファイルリストとを比較して前記インデクス作成後に追加、変更、削除されたファイルの一覧を作成して出力する比較手段とを備え、
前記ファイル走査処理分割方針決定手段は、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位階層のディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定するものであることを特徴とするファイルリスト生成装置。 - 走査対象ファイルのインデクス作成済みのファイルリストを作成する分散処理サーバと、該分散処理サーバによって作成されたインデクス作成済みのファイルリストを記憶した記憶装置と、ファイルリスト作成サーバとから構成されたシステムに使用するプログラムであって、
前記ファイルリスト作成サーバを、
前記インデクス作成済みのファイルリストを前記記憶装置から取得し、そのファイルリストから走査対象ファイルのディレクトリURLを取得し、そのディレクトリURLを解析して各階層のディレクトリ数を集計し、その集計結果に基づき走査対象ディレクトリの走査処理を分割して行う分割単位を決定するファイル走査処理分割方針決定手段と、決定された分割方針に従い走査対象ファイルのディレクトリを分割し、分割した単位で各ディレクトリ上の走査対象ファイルを前記分散処理サーバによって分散走査し、走査対象ファイルのファイルリストを作成するファイル走査手段と、作成されたファイルリストと前記インデクス作成済みのファイルリストとを比較して前記インデクス作成後に追加、変更、削除されたファイルの一覧を作成して出力する比較手段として機能させ、
さらに前記ファイル走査処理分割方針決定手段を、最上位階層から数えたディレクトリ数が所定数未満であれば走査対象ディレクトリの走査処理を行う分割数を1とする分割方針を決定し、所定数を越えた場合には最上位ディレクトリから所定階層までの階層を1つの分割単位として初回走査を行い、その初回走査で発見した走査対象ディレクトリの下位階層は深度1階層を分割単位として走査する分割方針を決定する手段として機能させることを特徴とするファイルリスト生成プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012017738A JP5798503B2 (ja) | 2012-01-31 | 2012-01-31 | ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム |
US13/741,892 US9015214B2 (en) | 2012-01-31 | 2013-01-15 | Process of generating a list of files added, changed, or deleted of a file server |
EP13151871.4A EP2624147A1 (en) | 2012-01-31 | 2013-01-18 | File list generation method and system, file list generation apparatus, and program |
CN2013100200431A CN103226556A (zh) | 2012-01-31 | 2013-01-18 | 文件列表生成方法及系统、文件列表生成装置及程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012017738A JP5798503B2 (ja) | 2012-01-31 | 2012-01-31 | ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013156881A JP2013156881A (ja) | 2013-08-15 |
JP5798503B2 true JP5798503B2 (ja) | 2015-10-21 |
Family
ID=47681670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012017738A Expired - Fee Related JP5798503B2 (ja) | 2012-01-31 | 2012-01-31 | ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9015214B2 (ja) |
EP (1) | EP2624147A1 (ja) |
JP (1) | JP5798503B2 (ja) |
CN (1) | CN103226556A (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10459892B2 (en) | 2014-04-23 | 2019-10-29 | Qumulo, Inc. | Filesystem hierarchical aggregate metrics |
CN105610596B (zh) * | 2014-11-20 | 2020-02-18 | 腾讯科技(武汉)有限公司 | 一种资源目录管理方法和网络终端 |
US9836480B2 (en) | 2015-01-12 | 2017-12-05 | Qumulo, Inc. | Filesystem capacity and performance metrics and visualizations |
US11132336B2 (en) | 2015-01-12 | 2021-09-28 | Qumulo, Inc. | Filesystem hierarchical capacity quantity and aggregate metrics |
US10318494B2 (en) * | 2016-10-07 | 2019-06-11 | Qumulo, Inc. | Analyzing and visualizing trends in the use and consumption of data in a shared storage system |
US10095729B2 (en) | 2016-12-09 | 2018-10-09 | Qumulo, Inc. | Managing storage quotas in a shared storage system |
US11360936B2 (en) | 2018-06-08 | 2022-06-14 | Qumulo, Inc. | Managing per object snapshot coverage in filesystems |
US10534758B1 (en) | 2018-12-20 | 2020-01-14 | Qumulo, Inc. | File system cache tiers |
US11151092B2 (en) | 2019-01-30 | 2021-10-19 | Qumulo, Inc. | Data replication in distributed file systems |
US10614033B1 (en) | 2019-01-30 | 2020-04-07 | Qumulo, Inc. | Client aware pre-fetch policy scoring system |
CN111859028B (zh) * | 2019-04-30 | 2024-08-16 | 伊姆西Ip控股有限责任公司 | 创建用于流式存储的索引的方法、设备和计算机程序产品 |
US20210103577A1 (en) * | 2019-10-07 | 2021-04-08 | Microsoft Technology Licensing, Llc | Reliable detection of deleted assets in data stores |
US10725977B1 (en) | 2019-10-21 | 2020-07-28 | Qumulo, Inc. | Managing file system state during replication jobs |
US10795796B1 (en) | 2020-01-24 | 2020-10-06 | Qumulo, Inc. | Predictive performance analysis for file systems |
US10860372B1 (en) | 2020-01-24 | 2020-12-08 | Qumulo, Inc. | Managing throughput fairness and quality of service in file systems |
US11151001B2 (en) | 2020-01-28 | 2021-10-19 | Qumulo, Inc. | Recovery checkpoints for distributed file systems |
US10860414B1 (en) | 2020-01-31 | 2020-12-08 | Qumulo, Inc. | Change notification in distributed file systems |
US10936551B1 (en) | 2020-03-30 | 2021-03-02 | Qumulo, Inc. | Aggregating alternate data stream metrics for file systems |
US10936538B1 (en) | 2020-03-30 | 2021-03-02 | Qumulo, Inc. | Fair sampling of alternate data stream metrics for file systems |
US11775481B2 (en) | 2020-09-30 | 2023-10-03 | Qumulo, Inc. | User interfaces for managing distributed file systems |
KR102648501B1 (ko) * | 2020-12-16 | 2024-03-19 | 한국전자통신연구원 | 네트워크 환경 동기화 장치 및 방법 |
US11157458B1 (en) | 2021-01-28 | 2021-10-26 | Qumulo, Inc. | Replicating files in distributed file systems using object-based data storage |
US11461241B2 (en) | 2021-03-03 | 2022-10-04 | Qumulo, Inc. | Storage tier management for file systems |
US11567660B2 (en) | 2021-03-16 | 2023-01-31 | Qumulo, Inc. | Managing cloud storage for distributed file systems |
US11132126B1 (en) | 2021-03-16 | 2021-09-28 | Qumulo, Inc. | Backup services for distributed file systems in cloud computing environments |
US11669255B2 (en) | 2021-06-30 | 2023-06-06 | Qumulo, Inc. | Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations |
US11294604B1 (en) | 2021-10-22 | 2022-04-05 | Qumulo, Inc. | Serverless disk drives based on cloud storage |
US11354273B1 (en) | 2021-11-18 | 2022-06-07 | Qumulo, Inc. | Managing usable storage space in distributed file systems |
US11599508B1 (en) | 2022-01-31 | 2023-03-07 | Qumulo, Inc. | Integrating distributed file systems with object stores |
CN114691625B (zh) * | 2022-04-21 | 2023-05-16 | 成都理工大学 | 一种面向海量动态文件的数据管理方法 |
CN115238257B (zh) * | 2022-09-26 | 2023-01-06 | 深圳市亲邻科技有限公司 | 门禁人脸权限更新方法、装置、计算机设备及存储介质 |
US11722150B1 (en) | 2022-09-28 | 2023-08-08 | Qumulo, Inc. | Error resistant write-ahead log |
US11729269B1 (en) | 2022-10-26 | 2023-08-15 | Qumulo, Inc. | Bandwidth management in distributed file systems |
US11966592B1 (en) | 2022-11-29 | 2024-04-23 | Qumulo, Inc. | In-place erasure code transcoding for distributed file systems |
US11921677B1 (en) | 2023-11-07 | 2024-03-05 | Qumulo, Inc. | Sharing namespaces across file system clusters |
US11934660B1 (en) | 2023-11-07 | 2024-03-19 | Qumulo, Inc. | Tiered data storage with ephemeral and persistent tiers |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845290A (en) * | 1995-12-01 | 1998-12-01 | Xaxon R&D Ltd. | File recording support apparatus and file recording support system for supporting recording of file on home page on internet and intranet |
US5935207A (en) * | 1996-06-03 | 1999-08-10 | Webtv Networks, Inc. | Method and apparatus for providing remote site administrators with user hits on mirrored web sites |
US7243369B2 (en) * | 2001-08-06 | 2007-07-10 | Sun Microsystems, Inc. | Uniform resource locator access management and control system and method |
JP4106601B2 (ja) * | 2002-07-31 | 2008-06-25 | 日本電気株式会社 | ディレクトリ情報への更新情報生成システム、更新情報生成プログラム |
US7730155B1 (en) * | 2002-10-01 | 2010-06-01 | Apple Inc. | Method and apparatus for dynamically locating resources |
US20040068523A1 (en) * | 2002-10-07 | 2004-04-08 | Keith Robert Olan | Method and system for full asynchronous master-to-master file synchronization |
US20060117008A1 (en) | 2004-11-17 | 2006-06-01 | Kabushiki Kaisha Toshiba | File management apparatus and file management program |
TW200619928A (en) * | 2004-12-10 | 2006-06-16 | Hon Hai Prec Ind Co Ltd | A method and system for restoring tree document directory |
JP2006268456A (ja) | 2005-03-24 | 2006-10-05 | Nec Corp | ファイル管理装置、ファイル管理方法、及びファイル管理プログラム |
JP2007193660A (ja) * | 2006-01-20 | 2007-08-02 | Seiko Epson Corp | 情報管理装置、情報管理方法及びそのプログラム |
US7854006B1 (en) * | 2006-03-31 | 2010-12-14 | Emc Corporation | Differential virus scan |
JP4971717B2 (ja) * | 2006-08-11 | 2012-07-11 | 国立大学法人東京工業大学 | ディレクトリ分散型記憶装置及びデータ処理要求移譲プログラム |
JP2008304981A (ja) * | 2007-06-05 | 2008-12-18 | Konica Minolta Holdings Inc | ディレクトリ情報の管理方法、及びディレクトリ情報の管理システム |
GB0712640D0 (en) * | 2007-06-28 | 2007-08-08 | Symbian Software Ltd | Domputing device having a merged directory hierarchy from multiple filesystems |
CN101315640B (zh) * | 2008-07-01 | 2010-09-01 | 中兴通讯股份有限公司 | 一种目录管理方法和装置 |
JP5371656B2 (ja) * | 2009-09-24 | 2013-12-18 | 株式会社日立ソリューションズ | ファイル検索システム |
JP5657498B2 (ja) * | 2011-09-30 | 2015-01-21 | 株式会社日立ソリューションズ | ファイル検索システム |
-
2012
- 2012-01-31 JP JP2012017738A patent/JP5798503B2/ja not_active Expired - Fee Related
-
2013
- 2013-01-15 US US13/741,892 patent/US9015214B2/en not_active Expired - Fee Related
- 2013-01-18 CN CN2013100200431A patent/CN103226556A/zh active Pending
- 2013-01-18 EP EP13151871.4A patent/EP2624147A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2013156881A (ja) | 2013-08-15 |
CN103226556A (zh) | 2013-07-31 |
US9015214B2 (en) | 2015-04-21 |
EP2624147A1 (en) | 2013-08-07 |
US20130198251A1 (en) | 2013-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5798503B2 (ja) | ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム | |
JP5759915B2 (ja) | ファイルリスト生成方法及びシステム並びにプログラム、ファイルリスト生成装置 | |
US8799291B2 (en) | Forensic index method and apparatus by distributed processing | |
KR20200053512A (ko) | Kvs 트리 데이터베이스 | |
US10831747B2 (en) | Multi stage aggregation using digest order after a first stage of aggregation | |
KR101266358B1 (ko) | 다중 길이 시그니처 파일 기반 분산 색인 시스템 및 방법 | |
JP6183376B2 (ja) | インデックス生成装置及び方法並びに検索装置及び検索方法 | |
US8682874B2 (en) | Information processing system | |
US20150363404A1 (en) | Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices | |
US20130297788A1 (en) | Computer system and data management method | |
JP6065844B2 (ja) | インデックス走査装置及びインデックス走査方法 | |
KR101355273B1 (ko) | 컴퓨팅 시스템 및 그 실행 제어 방법과, 그 실행 제어 프로그램을 기록한 기록 매체 | |
JP6135509B2 (ja) | 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造 | |
KR20140048396A (ko) | 클라우드 스토리지 서비스의 파일 검색 시스템 및 방법, 및 파일 제어 방법 | |
JP6715420B2 (ja) | データ量圧縮方法、装置、プログラム及びicチップ | |
CN110795397B (zh) | 一种地质资料包目录与文件类型自动识别方法 | |
CN110795520B (zh) | 一种数字化地质资料包目录与文件关联关系自动识别方法 | |
US9235578B2 (en) | Data partitioning apparatus and data partitioning method | |
Mathew et al. | Efficient information retrieval using Lucene, LIndex and HIndex in Hadoop | |
WO2012081165A1 (ja) | データベース管理装置及びデータベース管理方法 | |
JP5151394B2 (ja) | 情報管理装置、情報管理方法、及びプログラム | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium | |
US20190057097A1 (en) | Information processing device, information processing method, and computer-readable recording medium | |
KR20200005004A (ko) | 기술 도메인의 분석 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140725 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150309 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20150413 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20150420 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150526 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150609 |
|
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: 20150818 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150821 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5798503 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |