JP4782017B2 - 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法 - Google Patents

拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法 Download PDF

Info

Publication number
JP4782017B2
JP4782017B2 JP2006541574A JP2006541574A JP4782017B2 JP 4782017 B2 JP4782017 B2 JP 4782017B2 JP 2006541574 A JP2006541574 A JP 2006541574A JP 2006541574 A JP2006541574 A JP 2006541574A JP 4782017 B2 JP4782017 B2 JP 4782017B2
Authority
JP
Japan
Prior art keywords
file system
file
content
event
system content
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
JP2006541574A
Other languages
English (en)
Other versions
JP2007515002A (ja
Inventor
ボーサクー,ドゥルバジョチ
プレモ,ヌール
パスクア,ジョースフ
Original Assignee
シマンテック・オペレーティング・コーポレーション
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 シマンテック・オペレーティング・コーポレーション filed Critical シマンテック・オペレーティング・コーポレーション
Priority claimed from PCT/US2004/039038 external-priority patent/WO2005055093A2/en
Publication of JP2007515002A publication Critical patent/JP2007515002A/ja
Application granted granted Critical
Publication of JP4782017B2 publication Critical patent/JP4782017B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

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)

Description

本発明は、コンピュータシステムに関し、更に具体的にはファイルベースのストレージシステムに関する。
コンピュータシステムは、アプリケーションデータやこのようなデータを処理するように構成された実行可能なコードを含む大量の情報を処理することが多い。多くの実施態様において、コンピュータシステムは、データを格納するように構成された、磁気や光学のディスクドライブ、テープドライブなどの種々のタイプの大容量ストレージデバイスを設けている。これらの格納されたデータにアクセスするための系統的正規インターフェースを提供するためには、このようなストレージデバイスは、オペレーティングシステムなどのソフトウェアによってファイルの階層に頻繁に編成される。多くの場合、ファイルは、ストレージデバイス内でユーザーが操作できるデータ細分性の最小レベルを定義するが、種々のアプリケーションとオペレーティングシステムプロセスは、ファイル全体よりも低レベルの細分性でファイル内のデータに対し操作することができる。
幾つかのファイルベースのコンピュータシステムでは、メタデータとも呼ばれるファイルに関する種々のタイプの情報が、ファイル自体に加えて記憶される。しかしながら、一般的な従来のコンピュータシステムでは、メタデータのサポートは、少数の固定されたタイプのファイル属性に制限され、ファイル情報の追加が必要とされる場合に増補することができない。更に、メタデータにアクセスする手続きは、よりフレキシブルな手続きではなく、所与のファイルを識別し、次いでその関連するメタデータを検索することに限定される場合がある。
更に、複合コンピュータ環境では多数のアプリケーションが用意され、特定の機能を実行するために、その各々が、ファイルやストレージデバイスと相互作用する。場合によっては、幾つかのアプリケーションの各々は、複合多段階トランザクションの特定のステップを実行するように構成される。しかしながら、このようなアプリケーションは、相互の相互作用又は協調機能を制限する場合があり、トランザクション処理を協調させるためにシステムユーザー側でかなりの程度の介入を必要とする。
拡張可能なファイルシステムメタデータを生成するためのシステムと方法の種々の実施態様が開示される。1つの実施態様では、本システムは、データを格納するように構成されたストレージデバイスと、該ストレージデバイスへのアクセスを管理し、ファイルシステムコンテンツを格納するように構成されたファイルシステムとを含む。ファイルシステムは、ファイルシステムコンテンツアクセスイベントを検出し、そのファイルシステムコンテンツアクセスイベントの検出に応答して、メタデータレコードを生成するように更に構成され、該メタデータレコードは、拡張可能な自己記述データフォーマットで格納される。
システムの1つの特定の実装において、ファイルシステムコンテンツアクセスイベントを検出することは、以下に更に詳細に説明されるようにバンド内で実行される。システムの別の特定の実装においては、拡張可能な自己記述データフォーマットは、あるバージョンの拡張可能なマーク付け言語(XML)フォーマットに準拠することができる。
1つの実施態様において、ファイルシステムコンテンツを格納し、ファイルシステムコンテンツアクセスイベントを検出し、ファイルシステムコンテンツアクセスイベントの検出に応答してメタデータレコードを生成し、拡張可能な自己記述データフォーマットでメタデータレコードを格納することを含む方法も企図される。
本発明は種々の修正及び代替形態が可能であるが、本発明の特定の実施形態を図面において例として示し、本明細書で詳細に説明する。しかしながら、本明細書の図面及び詳細な説明は、開示される特定の形態に本発明を限定するものではなく、添付の請求項によって定義される本発明の精神及び範囲内に含まれる全ての修正形態、均等物、及び代替形態を保護するものである点を理解されたい。
(コンピュータシステムの概要)
ここで図1を参照すると、コンピュータシステムの1つの実施形態のブロック図が示されている。図示された実施形態では、システム10は、システム相互接続部40を介して複数のストレージデバイス30a、30bに結合された複数のホストデバイス20a、20bを含む。更に、ホストデバイス20bは、図示の実施形態ではシステムメモリ25を含む。説明を簡単にするために、参照番号の後に続く文字によって本明細書で示される要素は、参照番号だけで総称して参照する場合がある。例えば、ホストデバイス20a、20bとストレージデバイス30a、30bは、ホストデバイス20とストレージデバイス30として総称して参照する場合がある。
システム10の種々の実施形態では、ホストデバイス20は、ストレージデバイス30の1つ又はそれ以上に格納されたデータにアクセスするように構成される。1つの実施形態では、システム10は、例えば統合ストレージサーバとして単一のコンピュータシステム内に実装される。このような実施形態では、例えば、ホストデバイス20は、個々のプロセッサとすることができ、システムメモリ25は、スタティックRAM(SRAM)のようなキャッシュメモリとすることができ、ストレージデバイス30は、ハードディスクドライブ又は他の書き込み可能もしくは書き換え可能媒体などの大容量ストレージデバイスとすることができ、更にシステム相互接続部40は、周辺コンポーネントインターフェース(PCI)バスのような周辺バス相互接続部を含む。幾つかのこのような実施形態では、システム相互接続部40は、ホストデバイス20とストレージデバイス30の間の幾つかのタイプの相互接続部を含む。例えば、システム相互接続部40は、ホストデバイス20に結合されるように構成された1つ又はそれ以上のプロセッサバス(図示せず)、該プロセッサバスを1つ又はそれ以上の周辺バスに結合するように構成された1つ又はそれ以上のバスブリッジ(図示せず)、周辺バスをストレージデバイス30に結合するように構成された1つ又はそれ以上のストレージデバイスインターフェース(図示せず)を含む。ストレージデバイスインターフェースのタイプは、種々の実施形態において、例えば、小型コンピュータシステムインターフェース(SCSI)、ATAパケットインターフェース(ATAPI)、ファイアワイヤ、及び/又はユニバーサルシリアルバス(USB)を含むが、他のインターフェースタイプを含む多くの他の実施形態が可能であり企図される。
単一のコンピュータシステム内に実装されるシステム10の実施形態では、システム10は、1つ又はそれ以上の他のコンピュータシステム(図示せず)のためのデータストレージ要件の大部分を提供するように構成され、このような他のコンピュータシステムと通信するように構成される。他の実施形態では、システム10は、例えばストレージエリアネットワーク(SAN)などの分散ストレージシステムとして構成される。このような実施形態では、例えば、ホストデバイス20は、サーバシステムなどの個々のコンピュータシステムとすることができ、システムメモリ25は、ダイナミックRAM(DRAM)の1つ又はそれ以上のタイプから構成され、ストレージデバイス30は、各々が1つ又はそれ以上のハードディスクドライブ又は他のタイプのストレージを含むスタンドアロンのストレージノードとすることができ、更にシステム相互接続部40は、Ethernet(登録商標)(イーサネット(登録商標))又はFibre Channel(ファイバーチャネル)などの通信ネットワークとすることができる。システム10の分散ストレージ構成は、ストレージシステム容量及びホストとストレージデバイスとの間のデータ帯域幅のスケーリングを容易にすることができる。
更に別の実施形態では、システム10は、ハイブリッドストレージシステムとして構成され、ここでは一部のストレージデバイス30は、幾つかのホストデバイス20と同じコンピュータシステム内に統合され、他のストレージデバイス30は、ネットワークを介して他のホストデバイス20に結合されたスタンドアロンデバイスとして構成される。このようなハイブリッドストレージシステムでは、システム相互接続部40は、上述の周辺バスやネットワーク相互接続部などの種々の相互接続部メカニズムを含む。
2つのホストデバイス20と2つのストレージデバイス30が図1に示されているが、システム10は、別の実施形態ではこれらのタイプのデバイスの各々の任意の数を有してもよいことに留意されたい。またシステム10の幾つかの実施形態では、1つより多いシステムメモリ25のインスタンスを、例えば他のホストデバイス20又はストレージデバイス30で用いることができる。更に、幾つかの実施形態では、所与のシステムメモリ25は、ホストデバイス20やストレージデバイス30の外部に存在することができ、所与のホストデバイス20又はストレージデバイス30に直接結合し、或いはシステム相互接続部40を介して間接的に結合することができる。
システム10の多くの実施形態では、1つ又はそれ以上のホストデバイス20は、プログラム命令を実行して、データを参照するように構成され、これによって計算機能を実行する。幾つかの実施形態では、システムメモリ25は、このようなプログラム命令とデータを記憶するように構成されたコンピュータアクセス可能媒体の1つの実施形態とすることができる。しかし、他の実施形態では、プログラム命令及び/又はデータを別のタイプのコンピュータアクセス可能媒体上で受け取り、送り、或いは格納することができる。一般的に言うと、コンピュータアクセス可能媒体は、ストレージデバイス30としてシステム10内に含まれる磁気又は光学媒体(例えば、ディスク又はCD−ROM)などのストレージ媒体又はメモリ媒体を含む。コンピュータアクセス可能媒体はまた、システムメモリ25としてシステム10の幾つかの実施形態において含むRAM(例えばSDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの揮発性又は不揮発性媒体を含む。更に、コンピュータアクセス可能媒体は、システム相互接続部40としてシステム10の幾つかの実施形態内に含む、ネットワーク及び/又は無線リンクなどの通信媒体を介して伝達される電子、電磁、又はデジタル信号といった送信媒体又は信号を含む。
幾つかの実施形態では、上述のようなコンピュータアクセス可能媒体内に格納されたプログラム命令とデータは、種々のアプリケーションプログラムを実行するための環境を提供できるオペレーティングシステムを実装する。例えば、所与のホストデバイス20は、Microsoft Windows(登録商標)オペレーティングシステム、Unix(登録商標)/Linuxオペレーティングシステム、Apple Macintoshオペレーティングシステム、或いは別の適切なオペレーティングシステムのあるバージョンを実行するように構成される。更に、所与のホストデバイスは、多くの他の利用可能なアプリケーションの中から、ワードプロセッサ、ウェブブラウザ及び/又はサーバ、電子メールクライアント及び/又はサーバ、マルチメディアアプリケーションなどといったアプリケーションプログラムを実行するように構成される。
所与のホストデバイス20で実行中に、オペレーティングシステム又は所与のアプリケーションのいずれかは、所与のストレージデバイス30からロードされるか、又は所与のストレージデバイス30に格納されるデータに対する要求を生成することができる。例えば、オペレーティングシステムの一部又はアプリケーション自体に対応するコードは、所与のストレージデバイス30に格納することができ、従って、求められるオペレーションシステムルーチン又はアプリケーションプログラムの呼出しに応答して、対応するコードを検索して実行することができる。同様に、オペレーティングシステム又はアプリケーションの実行は、格納されるべきデータを作成することができる。
幾つかの実施形態では、ストレージデバイス30に格納されたデータの移動と処理は、ソフトウェアベースのストレージシステムによって管理することができる。1つのこのような実施形態が図2に示されており、コンテンツアウェアストレージシステム(content aware storage system)150を介して複数のストレージデバイス230A−Cにインターフェースするアプリケーションレイヤ100を示している。図2に示されている幾つかのモジュールは、ユーザー実行モード又は「ユーザースペース」で実行するように構成され、他のモジュールは、カーネル実行モード又は「カーネルスペース」で実行するように構成される。図示された実施形態では、アプリケーションレイヤ100は、複数のユーザースペースソフトウェアプロセス112A−Cを含む。プロセス112の各々が、API114A−Cの各々にアクセスするように、各プロセスは複数のアプリケーションプログラミングインターフェース(API)114A−Cを介してストレージシステム150にインターフェースする。ストレージシステム150は、API114Aを介したアプリケーションレイヤ100へのインターフェースを示すカーネルスペースストレージ管理システム200;API114Bを介したアプリケーションレイヤ100へのインターフェースを示すユーザースペースコンテンツ処理システム300;API114Cを介したアプリケーションレイヤ100へのインターフェースを示すユーザースペース問い合わせシステム400を含む。図示の実施形態では、ストレージ管理システム200は更に、ストレージデバイス230A−Cにインターフェースする。
幾つかの実施形態では、任意の数のプロセス112及び/又はストレージデバイス230を実装することができる。幾つかの実施形態では、コンテンツ処理システム300及び/又は問合せシステム400の全部又は一部をカーネルスペースで実装することができ、幾つかの実施形態では、カーネルスペースで実行するように構成されたプロセスが、API114又はカーネルスペースプロセスに固有の他のAPIを介してストレージシステム150にアクセスするように構成される。
1つの実施形態では、プロセス112の各々は、所与のユーザーアプリケーションに対応することができ、更に各々は、API114への呼出しを介してストレージデバイス230A−Cにアクセスするように構成される。API114は、プロセス112をストレージシステム150の種々の構成要素へアクセスさせる。例えば、1つの実施形態でAPI114は、所与のプロセス112が呼び出すことのできるストレージシステム150によって示される関数呼出しを含むことができ、他の実施形態ではAPI114は、プロセス間通信の他のタイプをサポートすることができる。1つの実施形態では、ストレージデバイス230は、図1のストレージデバイス30の例とすることができる。更に、1つの実施形態では、ストレージシステム150の構成要素のいずれか及び/又はプロセス112のいずれかは、例えば、図1のシステムメモリ25のようなコンピュータアクセス可能媒体内に格納されたプログラム命令とデータとして図1の1つ又はそれ以上のホストデバイス20上で実行されるように構成される。
図3から図9の説明と共に以下に更に詳細に説明されるように、ストレージシステム150は、種々のストレージ関連サービスを提供するように構成される。例えば、1つの実施形態では、ストレージ管理システム200は、ファイルシステムを使用してストレージデバイス230によって格納されたデータを編成するように構成され、種々のプロセス112は、階層ファイルとしてデータを記憶し、操作することができる。更に、ストレージシステム150は、格納されたデータへのアクセス及び/又は操作のオペレーションを監視し、このようなオペレーションのレコードを生成するように構成される。問合せシステム400は、ストレージデバイス230によって格納されたデータを問い合わせる、及びこのようなデータにアクセスするオペレーションのレコードを問い合わせるためのインターフェースをプロセス112に提供するように構成される。最後に、コンテンツ処理システム300は、ストレージ管理システム200のアクティビティを監視し、こうしたアクティビティの追加のレコードを生成するように構成される。以下に更に詳細に説明されるように、コンテンツ処理システム300は更に、このようなアクティビティの検出に応答して1つ又はそれ以上のアプリケーションを呼び出すように構成され、これにより、アプリケーションレイヤ100のアクティビティに直接(例えばプロセス112によるデータ要求に)基づくのではなく、ストレージ管理システム200のアクティビティに基づいてコンテンツ処理アクティビティを開始するためのメカニズムを提供する。ストレージシステム150の幾つかの実施形態では、コンテンツ処理システム300、問合せシステム400、又はこの両方のシステムを省くことができると同時に、ストレージ管理システム200によって提供されるサービスを維持することができる点が企図される。
(ストレージ管理システム及びファイルシステム)
上で述べたように、幾つかの実施形態では、ストレージ管理システム200は、ストレージデバイス230によって提供されるストレージスペースをファイルに編成するためのデータ構造と制御構造を提供することができる。種々の実施形態では、データ構造は、例えば、各ファイルのアイデンティティ、ストレージデバイス230内の位置(例えば、特定のストレージデバイス内の特定の物理位置へのマッピング)などの情報、以下に更に詳細に説明されるような各ファイルについての他の情報を記憶するように構成された1つ又はそれ以上のテーブルを含む。また種々の実施形態では、制御構造は、例えばファイルアイデンティティの変更やファイルコンテンツの修正のための関数呼出しなどのファイルを操作するための実行可能なルーチンを含む。総称して、これらのデータと制御構造を、本明細書ではファイルシステムと呼び、所与のファイルシステムによって実施される特定のデータフォーマットとプロトコルは、本明細書ではファイルシステムのフォーマットと呼ぶことがある。
幾つかの実施形態では、ストレージデバイス230に格納されたデータへのいずれかのアクセスがファイルシステムの制御とデータ構造によって管理されるように、ファイルシステムをオペレーティングシステムに統合することができる。種々のオペレーティングシステムは、種々のフォーマットを使用して種々の固有ファイルシステムを実装することができるが、幾つかの実施形態では、所与のオペレーティングシステムは、他のオペレーティングシステムに固有のファイルシステムフォーマットを含む、複数の異なるタイプのファイルシステムフォーマットをサポートするファイルシステムを含む。このような実施形態では、ファイルシステムによってサポートされる種々のファイルシステムフォーマットは、本明細書ではローカルファイルシステムと呼ぶことができる。更に、幾つかの実施形態では、ファイルシステムは、図3に示されるように階層状に配列された複数レイヤの機能を使用して実装できる。
図3は、ストレージ管理システム200の1つの実施形態を示す。図示の実施形態では、ストレージ管理システムは、1つ又はそれ以上のデバイスドライバ224とインターフェースするように構成されたファイルシステム205を含み、該デバイスドライバはストレージデバイス230にインターフェースするように構成される。図2のストレージシステム150内で図示されたように、ストレージ管理システム200の構成要素は、カーネルスペース内で実行するように構成されるが、幾つかの実施形態では、ストレージ管理システム200の一部の構成要素は、ユーザースペース内で実行するように構成されることも意図される。同様に、1つの実施形態では、ストレージ管理システム200の構成要素のいずれかは、例えば図1のシステムメモリ25のようなコンピュータアクセス可能媒体内に記憶されたプログラム命令とデータのように、図1の1つ又はそれ以上のホストデバイス20上で実行するよう構成される。
図1のシステム10に関して上述されたように、所与のホストデバイス20は、所与のストレージデバイス30とは異なるコンピュータシステムに存在することができ、ネットワークを介して当該ストレージデバイスにアクセスできる。同様にストレージ管理システム200に関して、1つの実施形態において、プロセス112Aのような所与のプロセスはリモートで実行することができ、ネットワークを介してストレージデバイス230にアクセスすることができる。図示された実施形態では、ファイルシステム205は、リモートプロセスによるファイルシステムへのアクセスをサポートするためにネットワークプロトコル225を含む。幾つかの実施形態では、ネットワークプロトコル225は、例えばネットワークファイルシステム(NFS)プロトコル又は共通インターネットファイルシステム(CIFS)プロトコルに対するサポートを含むが、いずれかの適切なネットワークプロトコルを用いてもよく、複数のこのようなプロトコルを幾つかの実施形態においてサポートすることができる。
ファイルシステム205は、複数のローカルファイルシステムをサポートするよう構成される。図示された実施形態では、ファイルシステム205は、VERITAS(VxFS)フォーマットローカルファイルシステム240A、Berkeley高速ファイルシステム(FFS)フォーマットローカルファイシステム240B、プロプラエタリ(X)フォーマットローカルファイルシステム240Xを含む。しかしながら、他の実施形態において、いずれかの数のローカルファイルファイルシステムフォーマット又はこれらの組合せをファイルシステム205によってサポートすることができる。種々のローカルファイルシステム240への共通インターフェースを提供するために、ファイルシステム205は、仮想ファイルシステム222を含む。1つの実施形態では、仮想ファイルシステム222は、プロセス112により生じるファイルシステムオペレーションを各オペレーションによってターゲットされた特定のローカルファイルシステム240に適用可能なフォーマットに翻訳するように構成される。更に、図示された実施形態ではストレージ管理システム200は、ローカルファイルシステム240がストレージデバイス230にアクセスできるデバイスドライバ224を含む。デバイスドライバ224は、ストレージデバイス230によって用いられるインターフェースのタイプに固有のデータ転送プロトコルを実装する。例えば、1つの実施形態では、デバイスドライバ224は、SCSI及びATAPIインターフェース全体に渡るデータの転送をサポートすることができるが、他の実施形態では、デバイスドライバ224は、インターフェースの他のタイプ及び組合せをサポートすることができる。
図示された実施形態では、ファイルシステム205はまたフィルタドライバ221を含む。幾つかの実施形態では、フィルタドライバ221は、ファイルシステム205に入力する各オペレーションを監視し、オペレーションの特定のタイプを検出した後、追加のオペレーションを実行し、或いは検出されたオペレーションの動作を変更するように構成される。例えば、1つの実施形態では、フィルタドライバ221は、複数の書き込みオペレーションを単一の書き込みオペレーションに統合してファイルシステム性能を向上させるように構成される。別の実施形態では、フィルタドライバ221は、当該ファイルへの書き込みを検出した後にファイルのシグネチャを計算するように構成される。更に別の実施形態では、フィルタドライバ221は、以下に更に詳細に説明するように、これらのファイルに対するオペレーションの幾つかの種類を検出することに続いて、特定のファイルに関連したレコードなどの情報を記憶するように構成される。幾つかの実施形態では、フィルタドライバ221が具体的には言及しない他のフィルタオペレーションを含む上述のオペレーションの1つ又はそれ以上の組合せを実装するように構成される。
ファイルシステムオペレーションが要求又は処理されるときに、該オペレーションを検出するように構成されているフィルタドライバ221の実施形態は、このようなオペレーションの「バンド内」検出を実行する、ということができる。或いは、このような検出は、検出されたオペレーション又はイベントの発生に対して同期している、ということができる。幾つかの実施形態では、オペレーションのバンド内検出に応答して取られる処理動作は、オペレーションが終了される方法に影響を与える可能性がある。例えば、ファイル読み取りオペレーションのバンド内検出は、オペレーションのソースが要求されたファイルにアクセスするのに十分な特権が与えられていない場合には、オペレーションの取消しを生じることがある。幾つかの実施形態では、オペレーションのバンド内検出は、オペレーション自体の終了にどのような影響をも及ぼすことはないが、以下に説明されるようにメタデータレコードで検出されたオペレーションの発生を記録するような追加のオペレーションを生成することができる。
逆に、ファイルシステムオペレーション又はイベントは、この発生の後に続いて検出してもよく、その結果、オペレーション又はイベントが既に終了した後に検出を行うようにすることができる。このような検出は、「バンド外」、又は検出されたオペレーション又はイベントに対して非同期である、ということができる。例えば、ユーザープロセス112は、ファイルを定期的にチェックしてファイルの長さを求めることができる。ファイル長は、ユーザープロセス112による最後のチェック以降いつでも変更することができるが、チェックは、ファイルの長さを変更したオペレーションに対してバンド外とすることができる。場合によっては、バンド外検出が幾つかのイベントの検出に失敗する可能性がある。前記の例を参照すると、ファイル長は、ユーザープロセス112による最後のチェック以降に数回変更することができるが、最後の変更だけを検出してもよい。
オペレーション又はイベントはバンド内で検出することができるが、このような検出に応答して取られる動作は、検出されたオペレーションの終了の前後のいずれかで行うことができる点に留意されたい。前記の例を参照すると、1つの実施形態では、チェックされたファイルの長さを修正するための各オペレーションは、バンド内で検出して記録することができる。ユーザープロセス112は、レコードを定期的に検査してファイルの長さを求めるように構成される。長さ修正オペレーションが検出されバンド内で記録されたので、ユーザープロセス112は、このような各オペレーションを考慮に入れることができ、これらのオペレーションの発生後でも良好に行うことができる。
フィルタドライバ221はファイルシステム205の一部であり、ユーザースペース内のアプリケーション又はプロセスではない点に留意されたい。従って、フィルタドライバ221は、ユーザースペース210内のアプリケーションやプロセスとは無関係に動作するように構成される。代替的に、又は上記に加えて、フィルタドライバ221は、ユーザースペース210内のアプリケーション又はプロセスから受け取られた要求に応じてオペレーションを実行するように構成される。
幾つかの実施形態では、カーネルスペース220は、ユーザースペースプロセス112に類似したストレージデバイス230へのアクセスを生成するプロセス(図示せず)を含む点に更に留意されたい。このような実施形態では、カーネルスペース220で実行するプロセスは、ユーザースペースプロセス112に類似した方法でカーネルモードAPI(図示せず)を介してファイルシステム205にアクセスするように構成される。従って、幾つかの実施形態では、ストレージデバイス230への全てのアクセスは、アクセスオペレーションを生じるプロセスのタイプ又はスペースに関わらずファイルシステム205によって処理することができる。
ストレージ管理システム200とファイルシステム205の多数の別の実施形態が可能であり企図される。例えば、ファイルシステム205は、種々の数及びフォーマットのローカルファイルシステム240をサポートし、或いは単一のローカルファイルシステム240だけをサポートすることができる。幾つかの実施形態では、ネットワークプロトコル225は省略することができ、或いはファイルシステム205の外部のストレージ管理システム200の一部に統合してもよい。同様に、幾つかの実施形態では、例えば単一のローカルファイルシステム240だけが使用中である場合、仮想ファイルシステム222は省略又は無効にすることができる。更に、幾つかの実施形態では、フィルタドライバ221は、ファイルシステム205の異なるレイヤ内に実装される。例えば、1つの実施形態では、フィルタドライバ221は、仮想ファイルシステム222に統合することができ、別の実施形態では、フィルタドライバ221のインスタンスをローカルファイルシステム240の各々に実装することができる。
ファイル及びメタデータ
上述のように、ファイルシステム205は、ストレージデバイス230に格納された複数のファイルへのアクセスを管理するように構成される。多くの実施形態では、各格納ファイルは、各ファイルを他のファイルと区別するためにファイルシステムにより使用される関連するアイデンティティを有することができる。ファイルシステム205の1つの実施形態では、ファイルのアイデンティティをファイル名とすることができ、例えば「filename.txt」などの文字列を含む。しかしながら、フォルダ又はディレクトリの階層などのファイル階層を実施するファイルシステム205の実施形態においては、ファイル階層の全部又は一部をファイル・アイデンティティに含めることができる。例えば、所与のファイル名の「file1.txt」は、ディレクトリ「users」に存在するディレクトリ「smith」内に存在することができる。ディレクトリ「users」は、ファイルシステム205内のトップレベルすなわちルートレベルのディレクトリであるディレクトリ「test1」内に存在することができる。幾つかの実施形態では、ファイルシステム205は、高レベルのディレクトリがルートディレクトリを含まない場合に、全てのルートレベルのディレクトリを含むように単一の「ルートディレクトリ(root directory)」を定義できる。他の実施形態では、複数のトップレベルのディレクトリは、高レベルのディレクトリがどのようなトップレベルのディレクトリも含まないように共存することができる。所与のファイルが位置付けられる特定のフォルダ又はディレクトリの名前を、本明細書では所与のファイルのパス又はパスネームと呼ぶことができる。
ファイル階層を実装するファイルシステム205の幾つかの実施形態では、所与のファイルのアイデンティティが、ファイルのパス並びにファイル名に各ディレクトリをリストすることによって指定される。上記で与えられた例を参照すると、ファイル名「file1.txt」の所与のインスタンスのアイデンティティを、「/test1/users/smith/file1.txt」のように指定することができる。ファイルシステム205の幾つかの実施形態において、ファイル名だけでは所与のファイルを一意的に識別するのは不十分な可能性があり、パス情報を含む完全指定のファイル・アイデンティティは、所与のファイルを一意的に識別するのに十分とすることができる点に留意されたい。例えば、上述のファイルと同じファイル名を共用するにも関わらず、そのパスによって明確に区別できる、「/test2/users/smith/file1.txt」として識別されるファイルが存在することができる。パスとファイル名情報を使用して所与のファイル・アイデンティティを表す別の方法が可能であり企図される点に留意されたい。例えば、種々の文字を用いてディレクトリ/フォルダ名とファイル名を区切ることができ、或いはディレクトリ/フォルダ名とファイル名を異なる順序で指定してもよい。
ファイルシステム205によって管理されるファイルは、総称してファイルデータと呼ぶことができるアプリケーションデータ又はプログラム情報を、幾つかの符号化フォーマットのいずれかで記憶する。例えば、所与のファイルは、ASCII符号化フォーマットのプレーンテキスト、又は特定のワードプロセッサ又は表計算符号化フォーマットなどのプロプラエタリアプリケーションフォーマットのデータを記憶する。更に、所与のファイルは、二進フォーマットでビデオ又はオーディオデータ或いは実行可能なプログラム命令を記憶する。データと符号化フォーマットの他の多くのタイプや、データと符号化フォーマットの組合せが、ファイルデータとしてファイルで使用する点が企図される。
ストレージデバイス、該ストレージデバイス上に格納された種々のファイル、上述のようなファイルのファイルデータへのアクセスを管理することに加えて、幾つかの実施形態では、ファイルシステム205は、1つ又はそれ以上の所与のファイルに対応する情報を格納するように構成される。該情報は、本明細書ではメタデータと呼ぶことができる。一般的に言えば、メタデータは、ファイルに関連付けられた情報のあらゆるタイプを含む。種々の実施形態では、メタデータは、(限定ではないが)ファイル・アイデンティティ、サイズ、所有権、ファイルアクセス許可などの情報を含む。メタデータはまた、以下に更に詳細に説明されるようにファイルシステムオペレーションに対応するレコードなどの自由形式又はユーザー定義のデータを含む。幾つかの実施形態では、メタデータに含まれる情報は、例えばファイルシステム205のベンダー又はインテグレーターによって定義されたメタデータタイプの集まりとしてファイルシステム205に事前定義する(すなわちハードコードされる)。他の実施形態では、ファイルシステム205は、オペレーション中にメタデータ定義の新しいタイプを生成するように構成される。更に別の実施形態では、ファイルシステム205の外部にある1つ又はそれ以上のアプリケーションプロセス112は、例えばその目的のために定義されたAPI114のインスタンスを介してファイルシステム205によって管理される新しいメタデータを定義する。メタデータを定義するこのような技術の組合せを幾つかの実施形態で利用できる。定義されているがファイルに対応するメタデータや、ファイルのデータコンテンツは、本明細書では総称してファイルシステムコンテンツと呼ぶことができる。
図4は、ファイル及び関連するメタデータを格納するように構成されたファイルシステムの1つの実施形態を示す。図4に示されるファイルシステム205の実施形態は、図3の実施形態に示された要素を含むが、簡単にするためにこれらの要素の一部は示していない。図示された実施形態では、ファイルシステム205は、フィルタドライバ221、任意の数のファイル250a−n、ディレクトリ255、ファイル250a−nの各々に関連付けられたそれぞれの名前付きストリーム260a−n、ディレクトリ255に関連付けられたそれぞれの名前付きのストリーム260、イベントログ270を含む。ファイル250a−n又は名前付きストリーム260a−nの1つの汎用インスタンスは、それぞれファイル250又は名前付きストリーム260と呼ぶことができ、ファイル250a−n及び名前付きストリーム260a−nは、それぞれ総称してファイル250及び名前付きストリーム260と呼ぶことができる点に留意されたい。上述のように、ファイル250及び名前付きストリーム260は、総称してファイルシステムコンテンツと呼ぶことができる。幾つかの実施形態では、ディレクトリ255はまた、ファイルシステムコンテンツに含めることもできる。
ファイル250は、ファイルシステム205によって管理されるファイルを表すことができ、上述のようにデータとプログラム命令の種々のタイプを格納するように種々の実施形態において構成される。ファイルシステム205の階層的実施において、1つ又はそれ以上のファイル250を、ディレクトリ255(フォルダと呼ぶこともできる)に含めることができる。種々の実施形態では、任意の数のディレクトリ255を提供することができ、一部のディレクトリ255は、他のディレクトリ255とファイル250を階層的に含むように構成される。図示の実施形態では、ファイル250とディレクトリ255の各々は、対応する名前付きストリーム260を有する。名前付きストリーム260の各々は、その対応するファイルに関係するメタデータを格納するように構成される。ファイル250、ディレクトリ255、名前付きストリーム260は、図2のストレージデバイス230などの1つ又はそれ以上のストレージデバイス上に物理的に格納される。しかしながら、例証の目的のためにファイル250、ディレクトリ255、名前付きストリーム260は、概念的にファイルシステム205内に存在するように示されている。また、幾つかの実施形態では、ディレクトリ255はメタデータ生成の観点からファイル250に類似のものとする点が企図され、このような実施形態では、以下の説明におけるファイル250への言及は、ディレクトリ255にも適用できる点を理解されたい。
幾つかの実施形態では、フィルタドライバ221は、所与のファイル250に格納されたファイルデータにアクセスするよう構成される。例えば、フィルタドライバ221は、ファイルシステム205によって受け取られた読み取り及び/又は書き込みオペレーションを検出するように構成され、これに応答して、受け取られたオペレーションに対応する所与のファイル250からファイルデータを読み取り、又は該所与のファイルに書き込むことができる。幾つかの実施形態では、フィルタドライバ221は、所与のファイル250に対応するバンド内メタデータを生成し、対応する名前付きストリーム260内に生成されたメタデータを格納するように構成される。例えば、所与のファイル250に向けられたファイル書き込みオペレーションを検出すると、フィルタドライバ221は、所与のファイル250の最後の修正時間に対応するメタデータを更新して、名前付きストリーム260内にこの更新されたメタデータを格納するように構成される。また、幾つかの実施形態では、フィルタドライバ221は、特定のアプリケーションに代わって、指定されたファイルに対応するメタデータを検索するように構成してもよい。
メタデータは、図2のプロセス112によって開始される種々のタイプのファイルシステムアクティビティに応答して生成される。幾つかの実施形態では、生成されたメタデータは、任意の複雑さのレコードを含む。例えば、1つの実施形態では、フィルタドライバ221は、ファイル作成、削除、リネームなどのファイル操作オペレーション、及び/又は複写オペレーション、さらにファイル読み取り及び書き込みオペレーションの種々のタイプを検出するように構成される。幾つかの実施形態では、このようなオペレーションは、上述のようにバンド内で検出する。特定のファイルオペレーションを検出した後で、フィルタドライバ221は、オペレーションのレコードを生成し、オペレーションによってターゲットされたファイル250のメタデータとして適切な名前付きストリーム260内にそのレコードを格納するように構成される。
更に一般的には、ファイルデータ又はメタデータの読み取り又は書き込みなどのファイルシステムコンテンツのいずれかの態様にアクセスするいずれかのオペレーションは、ファイルシステムコンテンツアクセスイベントと呼ぶことができる。1つの実施形態では、フィルタドライバ221は、ファイルシステムコンテンツアクセスイベントの検出に応答してメタデータレコードを生成するように構成される。幾つかの実施形態では、アクセスイベントターゲッティングメタデータ自体が、追加のメタデータを生成する。以下に更に詳細に説明するように、図示された実施形態では、イベントログ270は、追加のメタデータがイベント検出に応答して特定の名前付きストリーム260内に格納されるかどうかに関係なく、検出されたファイルシステムコンテンツアクセスイベントのレコードを格納するように構成される。
記憶されたメタデータレコードは、種々の実施形態において、例えば、オペレーションを生成するプロセスのアイデンティティ、ファイル・アイデンティティ、ファイルタイプ、ファイルサイズ、ファイル所有者、及び/又はファイル許可などのファイル250及び検出されたオペレーションについての種々の情報を含む。1つの実施形態では、レコードは、ファイル250のコンテンツを示すファイルシグネチャを含む。ファイルシグネチャは、ファイルコンテンツの全て又は一部のハッシュタイプ関数とすることができ、ファイルコンテンツの僅かな相違が定量的に別個のファイルシグネチャをもたらすプロパティを有する。例えば、ファイルシグネチャは、僅かに単一のビットだけファイルコンテンツが相違する別のファイル用シグネチャを生じることができるメッセージダイジェスト5(MD5)アルゴリズムを用いることができるが、どのような適切なシグネチャ生成アルゴリズムを用いてもよいことは企図される。レコードはまた、具体的には列挙しない追加の情報を含む。
1つの実施形態では、特定のファイルオペレーションの検出に続いてフィルタドライバ221により格納されるメタデータレコードが、関連するデータフィールドの重要度を記述するタグと共にデータフィールドを含むフォーマットで生成し、格納する。このようなフォーマットは、「自己記述的な」データフォーマットと呼ぶことができる。例えば、メタデータレコード内のデータ要素は、一般的構文:
<descriptive_tag>data element</descriptive_tag>
を有するこのようなタグフィールドによって区切ることができる。ここで、「descriptvie_tag」区切り子は、「data element」フィールドのある態様を記述することができ、これによりメタデータレコード内の種々のデータ要素を構成する働きをする。種々の実施形態では、自己記述データフォーマットは、タグをデータ要素と区別するための種々の規定を含む種々の構文のいずれかを用いることができる。
自己記述データフォーマットはまた、幾つかの実施形態では拡張可能である。すなわち、データフォーマットは、必要に応じて追加の構造要素を含むように拡張する。例えば、非拡張可能なフォーマットは、表形式の行と列のデータフォーマット又はタグフィールドの数と種類が固定されているフォーマットなどといった、データ要素が従う必要のある固定構造を指定する。逆に、1つの実施形態では、拡張可能な自己記述データフォーマットは、データを区切り且つ構成されるのに使用される任意に定義されたタグフィールドの任意の数を考慮する。別の実施形態では、拡張可能な自己記述データフォーマットは、所与のデータ要素を指定するのに使用される構文の修正を可能にする。幾つかの実施形態では、拡張可能な自己記述データフォーマットは、データが生成又は使用されている間ユーザー又はアプリケーションにより拡張可能である。
1つの実施形態では、拡張可能なマーク付け言語(XML)フォーマット、又はXMLのいずれかのバージョンに準拠したいずれかのデータフォーマットは、メタデータレコードを格納するための拡張可能な自己記述フォーマットとして使用できるが、他の実施形態では、拡張可能或いは自己記述式ではないフォーマットを含むどのような適切なフォーマットを使用してもよいことが企図される。XMLフォーマットレコードは、記録される所要のメタデータに従ってレコードフィールドの任意の定義を可能にする。XMLフォーマットレコードの1つの例は以下の通りである。
<record sequence="1">
<path>/test1/foo.pdf</path>
<type>applciation/pdr</type>
<user id=1598>username</user>
<group id=119>groupname</group>
<perm>rw-r--r--</perm>
<md5>d41d8cd98f00b204e9800998ecf8427e</md5>
<size>0</size>
</record>
このようなレコードは、例えばファイル作成オペレーションに続いて、ファイル・アイデンティティ「/test1/foo.pdf」を有するファイル(例えばファイル250a)に関連した名前付きストリーム(例えば名前付きストリーム260a)に付加する。この場合、「record sequence」フィールドに関連した数字は、このレコードがファイル250aに関連した第1レコードであることを示す。「path」フィールドは、ファイル・アイデンティティを含み、「type」フィールドは、1つの実施形態ではファイル作成オペレーションを出すプロセスによって提供することができ、他の実施形態では、例えばファイル名の拡張又はファイル内のヘッダ情報から判定するファイルタイプを示す。「user id」フィールドは、ファイル作成オペレーションを出すプロセスに関連したユーザーの数字のユーザーIDと文字のユーザー名の両方を記録し、「group id」フィールドは、そのユーザーの数字のグループIDと文字のグループ名の両方を記録する。「perm」フィールドは、ファイルシステム205及び/又はオペレーティングシステムに固有のフォーマットでファイル250aに関連するファイル許可を記録する。「md5」フィールドは、ファイルコンテンツに対応するMD5シグネチャを記録し、「size」フィールドは、バイト単位のファイル250aの長さを記録する。他の実施形態では、フィルタドライバ221は、レコードが、いくつかのフィールドと、種々の定義とコンテンツを有するフィールドとを含む場合の検出されたオペレーションに対応するレコードを格納する点が企図される。幾つかの実施形態では、フィルタドライバ221は、ファイルへの読み取りオペレーションがベースとなるファイルデータフォーマットに関係なくXMLデータを返すことができるように、XMLフォーマット内の所与のファイル250から読み取られたデータを包含できる。同様に、幾つかの実施形態では、フィルタドライバ221は、所与のファイル250に書き込まれるXMLフォーマットデータを受け取るように構成される。このような実施形態では、フィルタドライバ221は、ファイルデータを所与のファイル250に書き込む前にXMLフォーマッティングを取り除くように構成される。
幾つかの実施形態では、メタデータは、名前付きストリームではない構造内に格納される点に留意されたい。例えば、1つの実施形態では、1つ又はそれ以上のファイルに対応するメタデータは、データベースフォーマット又は別のフォーマットの別のファイルに格納される。また、幾つかの実施形態では、ファイルシステム205の他のソフトウェアモジュール又は構成要素は、メタデータの生成、格納、及び/又は検索を行うように構成されることも企図される。例えば、フィルタドライバ221のメタデータ関数は、別のソフトウェアモジュールに組み込むか、該モジュールにより複製する。
図示された実施形態では、ファイルシステム205はイベントログ270を含む。イベントログ270は、名前付きストリーム260に類似した名前付きストリームとするが、特定のファイルに関連するのではなく、ファイルシステム205に直接関連付けることができる。幾つかの実施形態では、ファイルシステム205は、1つだけのイベントログ270を含むことができ、他の実施形態では、1つより多いイベントログ270を設けることができる。例えば、図2に示されたような複数のローカルファイルシステム240を含むファイルシステム205の1つの実施形態では、1つのローカルファイルシステム240につき1つの履歴ストリームを設けることができる。
幾つかの実施形態では、フィルタドライバ221は、ファイルシステムオペレーション又はイベントの検出に応答して、イベントログ270にメタデータレコードを格納するように構成される。例えば、特定のファイル250に向けられた読み取り又は書き込みオペレーションを検出することができ、続いてフィルタドライバ221は、イベントログ270にオペレーションを示すレコードを格納する。幾つかの実施形態では、フィルタドライバ221は、対応するメタデータレコードも同様に名前付きストリーム260内に格納されたかどうかに関わらず、イベントログ270内にメタデータレコードを格納するように構成される。幾つかの実施形態では、イベントログ270は、全ての検出されたオペレーションと、ファイルシステム205内で起こっているイベントの集中履歴として機能する。
名前付きストリーム260内に格納されたレコードと同様に、イベントログ270にフィルタドライバ221によって格納されたレコードは、1つの実施形態では、拡張可能なマーク付け言語(XML)フォーマットのような拡張可能な自己記述データフォーマットで生成するが、他の実施形態において、いずれかの適切なフォーマットを使用できることも企図される。一例として、「/test1/foo.pdf」という名前の付いた所与のファイル250aを作成して修正し、次いでファイルシステム205のオペレーションの途中でファイル250b「/test1/destination.pdf」にリネームする。1つの実施形態では、イベントログ270は、リネームオペレーションに続く以下の例のレコードを含む。
<recrod>
<op>create</op>
<path>/test1/foo.pdf</path>
</record>
<record>
<op>modify</op>
<path>test1/foo.pdf</path>
</record>
<recrod>
<op>rename</op>
<path>/test1/destination.pdf<path>
<oldpath>/test1/foo.pdf<oldpath>
</record>
この例では、各レコードの「op」フィールドは、実行されたオペレーションを示し、「path」フィールドは、そこで実行されたファイル250aのファイル・アイデンティティを示す。ファイルリネームオペレーションの場合、「path」フィールドは、リネームオペレーションの宛先ファイル250bのファイル・アイデンティティを示し、「oldpath」フィールドは、ソースファイル250aのファイル・アイデンティティを示す。他の実施形態では、フィルタドライバ221は、いくつかのフィールドや種々の宛先とコンテンツを有するフィールドを含むレコードをイベントログ270内に格納する。
メタデータ生成の上記の説明は、図5に示されるフローチャートに更に全体的に示されている。図1から図5をまとめて参照すると、ファイルデータ又はメタデータのようなファイルシステムコンテンツが格納されるオペレーションがブロック500で始まる。1つの実施形態では、ファイルシステムコンテンツは、ファイルデータとメタデータの両方を含む。ファイルシステムコンテンツの格納に続いて、ファイルシステムコンテンツアクセスイベントが検出される(ブロック502)。1つの実施形態では、ファイルシステムコンテンツアクセスイベントは、例えば上述のようなフィルタドライバ221によってバンド内で検出する。幾つかの実施形態では、ファイルシステムコンテンツの最初の格納は、それ自体が検出可能なファイルシステムコンテンツアクセスイベントである。例えば、ファイル作成オペレーションは、ステップ502で検出可能なファイルシステムコンテンツアクセスイベントとする。
ファイルシステムコンテンツアクセスイベントの検出に応答して、メタデータレコードが生成される(ブロック504)。例えば、ファイル・アイデンティティ、ファイル所有権、アクセスイベントを生成するプロセスのアイデンティティなどといった、所与のファイルにアクセスするためのオペレーションに関係する種々のメタデータ要素を集めることができる。
メタデータレコードの生成に続いて、メタデータレコードは、拡張可能な自己記述データフォーマットで格納される(ブロック506)。1つの実施形態では、データフォーマットは、あるバージョンのXMLフォーマットに準拠する。種々の実施形態では、メタデータレコードは、名前付きストリーム260の1つなどの所与のファイルに関連した名前付きストリーム内に、或いはイベントログ270のようなイベントログ内に格納する。
コンテンツ処理システム
説明されたように、幾つかの実施形態では、ストレージシステムは、種々の検出されたファイルシステムオペレーション又はイベントに応答して、バンド内メタデータを生成するように構成される。このようなオペレーション又はイベントは、場合によっては種々のアプリケーションプロセスの実行の結果として発生する。例えば、所与のアプリケーションにより、対応するメタデータレコードを生成する種々の方法(開始、終了、読み取り、書き込み、複写、リネーム、又はファイルアクティビティの他のいずれかのタイプのような)のいずれかでファイルを操作できるようになる。このような実施形態では、結果として生じたメタデータレコードは、所与のアプリケーション又はプロセスによって生成されたファイルシステムアクティビティのシステマティック追跡を可能にし、このような追跡は、特異性の任意の程度まで実行することができ、そのアプリケーションに対しトランスペアレントとする。
場合によっては、多数のアプリケーションが複合ヘテロジニアスデータ処理システムの一部としてストレージシステム150と相互作用する。例えば企業は、在庫と生産を管理するためのデータベースアプリケーション、請求と受領を追跡するための会計アプリケーション、四半期報告書を作成するための財務アプリケーション、人員の詳細を識別するための人事アプリケーションを使用する。追加又は種々のアプリケーションを種々の実施形態で設けることができる。
これらのアプリケーションの幾つかは、同じアプリケーションのバージョンとすることができ(例えば、会計と財務は、共通又は関係するアプリケーションを使用する)、或いは密結合アプリケーションとすることができ、すなわち直接通信し協調する共通APIを共用することなどによって、互いの存在及びデータにほぼ気付くことができる。例えば、請求書を処理するときに、会計アプリケーションは、予算を更新するよう財務アプリケーションに直接通知する。他のアプリケーションは、種々のベンダーによって提供することができ、疎結合だけであってもよく、すなわち他のアプリケーションは共通データフォーマットを共用するが、直接互いのオペレーションと通信して協調することが制限された機能を有する。例えば、財務アプリケーションは、ユーザーの介入に応答して、人事アプリケーションによって生成された給与と諸手当情報をインポート可能とするが、このようなある介入なしには当該情報を直接要求し、受け取ることはできない。最後に、場合によっては、幾つかのアプリケーションは、データの共用又は直接相互作用することができない、完全に互換性のないものとする。
幾つかの複合企業オペレーションは、1つだけではないが、幾つかのアプリケーションを伴うことができ、その全ては必ずしも互いに密結合である訳ではない可能性がある。トランザクションと呼ぶことができるこのようなオペレーションは、特定の順序或いは特定のイベントに応答して、1つ又はそれ以上のアプリケーションによって引き受けられる一連のオペレーションを含む。トランザクションを含む一連のオペレーションはまた、トランザクションによって実施されるプロセス又は手続きと呼ぶことができ、利用可能な種々のアプリケーションの能力に従って任意に定義する。
トランザクションのステータスは、単一構成アプリケーションのアクティビティからは明らかにならず、逆にトランザクションは、トランザクションを定義するプロセスに関する情報と共に得られた全ての関連アプリケーションのアクティビティの機能である。例えば、所与の企業で定義された手続きに応じて、購入注文の処理は、幾つかのステップを含む。最初に、専用のアプリケーション又は電子メールインターフェースなどを介して購入注文を入力する。入力すると、依頼者のアイデンティティと権限が、人事アプリケーションを使用して依頼者が適切なシグネチャ権限を有する従業員であることを検証するなどによって確認される。続いて、財務アプリケーションを使用することを含む財務承認を取得し、要求が注文を要求する個人又は組織の予算内であることを検証する。これらの種々のステップの結果と企業ポリシーの複雑さに応じて、管理承認のような付加的な検証を得ることができる。全ての要件が満たされると、注文をベンダーに送信することができ、購入注文トランザクションプロセスが終了する。
複合トランザクションをサポートして機能するアプリケーションのいずれかは、ファイルシステムコンテンツが操作されるときにストレージシステム150内のアクティビティを生成する。アクティビティに対応するファイルデータ及び/又はメタデータレコードを含むファイルシステムコンテンツは、上述のようなアクティビティに応答して作成する。しかしながら、上述のように、場合によってはその定義されたプロセスを通じた所与のトランザクションの進行は、そのアクティビティに対応するファイルシステムコンテンツに反映されるような所与のアプリケーションのアクティビティからは明らかにならないことがある。例えば、人事アプリケーションは、個人データを反映できるが、予算データは反映できない。従って、人事アプリケーションに問合せることにより、所与の個人が特定の購入のための適切なシグネチャ権限を有することを検証することになり、その問合せの結果をファイルシステムコンテンツに示すことができる。しかしながら、人事アプリケーションは、購入のための十分な予算が存在するかどうかを判断することはできない。実際、場合によっては人事アプリケーションのような何らかのアプリケーションは、一般的に、そのオペレーションの広範なトランザクションコンテンツには気付かない可能性がある。すなわち、アプリケーションは、所与の問合せが、複数のアプリケーションに及ぶ可能性のある所与のトランザクションのプロセスの一部であるかどうか識別することができない場合がある。
他のアプリケーションと直接相互作用可能な所与のトランザクションに場合によっては加わることのできる各アプリケーションを構成することは、困難であるか又は実際的でない可能性がある。例えば、1つ又はそれ以上のアプリケーションの機能が外部メーカーによって固定されている場合、このような構成を実行することができない場合がある。図2に示された実施形態では、ストレージシステム150は、コンテンツ処理システム300を含み、該コンテンツ処理システム300は種々の実施形態において、ストレージ管理システム200によって格納されるファイルシステムコンテンツを監視し、このような監視に基づいて追加のメタデータを生成し、更にこのような監視に応答してアプリケーションを呼び出すように構成される。幾つかの実施形態では、コンテンツ処理システム300は、その構成アプリケーションに気付くことのできない複合トランザクションを協調又は監視するように構成される。
コンテンツ処理システム300の1つの実施形態が図6に示されている。図示の実施形態では、コンテンツ処理システム300は、図4に示されたファイルシステム205の実施形態と共に示されている。コンテンツ処理システム300は、単にコンテンツプロセッサ330と呼ぶこともできる、複数のコンテンツタイプ特定プロセッサ330a−cと相互作用するように構成されたコンテンツ処理デーモン320を含む。コンテンツ処理デーモン320は、ファイルシステム205のファイル250、名前付きストリーム260、イベントログ270と相互作用するように構成されている。更に、コンテンツ処理デーモン320は、このような問合せシステムを含むストレージシステム150の実施形態では、問合せシステム400のような問合せシステムと相互作用するように構成される。
図示された実施形態では、コンテンツ処理デーモン320は、フィルタドライバ221によってバンド内で検出され記録されたオペレーションとイベントのバンド外検出を実行するように構成される。例えば、コンテンツ処理デーモン320は、場合によってはイベントログ270をスキャンし、最後のスキャン以降にファイルシステムコンテンツアクセスイベントが発生したことを求めることができる。検出されたイベントに応答して、コンテンツ処理デーモン320は、以下に更に詳細に説明されるように追加のファイルシステムコンテンツを生成する。幾つかの実施形態では、コンテンツ処理デーモン320は、ファイル250及び/又は名前付きストリーム260を直接スキャンでき、他の実施形態ではコンテンツ処理デーモン320は、イベントログ270を使用して、記録されたイベントに対応するこれらのファイル250及び名前付きストリーム260にアクセス可能であることが企図される。更に、幾つかの実施形態では、コンテンツ処理システム300は、イベントログ270を使用するのではなく、フィルタドライバ221による通知に応答して更新されたイベントの固有のログを含む。
コンテンツ処理デーモン320は、1つ又はそれ以上のコンテンツプロセッサ330の代わりに、ファイルシステム205と相互作用してファイルデータとメタデータを含むファイルシステムコンテンツを生成し又は修正する。1つの実施形態では、コンテンツプロセッサ330は、特定のトランザクションの定義されたプロセスを監視するように構成された手続きコード又は論理を含む。例えば、所与のコンテンツプロセッサ330は、特定のトランザクションの一部として定められた一連のオペレーションを記述するアルゴリズム又は状態機械を実装する。コンテンツプロセッサ330は、トランザクションの途中でアクセスできる特定のファイル250のようなトランザクションに関係するファイルシステムコンテンツの情報を識別することを含む。更に、コンテンツプロセッサ330は、種々のオペレーションに対応する特定のアプリケーションを識別するための情報を含む。例えば、所与のトランザクションが会計アプリケーションによって実行されるステップを含む場合、対応するコンテンツプロセッサ330は、そのファイルが会計アプリケーションによってアクセスされるときに所与のファイル250のフィルタドライバ221によって生成されたメタデータレコードに含む、アプリケーション名又は識別コードのような情報を識別する特定のアプリケーションを含む。
幾つかの実施形態では、所与のコンテンツプロセッサ330は、特定のトランザクションの全てのインスタンスを処理するように構成される。例えば、上述の購入注文トランザクションを監視するように構成されたコンテンツプロセッサ330は、所与の時間に進行中である全ての購入注文トランザクションを処理するように構成される。このような実施形態では、所与のコンテンツプロセッサ330はデータ構造を含み、これによって個々のトランザクションは、タイムスタンプ又は固有識別子などによってプロセッサ内で識別する。他の実施形態では、各コンテンツプロセッサ330は、所与のトランザクションの単一のインスタンスに対応する。例えば、新しいトランザクションが検出された場合、コンテンツプロセッサ330の新しいインスタンスは、既存のインスタンス(テンプレートなどのような)から又はコンテンツ処理デーモン320から生成する。幾つかの実施形態では、コンテンツプロセッサ330とコンテンツ処理デーモン320は、単一のソフトウェアモジュールのような単一の処理エンティティとして実施する。
所与のコンテンツプロセッサ330のオペレーションは、コンテンツ処理デーモン320を介して受け取られたファイルシステムコンテンツアクセスイベント情報と共に実現されるアルゴリズムによって決定できる。1つの実施形態ではコンテンツプロセッサ330は、最初に、特定のファイルシステムコンテンツアクセスイベントによって起動されるまで非アクティブ又はアイドル状態にする。例えば、特定の電子メールアカウントに購入注文をメールで送ることによって購入注文が開始されるシステムでは、フィルタドライバ221は、受け取られた購入注文のコンテンツを特定の電子メールアカウントに関連したファイルに付加することに応答して、イベントログ270内にメタデータレコードを作成する。続いて、コンテンツ処理デーモン320は、レコードを検出し、これに応答して起動する購入注文コンテンツプロセッサ330にレコードの指示を伝達する。他の実施形態では、コンテンツプロセッサ330の個々のインスタンスは、適切な起動イベントの検出に応答してコンテンツプロセッサデーモン320によって生成する。
1つの実施形態では、コンテンツプロセッサ330は、イベントの所与のシーケンスが発生した時点、又はファイルシステムコンテンツの所与の状態が生じた時点を検出するよう機能する受動モニタである。例えば、コンテンツプロセッサ330は、プロセス中に引き受けられたアプリケーションアクティビティに応答してフィルタドライバ221によって生成されたメタデータレコードを調べることによって、承認プロセスのステップなどの一連のイベントが適切な順序で実行されたかどうかを検出するように構成される。別の事例では、コンテンツプロセッサ330は、特定の構文又はスキーマに従ってファイルシステムコンテンツが適格に形成されているかどうかを判断するように構成される。例えば、コンテンツプロセッサ330は、構文的に正しく適切に構成されている(すなわち、所要のデータが存在する)かどうかなどを判定するために更新に続いてメタデータレコード又はファイルデータを調べることができる。
別の実施形態では、コンテンツプロセッサ330は、ファイルシステムコンテンツをアクティブに修正し、及び/又はコンテンツの種々のイベント又は状態の検出に応答して他のアプリケーションを呼び出すように構成される。例えば、文書出版環境では、所与の文書は、幾つかの種々のフォーマット(例えば、ポータブルドキュメントフォーマット(PDF)、HTMLフォーマット、Microsoft Wordフォーマット)でユーザーが使用できる。このような実施形態では、コンテンツプロセッサ330は、所与の文書の必要なバージョンの生成を自動化するように構成される。例えば、コンテンツプロセッサ330は、名前付きストリーム260及び/又はイベントログ270で当該ファイルへの更新のメタデータレコードを検出することによって、所与のファイル250での文書のマスターバージョンが更新された時点を検出するように構成される。更新を検出すると、コンテンツプロセッサ330は、更新されたマスターバージョンを所要のフォーマットの各々に変換するために適切なジェネレータ又はトランスレータアプリケーションを呼び出すことができる。このような変換は、マスター文書を更新するユーザー又はアプリケーションにトランスペアレントに行うことができる。
別の例として、コンテンツプロセッサ330は、上述の購入承認プロセスのような複合トランザクションをアクティブに実行するように構成される。このような場合、コンテンツプロセッサ330は、トランザクションに対応する手続きで指定されるように種々のアプリケーションを呼び出すよう構成される。例えば、コンテンツプロセッサ330は、新しい購入注文要求が上述のように電子メールを介して受け取られたことを検出するように構成される。次いで、コンテンツプロセッサ330は、要求データを格納するファイル250にアクセスすることによって、依頼者のアイデンティティと要求のドル額などといった、要求からの情報を抽出する。抽出された情報を使用して、コンテンツプロセッサ330は、上述のように承認を得るために種々のアプリケーションと相互作用する。例えば、コンテンツプロセッサ330は、人事アプリケーション内のシグネチャ権限、財務アプリケーション内の予算状態などを検証するために問合せを生成する。ユーザー介入が必要な場合には、コンテンツプロセッサ330は、例えば電子メールを介して応答のためにユーザーに伝達されるプロンプトを生成するように構成される。
種々の実施形態では、コンテンツプロセッサ330は、種々の形式の出力を生成するように構成される。1つの実施形態では、コンテンツプロセッサ330は、その処理に応答してバンド外メタデータレコードを生成する。例えば、所与のファイル250で構造化データのスキーマ妥当性検証を実行するように構成されたコンテンツプロセッサ330は、対応する名前付きストリーム260内のチェックのステータスを示すメタデータレコードを生成する。他の実施形態では、コンテンツプロセッサ330は、メタデータの代わりに、或いはこれに加えてファイルデータを生成するか、修正するように構成される。例えば、前述のスキーマ検証ソフトは、不正な形式のレコードを切り捨てるか、又は欠落しているデータフィールドを埋めることなどによって、構造化データを検証しながら検出された幾つかの欠陥を訂正するように構成される。別の例として、コンテントプロセッサ330は、以下に更に詳細に説明されるように、問合せエンジンと相互作用して、問合せエンジンによってインデックスされたデータの参照一貫性を維持するように構成される。更に他の実施形態では、コンテンツプロセッサ330は、アプリケーション又はユーザーと相互作用するように構成される。例えば、上述のようにコンテンツプロセッサ330は、文書コンテンツ更新などの特定のイベントの検出に応答して、アプリケーションのAPIを呼び出すように構成される。1つの実施形態では、1つ又はそれ以上のコンテンツプロセッサ330は、XMLフォーマットのいずれかのバージョンに準拠したフォーマットを含む上述のような拡張可能な自己記述データフォーマットでメタデータレコードを生成するように構成されることが企図される。
コンテンツ処理システム300及びその種々の構成要素は、上述のようにアプリケーションレイヤ100内のプロセス112であるアプリケーションと相互作用することができ、コンテンツ処理システム300やその種々の構成要素は、アプリケーションとは異なることに留意されたい。一般に、特定のアプリケーションは、他のアプリケーションのアクティビティに気付くことはできず、ファイルシステム205のオペレーションの途中で生成されたメタデータにアクセスすることはできない。しかしながら、図示された実施形態では、コンテンツ処理システム300は、このようなメタデータへアクセスすることができ、このようなアクセスによって、特定のアプリケーションのオペレーションにより十分には提示されないトランザクションイベントを検出するように構成される。
コンテンツ処理システム300を含むストレージシステム150のオペレーションの方法の1つの実施形態を図7に示す。図1から図4、図6、図7をまとめて参照すると、オペレーションはブロック700で始まり、ここでファイルデータ又はメタデータのようなファイルシステムコンテンツが格納される。1つの実施形態では、ファイルシステムコンテンツは、ファイルデータとメタデータの両方を含む。ファイルシステムコンテンツの格納に続いて、ファイルシステムコンテンツアクセスイベントがバンド内で検出される(ブロック702)。例えば、ファイルシステムコンテンツアクセスイベントは、上述のようにフィルタドライバ221によってバンド内で検出される。上述のように、幾つかの実施形態ではファイルシステムコンテンツの最初の格納は、それ自体を検出可能なファイルシステムコンテンツアクセスイベントである。例えば、ファイル作成オペレーションは、ステップ702で検出可能なファイルシステムコンテンツアクセスイベントである。
ファイルシステムコンテンツアクセスイベントの検出に応答して、イベントレコードが生成される(ブロック704)。例えば、1つの実施形態ではフィルタドライバ221は、イベントのタイプやそれによってアクセスされるファイルシステムコンテンツのようなファイルシステムコンテンツアクセスイベントについての情報を含むイベントレコードを生成するように構成される。1つの実施形態では、このようなレコードは、イベントログ270に格納される。幾つかの実施形態では、ファイルシステムコンテンツアクセスイベントについての追加情報を含むメタデータレコードも生成する。例えば、1つの実施形態では、フィルタドライバ221は、ファイル・アイデンティティ、ファイル所有権、アクセスイベントを生成するプロセスのアイデンティティなどといった所与のファイルにアクセスするためのオペレーションに関係する種々のメタデータ要素を集めるように構成される。1つの実施形態では、イベント検出に応答して生成されたイベントレコード及び/又はいずれかの追加のメタデータレコードは、上述のようにXMLフォーマットのような拡張可能な自己記述データフォーマットで格納する。
イベントレコードが生成された後、該イベントレコードはバンド外で検出する(ブロック706)。例えば、1つの実施形態では、コンテンツ処理デーモン320又はコンテンツプロセッサ330は、イベントログ270をスキャンして、イベントレコードを検出するように構成される。幾つかの実施形態では、イベントレコードの検出は、幾つかのアプリケーションを含むトランザクションの検出を含む。例えば、特定のコンテンツプロセッサ330は、所与のイベントレコードが幾つかのアプリケーションの一部でのアクティビティを伴ったトランザクションにおける特定のタイプの最初のステップ又は連続するステップを示すことを検出する。
バンド外イベントレコード検出に応答して、追加のファイルシステムコンテンツが生成される(ブロック708)。1つの実施形態では、生成される追加のファイルシステムコンテンツは、1つ又はそれ以上のファイル250に格納されたファイルデータ、或いは1つ若しくはそれ以上の名前付きストリーム260に格納されたメタデータレコード、又は両方を含む。1つの実施形態では、アプリケーションは、バンド外イベントレコード検出に応答して追加して呼び出すことができる。例えば、所与のコンテンツプロセッサ330は、上述されたようにトランザクションを処理する途中でアプリケーションを呼び出すことができる。
(ファイルシステムコンテンツの問合せ)
上述されたように、幾つかの実施形態では、ファイルシステム205は、種々のタイプのファイルシステムコンテンツを格納するように構成される。ファイルシステム205は、1つ又はそれ以上のファイル内に多数のタイプのファイルデータを格納することができ、所与のファイルに対応する任意の複雑性のメタデータを格納する。ファイルシステム205は、ファイルシステムコンテンツを消費するように構成される。例えば、ファイルシステム205は、特定の記憶ポリシーを実施することができ、これによってそれらのメタデータで示されたような幾つかの使用特性を有するファイルは、特定のタイプのストレージに割り当てられる。1つの実施形態では、例えば、ごく最近に使用されたファイル又は幾つかのタイプのプロセスによってアクセスされたファイルを、より高速のストレージタイプに割り当てることができ、他のファイルは低速のストレージに割り当てることができる。
幾つかの実施形態では、ファイルシステム205の外部にあるアプリケーション又はオペレーティングシステムプロセス(図2のプロセス112のような)は、ファイルシステムコンテンツを消費するように構成される。例えば、アプリケーションソフトウェアモジュールを書くプログラマーは、アプリケーションデータを格納又は検索するために特定のファイルとこれらに関連するファイルデータを作成し操作することを望む場合がある。更に、このようなプログラマーは、最後のバックアップの時間以降に修正されたファイルだけを選択するようにバックアッププログラムを構成するなど、幾つかのファイルのメタデータ特性に左右される動作を実行することを望む場合がある。幾つかの実施形態では、フィルシステムコンテンツを問合せて特定の基準を満たすコンテンツを識別することによって、特定のファイルシステムコンテンツを指定する。ファイルシステムコンテンツを問合せるための利用可能な基準は、ファイルシステムコンテンツが格納されるフォーマットに依存する。例えば、1つの実施形態では、ファイルシステムコンテンツは、データ項目の記述が自己記述フォーマットタグからではなく、行及び列の定義から継承される表形式データ構造などの固定の非拡張可能フォーマットで格納する。このような実施形態では、ファイルシステムコンテンツを選択できる基準は、利用可能な行及び列の定義などのフォーマットの定義された構造によって決定付けることができる。ファイルシステムコンテンツが上述のようなXMLフォーマットなどの拡張可能な自己記述フォーマットで格納される実施形態において、所要のファイルシステムコンテンツを選択するために利用可能な基準は、当該コンテンツの自己記述機能のいずれかを含む。
図2に示されたストレージシステム150の実施形態では、問合せシステム400は、種々のプロセス112にAPI114Cを介してファイルシステムコンテンツ問合せ機能を提供するように構成されている。問合せシステム400の1つの詳細な実施形態を図8に示す。この実施形態では、問合せシステム400は、接続マネージャー420、問合せエンジン430、インデックス/コミットエンジン440、データレイアウトマネージャー450を含み、各々について以下に更に詳細に説明する。
一般的に言えば、問合せは、例えば自己記述フォーマットで格納されたレコードの1つ又はそれ以上のデータフィールドの評価を通じて、データのサブセットがデータのより大きなセットから選択される方法を指定する。例えば、ユーザーは、更に分析するためfile/tesut1/foo.pdfに対応する全ての格納されたレコードを選択するよう要望する。これに応じて、ユーザーは、データフィールドが「/test1/foo.pdf」などの特定の値に等しいデータフィールドタグ付き「path」を有する全てのレコードの選択を指定する問合せを構成する。幾つかの実施形態では、ファイル250内に格納されたファイルデータ並びに名前付きストリーム260内に格納されたメタデータを含む、ファイルシステムコンテンツの全体は、例えばフィルタドライバ221によってバンド内で作成されたか、又は例えば特定のコンテンツプロセッサ330によってバンド外で生成されたかどうか、或いは、メタデータが例えば上述のようにAPI114を介したアプリケーションプロセス112によってファイルシステム205の外部で定義及び/又は生成されたかどうかを問合せることができる。更に、ファイルシステムコンテンツアクセスイベントが上述のようにイベントログ270内に記録される幾つかの実施形態では、これらの記録されたイベントも問合せることができる。
問合せは問合せ言語で構成され、該問合せ言語は、1つ又はそれ以上のタグ付きデータフィールドの値に基づいてデータのセットの選択のための構文構成を提供する。幾つかの実施形態では、所与の問合せ言語は、例えばセット選択機能に加えて関数などの手続き関数をサポートする。更に、幾つかの実施形態では、所与の問合せ言語は、例えばJava(登録商標)又はCのような他のプログラミング言語でコード化された手続きルーチンの問合せ内への埋め込みをサポートする。XMLフォーマットがファイルシステムコンテンツを構成するのに使用される場合、所与のアプリケーションは、World Wide Web Consortium(W3C)によって指定されるようなXML問合せ(XQuery)言語、又はいずれかの機能XQuery基準又はその変形で特定のファイルシステムコンテンツを選択するための問合せを構成する。しかしながら、どのような適切な問合せ言語を用いてもよい。
上述のように、図示された実施形態では、プロセス112は、問合せを生成してこれをAPI114を介して問合せシステム400に伝える。幾つかの実施形態では、問合せシステム400は、所与の時間に未処理の並行問合せを有する幾つかのプロセス112をサポートするように構成される。更に、幾つかの実施形態では、問合せプロセス112は、ネットワークを介してリモートコンピュータシステムからその問合せを実行依頼する。更に、問合せプロセス112は、例えば問合せシステム400へのアクセスを制限するために、幾つかの実施形態では認証されることが必要な場合がある。1つの実施形態では、接続マネージャー420は、問合せプロセス112と問合せシステム400との間に接続を設定し維持するオーバーヘッドを管理するように構成される。例えば、接続マネージャー420は、認証インターフェース(ユーザー名及びパスワードインターフェースなど)を提供するように構成され、これにより問合せプロセス112は、問合せを実行するためにこれらの権限を設定する。更に、1つの実施形態では、接続マネージャー420は、問合せプロセス112のための接続ベース又はセッションベースの意味論をサポートするのに必要なあらゆる情報を保持するように構成される。例えば、接続マネージャー420は、問合せ結果が正しい問合せプロセス112に向けられるように、進行中の問合せをこれらに関係する依頼者にマップするようにデータ構造を維持する。幾つかの実施形態では、接続マネージャー420は、例えば全体的な問合せスループットを向上させるために問合せエンジン430の複数のインスタンスの中から要求を区別することによって問合せ要求のロードバランシングを行うように構成される。
1つの実施形態では、問合せエンジン430は、接続マネージャー420を介して問合せシステム400に提示された問合せを構文解析して評価するように構成される。例えば、問合せエンジン430は、時間のある範囲内で特定のユーザーによって修正された全ファイル250の名前を要求する問合せを受け取ることができる。問合せエンジン430は、構文上の正当性について問合せを構文解析することができ、問合せが不正な形式である場合にはエラー状態を戻す。幾つかの実施形態では、問合せエンジン430はまた、例えば問合せを複数の問合せに分解し、及び/又は性能上で問合せを最適化するために、問合せに構造変換を行う。次に、問合せエンジン430は、特定の基準を満たし、これらのファイルの名前を問合せプロセス112に戻すファイル250を識別するために名前付きストリーム260に格納されたメタデータレコードを調べる。問合せの構文解析と評価のために構成された問合せエンジン430の多数の実装が可能である。
幾つかの実施形態では、問合せエンジン430は、ストレージ管理システム200と直接相互作用し、問合せの評価に応答してファイルシステムコンテンツにアクセスする。しかしながら、場合によっては、問合せ評価性能は、ファイルシステムコンテンツの1つ又はそれ以上のインデックスを作成して、これらのインデックスを用いて問合せ評価を助けることにより改善する。図示された実施形態では、インデックス/コミットエンジン440は、これらのインデックスを生成して保持し、更に問合せの評価中に問合せエンジン430にインデックス情報を提供するように構成される。
一般的に言うと、インデックスは、ある態様又は属性に従ってデータの集まりを編成するあらゆるデータ構造とすることができ、インデックスされた態様又は属性によってデータの問合せを容易にする。例えば、1つの実施形態では、インデックスは、アルファベット順に編成されたファイルシステム205で定義された全ファイル250の名前のリストである。幾つかの実施形態では、ファイルシステムコンテンツの複数のインデックスを用いることができる。例えば、名前、関連するユーザー、コンテンツ作成/修正時間によって、ファイルシステムコンテンツを頻繁に問合せる場合、これらの属性の各々によってファイルシステムコンテンツをソート又は編成する個々のインデックスを作成してもよい。幾つかの実施形態では、複数のコンテンツ属性を複合状態スペースに組み合わせるインデックスを含む、更に複合されたインデックス方式を用いることができる。更に、インデックスは、リスト、テーブル、ツリー、高位データ構造を含むあらゆる適切なデータ構造を用いて実装可能である。
インデックス/コミットエンジン400によって作成されたインデックスは、これ自体をファイルシステム205内に格納する。幾つかの実施形態では、これらのインデックスは、他のファイルシステムコンテンツとは別個に格納する。このような実施形態では、データレイアウトマネージャー450は、ファイルシステム205内のインデックスの位置を追跡するように構成される。1つの実施形態では、データレイアウトマネージャー450は、インデックスアクセスに対応するバンド内メタデータが生成されないように、インデックスに関連したストレージにアクセスしながらフィルタドライバ221をバイパスするように構成される。このような実施形態では、インデクシングやメタデータを含む幾つかの不整合性のケースが回避される。例えば、インデックス/コミットエンジン440が所与のインデックス内に修正タイムスタンプのような所与のインデックスのメタデータを含み、次いで該所与のインデックスをフィルタドライバ221を介してストレージに書き込むことを試みる場合には、書き込みに続く所与のインデックスのメタデータは、例えばフィルタドライバ221が書き込みオペレーションに応答して新しい修正タイムスタンプを作成した場合、所与のインデックスのコンテンツにはもはや一致することはない。
幾つかの実施形態では、問合せシステム400を介してファイルシステムコンテンツを修正するために、問合せプロセス112が問合せを使用する。例えば、問合せを用いて、利用可能なファイルシステムコンテンツの中からファイル250のようなデータ項目のセットを選択する。次いで、選択されたデータ項目が修正される、しかし、ストレージデバイス230に伝播されるファイルシステム205に直接修正する代わりに、問合せシステム400がデータ更新を協調して行い、これによってファイルシステムコンテンツ修正のための代替経路を提示する。しかしながら、ファイルシステムコンテンツを修正するための複数の経路が存在する実施形態では、これらの経路の間での協調が、共通データへの競合する修正を防ぐために必要である。1つの実施形態では、インデックス/コミットエンジン440は、ファイルシステムコンテンツへの更新が確実に一致するようにコミットプロトコル(例えば2相コミットなど)を実施するように構成される。
インデックス/コミットエンジン440によって維持されるインデックスは一般に、ファイルシステムコンテンツの派生物であるが、その結果、ファイルシステムコンテンツが変化する(問合せシステム400を介した更新により、コンテンツプロセッサ300のアクティビティにより、或いはファイルシステム205と直接相互作用しているプロセス112によるいずれか)場合、修正されたコンテンツに対応する1つ又はそれ以上のインデックスが、もはやコンテンツの新しい状態を正確には反映しないようになる可能性がある。例えば、インデックス/コミットエンジン440が、ファイル名毎にファイルシステムコンテンツのインデックスを含み、所与のファイル205がプロセス112によってリネームされる場合、ファイル名ベースのインデックスは、リネーム後では古いものになる可能性がある。一般的に言うと、インデックスが、インデックスデータの状態に関して通用している場合、該インデックスは、インデックスデータに関する参照一貫性が保存されていると言われる。
インデックスされたファイルシステムコンテンツが変化する場合、インデックス/コミットエンジン440は、この変化を反映させるために関連のインデックスを更新することによって、そのインデックスの参照一貫性を保存するように構成される。1つの実施形態では、インデックス/コミットエンジン440は、コンテンツ処理システム300内のコンテンツ処理デーモン320又は特定のコンテンツプロセッサ330と協調し、ファイルシステムコンテンツの変化を検出して、これに応答してインデックスを更新するように構成される。例えば、1つの実施形態では、コンテンツ処理デーモン320は、イベントログ270をスキャンするなどによって、ファイルシステムコンテンツに対して何らかの変更が起こったことを検出するように構成される。コンテンツでの変更をもたらす可能性のあるファイルシステムコンテンツアクセスイベント(例えば、ファイルシステムコンテンツの作成、修正、又は削除を生じるイベント)の検出に応答して、コンテンツ処理デーモン320は、検出されたイベントをインデックス/コミットエンジン440に通知するよう構成される。これに応答して、インデックス/コミットエンジン440は、検出されたイベントによって影響を受ける1つ又はそれ以上のインデックスを更新して、これらの参照一貫性を維持する。例えば、特定のファイル250が削除された場合、コンテンツ処理デーモン320は、イベントログ270内でその削除に対応するイベントレコードを検出し、そのイベントと削除されたファイル250をインデックス/コミットエンジン440に通知する。次いで、インデックス/コミットエンジン440は、削除されたファイル250への参照の除去を維持するためにインデックスを修正する。
別の実施形態では、1つ又はそれ以上の特定のコンテンツプロセッサ330は、インデックス/コミットエンジン440によって維持される特定のインデックスに対応するファイルシステムコンテンツを監視するように構成される。例えば、1つの実施形態では、インデックス/コミットエンジン440は、インデックスに関連する自己記述データフィールド(例えば、ファイル名、ファイルサイズ、ファイルシグネチャなど)やこれらの現在値などの特定のインデックスの構造とコンテンツを所与のコンテンツプロセッサ330に通知する。次いで、コンテンツプロセッサ330は、特定のインデックスの構造とコンテンツに関係するイベントのためのファイルシステムコンテンツアクセスイベントを監視するように構成され、インデックス/コミットエンジン440にこれらの関係するイベントだけを通知する。このような通知を受けると、インデックス/コミットエンジン440は、例えばインデックスからの情報を追加又は除去することによって、その参照一貫性を保存するために関連するインデックスを更新する。
問合せシステム400を含むストレージシステム150のオペレーションの方法の1つの実施形態を図9に示している。図1から図4、図8、図9をまとめて参照すると、オペレーションはブロック900で始まり、ここで、ファイルデータ又はメタデータのようなファイルシステムコンテンツが格納される。1つの実施形態では、ファイルシステムコンテンツは、ファイルデータとメタデータの両方を含む。幾つかの実施形態では、問合せシステム400は、上述のようにファイルシステムコンテンツの1つ又はそれ以上のインデックスを生成する(ブロック902)ように構成されるが、他の実施形態ではこのステップを省くことができる。
ファイルシステムコンテンツの格納に続いて、ファイルシステムコンテンツアクセスイベントがバンド内で検出される(ブロック904)。例えば、ファイルシステムコンテンツアクセスイベントは、上述のようにフィルタドライバ221によってバンド内で検出される。上記のように、幾つかの実施形態では、ファイルシステムコンテンツの最初の格納は、これ自体を検出可能なファイルシステムコンテンツアクセスイベントである。例えば、ファイル作成オペレーションは、ステップ902で検出可能なファイルシステムコンテンツアクセスイベントである。
ファイルシステムコンテンツアクセスイベントの検出に応答して、メタデータレコードが生成される(ブロック906)。例えば、1つの実施形態では、フィルタドライバ221は、タイムスタンプ、ファイルシグネチャ、イベントを生成するプロセスのアイデンティティなどといった、アクセスされるイベント又はファイルシステムコンテンツに関係する情報を含むメタデータレコードを生成するように構成される。1つの実施形態では、このようなレコードは、特定の名前付きストリーム260内に格納する。更に、幾つかの実施形態では、イベントレコードは、イベント検出に応答して生成する。このようなイベントレコードは、例えばイベントログ270に格納する。1つの実施形態では、イベント検出に応答して生成されたメタデータレコード及び/又はイベントレコードは、上述のようにXMLフォーマットのような拡張可能な自己記述データフォーマットで格納する。
ファイルシステムコンテンツがインデックスされる実施形態では、ファイルシステムコンテンツアクセスイベントの通知を受け取ることができ(ブロック908)、関係するインデックスの参照一貫性をファイルシステムコンテンツアクセスイベントに対して維持する(ブロック910)。例えば、コンテンツ処理デーモン320は、全ファイルシステムコンテンツアクセスイベントをインデックス/コミットエンジン440に通知するように構成され、或いは、特定のコンテンツプロセッサ330は、上述のようにインデックス/コミットエンジン440によって維持されるインデックスに関係するこれらのイベントを監視するように構成される。関係するイベントの通知の受領に応答して、インデックス/コミットエンジン440は、関係するインデックスを更新して、上述のようにその参照一貫性を維持するように構成される。これらのステップは、インデクシングを用いない実施形態では省略可能である。
メタデータレコードの生成に続いて、ファイルシステムコンテンツを問い合わせる(ブロック912)。例えば、問合せシステム400は、ファイルデータ及び/又はメタデータを問合せることによって、プロセス112により実行依頼される問合せに応答するように構成される。ファイルシステムコンテンツがXMLフォーマットで格納される実施形態では、問合せは、XML問合せ(XQueryフォーマット)で生成する。
上記でかなり詳細に実施形態を説明してきたが、上記開示を完全に理解すると当業者であれば多くの変形及び修正が明らかになるであろう。添付の請求項は、全てのこのような変形及び修正を含むよう解釈されるものとする。
ストレージシステムの1つの実施形態を示すブロック図である。 ソフトウェアベースのストレージシステムアーキテクチャとストレージデバイスへのインターフェースの1つの実施形態を示すブロック図である。 ストレージ管理システムの1つの実施形態を示すブロック図である。 ファイル及び関連するメタデータを格納するように構成されたファイルシステムの1つの実施形態を示すブロック図である。 メタデータ生成の方法の1つの実施形態を示すフロー図である。 コンテンツ処理システムの1つの実施形態を示すブロック図である。 コンテンツ処理システムを含むストレージシステムのオペレーションの方法の1つの実施形態を示すフロー図である。 問合せシステムの1つの実施形態を示すブロック図である。 問合せシステムを含むストレージシステムのオペレーションの方法の1つの実施形態を示すフロー図である。
符号の説明
205 ファイルシステム、221 フィルタドライバ、250 ファイル、260 名前付きストリーム、270 イベントログ、255 ファイル

Claims (42)

  1. データを格納するためのストレージ空間を提供するように構成されたストレージデバイスと、そして
    前記ストレージデバイスにより提供された前記ストレージ空間を複数のファイルを含むファイルシステムコンテンツに編成するように、そして前記ストレージデバイスへのアクセスを管理するように、構成されたファイルシステムと
    を含むシステムであって、
    前記ファイルシステムが、
    ファイルシステムコンテンツアクセスイベントを検出し、前記ファイルシステムコンテンツアクセスイベントの検出に応答して、前記ファイルシステムコンテンツアクセスイベントを指示するメタデータレコードを生成し、かつ前記ストレージデバイス上の前記ファイルシステムコンテンツ内に前記メタデータレコードを格納するように更に構成され、
    前記ファイルシステムは拡張可能な自己記述データフォーマットにしたがって前記メタデータレコードを生成するように更に構成され、
    前記メタデータレコード内に含まれる個々のデータエレメントは1つまたは複数の対応のタグフィールドにより範囲が定められ、前記メタデータレコード内に含まれる所与の個々のデータエレメントに対して前記1つまたは複数の対応のタグフィールドが前記所与の個々のデータエレメントの情報のタイプを指示する
    ことを特徴とするシステム。
  2. 前記ファイルシステムコンテンツアクセスイベントの検出はバンド内で実行され、前記バンド内での検出は前記検出ファイルシステムコンテンツアクセスイベントの発生と同期していることを特徴とする請求項1に記載のシステム。
  3. 前記拡張可能な自己記述データフォーマットは、あるバージョンの拡張可能なマーク付け言語(XML)フォーマットに準拠することを特徴とする請求項1に記載のシステム。
  4. 前記メタデータレコードは、所与のファイルに対応する名前付きストリームに格納されることを特徴とする請求項1に記載のシステム。
  5. 前記メタデータレコードは、前記ファイルシステムに対応するイベントログに格納されることを特徴とする請求項1に記載のシステム。
  6. 前記ファイルシステムコンテンツは、前記複数のファイルの1つ又はそれ以上に格納された1つ又はそれ以上のメタデータレコードとファイルデータを含むことを特徴とする請求項1に記載のシステム。
  7. コンテンツプロセッサとアプリケーションを更に含み、前記コンテンツプロセッサは、前記ファイルシステムコンテンツアクセスイベントのバンド外での検出に応答して、前記アプリケーションを呼び出すように構成され、前記バンド外での検出は前記ファイルシステムコンテンツアクセスイベントが既に実行されてしまった後で発生することを特徴とする請求項1に記載のシステム。
  8. 問合せエンジンを更に含み、これによってアプリケーションが前記ファイルシステムコンテンツを問い合わせることを特徴とする請求項1に記載のシステム。
  9. ファイルシステムが前記ストレージデバイスにより提供された前記ストレージ空間を複数のファイルを含むファイルシステムコンテンツに編成するステップと、
    前記ファイルシステムがファイルシステムコンテンツアクセスイベントを検出するステップと、
    前記ファイルシステムコンテンツアクセスイベントの検出に応答して、前記ファイルシステムが、前記ファイルシステムコンテンツアクセスイベントを指示するメタデータレコードを生成し、かつ前記ストレージデバイス上の前記ファイルシステムコンテンツ内に前記メタデータレコードを格納するステップと、そして
    前記ファイルシステムが拡張可能な自己記述データフォーマットにしたがって前記メタデータレコードを記憶するステップであって、前記メタデータレコード内に含まれる個々のデータエレメントは1つまたは複数の対応のタグフィールドにより範囲が定められ、前記メタデータレコード内に含まれる所与の個々のデータエレメントに対して前記1つまたは複数の対応のタグフィールドが前記所与の個々のデータエレメントの情報のタイプを指示するステップと
    を含む方法。
  10. 前記ファイルシステムコンテンツアクセスイベントの検出はバンド内で実行され、前記バンド内での検出は前記検出ファイルシステムコンテンツアクセスイベントの発生と同期していることを特徴とする請求項9に記載の方法。
  11. 前記拡張可能な自己記述データフォーマットは、拡張可能なマーク付け言語(XML)フォーマットに準拠することを特徴とする請求項9に記載の方法。
  12. 前記メタデータレコードは、所与のファイルに対応する名前付きストリームに格納されることを特徴とする請求項9に記載の方法。
  13. 前記メタデータレコードは、イベントログに格納されることを特徴とする請求項9に記載の方法。
  14. 前記ファイルシステムコンテンツは、複数のファイルの1つ又はそれ以上に格納された1つ又はそれ以上のメタデータレコードとファイルデータを含むことを特徴とする請求項9に記載の方法。
  15. 前記ファイルシステムコンテンツアクセスイベントのバンド外での検出に応答してアプリケーションを呼び出すステップであって、前記バンド外での検出は前記ファイルシステムコンテンツアクセスイベントが既に実行されてしまった後で発生する、ステップを更に含むことを特徴とする請求項9に記載の方法。
  16. 前記ファイルシステムコンテンツを問い合わせる段階を更に含むことを特徴とする請求項9に記載の方法。
  17. プログラム命令を記録したコンピュータアクセス可能な記録媒体であって、前記プログラム命令は、
    ファイルシステムが前記ストレージデバイスにより提供された前記ストレージ空間を複数のファイルを含むファイルシステムコンテンツに編成するステップと、
    前記ファイルシステムがファイルシステムコンテンツアクセスイベントを検出するステップと、
    前記ファイルシステムコンテンツアクセスイベントの検出に応答して、前記ファイルシステムが、前記ファイルシステムコンテンツアクセスイベントを指示するメタデータレコードを生成し、かつ前記ストレージデバイス上の前記ファイルシステムコンテンツ内に前記メタデータレコードを格納するステップと、そして
    前記ファイルシステムが拡張可能な自己記述データフォーマットにしたがって前記メタデータレコードを記憶するステップであって、前記メタデータレコード内に含まれる個々のデータエレメントは1つまたは複数の対応のタグフィールドにより範囲が定められ、前記メタデータレコード内に含まれる所与の個々のデータエレメントに対して前記1つまたは複数の対応のタグフィールドが前記所与の個々のデータエレメントの情報のタイプを指示するステップと
    を含む方法をコンピュータに実行させることを特徴とするコンピュータアクセス可能な記録媒体。
  18. 前記ファイルシステムコンテンツアクセスイベントの検出はバンド内で実行され、前記バンド内での検出は前記検出ファイルシステムコンテンツアクセスイベントの発生と同期していることを特徴とする請求項17に記載のコンピュータアクセス可能な記録媒体。
  19. 前記拡張可能な自己記述データフォーマットは、拡張可能なマーク付け言語(XML)フォーマットに準拠することを特徴とする請求項17に記載のコンピュータアクセス可能な記録媒体。
  20. 前記メタデータレコードは、所与のファイルに対応する名前付きストリームに格納されることを特徴とする請求項17に記載のコンピュータアクセス可能な記録媒体。
  21. 前記メタデータレコードは、イベントログに格納されることを特徴とする請求項17に記載のコンピュータアクセス可能な記録媒体。
  22. 前記ファイルシステムコンテンツは、複数のファイルの1つ又はそれ以上に格納された1つ又はそれ以上のメタデータレコードとファイルデータを含むことを特徴とする請求項17に記載のコンピュータアクセス可能な記録媒体。
  23. 前記プログラム命令は前記ファイルシステムコンテンツアクセスイベントのバンド外での検出に応答してアプリケーションを呼び出すように更に実行可能であり、前記バンド外での検出は前記ファイルシステムコンテンツアクセスイベントが既に実行されてしまった後で発生する、請求項17に記載のコンピュータアクセス可能な記録媒体。
  24. 前記プログラム命令は、前記ファイルシステムコンテンツを問い合わせるために更に実行可能であることを特徴とする請求項17に記載のコンピュータアクセス可能な記録媒体。
  25. データを記憶するためのストレージ空間を提供するように構成されたストレージデバイスと、そして
    前記ストレージデバイスにより提供された前記ストレージ空間を複数のファイルを含むファイルシステムコンテンツに編成するように、そして前記ストレージデバイスへのアクセスを管理し、ファイルシステムコンテンツを格納し、前記ファイルシステムとは異なるアプリケーションにより生成されたファイルシステムコンテンツアクセスイベントのバンド内検出を実行し、更にこれに応答して前記ファイルシステムコンテンツアクセスイベントを指示するそれぞれのイベントレコードを生成し、そして前記ファイルシステムコンテンツ内に前記それぞれのイベントレコードを記憶するように構成されたファイルシステムと、そして
    前記イベントレコードのバンド外検出を実行し、これに応答して追加のファイルシステムコンテンツを生成するように構成された前記アプリケーションとは異なるコンテンツプロセッサと
    を含むシステムであって、
    前記バンド内での検出は前記検出ファイルシステムコンテンツアクセスイベントの発生と同期し、
    前記バンド外での検出は前記ファイルシステムコンテンツアクセスイベントが既に実行されてしまった後で発生し、
    前記アプリケーションの少なくともサブセットのメンバーは相互にまたは前記コンテンツプロセッサと直接に相互作用しないように構成され、そして
    前記コンテンツプロセッサは、前記イベントレコードの少なくともいくつかの前記バンド外での検出に依拠し、前記アプリケーションの前記少なくともサブセットの2つ以上のオペレーションに更に依拠し、かつ前記ファイルシステムコンテンツに更に依拠する前記トランザクションを実行するように更に構成されている、
    ことを特徴とするシステム。
  26. 前記トランザクションを実行するために、前記コンテンツプロセッサは、前記イベントレコードの少なくとも1つのバンド外検出の実行に応答して前記アプリケーションの少なくとも1つを呼び出すように更に構成され、前記バンド外検出は前記イベントレコードが生成されてしまった後で発生することを特徴とする請求項25に記載のシステム。
  27. 前記コンテンツプロセッサは、前記ファイルシステムコンテンツアクセスイベントを問合せシステムに通知するように更に構成され、これに応答して前記問合せシステムは、前記ファイルシステムコンテンツアクセスイベントに対して前記ファイルシステムコンテンツのインデックスの参照一貫性を維持するように構成されていることを特徴とする請求項25に記載のシステム。
  28. 1つ又はそれ以上の前記メタデータレコードは、所与のファイルに対応する名前付きストリームに格納されることを特徴とする請求項25に記載のシステム。
  29. 前記メタデータレコードは、拡張可能な自己記述データフォーマットで格納されることを特徴とする請求項25に記載のシステム。
  30. 前記拡張可能な自己記述データフォーマットは、拡張可能なマーク付け言語(XML)フォーマットに準拠することを特徴とする請求項29に記載のシステム。
  31. ファイルシステムが前記ストレージデバイスにより提供された前記ストレージ空間を複数のファイルを含むファイルシステムコンテンツに編成するステップと、
    前記ファイルシステムが、前記ファイルシステムとは異なるアプリケーションにより生成されたファイルシステムコンテンツアクセスイベントのバンド内検出を実行するステップであって、前記バンド内での検出は前記検出ファイルシステムコンテンツアクセスイベントの発生と同期しているステップと、
    前記バンド内検出に応答して、前記ファイルシステムが前記ファイルシステムコンテンツアクセスイベントを指示するそれぞれのイベントレコードを生成し、前記ファイルシステムコンテンツ内に前記それぞれのイベントレコードを記憶するステップと、
    前記アプリケーションとは異なるコンテンツプロセッサが前記イベントレコードのバンド外検出を実行するステップであって、前記アプリケーションの少なくともサブセットのメンバーは相互にまたは前記コンテンツプロセッサと直接に相互作用しないように構成され、そして前記コンテンツプロセッサによる前記バンド外検出は前記ファイルシステムコンテンツアクセスイベントが既に実行されてしまった後で発生するステップと、そして
    前記コンテンツプロセッサは、前記イベントレコードの少なくともいくつかの前記バンド外での検出に依拠し、前記アプリケーションの前記少なくともサブセットの2つ以上のオペレーションに更に依拠し、かつ前記ファイルシステムコンテンツに更に依拠する前記トランザクションを実行するステップと
    を含む方法。
  32. 前記コンテンツプロセッサが前記イベントレコードの少なくとも1つのバンド外検出の実行に応答して前記アプリケーションの少なくとも1つを呼び出すステップを更に含むことを特徴とする請求項31に記載の方法。
  33. 前記コンテンツプロセッサが前記ファイルシステムコンテンツアクセスイベントの所与の1つを問合せシステムに通知するステップを更に含み、これに応答して前記問合せシステムは、前記所与のファイルシステムコンテンツアクセスイベントに対して前記ファイルシステムコンテンツのインデックスの参照一貫性を維持するように構成されていることを特徴とする請求項31に記載の方法。
  34. 1つ又はそれ以上の前記メタデータレコードは、所与のファイルに対応する名前付きストリームに格納されることを特徴とする請求項31に記載の方法。
  35. 前記メタデータレコードは、拡張可能な自己記述データフォーマットで格納されることを特徴とする請求項31に記載の方法。
  36. 前記拡張可能な自己記述データフォーマットは、拡張可能なマーク付け言語(XML)フォーマットに準拠することを特徴とする請求項35に記載の方法。
  37. プログラム命令を記録したコンピュータアクセス可能な記録媒体であって、前記プログラム命令は、
    ファイルシステムが前記ストレージデバイスにより提供された前記ストレージ空間を複数のファイルを含むファイルシステムコンテンツに編成するステップと、
    前記ファイルシステムが、前記ファイルシステムとは異なるアプリケーションにより生成されたファイルシステムコンテンツアクセスイベントをバンド内での検出を実行するステップであって、前記バンド内での検出は前記検出ファイルシステムコンテンツアクセスイベントの発生と同期しているステップと、
    前記ファイルシステムコンテンツアクセスイベントの検出に応答して、前記ファイルシステムが、前記ファイルシステムコンテンツアクセスイベントを指示するそれぞれのイベントレコードを生成し、かつ前記ファイルシステムコンテンツ内に前記それぞれのイベントレコードを格納するステップと、そして
    前記アプリケーションとは異なるコンテンツプロセッサが前記イベントレコードのバンド外検出を実行するステップであって、前記アプリケーションの少なくともサブセットのメンバーは相互にまたは前記コンテンツプロセッサと直接に相互作用しないように構成され、そして前記コンテンツプロセッサによる前記バンド外検出は前記ファイルシステムコンテンツアクセスイベントが既に実行されてしまった後で発生するステップと、そして
    前記コンテンツプロセッサは、前記イベントレコードの少なくともいくつかの前記バンド外での検出に依拠し、前記アプリケーションの前記少なくともサブセットの2つ以上のオペレーションに更に依拠し、かつ前記ファイルシステムコンテンツに更に依拠する前記トランザクションを実行するステップと
    を含む方法をコンピュータに実行させることを特徴するコンピュータアクセス可能な記録媒体。
  38. 前記プログラム命令は、前記イベントレコードのバンド外検出の実行に応答して前記アプリケーションの少なくとも1つを呼び出すステップを前記コンテンツプロセッサに実行させることが更に可能であることを特徴とする請求項37に記載のコンピュータアクセス可能な記録媒体。
  39. 前記プログラム命令は、所与の1つのファイルシステムコンテンツアクセスイベントを問合せシステムに通知するステップを前記コンテンツプロセッサに実行させることが更に可能であり、これに応答して前記問合せシステムは、前記所与のファイルシステムコンテンツアクセスイベントに対して前記ファイルシステムコンテンツのインデックスの参照一貫性を維持するように構成されていることを特徴とする請求項37に記載のコンピュータアクセス可能な記録媒体。
  40. 1つ又はそれ以上の前記メタデータレコードは、所与のファイルに対応する名前付きストリームに格納されることを特徴とする請求項37に記載のコンピュータアクセス可能な記録媒体。
  41. 前記メタデータレコードは、拡張可能な自己記述データフォーマットで格納されることを特徴とする請求項37に記載のコンピュータアクセス可能な記録媒体。
  42. 前記拡張可能な自己記述データフォーマットは、拡張可能なマーク付け言語(XML)フォーマットに準拠することを特徴とする請求項41に記載のコンピュータアクセス可能な記録媒体。
JP2006541574A 2003-11-26 2004-11-19 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法 Expired - Fee Related JP4782017B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US10/723,704 2003-11-26
US10/723,704 US7328217B2 (en) 2003-11-26 2003-11-26 System and method for detecting and storing file identity change information within a file system
US10/862,505 2004-06-07
US10/862,505 US8484257B2 (en) 2003-11-26 2004-06-07 System and method for generating extensible file system metadata
PCT/US2004/039038 WO2005055093A2 (en) 2003-11-26 2004-11-19 System and method for generating extensible file system metadata and file system content processing

Publications (2)

Publication Number Publication Date
JP2007515002A JP2007515002A (ja) 2007-06-07
JP4782017B2 true JP4782017B2 (ja) 2011-09-28

Family

ID=34592346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006541574A Expired - Fee Related JP4782017B2 (ja) 2003-11-26 2004-11-19 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法

Country Status (3)

Country Link
US (4) US7328217B2 (ja)
JP (1) JP4782017B2 (ja)
CN (1) CN1906613B (ja)

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US9678967B2 (en) * 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
EP1494104B1 (fr) * 2003-06-26 2006-06-21 St Microelectronics S.A. Contrôle d'intégrité d'un programme en utilisant des statistiques
US7272606B2 (en) * 2003-11-26 2007-09-18 Veritas Operating Corporation System and method for detecting and storing file content access information within a file system
US7328217B2 (en) 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US7415480B2 (en) 2003-12-10 2008-08-19 Symantec Operating Corporation System and method for providing programming-language-independent access to file system content
US7636710B2 (en) * 2004-03-04 2009-12-22 Symantec Operating Corporation System and method for efficient file content searching within a file system
US20060047855A1 (en) 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
US7657530B2 (en) * 2004-06-07 2010-02-02 Symantec Operating Corporation System and method for file system content processing
US7831552B2 (en) 2004-06-07 2010-11-09 Symantec Operating Corporation System and method for querying file system content
US8306991B2 (en) * 2004-06-07 2012-11-06 Symantec Operating Corporation System and method for providing a programming-language-independent interface for querying file system content
US7562216B2 (en) * 2004-06-28 2009-07-14 Symantec Operating Corporation System and method for applying a file system security model to a query system
US7526686B2 (en) * 2004-08-04 2009-04-28 International Business Machines Corporation Apparatus, system, and method for active data verification in a storage system
US7437375B2 (en) * 2004-08-17 2008-10-14 Symantec Operating Corporation System and method for communicating file system events using a publish-subscribe model
US7487138B2 (en) * 2004-08-25 2009-02-03 Symantec Operating Corporation System and method for chunk-based indexing of file system content
US7707642B1 (en) * 2004-08-31 2010-04-27 Adobe Systems Incorporated Document access auditing
US7631194B2 (en) * 2004-09-09 2009-12-08 Microsoft Corporation Method, system, and apparatus for creating saved searches and auto discovery groups for a data protection system
US8145601B2 (en) 2004-09-09 2012-03-27 Microsoft Corporation Method, system, and apparatus for providing resilient data transfer in a data protection system
US7567974B2 (en) * 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US7865470B2 (en) * 2004-09-09 2011-01-04 Microsoft Corporation Method, system, and apparatus for translating logical information representative of physical data in a data protection system
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US20060074912A1 (en) * 2004-09-28 2006-04-06 Veritas Operating Corporation System and method for determining file system content relevance
US8918677B1 (en) * 2004-09-30 2014-12-23 Emc Corporation Methods and apparatus for performing data validation in a network management application
US7631004B2 (en) * 2004-10-08 2009-12-08 Microsoft Corporation Systems and methods for creating a template from an existing file
US20060095470A1 (en) * 2004-11-04 2006-05-04 Cochran Robert A Managing a file in a network environment
US7752667B2 (en) * 2004-12-28 2010-07-06 Lenovo (Singapore) Pte Ltd. Rapid virus scan using file signature created during file write
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US7552418B2 (en) 2005-01-14 2009-06-23 Microsoft Corporation Systems and methods for creating and providing templates in a single file
US7716743B2 (en) * 2005-01-14 2010-05-11 Microsoft Corporation Privacy friendly malware quarantines
US7581206B2 (en) 2005-01-14 2009-08-25 Microsoft Corporation Systems and methods for creating and providing templates in a single file
US20060218435A1 (en) * 2005-03-24 2006-09-28 Microsoft Corporation Method and system for a consumer oriented backup
US20060235903A1 (en) * 2005-04-14 2006-10-19 Rajesh Kapur Method and system for retrieving deleted and overwritten documents
US8126856B2 (en) * 2005-05-26 2012-02-28 Hewlett-Packard Development Company, L.P. File access management system
US20060277222A1 (en) * 2005-06-01 2006-12-07 Microsoft Corporation Persistent data file translation settings
US20060288185A1 (en) * 2005-06-17 2006-12-21 Dell Products L.P. System and method for implementing a common descriptor format
US8453242B2 (en) * 2005-08-12 2013-05-28 Ca, Inc. System and method for scanning handles
US7689634B2 (en) * 2005-09-16 2010-03-30 Oracle International Corporation Flexible approach to store attribute information (META-DATA) related to files of a file system
US20070073751A1 (en) * 2005-09-29 2007-03-29 Morris Robert P User interfaces and related methods, systems, and computer program products for automatically associating data with a resource as metadata
US7797337B2 (en) * 2005-09-29 2010-09-14 Scenera Technologies, Llc Methods, systems, and computer program products for automatically associating data with a resource as metadata based on a characteristic of the resource
US20070073770A1 (en) * 2005-09-29 2007-03-29 Morris Robert P Methods, systems, and computer program products for resource-to-resource metadata association
US7681185B2 (en) 2005-10-12 2010-03-16 Microsoft Corporation Template-driven approach to extract, transform, and/or load
US8458176B2 (en) * 2005-11-09 2013-06-04 Ca, Inc. Method and system for providing a directory overlay
US20070106699A1 (en) * 2005-11-09 2007-05-10 Harvey Richard H Method and system for automatic registration of attribute types
US8326899B2 (en) 2005-11-09 2012-12-04 Ca, Inc. Method and system for improving write performance in a supplemental directory
US20070112791A1 (en) * 2005-11-09 2007-05-17 Harvey Richard H Method and system for providing enhanced read performance for a supplemental directory
US8321486B2 (en) * 2005-11-09 2012-11-27 Ca, Inc. Method and system for configuring a supplemental directory
CA2631197C (en) 2005-11-28 2013-01-29 Commvault Systems, Inc. Systems and methods for data management
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US20070162510A1 (en) * 2005-12-30 2007-07-12 Microsoft Corporation Delayed file virtualization
US20070198542A1 (en) * 2006-02-09 2007-08-23 Morris Robert P Methods, systems, and computer program products for associating a persistent information element with a resource-executable pair
US8353038B1 (en) * 2006-03-21 2013-01-08 Symantec Corporation Monitoring and managing changes to non-structured storage of system configuration information
US20090265372A1 (en) * 2006-03-23 2009-10-22 Arne Esmann-Jensen Management of Document Attributes in a Document Managing System
US20070250474A1 (en) * 2006-04-24 2007-10-25 Barsness Eric L System and method for implementing flash forward queries
US7603387B2 (en) * 2006-06-16 2009-10-13 Microsoft Corporation Techniques to manage media files
US7783686B2 (en) * 2006-06-16 2010-08-24 Microsoft Corporation Application program interface to manage media files
JP2008047067A (ja) * 2006-08-21 2008-02-28 Ricoh Co Ltd カプセル化文書管理装置、カプセル化文書管理方法及びカプセル化文書管理プログラム
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US7882077B2 (en) 2006-10-17 2011-02-01 Commvault Systems, Inc. Method and system for offline indexing of content and classifying stored data
US8370442B2 (en) 2008-08-29 2013-02-05 Commvault Systems, Inc. Method and system for leveraging identified changes to a mail server
US7908292B2 (en) * 2006-12-05 2011-03-15 Nokia Corporation Metadata broker
US20080228771A1 (en) 2006-12-22 2008-09-18 Commvault Systems, Inc. Method and system for searching stored data
US20080183662A1 (en) * 2007-01-31 2008-07-31 Benjamin Clay Reed Resolving at least one file-path for a change-record of a computer file-system object in a computer file-system
US20080222348A1 (en) * 2007-03-08 2008-09-11 Scandisk Il Ltd. File system for managing files according to application
US7685211B2 (en) * 2007-03-27 2010-03-23 Microsoft Corporation Deterministic file content generation of seed-based files
JP2008269300A (ja) * 2007-04-20 2008-11-06 Hitachi Ltd 計算機システム、中間ノードおよびログ管理方法
US20090055357A1 (en) * 2007-06-09 2009-02-26 Honeywell International Inc. Data integrity checking for set-oriented data stores
US8775822B2 (en) * 2007-08-31 2014-07-08 Flexera Software, Llc Computer-implemented method and system for protecting a software installation after certification
US20090083781A1 (en) * 2007-09-21 2009-03-26 Microsoft Corporation Intelligent Video Player
US8356335B2 (en) * 2007-10-30 2013-01-15 Apple Inc. Techniques for authentication via network connections
JP4635058B2 (ja) * 2008-01-09 2011-02-16 日本電信電話株式会社 機能分散型パケット転送システム及びこれを用いた制御方法
US20090196425A1 (en) * 2008-02-06 2009-08-06 Dean Boland Method for Authenticating Electronically Stored Information
US7814074B2 (en) * 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US20090240707A1 (en) * 2008-03-18 2009-09-24 International Business Machines Corporation Event driven input data validation
US20090307137A1 (en) * 2008-06-09 2009-12-10 Microsoft Corporation Managing provenance of digitally signed data in user editable records
US20090320097A1 (en) * 2008-06-18 2009-12-24 Jackson Bruce Kelly Method for carrying out a distributed search
US8495030B2 (en) 2011-01-06 2013-07-23 International Business Machines Corporation Records declaration filesystem monitoring
US8230228B2 (en) * 2008-10-31 2012-07-24 International Business Machines Corporation Support of tamper detection for a log of records
US8566362B2 (en) * 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations
US20100199065A1 (en) * 2009-02-04 2010-08-05 Hitachi, Ltd. Methods and apparatus for performing efficient data deduplication by metadata grouping
JP2010198383A (ja) * 2009-02-25 2010-09-09 Fujitsu Ltd ストレージ装置、ソフトウェア更新方法およびソフトウェア更新プログラム
US9058491B1 (en) 2009-03-26 2015-06-16 Micron Technology, Inc. Enabling a secure boot from non-volatile memory
WO2010116539A1 (en) * 2009-04-08 2010-10-14 Hitachi, Ltd. File detection device and method
US20100306253A1 (en) * 2009-05-28 2010-12-02 Hewlett-Packard Development Company, L.P. Tiered Managed Storage Services
US8478799B2 (en) * 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
CA2766161C (en) 2009-06-26 2018-07-17 Hewlett Packard Enterprise Development Lp Scalable indexing in a non-uniform access memory
US10229191B2 (en) 2009-09-09 2019-03-12 Varonis Systems Ltd. Enterprise level data management
WO2011030324A1 (en) 2009-09-09 2011-03-17 Varonis Systems, Inc. Enterprise level data management
US9495547B1 (en) * 2009-10-28 2016-11-15 Symantec Corporation Systems and methods for applying parental-control approval decisions to user-generated content
US9336410B2 (en) * 2009-12-15 2016-05-10 Micron Technology, Inc. Nonvolatile memory internal signature generation
JP5463899B2 (ja) * 2009-12-22 2014-04-09 富士通株式会社 ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム
US8528091B2 (en) 2009-12-31 2013-09-03 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for detecting covert malware
US8442983B2 (en) 2009-12-31 2013-05-14 Commvault Systems, Inc. Asynchronous methods of data classification using change journals and other data structures
US8458519B2 (en) * 2010-01-07 2013-06-04 International Business Machines Corporation Diagnostic data set component
US8438270B2 (en) 2010-01-26 2013-05-07 Tenable Network Security, Inc. System and method for correlating network identities and addresses
US8302198B2 (en) 2010-01-28 2012-10-30 Tenable Network Security, Inc. System and method for enabling remote registry service security audits
US8707440B2 (en) * 2010-03-22 2014-04-22 Tenable Network Security, Inc. System and method for passively identifying encrypted and interactive network sessions
US9141289B2 (en) * 2010-03-30 2015-09-22 Os Nexus, Inc. Intelligent data storage utilizing one or more records
US8549650B2 (en) 2010-05-06 2013-10-01 Tenable Network Security, Inc. System and method for three-dimensional visualization of vulnerability and asset data
US9229757B2 (en) * 2010-07-19 2016-01-05 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US8990272B2 (en) 2010-07-30 2015-03-24 Nasuni Corporation Versioned file system with pruning
WO2012021515A1 (en) 2010-08-11 2012-02-16 American International Group, Inc. System, method and computer program product for compiling golden copy of securities pricing
US8799231B2 (en) 2010-08-30 2014-08-05 Nasuni Corporation Versioned file system with fast restore
JP2012080361A (ja) * 2010-10-01 2012-04-19 Sony Corp 記録装置、撮像記録装置、記録方法及びプログラム
US8661063B2 (en) 2010-10-12 2014-02-25 Nasuni Corporation Versioned file system with sharing
US8607099B2 (en) * 2010-12-17 2013-12-10 Microsoft Corporation Online fault verification in a file system
US8621276B2 (en) * 2010-12-17 2013-12-31 Microsoft Corporation File system resiliency management
US9563681B1 (en) 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
US9767098B2 (en) * 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
US9251097B1 (en) 2011-03-22 2016-02-02 Amazon Technologies, Inc. Redundant key management
US9213709B2 (en) * 2012-08-08 2015-12-15 Amazon Technologies, Inc. Archival data identification
US8548961B2 (en) 2011-03-30 2013-10-01 Splunk Inc. System and method for fast file tracking and change monitoring
US8566336B2 (en) 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
US8719264B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Creating secondary copies of data based on searches for content
US8639861B1 (en) 2011-03-31 2014-01-28 Emc Corporation Pseudo writing system and method
US8732342B1 (en) 2011-03-31 2014-05-20 Emc Corporation I/O scheduling system and method
US9479522B1 (en) * 2011-05-06 2016-10-25 Tellabs, Inc. Method and apparatus for managing content distribution using content signatures
US10331658B2 (en) * 2011-06-03 2019-06-25 Gdial Inc. Systems and methods for atomizing and individuating data as data quanta
US8332357B1 (en) 2011-06-10 2012-12-11 Microsoft Corporation Identification of moved or renamed files in file synchronization
US9753699B2 (en) 2011-06-16 2017-09-05 Microsoft Technology Licensing, Llc Live browser tooling in an integrated development environment
US9563714B2 (en) 2011-06-16 2017-02-07 Microsoft Technology Licensing Llc. Mapping selections between a browser and the original file fetched from a web server
US9460224B2 (en) * 2011-06-16 2016-10-04 Microsoft Technology Licensing Llc. Selection mapping between fetched files and source files
US8601544B1 (en) * 2011-12-21 2013-12-03 Emc Corporation Computer system employing dual-band authentication using file operations by trusted and untrusted mechanisms
CN102663274B (zh) * 2012-02-07 2015-12-02 北京奇虎科技有限公司 一种检测远程入侵计算机行为的方法及系统
US9367707B2 (en) 2012-02-23 2016-06-14 Tenable Network Security, Inc. System and method for using file hashes to track data leakage and document propagation in a network
US9043920B2 (en) 2012-06-27 2015-05-26 Tenable Network Security, Inc. System and method for identifying exploitable weak points in a network
US9088606B2 (en) 2012-07-05 2015-07-21 Tenable Network Security, Inc. System and method for strategic anti-malware monitoring
US8799662B2 (en) * 2012-07-27 2014-08-05 Adobe Systems Incorporated Method and apparatus for validating the integrity of installer files prior to installation
US9354683B2 (en) 2012-08-08 2016-05-31 Amazon Technologies, Inc. Data storage power management
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US9652487B1 (en) 2012-08-08 2017-05-16 Amazon Technologies, Inc. Programmable checksum calculations on data storage devices
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
US9092441B1 (en) 2012-08-08 2015-07-28 Amazon Technologies, Inc. Archival data organization and management
US9779035B1 (en) 2012-08-08 2017-10-03 Amazon Technologies, Inc. Log-based data storage on sequentially written media
US9250811B1 (en) 2012-08-08 2016-02-02 Amazon Technologies, Inc. Data write caching for sequentially written media
GB2507751A (en) 2012-11-07 2014-05-14 Ibm Storing data files in a file system which provides reference data files
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US10558581B1 (en) 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
US9467464B2 (en) 2013-03-15 2016-10-11 Tenable Network Security, Inc. System and method for correlating log data to discover network vulnerabilities and assets
US20140359612A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Sharing a Virtual Hard Disk Across Multiple Virtual Machines
WO2015030829A1 (en) * 2013-08-30 2015-03-05 Hewlett Packard Development Company, L.P. Network element status identification based on service
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
CN104881333B (zh) * 2014-02-27 2018-03-20 国际商业机器公司 一种存储系统及其使用的方法
US20150261811A1 (en) * 2014-03-14 2015-09-17 Netapp, Inc. Methods and systems for detecting data container modification
EP3224744A4 (en) 2014-11-28 2018-08-01 Nasuni Corporation Versioned file system with global lock
WO2017007511A1 (en) * 2015-07-06 2017-01-12 Hewlett-Packard Development Company, L.P. Data management using index change events
EP3139548B1 (en) * 2015-09-04 2018-04-11 Airbus Operations High assurance segregated gateway interconnecting different domains
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
GB2543813B (en) * 2015-10-30 2019-05-29 F Secure Corp Improved malware detection
US10489349B2 (en) * 2015-11-04 2019-11-26 Dell Products L.P. Protecting files and folders on a shared application layer
WO2017127054A1 (en) * 2016-01-19 2017-07-27 Hewlett Packard Enterprise Development Lp Accessing objects via object references
US10585861B2 (en) 2016-02-12 2020-03-10 Red Hat, Inc. Overlay-based file tagging using virtual file systems
US10540516B2 (en) 2016-10-13 2020-01-21 Commvault Systems, Inc. Data protection within an unsecured storage environment
US10609066B1 (en) * 2016-11-23 2020-03-31 EMC IP Holding Company LLC Automated detection and remediation of ransomware attacks involving a storage device of a computer network
US10389743B1 (en) 2016-12-22 2019-08-20 Symantec Corporation Tracking of software executables that come from untrusted locations
US10838821B2 (en) * 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US11194915B2 (en) 2017-04-14 2021-12-07 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for testing insider threat detection systems
US10984041B2 (en) 2017-05-11 2021-04-20 Commvault Systems, Inc. Natural language processing integrated with database and data storage management
US10192127B1 (en) * 2017-07-24 2019-01-29 Bank Of America Corporation System for dynamic optical character recognition tuning
US10346702B2 (en) 2017-07-24 2019-07-09 Bank Of America Corporation Image data capture and conversion
US11093624B2 (en) 2017-09-12 2021-08-17 Sophos Limited Providing process data to a data recorder
US20190251204A1 (en) 2018-02-14 2019-08-15 Commvault Systems, Inc. Targeted search of backup data using calendar event data
US11106627B2 (en) 2018-07-02 2021-08-31 Bank Of America Corporation Front-end validation of data files requiring processing by multiple computing systems
US11159469B2 (en) 2018-09-12 2021-10-26 Commvault Systems, Inc. Using machine learning to modify presentation of mailbox objects
US12086450B1 (en) 2018-09-26 2024-09-10 Amazon Technologies, Inc. Synchronous get copy for asynchronous storage
TWI691860B (zh) * 2018-10-23 2020-04-21 財團法人工業技術研究院 用於防禦惡意軟體攻擊電腦系統之檔案的方法與電腦系統以及對應之非暫態電腦可讀取儲存媒體
US11201949B2 (en) * 2019-01-28 2021-12-14 King.Com Ltd. Computer implemented method and computer device
CN112395284B (zh) * 2019-08-15 2025-07-01 阿里巴巴集团控股有限公司 数据处理方法、装置、数据库系统、电子设备及存储介质
CN111078450B (zh) * 2019-12-09 2023-06-02 武汉华中数控股份有限公司 嵌入式系统中文件数据未同步的检测方法
CN111737204B (zh) * 2020-06-12 2024-03-19 北京百度网讯科技有限公司 文件目录遍历方法、装置、设备和介质
US11494417B2 (en) 2020-08-07 2022-11-08 Commvault Systems, Inc. Automated email classification in an information management system
US12192214B2 (en) 2021-05-05 2025-01-07 Sophos Limited Mitigating threats associated with tampering attempts
US20230014029A1 (en) * 2021-07-06 2023-01-19 Sap Se Local indexing for metadata repository objects
US12169684B2 (en) * 2022-02-18 2024-12-17 Equisolve, Inc. System and method for providing accessibility of files over a communications network
US12346375B2 (en) * 2023-11-28 2025-07-01 Dish Network Technologies India Private Limited Automated enhancement of metadata in media program database

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244915A (ja) * 2001-02-16 2002-08-30 Canon Inc データ管理方法及び装置及び記憶媒体
JP2003244615A (ja) * 2002-02-15 2003-08-29 Canon Inc 情報処理装置及び方法

Family Cites Families (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286013B1 (en) * 1993-04-01 2001-09-04 Microsoft Corporation Method and system for providing a common name space for long and short file names in an operating system
US5623657A (en) 1993-12-30 1997-04-22 International Business Machines Corporation System for processing application programs including a language independent context management technique
US5638509A (en) * 1994-06-10 1997-06-10 Exabyte Corporation Data storage and protection system
US6185514B1 (en) * 1995-04-17 2001-02-06 Ricos International, Inc. Time and work tracker with hardware abstraction layer
US5907837A (en) 1995-07-17 1999-05-25 Microsoft Corporation Information retrieval system in an on-line network including separate content and layout of published titles
JPH0934763A (ja) * 1995-07-19 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置およびファイル管理方法
US6374260B1 (en) 1996-05-24 2002-04-16 Magnifi, Inc. Method and apparatus for uploading, indexing, analyzing, and searching media content
US6026474A (en) 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
FR2757661B1 (fr) * 1996-12-24 1999-01-22 Gemplus Card Int Procede de transfert securise de donnees par un reseau de communication
US5890147A (en) 1997-03-07 1999-03-30 Microsoft Corporation Scope testing of documents in a search engine using document to folder mapping
US6505212B2 (en) * 1998-02-04 2003-01-07 Interwoven Inc System and method for website development
US6098079A (en) * 1998-04-02 2000-08-01 Mitsubishi Electric Information Technology Center America, Inc. (Ita) File version reconciliation using hash codes
US6240401B1 (en) 1998-06-05 2001-05-29 Digital Video Express, L.P. System and method for movie transaction processing
US6226618B1 (en) 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6240429B1 (en) 1998-08-31 2001-05-29 Xerox Corporation Using attached properties to provide document services
US6356903B1 (en) * 1998-12-30 2002-03-12 American Management Systems, Inc. Content management system
US6922708B1 (en) * 1999-02-18 2005-07-26 Oracle International Corporation File system that supports transactions
JP2000276387A (ja) * 1999-03-23 2000-10-06 Toshiba Corp メタデータ登録方法および装置、データサーバ装置、並びにメタデータ登録用プログラムを記憶した記憶媒体
US7003721B1 (en) * 1999-06-15 2006-02-21 Microsoft Corporation Safe save method of HTML files using recovery files including a list with temporary and final names for replacement files
US6389433B1 (en) * 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
US6363386B1 (en) 1999-07-26 2002-03-26 Microsoft Corporation System and method for managing property information related to a resource
US6842758B1 (en) 1999-07-30 2005-01-11 Computer Associates Think, Inc. Modular method and system for performing database queries
EP1087306A3 (en) * 1999-09-24 2004-11-10 Xerox Corporation Meta-documents and method of managing them
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6522268B2 (en) 2000-01-05 2003-02-18 Realnetworks, Inc. Systems and methods for multiple-file data compression
US7043488B1 (en) 2000-01-21 2006-05-09 International Business Machines Corporation Method and system for storing hierarchical content objects in a data repository
US6732331B1 (en) * 2000-02-15 2004-05-04 Vlad Alexander System and process for managing content organized in a tag-delimited template using metadata
US7035850B2 (en) * 2000-03-22 2006-04-25 Hitachi, Ltd. Access control system
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
JP2002055995A (ja) 2000-05-31 2002-02-20 Canon Inc 情報処理方法及び装置
US7020658B1 (en) 2000-06-02 2006-03-28 Charles E. Hill & Associates Data file management system and method for browsers
JP2002082825A (ja) * 2000-06-23 2002-03-22 Sharp Corp ファイル管理方法
US6938083B1 (en) 2000-07-21 2005-08-30 Unisys Corporation Method of providing duplicate original file copies of a searched topic from multiple file types derived from the web
US7350204B2 (en) 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
WO2002025473A1 (en) * 2000-09-21 2002-03-28 Integrity Pc Innovations, Inc. An automatic real-time file management method and apparatus
US8032542B2 (en) * 2000-10-26 2011-10-04 Reynolds Mark L Creating, verifying, managing, and using original digital files
US7194743B2 (en) * 2000-12-12 2007-03-20 Citrix Systems, Inc. Methods and apparatus for communicating changes between a user interface and an executing application using property paths
US6839721B2 (en) * 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
US20030051026A1 (en) * 2001-01-19 2003-03-13 Carter Ernst B. Network surveillance and security system
US7016920B2 (en) * 2001-05-25 2006-03-21 International Business Machines Corporation Method for tracking relationships between specified file name and particular program used for subsequent access in a database
US7058624B2 (en) 2001-06-20 2006-06-06 Hewlett-Packard Development Company, L.P. System and method for optimizing search results
US6799184B2 (en) 2001-06-21 2004-09-28 Sybase, Inc. Relational database system providing XML query support
US6643654B1 (en) * 2001-06-25 2003-11-04 Network Appliance, Inc. System and method for representing named data streams within an on-disk structure of a file system
US20030188160A1 (en) * 2001-08-02 2003-10-02 Singam Sunder Method and system to securely update files via a network
US6851070B1 (en) * 2001-08-13 2005-02-01 Network Appliance, Inc. System and method for managing time-limited long-running operations in a data storage system
US6935951B2 (en) * 2001-09-04 2005-08-30 Igt Electronic signature capability in a gaming machine
US6687701B2 (en) * 2001-09-25 2004-02-03 Hewlett-Packard Development Company, L.P. Namespace management in a distributed file system
US20030154271A1 (en) 2001-10-05 2003-08-14 Baldwin Duane Mark Storage area network methods and apparatus with centralized management
US20030093509A1 (en) * 2001-10-05 2003-05-15 Li Raymond M. Storage area network methods and apparatus with coordinated updating of topology representation
US7171468B2 (en) 2001-11-10 2007-01-30 Kabushiki Kaisha Toshiba System and method for accessing a document management repository
US6976241B2 (en) 2001-11-14 2005-12-13 Intel Corporation Cross platform administrative framework
US20030172368A1 (en) 2001-12-26 2003-09-11 Elizabeth Alumbaugh System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology
WO2003060774A1 (en) 2002-01-15 2003-07-24 Network Appliance, Inc. Active file change notification
US6862604B1 (en) * 2002-01-16 2005-03-01 Hewlett-Packard Development Company, L.P. Removable data storage device having file usage system and method
US7058890B2 (en) 2002-02-13 2006-06-06 Siebel Systems, Inc. Method and system for enabling connectivity to a data system
US6768943B2 (en) * 2002-04-18 2004-07-27 Aviation Communication & Surveillance Systems, Llc System and method using environment memory having signatures
JP2005526350A (ja) * 2002-05-17 2005-09-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 情報を保存する装置及び方法。
US6970866B1 (en) 2002-05-31 2005-11-29 Adobe Systems Incorporated Filter file system
US6925541B2 (en) * 2002-06-12 2005-08-02 Hitachi, Ltd. Method and apparatus for managing replication volumes
CA2391717A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Transferring data and storing metadata across a network
US7444317B2 (en) * 2002-06-28 2008-10-28 Microsoft Corporation System and method for managing file names for file system filter drivers
US7051053B2 (en) * 2002-09-30 2006-05-23 Dinesh Sinha Method of lazily replicating files and monitoring log in backup file system
US7028031B1 (en) * 2002-11-27 2006-04-11 Adobe Systems Incorporated Repairing links in deactivated files
US7289973B2 (en) * 2002-12-19 2007-10-30 Mathon Systems, Inc. Graphical user interface for system and method for managing content
US7013331B2 (en) 2002-12-20 2006-03-14 Nokia, Inc. Automated bulk configuration of network devices
US7318163B2 (en) 2003-01-07 2008-01-08 International Business Machines Corporation System and method for real-time detection of computer system files intrusion
US20040225730A1 (en) 2003-01-17 2004-11-11 Brown Albert C. Content manager integration
US8244712B2 (en) 2003-03-18 2012-08-14 Apple Inc. Localized viewing of file system names
US20040243554A1 (en) 2003-05-30 2004-12-02 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis
US20050015461A1 (en) * 2003-07-17 2005-01-20 Bruno Richard Distributed file system
US7213036B2 (en) 2003-08-12 2007-05-01 Aol Llc System for incorporating information about a source and usage of a media asset into the asset itself
US7849112B2 (en) 2003-09-03 2010-12-07 Emc Corporation Using a file handle for associating the file with a tree quota in a file server
US7324473B2 (en) 2003-10-07 2008-01-29 Accenture Global Services Gmbh Connector gateway
US20050091535A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Application identity for software products
US7272606B2 (en) 2003-11-26 2007-09-18 Veritas Operating Corporation System and method for detecting and storing file content access information within a file system
US7328217B2 (en) 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
US7188118B2 (en) 2003-11-26 2007-03-06 Veritas Operating Corporation System and method for detecting file content similarity within a file system
US7415480B2 (en) 2003-12-10 2008-08-19 Symantec Operating Corporation System and method for providing programming-language-independent access to file system content
US7636710B2 (en) 2004-03-04 2009-12-22 Symantec Operating Corporation System and method for efficient file content searching within a file system
US7831552B2 (en) 2004-06-07 2010-11-09 Symantec Operating Corporation System and method for querying file system content
US7657530B2 (en) 2004-06-07 2010-02-02 Symantec Operating Corporation System and method for file system content processing
US8306991B2 (en) 2004-06-07 2012-11-06 Symantec Operating Corporation System and method for providing a programming-language-independent interface for querying file system content
US20060059204A1 (en) 2004-08-25 2006-03-16 Dhrubajyoti Borthakur System and method for selectively indexing file system content
US20060074912A1 (en) 2004-09-28 2006-04-06 Veritas Operating Corporation System and method for determining file system content relevance
US7459093B1 (en) * 2006-04-13 2008-12-02 Advanced Numicro Systems, Inc. MEMS mirror made from topside and backside etching of wafer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002244915A (ja) * 2001-02-16 2002-08-30 Canon Inc データ管理方法及び装置及び記憶媒体
JP2003244615A (ja) * 2002-02-15 2003-08-29 Canon Inc 情報処理装置及び方法

Also Published As

Publication number Publication date
US7653647B2 (en) 2010-01-26
US8484257B2 (en) 2013-07-09
US20050114381A1 (en) 2005-05-26
US7328217B2 (en) 2008-02-05
US20080126374A1 (en) 2008-05-29
CN1906613A (zh) 2007-01-31
US20050114363A1 (en) 2005-05-26
JP2007515002A (ja) 2007-06-07
US20050114338A1 (en) 2005-05-26
CN1906613B (zh) 2010-10-20
US7912866B2 (en) 2011-03-22

Similar Documents

Publication Publication Date Title
JP4782017B2 (ja) 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法
US7657530B2 (en) System and method for file system content processing
US7437375B2 (en) System and method for communicating file system events using a publish-subscribe model
US7831552B2 (en) System and method for querying file system content
US7562216B2 (en) System and method for applying a file system security model to a query system
WO2005055093A2 (en) System and method for generating extensible file system metadata and file system content processing
US7487138B2 (en) System and method for chunk-based indexing of file system content
US20060059204A1 (en) System and method for selectively indexing file system content
US6996566B1 (en) Method and system for an object model with embedded metadata and mapping information
US6990656B2 (en) Dynamic metabase store
US20060074912A1 (en) System and method for determining file system content relevance
US9384301B2 (en) Accessing objects in a service registry and repository
US8306991B2 (en) System and method for providing a programming-language-independent interface for querying file system content
US20060190469A1 (en) Serialization of file system item(s) and associated entity(ies)
KR20070121664A (ko) 데이터 저장 시스템에서 데이터를 조작하는 시스템 및 방법
CN100409240C (zh) 文件系统中有效文件内容搜索的系统和方法
US20060259854A1 (en) Structuring an electronic document for efficient identification and use of document parts
US7415480B2 (en) System and method for providing programming-language-independent access to file system content
US20100205144A1 (en) Creating searchable revisions of a resource in a repository
Haustein et al. Optimizing concurrent XML processing
Saraswatipura et al. IBM Db2 11.1 Certification Guide: Explore techniques to master database programming and administration tasks in IBM Db2
Python et al. Foundation Db2 and Python
Storer Graffiti Server—Design and Implementation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100803

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110207

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110425

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110706

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

Free format text: PAYMENT UNTIL: 20140715

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4782017

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350