(57)【要約】  複数のメタデータサーバを有するシステムにおける冪等ジャーナルの使用及び保守。データ変更動作が、メタデータサーバにより実行される。データ変更のための動作に対応するジャーナルエントリが生成される。ジャーナルエントリは、ファイル識別子及びそのファイルを作成したデータ変更のための動作に対応するジャーナルシーケンス番号を含む。
2009529192.tif 000002
【特許請求の範囲】
【請求項１】
メタデータサーバを介してデータ変更をするためのデータ変更動作を実行するステップと、
前記データ変更動作に対応するジャーナルエントリを生成するステップとを備えた方法であり、
前記ジャーナルエントリは、ファイル識別子及び前記ファイルを作成したデータ変更動作に対応するジャーナルシーケンス番号を含むことを特徴とする方法。
【請求項２】
前記ファイル識別子は、ファイル名を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記メタデータサーバの前記データ変更動作のジャーナルシーケンス番号を生成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記ジャーナルエントリは、該ジャーナルエントリに対応するジャーナルシーケンス番号、前記データ変更動作の指示、前記データ変更動作によって変更されるべき前記ファイルに対応するファイル識別子、変更されるべき前記ファイルを作成したデータ変更動作に対応するジャーナルシーケンス番号、及び前記データ変更動作に対応する１つ又は複数のパラメータを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記ジャーナルエントリを１つ又は複数の遠隔メタデータサーバに送信するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
ファイルシステムメタデータを更新するために、ジャーナルシーケンスを実行するステップと、
ファイル識別子及び該ファイル識別子によって示されたファイルの作成に対応するジャーナルシーケンス番号を前記示されたファイルに関連するジャーナルシーケンス番号と比較するステップと、
前記ファイルの作成に対応する前記ファイル識別子及びジャーナルシーケンス番号が整合する場合、前記ジャーナルエントリからのデータ変更動作を実行するステップとを含むことを特徴とする方法。
【請求項７】
前記ファイル識別子は、ファイル名を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記ジャーナルエントリは、該ジャーナルエントリに対応するジャーナルシーケンス番号、前記データ変更動作の指示、前記データ変更動作によって変更されるべき前記ファイルに対応する識別子、変更されるべき前記ファイルを作成したデータ変更動作に対応するジャーナルシーケンス番号、及び前記データ変更動作に対応する１つ又は複数のパラメータを含むことを特徴とする請求項６に記載の方法。
【請求項９】
少なくとも一部において前記データ変更動作ジャーナルエントリに関連するジャーナルシーケンス番号に基づいて、１つ又は複数のデータ変更動作の順序を判断するステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項１０】
命令が記憶されたコンピュータ可読媒体を含む物品であって、前記命令は１つ又は複数のプロセッサに実行されることにより、コンピュータに、
メタデータサーバを介してデータ変更動作を実行するステップと、
前記データ変更動作に対応するジャーナルエントリを生成するステップとを実行させる命令を記憶した物品であり、
前記ジャーナルエントリは、ファイル識別子及び前記ファイルを作成したデータ変更動作に対応するジャーナルシーケンス番号を含むことを特徴とする物品。
【請求項１１】
前記ファイル識別子は、ファイル名を含むことを特徴とする請求項１０に記載の物品。
【請求項１２】
前記１つ又は複数のプロセッサに実行されることにより、前記メタデータサーバの前記データ変更動作のジャーナルシーケンス番号を生成させる命令をさらに含むことを特徴とする請求項１０に記載の物品。
【請求項１３】
前記ジャーナルエントリは、該ジャーナルエントリに対応するジャーナルシーケンス番号、前記データ変更動作の指示、前記データ変更動作によって変更されるべき前記ファイルに対応するファイル識別子、変更されるべき前記ファイルを作成したデータ変更動作に対応するジャーナルシーケンス番号、及び前記データ変更動作に対応する１つ又は複数のパラメータを含むことを特徴とする請求項１０に記載の物品。
【請求項１４】
前記１つ又は複数のプロセッサに実行されることにより、前記ジャーナルエントリを１つ又は複数の遠隔メタデータサーバに送信させる命令をさらに含むことを特徴とする請求項１０に記載の物品。
【請求項１５】
命令が記憶されたコンピュータ可読媒体を含む物品であって、前記命令は、１つ又は複数のプロセッサに実行されることにより、コンピュータに、
ファイルシステムメタデータを更新するために、ジャーナルシーケンスを実行するステップと、
ファイル識別子及び該ファイル識別子によって示されたファイルの作成に対応するジャーナルシーケンス番号を前記示されたファイルに関連するジャーナルシーケンス番号と比較するステップと、
前記ファイルの作成に対応する前記ファイル識別子及びジャーナルシーケンス番号が整合する場合、前記ジャーナルエントリからのデータ変更動作を実行するステップと
を実行させる命令を記憶したことを特徴とする物品。
【請求項１６】
前記ファイル識別子は、ファイル名を含むことを特徴とする請求項１５に記載の物品。
【請求項１７】
前記ジャーナルエントリは、該ジャーナルエントリに対応するジャーナルシーケンス番号、前記データ変更動作の指示、前記データ変更動作によって変更されるべき前記ファイルに対応するファイル識別子、変更されるべき前記ファイルを作成したデータ変更動作に対応するジャーナルシーケンス番号、及び前記データ変更動作に対応する１つ又は複数のパラメータを含むことを特徴とする請求項１５に記載の物品。
【請求項１８】
少なくとも一部において、前記データ変更動作ジャーナルエントリに関連するジャーナルシーケンス番号に基づいて、１つ又は複数のデータ変更動作の順序を判断するステップをさらに含むことを特徴とする請求項１５に記載の物品。
【請求項１９】
複数のメタデータサーバであって、各メタデータサーバが、データ変更動作に対応するジャーナルを生成し、前記ジャーナルを少なくとも１つの他のメタデータサーバに送信する複数のメタデータサーバと、
前記複数のメタデータサーバに結合され、ファイルとして構成されたデータを記憶する複数のデータサーバと、
前記メタデータサーバに結合され、選択されたデータサーバに記憶されているファイルに対してデータ変更動作を開始するように構成される少なくとも１つのクライアント装置とを備え、
各メタデータサーバが、前記データ変更動作に応答して、前記データ変更動作の指示、前記ファイルに対応するファイル識別子、及び前記ファイルの作成の原因となったデータ変更動作に対応するジャーナルシーケンス番号を含むジャーナルエントリを生成するように構成されることを特徴とするシステム。
【請求項２０】
前記ジャーナルエントリは、該エントリの前記データ変更動作に対応するジャーナルシーケンス番号を含むことを特徴とする請求項１９に記載のシステム。
【請求項２１】
複数のメタデータサーバであって、各メタデータサーバが、データ変更動作に対応するジャーナルを生成するように構成され、前記ジャーナルを少なくとも１つの他のメタデータサーバに送信する複数のメタデータサーバと、
前記複数のメタデータサーバに結合され、ファイルとして構成されたデータを記憶する複数のデータサーバと、
前記メタデータサーバに結合されて、選択されたデータサーバに記憶されているファイルに対してデータ変更動作を開始する少なくとも１つのクライアント装置とを備え、
各メタデータサーバが、前記ファイルに対応するファイル識別子及び前記ジャーナルエントリからの前記ファイルの作成の原因となったデータ変更動作に対応するジャーナルシーケンス番号を、前記ファイルの作成の原因となった前記データ変更動作に対応するジャーナルシーケンス番号を示す前記ファイルに関連するジャーナルシーケンス番号と比較し、整合した場合に前記ジャーナルエントリからのデータ変更動作を実行することにより、ジャーナルシーケンスを実行するように構成されることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はファイルシステム管理に関する。特に、本発明の実施形態は、例えばビデオ編集、ビデオアーカイブ、及び／又はビデオ配信をサポートすることができるシステムで使用することができる分散メタデータサーバを有するファイル管理システムを使用する技法に関する。
【背景技術】
【０００２】
一般に、ファイルシステムは、データの記憶及び検索に関する関数セットを提供するプログラム（又はプログラムセット）である。データは、例えば、不揮発性記憶装置（例えば、ハードディスク）又は揮発性記憶装置（例えば、ランダムアクセスメモリ）に記憶することができる。通常、「ファイルメタデータ」と呼ばれる、ファイルに関連するデータセット（例えば、ファイル名、アクセス許可）がある。ファイルメタデータには、ファイルアクセスプロセス中にアクセスすることができる。
【発明を実施するための最良の形態】
【０００３】
図は、本発明を制限するものではなく、例として、同様の参照番号は同様の要素を指す添付図面に示す。
【０００４】
以下の説明に多くの具体的な詳細を記す。しかし、本発明の実施形態は、これらの具体的な詳細に示したものでなくとも実施することができる。場合によっては、この説明の理解を曖昧にしないように、周知の回路、構造、及び技法の詳細については示さなかった。
【０００５】
［ジャーナルエントリ］
一般に、ジャーナルは、メタデータサーバにより実行される動作のリストを含むものである。ジャーナルにより、メタデータサーバによって実行された動作を他のメタデータサーバ（又は他のシステム装置）に繰り返し行わせることが可能になる。したがって、ジャーナルを使用して、データを変更する動作を同期させ、矛盾のないデータシステムをサポートすることができる。
【０００６】
一実施形態では、上述したジャーナルを利用して、ファイルシステムの冪等ジャーナルメカニズムを提供することができる。一般に、「冪等（ｉｄｅｍｐｏｔｅｎｔ）」は、１つ又は複数の動作を繰り返し適用した結果が、その１つ又は複数の動作を１回適用した結果と同じ結果になることを意味する。したがって、本明細書に記載のシステムでは、ジャーナル内の動作を複数回適用しても、ジャーナル内のその動作を１回適用したことと同じ効果を得ることができる。１つの利点は、ジャーナル内の動作を適用する前に、ファイルシステムの状態が厳密に定義されなくてもよいことである。これにより、メタデータを破損することなく動作を適用することが可能になる。
【０００７】
さらに詳細には後述するように、以下のメカニズムを利用して冪等ジャーナリングを提供することができる。一実施形態では、ジャーナル内の各エントリはシーケンス番号を含む。シーケンス番号は一意であり、且つ単調増加するようにしてもよい。一実施形態では、各ファイルシステムのオブジェクト（例えば、ファイル、ファイルスライス、データセグメント）は、ファイルシステムのオブジェクトを作成した動作に対応するジャーナルエントリのジャーナルシーケンス番号（ＪＳＮ）を含む。ＪＳＮは、ファイルメタデータの一部である。一実施形態では、ジャーナル内で、ファイルシステムのオブジェクトをその名称及びそのファイルを作成したジャーナルのＪＳＮによって参照することができる。ファイル名とＪＳＮとの組み合わせにより、ファイルシステム内で必ず一意に参照できるようにする。
【０００８】
一実施形態では、ＪＳＮは、ファイルシステムが動いている間はそのファイルシステム内で一意でなければならず、したがって、非常に大きなダイナミックレンジ（すなわち、６４ビット）の番号として実装される。ジャーナルエントリが毎秒１０，０００エントリのレートで生成される場合であっても、６４ビットのＪＳＮであれば、一巡するのに４００万年かかる。
【０００９】
一実施形態では、ジャーナルが実行される度に、ファイル名及びＪＳＮのダブレットが、ターゲットファイルのファイル名及びＪＳＮと比較される。ＪＳＮが整合しない場合、参照は無効とみなされ、その動作は行われない。
【００１０】
図２は、ジャーナルエントリの一実施形態の概念図である。一実施形態では、記録される動作毎に、図２に示すエントリ等のエントリを生成し、ジャーナルの一部として保持される。一実施形態では、各エントリ２００は、図２に示すフィールド並びに追加のフィールドを含むことができる。代替の実施形態では、異なるフィールドを使用してよい。
【００１１】
一実施形態では、データ変更動作が実行されると、ジャーナルエントリ２００が生成される。エントリ２００は、エントリ２００に対応するＪＳＮを記憶するためのジャーナルシーケンス番号（ＪＳＮ）フィールド２１０を含む。上述したように、ＪＳＮは、所定のパターン（例えば、単調増加）から選択される一意に決められる大きな（例えば、６４ビット）数である。さらに詳細に後述する別の例として、ＪＳＮは、冪等ジャーナルメカニズムを提供する技法として使用することができる。
【００１２】
エントリ２００は、エントリ２００に対応するデータを変更するのためのデータ変更動作を記憶するためのデータ変更動作フィールド２２０をさらに含んでもよい。データ変更動作は、任意の種類のデータ変更動作であってよく、例えば、ファイル作成動作、データ書き込み動作であってよい。エントリ２００は、データ変更フィールド２２０に記憶されるデータ変更動作に対応するパラメータ２５０を含むこともできる。パラメータフィールド２５０に記憶されるパラメータは、データ変更フィールド２２０に記憶されるデータ変更動作に関連する任意の種類のパラメータであってよい。パラメータは、エントリに記憶される動作の種類に基づいて様々であり得る。
【００１３】
一実施形態では、各エントリは、ファイル名フィールド２３０及びファイル作成ＪＳＮフィールド２４０を含むダブレット２９０が、含まれる。ファイル名フィールド２３０には、ファイル名又は他のファイル識別子を記憶することができる。ファイル作成ＪＳＮフィールド２４０は、ファイル名によって識別されるファイルを作成したデータ変更動作に対応するＪＳＮを記憶することができる。一実施形態では、ジャーナルダブレット２９０を使用して、データ変更動作を適用することができるかファイルであるかを識別することができる。
【００１４】
ファイル名は一般に、一意である必要はないため、ファイルが作成されて削除され、短期間に同じ名称の別のファイルが作成されることが起こり得る。その場合、最初のファイルをターゲットとしたデータ変更動作が２番目のファイルに対して実行されれば、ファイルシステムは破損することになる。しかし、ジャーナルダブレット２９０を使用することにより、冪等ジャーナルメカニズムを提供することができる。
【００１５】
図７は、ジャーナルエントリを使用してデータ変更動作を実行する技法の一実施形態の流れ図である。メタデータサーバがデータ変更動作を実行することができ、このデータ変更動作は、同期をとるため又はファイルシステム復元のために、ジャーナルのエントリに記憶される。データ変更動作を実行する前に、メタデータサーバは、エントリからファイル名及びファイル作成ＪＳＮを含むジャーナルダブレット（図２に関連して説明した）を決定する（７１０）。
【００１６】
ジャーナルダブレットを、そのジャーナルダブレットに整合する名前のファイルのファイル作成ＪＳＮと比較する（７２０）。ファイル名及びファイル作成ＪＳＮが整合する場合（７３０）、エントリからのデータ変更動作を実行することができる（７５０）。ファイル名及びファイル作成ＪＳＮが整合しない場合（７３０）、エントリからのデータ変更動作は行われない（７４０）。
【００１７】
［システム概観］
図１は、分散メタデータサーバを有するファイルシステムを利用するシステムの一実施形態のブロック図である。一実施形態では、図１のシステムの様々な構成要素は、標準相互接続技術（例えば、イーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））、ギガビット「イーサネット」（Ｇｉｇａｂｉｔ  「Ｅｔｈｅｒｎｅｔ」）を使用して相互接続される。例えば、一実施形態では、スイッチファブリック１５０が、システム１００の様々な構成要素を互いに通信できるようにするギガビット「イーサネット」（又は１０ギガビット「イーサネット」）を相互接続したーキテクチャであってもよい。
【００１８】
一実施形態では、スイッチファブリック１５０を介して、複数のクライアント装置（例えば、１３０、１３２、・・・、１３８）を相互接続することができる。クライアント装置は、ユーザが、システム１００を通して利用可能なデータにアクセスし、且つ／又は、他の様式で利用できるようにすることができる。一実施形態では、クライアント装置は、ユーザが様々なサーバに記憶されているデータを処理するのに十分な記憶容量及び入出力容量を有するコンピュータシステムである。例えば、マルチメディアシステムでは、クライアント装置により、ユーザは、記憶されているマルチメディアファイルにアクセスし、且つマルチメディアファイルを編集又は他の様式で利用することができる。
【００１９】
一実施形態では、図１のシステムには、システムに記憶されているファイルのメタデータをそれぞれ記憶することができる任意の数のメタデータサーバを含むことができる。一実施形態では、メタデータサーバは、ファイルシステムの管理を担当することができ、クライアント装置の主な連絡窓口にすることができる。一実施形態では、各クライアント装置は、システム内のファイルにアクセスするための標準ファイルシステムインタフェースを提示することができるファイルシステムドライバ（ＦＳＤ）ソフトウェアを含むことができる。
【００２０】
一実施形態では、図１の様々な電子システム（例えば、データサーバ、メタデータサーバ、クライアント）は、例えば、図２の電子システム等の電子システムである。図２に示す電子システムは、各種電子システム、例えばコンピュータシステム、ネットワークアクセス装置等を表すことを意図される。代替のシステムは、電子システムであれ非電子システムであれ、より多数の構成要素、より少数の構成要素、及び／又は、異なる構成要素を含むことができる。
【００２１】
電子システム２００は、情報を通信するためのバス２０１又は他の通信装置及びバス２０１に結合されて情報を処理するプロセッサ２０２を含む。電子システム２００は、単一のプロセッサと共に示されるが、電子システム２００は複数のプロセッサ及び／又はコプロセッサを含んでもよい。電子システム２００は、バス２０１に結合されて、情報及びプロセッサ２０２により実行される命令を記憶するランダムアクセスメモリ（ＲＡＭ）又は他の動的記憶装置２０４（メモリと呼ばれる）をさらに含む。メモリ２０４は、プロセッサ２０２による命令の実行中の一時変数又は他の中間情報の記憶に使用することもできる。
【００２２】
電子システム２００は、バス２０１に結合されて、静的な情報及びプロセッサ２０２の命令を記憶する読み取り専用メモリ（ＲＯＭ）及び／又は他の静的記憶装置２０６も含む。データ記憶装置２０７がバス２０１に結合されて、情報及び命令を記憶する。磁気ディスク又は光ディスク等のデータ記憶装置２０７及び対応するドライブは、電子システム２００に結合することができる。
【００２３】
電子システム２００は、バス２０１を介して、陰極線管ディスプレイ（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）等の情報をユーザに表示する表示装置２２１に結合することもできる。英数字キー及び他のキーを含む英数字入力装置２２２が、通常バス２０１に結合されて、情報及びコマンド選択をプロセッサ２０２に伝達する。別の種類のユーザ入力装置は、方向情報及びコマンド選択をプロセッサ２０２に伝達するとともに、ディスプレイ２２１上でのカーソル移動を制御する、マウス、トラックボール、又はカーソル方向キー等のカーソル制御機構２２３である。電子システム２００は、ローカルエリアネットワーク等のネットワークへのアクセスを提供するネットワークインタフェース２３０をさらに含む。
【００２４】
命令は、１つ又は複数の電子的にアクセス可能な媒体等に有線又は無線でアクセスを提供する遠隔接続を介して（例えば、ネットワーク上でネットワークインタフェース２３０を経由して）、磁気ディスク、読み取り専用メモリ（ＲＯＭ）集積回路、ＣＤ−ＲＯＭ、ＤＶＤ等の記憶装置からメモリに提供される。代替の実施形態では、ソフトウェア命令に代えて、又はこれと組み合わせてハードワイヤード回路を使用してもよい。したがって、命令シーケンスの実行は、ハードウェア回路及びソフトウェア命令のいかなる特定の組み合わせにも制限されない。
【００２５】
電子的にアクセス可能な媒体は、電子装置（例えば、コンピュータ、個人情報端末、携帯電話）により可読な形態のコンテンツ（例えば、コンピュータ実行可能命令）を提供する（すなわち、記憶し、且つ／又は伝送する）任意の機構を含む。例えば、機械アクセス可能媒体は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電子、光学、音響、又は他の形態の伝搬信号（例えば、搬送波、赤外線信号、デジタル信号）等を含む。
【００２６】
［終わりに］
本明細書中での「一実施形態」又は「実施形態」への言及は、その実施形態に関連して説明された特定の機構、構造、又は特徴が本発明の少なくとも１つの実施形態に含まれることを意味する。本明細書中の様々な場所に現れる語句「一実施形態では」は、必ずしもすべてが同じ実施形態を指しているわけではない。
【００２７】
上記明細書において、本発明の特定の実施形態を参照して本発明を説明した。しかし、本発明のより広い趣旨及び範囲から逸脱することなく、説明された本発明の特定の実施形態に対し様々な修正及び変更を加えることができることが明らかになるであろう。したがって、本明細書及び図面は制限の意味ではなく例示の意味で考えられるべきである。
【図面の簡単な説明】
【００２８】
【図１】ジャーナルの概念図である。
【図２】ジャーナルエントリの一実施形態の概念図である。
【図３】ジャーナルエントリを使用してデータ変更動作を実行する技法の一実施形態の流れ図である。
【図４】電子システムの一実施形態のブロック図である。
【図５】分散メタデータサーバを有するファイルシステムを利用することができるシステムの一実施形態のブロック図である。
【図１】
2009529192.tif 000003
【図２】
2009529192.tif 000004
【図３】
2009529192.tif 000005
【図４】
2009529192.tif 000006
【図５】
2009529192.tif 000007
【国際調査報告】
2009529192.tif 000008
2009529192.tif 000009
2009529192.tif 000010