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

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

Info

Publication number
JP2008537229A
JP2008537229A JP2008506719A JP2008506719A JP2008537229A JP 2008537229 A JP2008537229 A JP 2008537229A JP 2008506719 A JP2008506719 A JP 2008506719A JP 2008506719 A JP2008506719 A JP 2008506719A JP 2008537229 A JP2008537229 A JP 2008537229A
Authority
JP
Japan
Prior art keywords
data
list
processing
level
item
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.)
Pending
Application number
JP2008506719A
Other languages
English (en)
Inventor
ケヴィン ファーリー
リチャード ライトマイヤー
ウィリアム マルヤマ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Publication of JP2008537229A publication Critical patent/JP2008537229A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

記憶装置の最大容量が急激に大きくなっている傾向とともに、ファイルシステムのサイズもまた同様に指数関数的に増大している。ファイルシステムのバックアップユーティリティは、要求されたファイル及びディレクトリのすべてを見つけ出し且つバックアップするためにファイルシステムを完全にトラバース(traverse)しなければならないので、大きなファイルシステムはバックアップにかなりの時間を要する。長時間のバックアップは、バックアッププロセス間の中断という大きなリスクを意味することになる。例えば、ネットワーク化されたバックアップシステムでの短時間のネットワーク障害、またはクライアント或いはサーバーにおける他の障害は、バックアッププロセスを中断させることを引き起こす可能性がある。バックアップ障害時において、典型的なバックアップシステムは、バックアップオペレーションでバックアップされているデータの組(例えば、バックアップされるべきファイル及び/又はディレクトリのグループ化、以下、“保存集合(saveset)”と称することがある。)の開始からバックアッププロセスをリスタートする。長時間のバックアップで、更なる中断の可能性がある場合、あらゆる中断の後でバックアッププロセスを開始することは、バックアップシステムのパフォーマンスに重大な影響を及ぼしかねない。
典型的なバックアップシステム又はプロセスにおいて、中断後で保存集合を更新しなかったデータがたとえあったとしても、バックアップオペレーションはその中断した箇所を取出すことはできない。なぜなら、少なくとも幾つかのケースでは、ファイルシステムのトラバースはいつも同じ順序で生じるとは保証されていないからである。例えば、あるディレクトリからエントリを読出すための“readdir”(ディレクトリの読み出し)コマンドは、同一のコマンドの各インスタンス(instance)について異なる順序で結果を戻すことがある。それゆえ、再現性のある方法で実行されるデータトラバースを保証する必要がある。
本発明の様々な実施例は、以下の詳細な説明及び添付の図面に開示されている。
本発明は、プロセス装置、システム、合成物、記憶メディアなどのコンピュータ読み出し可能な記録媒体、又はプログラム命令が光或いは電気通信回線を介して伝送されるコンピュータネットワークを含む、様々な方法で実行されるものである。本明細書において、これらの実施又は本発明がとり得る他の形式が技術として引用される。タスクを実行するよう構成されているものとして記載されたプロセッサ又はメモリ等の構成要素は、所与の時間でタスクを実行するように一時的に構成された汎用的な要素、及びそのタスクを実行するために製造された特定の要素の両方を含む。一般的に、開示されたプロセスのステップ順序は本発明の範囲内で変更され得るものである。
本発明の1以上の実施例における詳細な記載は、本発明の原理をあらわす添付の図面とともに以下、提供される。本発明はそのような実施例に関連して説明されるのであるが、実施例に限定されるものではない。本発明の及ぶ範囲は、特許請求の範囲によってのみ規定されるのであり、多数の変形例、変更、均等を包含する。多くの特別の詳細な内容が以下に示す記載に述べられており、本発明の完璧な理解をもたらす。これらの詳細は例示の目的のために提供され、特別な詳細の幾つか又は全てがなくても特許請求の範囲に従い本発明を実行することができる。明確にする目的から、本発明に関係する技術分野で既知の技術事項は詳細に記載しないが、不必要に不明瞭にしているものではない。
再現性のある方法で階層データをトラバースすることを開示する。一実施例において、この階層データの第1レベルで、少なくともデータの一部を含むアイテムリストが読み出され、トラバース再現性のために所定の順序でソートされる。例えば、ファイルシステム又はその一部に関するバックアップオペレーションを実行するために、再現性のある方法でファイルシステムをトラバースするとき、各ディレクトリの内容がリストに読み出され、そして(例えば、ファイル名によるアルファベット順に)ソートされる。ファイルシステムエントリ(または、処理された他のデータ)はソートされたリストの順序でバックアップされる。データの第2レベルに遭遇したとき、第2レベルのデータが読み出され、所定の順序でソートされ、そして次にデータをソートした順序に沿って処理される。データのトラバースが中断される場合、再開オペレーション時には、中断オペレーション時と同じ所定の順序でデータの読み出し、ソート、処理が行われる。これは、中断オペレーションが中断されたポイントで処理が再開されるならば、各レベルで要素が読み出され、さもなければ異なる順序で受信されているとしても、どのデータ要素も失われないことを保証するためである。
一実施例において、ファイルシステムエントリが、バックアップオペレーションの一部としてバックアップ記録媒体への保存に成功したとき、バックアップの記録が行われる。この記録は、バックアップ中に失敗が生じた場合、最後に成功して記録できたバックアップポイントでバックアップを再開するために、後に用いられる。一実施例において、バックアップ再開オペレーションにおいて最後のバックアップポイントがみつかると、バックアップシステム又はプロセスは、ファイルシステムを徹底的にトラバースすることなく、バックアップオペレーション内容を再確立する。中断バックアップオペレーションは、内容を再確立すること、そして中断前に成功して且つ完全にバックアップされた最後のファイルに続くデータ要素で処理スタートを開始することによって再開される。同じように再現性のある順序でファイルシステムをトラバースすることは、どんなファイルも失われず又はバックアップ記録媒体に重複して記憶されることがないことを保証する。
図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によって構成される。
図2はファイルシステムのツリー構造の実施例を示す。一実施例において、バックアップされるシステムデータの一部(保存集合)が、ファイルシステム全体又はファイルシステムの一部となり得る。一実施例では、ファイルシステムは、任意の同一ポイントでその後のトラバース開始が同じ順序で実行されることを保証するために、再現性のある方法でトラバースされる。一例を示せば、最初はファイル名、次にディレクトリ名によるアルファベット順でトラバースは指示される。別の実施例において、ファイルシステムエントリの標準的な順序付けが用いられる。トラバースはルートディレクトリで開始する。ルートディレクトリのエントリが読み出され、ソートされる。順序正しくソートされたリストは、ファイルF、ディレクトリ1、ディレクトリ2、ディレクトリ4を含む。リストのエントリに対応するデータは、リスト順にバックアップされる。ディレクトリ1がバックアップされることに遭遇するとき、バックアッププロセスはディレクトリ1への処理に進み、ファイルAを含むリストを生成し、そしてファイルAをバックアップする。ディレクトリ1がトラバースされた後、トラバースはルートディレクトリリストのエントリで再開する。ディレクトリ2がバックアップされることに遭遇するとき、ファイルB、ファイルC、ファイルD、ディレクトリ3の順で順序付けられたコンテンツのリストを生成する。リストのエントリに対応するデータは、リスト順でバックアップされる。ディレクトリ3がバックアップされることに遭遇するとき、ファイルEに対応するリストを生成し、そしてバックアップする。ディレクトリ4は何もないので(empty)、ディレクトリ4に対応するエントリは関連ファイル無しでバックアップされる。
図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)。
図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でなされる。
図3Cは、トラバースリストを構築するプロセスの一実施例を示す。図3Cのプロセスは図3Bの316を実行するための一実施例で用いられる。例示したように、カレント・ディレクトリ内のすべてのファイルシステムエントリが336で得られる。一実施例において、この取得は1以上の“readdir”又は同様のコマンドを処理することを含む。別の一実施例において、ファイルシステムエントリを取得する任意のプロセスが用いられる。ファイルシステムエントリがメモリに記憶される。338で、エントリは標準的な順序で記憶される。標準的な順序はファイル名、修正時刻、inode番号、作成日、ファイルサイズ及び/又はファイルシステムエントリを順序付けるために用いられ得る他のファイル属性に基づく。再現性のある順序付けはリストをソートするために用いる。別の一実施例において、ファイルシステムエントリは再現性のある順序で取得され、ソートは要求されていない。別の一実施例では、エントリはソートされない。一実施例において、エントリはリストに置かれる。エントリリストは保存される。
図3Dは、中断されたバックアップオペレーションを再開するプロセスの一実施例を示す。図3Dのプロセスは、図3Dの310を実行するための一実施例で用いられる。例示したように、バックアップ記録媒体に成功して書き込まれた最後のファイルが340で特定される。342で、リカーシブルスタック(リカーシブルプロセスから生じたスタックエントリ)及び他のプロセス内容は、最後のバックアップディレクトリエントリにつながるサブディレクトリ内へリカーシブル・ファンクションコールを介して処理を進めることによって構築される。一実施例において、他のプロセス内容は1以上のトラバースリストを含む。他の実施例では、他のプロセス内容は、プロセス変数及び/又はデータ構造を含む。非リカーシブルプロセスがバックアップデータをトラバースするために用いられる。一実施例では、リカーシブルスタックは構築されない。バックアップデータはサブディレクトリを含んでいなくてもよい。プロセス内容の構築中に、リスタートポイント、即ち最後のバックアップエントリに関連する構成要素又は最後のバックアップエントリが無効であると344で判断された場合、再開されたバックアップオペレーションが無効であると結論付けられる(350)。一実施例では、350の結論は図3Aの312での無効決定に関連する。一実施例では、最後のバックアップエントリの構成要素又は最後のバックアップエントリはファイルシステムの修正のせいで見つけられない。344の判断で、最後のバックアップポイントエントリ及びその構成要素の全てが存在するという場合、そのバックアップはバックアップのために次のファイルシステムエントリで再開する(346)。そして、再開されたバックアップオペレーションが有効であることを結論付ける(348)。348の結論は図3Aの312での有効決定と関連する。別の実施例において、再開プロセス中にエラーが生じれば、再開オペレーションは無効であるという結論に達する。
図3Eは、バックアップ記録媒体に成功して書き込まれた最後のファイルシステムエントリを特定するプロセスの一実施例を示す。図3Cのプロセスは図3Dの340を実行するための一実施例で用いられる。この例は単になる説明のためのものに過ぎない。バックアップ記録媒体に成功して書き込まれた最後のファイルシステムエントリを決定するプロセスが用いられる。例示するように、バックアップオペレーションが中断される前にバックアップ記録媒体に成功して保存された最後の“保存集合の塊(chunk)”の最終オフセット(即ち、終点)を特定するために、352で、バックアップデータベースをクエリーする。一実施例において、オフセットは、保存集合の先頭(即ち、保存集合の先頭のオフセットがゼロである)からのオフセットを示す配置に関連する。“保存集合の塊”はバックアップ記録媒体に書き込まれたデータの集まりである。一実施例において、データ取得する任意のプロセスによって最後のオフセットを得ることができる。354で、最後のファイルシステムエントリを見つけるためにファイルインデックスを要求し、そのエントリの内容はバックアップ記録媒体に保存されたオフセット範囲に完全に存在する。一実施例において、その内容が最後のオフセット内に完全に存在する最後のファイルシステムエントリが、参照ポイントに関連するファイルシステムエントリ終了オフセットと、最後のオフセットとを比較することによって特定される。一実施例において、ファイルインデックスは、保存集合内の各エントリに関する参照ポイントに関するオフセット情報を含む。別の実施例において、ファイルに関する最後のオフセット情報は、ファイルのバックアップが開始されたときに、そのファイルについてログ記録された開始オフセット及びファイルサイズから計算される。一実施例において、ファイルインデックスはファイルシステムの一部である。別の実施例において、ファイルインデックスはバックアップデータベースと関連する。
図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)。一実施例において、ファイルシステムは再現性のある方法でトラバースされる。即ち、ファイルシステムエントリは各ディレクトリのために構築されたトラバースリストの順でトラバースされる。
ファイルシステムのトラバース及びバックアップが、上述した実施例で述べられる一方で、ここでのアプローチは再現性のある方法で任意のデータ構造のために適用することが可能である。
上述した図3A、3B、3C,3D、3E及び3Fのプロセスは、1以上の集積回路及び/又は他のデバイス、又はファームウェアやソフトウェアなどの適した方法で実行され得るものである。
上記実施例は明確な理解を図る目的で少し詳しく記載されているが、本発明はその提供された詳細内容に限定されるものではない。本発明を実行する多くの代替案がある。開示された実施例は例示に過ぎず、限定的なものではない。
バックアップシステム環境の一実施例を示す図である。 ファイルシステムのツリー構造の一実施例を示す図である。 保存集合をバックアップするプロセスの一実施例を示す図である。 再現性のある方法でデータをトラバースし且つバックアップするプロセスの一実施例を示す図である。 トラバースリストを構築するためのプロセスの一実施例を示す図である。 中断されたバックアップオペレーションを再開するプロセスの一実施例を示す図である。 バックアップ記録媒体に首尾よく書き込まれた最後のファイルシステムエントリを決定するプロセスの一実施例を示す図である。 処理内容を確立するプロセスの一実施例を示す図である。

Claims (33)

  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つの処理オペレーションを省略することによって、前記階層データの前に処理された部分をトラバースするステップと、
    前記階層データ内のリスタート位置につながるサブレベルがあれば、そこに処理を進めるステップと、
    前記リスタート位置の後の次のデータから通常の処理を再開するステップと、を含む方法。
JP2008506719A 2005-04-14 2006-04-12 再現性のある方法でのデータトラバース Pending JP2008537229A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/107,995 US7657579B2 (en) 2005-04-14 2005-04-14 Traversing data in a repeatable manner
PCT/US2006/014000 WO2007027208A2 (en) 2005-04-14 2006-04-12 Traversing data in a repeatable manner

Publications (1)

Publication Number Publication Date
JP2008537229A true JP2008537229A (ja) 2008-09-11

Family

ID=37109770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008506719A Pending JP2008537229A (ja) 2005-04-14 2006-04-12 再現性のある方法でのデータトラバース

Country Status (5)

Country Link
US (2) US7657579B2 (ja)
EP (1) EP1869594A4 (ja)
JP (1) JP2008537229A (ja)
CN (2) CN102982067B (ja)
WO (1) WO2007027208A2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7974952B1 (en) * 2005-04-18 2011-07-05 Emc Corporation Tracking file system changes for backup
US7693889B1 (en) 2005-12-28 2010-04-06 Emc Corporation Automated backup and recovery for content repository
US7574461B1 (en) * 2005-12-28 2009-08-11 Emc Corporation Dividing data for multi-thread backup
US7882073B1 (en) * 2007-09-28 2011-02-01 Symantec Operating Corporation Backup agent for dynamically decomposing a database backup request to constituent files to facilitate backup restartability
US8176274B2 (en) * 2008-10-24 2012-05-08 Cyanline Llc Electronic data reproduction
CN101729671A (zh) * 2009-12-31 2010-06-09 宇龙计算机通信科技(深圳)有限公司 一种终端、备份文件管理的方法及系统
US9235593B2 (en) * 2010-09-30 2016-01-12 Emc Corporation Transmitting filesystem changes over a network
CN102479203B (zh) * 2010-11-26 2014-05-28 金蝶软件(中国)有限公司 物料清单的展示方法及系统
US8671085B2 (en) 2011-12-09 2014-03-11 Microsoft Corporation Consistent database recovery across constituent segments
CN103186568B (zh) * 2011-12-28 2017-03-22 金蝶软件(中国)有限公司 树型结构数据的访问方法及系统
CN103514064B (zh) * 2012-06-28 2016-03-16 国际商业机器公司 记录备份信息的方法和装置
US9535794B2 (en) * 2013-07-26 2017-01-03 Globalfoundries Inc. Monitoring hierarchical container-based software systems
US9678979B1 (en) * 2013-07-31 2017-06-13 EMC IP Holding Company LLC Common backup format and log based virtual full construction
US9110910B1 (en) 2013-07-31 2015-08-18 Emc Corporation Common backup format and log based virtual full construction
US20150242284A1 (en) * 2014-02-25 2015-08-27 Ca, Inc. Two-algorithm sort during backup and recovery
CN105376277B (zh) * 2014-08-25 2019-02-01 Tcl集团股份有限公司 一种数据同步方法及装置
US9507668B2 (en) * 2014-10-30 2016-11-29 Netapp, Inc. System and method for implementing a block-based backup restart
US10318575B2 (en) 2014-11-14 2019-06-11 Zorroa Corporation Systems and methods of building and using an image catalog
US10853192B2 (en) * 2015-02-24 2020-12-01 Unisys Corporation Database replication with continue and tape-type-override functions
CN105808633B (zh) * 2016-01-08 2019-07-23 平安科技(深圳)有限公司 数据归档方法和系统
US10467257B2 (en) * 2016-08-09 2019-11-05 Zorroa Corporation Hierarchical search folders for a document repository
US10664514B2 (en) 2016-09-06 2020-05-26 Zorroa Corporation Media search processing using partial schemas
CN106777383B (zh) * 2017-02-14 2020-05-19 Oppo广东移动通信有限公司 文件排序方法及智能终端
CN107798073B (zh) * 2017-09-29 2020-07-24 华为技术有限公司 处理具有树形结构的数据集合的方法和装置
US20220075830A1 (en) * 2020-09-10 2022-03-10 EMC IP Holding Company LLC Resumable ordered recursive traversal of an unordered directory tree

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4453217A (en) * 1982-01-04 1984-06-05 Bell Telephone Laboratories, Incorporated Directory lookup method and apparatus
US4945475A (en) * 1986-10-30 1990-07-31 Apple Computer, Inc. Hierarchical file system to provide cataloging and retrieval of data
US5398142B1 (en) * 1989-05-31 1997-09-16 Raxco Inc Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment
US5649205A (en) * 1989-07-07 1997-07-15 Martins; Augusto Baronio File retrieval system
US5276874A (en) * 1989-08-11 1994-01-04 Digital Equipment Corporation Method for creating a directory tree in main memory using an index file in secondary memory
US5177744A (en) 1990-09-04 1993-01-05 International Business Machines Corporation Method and apparatus for error recovery in arrays
US5239647A (en) * 1990-09-07 1993-08-24 International Business Machines Corporation Data storage hierarchy with shared storage level
US5764877A (en) * 1991-06-25 1998-06-09 Digital Equipment Corporation Media recovery with time-split B-trees
US5241668A (en) * 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for automated termination and resumption in a time zero backup copy process
US5355497A (en) * 1992-06-10 1994-10-11 Physiotronics Corporation File directory structure generator and retrevial tool with document locator module mapping the directory structure of files to a real world hierarchical file structure
US5794252A (en) 1995-01-24 1998-08-11 Tandem Computers, Inc. Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing
US6453325B1 (en) * 1995-05-24 2002-09-17 International Business Machines Corporation Method and means for backup and restoration of a database system linked to a system for filing data
US5644736A (en) * 1995-05-25 1997-07-01 International Business Machines Corporation System and method for selecting components of a hierarchical file structure
US5778395A (en) * 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US5838783A (en) * 1995-12-27 1998-11-17 Lucent Technologies, Inc. Smart directory management
US6457017B2 (en) * 1996-05-17 2002-09-24 Softscape, Inc. Computing system for information management
JPH1040063A (ja) * 1996-07-26 1998-02-13 Canon Inc 画像情報処理方法とその装置
US5878410A (en) * 1996-09-13 1999-03-02 Microsoft Corporation File system sort order indexes
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US6647393B1 (en) * 1996-11-22 2003-11-11 Mangosoft Corporation Dynamic directory service
US6199074B1 (en) * 1997-10-09 2001-03-06 International Business Machines Corporation Database backup system ensuring consistency between primary and mirrored backup database copies despite backup interruption
DE69816415T2 (de) * 1998-03-02 2004-04-15 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Datensicherungssystem
US6269381B1 (en) 1998-06-30 2001-07-31 Emc Corporation Method and apparatus for backing up data before updating the data and for restoring from the backups
US6141773A (en) 1998-06-30 2000-10-31 Emc Corporation Method and apparatus for undoing changes to computer memory
US6321219B1 (en) * 1998-08-14 2001-11-20 Microsoft Corporation Dynamic symbolic links for computer file systems
GB2341249A (en) 1998-08-17 2000-03-08 Connected Place Limited A method of generating a difference file defining differences between an updated file and a base file
US6397308B1 (en) 1998-12-31 2002-05-28 Emc Corporation Apparatus and method for differential backup and restoration of data in a computer storage system
US6385706B1 (en) * 1998-12-31 2002-05-07 Emx Corporation Apparatus and methods for copying a logical object to a primary storage device using a map of storage locations
US6487561B1 (en) 1998-12-31 2002-11-26 Emc Corporation Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size
US6779003B1 (en) * 1999-12-16 2004-08-17 Livevault Corporation Systems and methods for backing up data files
US20010045965A1 (en) * 2000-02-14 2001-11-29 Julian Orbanes Method and system for receiving user input
JP3938460B2 (ja) * 2000-05-24 2007-06-27 株式会社リコー 情報記録装置と情報記録方法と情報記録処理プログラムを記録した記録媒体と光ディスク記録装置と光ディスク記録方法と情報記録システムと光ディスク記録システム
US6687849B1 (en) * 2000-06-30 2004-02-03 Cisco Technology, Inc. Method and apparatus for implementing fault-tolerant processing without duplicating working process
US6513135B2 (en) 2000-08-02 2003-01-28 Hitachi, Ltd. Automatic read reassignment method and a magnetic disk drive
US6625591B1 (en) * 2000-09-29 2003-09-23 Emc Corporation Very efficient in-memory representation of large file system directories
US6804690B1 (en) * 2000-12-27 2004-10-12 Emc Corporation Method for physical backup in data logical order
US6662281B2 (en) * 2001-01-31 2003-12-09 Hewlett-Packard Development Company, L.P. Redundant backup device
CN1197013C (zh) * 2001-02-02 2005-04-13 英业达股份有限公司 利用同步目录容错的方法
US7546305B2 (en) * 2001-04-13 2009-06-09 Oracle International Corporation File archival
US6912645B2 (en) * 2001-07-19 2005-06-28 Lucent Technologies Inc. Method and apparatus for archival data storage
US7134041B2 (en) * 2001-09-20 2006-11-07 Evault, Inc. Systems and methods for data backup over a network
EP1300757A1 (en) * 2001-10-02 2003-04-09 Sun Microsystems, Inc. Shareable installation hierarchies
US6839819B2 (en) * 2001-12-28 2005-01-04 Storage Technology Corporation Data management appliance
US20030172094A1 (en) * 2002-03-06 2003-09-11 International Business Machines Corporation Automatic file system maintenance
US7007047B2 (en) * 2002-03-29 2006-02-28 Panasas, Inc. Internally consistent file system image in distributed object-based data storage
EP1674998A3 (en) * 2002-06-21 2013-05-22 Sharp Kabushiki Kaisha Information processing apparatus, information equipment, information processing system, automatic backup method, data transmission and reception method, automatic backup program, data transmission and reception program, and record medium having the programs recorded thereon
US7386529B2 (en) * 2002-12-19 2008-06-10 Mathon Systems, Inc. System and method for managing content with event driven actions to facilitate workflow and other features
US20040199485A1 (en) * 2003-04-01 2004-10-07 International Business Machines Corporation Index for directory database
US7069402B2 (en) * 2003-06-02 2006-06-27 International Business Machines Corporation Host-independent incremental backup method, apparatus, and system
US7328366B2 (en) * 2003-06-06 2008-02-05 Cascade Basic Research Corp. Method and system for reciprocal data backup
US7092976B2 (en) * 2003-06-24 2006-08-15 International Business Machines Corporation Parallel high speed backup for a storage area network (SAN) file system
US7234077B2 (en) * 2003-06-24 2007-06-19 International Business Machines Corporation Rapid restoration of file system usage in very large file systems
JP4559046B2 (ja) * 2003-08-04 2010-10-06 株式会社日立製作所 仮想テープライブラリ装置
KR100762629B1 (ko) * 2003-08-26 2007-10-01 삼성전자주식회사 휴대단말기의 백업서비스 처리방법
US7085962B1 (en) * 2003-09-08 2006-08-01 Veritas Operating Corporation Method and system for completing a backup job that was interrupted during a backup process

