JP4117265B2 - ファイルシステムのバージョンを管理する方法およびシステム - Google Patents

ファイルシステムのバージョンを管理する方法およびシステム Download PDF

Info

Publication number
JP4117265B2
JP4117265B2 JP2004129396A JP2004129396A JP4117265B2 JP 4117265 B2 JP4117265 B2 JP 4117265B2 JP 2004129396 A JP2004129396 A JP 2004129396A JP 2004129396 A JP2004129396 A JP 2004129396A JP 4117265 B2 JP4117265 B2 JP 4117265B2
Authority
JP
Japan
Prior art keywords
file system
version
logical
epoch
epoch value
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
Application number
JP2004129396A
Other languages
English (en)
Other versions
JP2004326800A (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004326800A publication Critical patent/JP2004326800A/ja
Application granted granted Critical
Publication of JP4117265B2 publication Critical patent/JP4117265B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/959Network
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明はファイルシステムのバージョン(版)を管理する方法とシステムに関する。特に、本発明はファイルシステムの論理バージョンの作成と削除に関する。
ファイルシステムの論理バージョンを管理するシステムと方法は当技術分野で知られている。図1は単一のオペレーティング・システム・インスタンスを実行しているノード12のブロック図である。ノード12はファイルシステム管理論理16を備えたノード・ソフトウェア14を備えている。また、ノード12はファイル・データ空間17とシステム・メタデータ空間19を備えたローカル記憶媒体18と通信している(メタデータとはデータに関するデータのことである)。ファイルシステム管理論理16はファイルシステムの論理バージョンを管理するように機能している。従来技術のシステムはファイルシステムの論理バージョンにエポック(epoch)番号を割り当てるが、ファイルシステム内のオブジェクトを識別するシステムを備えてない。従来技術に係る、ファイルシステムの論理バージョンにおいてオブジェクトを削除したか否かを判断するには、当該オブジェクトの死亡エポック番号が何であったのかを判断するのに余分のレコードを再調査しなければならない。したがって、従来技術のシステムはオブジェクトが有効である、ファイルシステムの論理バージョンの範囲を決める、ファイルシステムの論理バージョン内のオブジェクトを識別する論理を備えていない。
同様に、図2はSAN(storage area network)30と通信しているクライアント/サーバ・ノード22のブロック図である。クライアント/サーバ・ノード22はファイルシステム管理論理26を備えたソフトウェア24を備えている。また、クライアント/サーバ・ノード22はファイル・データ空間32とファイルシステム・メタデータ空間34を備えたSAN30と通信している。SAN30中の記憶媒体上に存在するファイル・オブジェクトの内容を開く際、クライアントはクライアント/サーバ・ノード22にコンタクトしてメタデータを取得する。メタデータはファイルに関する情報(たとえばその属性や記憶装置上の位置など)をクライアントに提供する。クライアント/サーバ・ノード22はSAN30のメタデータ空間34内の、要求されたファイルのメタデータ情報をルックアップする(ルックアップとは表にまとめたデータから必要なものを捜し出すことである)。クライアント/サーバ・ノード22は要求元のクライアントにファイルを構成するすべてのデータ・ブロックの場所を含むファイル・メタデータを通知する。クライアントはデータ・ブロックの場所を知ったら、SAN30と通信している共用記憶装置から直接にファイル用のデータにアクセスすることができる。また、クライアント/サーバ・ノード22はファイルシステム管理論理26を備えたソフトウェア24を備えている。ファイルシステム管理論理26はファイルシステムの論理バージョンをほぼ即時に作成してそれを管理する。しかし、ファイルシステム管理論理26はファイルシステムの論理バージョンにエポック番号を割り当てるが、ファイルシステム内のオブジェクト用の2部分識別システムを備えていない。したがって、従来技術のシステムはオブジェクトが有効である、ファイルシステムの論理バージョンの範囲を決める、ファイルシステムの論理バージョン内のオブジェクトを識別するファイルシステム論理を備えていない。
ファイルシステムの論理バージョンを作成する他の例として、ディスク・ミラーリングが挙げられる。この方法の場合、ファイルシステム・データの2つの物理的論理バージョンを2つのディスク上に保持する。ミラーを分離することにより、ファイルシステムのほぼ即時バージョンを作成する。したがって、ファイルシステム・データの論理バージョンの作成には必要な量の記憶スペースを2倍費やすという代償を払うことになる。また、この方法では、ファイルシステムの後続する論理バージョンを採用する前に別のミラー・ペアを作成する必要がある。ファイルシステムの論理バージョンを作成する別の例として、ファイルシステム・オブジェクトのあらゆる変更に対してコピー・オン・ライト(copy-on-write)手順を実行するログ基準のファイルシステムが挙げられる。この場合、ファイルシステムの状態を記録しファイルシステムの非参照の論理バージョンを削除するために、システムの状態を周期的に再調査する。また、バックグラウンドのプロセスがファイルシステムの内容を統合し続ける。したがって、これら両方法とも効率が制限されるとともに必要な記憶容量が増大する。
ファイルシステムの論理バージョンをサポートする既知の従来技術に係るシステムには、必要な記憶スペースが増大すること、およびバックグラウンド・プロセスが必要になることに付随する制限が存在する。したがって、必要な記憶スペースの増大、およびバックグラウンド・プロセスの必要性を無くしうる、ファイルシステムの論理バージョンをほぼ即時に作成して記憶する方法とシステムが求められている。
本発明はファイルシステムの論理バージョンを管理する方法とシステムから成る。
本発明の第1の側面では、ファイルシステムの論理バージョンを管理する方法を提供する。ファイルシステムの論理バージョンにエポック値を割り当てる。ファイルシステム・オブジェクトに一対のエポック値を割り当てる。ファイルシステムのすべてのエポック値から成るバージョン・テーブルを保持する。列挙された各エポック値は前記ファイルシステムの有効な論理バージョンに対応している。前記ファイルシステムの前記論理バージョンの現在のエポック値を永続記憶装置の前記バージョン・テーブルに格納することにより単一のポイント・イン・タイムで前記ファイルシステムのほぼ即時の論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントする。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第2の側面では、データ記憶システムを提供する。このデータ記憶システムはエポック値によって識別されたファイルシステム・バージョンと、エポック値から成るペアによって識別されたファイルシステム・オブジェクトとを備えている。バージョン・テーブルを用いて、ファイルシステムのすべての有効なエポック値から成るリストを保持する。列挙された各エポック値は前記ファイルシステムの有効な論理バージョンに対応している。前記ファイルシステムのほぼ即時の論理バージョンを単一のポイント・イン・タイムで作成するバージョン管理手段を備えている。前記ファイルシステムの現在の論理バージョンに付随する現在のエポック値が永続記憶装置中の前記バージョン・テーブル中に保持されるように適合している。また、バージョン管理手段はファイルシステムの現在のエポック値を単調にインクリメントする。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第3の側面では、プログラムを提供する。(英文原明細書に「コンピュータ読み取り可能な信号担持媒体の形態をした製品」とあるのを本項目および特許請求の範囲では「プログラム」に変更したが、内容すなわちステップ群に変更はない。)ファイルシステムの論理バージョンにエポック値を割り当て、ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップを備えている。また、ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持するステップを備えている。列挙された各エポック値が前記ファイルシステムの有効な論理バージョンに対応している。最後に、前記バージョン・テーブル中の前記ファイルシステムの前記論理バージョンの現在のエポック値を永続記憶装置に格納することにより単一のポイント・イン・タイムで前記ファイルシステムのほぼ即時の論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップを備えている。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第4の側面では、ファイルシステムの論理バージョンを管理する方法を提供する。単一のオペレーティング・システム・インスタンスを実行しているノードのサーバ・ソフトウェア内にファイルシステム論理を組み込む。前記ファイルシステム論理は前記ノードのローカル記憶媒体のメタデータ空間と通信するように適合している。前記ファイルシステムの論理バージョンにエポック値を割り当てる。ファイルシステム・オブジェクトに一対のエポック値を割り当てる。ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持する。列挙された各エポック値がファイルシステムの有効な論理バージョンに対応している。前記ファイルシステムの前記論理バージョンの現在のエポック値を前記ローカル記憶媒体の永続記憶装置中の前記バージョン・テーブルに格納することにより、前記ファイルシステムのほぼ即時の論理バージョンを単一のポイント・イン・タイムで作成し、ファイルシステムの現在のエポック値を単調にインクリメントする。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第5の側面では、データ記憶システムを提供する。単一のオペレーティング・システム・インスタンスを実行するように適合したノードのサーバ・ソフトウェア内にファイルシステム論理が組み込まれている。前記ファイルシステム論理は前記ノードのローカル記憶装置のメタデータと通信するように適合している。このデータ記憶システムはエポック値によって識別されたファイルシステム・バージョンと、一対のエポック値によって識別されたファイルシステム・オブジェクトとを備えている。バージョン・テーブルを用いて、ファイルシステムのすべての有効なエポック値から成るリストを保持する。列挙された各エポック値が前記ファイルシステムの有効な論理バージョンに対応している。前記ファイルシステムのほぼ即時の論理バージョンを単一のポイント・イン・タイムで作成するように適合したバージョン管理手段を備えている。前記ファイルシステムの現在の論理バージョンに付随する現在のエポック値が、永続記憶装置中の前記バージョン・テーブル中に保持されるように適合している。また、前記バージョン管理手段はファイルシステムの現在のエポック値を単調にインクリメントしている。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第6の側面では、プログラムを提供する。単一のオペレーティング・システム・インスタンスを実行しているノードのサーバ・ソフトウェア内でファイルシステム論理を実行するステップを備えている。前記ファイルシステム論理は前記ノードのローカル記憶媒体のメタデータと通信するように適合している。ファイルシステムの論理バージョンにエポック値を割り当て、ファイルシステム・オブジェクトにオブジェクト・エポック値ペアを割り当てるステップを備えている。また、ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持するステップを備えている。列挙された各エポック値がファイルシステムの有効な論理バージョンに対応している。最後に、前記ファイルシステムの前記論理バージョンの現在のエポック値を前記ローカル記憶媒体の永続記憶装置の前記バージョン・テーブルに格納することにより前記ファイルシステムのほぼ即時の論理バージョンを単一のポイント・イン・タイムで作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップを備えている。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第7の側面では、ファイルシステムの論理バージョンを管理する方法を提供する。共用記憶システムと通信しているサーバ・ノードのサーバ・ソフトウェア内にファイルシステム論理を組み込む。前記ファイルシステムの論理バージョンにエポック値を割り当て、ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップを備えている。ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持する。列挙した各エポック値がファイルシステムの有効な論理バージョンに対応している。前記ファイルシステムの前記論理バージョンの現在のエポック値を前記共用記憶システムの永続記憶装置の前記バージョン・テーブルに格納することにより前記ファイルシステムのほぼ即時の論理バージョンを単一のポイント・イン・タイムで作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップを備えている。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第8の側面では、データ記憶システムを提供する。ファイルシステム論理が、共用記憶システムと通信しているサーバのサーバ・ソフトウェア内に組み込まれている。前記ファイルシステム論理は前記共用記憶システムのメタデータと通信するように適合している。このデータ記憶システムはエポック値によって識別されたファイルシステム・バージョンと、一対のエポック値によって識別されたファイルシステム・オブジェクトとを備えている。バージョン・テーブルを用いて、ファイルシステムのすべての有効なエポック値から成るリストを保持する。列挙された各エポック値が前記ファイルシステムの有効な論理バージョンに対応している。前記ファイルシステムのほぼ即時の論理バージョンを単一のポイント・イン・タイムで作成するように適合したバージョン管理手段を備えている。前記ファイルシステムの現在の論理バージョンに付随する現在のエポック値は前記共用記憶システムの永続記憶装置中の前記論理バージョン中に保持されるように適合している。また、バージョン管理手段はファイルシステムの現在のエポック値を単調にインクリメントする。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の第9の側面では、プログラムを提供する。共用記憶システムと通信しているサーバ・ノードのサーバ・ソフトウェア内でファイルシステム論理を実行するステップを備えている。前記ファイルシステム論理は前記共用記憶システムのメタデータと通信するように適合している。ファイルシステムの論理バージョンにエポック値を割り当て、ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップを備えている。また、ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持するステップを備えている。列挙された各エポック値がファイルシステムの有効な論理バージョンに対応している。最後に、前記ファイルシステムの前記論理バージョンの現在のエポック値を前記共用記憶システムの永続記憶装置中の前記バージョン・テーブルに格納することにより前記ファイルシステムのほぼ即時の論理バージョンを単一のポイント・イン・タイムで作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップを備えている。前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めているのが望ましい。
本発明の全側面において、エポック値には任意のインクリメント可能な値を用いることができる。たとえば数値を挙げることができるが、それに限定されない。
〔概観〕
サーバは特定のディレクトリをルートとするサブツリーの形態をしたファイルシステムを備えている。ツリーのルートはルート・ディレクトリをルートとするファイルシステム・ツリーを記述している。ツリーのルートによって、すべてのクライアントはネーム・ツリーを無矛盾に閲覧することができる。ファイルシステムの論理バージョンはディレクトリ・レベルに保持されている。ファイルシステムの各論理バージョンには整数の形態をした一意の番号(以下、エポック番号)が割り当てられている。ファイルシステムを初期作成するとき、それに「1」なるエポック番号を付与する。ファイルシステムの論理バージョンを作成するごとに(たとえばファイルシステムの論理バージョンを作成するコマンドを発行するとき)、エポック番号をインクリメント(すなわち+1)する。ファイルシステムのすべてのオブジェクトはファイルシステムのエポック番号に加えオブジェクト識別子と2つのエポック番号を有する。第1のオブジェクト・エポック番号は誕生エポック番号と呼ばれており、第2のオブジェクト・エポック番号は死亡エポック番号と呼ばれている。誕生エポック番号と死亡エポック番号はそれらが割り当てられたオブジェクトの寿命を規定している。ファイルシステム中のオブジェクトにはそのオブジェクト識別子と誕生エポック番号によってアクセスする。永続的に格納されたファイルシステムの論理バージョンを識別するために、ファイルシステムの論理バージョンを編成するバージョン・テーブルを備えたデータ構造が保持されている。したがって、ファイルシステムに割り当てられた1つのエポック番号とファイルシステムのオブジェクトに割り当てられた2つのエポック番号とが存在する。
〔技術的背景〕
図3は好適な実施形態に従い単一のオペレーティング・システム・インスタンスのファイルシステム管理論理を実行しているノード42のブロック図である。ノード42はクライアント・ドライバ44とサーバ・ソフトウェア46を備えている。ノード42のサーバ・ソフトウェア46はノード42のソフトウェア46内に組み込まれたファイルシステム管理論理48を備えている。ファイルシステム管理論理48の機能はファイルシステムの論理バージョンに識別番号を割り当てること、およびファイルシステムのオブジェクトに2つの識別番号を割り当てることである。ファイルシステムのオブジェクトの識別番号によって当該オブジェクトが有効である、ファイルシステムの論理バージョンの範囲が決まる。
同様に、図4は本発明の好適な実施形態に従い共用永続記憶装置と組み込みファイルシステム管理論理とを備えた分散システムのブロック図である。この分散システムは複数のサーバ・ノード70、80、管理者ノード90、および複数のクライアント・ノード92、94を備えたSAN(storage area network)62を備えている。SAN62はファイル・データ空間64とメタデータ空間66を備えている。メタデータ空間66はサーバ・ノード70、80用に予約されている。各クライアント・ノード92、94はSAN62のファイル・データ空間64に格納されている1つのオブジェクトまたは複数のオブジェクトにはアクセスできるが、メタデータ空間66にはアクセスできない。SAN62中の記憶媒体に存在するファイル・オブジェクトの内容を開く際に、クライアントはサーバ・ノードにコンタクトしてメタデータとロックを取得する。メタデータによって、クライアントはファイルに関する情報、たとえばその属性や記憶装置上の場所を知る。ロックによって、クライアントはファイルを開き、データを読み書きするのに必要な権限を取得する。サーバ・ノードは要求されたファイル用にSAN62のメタデータ空間66内のメタデータ情報をルックアップする。サーバ・ノード70または80は許可済みロック情報とファイルを構成しているデータ・ブロックの場所を含むファイル・メタデータとを要求元のクライアント・ノードに通知する。クライアント・ノードは分散ロックを保持し、データ・ブロックの場所を知ったら、SAN62に備えられた共用記憶装置からファイル用のデータに直接にアクセスすることが可能になる。また、各サーバ・ノード70、80はそれぞれ組み込みファイルシステム管理論理74、84を備えたサーバ・ソフトウェア72、82を備えている。ファイルシステム管理論理によって、サーバは自身が管理しているファイルシステムの論理バージョンを作成することが可能になる。さらに、ファイルシステム管理論理はファイルシステムの論理バージョンに1つの識別番号を割り当て、ファイルシステムのオブジェクトに2つの識別番号を割り当てる。オブジェクト識別番号によって、オブジェクトが有効である、ファイルシステムの論理バージョンの範囲が決まる。
図5はファイルシステムの論理バージョンを作成するほぼ即時のプロセスを示すフローチャート100を示す図である。まず、ファイルシステムの新たな論理バージョンにイメージの名前(ImageName)を割り当てる(ステップ102)。(イメージとはあるがままの全体像のことである。)次いで、ファイルシステムの論理バージョンにファイルシステムの旧エポック番号を割り当て、主イメージのエポック番号を1だけインクリメントする。次いで、ファイルシステムの新たなエポック番号識別子用にバージョン・テーブルにエントリを作成する(ステップ106)。データ構造はあるファイルシステムにとって有効なすべてのエポック番号識別子から成るリストを保持している。したがって、新たなエポック番号識別子をデータ構造に入れたのち、主イメージ(PrimaryImage)のデータ割り当てを入力する(ステップ108)。次いで、主イメージのエポック番号識別子とファイルシステムの論理バージョンの主エポック番号識別子とを永続記憶装置に書き込む(ステップ110)。ステップ110によって、ファイルシステムの論理バージョンの作成は成功裏に完了する(ステップ112)。したがって、ファイルシステムの論理バージョンを作成するほぼ即時のプロセスには主イメージのエポック番号識別子とファイルシステムのほぼ即時のバージョンとを永続記憶装置に保持するステップが含まれている。
ファイルシステムの論理バージョンを作成するのに加え、ほぼ即時のプロセスによってバージョン・テーブルからファイルシステムの論理バージョンを削除することも行う。図6はメモリおよび永続記憶装置からファイルシステムの論理バージョンをほぼ即時に削除するプロセスを示すフローチャート120を示す図である。まず、オペレータはバージョン・テーブルから削除するように選定した、ファイルシステムの論理バージョンに付随するエポック番号識別子を入力する。次いで、主エポック番号識別子用のエントリをバージョン・テーブルから削除する(ステップ122)。次いで、ファイルシステムの特定の論理バージョン用のエントリを永続記憶装置から削除する(ステップ124)。次いで、バックグラウンド・プロセスを始動してファイルシステムの当該論理バージョンの一部であった非参照のオブジェクトをすべてバージョン・テーブルおよび永続記憶装置から削除する(ステップ126)。ステップ126によって、ファイルシステムの特定の論理バージョンの削除が成功裏に完了する(ステップ128)。したがって、ファイルシステムの論理バージョンをメモリおよび永続記憶装置から削除するプロセスにはファイルシステムの当該論理バージョンに付随し対応するエポック番号識別子をバージョン・テーブルから削除するステップが含まれている。
メモリおよび永続記憶装置からファイルシステムの論理バージョンを削除するのに加え、オペレータはファイルシステムの特定のバージョンに復帰することを選択することができる。図7はファイルシステムの特定の論理バージョンへほぼ即時に復帰するプロセスを示すフローチャート140を示す図である。まず、オペレータが復帰を望む特定の論理バージョンのエポック番号識別子を探索パラメータとして入力する。次いで、ファイルシステムの主エポック番号識別子が探索パラメータと同一であるか否かを判断ずるテストを実行する(ステップ142)。ステップ142におけるテストの結果がNoの場合、エポック番号識別子のエントリをバージョン・テーブル(すなわちメモリ)から削除する(ステップ144)。その後、エポック番号識別子用のエントリを永続記憶装置から削除する(ステップ146)。次いで、バージョン・テーブル中のエポック番号識別子をメモリおよび永続記憶装置から先行して削除したものより1だけデクリメントする。次いで、アルゴリズムはステップ142のテストに戻る。エポック番号識別子のエントリが入力パラメータと同一になるまで、以上の過程を繰り返す。ステップ142におけるテストの結果がYesの場合、主イメージのエポック番号識別子に付随する、ファイルシステムの論理バージョンが新たな主イメージになる(ステップ150)。ステップ150のプロセスにはバージョン・テーブル中のエントリを新たな主イメージ用にマークするステップが含まれている。新たな主イメージは永続記憶装置にも格納する(ステップ152)。次いで、バックグラウンド・プロセスを始動して非参照のオブジェクトをバージョン・テーブルおよび永続記憶装置から削除する(ステップ154)。ステップ154によって、ファイルシステムの特定の論理バージョンへの復帰は成功裏に完了する(ステップ156)。したがって、ファイルシステムのある論理バージョンへほぼ即時に復帰するプロセスにはバージョン・テーブルおよび永続記憶装置中に存在する、ファイルシステム中の介在する論理バージョンをすべて削除するステップと、主エポック番号識別子を復帰先のエポック番号識別子に設定するステップとが含まれている。
各ファイルシステムはファイル、ディレクトリ、シンボリック・リンクなどの形をしたオブジェクトを備えている。すべてのファイルシステム・オブジェクトはBツリー・レコードに格納されている。各レコードは同一である少なくとも1つのオブジェクト・インスタンスを記述している。ファイルシステム・オブジェクトはそれら自身のキーに関してクラスタをなしている場合には、他の永続的なデータ構造に格納することができる。ファイルシステム・オブジェクトは効率的なルックアップ・メソッドと走査アクセス・メソッドをサポートしている。ファイルシステム・オブジェクトはファイルシステムの論理バージョンを作成するプロセスの一部として変更する必要がない。同様に、ファイルシステムの論理バージョンを削除する、あるいはそれに復帰する場合にも、ファイルシステム・オブジェクトは変更する必要がない。非参照のオブジェクトはファイルシステムの論理バージョンの削除、あるいはそれへの復帰の結果として削除するが、それは削除プロセスまたは復帰プロセスがトリガする別個のバックグラウンド・プロセスによって行う。ファイルシステムの論理バージョンを作成する結果としてファイルシステム・オブジェクトを変更しない場合、ファイルシステムの論理バージョンにオブジェクトを格納するための余分なスペースは必要でない。したがって、Bツリー中の単一のレコードは余分な記憶容量を必要とすることなく、1つのオブジェクトの無限個の同一のインスタンスを代表することができる。
図8はファイルシステム・オブジェクトを作成するプロセスを示すフローチャート170を示す図である。ファイルシステム中の各オブジェクトは2つのエポック番号(誕生エポック番号と死亡エポック番号)によって識別される。ファイルシステム・オブジェクトを作成する第1のステップはオブジェクトに誕生エポック番号を割り当てることである。割り当てる誕生エポック番号はファイルシステムの主エポック番号識別子である(ステップ172)。割り当てる死亡エポック番号は無限大である(ステップ174)。次いで、ファイルシステム・オブジェクトはオブジェクト識別子で初期化する(ステップ176)。ファイルシステム・オブジェクトへの誕生エポック番号と死亡エポック番号の割り当ておよびオブジェクト識別子の初期化に続いて、ファイルシステム・オブジェクトをBツリー中にレコードとして挿入する(ステップ178)。したがって、ファイルシステム・オブジェクトをレコードとしてBツリー中に作成するプロセスは各ファイルシステム・オブジェクトに識別プロトコルを割り当てるステップを必要とする。
各オブジェクトは2部分のキーを備えたBツリー・レコードに格納されている。キーの第1の部分はステップ176で初期化したオブジェクト識別子であり、キーの第2の部分はステップ172で作成した誕生エポック番号である。オブジェクト識別子は昇順に格納されており、誕生エポック番号は降順に格納されている。図9はBツリーに格納されているオブジェクトをルックアップするプロセスを示すフローチャート190を示す図である。まず、オペレータは主探索要素として探索すべきオブジェクト識別子とエポック番号を入力する。これは探索するオブジェクトを変更する意図があるか否かの表示とともに行う。探索パラメータの入力に続いて、探索するエポック番号が「0」値を有するか否かを判断するテスト192を実行する。「0」の探索エポック識別子が要求されている場合、探索エポック番号値をファイルシステムのエポック番号で置換する(ステップ194)。ステップ194における主エポック番号の置換、または探索エポック識別子が「0」でないという判断に続いて、Bツリーの走査を実行する(ステップ196)。この走査の開始キーはオブジェクト識別子から成る第1のパラメータと探索エポック番号から成る第2のパラメータとを備えている。この走査の停止キーはオブジェクト識別子から成る第1のパラメータと「1」から成る第2のパラメータとを備えている。Bツリーは前方に走査したのち、オブジェクト識別子を求めて第1のレコードに戻ることになる。返されるレコードは探索エポック識別子以下のオブジェクトの誕生エポック番号から成るプロパティを備えている。次いで、走査が完了したか否かを判断するテストを実行する(ステップ198)。ステップ198におけるテストの結果がNoの場合、引き続いて返されたレコードの死亡エポック番号が探索エポック識別子未満であるか否かを判断するテストを実行する(ステップ200)。ステップ198のテストまたはステップ200のテストの結果がYesであるということは、ステップ196で供給した走査範囲内にレコードが存在しなかったということを表わしている(ステップ202)。しかし、ステップ200におけるテストの結果がNoであるということは、返されたオブジェクトは有効であり、返されたオブジェクトはステップ204で復帰プロセスを受けることになるということを表わしている。したがって、Bツリー中のレコードをルックアップするプロセスの第1の部分は入力パラメータ内で識別されたオブジェクトに復帰することである。
ステップ204における特定したオブジェクトへの復帰に続いて、呼び出し元が返されたオブジェクトを変更する意図を示す標識が出されているか否かを判断するテストを実行する(ステップ206)。ステップ206のテストの結果がNoであるということはオペレータは特定したオブジェクトを突き止めることを意図していたが、それに対する変更を必要としていないということを表わしている。オブジェクトに対する変更が必要でない場合、オブジェクトの突き止めと復帰は成功裏に完了する(ステップ208)。しかし、ステップ206のテストの結果がYesの場合、返されたレコードが一意のオブジェクトを記述しているか否かを判断する参照カウントを計算することになる。参照カウントの計算を行う際、オブジェクトの誕生エポック番号と死亡エポック番号は分かっている。誕生エポック番号から死亡エポック番号にわたる、バージョン・テーブルのすべてのエントリのインメモリ走査を実行すると、当該範囲のエントリの個数のカウント(参照カウントと呼ばれる)が得られる。参照カウントが「1」より大きい場合、レコードは一意のオブジェクトを記述していないから、当該レコードを変更しうるようにするにはコピー・オン・ライト手順が必要である(ステップ212)。したがって、一意のオブジェクトを記述しているレコードしか変更することはできないから、ステップ204から返されたオブジェクトを変更するプロセスには返されたレコードが一意のオブジェクトを記述しているか否かを判断する、参照カウントの計算が必要である。
図8および図9について上述したように、ファイルシステムの各オブジェクトはBツリー中にレコードとして格納されている。ファイルシステムの特定の論理バージョンに復帰するプロセス、またはファイルシステムの特定の論理バージョンを削除するプロセスの間に、非参照のオブジェクトをBツリーから削除するバックグラウンド・プロセスを始動する。たとえば、図7において主イメージに復帰すると、オブジェクト・レコードを収容するBツリーは存在しないオブジェクト・インスタンス用のレコードを含むことになる。これらのレコードはルックアップ手順の間に読み取られることはないから,Bツリーはこれらのレコードに影響されない。図11は図7のステップ154および図6のステップ126に示した、ファイルシステムの論理バージョンをほぼ即時に削除する、あるいはそれにほぼ即時に復帰するプロセスの間にファイルシステム・オブジェクトの非参照の論理バージョンを永続記憶装置から削除するプロセスを示すフローチャート260を示す図である。プロセスは永続記憶装置に存在する、ファイルシステムのすべての論理バージョンのすべてのレコードを走査することにより開始する(ステップ262)。次いで、走査がオブジェクトを返したか否かを判断するテストを実行する(ステップ264)。オブジェクトが1つも返されていなかったら、走査は成功裏に完了する(ステップ266)。しかし、走査からオブジェクトが返されていたら、当該オブジェクトについて参照カウントを計算する(ステップ268)。参照カウントが「0」ということは当該オブジェクトを他のオブジェクトが参照していないということを表わしているから、そのレコードを削除する(ステップ274)。次いで、プロセスはステップ262に戻り、走査プロセスを継続する。しかし、参照カウントがステップ268で特定したオブジェクトを参照している少なくとも1つのオブジェクトを返したら、当該参照オブジェクトに復帰する(ステップ270)。そして、当該参照オブジェクトのレコードを誕生エポック番号で置換する(ステップ272)。次いで、プロセスはステップ262に戻り、走査プロセスを継続する。図11に示す、ファイルシステムの非参照の論理バージョンの削除が復帰手順に応答して開始された場合には、図11に示すプロセス全体が完了するまでファイルシステムの論理バージョンは新たに作成しない。この要件によって、Bツリーの誤ったレコードが主イメージの一部に見えるのを防止することができる。対照的に、図11に示す、ファイルシステムの非参照の論理バージョンの削除がファイルシステムの論理バージョンのほぼ即時の削除プロセスの結果であった場合には、ファイルシステムの論理バージョンを新たに作成してもよい。したがって、ファイルシステムの非参照オブジェクトを削除するプロセスはファイルシステムの特定の論理バージョンへの復帰に従い、現在のファイルシステムのエポック番号より大きな誕生エポック番号を有する、Bツリー中のすべてのレコードを削除する。
図11に示した非参照のファイルシステム・オブジェクトのバージョンを削除するのに加え、参照したファイルシステム・オブジェクトを変更することができる。しかしながら、変更することができるのは一意であるファイルシステム・オブジェクトのみである。ファイルシステムの複数のバージョンで有効である(すなわち一意でない)ファイルシステム・オブジェクトは変更する前にコピー・オン・ライト手順を経る必要がある。図10は図9のステップ212で特定した、一意のオブジェクトを記述していないレコードに対してコピー・オン・ライト手順を実行するプロセスを示すフローチャート220を示す図である。この手順では特定したオブジェクトに対して2個または3個のレコードを作成して非主イメージにデータを保存する。保存した非主イメージを変更する意図がある場合には、3個のレコードを作成する。一般に、非主イメージはファイルシステムの論理バージョンの一貫性を維持しうるようにその内容を保存する必要があるから、変更することができない。しかし、製造システムでは時々、保守する必要があり、そのような保守を容易にするために非主イメージに対するコピー・オン・ライトの実行をサポートしている。これを使用しうる例としてファイルシステムの検査と修理、あるいは故障した永続記憶装置に存在するデータ・ブロックを有するファイル・オブジェクトの更新が挙げられる。コピー・オン・ライト手順における第1のステップは特定したオブジェクトのローカル変数である新誕生エポック番号に元のオブジェクトの誕生エポック番号を割り当てること、および特定したオブジェクトのローカル変数である新死亡エポック番号に元のオブジェクトの死亡エポック番号を割り当てることである(ステップ222)。次いで、誕生エポック番号から成る第1のパラメータと1より小さい探索エポック番号から成る第2のパラメータとを備えた参照カウントを計算する(ステップ224、先行レコードと呼ばれる)。次いで、先行レコードをインメモリで作成したのち永続記憶装置に書き込むことになる(ステップ226)。先行レコードは元の誕生エポック番号に等しい誕生エポック番号と探索エポック番号マイナス1に等しい死亡エポック番号とを備えることになる。先行レコードの誕生エポック番号は変化させなかったから、Bツリーは先行レコードのキーをすでに備えて存在している。したがって、レコード置換操作を使用する。これにより、先に存在したキーに付随するデータが変更される。次いで、新誕生エポック番号に探索エポック番号を割り当てる(ステップ228)。次いで、ステップ228における割り当て、またはステップ224における参照カウントが0より大きくない値から成る結果に続いて、1だけインクリメントした探索エポック番号から成る第1のパラメータと死亡エポック番号から成る第2のパラメータとを備えた参照カウントを判断する(ステップ230)。ステップ230における参照カウントの値が0より大きい場合、第3のレコード(後行レコード)を作成することになる。後行レコードはインメモリで作成したのち永続記憶装置に書き込むことになる(ステップ232)。後行レコードは探索エポック番号プラス1に等しい誕生エポック番号と元の死亡エポック番号に等しい死亡エポック番号とを有することになる。後行レコードの誕生エポック番号は新たな値を有するから、後行レコードのキーを有するレコードはBツリー中に存在しない。したがって、レコード挿入操作を使用して新たなBツリー・レコードとキーを挿入する。次いで、新たな死亡エポック番号に探索エポック番号の整数値を割り当てる(ステップ234)。フローチャートの残りの部分(ステップ236、238、242)は中間レコードの作成に関する。中間レコードは呼び出し元が変更を意図しているレコードであるから、最後に作成する。中間レコードはステップ222またはステップ228で割り当てた新たな誕生エポック番号に等しい誕生エポック番号を有することになる。中間レコードはステップ222またはステップ234で割り当てた新たな死亡エポック番号に等しい死亡エポック番号を有することになる。ステップ234における割り当て、またはステップ230において参照カウントの値が0より大きいことに続いて、元のレコードの誕生エポック番号がステップ222で割り当てた新たな誕生エポック番号に等しいか否かを判断するテストを実行する(ステップ236)。ステップ236におけるテストの結果がYesの場合、既存のレコードを新たな誕生エポック番号と新たな死亡エポック番号で置換することになる(ステップ238)。これに対して、ステップ236におけるテストの結果がNoの場合、新誕生エポック番号と新死亡エポック番号の双方のパラメータを備えたレコードをBツリーに挿入する形で中間レコードを作成することになる(ステップ240)。中間レコードを作成するプロセスによって、Bツリーに新たなレコードを挿入するか既存のレコードを置換するかどちらか一方が行われる。ステップ238またはステップ240で第2のレコードを作成する結果、誕生エポック番号に新誕生エポック番号を割り当て、死亡エポック番号に新死亡エポック番号を割り当てることになる(ステップ242)。したがって、コピー・オン・ライト・プロセスによって、変更用に特定したオブジェクト・レコードを2個または3個のコピーに分割することが可能になる。これにより、ファイルシステムの以前の論理バージョンで見られた、ファイルシステム・オブジェクトの元の状態を保存することが可能になる。
〔従来技術に勝る利点〕
ファイルシステムの論理バージョンの作成が完了すると、それはファイルシステムのルート・ディレクトリの一部のように見える。また、それを用いて、ファイルシステムをオンラインで維持しながらバックアップ・ユーティリティによって二次記憶バックアップを作成することができる。さらに、ファイルシステムの論理バージョンはファイルの修復用に、あるいはファイルシステムの履歴を保持するために参照することができる。ここに開示した、ファイルシステムの論理バージョンを作成するほぼ即時のプロセスはスペース効率が良好である。ファイルシステムの論理バージョンの作成が完了すると、ファイルシステム・オブジェクトの更新はコピー・オン・ライト手順によって行う。これにより、ファイルシステムの論理バージョンの元をなしたファイルシステム・オブジェクトの元の状態を保存することが可能になる。余分な記憶容量を必要とするのは、ファイルシステムの論理バージョンの採用に従って変化したファイルシステム・オブジェクトのみである。ファイルシステムの論理バージョンの作成に従ってファイルシステム・オブジェクトを変更しない場合、ファイルシステムの論理バージョンを格納するのに余分なスペースを必要としない。また、単一のレコードは余分な記憶容量を必要とすることなく、1つのオブジェクトの同一のインスタンスを無限個数代表することができる。さらに、ファイルシステムの主イメージまたはファイルシステムの論理バージョンを維持するのに余分なバックグラウンド・プロセスを必要としない。したがって、ファイルシステムの論理バージョンにおいて参照されるオブジェクトと比べて、主イメージのオブジェクトにアクセスするのに余分なコストは必要ない。したがって、ファイルシステムの論理バージョンおよび付随するオブジェクトを編成して保守しても、ファイルシステムの元の状態を保存しながらファイルシステムの論理バージョンを保持することができる。
〔別の実施形態〕
認識すべき点を挙げると、ここでは説明を目的に本発明の特定の実施形態を説明したが、本発明の本旨と範囲の内で様々な変更をなすことができる。特に、ファイルシステムの特定の論理バージョンへの復帰とともにファイルシステムの当該論理バージョンにおける参照したオブジェクトの死亡エポック番号を無限大にリセットすることができる。というのは、ファイルシステムの復帰した論理バージョンがファイルシステムの新たな主イメージになるからである。ファイルシステムの主イメージのエポック番号を備えたオブジェクトはすべて無限大の死亡エポック番号を有する。図12は参照したオブジェクトの死亡エポック番号をリセットするステップ群を示すフローチャート280を示す図である。まず、オブジェクトの誕生エポック番号がファイルシステムの論理バージョンのエポック番号以下であるか否かを判断するテストを実行する(ステップ282)。ステップ282におけるテストの結果がYesの場合、オブジェクトの死亡エポック番号がファイルシステムの論理バージョンのエポック番号以上であるか否かを判断するテストを実行する(ステップ284)。ステップ282またはステップ284におけるテストの結果がNoの場合、死亡エポック番号はリセットする必要がない(ステップ288)。しかし、ステップ282およびステップ284におけるテストの結果がYesの場合には、オブジェクトの死亡エポック番号を無限大にリセットする(ステップ286)。図12に概要を示したプロセスはアクセスするレコードについて、ファイルシステムの論理バージョンのエポック番号以下の誕生エポック番号とファイルシステムの論理バージョンのエポック番号以上の死亡エポック番号とを備えたレコードに対して行う。最後に、エポック値は必ずしも数値のみに限らず、任意のインクリメント可能な値(たとえばアルファベット文字や生(raw )バイトなど)を用いることができる。以上のとおりであるから、本発明の保護の範囲は特許請求の範囲およびその等価物によってのみ限定される。
ファイルシステム管理論理を備えた単一ノードの従来技術に係るブロック図である。 SANと通信するファイルシステム管理論理を備えたサーバ・ノードを備えたコンピュータ・システムの従来技術に係るブロック図である。 本発明の好適な実施形態による、ファイルシステム管理論理を備えた単一ノードを備えたコンピュータ・システムのブロック図である。 本発明の好適な実施形態による、ファイルシステム管理論理を備えた、SANと通信するサーバ・ノードを備えたコンピュータ・システムのブロック図である。 本発明の好適な実施形態による、ファイルシステムのほぼ即時バージョンを作成するプロセスを示すフローチャートを示す図である。 ファイルシステムの論理バージョンをほぼ即時に削除するプロセスを示すフローチャートを示す図である。 ファイルシステムの論理バージョンへほぼ即時に復帰するプロセスを示すフローチャートを示す図である。 ファイルシステム中にオブジェクトを挿入するプロセスを示すフローチャートを示す図である。 ファイルシステムの識別したオブジェクトをルックアップするプロセスを示すフローチャートを示す図である。 参照したファイルシステム・オブジェクトにコピー・オン・ライト手順を実行するプロセスを示すフローチャートを示す図である。 非参照のファイルシステム・オブジェクトを削除するプロセスを示すフローチャートを示す図である。 ファイルシステム・オブジェクトの死亡エポック番号をリセットするプロセスを示すフローチャートを示す図である。
符号の説明
12 ノード
14 ノード・ソフトウェア
16 オブジェクト識別手段を備えないファイルシステム管理論理
17 ファイル・データ空間
18 ローカル記憶装置
19 メタデータ空間
22 クライアント/サーバ・ノード
24 ノード・ソフトウェア
26 オブジェクト識別手段を備えないファイルシステム管理論理
30 SAN
32 ファイル・データ空間
34 メタデータ空間
42 ノード
44 クライアント・ドライバ
46 サーバ・ソフトウェア
48 オブジェクト識別手段を備えたファイルシステム管理論理
52 ファイル・データ空間
54 メタデータ空間
64 ユーザ・ファイル・データ空間
66 メタデータ空間
70 サーバ・ノード1
72 サーバ・ソフトウェア
74 オブジェクト識別手段を備えたファイルシステム管理論理
80 サーバ・ノード2
82 サーバ・ソフトウェア
84 オブジェクト識別手段を備えたファイルシステム管理論理
90 管理者ノード
92 クライアント・ノード
94 クライアント・ノード

Claims (59)

  1. ファイルシステムの論理バージョンを管理する方法であって、
    (a)前記ファイルシステムの論理バージョンにエポック値を割り当てるステップと、
    (b)ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップであって、前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めている、ステップと、
    (c)ファイルシステムのすべてのエポック値から成るバージョン・テーブルを保持するステップであって、列挙された各エポック値は前記ファイルシステムの有効な論理バージョンに対応している、ステップと、
    (d)前記ファイルシステムの前記論理バージョンの現在のエポック値を永続記憶装置の前記バージョン・テーブルに格納することにより前記ファイルシステムの論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップと
    を備えた
    方法。
  2. ファイルシステムの論理バージョンを作成するステップが、前記論理バージョンの余分なスペースを前記ファイルシステムにおいて参照し変化したファイルシステム・オブジェクトに限定するステップを含んでいる、
    請求項1に記載の方法。
  3. さらに、
    前記ファイルシステムの元の状態を保存しながら前記ファイルシステムの論理バージョンを保持するステップ
    を備えた、
    請求項1に記載の方法。
  4. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するステップ
    を備えた、
    請求項1に記載の方法。
  5. 前記ファイルシステムの前記論理バージョンの削除を実行するステップが、前記バージョンの対応するエポック値を前記永続記憶装置中の前記バージョン・テーブルから削除するステップを含む、
    請求項4に記載の方法。
  6. さらに、
    前記削除したバージョンに付随する非参照のオブジェクトを削除するステップ
    を備えた、
    請求項5に記載の方法。
  7. さらに、
    前記ファイルシステムの既存の論理バージョンへの復帰を実行するステップを備えた、
    請求項1に記載の方法。
  8. 前記ファイルシステムの既存の論理バージョンへの復帰を実行するステップが、永続記憶装置中の前記バージョン・テーブル中の介在するすべてのエントリを削除し、ファイルシステムの前記エポック値をファイルシステムの前記復帰した論理バージョンに対応するエポック値に設定するステップを含む、
    請求項7に記載の方法。
  9. さらに、
    複数の参照済みファイルシステム・オブジェクトの変更に応答してコピー・オン・ライト手順を実行することによりファイルシステムの元の状態を保存するステップを備えた、
    請求項1に記載の方法。
  10. 前記コピー・オン・ライト手順を実行するステップが、前記ファイルシステムの非主論理バージョンに属す複数の参照済みファイルシステム・オブジェクトの変更に応答して前記ファイルシステム・オブジェクトを3個のコピーに分割するステップを含む、
    請求項9に記載の方法。
  11. データ記憶システムであって、
    エポック値によって識別されたファイルシステム・バージョンと、
    2つのエポック値から成るペアによって識別され、オブジェクトのエポック値ペアが、オブジェクトが有効である前記ファイルシステムの論理バージョンの範囲を決めるように適合している、ファイルシステム・オブジェクトと、
    ファイルシステムのすべての有効なエポック値から成るリストを保持するように適合したバージョン・テーブルであって、列挙された各エポック値が前記ファイルシステムの有効な論理バージョンに対応している、バージョン・テーブルと、
    前記ファイルシステムの論理バージョンを作成するように適合したバージョン管理手段であって、前記ファイルシステムの現在の論理バージョンに付随する現在のエポック値が永続記憶装置中の前記バージョン・テーブル中に保持されるように適合しており、ファイルシステムの現在のエポック値が単調にインクリメントされている、バージョン管理手段と
    を備えた
    システム。
  12. 前記バージョン管理手段が、前記論理バージョン中の余分なスペースを前記ファイルシステム中の変化したオブジェクトに限定する、
    請求項11に記載のシステム。
  13. 前記バージョン管理手段が、前記ファイルシステムの元の状態を保存しながら前記ファイルシステムの論理バージョンを保持するように適合している、
    請求項11に記載のシステム。
  14. 前記バージョン管理手段が、前記ファイルシステムの前記論理バージョンの削除を実行するように適合している、
    請求項11に記載のシステム。
  15. 前記バージョン管理手段が、前記論理バージョンの対応するエポック値の前記永続記憶装置からの削除を実行するように適合している、
    請求項14に記載のシステム。
  16. 前記バージョン管理手段が、前記削除した論理バージョンに付随する非参照のオブジェクトを削除する、
    請求項15に記載のシステム。
  17. 前記バージョン管理手段が、前記ファイルシステムの既存の論理バージョンへの復帰を実行するように適合している、
    請求項11に記載のシステム。
  18. 前記バージョン管理手段が、永続記憶装置中の前記バージョン・テーブル中の介在するエントリを削除し、ファイルシステムの前記エポック値をファイルシステムの前記復帰した論理バージョンに付随するエポック値に設定するように適合している、
    請求項17に記載のシステム。
  19. さらに、
    複数の参照済みファイルシステム・オブジェクトの変更に応答してコピー・オン・ライト手順を実行するように適合したレコード管理手段
    を備えた、
    請求項11に記載のシステム。
  20. 前記レコード管理手段が、前記ファイルシステムの非主論理バージョンに属す複数の参照済みファイルシステム・オブジェクトの変更に応答して前記レコードを3個のコピーに分割する、
    請求項19に記載のシステム。
  21. コンピュータに、
    ファイルシステムの論理バージョンにエポック値を割り当てるステップと、
    ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップであって、前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めている、ステップと、
    ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持するステップであって、列挙された各エポック値が前記ファイルシステムの有効な論理バージョンに対応している、ステップと、
    前記バージョン・テーブル中の前記ファイルシステムの前記論理バージョンの現在のエポック値を永続記憶装置に格納することにより前記ファイルシステムの論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップと
    を実行させる
    プログラム。
  22. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するステップであって、前記ステップが、前記ファイルシステムの対応するエポック値を永続記憶装置中の前記バージョン・テーブルから削除するステップを含む、ステップ
    を備えた、
    請求項21に記載のプログラム。
  23. さらに、
    前記削除したバージョンに付随する非参照のオブジェクトを削除するステップ
    を備えた、
    請求項22に記載のプログラム。
  24. さらに、
    前記ファイルシステムの既存の論理バージョンへの復帰を実行するステップであって、前記ステップが、永続記憶装置中の前記バージョン・テーブル中の介在するすべてのエントリを削除し、ファイルシステムの前記エポック値を前記復帰した論理バージョンに対応するエポック値に設定するステップを含む、ステップ
    を備えた、
    請求項21に記載のプログラム。
  25. さらに、
    複数の参照済みファイルシステム・オブジェクトの変更に応答してコピー・オン・ライト手順を実行するステップであって、前記ステップが、前記ファイルシステムの非主論理バージョンに属す複数の参照済みファイルシステム・オブジェクトの変更に応答して前記ファイルシステム・オブジェクトを3個のコピーに分割するステップを含む、ステップ
    を備えた、
    請求項21に記載のプログラム。
  26. 前記ファイルシステムの論理バージョンを作成するステップが、前記論理バージョン中の余分なスペースを前記ファイルシステム中の変化したオブジェクトに限定するステップを含む、
    請求項21に記載のプログラム。
  27. さらに、
    前記ファイルシステムの元の状態を保存しがら前記ファイルシステムの論理バージョンを保持するステップ
    を備えた、
    請求項21に記載のプログラム。
  28. ファイルシステムの論理バージョンを管理する方法であって、
    (a)単一のオペレーティング・システム・インスタンスを実行しているノードのサーバ・ソフトウェア内にファイルシステム論理を組み込むステップと、
    (b)前記ファイルシステムの論理バージョンにエポック値を割り当てるステップと、
    (c)ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップであって、前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決める、ステップと、
    (d)ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持するステップであって、列挙された各エポック値がファイルシステムの有効な論理バージョンに対応している、ステップと、
    (e)前記ファイルシステムの前記論理バージョンの現在のエポック値を前記ローカル記憶媒体の永続記憶装置中の前記バージョン・テーブルに格納することにより、前記ファイルシステムの論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントする、ステップと
    を備えた
    方法。
  29. ファイルシステムの論理バージョンを作成するステップが、前記論理バージョンの余分なスペースを前記ファイルシステム中の複数の参照し変化したファイルシステム・オブジェクトに限定するステップを含む、
    請求項28に記載の方法。
  30. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するステップを備え、
    前記ローカル記憶媒体の永続記憶装置中の前記バージョン・テーブルから対応するエポック値を削除し、前記削除したバージョンに付随する非参照のオブジェクトを削除する、
    請求項28に記載の方法。
  31. さらに、
    前記ファイルシステムの既存の論理バージョンへの復帰を実行するステップ
    を備え、
    前記バージョン・テーブル中のすべての介在するエントリを前記ローカル記憶媒体の永続記憶装置から削除し、ファイルシステムの前記エポック値をファイルシステムの前記復帰した論理バージョンに対応するエポック値に設定する、
    請求項28に記載の方法。
  32. さらに、
    複数の参照済みファイルシステム・オブジェクトの変更に応答してコピー・オン・ライト手順を実行することによりファイルシステムの元の状態を保存するステップ
    を備えた、
    請求項28に記載の方法。
  33. データ記憶システムであって、
    単一のオペレーティング・システム・インスタンスを実行するように適合したノードのサーバ・ソフトウェア内に組み込まれたファイルシステム論理であって、前記ファイルシステム論理は前記ノードのローカル記憶装置のメタデータと通信するように適合している、ファイルシステム論理と、
    エポック値によって識別されたファイルシステム・バージョンと、
    一対のエポック値によって識別され、オブジェクトの前記エポック値ペアが、前記オブジェクトが有効である前記ファイルシステムの論理バージョンの範囲を決めるように適合している、ファイルシステム・オブジェクトと、
    ファイルシステムのすべての有効なエポック値から成るリストを保持するように適合したバージョン・テーブルであって、列挙された各エポック値が前記ファイルシステムの有効な論理バージョンに対応している、バージョン・テーブルと、
    前記ファイルシステムの論理バージョンを作成するように適合したバージョン管理手段であって、前記ファイルシステムの現在の論理バージョンが、前記ローカル記憶装置の永続記憶装置中の前記バージョン・テーブル中に保持されるように適合しており、ファイルシステムの現在のエポック値が単調にインクリメントされている、バージョン管理手段と
    を備えた
    システム。
  34. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するように適合したバージョン管理手段を備え、
    前記バージョン管理手段が、前記ローカル記憶媒体の永続記憶装置中の前記バージョン・テーブルから前記論理バージョンの対応するエポック値を削除し、前記削除した論理バージョンに付随する非参照のオブジェクトを削除するように適合している、
    請求項33に記載のシステム。
  35. さらに、
    前記ファイルシステムの既存の論理バージョンへの復帰を実行するように適合したバージョン管理手段を備え、
    前記バージョン管理手段が、前記ローカル記憶媒体の永続記憶装置中の前記バージョン・テーブル中の介在するエントリを削除し、ファイルシステムの前記エポック値を前記復帰した論理バージョンに付随するエポック値に設定する、
    請求項33に記載のシステム。
  36. さらに、
    複数の参照済みファイルシステム・オブジェクトの変更に応答してコピー・オン・ライトを実行するように適合したレコード管理手段
    を備えた、
    請求項33に記載のシステム。
  37. 前記レコード管理手段が、前記ファイルシステムの非主論理バージョンに属す複数の参照済みファイルシステム・オブジェクトの変更に応答して前記レコードを3個のコピーに分割する、
    請求項36に記載のシステム。
  38. コンピュータに、
    単一のオペレーティング・システム・インスタンスを実行しているノードのサーバ・ソフトウェア内でファイルシステム論理を実行するステップであって、前記ファイルシステム論理が、前記ノードのローカル記憶媒体のメタデータと通信するように適合している、ステップと、
    ファイルシステムの論理バージョンにエポック値を割り当てるステップと、
    ファイルシステム・オブジェクトにオブジェクト・エポック値ペアを割り当てるステップであって、前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決める、ステップと、
    ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持するステップであって、列挙された各エポック値がファイルシステムの有効な論理バージョンに対応している、ステップと、
    前記ファイルシステムの前記論理バージョンの現在のエポック値を前記ローカル記憶媒体の永続記憶装置の前記バージョン・テーブルに格納することにより前記ファイルシステムの論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップと
    を実行させる
    プログラム。
  39. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するステップであって、前記ステップが、ファイルシステムの前記論理バージョンの対応するエポック値を前記ローカル記憶媒体の永続記憶装置中の前記バージョン・テーブルから削除するステップを含む、ステップ
    を備えた、
    請求項38に記載のプログラム。
  40. さらに、
    前記ファイルシステムの既存の論理バージョンへの復帰を実行するステップであって、前記ステップが、前記ローカル記憶媒体の永続記憶装置中の前記バージョン・テーブル中の介在するすべてのエントリを削除し、ファイルシステムの前記エポック値をファイルシステムの前記復帰した論理バージョンに対応するエポック値に設定するステップを含む、ステップ
    を備えた、
    請求項38に記載のプログラム。
  41. さらに、
    前記ファイルシステムの非主論理バージョンに属す複数の参照済みオブジェクトの変更に応答してコピー・オン・ライト手順を実行するステップ
    を備えた、
    請求項38に記載のプログラム。
  42. 前記コピー・オン・ライト手順が、前記ファイルシステムの非主論理バージョンに属す複数の参照済みオブジェクトの変更に応答して前記ファイルシステム・オブジェクトを3個のコピーに分割するステップを含む、
    請求項41に記載のプログラム。
  43. 前記ファイルシステムの論理バージョンを作成するステップが、前記論理バージョンの余分なスペースを前記ファイルシステム中の変化したオブジェクトに限定するステップを含む、
    請求項38に記載のプログラム。
  44. ファイルシステムの論理バージョンを管理する方法であって、
    (a)共用記憶システムと通信しているサーバ・ノードのサーバ・ソフトウェア内にファイルシステム論理を組み込むステップであって、前記ファイルシステム論理が、前記共用記憶システムのメタデータと通信するように適合している、ステップと、
    (b)前記ファイルシステムの論理バージョンにエポック値を割り当てるステップと、
    (c)ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップであって、前記オブジェクト・エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めている、ステップと、
    (d)ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを保持するステップであって、列挙した各エポック値がファイルシステムの有効な論理バージョンに対応している、ステップと、
    (e)前記ファイルシステムの前記論理バージョンの現在のエポック値を前記共用記憶システムの永続記憶装置の前記バージョン・テーブルに格納することにより前記ファイルシステムの論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップと
    を備えた
    方法。
  45. ファイルシステムの論理バージョンを作成するステップが、前記論理バージョンの余分なスペースを前記ファイルシステム中の変化したオブジェクトに限定するステップを含む、
    請求項44に記載の方法。
  46. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するステップを備え、
    前記論理バージョンの対応するエポック値を前記共用記憶システムの永続記憶装置中の前記バージョン・テーブルから削除し、前記削除した論理バージョンに付随する非参照のオブジェクトを削除する、
    請求項44に記載の方法。
  47. さらに、
    前記ファイルシステムの既存の論理バージョンへの復帰を実行するステップを備え、
    前記バージョン・テーブル中のすべての介在するエントリを前記共用記憶システムの永続記憶装置から削除し、ファイルシステムの前記エポック値をファイルシステムの前記復帰した論理バージョンに対応するエポック値に設定する、
    請求項44に記載の方法。
  48. さらに、
    複数の参照済みファイルシステム・オブジェクトの変更に応答してコピー・オン・ライト手順を実行することによりファイルシステムの元の状態を保存するステップ
    を備えた、
    請求項44に記載の方法。
  49. データ記憶システムであって、
    共用記憶システムと通信しているサーバのサーバ・ソフトウェア内に組み込まれたファイルシステム論理であって、前記ファイルシステム論理は前記共用記憶システムのメタデータと通信するように適合している、ファイルシステム論理と、
    エポック値によって識別されたファイルシステム・バージョンと、
    一対のエポック値によって識別され、前記エポック値ペアが、オブジェクトが有効である前記ファイルシステムの論理バージョンの範囲を決めるように適合している、、ファイルシステム・オブジェクトと、
    ファイルシステムのすべての有効なエポック値から成るリストを保持するように適合したバージョン・テーブルであって、列挙された各エポック値が前記ファイルシステムの有効な論理バージョンに対応している、バージョン・テーブルと、
    前記ファイルシステムの論理バージョンを作成するように適合したバージョン管理手段であって、前記ファイルシステムの現在の論理バージョンに付随する現在のエポック値が、前記共用記憶システムの永続記憶装置中の前記論理バージョン中に保持されるように適合しており、ファイルシステムの現在のエポック値が単調にインクリメントされている、バージョン管理手段と
    を備えた
    システム。
  50. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するように適合したバージョン管理手段
    を備え、
    前記バージョン管理手段が、前記論理バージョンの対応するエポック値を前記共用記憶システムの永続記憶装置中の前記バージョン・テーブルから削除し、ファイルシステムの前記削除した論理バージョンに付随する非参照のオブジェクトを削除するように適合している、
    請求項49に記載のシステム。
  51. さらに、
    前記ファイルシステムの既存の論理バージョンへの復帰を実行するように適合したバージョン管理手段
    を備え、
    前記バージョン管理手段が、前記共用記憶システムの永続記憶装置中の前記バージョン・テーブル中の介在するエントリを削除し、ファイルシステムの前記エポック値をファイルシステムの前記復帰した論理バージョンに付随するエポック値に設定するように適合している、
    請求項49に記載のシステム。
  52. さらに、
    複数の参照済みのファイルシステム・オブジェクトの変更に応答してコピー・オン・ライト手順を実行するように適合したレコード管理手段
    を備えた、
    請求項49に記載のシステム。
  53. 前記レコード管理手段が、変更するように設定された前記ファイルシステムの非主論理バージョンに属す複数の参照済みファイルシステム・オブジェクトの変更に応答して前記レコードを3個のコピーに分割する、
    請求項52に記載のシステム。
  54. コンピュータに、
    共用記憶システムと通信しているサーバ・ノードのサーバ・ソフトウェア内でファイルシステム論理を実行するステップであって、前記ファイルシステム論理が、前記共用記憶システムのメタデータと通信するように適合している、ステップと、
    ファイルシステムの論理バージョンにエポック値を割り当てるステップと、
    ファイルシステム・オブジェクトに一対のエポック値を割り当てるステップであって、前記エポック値ペアが、前記オブジェクトが有効であるファイルシステムの論理バージョンの範囲を決めている、ステップと、
    ファイルシステムのすべての有効なエポック値から成るバージョン・テーブルを格納するステップであって、列挙された各エポック値がファイルシステムの有効な論理バージョンに対応している、ステップと、
    前記ファイルシステムの前記論理バージョンの現在のエポック値を前記共用記憶システムの永続記憶装置中の前記バージョン・テーブルに格納することにより前記ファイルシステムの論理バージョンを作成し、ファイルシステムの現在のエポック値を単調にインクリメントするステップと
    を実行させる
    プログラム。
  55. さらに、
    前記ファイルシステムの前記論理バージョンの削除を実行するステップ
    を備え、
    前記ステップが、前記ファイルシステムの対応するエポック値を前記共用記憶システムの永続記憶装置中の前記バージョン・テーブルから削除するステップを含む、
    請求項54に記載のプログラム。
  56. さらに、
    ファイルシステムの既存の論理バージョンへの復帰を実行するステップ
    を備え、
    前記ステップが、前記共用記憶システムの永続記憶装置中の前記バージョン・テーブル中のすべての介在するエントリを削除し、ファイルシステムの前記エポック値をファイルシステムの前記復帰した論理バージョンに対応するエポック値に設定する、
    請求項54に記載のプログラム。
  57. さらに、
    前記ファイルシステムの非主論理バージョンに属す複数の参照済みオブジェクトの変更に応答してコピー・オン・ライト手順を実行するステップ
    を備えた、
    請求項54に記載のプログラム。
  58. 前記コピー・オン・ライト手順が、前記ファイルシステムの非主論理バージョンに属す複数の参照済みオブジェクトの変更に応答して前記ファイルシステム・オブジェクトを3個のコピーに分割するステップを含む、
    請求項57に記載のプログラム。
  59. 前記ファイルシステムの論理バージョンを作成するステップが、前記論理バージョン中の余分なスペースを前記ファイルシステム中の変化したオブジェクトに限定するステップを含む、
    請求項54に記載のプログラム。
JP2004129396A 2003-04-29 2004-04-26 ファイルシステムのバージョンを管理する方法およびシステム Expired - Fee Related JP4117265B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/427,391 US7139781B2 (en) 2003-04-29 2003-04-29 Managing filesystem versions

Publications (2)

Publication Number Publication Date
JP2004326800A JP2004326800A (ja) 2004-11-18
JP4117265B2 true JP4117265B2 (ja) 2008-07-16

Family

ID=33310135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004129396A Expired - Fee Related JP4117265B2 (ja) 2003-04-29 2004-04-26 ファイルシステムのバージョンを管理する方法およびシステム

Country Status (4)

Country Link
US (1) US7139781B2 (ja)
JP (1) JP4117265B2 (ja)
CN (1) CN100399327C (ja)
SG (1) SG143036A1 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055689A1 (en) * 2003-09-10 2005-03-10 Abfalter Scott A. Software management for software defined radio in a distributed network
JP4451705B2 (ja) 2004-04-26 2010-04-14 株式会社日立製作所 ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム
US7574439B2 (en) * 2004-05-20 2009-08-11 International Business Machines Corporation Managing a nested request
US7627574B2 (en) * 2004-12-16 2009-12-01 Oracle International Corporation Infrastructure for performing file operations by a database server
US7716260B2 (en) * 2004-12-16 2010-05-11 Oracle International Corporation Techniques for transaction semantics for a database server performing file operations
US20060136508A1 (en) * 2004-12-16 2006-06-22 Sam Idicula Techniques for providing locks for file operations in a database management system
US7548918B2 (en) * 2004-12-16 2009-06-16 Oracle International Corporation Techniques for maintaining consistency for different requestors of files in a database management system
US8224837B2 (en) * 2005-06-29 2012-07-17 Oracle International Corporation Method and mechanism for supporting virtual content in performing file operations at a RDBMS
US7809675B2 (en) * 2005-06-29 2010-10-05 Oracle International Corporation Sharing state information among a plurality of file operation servers
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
CN100454302C (zh) * 2005-10-24 2009-01-21 中兴通讯股份有限公司 一种文件管理系统及管理方法
US7610304B2 (en) * 2005-12-05 2009-10-27 Oracle International Corporation Techniques for performing file operations involving a link at a database management system
US9092496B2 (en) * 2005-12-30 2015-07-28 Sap Se Layered data management
US7634517B1 (en) * 2006-02-10 2009-12-15 Google Inc. System and method for dynamically updating a document repository without interrupting concurrent querying
US7587564B2 (en) * 2006-09-26 2009-09-08 International Business Machines Corporation System, method and computer program product for managing data versions
US8745005B1 (en) * 2006-09-29 2014-06-03 Emc Corporation Checkpoint recovery using a B-tree intent log with syncpoints
US20090013317A1 (en) * 2007-02-08 2009-01-08 Airnet Communications Corporation Software Management for Software Defined Radio in a Distributed Network
US8489830B2 (en) * 2007-03-30 2013-07-16 Symantec Corporation Implementing read/write, multi-versioned file system on top of backup data
US9413825B2 (en) * 2007-10-31 2016-08-09 Emc Corporation Managing file objects in a data storage system
US8447733B2 (en) * 2007-12-03 2013-05-21 Apple Inc. Techniques for versioning file systems
JP2009187136A (ja) * 2008-02-04 2009-08-20 Fujitsu Ltd 電子ファイル管理装置および電子ファイル管理方法
US7962780B2 (en) * 2008-08-22 2011-06-14 International Business Machines Corporation Command sequence numbering apparatus and method
US9501368B2 (en) * 2008-09-30 2016-11-22 Veritas Technologies Llc Backing up and restoring selected versioned objects from a monolithic database backup
JP2012531674A (ja) 2009-06-26 2012-12-10 シンプリヴィティ・コーポレーション ノンユニフォームアクセスメモリにおけるスケーラブルなインデックス付け
US8478799B2 (en) 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
CN101997823B (zh) * 2009-08-17 2013-10-02 联想(北京)有限公司 一种分布式文件系统及其数据访问方法
US9436748B2 (en) 2011-06-23 2016-09-06 Simplivity Corporation Method and apparatus for distributed configuration management
MX342702B (es) * 2012-02-14 2016-10-10 Apple Inc Metodos y aparato para distribucion a gran escala de clientes de acceso electronico.
US9032183B2 (en) 2012-02-24 2015-05-12 Simplivity Corp. Method and apparatus for content derived data placement in memory
US9519591B2 (en) * 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US9043576B2 (en) 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
US9477675B1 (en) * 2013-09-30 2016-10-25 EMC IP Holding Company LLC Managing file system checking in file systems
US10242222B2 (en) 2014-01-14 2019-03-26 Baker Hughes, A Ge Company, Llc Compartment-based data security
US10657113B2 (en) 2014-01-14 2020-05-19 Baker Hughes, A Ge Company, Llc Loose coupling of metadata and actual data
JP2018506088A (ja) 2015-01-13 2018-03-01 ヒューレット パッカード エンタープライズ デベロップメント エル ピーHewlett Packard Enterprise Development LP 最適化シグネチャ比較およびデータレプリケーションのためのシステムおよび方法
US11075806B1 (en) 2016-06-30 2021-07-27 Juniper Networks, Inc. Hierarchical naming scheme for state propagation within network devices
US10303458B2 (en) 2016-09-29 2019-05-28 Hewlett Packard Enterprise Development Lp Multi-platform installer
US10887173B2 (en) 2016-12-21 2021-01-05 Juniper Networks, Inc. Communicating state information in distributed operating systems
US11316744B2 (en) 2016-12-21 2022-04-26 Juniper Networks, Inc. Organizing execution of distributed operating systems for network devices
US11316775B2 (en) * 2016-12-21 2022-04-26 Juniper Networks, Inc. Maintaining coherency in distributed operating systems for network devices
US10887176B2 (en) 2017-03-30 2021-01-05 Hewlett Packard Enterprise Development Lp Predicting resource demand in computing environments
US11010300B2 (en) 2017-05-04 2021-05-18 Hewlett Packard Enterprise Development Lp Optimized record lookups
US11126755B2 (en) 2018-01-30 2021-09-21 Hewlett Packard Enterprise Development Lp Object signatures in object stores
US10860738B2 (en) 2018-01-30 2020-12-08 Hewlett Packard Enterprise Development Lp Augmented metadata and signatures for objects in object stores
US10587454B2 (en) 2018-01-30 2020-03-10 Hewlett Packard Enterprise Development Lp Object counts persistence for object stores
CN108540306B (zh) * 2018-02-28 2021-05-25 博尔联科(厦门)智能技术有限公司 一种网络节点的通讯控制方法
US10997153B2 (en) 2018-04-20 2021-05-04 Hewlett Packard Enterprise Development Lp Transaction encoding and transaction persistence according to type of persistent storage
US11243703B2 (en) 2018-04-27 2022-02-08 Hewlett Packard Enterprise Development Lp Expandable index with pages to store object records
US11095742B2 (en) 2019-03-27 2021-08-17 Juniper Networks, Inc. Query proxy for delivery of dynamic system state

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5287496A (en) * 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US6366933B1 (en) 1995-10-27 2002-04-02 At&T Corp. Method and apparatus for tracking and viewing changes on the web
US5956731A (en) * 1997-04-23 1999-09-21 Oracle Corporation Sharing snapshots for consistent reads
US6289474B1 (en) * 1998-06-24 2001-09-11 Torrent Systems, Inc. Computer system and process for checkpointing operations on data in a computer system by partitioning the data
KR20010037622A (ko) * 1999-10-19 2001-05-15 정선종 분산 시스템에서 메모리 체크포인트를 이용한 독립 체크포인팅 방법
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
WO2002069200A1 (en) * 2001-02-24 2002-09-06 Gara Alan G Checkpointing filesystem

Also Published As

Publication number Publication date
US20040220979A1 (en) 2004-11-04
US7139781B2 (en) 2006-11-21
SG143036A1 (en) 2008-06-27
CN1622087A (zh) 2005-06-01
JP2004326800A (ja) 2004-11-18
CN100399327C (zh) 2008-07-02

Similar Documents

Publication Publication Date Title
JP4117265B2 (ja) ファイルシステムのバージョンを管理する方法およびシステム
US11803513B2 (en) Using a storage system to optimize and maintain the metadata associated with a plurality of small files
US6651075B1 (en) Support for multiple temporal snapshots of same volume
US6594744B1 (en) Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository
US7640262B1 (en) Positional allocation
US7673099B1 (en) Affinity caching
US5933820A (en) System, method, and program for using direct and indirect pointers to logically related data and targets of indexes
US7720892B1 (en) Bulk updates and tape synchronization
US5881379A (en) System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging
US9430331B1 (en) Rapid incremental backup of changed files in a file system
US7257690B1 (en) Log-structured temporal shadow store
US7657721B2 (en) Method of maintaining a plurality of snapshots, server apparatus and storage apparatus
KR101137299B1 (ko) 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리
EP1476810B1 (en) Providing a snapshot of a subset of a file system
US20080005145A1 (en) Data processing
US20030225972A1 (en) Storage system
JP2016529633A (ja) スナップショットおよびクローンの複製
US7549037B1 (en) Efficient off-host backup of a file set clone
US11841826B2 (en) Embedded reference counts for file clones
US6192376B1 (en) Method and apparatus for shadowing a hierarchical file system index structure to enable error recovery
US8090925B2 (en) Storing data streams in memory based on upper and lower stream size thresholds
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
US7958097B1 (en) Method and system for implementation of data storage quota
CN112783835A (zh) 索引管理方法、装置及电子设备
JP2005316708A (ja) 階層記憶装置、その復旧方法、及び復旧プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071113

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080205

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080310

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: 20080415

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080421

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

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: 20110425

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110425

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120425

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130425

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140425

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees