説明

再現性のある方法でのデータトラバース

階層データをトラバースすることを開示する。第1レベルのデータにおける第1のリストのアイテムを受信し、これをある順序でソートする。その第1レベルのデータは、前記ソートされた第1のリストの順に処理される。処理の最中に、別のレベルのデータに遭遇した場合、前記遭遇したレベルにある第2のリストのアイテムを受信し、これをある順序でソートする。前記データは、そのリストの順に処理される。

【発明の詳細な説明】
【背景技術】
【0001】
記憶装置の最大容量が急激に大きくなっている傾向とともに、ファイルシステムのサイズもまた同様に指数関数的に増大している。ファイルシステムのバックアップユーティリティは、要求されたファイル及びディレクトリのすべてを見つけ出し且つバックアップするためにファイルシステムを完全にトラバース(traverse)しなければならないので、大きなファイルシステムはバックアップにかなりの時間を要する。長時間のバックアップは、バックアッププロセス間の中断という大きなリスクを意味することになる。例えば、ネットワーク化されたバックアップシステムでの短時間のネットワーク障害、またはクライアント或いはサーバーにおける他の障害は、バックアッププロセスを中断させることを引き起こす可能性がある。バックアップ障害時において、典型的なバックアップシステムは、バックアップオペレーションでバックアップされているデータの組(例えば、バックアップされるべきファイル及び/又はディレクトリのグループ化、以下、“保存集合(saveset)”と称することがある。)の開始からバックアッププロセスをリスタートする。長時間のバックアップで、更なる中断の可能性がある場合、あらゆる中断の後でバックアッププロセスを開始することは、バックアップシステムのパフォーマンスに重大な影響を及ぼしかねない。
【0002】
典型的なバックアップシステム又はプロセスにおいて、中断後で保存集合を更新しなかったデータがたとえあったとしても、バックアップオペレーションはその中断した箇所を取出すことはできない。なぜなら、少なくとも幾つかのケースでは、ファイルシステムのトラバースはいつも同じ順序で生じるとは保証されていないからである。例えば、あるディレクトリからエントリを読出すための“readdir”(ディレクトリの読み出し)コマンドは、同一のコマンドの各インスタンス(instance)について異なる順序で結果を戻すことがある。それゆえ、再現性のある方法で実行されるデータトラバースを保証する必要がある。
【0003】
本発明の様々な実施例は、以下の詳細な説明及び添付の図面に開示されている。
【発明の開示】
【課題を解決するための手段】
【0004】
本発明は、プロセス装置、システム、合成物、記憶メディアなどのコンピュータ読み出し可能な記録媒体、又はプログラム命令が光或いは電気通信回線を介して伝送されるコンピュータネットワークを含む、様々な方法で実行されるものである。本明細書において、これらの実施又は本発明がとり得る他の形式が技術として引用される。タスクを実行するよう構成されているものとして記載されたプロセッサ又はメモリ等の構成要素は、所与の時間でタスクを実行するように一時的に構成された汎用的な要素、及びそのタスクを実行するために製造された特定の要素の両方を含む。一般的に、開示されたプロセスのステップ順序は本発明の範囲内で変更され得るものである。
【0005】
本発明の1以上の実施例における詳細な記載は、本発明の原理をあらわす添付の図面とともに以下、提供される。本発明はそのような実施例に関連して説明されるのであるが、実施例に限定されるものではない。本発明の及ぶ範囲は、特許請求の範囲によってのみ規定されるのであり、多数の変形例、変更、均等を包含する。多くの特別の詳細な内容が以下に示す記載に述べられており、本発明の完璧な理解をもたらす。これらの詳細は例示の目的のために提供され、特別な詳細の幾つか又は全てがなくても特許請求の範囲に従い本発明を実行することができる。明確にする目的から、本発明に関係する技術分野で既知の技術事項は詳細に記載しないが、不必要に不明瞭にしているものではない。
【0006】
再現性のある方法で階層データをトラバースすることを開示する。一実施例において、この階層データの第1レベルで、少なくともデータの一部を含むアイテムリストが読み出され、トラバース再現性のために所定の順序でソートされる。例えば、ファイルシステム又はその一部に関するバックアップオペレーションを実行するために、再現性のある方法でファイルシステムをトラバースするとき、各ディレクトリの内容がリストに読み出され、そして(例えば、ファイル名によるアルファベット順に)ソートされる。ファイルシステムエントリ(または、処理された他のデータ)はソートされたリストの順序でバックアップされる。データの第2レベルに遭遇したとき、第2レベルのデータが読み出され、所定の順序でソートされ、そして次にデータをソートした順序に沿って処理される。データのトラバースが中断される場合、再開オペレーション時には、中断オペレーション時と同じ所定の順序でデータの読み出し、ソート、処理が行われる。これは、中断オペレーションが中断されたポイントで処理が再開されるならば、各レベルで要素が読み出され、さもなければ異なる順序で受信されているとしても、どのデータ要素も失われないことを保証するためである。
【0007】
一実施例において、ファイルシステムエントリが、バックアップオペレーションの一部としてバックアップ記録媒体への保存に成功したとき、バックアップの記録が行われる。この記録は、バックアップ中に失敗が生じた場合、最後に成功して記録できたバックアップポイントでバックアップを再開するために、後に用いられる。一実施例において、バックアップ再開オペレーションにおいて最後のバックアップポイントがみつかると、バックアップシステム又はプロセスは、ファイルシステムを徹底的にトラバースすることなく、バックアップオペレーション内容を再確立する。中断バックアップオペレーションは、内容を再確立すること、そして中断前に成功して且つ完全にバックアップされた最後のファイルに続くデータ要素で処理スタートを開始することによって再開される。同じように再現性のある順序でファイルシステムをトラバースすることは、どんなファイルも失われず又はバックアップ記録媒体に重複して記憶されることがないことを保証する。
【発明を実施するための最良の形態】
【0008】
図1は、バックアップシステム環境の一実施例を示す。例に示すように、クライアント102がネットワーク106を介してサーバー108と接続する。ネットワークに接続するクライアント及びサーバーの数は任意である。ネットワークは、公衆回線、私設回線、及び/又はそれらの組み合わせで構成できる。例えば、インターネット、LAN、WAN、及び複数のシステムに接続する他の形式、及び/又はシステムの集合を含み、特に制限されることはない。クライアントはバックアップ記録媒体104と接続する。ある実施例の場合、バックアップ記録媒体は1又はそれ以上の次に示すような記憶メディアである;即ち、ハードドライブ、テープドライブ、光記憶装置、任意の不揮発性メモリデバイスである。1以上のバックアップ記録媒体が存在し得る。一実施例において、バックアップ記録媒体104はネットワークに直接接続される。別の実施例においては、バックアップ記録媒体104はサーバー108に接続される。別の実施例においては、バックアップ記録媒体104はSAN(ストレージ・エリア・ネットワーク)を介してクライアント102に接続される。バックアップデータベース110はサーバー108と接続する。一実施例において、バックアップデータベース110は、1以上のクライアント及び/又はサーバーに関連するデータを含む。別の実施例では、バックアップデータベース110は、1以上のバックアップ記録媒体に書き込まれたデータに関連するデータを含む。別の実施例では、バックアップデータベース110はネットワークに直接接続する。別の実施例において、バックアップデータベース110はクライアント102に接続する。別の実施例において、バックアップデータベース110はサーバー108及び/又はクライアント102の一部である。一実施例において、クライアント102のバックアップはサーバー108によって調整される。サーバー108は、バックアップ記録媒体104にデータをバックアップするためにクライアントに命令を出す。バックアップ記録媒体へのデータ書き込みが成功したとき、バックアップデータベース110への記録が行われる。別の実施例において、サーバー108は、バックアップをうまく行うためにクライント102で実行中のバックアップ・エージェントと協働する。バックアップ・エージェントはサーバー108によって構成される。
【0009】
図2はファイルシステムのツリー構造の実施例を示す。一実施例において、バックアップされるシステムデータの一部(保存集合)が、ファイルシステム全体又はファイルシステムの一部となり得る。一実施例では、ファイルシステムは、任意の同一ポイントでその後のトラバース開始が同じ順序で実行されることを保証するために、再現性のある方法でトラバースされる。一例を示せば、最初はファイル名、次にディレクトリ名によるアルファベット順でトラバースは指示される。別の実施例において、ファイルシステムエントリの標準的な順序付けが用いられる。トラバースはルートディレクトリで開始する。ルートディレクトリのエントリが読み出され、ソートされる。順序正しくソートされたリストは、ファイルF、ディレクトリ1、ディレクトリ2、ディレクトリ4を含む。リストのエントリに対応するデータは、リスト順にバックアップされる。ディレクトリ1がバックアップされることに遭遇するとき、バックアッププロセスはディレクトリ1への処理に進み、ファイルAを含むリストを生成し、そしてファイルAをバックアップする。ディレクトリ1がトラバースされた後、トラバースはルートディレクトリリストのエントリで再開する。ディレクトリ2がバックアップされることに遭遇するとき、ファイルB、ファイルC、ファイルD、ディレクトリ3の順で順序付けられたコンテンツのリストを生成する。リストのエントリに対応するデータは、リスト順でバックアップされる。ディレクトリ3がバックアップされることに遭遇するとき、ファイルEに対応するリストを生成し、そしてバックアップする。ディレクトリ4は何もないので(empty)、ディレクトリ4に対応するエントリは関連ファイル無しでバックアップされる。
【0010】
図3Aは保存集合をバックアップするプロセスの一実施例を示す。例に示すように、302で、カレント・バックアップディレクトリが保存集合の第1レベルディレクトリに設定される。一実施例において、302において、ファイルシステムのルートディレクトリに関連してカレント・ディレクトリを設定する。保存集合は、あらかじめ予め作っておいたり、動的に作ったり、或いはユーザインタフェースを介して指定し、そして第1レベルのデータにセットしたり及び/又は他の方法で定義する。ツリー、ディレクトリ、配列及び/又はリンク付けリストとして編成したデータなどの階層構造化された任意のデータが保存集合であり得る。カレント・バックアップディレクトリは、プロセスが最も新しくバックアップしたデータに関連したディレクトリである。カレント・バックアップディレクトリは予め作られ、動的に作られ、或いはユーザインタフェースを介して処理データ内のデータポイントとして指定される。一実施例において、第1レベルのディレクトリというのは、最も広く参照されるデータに関する分類レベル(即ち、最初に遭遇するデータレベル)である。304で、保存集合のデータがトラバースされ、そして再現性のある方法でバックアップされる。別の実施例では、304に関連するプロセスを用いた再現性のある方法で階層データをトラバースすることができる。一実施例において、例えば、中断のせいで、304に関連するプロセスを中止することが可能である。306で、プロセスの中止のせいで、保存集合のトラバース及びバックアップが終了しないと判断されれば、プロセスは308に進み、中断されたバックアップオペレーションの再開が可能であるか否かを判断する。308の判断で、バックアッププロセスが、成功した最後のバックアップ時点からバックアップを再開することが可能であれば、310で、このバックアッププロセスを再開する。一実施例において、最後のバックアップポイントの時及び/又はバックアップを開始した時から所定の時間が経過していなければ、成功した最後のバックアップポイントからバックアッププロセスを再開することができる。一実施例において、この時間量を予め作ったり、動的に作ったりすることができる。保存集合のすべて又は一部が中断以降に修正されていない場合、最後に成功したバックアップポイントからバックアッププロセスを再開することができる。312で、再開バックアップ中に、再開されたバックアッププロセスが無効であると判断した場合、或いは308で、バックアッププロセスが再開不可能であると判断した場合、バックアップオペレーションがリスタートする(302)。一実施例において、312で、中断前にバックアップ記録媒体に成功して保存された最後のファイルが保存集合から除去されたり、中断以降に修正されていたならば、再開したバックアッププロセスを無効と判断する。312で、再開バックアッププロセスを有効として判断した場合、再開されたバックアッププロセスは、そのバックアップオペレーションが完了したと306で判断されるまで続く。一方、306で、再開されたバックアッププロセスが完了でないと判断すると、308〜312が繰り返される。そして、図3Aのプロセスは終了する。一実施例において、312で、有効の決定がなされる前に、再開されたバックアッププロセスが中止された場合、バックアップオペレーションは始めから再開する(302)。
【0011】
図3Bは再現性のある方法でデータをトラバースし且つバックアップするプロセスの一実施例を示す。図3Bのプロセスは、図3Aの304を実行するために一実施例で使用される。例示するように、316で、カレント・バックアップディレクトリのトラバースリストが構築される。トラバースリストは、再現性のある方法でソートされたカレント・ディレクトリにあるエントリのリストを含む。一実施例では、トラバースリストが保存される。また、トラバースリストは、トラバース及びバックアッププロセスが続くときに同時に構築される。318で、トラバースリストから次のエントリを得る。一実施例において、トラバースリストからのエントリは、リストの順どおりに得られる。別の実施例においては、トラバースリストからのエントリは、リスト順ではなく、再現性のある順序で得られる。320で、エントリが(トラバースリストに存在し処理されたエントリを)成功して得たかを判断し、そして322の判断において、得られたエントリがディレクトリに一致しない場合は、324で、その得られたエントリに関連するファイルシステムエントリがバックアップされ且つ記録(ログ)をとる。そして318で、トラバースリストから次のエントリを得る。一実施例において、324で、ファイルシステムエントリがバックアップ記録媒体に保存される。バックアップは、例えば、バックアップオペレーションが中断されたイベントにおいて、バックアップ記録媒体に成功して保存された保存集合にある最後のファイルを識別できるために記録(ログ)をとる。一実施例では、バックアップのログはバックアップデータベースに保存される。保存されるログは、例えば、トラバースされた時のファイル名、ファイルサイズ、保存集合内のファイルの位置を識別するための保存集合開始位置からのオフセットである。322で、得られたエントリがディレクトリに一致すると判断された場合、カレント・バックアップディレクトリを、得られたエントリに一致するディレクトリとして設定する。そして316で、新たなカレント・ディレクトリのためにトラバースリストを構築する。仮に、320での判断で、処理されるべきエントリがトラバースリストにまったく存在しないのであれば、カレント・バックアップディレクトリのバックアップは328で終了すると判断される。一実施例において、カレント・ディレクトリに関連するデータは、そのカレント・ディレクトリに関連するすべての要素がバックアップされたとき、バックアップ及び/又はログ記録する。330での判断で、カレント・ディレクトリが第1レベルのディレクトリでない場合、そのカレント・ディレクトリは最新に終了したディレクトリの親ディレクトリとして設定される(322)。そして、318で、新たに設定されたカレント・ディレクトリのトラバースリストから次のエントリを得る。一実施例において、第1レベルのディレクトリは、保存集合のルートディレクトリである。親ディレクトリは、処理をまさに終了したディレクトリで置き換えた、前のカレント・バックアップディレクトリに一致するディレクトリである。カレント・バックアップディレクトリは、スタックデータ構造の内部に置かれる。即ち、カレント・バックアップディレクトリが変わるとき、ディレクトリはスタックを追加するか取り去るかの何れかである。別の実施例において、カレント・バックアップディレクトリに対する対応のトラバースリストもまたスタック内部に置かれる。330での判断で、カレント・ディレクトリが第1レベルのディレクトリであれば、バックアップは334で終了する。334は、図3Aの306における“終了”決定に相当する。図3Aのプロセスが334に達する前に中止される場合、トラバース及びバックアッププロセスは終了しない。バックアッププロセス中にエラーが生じれば、トラバース及びバックアッププロセスは終了しない。一実施例の場合、エラーは次に示す1以上のものを含む。即ち、無効トラバースリストエントリ、無効カレント・ディレクトリ、無効データ構造、メモリエラー、プロセスエラー、及び/又は本プロセスに関連する他のエラーである。“終了”決定が334でなされる前にトラバース及びバックアップが中止されたり中断される場合、“未終了”決定が図3Aの306でなされる。
【0012】
図3Cは、トラバースリストを構築するプロセスの一実施例を示す。図3Cのプロセスは図3Bの316を実行するための一実施例で用いられる。例示したように、カレント・ディレクトリ内のすべてのファイルシステムエントリが336で得られる。一実施例において、この取得は1以上の“readdir”又は同様のコマンドを処理することを含む。別の一実施例において、ファイルシステムエントリを取得する任意のプロセスが用いられる。ファイルシステムエントリがメモリに記憶される。338で、エントリは標準的な順序で記憶される。標準的な順序はファイル名、修正時刻、inode番号、作成日、ファイルサイズ及び/又はファイルシステムエントリを順序付けるために用いられ得る他のファイル属性に基づく。再現性のある順序付けはリストをソートするために用いる。別の一実施例において、ファイルシステムエントリは再現性のある順序で取得され、ソートは要求されていない。別の一実施例では、エントリはソートされない。一実施例において、エントリはリストに置かれる。エントリリストは保存される。
【0013】
図3Dは、中断されたバックアップオペレーションを再開するプロセスの一実施例を示す。図3Dのプロセスは、図3Dの310を実行するための一実施例で用いられる。例示したように、バックアップ記録媒体に成功して書き込まれた最後のファイルが340で特定される。342で、リカーシブルスタック(リカーシブルプロセスから生じたスタックエントリ)及び他のプロセス内容は、最後のバックアップディレクトリエントリにつながるサブディレクトリ内へリカーシブル・ファンクションコールを介して処理を進めることによって構築される。一実施例において、他のプロセス内容は1以上のトラバースリストを含む。他の実施例では、他のプロセス内容は、プロセス変数及び/又はデータ構造を含む。非リカーシブルプロセスがバックアップデータをトラバースするために用いられる。一実施例では、リカーシブルスタックは構築されない。バックアップデータはサブディレクトリを含んでいなくてもよい。プロセス内容の構築中に、リスタートポイント、即ち最後のバックアップエントリに関連する構成要素又は最後のバックアップエントリが無効であると344で判断された場合、再開されたバックアップオペレーションが無効であると結論付けられる(350)。一実施例では、350の結論は図3Aの312での無効決定に関連する。一実施例では、最後のバックアップエントリの構成要素又は最後のバックアップエントリはファイルシステムの修正のせいで見つけられない。344の判断で、最後のバックアップポイントエントリ及びその構成要素の全てが存在するという場合、そのバックアップはバックアップのために次のファイルシステムエントリで再開する(346)。そして、再開されたバックアップオペレーションが有効であることを結論付ける(348)。348の結論は図3Aの312での有効決定と関連する。別の実施例において、再開プロセス中にエラーが生じれば、再開オペレーションは無効であるという結論に達する。
【0014】
図3Eは、バックアップ記録媒体に成功して書き込まれた最後のファイルシステムエントリを特定するプロセスの一実施例を示す。図3Cのプロセスは図3Dの340を実行するための一実施例で用いられる。この例は単になる説明のためのものに過ぎない。バックアップ記録媒体に成功して書き込まれた最後のファイルシステムエントリを決定するプロセスが用いられる。例示するように、バックアップオペレーションが中断される前にバックアップ記録媒体に成功して保存された最後の“保存集合の塊(chunk)”の最終オフセット(即ち、終点)を特定するために、352で、バックアップデータベースをクエリーする。一実施例において、オフセットは、保存集合の先頭(即ち、保存集合の先頭のオフセットがゼロである)からのオフセットを示す配置に関連する。“保存集合の塊”はバックアップ記録媒体に書き込まれたデータの集まりである。一実施例において、データ取得する任意のプロセスによって最後のオフセットを得ることができる。354で、最後のファイルシステムエントリを見つけるためにファイルインデックスを要求し、そのエントリの内容はバックアップ記録媒体に保存されたオフセット範囲に完全に存在する。一実施例において、その内容が最後のオフセット内に完全に存在する最後のファイルシステムエントリが、参照ポイントに関連するファイルシステムエントリ終了オフセットと、最後のオフセットとを比較することによって特定される。一実施例において、ファイルインデックスは、保存集合内の各エントリに関する参照ポイントに関するオフセット情報を含む。別の実施例において、ファイルに関する最後のオフセット情報は、ファイルのバックアップが開始されたときに、そのファイルについてログ記録された開始オフセット及びファイルサイズから計算される。一実施例において、ファイルインデックスはファイルシステムの一部である。別の実施例において、ファイルインデックスはバックアップデータベースと関連する。
【0015】
図3Fは、プロセス内容を確立するプロセスの一実施例を示す。図3Fのプロセッサは、図3Dの342を実行するための一実施例で用いられる。例示するように、340で、リスタートポイントが受信される。リスタートポイントは最後に処理されたファイルシステムエントリに関連する任意のデータである。即ち、関連のバックアップオペレーションの中断前に、バックアップ記録媒体に対して保存が完了した最後のファイルに対応するファイルシステムパスである。一実施例において、リスタートポイントは、図3Dの340で判断された、バックアップ記録媒体に成功して書き込まれた最後のファイルシステムエントリに関連する。358で、第1レベルのディレクトリで始まる保存集合のトラバースを開始する。360で、トラバースされるべきカレント・ディレクトリ内の次のファイルシステムエントリが得られる。362の判断で、得られたエントリが有効でない場合、リスタートポイントは無効であるという結論に達する(364)。一実施例において、得られたエントリが無効であるかもしれない。なぜならトラバースされるべき現在のディレクトリ、リスタートポイントに関連するか又は影響を及ぼすエントリ、及び/又は変更、移動、削除されたリスタートパス内にどんなファイルシステムエントリも存在しなかったり、或いはファイルシステムのエラーのせいであったりするからである。一実施例において、364の結論は、図3Dの344での無効決定と関連する。得られたエントリが362で有効であると判断され、且つ366でリスタートポイントに一致すると判断された場合、リスタートポイントは有効であるという結論に達する(368)。一実施例において、368の結論は、図3Dの344での有効決定と関連する。366の判断で、得られたエントリがリスタートポイントでなく、且つ370の判断で、得られたエントリがディレクトリエントリである場合、得られたディレクトリエントリがリスタートポイントに繋がるかどうかが判断される(372)。一実施例において、ディレクトリがリスタートポイントに繋がるファイルシステムパスの一部であれば、ディレクトリはリスタートポイントに繋がる。372の判断で、得られたディレクトリエントリがリスタートポイントに繋がるのであれば、得られたディレクトリエントリに処理を進める(374)。ディレクトリへ処理を進めることはリカーシブルプロセスではない。一実施例において、ディレクトリへ処理を進めることはリカーシブルスタックを構築することを含む。一実施例において、ディレクトリへ処理を進めることは、1以上の次のものを含む。即ち、トラバースリストの構築、データのバックアップ、ファイルシステムエントリの読み出し、ディレクトリ内容の読み出し、ディレクトリのトラバース、そして1以上の変数及びデータ構造を初期化することである。ディレクトリにおいて次のシステムエントリを得る(360)。370の判断で、得られたエントリがディレクトリでなかったり、372の判断で、リスタートポイントに繋がっていなかった場合、トラバースされるはずのカレント・ディレクトリにある次のファイルシステムエントリが得られる(360)。一実施例において、ファイルシステムは再現性のある方法でトラバースされる。即ち、ファイルシステムエントリは各ディレクトリのために構築されたトラバースリストの順でトラバースされる。
【0016】
ファイルシステムのトラバース及びバックアップが、上述した実施例で述べられる一方で、ここでのアプローチは再現性のある方法で任意のデータ構造のために適用することが可能である。
【0017】
上述した図3A、3B、3C,3D、3E及び3Fのプロセスは、1以上の集積回路及び/又は他のデバイス、又はファームウェアやソフトウェアなどの適した方法で実行され得るものである。
【0018】
上記実施例は明確な理解を図る目的で少し詳しく記載されているが、本発明はその提供された詳細内容に限定されるものではない。本発明を実行する多くの代替案がある。開示された実施例は例示に過ぎず、限定的なものではない。
【図面の簡単な説明】
【0019】
【図1】バックアップシステム環境の一実施例を示す図である。
【図2】ファイルシステムのツリー構造の一実施例を示す図である。
【図3A】保存集合をバックアップするプロセスの一実施例を示す図である。
【図3B】再現性のある方法でデータをトラバースし且つバックアップするプロセスの一実施例を示す図である。
【図3C】トラバースリストを構築するためのプロセスの一実施例を示す図である。
【図3D】中断されたバックアップオペレーションを再開するプロセスの一実施例を示す図である。
【図3E】バックアップ記録媒体に首尾よく書き込まれた最後のファイルシステムエントリを決定するプロセスの一実施例を示す図である。
【図3F】処理内容を確立するプロセスの一実施例を示す図である。