Also Published As

Publication number Publication date
EP1869594A2 (en) 2007-12-26
US7657579B2 (en) 2010-02-02
CN102982067A (zh) 2013-03-20
WO2007027208A2 (en) 2007-03-08
US8260749B2 (en) 2012-09-04
CN101208665A (zh) 2008-06-25
US20060235847A1 (en) 2006-10-19
EP1869594A4 (en) 2009-10-21
WO2007027208A3 (en) 2007-11-22
CN102982067B (zh) 2016-02-24
US20100094807A1 (en) 2010-04-15
CN101208665B (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
JP2008537229A (ja) 再現性のある方法でのデータトラバース
US20080065663A1 (en) Reestablishing process context
US11272002B1 (en) Systems and methods for replicating data
US8924355B1 (en) Checkpoint restart
US7818302B2 (en) System and method for performing file system checks on an active file system
JP4160933B2 (ja) 超大規模ファイル・システムでのファイル・システム使用のすばやい復元
US7165188B1 (en) System and method for managing long-running process carried out upon a plurality of disks
US8135674B2 (en) Providing a simulated dynamic image of a file system
US7107419B1 (en) Systems and methods for performing record append operations
US7222119B1 (en) Namespace locking scheme
US6728735B1 (en) Restartable dump that produces a consistent filesystem on tapes
US7913044B1 (en) Efficient incremental backups using a change database
US9286320B2 (en) System and method for maintaining consistency among metadata elements of filesystem's logical objects
US7730090B2 (en) Architecture for performing file system checking on an active file system
US20080065637A1 (en) Locating last processed data
US10769025B2 (en) Indexing a relationship structure of a filesystem
US11847028B2 (en) Efficient export of snapshot changes in a storage system
US20080172423A1 (en) Hsm control program, hsm control apparatus, and hsm control method
US8554809B1 (en) Calculating quota usage without impacting file system services
CN114168286A (zh) 一种基于Windows的应用软件的迁移方法
US20210240574A1 (en) Method and system for resuming interrupted database backup operations using checkpoints
US20210240520A1 (en) Method and system for resuming interrupted database backup operations
US20060085491A1 (en) System and method for recovering from interruptions during data loading
US20230306014A1 (en) Transactionally consistent database exports
US20190079948A1 (en) Directory tree clones