JP2007527074A - ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム及び方法 - Google Patents

ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム及び方法 Download PDF

Info

Publication number
JP2007527074A
JP2007527074A JP2007501967A JP2007501967A JP2007527074A JP 2007527074 A JP2007527074 A JP 2007527074A JP 2007501967 A JP2007501967 A JP 2007501967A JP 2007501967 A JP2007501967 A JP 2007501967A JP 2007527074 A JP2007527074 A JP 2007527074A
Authority
JP
Japan
Prior art keywords
file
record
data pattern
given data
index
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.)
Granted
Application number
JP2007501967A
Other languages
English (en)
Other versions
JP4944008B2 (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 ヴェリタス・オペレーティング・コーポレーション
Publication of JP2007527074A publication Critical patent/JP2007527074A/ja
Application granted granted Critical
Publication of JP4944008B2 publication Critical patent/JP4944008B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/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/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム及び方法。1つの実施形態において、本システムは、データを記憶するように構成されたストレージデバイスと、ストレージデバイスへのアクセスを管理するように構成されたファイルシステムを含む。ファイルシステムは、サーチオペレーションを検出しストレージデバイスに記憶された第1ファイル内の所与のデータパターンの存在を判定し、第1ファイルに関連した第1レコードに所与のデータパターンの指標とサーチオペレーションの結果データの指標を記憶するように構成される。
【選択図】図2

Description

本発明はコンピュータシステムに関し、更に具体的にはストレージシステムに関する。
コンピュータシステムは、アプリケーションデータやこうしたデータを処理するように構成された実行可能コードを含む大量の情報を処理することが多い。多数の実施形態において、コンピュータシステムは、磁気と光ディスクドライブ、テープドライブなどのデータを記憶するように構成された大容量ストレージデバイスの種々のタイプを備えている。これらの記憶されたデータにアクセスするための標準のシステム化されたインターフェースを設けるために、こうしたストレージデバイスは、オペレーティングシステムのようなソフトウェアによってファイル階層に編成されることが多い。多くの場合ファイルは、ユーザーがストレージデバイス内で操作できるデータ細分性の最小レベルを定義するが、種々のアプリケーションとオペレーティングシステムプロセスは、ファイル全体よりも細分性が低いレベルでファイル内のデータ上で動作する場合がある。
従来の多くのファイルベースコンピュータシステムでは、関心対象のデータをストレージシステムの異種論理と物理エリアに位置付けられた多数のファイルにわたり分散させている。様々なコンピューティングプラットフォームは、テキストストリングスなどの特定のデータパターンをどのファイルが含むかをユーザーが決定することができるサーチアプリケーションの種々のタイプを提供する場合が多い。例えば、コード開発者は、このようなサーチアプリケーションを使用して、大きく複雑なコードベース内のどのファイルが特定の修正ストリングを含むのかを識別し、これらのファイルをオペレーション用に選択することができるようにする。
しかしながら、典型的なサーチアプリケーションは、ほとんどの場合所与のデータパターンがともかく所与のファイル内に存在する場合に総ファイルコンテンツのごく一部を含むとしても、所与のデータパターンが当該ファイル内に発生するかどうかを判定するためにファイルの全コンテンツを読取ることを必要とする。更に、多くの典型的なサーチアプリケーションには履歴がなく、その結果、所与のファイル内の所与のデータパターンのサーチが繰り返される場合には、サーチの途中でファイルの全コンテンツを再調査する場合がある。このような冗長ファイルアクセスは、ファイルコンテンツサーチを頻繁に実行するシステムの性能を大幅に低下させる恐れがある。
ファイルシステム内における効率的なファイルコンテンツサーチのためのシステム及び方法の種々の実施態様が開示される。1つの実施態様において、本システムは、データを記憶するように構成されたストレージデバイスと、ストレージデバイスへのアクセスを管理するように構成されたファイルシステムを含む。ファイルシステムは、サーチオペレーションを検出し、ストレージデバイスに記憶された第1ファイル内の所与のデータパターンの存在を判定し、所与のデータパターンの指標とサーチオペレーションの結果データの指標とを第1ファイルに関連する第1レコードに記憶するように構成する。
本システムの1つの特定の実装において、サーチオペレーションの検出に続いて、ファイルシステムは、第1レコードをスキャンし所与のデータパターンの指標が第1レコードに記憶されているかどうかを判定し、指標が第1レコードに記憶されている判定に応じて第1ファイルの部分だけにアクセスするように更に構成することができる。
本システムの別の特定の実装においては、所与のデータパターンが第1ファイルに存在しない場合、ファイルシステムは、第1レコードに所与のデータパターンの指標を記憶するように更に構成することができる。他方、所与のデータパターンが第1ファイルに存在する場合、ファイルシステムは、第2レコードに所与のデータパターンの指標とパターンロケーション情報を記憶するように更に構成することができる。
1つの実施態様において、複数のファイルを記憶するステップと、サーチオペレーションを検出し第1ファイル内の所与のデータパターンの存在を判定するステップと、所与のデータパターンの指標とサーチオペレーションの結果データの指標とを第1ファイルに関連する第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)、ATアタッチメントパケット・インターフェース(ATAPI)、Firewire、及び/又はユニバーサルシリアルバス(USB)を含むことができるが、他のインターフェースタイプを含む多数の他の実施形態も可能であり企図される。
単一のコンピュータシステム内で実装されたストレージシステム10の実施形態では、ストレージシステム10は、1つ又はそれ以上の他のコンピュータシステム(図示せず)に対するデータ記憶要件の大部分を提供するように構成され、このような他のコンピュータシステムと通信するように構成されている。別の実施形態において、ストレージシステム10は、例えばストレージエリアネットワーク(SAN)のような分散型ストレージシステムとして構成させることができる。このような実施形態において、例えばホストデバイス20は、サーバシステムなどの個々のコンピュータシステムとすることができ、システムメモリ25は、ダイナミックRAM(DRAM)の1つ又はそれ以上のタイプからなることができ、ストレージデバイス30は、1つ又はそれ以上のハードディスクドライブ又は他のタイプのストレージデバイスを各々が含む独立型ストレージノードなどであり、更にシステム相互接続40は、イーサネット又はファイバーチャネルのような通信ネットワークなどである。ストレージシステム10の分散型ストレージ構成は、ストレージシステムの容量や、ホストとストレージデバイス間のデータ帯域幅のスケーリングを容易にすることができる。
更に別の実施形態において、ストレージシステム10を、混成型ストレージシステムとして構成することができ、ここでは幾つかのストレージデバイス30が幾つかのホストデバイス20と同じコンピュータシステム内に統合され、他のストレージデバイス30がネットワーク間で他のホストデバイス20に結合される独立型デバイスとして構成される。このような混成型ストレージシステムでは、システム相互接続40は、上述の周辺バスとネットワーク相互接続のような多種多様な相互接続メカニズムを含むことができる。
2つのホストデバイス20と2つのストレージデバイス30が図1に示されているが、ストレージシステム10は他の実施形態ではこれらのタイプのデバイスの各々の任意の数を有することができることに留意されたい。またストレージシステム10の幾つかの実施形態においては、システムメモリ25の1つより多いインスタンスは、例えば他のホストデバイス20又はストレージデバイス30で用いることができる。更に、幾つかの実施形態において、所与のシステムメモリ25は、ホストデバイス20とストレージデバイス30の外部に存在することができ、所与のホストデバイス20又はストレージデバイス30に直接結合させることができ、或いはシステム相互接続40を介して間接的に結合させることができる。
ストレージシステム10の多くの実施形態において、1つ又はそれ以上のホストデバイス20は、プログラム命令を実行し、データを参照し、これによってコンピュータ機能を果たすように構成される。幾つかの実施形態において、システムメモリ25は、このようなプログラム命令とデータを記憶するように構成されたコンピュータアクセス可能媒体の1つの実施形態である。しかしながら、他の実施形態においては、プログラム命令及び/又はデータは、受け取られ、送られ、或いはコンピュータアクセス可能媒体の様々なタイプに記憶される。一般に、コンピュータアクセス可能媒体は、磁気又は光媒体のような記憶媒体又はメモリ媒体(例えばストレージデバイス30としてストレージシステム10に含まれるディスク又はCD−ROM)を含む。コンピュータアクセス可能媒体はまた、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの揮発性又は不揮発性媒体を含み、ストレージシステム10の幾つかの実施形態においてはシステムメモリ25として含めることができる。更に、コンピュータアクセス可能媒体は、ストレージシステム10の幾つかの実施形態においてシステム相互接続40として含めることができるネットワーク及び/又は無線リンクのような通信媒体を介して伝達される、電気、電磁、又はデジタル信号などの伝送媒体又は信号を含む。
幾つかの実施形態において、上述のようなコンピュータアクセス可能媒体内に記憶されたプログラム命令とデータは、種々のアプリケーションプログラムの実行環境を提供可能なオペレーティングシステムを実装される。例えば、所与のホストデバイス20は、Microsoft Windowsオペレーティングシステム、Unixオペレーティングシステム、Apple Macintoshオペレーティングシステム、又は別の適切なオペレーティングシステムのあるバージョンを実行するように構成させることができる。更に、所与のホストデバイスは、他の多くの利用可能なアプリケーションの中でもワードプロセッサ、ウェブブラウザ及び/又はサーバ、電子メールクライアント及び/又はサーバ及びマルチメディアアプリケーションといったアプリケーションプログラムを実行するように構成させることができる。
所与のホストデバイス20上での実行中、オペレーティングシステム又は所与のアプリケーションのいずれかは、所与のストレージデバイス30からロードされ、或いは該デバイスに記憶されたデータに対してリクエストを生成する。例えば、オペレーティングシステムの一部又はアプリケーション自体に対応するコードは、所与のストレージデバイス30上に記憶させることができ、そのため、求められるオペレーションシステムルーチン又はアプリケーションプログラムの呼出しに応じて、対応するコードを実行するために検索することができる。同様に、オペレーティングシステム又はアプリケーションの実行は、記憶されることになるデータを生成する。
多くのオペレーティングシステムの実施形態は、ストレージデバイス30が提供した記憶スペースをファイルに編成するためのデータ構造と制御構造を提供する。種々の実施形態において、データ構造は、例えば各ファイルのアイデンティティ、ストレージデバイス30内のそのロケーション(例えば特定のストレージデバイス内の特定の物理ロケーションへのマッピング)、さらに以下に更に詳細に説明するような各ファイルについての他の情報などの情報を記憶するように構成された1つ又はそれ以上のテーブルを含む。また種々の実施形態において、制御構造は、例えばファイルアイデンティティを変更するためや、以下に更に詳細に説明するようなファイルコンテンツを修正するための関数呼び出しなどのファイルを操作するための実行可能ルーチンをも含む。総称して、これらのデータ構造と制御構造を本明細書ではファイルシステムと呼び、所与のファイルシステムによって実装される特定のデータフォーマットやプロトコルを本明細書ではファイルシステムのフォーマットと呼ぶことがある。
幾つかの実施形態において、ストレージデバイス30上に記憶されたデータへのどのようなアクセスもファイルシステムの制御構造とデータ構造によって管理されるように、ファイルシステムをオペレーティングシステムに統合することができる。種々のオペレーティングシステムは、種々のフォーマットを使用して種々のネイティブファイルシステムを実装することができるが、幾つかの実施形態では、所与のオペレーティングシステムは、他のオペレーティングシステムに固有のファイルシステムフォーマットを含むファイルシステムフォーマットの複数の異なるタイプをサポートするファイルシステムを含むこともできる。このような実施形態において、ファイルシステムによってサポートされる種々のファイルシステムフォーマットを本明細書ではローカルファイルシステムと呼ぶことがある。更に幾つかの実施形態において、ファイルシステムは、図2に示されるように階層的に配置された機能性の複数のレイヤを使用し実装されてもよい。
図2は、ストレージデバイスに対するオペレーティングシステムアーキテクチャとそのインターフェースの1つの実施形態を示す。図示の実施形態において、オペレーティングシステム200は、ユーザースペース210とカーネルスペース220とを含む。ユーザースペース210は、複数のプロセス212A−Cを含み、その各々は、所与のユーザーアプリケーションに対応する。幾つかの実施形態において、ユーザースペース210内の幾つかのアプリケーションプロセス212は、オペレーティングシステム200とは別個のものでもよい。このようなプロセスは、オペレーティングシステム200によって提供される環境内で動作するか、或いはオペレーティングシステム200の「上で」動作すると言える。プロセス212の各々は、アプリケーションプログラミング・インターフェース(API)214への呼出しを介してストレージデバイス230A−Cにアクセスするように構成される。API214は、ファイルシステム205へのアクセスに関するプロセス212を提供し、カーネルスペース220内で機能するように構成される。1つの実施形態において、ストレージデバイス230は、図1のストレージデバイス30の例とすることができる。同様に、1つの実施形態において、オペレーティングシステム200、その構成要素のいずれか、及び/又はプロセス212のいずれかは、例えば図1のシステムメモリ25のようなコンピュータアクセス可能媒体内に記憶されたプログラム命令とデータとして図1の1つ又はそれ以上のホストデバイス20上で実行するように構成させることができる。
図1のストレージシステム10に関して上述されたように、所与のホストデバイス20は、所与のストレージデバイス30とは異なるコンピュータシステムに存在することができ、更にネットワークを介して当該ストレージデバイスにアクセスできる。同様に、オペレーティングシステム200に関して1つの実施形態では、プロセス212Aのような所与のプロセスはリモートで実行することができ、ネットワークにわたりストレージデバイス230にアクセスすることができる。図示の実施形態では、ファイルシステム200は、リモートプロセスによるファイルシステムへのアクセスをサポートするためにネットワークプロトコル225を含む。幾つかの実施形態において、ネットワークプロトコル225は、例えばネットワークファイルシステム(NFS)プロトコル又は共有インターネットファイルシステム(CIFS)プロトコルに対するサポートを含むことができるが、いずれかの適切なネットワークプロトコルを利用してもよく、複数のこのようなプロトコルを幾つかの実施形態でサポートすることができることを企図されている。
ファイルシステム205を、複数のローカルファイルシステムをサポートするように構成することができる。図示の実施形態では、ファイルシステム205は、VERITAS(VxFS)専用フォーマットローカルファイルシステム240A、Berkeley高速ファイルシステム(FFS)フォーマットローカルファイルシステム240B、別の専用(X)フォーマットローカルファイルシステム240Xを含む。しかしながら、他の実施形態においてはローカルファイルシステムフォーマットのどのような数又は組合せもファイルシステム205によってサポートすることができる。共有インターフェースを種々のローカルファイルシステム240に提供するために、ファイルシステム205は仮想ファイルシステム222を含む。1つの実施形態において、仮想ファイルシステム222は、プロセス212から生じるファイルシステムオペレーションを各オペレーションがターゲットとする特定のローカルファイルシステム240に適用可能なフォーマットに変換するように構成される。更に、図示の実施形態では、オペレーティングシステム200は、ローカルファイルシステム240がストレージデバイス230にアクセスできるデバイスドライバ224を含む。デバイスドライバ224は、ストレージデバイス230によって利用されるインターフェースのタイプに固有のデータ転送プロトコルを実装することができる。例えば1つの実施形態において、デバイスドライバ224は、SCSI及びATAPIインターフェースにわたってデータを転送するようにサポートすることができるが、他の実施形態ではデバイスドライバ224は、インターフェースの他のタイプや組合せをサポートすることができる。
図示の実施形態では、ファイルシステム205はフィルタドライバ221を含む。幾つかの実施形態において、フィルタドライバ221は、ファイルシステム205に入る各オペレーションをモニターし、特定のタイプのオペレーションの後で、付加的なオペレーションを実行させるか、或いは検出されたオペレーションの動作を変更させるように構成される。例えば1つの実施形態において、フィルタドライバ221は、ファイルシステム性能を向上させるために複数の書込みオペレーションを組み合わせて単一の書込みオペレーションにするように構成させることもできる。別の実施形態において、フィルタドライバ221を、当該ファイルへの書込みの検出の後にそのファイルのシグニチャを計算するように構成することができる。更に別の実施形態において、フィルタドライバ221は、以下に更に詳細に説明されるように、特定のファイルに対するある種のオペレーションの検出の後でこれらのファイルに関連付けられたレコードなどの情報を記憶するように構成される。幾つかの実施形態において、フィルタドライバ221は、具体的には言及されていない他のフィルタオペレーションを含む前述のオペレーションの1つ又はそれ以上の組合せを実装するように構成される。
フィルタドライバ221はファイルシステム205の一部であり、ユーザースペース210内のアプリケーション又はプロセスではない点に留意されたい。従って、フィルタドライバ221は、ユーザースペース210内のアプリケーションやプロセスに関係なく動作するように構成される。或いは、又は上記に加えて、フィルタドライバ221は、ユーザースペース210内のアプリケーション又はプロセスから受け取られたリクエストに応じてオペレーションを行うように構成されてもよい。
幾つかの実施形態においてカーネルスペース220は、ユーザースペースプロセス212に類似したストレージデバイス230へのアクセスを生じさせるプロセス(図示せず)を含むことができる点に更に留意されたい。このような実施形態では、カーネルスペース220で実行するプロセスは、ユーザースペースプロセス212に類似の方法でカーネルモードAPI(図示せず)を介してファイルシステム205にアクセスするように構成される。従って幾つかの実施形態においては、アクセスオペレーションを生じるプロセスのタイプ又はスペースに関係なく、ストレージデバイス230への全てのアクセスをファイルシステム205によって処理することができる。
オペレーティングシステム200とファイルシステム205の多くの代替の実施形態が可能であり企図される。例えば、ファイルシステム205は、ローカルファイルシステム240の種々の数やフォーマット、或いは単一のローカルファイルシステム240だけをサポートすることができる。幾つかの実施形態において、ネットワークプロトコル225は省略することができ、或いはファイルシステム205の外部のオペレーティングシステム200の一部に統合させることができる。同様に、幾つかの実施形態において仮想ファイルシステム222は省略可能であり、或いは、例えば単一のローカルファイルシステム240だけが使用中である場合に無効にされる。更に、幾つかの実施形態においてフィルタドライバ221は、ファイルシステム205の異なるレイヤ内に実装される。例えば、1つの実施形態においてフィルタドライバ221を仮想ファイルシステム222に統合することができ、別の実施形態においてフィルタドライバ221のインスタンスをローカルファイルシステム240の各々に実装させることができる。
ファイルサーチオペレーションの最適化
上述のように、ファイルシステム205は、ストレージデバイス230上に記憶された複数のファイルへのアクセスを管理するように構成されている。幾つかの実施形態において、オペレーティングシステム200及び/又はプロセス212は、1つ又はそれ以上のファイルをサーチし、サーチされたファイルが特定のデータパターンを含むかどうかを判定するように構成される。例えば、Unixの「grep」、「egrep」、又は「fgrep」コマンド或いはMicrosoft Windowsの「file search」ユーティリティなどのアプリケーションプログラムを呼び出して、特定のテキストストリングスがファイルの1つのセットに存在するかどうかを判定することができる。幾つかの実施形態において、サーチアプリケーションは、例えば正規表現のような任意の複雑性のデータパターンを指定することができる。また幾つかの実施形態では、サーチアプリケーションは、文字パターンやファイルに加えてバイナリデータパターンとファイルを処理するように構成してもよい。
呼び出されると、サーチアプリケーションは、例えばプロセス212の1つとして実行され、指定されたファイルのコンテンツを検索するためにファイルシステム205に対する読取りオペレーションを生成する。サーチアプリケーションによっては、ワイルドカードの使用、フォルダ又はディレクトリ名の指定、或いは他のいずれかの適切な手段で複数のファイル名をサーチアプリケーションへの引数として規定することにより、サーチオペレーションのターゲットとして複数のファイルを指定することができる。各指定されたファイルからのデータがファイルシステム205を介して検索されると、サーチアプリケーションは、いずれかの適切なサーチアルゴリズムを用いて検索データを調べ、指定されたサーチデータパターンを含むかどうかを判定する。サーチアプリケーションの実装によっては、所与のファイルのサーチは、サーチデータパターンの(あるとすれば)第1のマッチ又は指定された数のマッチが検出されると終了し、或いはファイルの最後に達するまで継続し、検出された全てのマッチを報告する。幾つかの実施形態において、サーチアプリケーション機能のこれら又は他の態様を、コマンドライン引数、メニュー、又は類似の手段を介してユーザーが選択することができる。
幾つかの従来の実施形態では、サーチアプリケーションは、同一のサーチ(すなわち同じデータパターン及びターゲットファイルセットを指定すること)が既に実行されている場合でも、各指定ファイルの全体の読取りを行うことがある。このような状況下でファイルに余分にアクセスすることは、場合によってはファイルシステム使用率を増大させ、システム性能全体を低下させる可能性がある。例えばこのような実施形態では、同じファイルでの同じパターンの2つの連続したサーチは各々、全ての対応するファイルデータが二度読取られサーチされることになり、これは、サーチを一回実行することよりもかなり長い処理時間を要する可能性がある。
1つの実施形態において、ファイルシステム205は、ファイル上のサーチオペレーションを検出し、このようなサーチオペレーションによって指定されたデータパターンやサーチ結果データを、サーチされたファイルに対応するレコードに記憶するように構成される。図3は、ファイルシステムの1つのこのような実施形態を示す。図3に示されたファイルシステム205の実施形態は、図2の実施形態に示された要素を含むことができるが、理解し易いようにこれらの要素の一部は図示していない。図示の実施形態では、ファイルシステム205は、フィルタドライバ221、任意の数のファイル310a−n、ファイル310a−nの各々に関連したそれぞれのメタデータ名前付きストリーム320a−nを含む。ファイルシステム205は更に、ファイル310a−nの各々に関連したそれぞれのネガティブサーチ名前付きストリーム330a−nとそれぞれのポジティブサーチ名前付きストリーム340a−nを含む。ファイル310a−n又は名前付きストリーム320a−n、330a−n、又は340a−nの1つの汎用例は、ファイル310又は名前付きストリーム320、330又は340とそれぞれ呼ぶことができ、ファイル310a−nと名前付きストリーム320a−n、330a−n、又は340a−nを総称して、それぞれファイル310及び名前付きストリーム320、330、又は340と呼ぶことができる点に留意されたい。
ファイル310は、ファイルシステム205によって管理されるファイルを表わす。ファイル310の各々は、単にメタデータ320と呼ぶことができる対応するメタデータ名前付きストリーム320を有する。メタデータ名前付きストリーム320の各々は、本明細書ではメタデータと呼ぶ対応するファイルについての情報を記憶するように構成されている。種々の実施形態において、メタデータは、(限定ではないが)ファイルアイデンティティ、サイズ、所有権、ファイルアクセス許可を含み、さらに以下に説明されるように検出されたサーチオペレーションに対応するレコードなどの情報を含む。図示の実施形態では、フィルタドライバ221は、ファイル310のファイルデータや対応するメタデータストリーム320のファイルメタデータの読取り及び書込みを協働するように構成される。
更に図示の実施形態において、ファイル310の各々は、単にネガティブストリーム330と呼ぶことができる対応するネガティブサーチ名前付きストリーム330と、単にポジティブストリーム340と呼ぶことができる対応するポジティブサーチ名前付きストリーム340とを有する。ネガティブストリーム330とポジティブストリーム340の各々は、以下に更に詳細に説明するように対応するファイル310上で実行されるサーチオペレーションに関する情報を記憶するように構成されている。図示の実施形態では、フィルタドライバ221は、ネガティブストリーム330とポジティブストリーム340のためのこのようなサーチオペレーションレコードの読取り及び書込みを協働するように構成させることができる。
ファイル310、メタデータ320、ネガティブストリーム330、ポジティブストリーム340は、図2のストレージデバイス230のような1つ又はそれ以上のストレージデバイス上に物理的に記憶させることができる点に留意されたい。しかしながら、例の目的でこれらの要素の各々は、ファイルシステム205内に概念的に存在するように示されている。
ファイルオペレーションのレコードの記憶とサーチオペレーションの検出
ファイルシステム205の幾つかの実施形態において、フィルタドライバ221は、種々のアプリケーションからファイルシステム205によって受け取られた所与のファイルに対する読取り又は書込みオペレーションのような種々のオペレーションを検出するように構成される。特定のファイル310に向けられたオペレーションの検出後、フィルタドライバ221は、ターゲットファイル310に対応するメタデータ320における検出されたオペレーションのレコードを記憶するように構成される。種々の実施形態において、ファイルオペレーションの検出に続きフィルタドライバ221によって記憶されたレコードは、例えばファイルアイデンティティ、ファイルタイプ、オペレーションタイプ、ファイルサイズ、ファイルコンテンツシグニチャ(例えば、ハッシュ又はメッセージダイジェスト5(MD5)シグニチャなど)、ファイル所有者、及び/又はファイル許可などのターゲットファイル310や検出されたオペレーションについての種々の種類の情報を含むことができる。更に、レコードは、アプリケーション名、呼出し引数、プロセスID、又は他の利用可能な情報などのオペレーションを発生させるプロセス又はアプリケーションについての情報を含むことができる。
1つの特定の実施形態において、ファイルシステム205は、サーチオペレーションを検出して所与のデータパターンが1つ又はそれ以上のファイル内に存在しているかどうかを判定するように構成される。例えば、フィルタドライバ221は、オペレーションを発生させているアプリケーション名及び/又はアプリケーションの呼び出された引数を調べることによって、特定のファイル読取りオペレーションがサーチアプリケーションによって生成されたことを検出するように構成される。幾つかの実施形態において、フィルタドライバ221は、サーチアプリケーション名のリストとして構成され、更にリストされたアプリケーションの1つから受け取られたファイル読取りアプリケーションがサーチオペレーションであると判定することができる。このような実施形態では、フィルタドライバ221は、サーチアプリケーション又はその修正によってどのような特定の動作もなくサーチオペレーションを検出することができ、すなわちサーチオペレーションの検出はサーチアプリケーションに対しトランスペアレントとすることができる点に留意されたい。他の実施形態において、フィルタドライバ221は、アプリケーションが自らをサーチアプリケーションとして登録できる登録アプリケーションプログラミング・インターフェース(API)のような機能を提供することができ、従って、フィルタドライバ221は名前又は他の識別データによって任意のサーチアプリケーションを識別することができるようになる。更に他の実施形態において、フィルタドライバ221は、ファイルオペレーションを呼び出すための関数呼び出しの他のセットを提供することによって、或いはサーチ固有のセマンティクスで標準ファイルオペレーション関数呼び出しをオーバーロードするための1つ又はそれ以上のメカニズムを提供することなどによって、サーチオペレーションに固有のAPIを提供するように構成される。このような実施形態において、所与のサーチアプリケーションは、サーチに関係するファイルオペレーションを実行する際にサーチ固有のAPIを使用してファイルシステム205と対話することができ、フィルタドライバ221は、サーチオペレーションとしてAPIなどを介して受け取られたオペレーションを検出することができる。サーチオペレーションを検出するようにファイルシステム205を構成する他の多数のメカニズムも可能であり企図される。
特定のファイル310に向けられたサーチオペレーションが検出されると、フィルタドライバ221は、対応するメタデータ名前付きストリーム320にサーチオペレーションのレコードを記憶するように構成される。このようなレコードの記憶は、関連のオペレーションの検出の後で何時でも行うことができる。例えば1つの実施形態において、レコードの記憶は、ファイル310a上のオペレーションが終了するまで遅延させることができ、別の実施形態では、レコードの記憶は、オペレーション終了前に行うことができる。後者のケースでは、オペレーションが終了を保証されない(すなわち不確かである)場合、フィルタドライバ221は、オペレーションが終了しない場合にその対応するオペレーションに先立って記憶レコードを削除するためのメカニズムを提供することができる。
1つの実施形態において、サーチオペレーションの検出の後にフィルタドライバ221によって記憶レコードを、拡張可能マーク付け言語(XML)フォーマットで作成し記憶することができるが、他の実施形態においてどのような適切なフォーマットを使用してもよいことが企図される。XMLフォーマットレコードの1つの実施例は、以下の通りである。
<record sequence="3">
<path>/test1/foo.txt</path>
<type>ascii<type>
<group id=119>groupname</group>
<perm>rw-r--r--</perm>
<md5>d41d8cd98f00b204e9800998ecf8427e</md5>
<size>58937</size>
<process>
<name>grep</name>
<args>grep release4 /test1/*.txt<args>
<pid>7168</pid>
<ppid>409</ppid>
<pgrpid>409<pgrpid>
</process>
</record>
このようなレコードは、引数「grep release4/test1/*.txt」によって呼び出されるサーチアプリケーション「grep」に続くファイルアイデンティティ「/test1/foo.pdf」を有するファイル(例えばファイル310a)と関連付けられたメタデータ名前付きストリーム(例えばメタデータ320a)に添付することができる。上述のように、1つの実施形態においてフィルタドライバ221は、発信プロセス名として「grep」を検出することによってサーチオペレーションとしてこのオペレーションを検出するように構成させることができ、他の実施形態では、このような検出は異なる方法を用いて行うことができる。「grep」サーチアプリケーションのこの特定の呼出しは、テキストパターン「release4」の「/test1」ディレクトリに存在する拡張子「.txt」によって各ファイルをサーチすることができる。1つの実施形態において、ワイルドカード表現「/test1/*.txt」は、ファイルシステム205が「/test1/foo.txt」のような特定のファイルに対応するサーチオペレーションを受け取る前に、プリプロセッサ(シェル環境又はコマンドプロセッサなど)によって表現式を満たすファイルの明示リストに拡張することができる。別の実施形態では、ファイルシステム205は、ワイルドカード表現式を内部に拡張するように構成される。
この例では、「record sequence」フィールドに関連する数は、このレコードがファイル310aと関連する第3レコードであることを示している。「path」フィールドはファイルアイデンティティを含み、「type」フィールドは、ファイルタイプを示し、1つの実施形態ではファイル作成オペレーションを発するプロセスによって定義することができ、他の実施形態では例えばファイル名の拡張部又はファイル内のヘッダ情報から決定することができる。「user id」フィールドは、ファイル作成オペレーションを発するプロセスに関連するユーザーの数値ユーザーIDと文字ユーザー名の両方を記録し、「group id」フィールドは、そのユーザーの数値グループIDと文字グループ名の両方を記録する。「perm」フィールドは、ファイルシステム205及び/又はオペレーティングシステムに固有のフォーマットでファイル310aに関連するファイル許可を記録する。「md5」フィールドは、ファイルコンテンツに対応するMD5シグニチャを記録し、「size」フィールドは、ファイル310aの長さをバイト単位で記録する。
更に、「process」フィールドは、コンテンツアクセスオペレーションを実行するプロセスについての情報を記録するサブフィールドを含むことができる。「name」サブフィールドは、オペレーションを発信しているプロセス又はアプリケーションの名前を記録し、「args」サブフィールドは、名前付きプロセスが呼び出されたときに与えられる引数を記録する。「pid」、「ppid」、「pgrpid」サブフィールドは、それぞれプロセスID、プロセスの親のID、プロセスのグループIDを記録する。別の実施形態において、フィルタドライバ221は、多少のフィールドを含み、かつ種々の定義とコンテンツを有するフィールドを含む検出されたサーチオペレーションに対応するレコードを記憶することができる。幾つかの実施形態では、フィルタドライバ221は、サーチオペレーションを検出し、上記に示されたようにメタデータストリーム320内にレコードを生成することなく以下に説明されるようにこれを処理することができることが更に企図される。
ファイルシステム内でのサーチオペレーションの処理
図示の実施形態では、ファイルシステム205は、ネガティブストリーム330とポジティブストリーム340内に記憶された情報を用いて対応するファイル310上の検出されたサーチオペレーションの処理を最適化するように構成される。具体的には、ネガティブストリーム330は、以下に示されるXMLレコードなどのレコードを記憶するように構成され、該レコードは所与のサーチデータパターンがその対応するファイル310内に存在しないことが既知であるかどうかを示す。同様に、ポジティブストリーム340は、対応するファイル310内に所与のサーチデータパターンが存在することが既知であることを示すレコードとサーチデータパターンが見つけられたファイル310内のロケーションを記憶するように構成される。
上述のようなサーチオペレーションの検出に応じて、1つの実施形態においてフィルタドライバ221は、サーチオペレーションによって指定されるデータパターンを決定するように構成される。例えば、フィルタドライバ221は、サーチオペレーションを発信しているアプリケーションの呼び出された引数を調べ、そのアプリケーションの構文に従ってそれらの引数を構文解析する。上述の例を参照すると、フィルタドライバ221は、「grep」オペレーションに対して指定されたデータパターンがテキストストリングス「release4」であることを判定することができる。上述のように、幾つかの実施形態ではデータパターンは、ワイルドカード、正規表現構文、又は他の抽象パターンマッチング構文を含む。
サーチオペレーションによって指定されるデータパターンを決定した後で、1つの実施形態においてフィルタドライバ221は、ネガティブストリーム330とポジティブストリーム340をスキャンし、指定されたデータパターンの指標がいずれかのストリームに記憶されているかどうかを判定するように構成される。幾つかの実施形態において、フィルタドライバ221は、指定されたデータパターンをネガティブストリーム330とポジティブストリーム340のコンテンツに対して厳密にマッチするように構成される。指定されたデータパターンが抽象構文を含む実施形態では、フィルタドライバ221は、構文とストリーム330、340のコンテンツの構文を評価し、指定されたデータパターンの指標がいずれかのストリームに記憶されているかどうかを判定するように構成される。例えば、2つの文字通り別個の正規表現は、評価される際に同じデータパターンを識別することができる。
指定されたデータパターンの指標がいずれかのストリームにも記憶されていない場合、1つの実施形態においてフィルタドライバ221は、検出されたサーチオペレーションによってターゲットファイル310をサーチし、指定されたデータパターンがそこに存在するかどうかを判定するように構成される。例えば1つの実施形態では、ファイルシステム205内のフィルタドライバ221又は別のモジュールは、図2のカーネルスペース220内で実行できるサーチアルゴリズムを実装する。別の実施形態では、フィルタドライバ221は、図2のユーザースペース210内で実行できる外部サーチアプリケーションを呼び出すように構成される。幾つかのこのような実施形態では、呼び出される外部サーチアプリケーションは、ファイルシステム205が初期化されたとき、或いはAPIを介してなどのプログラマー又はシステム管理者によって要求されたときに選択される。
フィルタドライバ221がファイル310をサーチした後に指定されたデータパターンのマッチが見つからない場合、1つの実施形態においてフィルタドライバ221は、ネガティブストリーム330内にデータパターンの指標を記憶するように構成される。1つの実施形態において、フィルタドライバ221は、ネガティブストリーム330内にXMLレコードとしてデータパターンを記憶することができる。例えば、フィルタドライバ221がファイル「foo.txt」をサーチした後に上記で説明された例において言及されたパターン「release4」が見つからない場合、フィルタドライバ221は、下記レコードを対応するネガティブストリーム330内に記憶することができる。
<pattern>release4</pattern>
同様に、フィルタドライバ221がファイル310をサーチした後に指定されたデータパターンのマッチが見つかった場合、1つの実施形態においてフィルタドライバ221は、ポジティブストリーム340内にデータパターンの指標を記憶し、かつファイル310内でパターンが見つかった場所に関する情報を記憶するように構成される。1つの実施形態では、フィルタドライバ221は、ポジティブストリーム340内にXMLレコードとしてデータパターンを記憶することができる。例えば、上記に示す例で言及されたパターン「release4」は、ファイルのライン20とライン485においてファイル「foo.txt」内に存在することができる。更に、ライン20を、ファイルのブロック2内に位置付けることができ、ライン485をファイルのブロック4内に位置付けることができ、ここでブロック寸法と境界は、ファイルシステム205によって決定される(例えばファイルシステム205は、1024バイトブロックを使用してファイルコンテンツを編成し操作することができる)。このような場合、ファイル「foo.txt」でパターン「release4」をサーチした後、フィルタドライバ221は、対応するポジティブストリーム340内に以下のXMLレコードを記憶することができる。
<occurs>
<pattern>release4</pattern>
<record>
<linenumber>20</linenumber>
<blocknumber>2</blocknumber>
</record>
<record>
<linenumber>485</linenumber>
<blocknumber>4</blocknumber>
</record>
</occurs>
ライン数とブロック数に加えた又はその代わりの何らかの適切なインデックスを用いて、ファイルの対応する部分にインデックスを付けることができる。例えば幾つかの実施形態において、ファイルの最初から測定されたバイトオフセットは、図示されたもののようなレコード内のライン数とブロック数の代わりに用いることができる。また、種々のXMLタグを使用して、他の実施形態ではネガティブストリーム330とポジティブストリーム340に記憶されたレコードを区切り構造化することができ、或いはXML以外の構文を使用してレコードを構造化することができることも企図される。幾つかの実施形態において、サーチオペレーションのターゲットファイル310はテキストファイルとしてフォーマットできない(例えばファイル310はバイナリファイルとすることができる)ことが更に企図される。幾つかのこのような実施形態では、所与のターゲットファイル310がテキストファイルでない場合、ライン数はファイルへのインデックス付けに関係しない可能性があり、これらは、対応するポジティブストリーム340内のレコードから省くことができる。
上述のように、1つの実施形態でフィルタドライバ221は、サーチオペレーションを受け取り、指定されたサーチデータパターンの指標がいずれかのストリームに記憶されているかどうかを判定した後でネガティブストリーム330とポジティブストリーム340をスキャンするように構成される。図示された例のレコードのフォーマットを用いる実施形態では、フィルタドライバ221は、各ストリームに記録された「パターン」フィールドをスキャンするように構成される。指定されたデータパターンがネガティブストリーム330に記憶されたパターンにマッチする場合、フィルタドライバ221は、対応するファイル310のコンテンツにアクセスすることなくサーチオペレーションを発信しているアプリケーションにネガティブサーチ指標を返すように構成される。例えば、フィルタドライバ221は、どのようなファイルデータも必要とすることなく、発信しているアプリケーションにエンドオブファイル指標が送られるようにすることによって、ネガティブサーチ指標を発信アプリケーションに間接的且つトランスペアレントに返すことができ、すなわち、フィルタドライバ221により、ファイル310が発信アプリケーションに対してヌル長であるように見せることができる。このような場合、発信アプリケーションは、指定されたサーチデータパターンのためのファイルシステム205によって返されたヌルファイルデータのサーチを試みることができるが、ヌルパターンがサーチデータパターンに対する有効マッチでない場合、この試みは失敗する可能性が高い。別の実施形態において、フィルタドライバ221は、ファイル310と同じ長さのデータを返すことによってネガティブサーチ指標を発信アプリケーションに間接的に且つトランスペアレントに返すことができるが、ここで返されたファイルデータは、空白文字(例えば、スペース、タブ)及び/又は改行文字だけを含む。
ファイルシステム205が上述のようにサーチ固有のAPIを実装する実施形態では、フィルタドライバ221は、例えば、エンドオブファイル指標を返すことによってではなく関数呼び出し又は他の定義されたインターフェースを介してネガティブサーチ結果を発信アプリケーションに直接表示するように構成される。ネガティブサーチ結果が発信サーチアプリケーションに示される特定のメカニズムに関係なく、これらのネガティブサーチ結果は、ターゲットファイル310のコンテンツに実際にアクセスすることなく示すことができ、従ってファイルシステム使用率が低減される可能性がある点に留意されたい。
指定されたデータパターンがポジティブストリーム340に記憶されたパターンにマッチする場合、フィルタドライバ221は、ポジティブストリーム340でのマッチングレコードによって示されたファイル310の一部分だけにアクセスし、ファイルデータのその部分を発信アプリケーションに返すように構成される。1つの実施形態では、フィルタドライバ221は、ポジティブストリーム340のマッチングレコードに示されるライン又はブロックまで空白文字(例えば、スペース、タブ)及び/又は改行文字を返し、次いで対応するファイル310の表示ブロックを読取り当該ブロックだけのファイルデータを発信アプリケーションに返すことによって、その特定のファイル部分をトランスペアレントに返すように構成される。上記に説明されたようなデータパターンに対応する複数のレコードによって示されるように所与のデータパターンが所与のファイル310で複数回マッチする場合、フィルタドライバ221は、レコードによって示された次のライン又はブロックに達するまで所与の返されたデータブロックの後に付加的な空白文字及び/又は改行文字が続く。例えば、サーチオペレーションがデータパターン「release4」を指定し、ポジティブストリーム340が上記に説明されたような「occurs」レコードを含む場合、フィルタドライバ221は、対応するファイル310のブロック2と4だけにアクセスして返すように構成させることができ、これらのブロックに適切な数の空白文字及び/又は改行文字を割り込ませる。発信サーチアプリケーションは、指定されたデータパターンに対してファイルシステム205によって返された空白/改行埋め込みファイルデータのサーチを試みることができるが、読取られていない部分の代わりに使用される文字が有効なサーチパターンデータでない場合には、ファイルシステム205によって実際に返されたターゲットファイル310の一部分の当該データパターンにだけマッチする。
ファイルシステム205が上述のようにサーチ固有のAPIを実装する実施形態では、フィルタドライバ221は、ポジティブサーチ結果を発信アプリケーションに直接示すように構成される。例えば1つのこのような実施形態では、フィルタドライバ221は、ファイル310の特定の部分と、該特定の部分がファイル310内に位置付けられる場所に関する情報を空白文字のストリームに埋め込まれたこうした部分を返すことによってではなく関数呼び出し又は他の定義されたインターフェースを介して返すように構成される。上述のネガティブサーチ結果と同様に、ポジティブサーチ結果が発信サーチオペレーションに示される特定のメカニズムに関係なく、これらのポジティブサーチ結果は、実際にターゲットファイル310の一部分だけにアクセスする間は示すことができ、従って場合によってはファイルシステム使用率が低減される点に留意されたい。
所与のファイル310のコンテンツが例えばファイル書込みオペレーションによって修正された場合には、対応するネガティブストリーム330とポジティブストリーム340に記憶データパターンは、もはや修正されたファイルコンテンツを正確には反映することができない。すなわち、データパターンが記憶された時点で記憶データパターンが参照される情報は変更されている可能性があるので、記憶データパターンはもはや、所与のファイル310の修正コンテンツに対する参照一貫性を示すことはできない。幾つかの実施形態において、フィルタドライバ221は、例えばストリーム330、340をゼロ長まで切り捨てることによって、対応するファイル310への書込みに続いてネガティブストリーム330とポジティブストリーム340内に記憶レコードをクリアするように構成される。他の実施形態において、フィルタドライバ221は、修正コンテンツに対して記憶データパターンを調べ、ファイルコンテンツの修正後の各記憶レコードの有効性を判定するように構成される。例えば、1つのこのような実施形態において、フィルタドライバ221は、ネガティブストリーム330とポジティブストリーム340内に記憶された各データパターンについてファイル310をサーチすることができ、これに従ってストリームを更新することができる。更に、幾つかの実施形態において、フィルタドライバ221は、ネガティブストリーム330とポジティブストリーム340からレコードを取り除き、ストリームにより必要とされる記憶容量を低減させることができる。例えば、フィルタドライバ221は、ストリームのサイズがスレショルドを越える場合又はある時間期間が経過した後に所与のストリームからより古いレコードを取り除くように構成される。
ネガティブストリーム330とポジティブストリーム340がサーチされる順序は、種々の実施形態で異なる可能性がある点に留意されたい。1つの実施形態において、サーチオペレーションの検出の後でフィルタドライバ221は、ネガティブストリーム330の指定されたデータパターンを最初にサーチするように構成される。パターンが見つからなかった場合、フィルタドライバ221は次にポジティブストリーム340をサーチすることができ、指定されたファイル310自体を最後にサーチする。別の実施形態において、フィルタドライバ221は、ネガティブストリーム330、ポジティブストリーム340、ファイル310の一部又は全てを同時に或いは異なる順序でサーチするように構成される。更に、サーチ固有のAPIを提供するファイルシステム205の幾つかの実施形態において、これらの項目がサーチされる並行処理の順序と程度は、サーチアプリケーションが指定することができる。例えばこのような指定は、所与のデータパターンが所与のファイルにおいて見つかる可能性が高いかどうか、従ってポジティブ又はネガティブストリームにおいて見つかる可能性が高いか、或いは所与のサーチが最近実行されたかどうかが既知であるか、従ってデータパターンがいずれかのストリームに存在する可能性があるか否かを示唆することができる経験則に応じて行うことができる。
幾つかの実施形態においてファイルシステム205は、ネガティブストリーム330又はポジティブストリーム340の一方に対してサポートを実装することができるが、他方に対しては実装できず、或いは、フィルタドライバ221以外のモジュールにおいて上述されたネガティブストリーム330及び/又はポジティブストリーム340の管理を実装することができる点に更に留意されたい。更に、幾つかの実施形態において、ネガティブストリーム330及び/又はポジティブストリーム340は完全に省略することができ、ネガティブとポジティブサーチ結果に対応するレコードは、メタデータストリーム320又は別の名前付きストリーム内に直接記憶することができる。このような実施形態では、レコードは、ポジティブサーチレコードをネガティブサーチレコードと区別するために、上記で説明されたもの以外のXMLフィールドタグで区切ることができる。
最後に、所与のネガティブストリーム330又はポジティブストリーム340のコンテンツに対し、或いは全体としてファイルシステム205のサーチ関係のコンテンツに対して種々のタイプのインデックスを適用することができることが企図される。例えば、1つの実施形態おけるファイルシステム205は、記憶レコードの構文を事前に構文解析し、解析されたフォーマット(バイナリフォーマットのような)でレコードデータを記憶するなどによって所与のネガティブストリーム330又はポジティブストリーム340に記憶されたレコードにインデックスを付けるように構成させることができ、従って、所与のストリームをサーチするのに必要な時間を削減することができる。更に、1つの実施形態でのファイルシステム205は、既存のネガティブストリーム330とポジティブストリーム340にインデックスを付ける付加的な名前付きストリーム又はファイルを作成して保持するように構成される。例えば、ファイルシステム205は、所与のサーチデータパターンが発生することが判定された特定のネガティブストリーム330のレコードを含むネガティブインデックスストリームと類似のポジティブインデックスストリームを作成するように構成される。ファイルシステム205は更に、所与のネガティブストリーム330と所与のポジティブストリーム340が上述のようにこれらの対応するファイル310へのアクセスを低減できる方法に類似した方法で、このようなインデックスストリームを使用してサーチ使用率に応じてネガティブストリーム330とポジティブストリーム340へのアクセス数を低減するように構成される。
図4は、ファイル上のサーチオペレーションを検出し該サーチオペレーションに対応するレコードを記憶する方法の1つの実施形態を示す。図1から図4をまとめて参照すると、オペレーションはブロック400で始まり、ここで所与のファイルにおけるデータパターンをサーチするオペレーションが検出される。例えば、1つの実施形態においてフィルタドライバ221は、既知のサーチアプリケーションに名前が対応するアプリケーションから発信している所与のファイル310上でファイル読取りオペレーションを検出する。他の実施形態では、ファイルシステム205はAPIを提供し、これによってサーチアプリケーションはサーチオペレーションをファイルシステム205に実行依頼する。
サーチオペレーションが検出されると、1つの実施形態でのネガティブストリーム330をサーチして、サーチオペレーションによって指定されたデータパターンの指標が記憶されているか否かを判定する(ブロック402、404)。指定されたデータパターンの指標がそこに記憶されると、ネガティブ指標は、対応するファイルにアクセスすることなく発信アプリケーションに返される(ブロック406)。例えば、フィルタドライバ221は、エンドオブファイル指標をこの場合は発信アプリケーションに返すように構成することができ、或いはAPIを介してネガティブサーチ状態を示すことができる。
指定されたデータパターンの指標がネガティブストリーム330で検出されない場合には、1つの実施形態においてポジティブストリーム340をサーチして、このような指標がレコード内に記憶されているか否かを判定する(ブロック408、410)。このような指標が見つかった場合、レコードによって示されたファイル310のデータブロックだけにアクセスする(ブロック412)。これらのデータブロックは、発信アプリケーションに返すことができる(ブロック414)。例えば1つの実施形態において、データブロックは、フィルタドライバ221によって作成された空白文字の1つのストリームにこれらを埋め込むことによって発信アプリケーションにトランスペアレントな方法で返すことができる。別の実施形態では、データブロックは、APIなどを介してファイル内のこれらのロケーションに関する情報と共に発信アプリケーションに直接返すことができる。
ポジティブストリーム340で指定されたデータパターンの指標が検出されない場合、対応するファイル310をサーチして、データパターンが記憶されているか否かを判定することができ、サーチ結果に応じてネガティブストリーム330又はポジティブストリーム340内に適切なレコードを記憶する(ブロック416)。
本方法の幾つかの実施形態では、ネガティブストリーム330、ポジティブストリーム340、ファイル310は異なる順序で或いは同時にサーチする点に留意されたい。本方法の幾つかの実施形態では、ネガティブストリーム330とポジティブストリーム340の一方又は他方だけを実装することができ、或いは両方のタイプのレコードを単一の名前付きストリームに組み合わることができる点に更に留意されたい。
図5は、サーチオペレーションに対応する記憶レコードの参照一貫性を維持する方法の1つの実施形態を示す。図1から図3、図5をまとめて参照すると、オペレーションはブロック500で始まり、ここでファイルサーチオペレーションに対応するレコードが記憶される。例えば、図3、4の説明と共に上述されたように、サーチオペレーションを検出でき、サーチデータパターンを含む対応するレコードをネガティブストリーム330又はポジティブストリーム340内に記憶する。
ファイルサーチオペレーションのレコードの記憶に続いて、対応するファイルのコンテンツを修正するオペレーションを検出する(ブロック502)。例えば、1つの実施形態においてフィルタドライバ221は、対応するネガティブストリーム330又はポジティブストリーム340内に記憶レコードを有するファイルへのファイル書込みオペレーションを検出する。
ファイル上でのコンテンツ修正オペレーションの検出に応じて、当該ファイルに対応する記憶されたサーチレコードをクリアする(ブロック504)。例えば、1つの実施形態においてフィルタドライバ221は、対応するファイル310上でのファイル書込みオペレーションなどのコンテンツ修正オペレーションの検出に応じてネガティブストリーム330とポジティブストリーム340をゼロ長まで切り捨てるように構成される。他の実施形態では、各記憶されたサーチレコードを、例えばフィルタドライバ221によって調べて、コンテンツ修正オペレーションの検出に続いてその参照一貫性を評価することが企図される。このような実施形態では、その一貫性がコンテンツ修正オペレーションによって影響を受けるレコードだけをクリアする。
上記の実施形態をかなり詳細に説明してきたが、上記の開示が完全に理解されると多くの変形形態及び修正形態が当業者には明らかになるであろう。添付の請求項は、このような変形形態及び修正形態の全てを含むように解釈するものとする。
ストレージシステムの1つの実施形態を示すブロック図である。 オペレーティングシステムアーキテクチャ及びストレージデバイスへのインターフェースの1つの実施形態を示すブロック図である。 ファイル上でサーチオペレーションを検出して対応するレコードを記憶するように構成されたファイルシステムの1つの実施形態を示すブロック図である。 ファイル上でサーチオペレーションを検出して対応するレコードを記憶する方法の1つの実施形態を示すフロー図である。 サーチオペレーションに対応する記憶レコードの参照一貫性を維持する方法の1つの実施形態を示すフロー図である。
符号の説明
200 オペレーティングシステム、205 ファイルシステム、210 ユーザースペース、212A プロセスA、212B プロセスB、212C プロセスC、214 API、220 カーネル、221 フィルタドライバ、222 仮想ファイルシステム、224 デバイスドライバ、225 ネットワークプロトコル、230A ストレージデバイス、230B ストレージデバイス、230C ストレージデバイス、240A ローカルファイルシステム(VxFS)、240B ローカルファイルシステム(FFS)、240X ローカルファイルシステム

Claims (22)

  1. データを記憶するように構成されたストレージデバイスと、
    前記ストレージデバイスへのアクセスを管理するように構成されたファイルシステムとを備えるシステムであって、前記ファイルシステムが、
    サーチオペレーションを検出して前記ストレージデバイスに記憶された第1ファイル内の所与のデータパターンの存在を判定し、
    前記所与のデータパターンの指標と前記サーチオペレーションの結果データの指標とを前記第1ファイルに関連する第1レコードに記憶する
    ように構成されていることを特徴とするシステム。
  2. 前記ファイルシステムが更に、前記サーチオペレーションの検出に続いて前記第1レコードをスキャンし、前記所与のデータパターンの指標が該第1レコードに記憶されているかどうかを判定するように構成されており、前記ファイルシステムが更に、前記指標が記憶されている判定に応じて前記第1ファイルの部分だけにアクセスするように構成されていることを特徴とする請求項1に記載のシステム。
  3. 結果データの前記指標は、前記所与のデータパターンが発生している前記第1ファイルの1つ又はそれ以上の部分に対応するインデックスを含み、前記所与のデータパターンの指標が前記第1レコードに記憶されている判定に応じて、前記ファイルシステムが更に、前記インデックスに対応する前記第1ファイルの1つ又はそれ以上の部分だけにアクセスするように構成されていることを特徴とする請求項2に記載のシステム。
  4. 前記サーチオペレーションの検出に続いて、前記ファイルシステムが更に、前記第1レコードをスキャンし前記所与のデータパターンの指標が前記第1レコードに記憶されているかどうかを判定し、前記所与のデータパターンの指標が前記第1レコードに記憶されている場合に前記第1ファイルにアクセスすることなくネガティブ指標を返すように構成されていることを特徴とする請求項1に記載のシステム。
  5. 前記所与のデータパターンが前記第1ファイルに存在する場合、前記ファイルシステムが更に、前記所与のデータパターンの指標とパターンロケーション情報を前記第1レコードに記憶するように構成されており、前記所与のデータパターンが前記第1ファイルに存在しない場合、前記ファイルシステムが更に、前記所与のデータパターンの指標を第2レコードに記憶するように構成されていることを特徴とする請求項1に記載のシステム。
  6. 前記第1レコードと前記第2レコードは、前記第1ファイルに各々対応するそれぞれの名前付きストリームに記憶されることを特徴とする請求項5に記載のシステム。
  7. 前記第1ファイルに記憶されたデータを修正するためのオペレーションの検出に応じて、前記ファイルシステムが更に、前記第1ファイルに関連した前記レコードをクリアするように構成されていることを特徴とする請求項1に記載のシステム。
  8. 前記ファイルシステムが更に、サーチオペレーションを検出し前記ストレージデバイスに記憶された複数のファイルの1つ又はそれ以上内の所与のデータパターンの存在を判定し、前記所与のデータパターンの指標と前記サーチオペレーションの結果データの指標を前記複数のファイルの1つ又はそれ以上の各々に関連したそれぞれのレコードに記憶するように構成されていることを特徴とする請求項1に記載のシステム。
  9. 複数のファイルを記憶するステップと、
    サーチオペレーションを検出して第1ファイル内で所与のデータパターンの存在を判定するステップと、
    前記所与のデータパターンの指標と前記サーチオペレーションの結果データの指標とを前記第1ファイルに関連した第1レコードに記憶するステップと、
    を含む方法。
  10. 前記サーチオペレーションの検出に続いて、前記第1レコードをスキャンし、前記所与のデータパターンの指標が第1レコードに記憶されているかどうかを判定するステップと、
    前記指標が前記第1レコードに記憶されている判定に応じて、前記第1ファイルの一部分だけにアクセスするステップと
    を更に含む請求項9に記載の方法。
  11. 結果データの指標は、前記所与のデータパターンが発生する前記第1ファイルの1つ又はそれ以上の部分に対応するインデックスを含み、前記方法が更に、前記所与のデータパターンの指標が前記第1レコードに記憶されている判定に応じて、前記インデックスに対応する前記第1ファイルの1つ又はそれ以上の部分だけにアクセスするステップを含む請求項10に記載の方法。
  12. 前記サーチオペレーションの検出に続いて、前記第1レコードをスキャンし前記所与のデータパターンの指標が前記第1レコードに記憶されているかどうかを判定するステップと、
    前記所与のデータパターンの指標が前記第1レコードに記憶されている場合に前記第1ファイルにアクセスすることなくネガティブ指標を返すステップと、
    を更に含む請求項9に記載の方法。
  13. 前記所与のデータパターンが前記第1ファイルに存在する場合、前記所与のデータパターンの指標とパターンロケーション情報を前記第1レコードに記憶するステップと、
    前記所与のデータパターンが前記第1ファイルに存在しない場合、前記所与のデータパターンの指標を第2レコードに記憶するステップと、
    を更に含む請求項9に記載の方法。
  14. 前記第1レコードと前記第2レコードが、前記第1ファイルに各々が対応するそれぞれの名前付きストリームに記憶される請求項13に記載の方法。
  15. 前記第1ファイルに記憶されたデータを修正するためにオペレーションの検出に応じて前記第1ファイルに関連したレコードをクリアするステップを更に含む請求項9に記載の方法。
  16. プログラム命令を含むコンピュータアクセス可能媒体であって、
    前記プログラム命令が、
    複数のファイルを記憶し、
    サーチオペレーションを検出し第1ファイル内で所与のデータパターンの存在を判定し、
    前記所与のデータパターンの指標と前記サーチオペレーションの結果データの指標とを前記第1ファイルに関連した第1レコードに記憶する、
    ようにコンピュータ実行可能であることを特徴とするコンピュータアクセス可能媒体。
  17. 前記プログラム命令が更に、
    前記サーチオペレーションの検出に続いて、前記第1レコードをスキャンし前記所与のデータパターンの指標が前記第1レコードに記憶されているかどうかを判定し、
    前記指標が前記第1レコードに記憶されている判定に応じて、前記第1ファイルの部分だけにアクセスする、
    ようにコンピュータ実行可能であることを特徴とする請求項16に記載のコンピュータアクセス可能媒体。
  18. 結果データの前記指標は、前記所与のデータパターンが発生する前記第1ファイルの1つ又はそれ以上の部分に対応するインデックスを含み、前記プログラム命令が更に、前記所与のデータパターンの指標が前記第1レコードに記憶されている判定に応じて前記インデックスに対応する前記第1ファイルの1つ又はそれ以上の部分だけにアクセスするようにコンピュータ実行可能であることを特徴とする請求項17に記載のコンピュータアクセス可能媒体。
  19. 前記プログラム命令は更に、
    前記サーチオペレーションの検出に続いて、前記第1レコードをスキャンし前記所与のデータパターンの前記指標が前記第1レコードに記憶されているかどうかを判定し、
    前記所与のデータパターンの指標が前記第1レコードに記憶されている場合、前記第1ファイルにアクセスすることなくネガティブ指標を返す、
    ようにコンピュータ実行可能であることを特徴とする請求項16に記載のコンピュータアクセス可能媒体。
  20. 前記プログラム命令が更に、
    前記所与のデータパターンが前記第1ファイルに存在する場合、前記所与のデータパターンの指標とパターンロケーション情報を前記第1レコードに記憶し、
    前記所与のデータパターンが前記第1ファイルに存在しない場合、前記所与のデータパターンの指標を第2レコードに記憶する、
    ようにコンピュータ実行可能であることを特徴とする請求項16に記載のコンピュータアクセス可能媒体。
  21. 前記第1レコード及び前記第2レコードが、前記第1ファイルに各々が対応するそれぞれの名前付きストリームに記憶されることを特徴とする請求項20に記載のコンピュータアクセス可能媒体。
  22. 前記プログラム命令が更に、前記第1ファイルに記憶されたデータを修正するためにオペレーションの検出に応じて、前記第1ファイルに関連した前記レコードをクリアするようにコンピュータ実行可能であることを特徴とする請求項16に記載のコンピュータアクセス可能媒体。
JP2007501967A 2004-03-04 2005-03-04 ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム、方法及びコンピュータアクセス可能な記録媒体 Expired - Fee Related JP4944008B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/793,070 US7636710B2 (en) 2004-03-04 2004-03-04 System and method for efficient file content searching within a file system
US10/793,070 2004-03-04
PCT/US2005/006868 WO2005091173A1 (en) 2004-03-04 2005-03-04 System and method for efficient file content searching within a file system

Publications (2)

Publication Number Publication Date
JP2007527074A true JP2007527074A (ja) 2007-09-20
JP4944008B2 JP4944008B2 (ja) 2012-05-30

Family

ID=34911972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007501967A Expired - Fee Related JP4944008B2 (ja) 2004-03-04 2005-03-04 ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム、方法及びコンピュータアクセス可能な記録媒体

Country Status (6)

Country Link
US (1) US7636710B2 (ja)
EP (1) EP1723566B1 (ja)
JP (1) JP4944008B2 (ja)
CN (1) CN100409240C (ja)
DE (1) DE602005009150D1 (ja)
WO (1) WO2005091173A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
US20060074912A1 (en) * 2004-09-28 2006-04-06 Veritas Operating Corporation System and method for determining file system content relevance
US20060271538A1 (en) * 2005-05-24 2006-11-30 International Business Machines Corporation Method and system for managing files in a file system
US7512700B2 (en) * 2005-09-30 2009-03-31 International Business Machines Corporation Real-time mining and reduction of streamed data
US20070226298A1 (en) * 2006-03-24 2007-09-27 Sap Ag. Methods and systems providing metadata in service signatures
US8244935B2 (en) * 2010-06-25 2012-08-14 Oracle International Corporation Write aggregation using optional I/O requests
US8527488B1 (en) * 2010-07-08 2013-09-03 Netlogic Microsystems, Inc. Negative regular expression search operations
CN103200278B (zh) * 2013-04-25 2016-08-31 网宿科技股份有限公司 源站文件更新发布方法及缓存文件更新方法
US9898354B2 (en) * 2016-03-21 2018-02-20 Microsoft Technology Licensing, Llc Operating system layering
US11475154B2 (en) 2020-02-21 2022-10-18 Raytheon Company Agent-based file repository indexing and full-text faceted search system
US11934893B2 (en) 2021-07-06 2024-03-19 Pure Storage, Inc. Storage system that drives an orchestrator based on events in the storage system
US11816356B2 (en) 2021-07-06 2023-11-14 Pure Storage, Inc. Container orchestrator-aware storage system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182353A (ja) * 1993-12-24 1995-07-21 Toshiba Corp 自己学習型文書検索方法およびその検索装置
JPH07239861A (ja) * 1994-02-25 1995-09-12 Ricoh Co Ltd 文書検索装置
JPH09198395A (ja) * 1996-01-16 1997-07-31 Fuji Xerox Co Ltd 文書検索装置
JPH10111821A (ja) * 1996-10-04 1998-04-28 Railway Technical Res Inst クライアント・サーバー・システム
JPH1185585A (ja) * 1997-09-12 1999-03-30 N T T Data:Kk 完全メモリ常駐型インデックス方法および装置

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1323448C (en) * 1989-02-24 1993-10-19 Terrence C. Miller Method and apparatus for translucent file system
CA2067633C (en) * 1991-07-24 1996-10-01 Eric Jonathan Bauer Method and apparatus for accessing a computer-based file system
JPH06131229A (ja) * 1992-10-21 1994-05-13 Just Syst Corp 情報処理方法及び装置
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
JP2929963B2 (ja) 1995-03-15 1999-08-03 松下電器産業株式会社 文書検索装置および単語索引作成方法および文書検索方法
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
JP2888188B2 (ja) * 1996-03-12 1999-05-10 松下電器産業株式会社 情報検索装置
JPH1049549A (ja) * 1996-05-29 1998-02-20 Matsushita Electric Ind Co Ltd 文書検索装置
US6026474A (en) 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US7058720B1 (en) * 1997-06-30 2006-06-06 Microsoft Corporation Geographical client distribution methods, systems and computer program products
US6067541A (en) * 1997-09-17 2000-05-23 Microsoft Corporation Monitoring document changes in a file system of documents with the document change information stored in a persistent log
US5848410A (en) * 1997-10-08 1998-12-08 Hewlett Packard Company System and method for selective and continuous index generation
JP4286345B2 (ja) * 1998-05-08 2009-06-24 株式会社リコー 検索支援システム及びコンピュータ読み取り可能な記録媒体
US6581052B1 (en) * 1998-05-14 2003-06-17 Microsoft Corporation Test generator for database management systems
US6240401B1 (en) 1998-06-05 2001-05-29 Digital Video Express, L.P. System and method for movie transaction processing
US6401118B1 (en) * 1998-06-30 2002-06-04 Online Monitoring Services Method and computer program product for an online monitoring search engine
US6374266B1 (en) * 1998-07-28 2002-04-16 Ralph Shnelvar Method and apparatus for storing information in a data processing system
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
US7110998B1 (en) 1998-10-13 2006-09-19 Virtual Gold, Inc. Method and apparatus for finding hidden patterns in the context of querying applications
US6353823B1 (en) 1999-03-08 2002-03-05 Intel Corporation Method and system for using associative metadata
JP2001109754A (ja) 1999-09-30 2001-04-20 Internatl Business Mach Corp <Ibm> 索引ファイルを使用した検索方法及びそれに用いる装置
IL132916A (en) * 1999-11-14 2004-02-08 Mcafee Inc Method and system for intercepting an application program interface
JP2001167087A (ja) 1999-12-14 2001-06-22 Fujitsu Ltd 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法
US6772141B1 (en) 1999-12-14 2004-08-03 Novell, Inc. Method and apparatus for organizing and using indexes utilizing a search decision table
US6519648B1 (en) * 2000-01-24 2003-02-11 Friskit, Inc. Streaming media search and continuous playback of multiple media resources located on a network
US20010014894A1 (en) * 2000-02-11 2001-08-16 Han Seog Yeon File managing method for a digital data stream
US7035850B2 (en) 2000-03-22 2006-04-25 Hitachi, Ltd. Access control system
US6985948B2 (en) 2000-03-29 2006-01-10 Fujitsu Limited User's right information and keywords input based search query generating means method and apparatus for searching a file
AU2001249848A1 (en) * 2000-04-04 2001-10-15 Ecd Systems, Inc. Method and system for digital data delivery and reproduction
JP2002055995A (ja) 2000-05-31 2002-02-20 Canon Inc 情報処理方法及び装置
US20020095621A1 (en) * 2000-10-02 2002-07-18 Lawton Scott S. Method and system for modifying search criteria based on previous search date
US6959320B2 (en) * 2000-11-06 2005-10-25 Endeavors Technology, Inc. Client-side performance optimization system for streamed applications
GB0104227D0 (en) * 2001-02-21 2001-04-11 Ibm Information component based data storage and management
JP2002366403A (ja) * 2001-06-05 2002-12-20 Minolta Co Ltd ファイル管理プログラム、ファイル管理プログラムを記録したコンピュータ読取可能な記録媒体およびファイル管理方法
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
US20030154271A1 (en) 2001-10-05 2003-08-14 Baldwin Duane Mark Storage area network methods and apparatus with centralized management
US7171468B2 (en) 2001-11-10 2007-01-30 Kabushiki Kaisha Toshiba System and method for accessing a document management repository
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
EP1481346B1 (en) * 2002-02-04 2012-10-10 Cataphora, Inc. A method and apparatus to visually present discussions for data mining purposes
US7058890B2 (en) 2002-02-13 2006-06-06 Siebel Systems, Inc. Method and system for enabling connectivity to a data system
ES2544316T3 (es) 2002-03-14 2015-08-28 Utc Fire & Security Americas Corporation, Inc. Búsqueda de alta velocidad en información de video grabado para la detección de movimiento
US6970866B1 (en) 2002-05-31 2005-11-29 Adobe Systems Incorporated Filter file system
US7444317B2 (en) 2002-06-28 2008-10-28 Microsoft Corporation System and method for managing file names for file system filter drivers
US7599988B2 (en) * 2002-08-05 2009-10-06 Metacarta, Inc. Desktop client interaction with a geographical text search system
US20040225730A1 (en) 2003-01-17 2004-11-11 Brown Albert C. Content manager integration
US7194460B2 (en) * 2003-03-31 2007-03-20 Kabushiki Kaisha Toshiba Search device, search system, and search method
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
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US20050071856A1 (en) * 2003-09-26 2005-03-31 Kumar C.P. Vijay Dynamically loadable stub modules
US20050097089A1 (en) * 2003-11-05 2005-05-05 Tom Nielsen Persistent user interface for providing navigational functionality
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
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
US7529723B2 (en) * 2003-12-15 2009-05-05 Xerox Corporation Multi-tiered structure for file sharing based on social roles
US8121997B2 (en) * 2004-02-09 2012-02-21 Limelight Networks, Inc. Universal search engine
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
US7895167B2 (en) * 2005-02-16 2011-02-22 Xpolog Ltd. System and method for analysis and management of logs and events

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182353A (ja) * 1993-12-24 1995-07-21 Toshiba Corp 自己学習型文書検索方法およびその検索装置
JPH07239861A (ja) * 1994-02-25 1995-09-12 Ricoh Co Ltd 文書検索装置
JPH09198395A (ja) * 1996-01-16 1997-07-31 Fuji Xerox Co Ltd 文書検索装置
JPH10111821A (ja) * 1996-10-04 1998-04-28 Railway Technical Res Inst クライアント・サーバー・システム
JPH1185585A (ja) * 1997-09-12 1999-03-30 N T T Data:Kk 完全メモリ常駐型インデックス方法および装置

Also Published As

Publication number Publication date
DE602005009150D1 (de) 2008-10-02
EP1723566B1 (en) 2008-08-20
US20050198010A1 (en) 2005-09-08
EP1723566A1 (en) 2006-11-22
US7636710B2 (en) 2009-12-22
CN100409240C (zh) 2008-08-06
JP4944008B2 (ja) 2012-05-30
WO2005091173A1 (en) 2005-09-29
CN1947119A (zh) 2007-04-11

Similar Documents

Publication Publication Date Title
JP4944008B2 (ja) ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム、方法及びコンピュータアクセス可能な記録媒体
JP4782017B2 (ja) 拡張可能なファイルシステムメタデータの作成及びファイルシステムコンテンツ処理のためのシステムと方法
US7487138B2 (en) System and method for chunk-based indexing of file system content
US20060059204A1 (en) System and method for selectively indexing file system content
US7272606B2 (en) System and method for detecting and storing file content access information within a file system
US7657530B2 (en) System and method for file system content processing
US7072983B1 (en) Scheme for systemically registering meta-data with respect to various types of data
US6996566B1 (en) Method and system for an object model with embedded metadata and mapping information
US6370549B1 (en) Apparatus and method for searching for a file
AU739236B2 (en) File system interface to a database
KR100330576B1 (ko) 컴퓨터네트워크로부터월드와이드웹상의페이지위치을파악하고문서위치를파악하는시스템및방법
US7676481B2 (en) Serialization of file system item(s) and associated entity(ies)
US7831552B2 (en) System and method for querying file system content
US20060074912A1 (en) System and method for determining file system content relevance
US7720869B2 (en) Hierarchical structured abstract file system
WO2005055093A2 (en) System and method for generating extensible file system metadata and file system content processing
KR20060069791A (ko) 공유된 읽기 전용 파일 시스템 내의 바이러스의 검출 및경고
US8306991B2 (en) System and method for providing a programming-language-independent interface for querying file system content
US7844596B2 (en) System and method for aiding file searching and file serving by indexing historical filenames and locations
US7415480B2 (en) System and method for providing programming-language-independent access to file system content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080220

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20101109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4944008

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

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

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

LAPS Cancellation because of no payment of annual fees