【特許請求の範囲】
【請求項1】
階層データを処理する方法であって、
a)前記データの第1レベルにある第1のリストのアイテムを受信するステップと、
b)前記第1のリストをある順序でソート(sorting)するステップと、
c)前記第1レベルのデータを、前記ソートされた第1のリストの順に処理するステップと、
d)処理の最中に、別のレベルのデータに遭遇した場合、
前記遭遇したレベルにある第2のリストのアイテムを受信し、
前記第2のリストをある順序でソートし、
前記データを、前記第2のリストの順に処理する、
ステップを含む方法。
【請求項2】
実行される予定の前記階層データの処理を中断するオペレーションにおいて、前記オペレーションを継続することが要求されたとき、リスタートポイントに到達するために前記階層データをトラバースし、そして前記中断の前に前記階層データがトラバースされていたのと同じ順序で前記階層データの残りの要素を処理することによって、始めから前記オペレーションをリスタートすることなく、前記階層データの処理を再開するステップを更に含む、請求項1に記載の方法。
【請求項3】
前記リスタートポイントに到達するために階層データをトラバースする処理は、前記中断前に処理された前記階層データの少なくとも一部を、前記中断前に前記階層データがトラバースされていたのと同じ順序でトラバースすることを含む、請求項2に記載の方法。
【請求項4】
前記第2のリストにある最後のアイテムの処理が完了した時点で、前記第1のリストにアイテムがあれば、その第1のリストの順序における次のアイテムから前記第1レベルのデータ処理を再開する、請求項1に記載の方法。
【請求項5】
前記第1のリストは、スタックデータ構造における前記第1レベルのデータに対応づけられた第1の位置に記憶され、そして前記第2のリストは、スタックデータ構造の前記データのレベルに対応づけられた第2の位置に記憶される、請求項1に記載の方法。
【請求項6】
前記階層データは、ファイルシステム又はその一部を含む保存集合である、請求項1に記載の方法。
【請求項7】
前記階層データは、ツリー、ディレクトリ、配列、又はリンク付けされたリストとして編成されたデータを含む、請求項1に記載の方法。
【請求項8】
前記第1のリストのアイテムを受信するステップは、コンテンツリストの処理からデータを受信することを含む、請求項1に記載の方法。
【請求項9】
前記第1のリストのアイテムを受信するステップは、ディレクトリを読み出すための1以上の要求を発行することを含む、請求項1に記載の方法。
【請求項10】
前記第1レベルは第1のディレクトリを含み、前記第2レベルは前記第1のディレクトリ内のサブディレクトリである第2のディレクトリを含む、請求項1に記載の方法。
【請求項11】
前記第1レベルが保存集合のルートディレクトリである、請求項1に記載の方法。
【請求項12】
前記第1レベルが前記第2レベルよりも更に汎用レベルの階層データである、請求項1に記載の方法。
【請求項13】
前記第1のリストをある順序でソートするステップは、再現性のある順で前記アイテムを順序づけることを含む、請求項1に記載の方法。
【請求項14】
前記第1のリストをある順序でソートするステップは、標準的な順で前記アイテムを順序づけることを含む、請求項1に記載の方法。
【請求項15】
前記標準的な順序は、アイテムのタイプ、アイテム名、アイテム属性、アイテム修正日時、アイテム生成日時、アイテムサイズ、及びinode番号の1つ以上に基づいて順序づけられることを含む、請求項14に記載の方法。
【請求項16】
前記第1レベルのデータを処理するステップは、前記第1レベルのデータをトラバースすることを含む、請求項1に記載の方法。
【請求項17】
前記第1レベルのデータを処理するステップは、前記第1レベルのデータに対応づけられたデータをバックアップすることを含む、請求項1に記載の方法。
【請求項18】
前記第1レベルのデータを処理するステップは、前記第1レベルのデータに対応づけられたログデータを含む、請求項1に記載の方法。
【請求項19】
様々なレベルが処理中に遭遇し得る、請求項1に記載の方法。
【請求項20】
前記処理が中止される、請求項1に記載の方法。
【請求項21】
前記処理が中止された場合、最後の終了したアイテムからその処理を再開することができる、請求項1に記載の方法。
【請求項22】
前記処理が中止され、且つその中止から所定の時間又は動的に設定された時間が経過していない場合、最後の終了したアイテムからその処理を再開することができる、請求項1に記載の方法。
【請求項23】
前記処理が中止され、且つその中止以来、前記階層データが修正されていない場合、最後の終了したアイテムからその処理を再開することができる、請求項1に記載の方法。
【請求項24】
階層データを処理するシステムであって、
a)前記データの第1レベルにある第1のリストのアイテムを受信し、
b)前記第1のリストをある順序でソート(sorting)し、
c)前記第1レベルのデータを、前記ソートされた第1のリストの順に処理し、
d)処理の最中に、別のレベルのデータに遭遇した場合、
前記遭遇したレベルにある第2のリストのアイテムを受信し、
前記第2のリストをある順序でソートし、
前記データを、前記第2のリストの順に処理する、
ように構成したプロセッサと、
前記プロセッサに接続され、当該プロセッサに命令を提供するよう構成されたメモリと、を備えたシステム。
【請求項25】
前記プロセッサは、前記第2のリストにある最後のアイテムの処理が完了した時点で、前記第1のリストにアイテムがあれば、その第1のリストの順序における次のアイテムから前記第1レベルのデータ処理を再開するように構成されていることを更に含む、請求項24に記載のシステム。
【請求項26】
前記プロセッサは、実行される予定の前記階層データの処理を中断するオペレーションにおいて、前記オペレーションを継続することが要求されたとき、リスタートポイントに到達するために前記階層データをトラバースし、そして前記中断の前に前記階層データがトラバースされていたのと同じ順序で前記階層データの残りの要素を処理することによって、始めから前記オペレーションをリスタートすることなく、前記階層データの処理を再開するよう構成されていることを更に含む、請求項24に記載のシステム。
【請求項27】
前記リスタートポイントに到達するために階層データをトラバースすることは、前記中断前に処理された前記階層データの少なくとも一部を、前記中断前に前記階層データがトラバースされていたのと同じ順序でトラバースすることを含む、請求項26に記載のシステム。
【請求項28】
コンピュータ読み出し記録可能な記録媒体に記録された、階層データを処理するためのコンピュータプログラムであって、コンピュータに、
a)前記データの第1レベルにある第1のリストのアイテムを受信し、
b)前記第1のリストをある順序でソート(sorting)し、
c)前記第1レベルのデータを、前記ソートされた第1のリストの順に処理し、
d)処理の最中に、別のレベルのデータに遭遇した場合、
前記遭遇したレベルにある第2のリストのアイテムを受信し、
前記第2のリストをある順序でソートし、
前記データを、前記第2のリストの順に処理する、
指令を実行させるためのプログラム。
【請求項29】
前記第2のリストにある最後のアイテムの処理が完了した時点で、前記第1のリストにアイテムがあれば、その第1のリストの順序における次のアイテムから前記第1レベルのデータ処理を再開するように構成されている指令を更に含む、請求項28に記載のプログラム。
【請求項30】
実行される予定の前記階層データの処理を中断するオペレーションにおいて、前記オペレーションを継続することが要求されたとき、リスタートポイントに到達するために前記階層データをトラバースし、そして前記中断の前に前記階層データがトラバースされていたのと同じ順序で前記階層データの残りの要素を処理することによって、始めから前記オペレーションをリスタートすることなく、前記階層データの処理を再開するよう構成されている指令を更に含む、請求項28に記載のプログラム。
【請求項31】
前記リスタートポイントに到達するために階層データをトラバースする指令は、前記中断前に処理された前記階層データの少なくとも一部を、前記中断前に前記階層データがトラバースされていたのと同じ順序でトラバースすることを含む、請求項30に記載のプログラム。
【請求項32】
データエントリを見つけ出す方法であって、
階層データ集合に対応づけられたデータの最後のセグメントの参照ポイントに関係するセグメント終了オフセットを特定するステップであって、前記最後のセグメントは、記録媒体に保存されることになっている前記階層データに対応づけられた最後のデータであった当該ステップと、
前記参照ポイントに関係するデータオブジェクト終了オフセットと、前記セグメント終了オフセットを比較することによって、前記記録媒体に完全に保存された最後のデータオブジェクトであったデータオブジェクトの前記階層データ集合内の位置を特定するステップと、を含む方法。
【請求項33】
階層データの処理を再開する方法であって、
前記階層データの第1レベルで開始し、前記前に処理された部分のデータに関する少なくとも1つの処理オペレーションを省略することによって、前記階層データの前に処理された部分をトラバースするステップと、
前記階層データ内のリスタート位置につながるサブレベルがあれば、そこに処理を進めるステップと、
前記リスタート位置の後の次のデータから通常の処理を再開するステップと、を含む方法。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図3E】
image rotate

【図3F】
image rotate


【公表番号】特表2008−537229(P2008−537229A)
【公表日】平成20年9月11日(2008.9.11)
【国際特許分類】
【出願番号】特願2008−506719(P2008−506719)
【出願日】平成18年4月12日(2006.4.12)
【国際出願番号】PCT/US2006/014000
【国際公開番号】WO2007/027208
【国際公開日】平成19年3月8日(2007.3.8)
【出願人】(507024769)イーエムシー コーポレイション (13)
【Fターム(参考)】