JP2007012060A - 逆階層構造を有するファイルシステム - Google Patents
逆階層構造を有するファイルシステム Download PDFInfo
- Publication number
- JP2007012060A JP2007012060A JP2006174548A JP2006174548A JP2007012060A JP 2007012060 A JP2007012060 A JP 2007012060A JP 2006174548 A JP2006174548 A JP 2006174548A JP 2006174548 A JP2006174548 A JP 2006174548A JP 2007012060 A JP2007012060 A JP 2007012060A
- Authority
- JP
- Japan
- Prior art keywords
- record
- file
- directory
- identifier
- transaction
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】従来のファイルシステム階層を改良するコンピュータシステムを提供する。
【解決手段】コンピュータシステム(10)内のファイルシステムソフトウェア(47)は、固定データ記憶装置(30)のファイルを、メタファイル(120)に含まれる複数のレコードへと組織するように動作し得る。メタファイル(120)内において、ファイルシステムのファイルおよびディレクトリは、逆階層構造において組織され得る。逆階層構造において、子ファイルに対応するレコードおよび親ディレクトリの子ディレクトリは、その親ディレクトリに対応するメタファイルにおけるレコードを直接示す。ファイルシステムの一インプリメンテーションにおいて、メタファイル(120)の個々のレコードは、ファイル識別子によってそれぞれアドレス可能であり得る。個々のレコードは、その親ディレクトリレコードのファイル識別子に対応する親識別子を含み得る。
【選択図】図1
【解決手段】コンピュータシステム(10)内のファイルシステムソフトウェア(47)は、固定データ記憶装置(30)のファイルを、メタファイル(120)に含まれる複数のレコードへと組織するように動作し得る。メタファイル(120)内において、ファイルシステムのファイルおよびディレクトリは、逆階層構造において組織され得る。逆階層構造において、子ファイルに対応するレコードおよび親ディレクトリの子ディレクトリは、その親ディレクトリに対応するメタファイルにおけるレコードを直接示す。ファイルシステムの一インプリメンテーションにおいて、メタファイル(120)の個々のレコードは、ファイル識別子によってそれぞれアドレス可能であり得る。個々のレコードは、その親ディレクトリレコードのファイル識別子に対応する親識別子を含み得る。
【選択図】図1
Description
本発明は一般に、コンピュータ、埋め込み型コントローラなどにおける使用のためのファイルシステムに関する。より詳細には、本発明は、逆階層構造を有するファイルシステムに関する。
コンピュータ、内蔵コントローラ、および他のマイクロプロセッサベースのシステムは、通常、様々な異なるハードウェアの構成要素から構成される。ハードウェア構成要素は、プロセッサ、I/Oデバイス、ヒューマンインターフェースデバイスなどを含み得る。付け加えて、そのようなシステムは、システムにおいて使用されるデータを維持するための、メモリ格納ユニットを使用する。メモリ格納ユニットは、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、ランダムアクセスメモリ、フラッシュメモリなどを含む、様々な異なる形態を取り得るが、それらに限定されるわけではない。
そのようなシステムにおいて実行されるハイレベルのアプリケーションプログラムは、しばしば、メモリ記憶装置ユニットを含むこれらのハードウェア構成要素とシームレスに遣り取りをしなければならない。この目的に対して、多くのシステムは、アプリケーションプログラムとシステムハードウェアとの間におけるインターフェースとしての機能を果たすオペレーティングシステムを実行する。ファイルシステムソフトウェアはオペレーティングシステムの一部として含まれ得るか、または、オペレーティングシステムと遣り取りをする補助的なソフトウェア構成要素として提供され得る。いずれかの例において、ファイルシステムソフトウェアは、プロセッサおよびそのプロセッサが実行するハイレベルアプリケーションプログラムによる素早いアクセスのために、メモリ記憶装置ユニット内のデータを編成する。
従来のファイルシステムにおいて、ファイルシステムソフトウェアは、データファイル、および、ディレクトリと呼ばれる、対応するコンテナを含む階層構造における記憶装置ユニット内のデータを組織する。従来の階層構造は、ルートディレクトリと呼ばれる開始ディレクトリを有する、逆さまの樹形の形式である。追加的なディレクトリおよびファイルは、ルートディレクトリに依存し得る。追加的なディレクトリは、さらなるサブディレクトリおよびファイルを含み得る。
ファイルシステムソフトウェアは、システムにおけるそれぞれのファイル/ディレクトリエントリの名前および属性を把握するために使用されるレコードを含む、一つ以上のメタファイルを維持する。これらの属性は、例えば、エントリがデータファイルまたはディレクトリ、読み出し専用ファイル、隠しファイル、システムファイルなどであるかどうかなどを含む。記憶装置ユニットに格納されたファイルデータに物理的にアクセスするために必要とされる情報はまた、メタファイルにおけるレコードに含まれ得るか、またはそれによって示され得る。
ファイルシステムが従来のファイルシステム階層を用いて組織される場合、プロセッサは、任意の変化がデータファイルまたはディレクトリになされた場合に、メタファイルにおける相当の数の異なるレコードを更新しなければならない。メタファイルレコードを更新することは、例えば、ファイルまたはディレクトリが作成され、リネームされ、または、一つのディレクトリから別のディレクトリへ移動したときなどはいつでも、生じなければならない。これらの状況の下で更新されなければならないメタファイルにおける相当の数の異なるレコードは、例えば、システムが停電あるいは他のハードウェアまたはソフトウェアの故障を経験する場合、所与のレコードに対する更新が生じない可能性を増加させる。さらに、そのような故障の後のファイルシステムの再構成は、ファイルが従来の方法において組織される場合、複雑になり得、および多大な時間を要するものとなり得る。従って、従来のファイルシステム階層に対する代替案が必要とされる。
従来のファイルシステム階層を改良するコンピュータシステムが開示される。コンピュータシステムは、プロセッサ、およびそのプロセッサによってアクセス可能である固定データ記憶装置を含む。システムはまた、プロセッサによって実行されるファイルシステムソフトウェアを含み得る。ファイルシステムソフトウェアは、固定データ記憶装置のファイルを、メタファイルに含まれる複数のレコードへと組織するように動作し得る。メタファイル内において、ファイルシステムのファイルおよびディレクトリは、逆階層構造において組織され得る。逆階層構造において、親ディレクトリの子ファイルおよび子ディレクトリに対応するレコードは、その親ディレクトリに対応するメタファイルにおけるレコードを直接、示す(point to)。ファイルシステムの一インプリメンテーションにおいて、メタファイルの個々のレコードは、ファイル識別子によってそれぞれアドレス可能であり得る。個々のレコードのそれぞれは、その親ディレクトリレコードのファイル識別子に対応する親識別子を含み得る。
メタファイルにおけるレコードによって表されるファイル/ディレクトリに関連するトランザクションは、所望される場合、他の関連する親または子レコードの対応する修正なしで、自動的に実行され得る。最適化されたインプリメンテーションにおいて、単一のメタファイルレコードは更新され得、そこにおいて、ファイルまたはディレクトリは作成され、リネームされ、または、一つのディレクトリから別のディレクトリへ移動する。
ファイルシステムの逆階層構造はまた、必要に応じて、直ちに拡張され得、メタファイルにおけるファイルまたはディレクトリレコードに関連する情報量を増加する。例えば、それぞれのメタファイルレコードは、メタファイルに格納され得る、対応する拡張されたファイルレコードを示す、拡張されたファイル識別子を含み得る。拡張されたデータは、メタファイルにおける単一のファイルまたはディレクトリに割り当てられたメモリスペース内に適合することができない、ファイルまたはディレクトリに対応する、追加的な情報を含み得る。
フィイルシステムの逆階層構造はまた、トランザクションベースのシステムにおける使用のために適しており、特に、システムのためのトランザクションファイルがフラッシュメディアに格納されているものが適している。一つのそのようなトランザクションベースのシステムにおいて、ファイルシステムの再構成されたバージョンは、システムのスタートアップの間、ランダムアクセスメモリにおいて生成され得る。再構成されたファイルシステムは、メタファイルに格納されたファイルおよびディレクトリレコードから、少なくとも部分的に生成され得る。メタファイルにおけるレコードは、逆階層構造において組織され、逆階層構造は、効率的なスタートアップ動作を容易にし、再構成されたファイルシステムの生成を最適化するために使用され得る。
本発明は、さらに以下の手段を提供する。
(項目1)
プロセッサと、
該プロセッサによってアクセス可能な固定データ記憶装置と、
該プロセッサによってアクセス可能な少なくとも一つのメタファイルであって、該メタファイルは、該固定データ記憶装置上のファイルおよび該ファイルのためのディレクトリコンテナに対応する複数のレコードを有する、メタファイルと
を備え、
該複数のレコードの該個々のレコードは、ファイル識別子によってそれぞれアドレス可能であり、該個々のレコードは親識別子を含み、所与のレコードの該親識別子が、該所与のレコードのための親ディレクトリレコードの該ファイル識別子に対応する、
コンピュータシステム。
プロセッサと、
該プロセッサによってアクセス可能な固定データ記憶装置と、
該プロセッサによってアクセス可能な少なくとも一つのメタファイルであって、該メタファイルは、該固定データ記憶装置上のファイルおよび該ファイルのためのディレクトリコンテナに対応する複数のレコードを有する、メタファイルと
を備え、
該複数のレコードの該個々のレコードは、ファイル識別子によってそれぞれアドレス可能であり、該個々のレコードは親識別子を含み、所与のレコードの該親識別子が、該所与のレコードのための親ディレクトリレコードの該ファイル識別子に対応する、
コンピュータシステム。
(項目2)
上記複数のレコードのそれぞれが固定された長さを有する、項目1に記載のコンピュータシステム。
上記複数のレコードのそれぞれが固定された長さを有する、項目1に記載のコンピュータシステム。
(項目3)
上記複数のレコードのそれぞれが、拡張されたレコード識別子をさらに含み、
所与のレコードのための該拡張されたレコード識別子は、上記メタファイルにおける拡張されたレコードのファイル識別子に対応し、該拡張されたレコードが、該所与のレコードによって表される該ファイルまたはディレクトリに関連するさらなる情報を含む、項目1に記載のコンピュータシステム。
上記複数のレコードのそれぞれが、拡張されたレコード識別子をさらに含み、
所与のレコードのための該拡張されたレコード識別子は、上記メタファイルにおける拡張されたレコードのファイル識別子に対応し、該拡張されたレコードが、該所与のレコードによって表される該ファイルまたはディレクトリに関連するさらなる情報を含む、項目1に記載のコンピュータシステム。
(項目4)
上記拡張されたレコードが、該拡張されたレコードによって表されたファイルまたはディレクトリの長い名前に対応する複数のASCII文字をさらに含む、項目3に記載のコンピュータシステム。
上記拡張されたレコードが、該拡張されたレコードによって表されたファイルまたはディレクトリの長い名前に対応する複数のASCII文字をさらに含む、項目3に記載のコンピュータシステム。
(項目5)
所与の拡張されたレコードの上記親識別子が、上記所与のレコードをアドレスする拡張されたレコード識別子を有するレコードの上記ファイル識別子に対応する、項目3に記載のコンピュータシステム。
所与の拡張されたレコードの上記親識別子が、上記所与のレコードをアドレスする拡張されたレコード識別子を有するレコードの上記ファイル識別子に対応する、項目3に記載のコンピュータシステム。
(項目6)
複数のレコードエントリのそれぞれが、上記レコードによって表されたファイルまたはディレクトリの短い名前に対応する複数のASCII文字をさらに含む、項目1に記載のコンピュータシステム。
複数のレコードエントリのそれぞれが、上記レコードによって表されたファイルまたはディレクトリの短い名前に対応する複数のASCII文字をさらに含む、項目1に記載のコンピュータシステム。
(項目7)
上記複数のレコードエントリのそれぞれが、
上記レコードに対応するファイルのタイプの情報を含むモードフィールドと、
該レコードに対応する該ファイルが最後にアクセスされた時間の情報を含むアクセス時間フィールドと、
該レコードに対応する該ファイルが最後に修正された時間の情報を含む修正時間フィールドと
をさらに備える、項目1に記載のコンピュータシステム。
上記複数のレコードエントリのそれぞれが、
上記レコードに対応するファイルのタイプの情報を含むモードフィールドと、
該レコードに対応する該ファイルが最後にアクセスされた時間の情報を含むアクセス時間フィールドと、
該レコードに対応する該ファイルが最後に修正された時間の情報を含む修正時間フィールドと
をさらに備える、項目1に記載のコンピュータシステム。
(項目8)
プロセッサと、
該プロセッサによってアクセス可能な固定データ記憶装置と、
該プロセッサによって実行されるファイルシステムソフトウェアと
を備える、コンピュータシステムであって、
該ファイルシステムソフトウェアは、該固定データ記憶装置のファイルを、少なくとも一つのメタファイルに含まれる複数のレコードに組織するように動作し、該ファイルシステムソフトウェアは、親ディレクトリの子ファイルおよび子ディレクトリに対応するレコードが、該親ディレクトリに対応するメタファイルにおけるレコードを直接示す逆階層構造において、該メタファイルにおける該ファイルおよびディレクトリを組織する、
コンピュータシステム。
プロセッサと、
該プロセッサによってアクセス可能な固定データ記憶装置と、
該プロセッサによって実行されるファイルシステムソフトウェアと
を備える、コンピュータシステムであって、
該ファイルシステムソフトウェアは、該固定データ記憶装置のファイルを、少なくとも一つのメタファイルに含まれる複数のレコードに組織するように動作し、該ファイルシステムソフトウェアは、親ディレクトリの子ファイルおよび子ディレクトリに対応するレコードが、該親ディレクトリに対応するメタファイルにおけるレコードを直接示す逆階層構造において、該メタファイルにおける該ファイルおよびディレクトリを組織する、
コンピュータシステム。
(項目9)
上記複数のレコードのそれぞれが固定された長さを有する、項目8に記載のコンピュータシステム。
上記複数のレコードのそれぞれが固定された長さを有する、項目8に記載のコンピュータシステム。
(項目10)
上記複数のレコードのそれぞれが、拡張されたレコード識別子をさらに含み、
所与のレコードのための該拡張されたレコード識別子が、上記メタファイルにおける拡張されたレコードのファイル識別子に対応し、該拡張されたレコードが、該所与のレコードによって表される上記ファイルまたはディレクトリに関連するさらなる情報を含む、項目8に記載のコンピュータシステム。
上記複数のレコードのそれぞれが、拡張されたレコード識別子をさらに含み、
所与のレコードのための該拡張されたレコード識別子が、上記メタファイルにおける拡張されたレコードのファイル識別子に対応し、該拡張されたレコードが、該所与のレコードによって表される上記ファイルまたはディレクトリに関連するさらなる情報を含む、項目8に記載のコンピュータシステム。
(項目11)
上記拡張されたレコードが、該拡張されたレコードによって表されたファイルまたはディレクトリの長い名前に対応する複数のASCII文字をさらに含む、項目10に記載のコンピュータシステム。
上記拡張されたレコードが、該拡張されたレコードによって表されたファイルまたはディレクトリの長い名前に対応する複数のASCII文字をさらに含む、項目10に記載のコンピュータシステム。
(項目12)
所与の拡張されたレコードの上記親識別子が、上記所与のレコードをアドレスする拡張されたレコード識別子を有するレコードの上記ファイル識別子に対応する、項目10に記載のコンピュータシステム。
所与の拡張されたレコードの上記親識別子が、上記所与のレコードをアドレスする拡張されたレコード識別子を有するレコードの上記ファイル識別子に対応する、項目10に記載のコンピュータシステム。
(項目13)
上記複数のレコードエントリのそれぞれが、上記レコードによって表されるファイルまたはディレクトリの短い名前に対応する複数のASCII文字をさらに含む、項目8に記載のコンピュータシステム。
上記複数のレコードエントリのそれぞれが、上記レコードによって表されるファイルまたはディレクトリの短い名前に対応する複数のASCII文字をさらに含む、項目8に記載のコンピュータシステム。
(項目14)
上記複数のレコードエントリのそれぞれが、
上記レコードに対応するファイルのタイプの情報を含むモードフィールドと、
該レコードに対応する該ファイルが最後にアクセスされた時間の情報を含むアクセス時間フィールドと、
該レコードに対応する該ファイルが最後に修正された時間の情報を含む修正時間フィールドと
をさらに備える、項目8に記載のコンピュータシステム。
上記複数のレコードエントリのそれぞれが、
上記レコードに対応するファイルのタイプの情報を含むモードフィールドと、
該レコードに対応する該ファイルが最後にアクセスされた時間の情報を含むアクセス時間フィールドと、
該レコードに対応する該ファイルが最後に修正された時間の情報を含む修正時間フィールドと
をさらに備える、項目8に記載のコンピュータシステム。
本発明の他のシステム、方法、特徴および利点は、以下に続く図面および詳細な記載の検討において、当業者にとって明らかである。そのような追加的なシステム、方法、特徴、および利点は、本記載内に含まれ、本発明の範囲内であり、添付の特許請求の範囲によって保護されるべきことが意図される。
本発明は、添付の図面および記載を参照してより良く理解され得る。図における構成要素は、必ずしも縮尺通りである必要はなく、その代わり、本発明の原理を例示することに強調が置かれる。さらに、図において、同様の参照番号は様々な図を通して、対応する部分を示す。
図1は、例示的なトランザクションベースのコンピュータシステム10において用いられ得る構成要素を示す。示されるように、例示的なシステム10は、プロセッサ15、読み出し専用メモリ20、および固定記憶装置ユニット30を含む。コンピュータシステム10はまた、ランダムアクセスメモリ35、I/Oインターフェース40、およびユーザインターフェース45を含み得る。コンピュータシステム10において使用される特定の構成要素は、コンピュータシステム10によって実行される特定の機能に対して変更され得る。従って、プロセッサ15以外の構成要素の存在または不在は、コンピュータシステム10に課される設計基準に対して特定的であり得る。例えば、コンピュータシステム10が内蔵のコントローラなどの形式をとる場合、ユーザインターフェース45は省かれ得る。
読み出し専用メモリ20は、プロセッサ15によって実行されるハイレベルのアプリケーションプログラムと、メモリデバイス20および35、固定記憶装置ユニット30、ならびに、インターフェースデバイス40および45を含む、様々なハードウェア構成要素との間の遣り取りを制御する、オペレーティングシステムコード43を含み得る。オペレーティングシステムコード43は、固定記憶装置ユニット30上に格納されたファイルを編成するためのファイルシステムソフトウェアを含み得る。あるいは、ファイルシステムソフトウェアは、オペレーティングシステムコード43と単に遣り取りするする別個のソフトウェア構成要素として提供され得る。後者の場合において、ファイルシステムソフトウェアに対応するコードは、読み出し専用メモリ20、固定記憶装置ユニット30などに格納され得る。コンピュータシステム10がI/Oインターフェース40を介して、他のコンピュータおよび/または記憶装置とネットワーク化される場合、ファイルシステムソフトウェアは、遠隔に格納され得、必要に応じて、コンピュータシステム10へダウンロードされ得る。しかしながら、図1は、読み出し専用メモリ20におけるファイルシステムソフトウェア47の格納を例示する。
固定記憶装置ユニット30は任意の数の異なる形式を取り得る。例えば、固定記憶装置ユニット30は、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、などの形式を取り得る。また、集積回路形式(例えば、フラッシュメモリなど)においてインプリメントされる不揮発性メモリなどの、非回転式メディアデバイスの形式であり得る。さらに、固定記憶装置ユニット30は単一のメモリ構造に限定される必要はない。むしろ、固定記憶装置ユニット30は、多数の同様のタイプ(例えば、全てのフラッシュメモリ)の別個の記憶装置、および/または多数の異なるタイプ(例えば、一つ以上のフラッシュメモリユニットおよび一つ以上のハードディスクドライブ)の別個の記憶装置を含み得る。
固定記憶装置30に格納されたファイルは、アプリケーションプログラムによってか、またはオペレーティングシステムコード43によって使用される所定のフォーマットに従って解釈されるデータを含む。例えば、ファイル内に格納されたデータは、実行可能なプログラム、データベースレコードのASCIIテキスト、コンピュータシステム10によって実行される(または実行されない)トランザクションに対応するデータなどのソフトウェアコードを構成し得る。
この例示的なシステム10において、ファイルシステムソフトウェア47は、逆階層構造を使用した固定記憶装置ユニット30に格納されたファイルを組織する。図2は、全体が、参照番号50にて示される逆階層構造がインプリメントされ得る一方法を示す図である。多くのファイルシステムによって使用される従来の階層構造において、ファイル構造の最上位はルートディレクトリから始まり、それぞれのディレクトリは、そのディレクトリ内に含まれるファイルおよびサブディレクトリへ下がっていく。例示的な逆階層構造50においては、しかしながら、親ディレクトリ内に含まれる子ファイルおよび子ディレクトリは、親ディレクトリに上がっていく。ファイルシステムがどこでその編成を開始するかに依存しつつ、ルートディレクトリは、ファイルシステム構造の最下位レベルを構成し得る。
例示的な逆階層構造50は、ファイルシステム構造の最上位レベルにおける、5つのファイル、55、60、65、70、および75を含む。ファイル55、60、および65はディレクトリ80内に含まれる一方で、ファイル70および75はディレクトリ85内に含まれる。従って、ファイルシステムソフトウェア47は、子ファイル55、60、および65を表すファイルシステムレコードがそれらの親ディレクトリ80に対するレコードに示すように、ファイルシステムを編成する。同様に、子ファイル70および75を表すファイルシステムレコードは、それらの親ディレクトリ85に対するレコードを示す。
例示的な逆階層構造50の次なるレベルにおいて、ファイル90、95およびディレクトリ80はディレクトリ100内に含まれ、一方で、ディレクトリ85はディレクトリ105内に含まれ得る。従って、ファイルシステムソフトウェア47は、子ディレクトリ80、ならびに子ファイル90および95を表すファイルシステムレコードがそれらの親ディレクトリ100に対するレコードに示すようにファイルシステムを編成する。同様に、子ディレクトリ85を表すファイルシステムレコードは、その親ディレクトリ105に対するレコードを示す。
ルートディレクトリ110は、逆階層構造50のトランク(trunk)を形成し得る。この例において、ディレクトリ100および105、ならびにファイル115は、ルートディレクトリ110内に含まれる。ファイルシステムソフトウェア47は、子ディレクトリ100および105ならびに子ファイル115を表すファイルシステムレコードがそれらの親ディレクトリ105に対するレコードを示すように、ファイルシステムを編成する。
ファイルシステムソフトウェア47が逆階層構造をインプリメントするためにファイルシステムのレコードを編成し得る一方法が、図3において示される。ファイルシステムのこのインプリメンテーションにおいて、ファイルシステムソフトウェア47は、そのファイルシステムにおいて使用されるそれぞれのファイルおよびディレクトリに対応するレコードを含む一つ以上のメタファイルを生成し得る。図3は、単一のメタファイル120、および、そのメタファイル120内のレコードが配置され得、フォーマットされ得る例示的な方法を示す。この例において、メタファイル120は、複数の等しい長さのレコードエントリ125を含むテーブルとして配置され得る。それぞれのレコードエントリ125は、ファイルシステムにおいて使用され得る単一のファイルまたはディレクトリに対応する。参照番号130にて示される独自のファイル識別子は、ファイルシステムソフトウェア47によって使用され得、メタファイル120の対応するレコード125をアドレスする。それぞれのレコードエントリ125が同じレコード長を有する場合、ファイル識別子130のフォーマットは、それが、メタファイル120における所望のレコードに対するインデックスとして、直接にかまたは間接的に使用され得るように、選択され得る。例えば、ファイル識別子130は、所望のディレクトリ/ファイル情報を有するメタファイルレコードの最初のバイトのメモリアドレスロケーションを計算するために、メタファイル120の最初のレコードのメモリアドレスロケーションと供に使用され得るオフセット値を構成し得る。
図3の例において、ファイル識別子130は、メタファイル120におけるレコード135(エントリ7)を示す。レコード135は、メタファイル120に隣接し、拡張形式において、図3に示される。レコード135の拡張形式はまた、それぞれのレコードエントリ125に対して使用され得る基本的なレコードフォーマットを示す。この例において、レコード135は、レコードによって表されるファイルまたはディレクトリに関連する情報を含む、多数の異なるフィールドを含む。他のものの中でも、この情報は、ファイルシステムの構造内におけるファイルまたはディレクトリの論理的ロケーションに対応する。
ファイルシステムの逆階層構造は、それぞれのメタファイルレコードがその親ディレクトリを表すメタファイルレコードに対するポインタを含む、メタファイルレコードフォーマットを用いることによってインプリメントされ得る。図3は、それぞれのメタファイルレコードが、その親ディレクトリのファイル識別子を格納する親識別子フィールド140を含む、メタファイルレコードフォーマットを示す。この例において、メタファイルレコード135の親レコード識別子140は、レコード145(エントリ9)をアドレスするために使用されるファイル識別子に対応する。次に、レコード145は、レコード135によって表されるファイルまたはディレクトリを含むディレクトリに関連する情報を含む。
それぞれのメタファイルレコードはまた、そのレコードが表すディレクトリまたはファイルに関連する他の情報を含み得る。レコード135の例示的なレコードフォーマットにおいて、多くの異なる情報フィールドが用いられる。情報フィールドは、モードフィールド150、ユーザ識別フィールド155、グループ識別フィールド160、アクセス時間フィールド165、修正時間フィールド170、作成時間フィールド175、ファイルサイズフィールド180、および短い名前フィールド185を含む。モードフィールド150は、レコードによって表されるファイルまたはディレクトリが、システムファイル/ディレクトリ、隠しファイル/ディレクトリ、読み出し専用ファイル/ディレクトリなどであるかどうかを決定するために使用され得る。ユーザ識別フィールド155およびグループ識別フィールド160は、表されたファイルまたはディレクトリのユーザおよびグループ所有権(ownership)に関連する情報を含む。アクセス時間フィールド165、修正時間フィールド170、および作成時間フィールド175は、それぞれ、表されたファイルまたはディレクトリが最後にアクセスされた時間、表されたファイルまたはディレクトリが最後に修正された時間、および表されたファイルまたはディレクトリが作成された時間に関連する情報を含む。サイズフィールド180は、レコードによって表されたファイルのサイズに関する情報を含み、ディレクトリレコードに対してゼロである。最後に、短い名前フィールド185は、対応するファイルまたはディレクトリの短いテキスト名を表すASCII文字を含む。短い名前フィールド185の長さは、例えば、POSIX規格に適合するように選択され得る。付け加えて、それぞれのレコードは、短い名前に対応する、ハッシュ値および/または名前の要約(sum)を含み得る。そのようなハッシュ値および/または名前の要約は、特定のディレクトリおよび/またはファイルレコードを迅速に検索(search)するために、ファイルシステムソフトウェア47によって使用され得る。
メタファイル120におけるそれぞれのレコードはまた、拡張レコード識別子190に対するフィールドを含み得る。拡張レコード識別子190は、メタファイル120における拡張レコードを示すファイル識別子として使用され得る。拡張レコードは、レコードによって表されるファイルまたはディレクトリに対するさらなる情報を含み得、特定のファイルまたはディレクトリに関連する情報の全てが、単一のメタファイルレコードに対して割り当てられるメモリスペース内に適合しない場合において、特に有用であり得る。
図3は、拡張レコード識別子190が使用され得る一方法を示す。この例において、レコード135の拡張レコード識別子190は、メタファイル120におけるレコード195(エントリ11)にアクセスするために使用されるファイル識別子(fid)に対応する。レコード195の開いた展開図が、図3におけるレコード135の開いた展開図に隣接して示される。この開いた展開図が、拡張レコードに対して使用され得る一つのレコードフォーマットを示す。示されるように、それぞれの拡張レコードは、それ自体の親識別子フィールド200を含み得る。拡張レコードの親識別子フィールド200は、しかしながら、拡張レコードを示すレコードのファイル識別子に対応する。図3に示された例において、親識別子フィールド200のコンテンツが、レコード135(エントリ7)に戻るために使用され得る。
二つのレコードエントリに割り当てられたメモリスペースがファイルまたはディレクトリに関連する情報の全てを保持するには不十分であるような場合において、拡張レコード195は、レコード195のフィールド205に含まれるような、それ自体の拡張レコード識別子を使用するさらなる拡張レコードを示し得る。拡張レコード識別子125によって示された、さらなる拡張レコードのフォーマットはここでは示されないが、さらなる拡張レコードは、同様に、レコード195に戻る親レコード識別子を含み得る。
拡張レコードに含まれる情報のタイプは、ファイルシステム間で変化し得る。図3において、拡張レコード195は、レコード135によって表されるファイルまたはディレクトリの長い名前のテキストに対応するASCII文字を含む、長い名前フィールド210を含む。さらなるフィールドは、レコード195などのような、それぞれの拡張レコードの拡張領域215において、予約され得、対応するファイルまたはディレクトリに関連する追加的な情報を格納する。
前述の例において、ファイルシステムに使用される拡張レコードは、メタファイル120において格納される。しかしながら、拡張レコードおよび任意のさらなる拡張レコードは、代替的に、別個のメタファイル、多数のメタファイルなどに格納され得る。別個のメタファイルは、同様の記憶装置媒体を、メタファイル120とも、相互にも、共有する必要はない。むしろ、メタファイルは、プロセッサ15にアクセス可能である異なる記憶装置媒体に格納され得る。基本的なメタファイルレコード(対応する拡張レコードを有しないディレクトリおよびファイルレコード)でさえも、多数のファイルおよび/または多数の記憶装置媒体の中において分配され得る。従って、例示的なシステムのメタファイルレコードは単一のメタファイルに格納されるが、そのメタファイルは、代替的には、同一の、または異なる記憶装置媒体上の多くの個々のファイルという形式であり得る。
逆階層構造におけるコンピュータシステム10のファイルおよびディレクトリを編成することによって、一つ以上のファイルシステムの利点を実現することが可能になる。例えば、ファイルシステムは、通常のファイルおよびディレクトリトランザクション(すなわち、ファイル/ディレクトリの移動、ファイル/ディレクトリの消去、ファイル/ディレクトリの作成、ファイル/ディレクトリのコピー)が、自動的に、単一のメタファイルレコードの変化、追加、または消去として達成される任意の方法においてインプリメントされることが可能である。このインプリメンテーションにおいて、例えば、レコード135によって表されるファイル/ディレクトリは、単に親識別子140を変化させることによって、階層における別のディレクトリに移動し得、その結果、それは、新しい親ディレクトリに対するメタファイルレコードを示す。これは、メタファイル120におけるレコード135に対する単一の書き込み動作を用いて達成され得る。
逆階層構造は、トランザクションまたはログベースのシステムを最適化するために用いられ得る。例示的なトランザクションまたはログベースシステムは、図1に示される構成要素から構成され得る。この例において、トランザクションファイル220は、固定記憶装置ユニット30に維持され得、それぞれのファイルシステムのファイルおよびディレクトリに関連するトランザクションのレコードを保持するために使用され得る。ファイルシステムの更新は、トランザクションファイル220に含まれるトランザクションレコードに基づいて、自動的になされる。最も単純な形式の一つにおいて、全てのトランザクションレコードは、固定記憶装置ユニット30の物理ブロックまたはセクターにマップされ得る単一の論理ページとして格納され得る。
トランザクションレコード225がコンピュータシステム10における使用のためにフォーマットされ得る一方法が、図4に示される。一般的に言えば、トランザクションファイル220のそれぞれのトランザクションレコード225は、ヘッダフィールド230および対応のデータフィールド235を含む。ヘッダフィールド230は多数の異なるサブフィールドを含み得る。図4に示されるサブフィールドは、トランザクションシーケンスフィールド240、ファイル識別フィールド245、トランザクション状態フィールド250、クラスタハイ(high)フィールド255、クラスタロー(low)フィールド260、クラスタ数フィールド265を含む。付け加えて、さらなるサブフィールドが、トランザクションの保全性を認証し、エラーを修正するために、ヘッダ230において含まれ得る。これらのさらなるサブフィールドは、クラスタ要約フィールド247、トランザクション要約フィールド、ヘッダ230をチェックおよび修正するエラー修正コードフィールド257、データ235をチェックおよび修正するエラー修正コードフィールド259、および、トランザクションレコードが格納され得るメモリロケーションの状態を示すさらなる状態フィールド262を含む。
ヘッダフィールド230のサブフィールドのそれぞれは、ファイルシステムソフトウェア47に対して意味を有する。この例において、トランザクションシーケンスフィールド240は、ファイルシステムソフトウェア47によって割り当てられ得る、単調に増加するトランザクション識別子であり得る。新しいトランザクションレコードがトランザクションファイル220に追加され得る場合、新しいレコードのトランザクションシーケンスフィールド240において格納される値は、時間的に先行するトランザクションレコードのトランザクションシーケンスフィールドの値を超えた、所定の量だけ増加され得る。従って、大きなトランザクション識別子の値を有するトランザクションレコードほど、小さなトランザクション識別子の値を有するトランザクションレコードよりも、時間的に後の、トランザクションファイル220に追加されると考えられる。トランザクションシーケンスフィールド240(および所定の状況においては、トランザクションファイル220のブロック内におけるトランザクションレコードの位置)の値によって表されるような、このトランザクションの時間順の順序によって、ファイルシステムソフトウェア47は、ファイルシステムのコンテンツの保全性を適切な順序に維持するために、トランザクションを適用する(すなわち、トランザクションをする)ことが可能である。トランザクションの時間的な順序の経過を追う他の方法もまた使用され得る。
ファイルシステムソフトウェア47は、トランザクションレコード225のトランザクションがなされるかどうかを決定するために、トランザクション状態フィールド250を使用する。いったんトランザクションがなされると、そのなされたトランザクションレコード225のさらなる変更が、ファイルシステムソフトウェア47によって禁止され得る。これはファイルシステムの整合性を保証し、ファイルシステムは、例えば、追記型メディア、フラッシュメディアなどにおいて、トランザクションファイル220を格納することができる。
ヘッダ230のファイル識別フィールド245は、トランザクションレコード225によって影響され得るファイルを識別する。ファイル識別フィールド245のフォーマットが、メタファイルレコードにおいて使用されるファイル識別子と同一であるように、選択され得る。クラスタハイフィールド255およびクラスタローフィールド260はファイルシステムソフトウェア47によって使用され得、データ235が、識別されたファイルに書き込まれ得る開始アドレス(またはオフセット)を決定し、その一方で、クラスタ数フィールド265は、識別されたファイルのクラスタがいくつデータ235によって上書きされるかを決定するために使用され得る。
上述したように、固定記憶装置ユニット30は、一つ以上のフラッシュメモリデバイスを含み得る。フラッシュメモリデバイスは、「メモリセル」と呼ばれる、論理ゲートにおける情報を格納し、それらのそれぞれは、通常、1ビットの情報を格納する。フラッシュメモリ技術におけるさらなる最近の発展によって、ときに、マルチレベルセルデバイスとも呼ばれるそのようなデバイスが、セル毎に1ビットよりも多くの以上を格納することが可能となっている。付け加えて、フラッシュメモリは不揮発性であり、それは、デバイスから電源が引き抜かれても、メモリセルのコンテンツは失われないことを意味する。
フラッシュメモリ技術が継続して進化しているが、優勢な技術としては、NANDフラッシュメモリおよびNORフラッシュメモリが挙げられる。NORフラッシュデバイスおよびNANDフラッシュデバイスは、一般に、それぞれの記憶装置セルに対して使用される論理ゲートのタイプにおいて異なる。NANDフラッシュメモリデバイス275のうちの一つのタイプの例示的な論理構成270が図5に示される。示されるように、デバイス275上の利用可能なメモリが、隣接する物理ブロック280に編成され得、それぞれが等しい数のメモリセルを有する(すなわち、16Kバイト)。NANDフラッシュメモリデバイス275は、さらに、隣接するブロック280のそれぞれを、特定数の物理セクターまたはページ290に分割する。次に、それぞれの物理ページ290は、さらに、データ領域295およびスペア領域300に分割され得る。データ領域295は、通常、データの格納のための予備であり、一方、スペア領域300は、通常、データ領域295に格納されたデータについてのメタ情報の維持のために予約される。メタ情報としては、例えば、セクターのコンテンツの確認および修正のために使用されるエラー修正コード、巡回冗長検査データなどが挙げられ得る。
NORフラッシュデバイスは、それぞれのページのスペア領域がデータ領域の反対側に位置する点を除いて、図5に示されるものと同様な構成を有する。NORフラッシュデバイスはまた、ランダムアクセス読み出しおよびプログラミング動作を提供し、個々のメモリロケーションが読み出されるか、読み出すことが可能である。しかしながら、いったんブロックにおけるメモリロケーションが書き込まれると、NORフラッシュデバイスは、そのブロックが、ブロックよりも小さい細分性にて再書き込みをされないようにする。同様に、NORフラッシュデバイスは、ブロックよりもより小さい細分性における動作を消去させないようにする。
データ領域295およびスペア領域300は、通常、NORおよびNANDフラッシュデバイスの両方における特定のサイズに設定される。例えば、図5の例示的なNANDフラッシュデバイス275のそれぞれのページ290は、ページサイズ全体で528バイトに対して、512バイトのデータ領域295、および16バイトのスペア領域300を含む。NANDフラッシュデバイス275はまた、ブロック280毎に32個のページ290を用いる。他のページサイズは、コンピュータシステム10において使用され得、商業的にも利用可能である。例えば、多くのNANDデバイスは、64個のページを含むブロックを含み、そこで、それぞれのページは2112バイトを格納し、その結果、ページ毎のトータルのデータ領域は、2048バイトであり、ページ毎のスペア領域は64バイトである。
NANDフラッシュデバイス275のようなフラッシュメモリデバイスは、通常、一度に、メモリのメモリブロック280全体上における消去動作を実行する。消去動作は、ブロック280内の全てのビットを、コンシステントな状態、通常はバイナリ「1」の値に設定する。フラッシュデバイス275の消去されたブロック280上におけるプログラミング動作は、ページ290全体のコンテンツを変更することができるのみである(NORフラッシュデバイスは、僅かに異なる方法においてプログラムされ得るけれども)。いったんNANDフラッシュデバイスのページ290がプログラムされると、その状態は、ブロック280全体が再び消去され得るまで、さらに変更され得ない。フラッシュデバイス275のコンテンツを読み出すことがまた、そのページレベルにおいて生じる。
図6は、トランザクションレコードがNANDフラッシュデバイス275などのフラッシュメモリデバイスにおいて編成され得る一方法を示す。この例において、それぞれのトランザクションレコード305は、二つ以上の隣接した論理ページ315からなり得る。次に、それぞれの論理ページ315は、デバイス275のブロック280の、二つ以上の隣接した物理ページ290からなり得る。トランザクションレコード310に対するメタデータ情報は、スペア領域300において格納され得、図4のヘッダ230と関連して記載されるフィールドの一部を含み得る。それぞれのページ290のスペア領域300のサイズに依存しつつ、メタデータ情報は、トランザクションレコード310の多数のスペア領域300において、分割され得る。二つの連続した物理ページ290のスペア領域300間のメタデータ情報の分割が図6において示される。図6において示されるトランザクションレコードはまた、それぞれのトランザクション310が、単一の論理ページ315に対応し、単一の論理ページ315が、例えば、二つの隣接した物理ページ290からなり得るように、編成され得る。
フラッシュデバイス275における、それぞれの論理ページ315と物理ページ290との間の一対一対応が存在し得る代替的な配置が図7において示される。この配置と図6において示されるものの間の差異は、メタデータ情報320の全てが、トランザクション310の最初の物理ページ290の単一のスペア領域300に格納され得る。このタイプの配置は、大容量のフラッシュデバイスが用いられる場合に、得に適切であり得る。しかしながら、メタデータ情報320はまた、トランザクションレコードの二つの隣接した物理ページ290のスペア領域300間に分割され得る。
同一のデバイスブロック290において格納されたトランザクションレコード310に対するシーケンス識別子は同一の値を有し得る。そのような場合において、シーケンス識別子は、異なるデバイスブロックのトランザクションレコード間における時間関係を比較するために用いられ得る時間順の情報を提供する。同一のブロックにおいて格納されたトランザクションレコード310に関する時間順の情報は、ブロック290内のトランザクションレコード310のオフセットロケーションから引き出され得、後に、より大きなオフセットにて生じるトランザクションレコード310を生じる。
コンピュータシステム10が開始されるか、電源をオンにされた後、ファイルシステムの保全性は、ランダムアクセスメモリ35におけるファイルシステムの再構成されたバージョンを生成することによって確認され得る。図1の参照番号330において通常示されるように、再構成されたファイルシステムは、トランザクションファイル220において格納された有効になされたトランザクションを用いて、および、メタファイル120に格納されたファイル/ディレクトリ情報から、生成され得る。図1において、再構成されたファイルシステム330は、再生成されたファイル階層335およびエクステントテーブル340を含む。
エクステントプール340を生成する一方法は、図8から図11において示される。図8は、エクステントプール340を生成するために使用され得る多数の相互に関連する処理ステップを示し、一方で、図9から図11は、これらの動作において生成され、使用される様々なテーブルおよびアレイの論理編成を示す。
エクステントテーブル340の生成は、トランザクションレコードの全てを見出すために、トランザクションファイル220のブロックをスキャンすることによって、図8のステップ345において開始する。ブロックは、なされたトランザクションレコードが見出される、最も低い順序のブロックから最も高い順序のブロックの順にスキャンされ得る。トランザクションがブロック内に見出される場合、トランザクションレコードを有するそれぞれのデバイスブロックを識別するブロックレコードのアレイが、ステップ350において生成され得る。
ファイルシステムソフトウェア47が、4つのトランザクションであるトランザクションファイル220のブロックをスキャンすると、ファイルシステムソフトウェアは、回収されたトランザクションの結果として消去されているブロックにあたり得る。これらのブロックは、ファイルシステムにおいて使用するために割り当てられていないからである。トランザクションヘッダは、通常バイナリ「1」である、消去された値に設定されたヘッダの全てのビットを有する有効なトランザクションが存在しないように、構成され得る。ファイルシステムソフトウェア47がトランザクションファイル220のブロックをスキャンする場合、ヘッダが消去されたブロックを示す任意のトランザクションがスキップされ得る。このヘッダの不変量は、トランザクションはそれが消去された値の逆である場合にファイルシステムによって使用中であることを示すフラグとして、単一のビットを使用することによって、実行され得る。トランザクションヘッダにおける消去のサイン値を見出した後、ブロックにおける残りのページをスキャンすることはスキップされ得、それによって、さもなければ消去されたページにアクセスするために使用される時間を節約し得る。システムのスタートアップ時間全体が、それに対応して減少され得る。
例示的なブロックアレイ355の編成は図9において示される。それぞれのブロックアレイレコード360は、シーケンスフィールド365、開始トランザクションフィールド370、およびトランザクション数フィールド375を含む。シーケンスフィールド365は、ブロックにおいて格納されたトランザクションレコードに対する、トランザクション識別値を格納するために使用され得る。開始トランザクションフィールド370は、ブロックにおける第1のトランザクションに対するするインデックスを格納するために使用され得、トランザクション数フィールド375は、ブロックにおいて見出されるトランザクション数を格納するために使用され得る。
図8のステップ380において、ファイルシステムソフトウェア47は、ブロックアレイ355におけるそれぞれのレコードエントリに対する、トランザクションリストテーブルを配置する。図9は、トランザクションリストテーブル385が編成され得る一方法を示す。この例において、ブロックアレイ355のそれぞれのレコード360は、トランザクションリストテーブル385の少なくとも一つのトランザクションリストレコード390を示す。より詳細には、トランザクションリストレコード390は、所定のブロックアレイレコード360によって表されるブロックにおいて見出されるそれぞれのトランザクションに対して生成され得る。所与のブロックアレイレコード360のトランザクション数フィールド375に格納された値は、所与のブロックにおけるトランザクション数に対応し、所与のブロックに対するレコード390がいくつトランザクションリストテーブル385に追加されるかを指定する。
トランザクションリストテーブル385のそれぞれのトランザクションリストレコード390は、同一のレコード長を有し得、同一のレコードフィールドを含み得る。図9のレコード390において使用される例示的なフィールドは、ファイルクラスタオフセットフィールド395、デバイスクラスタインデックスフィールド400、クラスタ数フィールド405、およびファイル識別子/idxフィールド410を含む。ファイルクラスタオフセットフィールド395は、ブロック内でのトランザクションの物理ロケーションを識別するために使用され得る。デバイスクラスタインデックスフィールド400は、トランザクションのデータがどこで開始されるかを識別するために使用され得る。クラスタ数フィールド405は、どれくらいのデータのクラスタがそのトランザクション内に存在するかを識別するために使用され得る。最後に、以下で説明するように、ファイル識別子/idxフィールド410は多目的である。しかしながら、最初に、ファイル識別子/idxフィールド410において格納される値は、そのトランザクションが適用されるファイルを識別するために使用され得る。フィールド410において格納されるファイル識別子の値は、メタファイル120におけるレコードを基準にするために使用されるファイル識別子に直接に対応し得る。ステップ380が完了した後、ブロックアレイ355のレコード360は、例えば、ブロックの昇順において配置され、一方で、それぞれのブロックアレイレコード360に対するレコード390は、ページの昇順において配置される。
ステップ415において、ブロックアレイ355のレコード360は、シーケンスフィールド365において格納される値に基づいて、ソートされる。この動作は、時間順に(すなわち、対応するトランザクションがファイルシステムのファイルに適用される順)、トランザクションリストテーブル385のレコード390を配置するために実行され得る。
ファイルシステムのトランザクションレコードに対応するファイルノード情報を格納する一時ファイル440は、次いで、ブロックアレイ355のソートされたレコードおよびトランザクションリストテーブル385を用いて、RAM35において生成され得る。このため、ファイルシステムのルートディレクトリに対応する基本的なレコードは、最初に、一時ファイル440に追加され得る。一時ファイル440におけるルートディレクトリノードを生成するために使用される情報は、メタファイル120に格納されたルートディレクトリファイルに対応するレコードから得られ得る。
一時ファイル440においてファイルノードレコードを配置する一方法の論理表現は、全体が図10の参照番号445として、示される。この例において、それぞれのファイルノードレコード450は、ファイルノードフィールド455および開始フィールド460を含む。ファイルノードフィールド455のコンテンツは、トランザクションリストテーブル385の様々なトランザクションレコード390がリンクされ得るファイルノードを識別するために使用され得る。明瞭さのために、ファイルノードフィールド455のコンテンツは、メタファイル120の、対応するレコードエントリ125にアクセスするために使用されるファイル識別子と同じフォーマットを有し得る。開始フィールド460のコンテンツは、ファイルノードフィールド455において識別されたファイルに対応するトランザクションリストテーブル385における第1のトランザクションレコード390のロケーションを識別するために使用され得る。従って、それぞれのファイルノードレコード450は、ファイルシステム内のファイル、および識別されたファイルに関連する第1のトランザクションのロケーションを識別する。
ステップ420において、ブロックアレイ355およびトランザクションリストテーブル385のそれぞれのソートされたレコード360および390は、ファイル識別子/idxフィールド410に格納されたファイル識別子に対応するファイルノードレコード450を、一時ファイル440が含むかどうかを決定するために移動させる(traverse)。トランザクションレコード390と同じファイル識別子を有するファイルノードレコード450が一時ファイル440に見出されない場合、新しいファイルノードレコード450は、ステップ430において作成され得る。いったんトランザクションリストレコード390に対応するファイルノードレコード450が一時ファイル440において存在すると、トランザクションリストレコード390は、ファイルノードレコード450に対するトランザクションのリストにリンクされ得る。この例において、トランザクションリストレコード390は、図8のステップ435におけるファイルノードレコード450に対するトランザクションのリストにリンクされ得る。トランザクションリストレコード390がファイルノードに対するトランザクションのリストにリンクされ得る方法は、そのトランザクションリストレコード390が、ファイルノードの第1のトランザクションリストレコードであり得るか、または、ファイルノードに対する、その後のトランザクションリストレコードであり得るかに依存し得る。それがファイルノードの第1のトランザクションリストレコードである場合、ファイルノードレコード450の開始フィールド460は、この第1のトランザクションリストレコード390の開始ロケーションを識別するように更新され得る。従って、ファイルノードレコード450の開始フィールド460のコンテンツは、トランザクションリストテーブル385におけるロケーションを示すために使用され得、トランザクションリストテーブル385は、そのファイルに適用された第1のトランザクションに対するエクステント情報を含む。ファイル識別子/idxフィールド410の機能は、トランザクションリストレコード390がファイルノードに対する現行のトランザクションリストレコードに追加され得る場合(すなわち、それがファイルノードに対する第1のトランザクションリストレコードではない場合)、変更される。より詳細には、フィールド410の値と機能は、それがファイルノードに関連する最後のトランザクションレコード390を示すために、変更され得る。これは図10において例示され、そこで、ファイルノードレコード450の開始フィールド460は、トランザクションリストレコード390の開始を示す。レコード390のファイル識別子/idx410は、次に、トランザクションリストレコード465の開始を示し、トランザクションリストレコード465は、ファイルノードレコード450によって表されるファイルに対する第2のトランザクションのロケーション上の情報を含む。同様に、ファイルノードレコード470の開始フィールド460は、トランザクションリストレコード475の開始を示す。トランザクションリストレコード475のファイル識別子/idxフィールド410は、トランザクションリストレコード480の開始を示し、トランザクションリストレコード480は、ファイルノードレコード470によって表されるファイルに対する第2のトランザクションのロケーションに関する情報を含む。
いったん、トランザクションリストテーブル385のトランザクションリストレコードの全てが、対応するファイルノードレコードと適切な方法にてリンクされると、それぞれのファイルノードに対するトランザクションリストレコードがステップ485に移動し、未遂および/または誤ったファイルトランザクションを参照とする任意のトランザクションリストレコードを取り除く。そのようなトランザクションリストレコードの除外は、様々な異なる方法において達成され得る。例えば、ファイルシステムソフトウェア47は、それがなされたかどうかを決定するために、最後に生じたトランザクションの状態フィールドをチェックし得る。そのトランザクションがなされていた場合、トランザクションリストテーブル385における対応するレコードは、分配されないままであり得る。しかしながら、トランザクションが未遂である場合、トランザクションリストテーブル385における対応するレコードは、取り除かれ得るか、さもなければ、無視され得る。
トランザクション遂行の検査のこのタイプを促進するために、ファイルシステムソフトウェア47は、最後に生じたトランザクションがなされたことを確認する必要があるのみである。他の全てのレコードの遂行検査はスキップされ得る。というのも、最後に生じたトランザクションのみは、停電、不正なシステムのシャットダウンなどの影響を受けるからである。他の全てのレコードの遂行検査をスキップすることによって、システムのスタートアップに必要とされる時間は、大幅に低減され得る。
直線的なシーケンスの一部として示されているが、ステップ485は、それぞれのトランザクションリストレコードがその対応するファイルノードを組み入れるために処理され得るように、実行され得る。例えば、ファイルシステムソフトウェア47は、そのトランザクションがなされたかどうかを決定するために、それぞれのトランザクションレコードのヘッダに含まれる状態情報をチェックし得る。このチェックは、それぞれのトランザクションレコードが、対応するトランザクションリストレコードを配置するために使用され得る場合に、生じ得る。いったんファイルシステムソフトウェア47が未遂のトランザクションを見出す場合、図8のステップ420〜ステップ485におけるトランザクションリストテーブル385のさらなる処理は必要とされない。
ステップ490において、それぞれのファイルノードに対するエクステントプール340においてエントリが生成される。これが達成され得る一つの方法は、図11において示される。この例において、それぞれのファイルノードの開始フィールド460のコンテンツは、それがここでエクステントインデックスフィールド487として動作するように、変化され得る。エクステントインデックスフィールド487は、ファイルの第1のトランザクションに対するトランザクションデータのロケーションの情報を含むエクステントプール340における第1のロケーションを示す。それぞれのエクステントレコード490は、クラスタ数フィールド495、開始クラスタフィールド500、および次のエクステントフィールド505を含み得る。開始クラスタフィールド500は、デバイス270における開始ロケーションを識別し、そこで、ファイルノードに対応するファイルの第1のファイルトランザクションが格納され得る。クラスタ数フィールド495は、どれくらい多くの隣接するデバイス270のクラスタがファイルトランザクションを格納するために使用されるかを識別する。次のエクステントフィールド505は、ファイルノードによって表されるファイルに対する次のエクステントレコードのエクステントインデックスを識別する。この例において、エクステントインデックス487はエクステントレコード510を示し、その一方で、エクステントレコード510の次のエクステントフィールド505は、エクステントレコード515を示す。
エクステントプール340のレコードを配置するために使用されるデータは、トランザクションリストテーブル385において格納されるデータから、少なくとも一部、引き出され得る。ここで示される例において、エクステントプール340は、トランザクションリストテーブル385のさらにコンパクトな形式であり得る。このため、ファイルシステムソフトウェア47は、トランザクションリストレコードが同一のファイルノードの一部である場合、隣接したデータを有するトランザクションリストレコードを単一のエクステントレコードエントリに組み合わせ得る。同様に、RAM35におけるブロックアレイ355を維持するさらなる必要は存在しない。それゆえ、ブロックアレイ355は、RAM35から取り除かれ得る。
トランザクションファイル220におけるトランザクションの保全性は、エクステントプール340を生成するために使用される様々なステップの実行の間、チェックされ得る。例えば、トランザクションレコードの保全性チェックは、図8のステップ350またはステップ380の間に実行され得る。通常のデータチェックは、CRCおよびECC技術を含む。
コンピュータシステム10のスタートアップ時間を低減するために、エラーチェック技術は、所定のトランザクションのヘッダに含まれる情報に制限され得る。トランザクションが図8において示されるスタートアッププロセスの間に見出される場合、ファイルシステムソフトウェア47は、トランザクションが、メタファイル120におけるディレクトリ構造情報などのファイルデータまたはメタデータに影響を与えるかどうかを識別し得る。この区別は、トランザクションに関連するファイル識別子に基づき得る。通常、メタデータは、よく知られるファイル識別子によって表され、ファイルシステムソフトウェア47にハードコードされる(例えば、それらは、メタファイル120を、トランザクションの主題(subject)であるファイルとして識別する)。メタデータのみが、ファイルシステムがスタートアップ後にコンシステントな状態にあることを確認するために要求されるゆえ、トランザクションのデータ部分のデータチェック技術は、トランザクションがそのようなメタデータに関連する場合のみ、実行される。トランザクションがメタデータの変化に関連しない場合、データチェック技術は、最初にヘッダ情報のチェックのみに限定され得る。図6に示されるトランザクションレコードフォーマットにおいて、システムスタートアップにおいて確認されなければならない主ヘッダ情報は、それぞれのトランザクションレコード310の第1のスペア領域300において格納され得る。これにより、ファイルシステムソフトウェア47は、それぞれのトランザクションレコード310の第2のスペア領域に含まれるヘッダ情報の認証をスキップすることができ、それによって、スタートアップシーケンスをさらに最適化することができる。以下でさらに詳細に説明するように、それぞれのトランザクションのデータ部分のエラーチェックは、対応するファイルが、スタートアップシーケンスの完了後に、ファイルシステムソフトウェア47によって最初にアクセスされ得るまで、延期され得る。
トランザクションレコードの任意のスタートアップ認証は、一連の順序だったトランザクションの第1のトランザクションヘッダのみに、エラーチェックを制限することによってさらに最適化され得る。トランザクションファイル220のスタートアップスキャンの間、トランザクションヘッダが見出され、同一のファイルに対する多数の順序だったトランザクションレコードが後に続く場合、その順序における後続のトランザクションのヘッダの認証は、いったんシーケンスの第1のトランザクションレコードに対するヘッダが承認されると、スキップされ得る。ヘッダ情報のスキャンおよび認証は、次いで、後続のトランザクションの最後に続く次のブロックを回復し得る。
RAM35において、再構成されるファイルシステム330を生成することにおける次の広いステップは、再生成されたファイル階層335の構成であり得る。この例において、再生成されたファイル階層335は、ファイルおよびディレクトリノードレコードの両方からなり得る。ディレクトリノードレコードに対する例示的なフォーマットは、全体が、図12の参照番号520に示され、一方、ファイルノードレコードに対する、対応する例示的なフォーマットは、全体が、図13の参照番号525に示される。
ディレクトリノードレコード520は、ファイルシステムソフトウェア47によって使用される多数の異なるフィールドを含む。より詳細には、ディレクトリノードレコード520は、兄弟フィールド530、ファイル識別子フィールド535、親識別子フィールド540、子フィールド545、およびディレクトリ名フィールド550を含み得る。同様に、図13のファイルノードレコードは、ファイルシステムソフトウェア47によって使用される多数の異なるフィールドを含む。ファイルノードレコードフィールドは、兄弟フィールド555、ファイル識別子フィールド560、エクステントインデックスフィールド565、および名前要約フィールド570を含み得る。
メタファイル120のレコードにおいて含まれるデータが、再生成されたファイル階層335の構成において使用され得るゆえ、メタファイルレコードがメタファイル120に配置される方法は、システムスタートアップの性能に影響を与える。このため、メタファイル120のレコードは、同じ長さを有する隣接したレコードとして、単一のメタファイルに配置され、同一の記憶装置媒体に全て格納される。この配置は、ファイルシステムソフトウェア47がメタファイルにアクセスし得るスピードを向上させ、そのアクセスに必要とされる処理の量を低減させる。
再生成されたファイル階層335のそれぞれのファイルノードレコード525およびディレクトリノードレコード520に対するフィールドを配置するために使用され得る一連のステップは、図14に示される。例示されたシーケンスは、メタファイル120においてそれぞれのレコードに対して実行され得、ステップ575において開始され得る。ステップ575において、ファイル識別子は、メタファイル120内における第1のレコードエントリのオフセットに基づいて、生成され得る。再生成されたファイル階層335のチェックは、ステップ580において、ファイル識別子に対応するファイルノードレコード525またはディレクトリノードレコード520が既に存在するかどうかを決定するために、なされ得る。対応するノードレコード520または525が存在しない場合、新しいレコードファイルが、再生成されたファイル階層335において作成され得る。新しく作成されたレコードのフォーマットは、ファイル識別子が、メタファイル120におけるファイルエントリまたはディレクトリエントリに対応するかどうかに依存する。ファイルシステムソフトウェア47は、この決定をし、適切なレコードフォーマット520または525を適用する。
ステップ585において、新しく作成されたレコードに対するフィールドが、メタファイル120において見出されるファイル/ディレクトリに対する属性を使用し、配置される。新しく作成されたレコードが、ディレクトリノードに対応する場合、親識別子フィールド540およびディレクトリ名フィールド550は、メタファイル120における対応するレコードの親ファイル識別子および短い名前フィールドにおけるデータを使用して、配置される。新しく作成されたレコードがファイルノードに対応する場合、名前要約フィールド570は、メタファイル120における対応するレコードのファイル名データに直接格納されるか、またはそこから引き出されるデータを使用して、配置され得る。エクステントインデックスフィールド565は、対応するファイルノードレコード450のエクステントインデックスフィールド487に見出されるデータを使用して、配置され得る(図11を参照)。
新しく作成されたファイルがディレクトリノードに対応する場合、再生成されたファイル階層335を介した検索が、親ノードが存在するかどうかを決定するために、ステップ590において試みられ得る。親ノードが存在しない場合、親ノードに対応するディレクトリレコードは、再生成されたファイル階層335に追加され得る。
ステップ595において、新しく生成されたファイル/ディレクトリレコードは、親ディレクトリノードに対する樹形構造にリンクされ得る。新しく生成されたファイル/ディレクトリレコードの子フィールド545が、親ディレクトリが子を有さないことを示す場合、親ディレクトリレコードの子フィールド545の値は、新しく生成されたファイル/ディレクトリレコードを示すように設定され得、その新しく生成されたファイル/ディレクトリレコードの兄弟フィールド555または530は、新しく生成されたファイル/ディレクトリレコードが兄弟を有さないことを示すように設定され得る。親ノードレコードの子フィールド545が、親ディレクトリノードが子を有さないことを示す場合、新しく生成されたファイル/ディレクトリレコードの兄弟フィールド565または530は、親ディレクトリの現行の子を示すように設定され得、親ディレクトリの子フィールド545は、新しく生成されたファイル/ディレクトリレコードを示すように設定され得る。新しく生成されたファイル/ディレクトリレコードがディレクトリノードに対応する場合、新しく生成されたディレクトリレコードの親識別子フィールド540は、親ディレクトリノードを示すように設定され得る。
ステップ600において、ファイルシステムソフトウェア47は、再帰的に、親ノードを上り、新しく生成されたファイル/ディレクトリレコードの親ディレクトリから開始され、ルートノードが到達されるまで、一連の処理ステップを実行する。この点において、新しく生成されたファイル/ディレクトリレコードの親ディレクトリノードは、カレントディレクトリノードとして呼ばれ得る。図14において示される例示的なプロセスにおいて、ファイルシステムソフトウェア47は、カレントディレクトリの親ノードに対応するディレクトリノードレコードが存在するかどうかを決定するために、再生成されたファイル階層335をチェックする。このプロセスは、ステップ605およびステップ610において実行され得る。そのようなディレクトリレコードが再生成されたファイル階層335に存在しない場合、新しいディレクトリレコードがステップ615において生成され得る。新しく生成されたディレクトリレコードの子フィールド545は、次いで、新しいディレクトリレコードの子のみとして、カレントディレクトリノードレコードを示すように設定され得る。ステップ620において、カレントディレクトリノードレコードの親識別子フィールド540は、新しく生成されたディレクトリレコードを示すように設定され得る。カレントディレクトリノードレコードの兄弟フィールド530は、ステップ625において、カレントディレクトリノードレコードに対する兄弟が存在しないことを示すように設定され得る。
ステップ605およびステップ610において実行されたチェックが、カレントディレクトリの親ノードに対応する、再生成されたファイル階層335におけるディレクトリレコードが存在することを示す場合、次いで、カレントディレクトリノードは、ステップ630において、親ディレクトリノードの生成された樹形構造にリンクされ得る。このため、カレントノードの親識別子フィールド540は、再生成されたファイル階層335における親ノードレコードのロケーションを示すように設定され得る。カレントディレクトリノードの兄弟フィールド530は、親ノードレコードの子フィールド545によって示されるのと同じレコードを示すように設定され得る。最後に、親ディレクトリノードの子フィールド545は、カレントディレクトリノードのロケーションを示すように設定され得る。
ステップ635において、ファイルシステムソフトウェア47は、再帰的なディレクトリ処理が完了したかどうかを決定するためにチェックする。この例において、再帰的なディレクトリ処理は、その処理がルートノードを送信するときに、完了し、そのルートノードは、独自かつ認識可能なファイル識別子である。ルートノードがステップ635において到達される場合、メタファイル120における次のファイルレコードエントリは、ステップ640において開始され得、処理の制御はステップ575に戻る。ルートノードがステップ635において、到達しない場合、次いで、斜上型のファイル/ディレクトリ階層における次の親ノードの処理は、ステップ605において、始めから繰り返され得る。
図15は、再構成されたファイルシステム330の論理表示であり、図2において示されたファイル階層を有するファイルシステムに対して、図8および図14の処理ステップを適用することに対応する。この例示的な表示において、線665、670、675、および680は、それぞれ、ディレクトリ105、100、80、および85を表すディレクトリノードレコードに対する、親識別子フィールド540のコンテンツに対応するポインタを表す。線645、650、660、および652は、それぞれ、ディレクトリ110、100、105、80および85を表す、ディレクトリノードレコードに対する、子識別子フィールド545のコンテンツに対応するポインタを表す。線685、690、695、および705は、それぞれ、ディレクトリ100、105、および80に対応するディレクトリノードレコードに対する兄弟識別子フィールド530のコンテンツに対応するポインタを表す。線700、705、710、および715は、それぞれ、ファイル90、55、60、および70に対応するファイルノードレコードに対する兄弟識別子フィールド555のコンテンツに対応するポインタを表す。
再構成されたファイルシステム330を使用した固定記憶装置ユニット30のトランザクションファイル220におけるデータにアクセスする一方法はまた、図15に示される。示されるように、ファイルシステムソフトウェア47は、ソフトウェアがアクセスするファイルノードレコードに対して、ファイル識別子730を提供する。この例において、ファイル識別子730は、ファイル55を表すファイルノードレコードを示す。ファイルシステムソフトウェア47は、次いで、トランザクションファイル220におけるファイルに対するデータを配置するために、エクステントプール340へのインデックスとして、ファイルノードレコードのエクステントインデックス565のコンテンツを使用する。しかしながら、ファイルシステムソフトウェア47は、図15において示されるものとは異なる様々な異なる方法において、再構成されたファイルシステム330のコンテンツを使用し得る、ということは理解される。
上記したように、ファイルの保全の完全な認証は、スタートアップ処理が促進され得るために、スタートアップの間は実行されない。その代わり、ファイルシステムソフトウェア47は、ファイルがアクセスされ得る最初の時間まで、ファイルの完全な認証を延期し得る。このため、ファイルシステムソフトウェア47は、それぞれのファイルの保全が完全に認証されているかどうかを示すテーブルを維持し得る。あるいは、ファイルシステムソフトウェア47は、ファイルの保全が完全に認証されたかどうかを示すために、再生成されたファイル階層335におけるそれぞれのファイルノードレコードの一つ以上のビットを使用し得る。このインジケータは、ファイルがスタートアップ後にアクセスされ得る、少なくとも最初の時間に、ファイルシステムソフトウェア47によってチェックされ得る。インジケータが、ファイルが完全に認証されていないことを表す場合、ファイルの完全な認証は、その時点において実行され得る。あるいは、ファイルのトランザクションのヘッダが既にチェックされているゆえ、ファイルシステムソフトウェアは、ファイルに対するそれぞれのトランザクションのデータ部分の保全を認証する必要があるのみである。認証プロセスは、一つ以上のCRCプロセス、一つ以上のECCプロセスなどを含み得る。
図5、図6、および図7に示されるように、それぞれのトランザクションレコードヘッダにおける多数の異なるフィールドが、トランザクションレコード全体の保全を認証することに専念され得る。保全性のチェックが失敗し、適切なエラー修正コードを使用するアプリケーションがエラーを修正できない場合、次いで、プログラムエラーは、ファイルコンテンツへのアクセスの要求をしたアプリケーションまたはシステムに報告され得る。
本発明の様々な実施形態が記載されているが、さらに多くの実施形態およびインプレメンテーションが本発明の範囲内にて可能であることは当業者にとって明らかである。従って、本発明は、添付された請求の範囲およびそれらの均等物の観点を除いて、限定されない。
10 コンピュータシステム
15 プロセッサ
30 固定記憶装置ユニット
47 ファイルシステムソフトウェア
120 メタファイル
15 プロセッサ
30 固定記憶装置ユニット
47 ファイルシステムソフトウェア
120 メタファイル
Claims (14)
- プロセッサと、
該プロセッサによってアクセス可能な固定データ記憶装置と、
該プロセッサによってアクセス可能な少なくとも一つのメタファイルであって、該メタファイルは、該固定データ記憶装置上のファイルおよび該ファイルのためのディレクトリコンテナに対応する複数のレコードを有する、メタファイルと
を備える、コンピュータシステムであって、
該複数のレコードの該個々のレコードは、ファイル識別子によってそれぞれアドレス可能であり、該個々のレコードは親識別子を含み、所与のレコードの該親識別子が、該所与のレコードのための親ディレクトリレコードの該ファイル識別子に対応する、
コンピュータシステム。 - 前記複数のレコードのそれぞれが固定された長さを有する、請求項1に記載のコンピュータシステム。
- 前記複数のレコードのそれぞれが、拡張されたレコード識別子をさらに含み、
所与のレコードのための該拡張されたレコード識別子は、前記メタファイルにおける拡張されたレコードのファイル識別子に対応し、該拡張されたレコードが、該所与のレコードによって表される該ファイルまたはディレクトリに関連するさらなる情報を含む、請求項1に記載のコンピュータシステム。 - 前記拡張されたレコードが、該拡張されたレコードによって表されたファイルまたはディレクトリの長い名前に対応する複数のASCII文字をさらに含む、請求項3に記載のコンピュータシステム。
- 所与の拡張されたレコードの前記親識別子が、前記所与のレコードをアドレスする拡張されたレコード識別子を有するレコードの前記ファイル識別子に対応する、請求項3に記載のコンピュータシステム。
- 複数のレコードエントリのそれぞれが、前記レコードによって表されたファイルまたはディレクトリの短い名前に対応する複数のASCII文字をさらに含む、請求項1に記載のコンピュータシステム。
- 前記複数のレコードエントリのそれぞれが、
前記レコードに対応するファイルのタイプの情報を含むモードフィールドと、
該レコードに対応する該ファイルが最後にアクセスされた時間の情報を含むアクセス時間フィールドと、
該レコードに対応する該ファイルが最後に修正された時間の情報を含む修正時間フィールドと
をさらに備える、請求項1に記載のコンピュータシステム。 - プロセッサと、
該プロセッサによってアクセス可能な固定データ記憶装置と、
該プロセッサによって実行されるファイルシステムソフトウェアと
を備える、コンピュータシステムであって、
該ファイルシステムソフトウェアは、該固定データ記憶装置のファイルを、少なくとも一つのメタファイルに含まれる複数のレコードに組織するように動作し、該ファイルシステムソフトウェアは、親ディレクトリの子ファイルおよび子ディレクトリに対応するレコードが、該親ディレクトリに対応するメタファイルにおけるレコードを直接示す逆階層構造において、該メタファイルにおける該ファイルおよびディレクトリを組織する、
コンピュータシステム。 - 前記複数のレコードのそれぞれが固定された長さを有する、請求項8に記載のコンピュータシステム。
- 前記複数のレコードのそれぞれが、拡張されたレコード識別子をさらに含み、
所与のレコードのための該拡張されたレコード識別子が、前記メタファイルにおける拡張されたレコードのファイル識別子に対応し、該拡張されたレコードが、該所与のレコードによって表される前記ファイルまたはディレクトリに関連するさらなる情報を含む、請求項8に記載のコンピュータシステム。 - 前記拡張されたレコードが、該拡張されたレコードによって表されたファイルまたはディレクトリの長い名前に対応する複数のASCII文字をさらに含む、請求項10に記載のコンピュータシステム。
- 所与の拡張されたレコードの前記親識別子が、前記所与のレコードをアドレスする拡張されたレコード識別子を有するレコードの前記ファイル識別子に対応する、請求項10に記載のコンピュータシステム。
- 前記複数のレコードエントリのそれぞれが、前記レコードによって表されるファイルまたはディレクトリの短い名前に対応する複数のASCII文字をさらに含む、請求項8に記載のコンピュータシステム。
- 前記複数のレコードエントリのそれぞれが、
前記レコードに対応するファイルのタイプの情報を含むモードフィールドと、
該レコードに対応する該ファイルが最後にアクセスされた時間の情報を含むアクセス時間フィールドと、
該レコードに対応する該ファイルが最後に修正された時間の情報を含む修正時間フィールドと
をさらに備える、請求項8に記載のコンピュータシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/173,945 US8959125B2 (en) | 2005-07-01 | 2005-07-01 | File system having inverted hierarchical structure |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007012060A true JP2007012060A (ja) | 2007-01-18 |
Family
ID=37103111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006174548A Withdrawn JP2007012060A (ja) | 2005-07-01 | 2006-06-23 | 逆階層構造を有するファイルシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8959125B2 (ja) |
EP (1) | EP1739575B1 (ja) |
JP (1) | JP2007012060A (ja) |
KR (1) | KR20070003577A (ja) |
CN (1) | CN1983265A (ja) |
CA (1) | CA2550871C (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707480B2 (en) | 2005-07-01 | 2010-04-27 | Qnx Software Systems Gmbh & Co. Kg | System employing data verification operations of differing computational costs |
US20070005874A1 (en) * | 2005-07-01 | 2007-01-04 | Dan Dodge | File system storing transaction records in flash-like media |
US7873683B2 (en) * | 2005-07-01 | 2011-01-18 | Qnx Software Systems Gmbh & Co. Kg | File system having transaction record coalescing |
US7809777B2 (en) * | 2005-07-01 | 2010-10-05 | Qnx Software Systems Gmbh & Co. Kg | File system having deferred verification of data integrity |
US7970803B2 (en) * | 2005-07-01 | 2011-06-28 | Qnx Software Systems Gmbh & Co. Kg | Optimized startup verification of file system integrity |
US7698495B2 (en) | 2005-07-01 | 2010-04-13 | QNZ Software Systems GmbH & Co. KG | Computer system having logically ordered cache management |
US7599972B2 (en) | 2006-08-25 | 2009-10-06 | Qnx Software Systems Gmbh & Co. Kg | File system having variable logical storage block size |
US20080059510A1 (en) * | 2006-08-31 | 2008-03-06 | Daniel Cardamore | Multimedia system framework having layer consolidating access to multiple media devices |
US7908276B2 (en) | 2006-08-25 | 2011-03-15 | Qnx Software Systems Gmbh & Co. Kg | Filesystem having a filename cache |
GB0623916D0 (en) * | 2006-11-30 | 2007-01-10 | Ibm | Methods, apparatus and computer programs for change management in a data processing environment |
US20080147747A1 (en) * | 2006-12-14 | 2008-06-19 | Dan Cardamore | Media system having synchronization with preemptive prioritization of synchronization order |
EP1990739A1 (en) * | 2007-05-07 | 2008-11-12 | Siemens Aktiengesellschaft | Directory structure implementation system and method |
US8019800B2 (en) * | 2008-04-04 | 2011-09-13 | Panasonic Corporation | Access device, information recording device, information recording system, file management method, and program |
US7610202B1 (en) * | 2008-04-21 | 2009-10-27 | Nuance Communications, Inc. | Integrated system and method for mobile audio playback and dictation |
US20090276404A1 (en) * | 2008-04-30 | 2009-11-05 | Henigman Timothy J | Method and system for efficient data structure for reporting on indeterminately deep hierarchies |
US8914626B1 (en) * | 2011-05-20 | 2014-12-16 | Amazon Technologies, Inc. | Providing configurable bootstrapping of software image execution |
US8886679B2 (en) * | 2011-10-11 | 2014-11-11 | Hewlett-Packard Development Company, L.P. | Mining web applications |
CN103186617B (zh) * | 2011-12-30 | 2016-04-06 | 北京新媒传信科技有限公司 | 一种存储数据的方法和装置 |
WO2013105428A1 (ja) * | 2012-01-10 | 2013-07-18 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置および画像形成装置 |
US11068447B2 (en) * | 2017-04-14 | 2021-07-20 | Databricks Inc. | Directory level atomic commit protocol |
CN111913915B (zh) * | 2020-07-30 | 2023-10-03 | 杭州宏杉科技股份有限公司 | 文件隐藏方法和装置 |
Family Cites Families (177)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4882703A (en) | 1984-09-17 | 1989-11-21 | Nicolai Robert L | Procedure for fining all words contained within any given word including creation of a dictionary |
JPS62186361A (ja) * | 1986-02-13 | 1987-08-14 | Matsushita Electric Ind Co Ltd | 情報検索装置 |
US4945475A (en) | 1986-10-30 | 1990-07-31 | Apple Computer, Inc. | Hierarchical file system to provide cataloging and retrieval of data |
US4926317A (en) | 1987-07-24 | 1990-05-15 | Convex Computer Corporation | Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses |
JPH0778498B2 (ja) | 1988-02-26 | 1995-08-23 | 横河電機株式会社 | バックグランド除去装置 |
GB8829919D0 (en) | 1988-12-22 | 1989-02-15 | Int Computer Limited | File system |
US5222217A (en) | 1989-01-18 | 1993-06-22 | International Business Machines Corporation | System and method for implementing operating system message queues with recoverable shared virtual storage |
EP0410210A3 (en) | 1989-07-24 | 1993-03-17 | International Business Machines Corporation | Method for dynamically expanding and rapidly accessing file directories |
US5201044A (en) | 1990-04-16 | 1993-04-06 | International Business Machines Corporation | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory |
US5187786A (en) | 1991-04-05 | 1993-02-16 | Sun Microsystems, Inc. | Method for apparatus for implementing a class hierarchy of objects in a hierarchical file system |
US5369757A (en) | 1991-06-18 | 1994-11-29 | Digital Equipment Corporation | Recovery logging in the presence of snapshot files by ordering of buffer pool flushing |
US5627996A (en) | 1992-08-19 | 1997-05-06 | At&T | Method and apparatus for accessing the same computer file using different file name formats |
JPH06139124A (ja) * | 1992-10-28 | 1994-05-20 | Nec Software Ltd | インバーテッドファイル方式データベース内不整合削除方式 |
US5454103A (en) | 1993-02-01 | 1995-09-26 | Lsc, Inc. | Method and apparatus for file storage allocation for secondary storage using large and small file blocks |
US5455944A (en) | 1993-03-16 | 1995-10-03 | International Business Machines Corporation | Method for managing logging and locking of page free space information in a transaction processing system |
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 |
US5530849A (en) | 1993-08-16 | 1996-06-25 | Cornell Research Foundation, Inc. | Method of reading dynamic, hierarchical file system directories |
JPH07175698A (ja) | 1993-12-17 | 1995-07-14 | Fujitsu Ltd | ファイルシステム |
GB9408405D0 (en) | 1994-04-28 | 1994-06-22 | Int Computers Ltd | High availibilty computer system |
US5668958A (en) | 1995-09-12 | 1997-09-16 | International Business Machines Corporation | Heterogeneous filing system with common API and reconciled file management rules |
US5726989A (en) | 1995-11-06 | 1998-03-10 | Stellar One Corporation | Method for ensuring synchronization of MPEG-1 data carried in an MPEG-2 transport stream |
US5765172A (en) | 1996-01-23 | 1998-06-09 | Dsc Communications Corporation | System and method for verifying integrity of replicated databases |
US5774715A (en) | 1996-03-27 | 1998-06-30 | Sun Microsystems, Inc. | File system level compression using holes |
GB9606927D0 (en) | 1996-04-02 | 1996-06-05 | Memory Corp Plc | Data storage devices |
US5806085A (en) | 1996-05-01 | 1998-09-08 | Sun Microsystems, Inc. | Method for non-volatile caching of network and CD-ROM file accesses using a cache directory, pointers, file name conversion, a local hard disk, and separate small database |
US6097380A (en) | 1996-06-24 | 2000-08-01 | Microsoft Corporation | Continuous media stream control |
US5995980A (en) | 1996-07-23 | 1999-11-30 | Olson; Jack E. | System and method for database update replication |
ATE298959T1 (de) | 1996-10-23 | 2005-07-15 | Infoglobal S L | Gerät zur integration verschiedener physikalischer medien zur datenkommunikation |
US5974425A (en) | 1996-12-17 | 1999-10-26 | Oracle Corporation | Method and apparatus for reapplying changes to a database |
US5897661A (en) | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US5960436A (en) | 1997-08-29 | 1999-09-28 | International Business Machines Corp. | Transaction compaction for replay of transactions from client to server |
US6173291B1 (en) | 1997-09-26 | 2001-01-09 | Powerquest Corporation | Method and apparatus for recovering data from damaged or corrupted file storage media |
US6516356B1 (en) | 1997-09-30 | 2003-02-04 | International Business Machines Corporation | Application interface to a media server and a method of implementing the same |
EP1744316A1 (en) * | 1997-10-21 | 2007-01-17 | Sony Corporation | Recording and/or reproduction apparatus, file management method and providing medium |
US6160796A (en) | 1998-01-06 | 2000-12-12 | Sony Corporation Of Japan | Method and system for updating device identification and status information after a local bus reset within a home audio/video network |
US6260044B1 (en) * | 1998-02-04 | 2001-07-10 | Nugenesis Technologies Corporation | Information storage and retrieval system for storing and retrieving the visual form of information from an application in a database |
US6175900B1 (en) | 1998-02-09 | 2001-01-16 | Microsoft Corporation | Hierarchical bitmap-based memory manager |
WO1999042934A2 (en) | 1998-02-20 | 1999-08-26 | Storm Systems, Llc | File system performance enhancement |
US6457130B2 (en) | 1998-03-03 | 2002-09-24 | Network Appliance, Inc. | File access control in a multi-protocol file server |
US6697846B1 (en) | 1998-03-20 | 2004-02-24 | Dataplow, Inc. | Shared file system |
US6058400A (en) | 1998-04-28 | 2000-05-02 | Sun Microsystems, Inc. | Highly available cluster coherent filesystem |
US6389513B1 (en) | 1998-05-13 | 2002-05-14 | International Business Machines Corporation | Disk block cache management for a distributed shared memory computer system |
US6185663B1 (en) | 1998-06-15 | 2001-02-06 | Compaq Computer Corporation | Computer method and apparatus for file system block allocation with multiple redo |
US6356863B1 (en) | 1998-09-08 | 2002-03-12 | Metaphorics Llc | Virtual network file server |
US6845401B1 (en) | 1998-12-30 | 2005-01-18 | Schneider Automation Inc. | Embedded file system for a programmable logic controller |
US6510450B1 (en) | 1999-02-04 | 2003-01-21 | Novell, Inc. | Multiple storage class distributed nametags for locating items in a distributed computing system |
US6922708B1 (en) | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
US6438661B1 (en) | 1999-03-03 | 2002-08-20 | International Business Machines Corporation | Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache |
US6754696B1 (en) | 1999-03-25 | 2004-06-22 | Micosoft Corporation | Extended file system |
JP3763992B2 (ja) | 1999-03-30 | 2006-04-05 | 富士通株式会社 | データ処理装置及び記録媒体 |
US6324637B1 (en) | 1999-08-13 | 2001-11-27 | Sun Microsystems, Inc. | Apparatus and method for loading objects from a primary memory hash index |
JP2001101044A (ja) * | 1999-09-29 | 2001-04-13 | Toshiba Corp | トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム |
US6496944B1 (en) | 1999-10-06 | 2002-12-17 | International Business Machines Corporation | Method for database assisted file system restore |
US6412042B1 (en) | 1999-11-17 | 2002-06-25 | Maxtor Corporation | System and method for improved disk drive performance and reliability |
JP4507319B2 (ja) | 1999-12-17 | 2010-07-21 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、および記録媒体、端末装置、並びに、システムおよびシステムの方法 |
JP3686564B2 (ja) | 1999-12-21 | 2005-08-24 | 株式会社日立製作所 | データベースシステム、データベースのレプリカ生成方法およびデータベースのレプリカ生成プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6584582B1 (en) | 2000-01-14 | 2003-06-24 | Sun Microsystems, Inc. | Method of file system recovery logging |
US6606628B1 (en) | 2000-02-14 | 2003-08-12 | Cisco Technology, Inc. | File system for nonvolatile memory |
US6523046B2 (en) | 2000-02-25 | 2003-02-18 | Microsoft Corporation | Infrastructure and method for supporting generic multimedia metadata |
US6591376B1 (en) | 2000-03-02 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Method and system for failsafe recovery and upgrade of an embedded operating system |
US6856993B1 (en) | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
US20020143862A1 (en) | 2000-05-19 | 2002-10-03 | Atitania Ltd. | Method and apparatus for transferring information between a source and a destination on a network |
US7171654B2 (en) | 2000-05-25 | 2007-01-30 | The United States Of America As Represented By The Secretary Of The Navy | System specification language for resource management architecture and corresponding programs therefore |
US7043472B2 (en) * | 2000-06-05 | 2006-05-09 | International Business Machines Corporation | File system with access and retrieval of XML documents |
US6675177B1 (en) | 2000-06-21 | 2004-01-06 | Teradactyl, Llc | Method and system for backing up digital data |
JP4164994B2 (ja) | 2000-07-14 | 2008-10-15 | ソニー株式会社 | データ記録再生装置及び方法 |
US6748395B1 (en) | 2000-07-14 | 2004-06-08 | Microsoft Corporation | System and method for dynamic playlist of media |
US6842770B1 (en) | 2000-08-18 | 2005-01-11 | Apple Computer, Inc. | Method and system for seamlessly accessing remotely stored files |
US7689510B2 (en) | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
US6571259B1 (en) * | 2000-09-26 | 2003-05-27 | Emc Corporation | Preallocation of file system cache blocks in a data storage system |
US7660902B2 (en) | 2000-11-20 | 2010-02-09 | Rsa Security, Inc. | Dynamic file access control and management |
US6862692B2 (en) * | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US7054927B2 (en) * | 2001-01-29 | 2006-05-30 | Adaptec, Inc. | File system metadata describing server directory information |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US20020161850A1 (en) | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path accelerator for storage systems |
US7277878B2 (en) | 2001-02-13 | 2007-10-02 | Ariba, Inc. | Variable length file header apparatus and system |
JP4225729B2 (ja) | 2001-03-06 | 2009-02-18 | シャープ株式会社 | 情報管理装置 |
US7047257B2 (en) | 2001-04-03 | 2006-05-16 | Qnx Software Systems | Computer file management system |
US7003619B1 (en) * | 2001-04-09 | 2006-02-21 | Matrix Semiconductor, Inc. | Memory device and method for storing and reading a file system structure in a write-once memory array |
US7174561B2 (en) | 2001-04-13 | 2007-02-06 | Emc Corporation | MPEG dual-channel decoder data and control protocols for real-time video streaming |
US6748491B2 (en) | 2001-04-19 | 2004-06-08 | International Business Machines Corporation | Designing a cache using an LRU-LFU array |
US6928648B2 (en) | 2001-04-20 | 2005-08-09 | Sun Microsystems, Inc. | Method and apparatus for a mobile multimedia java framework |
US7136934B2 (en) | 2001-06-19 | 2006-11-14 | Request, Inc. | Multimedia synchronization method and device |
JP2003022206A (ja) * | 2001-07-06 | 2003-01-24 | Fujitsu Ltd | ファイル管理プログラムおよびファイル管理装置 |
US8108241B2 (en) * | 2001-07-11 | 2012-01-31 | Shabina Shukoor | System and method for promoting action on visualized changes to information |
US6396421B1 (en) | 2001-07-31 | 2002-05-28 | Wind River Systems, Inc. | Method and system for sampling rate conversion in digital audio applications |
AU2002313583A1 (en) | 2001-08-01 | 2003-02-17 | Actona Technologies Ltd. | Virtual file-sharing network |
US7043493B2 (en) | 2001-09-17 | 2006-05-09 | Fujitsu Limited | Hierarchical file system and anti-tearing algorithm for a limited-resource computer such as a smart card |
US6868480B2 (en) | 2001-09-28 | 2005-03-15 | Ui Evolution, Inc. | Removable active application specific medium |
US20030074457A1 (en) | 2001-10-17 | 2003-04-17 | Kluth Michael R. | Computer system with separable input device |
US7191185B2 (en) * | 2001-10-30 | 2007-03-13 | Goldman Sachs & Co. | Systems and methods for facilitating access to documents via an entitlement rule |
JP2003150416A (ja) | 2001-11-09 | 2003-05-23 | Sony Corp | ファイル管理装置及びファイル管理方法 |
US20040064500A1 (en) | 2001-11-20 | 2004-04-01 | Kolar Jennifer Lynn | System and method for unified extraction of media objects |
JP4168626B2 (ja) | 2001-12-06 | 2008-10-22 | 株式会社日立製作所 | 記憶装置間のファイル移行方法 |
US6959373B2 (en) | 2001-12-10 | 2005-10-25 | Incipient, Inc. | Dynamic and variable length extents |
JP2003216620A (ja) | 2002-01-17 | 2003-07-31 | Matsushita Electric Ind Co Ltd | コンテンツ管理システム、コンテンツ管理方法、媒体、およびプログラム |
US7149788B1 (en) | 2002-01-28 | 2006-12-12 | Witness Systems, Inc. | Method and system for providing access to captured multimedia data from a multimedia player |
US7533214B2 (en) | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
US6983462B2 (en) | 2002-03-15 | 2006-01-03 | Toshiba Corporation | Method and apparatus for serving a request queue |
US7689626B2 (en) | 2002-05-31 | 2010-03-30 | Microsoft Corporation | System and method for locating log records in multiplexed transactional logs |
US6857001B2 (en) | 2002-06-07 | 2005-02-15 | Network Appliance, Inc. | Multiple concurrent active file systems |
US7107385B2 (en) | 2002-08-09 | 2006-09-12 | Network Appliance, Inc. | Storage virtualization by layering virtual disk objects on a file system |
US7054888B2 (en) | 2002-10-16 | 2006-05-30 | Microsoft Corporation | Optimizing media player memory during rendering |
US7397797B2 (en) | 2002-12-13 | 2008-07-08 | Nvidia Corporation | Method and apparatus for performing network processing functions |
KR20040065790A (ko) | 2003-01-16 | 2004-07-23 | 삼성전자주식회사 | 디브이디 재생장치 및 이를 이용한 멀티미디어 파일재생방법 |
CA2419883A1 (en) | 2003-02-26 | 2004-08-26 | Ibm Canada Limited - Ibm Canada Limitee | Discriminatory replay of log files during table space recovery in a database management system |
US7111147B1 (en) * | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Location-independent RAID group virtual block management |
JP2004295465A (ja) | 2003-03-27 | 2004-10-21 | Hitachi Ltd | 計算機システム |
US20040199537A1 (en) * | 2003-04-03 | 2004-10-07 | Duff Robert Cory | System for storing and retrieving database information |
US7139752B2 (en) * | 2003-05-30 | 2006-11-21 | International Business Machines Corporation | System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations |
CN100377119C (zh) | 2003-06-20 | 2008-03-26 | 深圳市朗科科技有限公司 | 闪存介质中数据保护方法 |
EP1650665B1 (en) | 2003-07-24 | 2012-07-11 | Panasonic Corporation | File management method and information processing device |
US7590643B2 (en) * | 2003-08-21 | 2009-09-15 | Microsoft Corporation | Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system |
US20080126936A1 (en) | 2003-08-21 | 2008-05-29 | Gary Williams | Electronic/software multimedia library control system and methods of use thereof |
US20050060420A1 (en) | 2003-09-11 | 2005-03-17 | Kovacevic Branko D. | System for decoding multimedia data and method thereof |
US7584353B2 (en) | 2003-09-12 | 2009-09-01 | Trimble Navigation Limited | Preventing unauthorized distribution of media content within a global network |
JP2005115857A (ja) | 2003-10-10 | 2005-04-28 | Sony Corp | ファイル記憶装置 |
US7451167B2 (en) | 2003-10-24 | 2008-11-11 | Network Appliance, Inc. | Verification of file system log data using per-entry checksums |
US7181463B2 (en) * | 2003-10-24 | 2007-02-20 | Microsoft Corporation | System and method for managing data using static lists |
JP4144507B2 (ja) | 2003-10-30 | 2008-09-03 | ソニー株式会社 | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
US7962575B2 (en) | 2003-11-03 | 2011-06-14 | Grape Technology Group, Inc. | System and method for data synchronization between devices |
US7213176B2 (en) | 2003-12-10 | 2007-05-01 | Electronic Data Systems Corporation | Adaptive log file scanning utility |
KR100562907B1 (ko) | 2003-12-18 | 2006-03-21 | 삼성전자주식회사 | 미디어 컨텐츠의 통합 관리 장치 및 그 방법 |
US20050147130A1 (en) | 2003-12-23 | 2005-07-07 | Intel Corporation | Priority based synchronization of data in a personal area network |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
EP1562193A1 (en) | 2004-02-06 | 2005-08-10 | Sony International (Europe) GmbH | System for storing and rendering multimedia data |
WO2005078606A2 (en) | 2004-02-11 | 2005-08-25 | Storage Technology Corporation | Clustered hierarchical file services |
US7676481B2 (en) | 2005-02-24 | 2010-03-09 | Microsoft Corporation | Serialization of file system item(s) and associated entity(ies) |
US20050210507A1 (en) | 2004-03-17 | 2005-09-22 | Sony Corporation | System and method for multimedia playlist |
US7873685B2 (en) * | 2004-05-13 | 2011-01-18 | Pixar | System and method for flexible path handling |
US7627530B2 (en) | 2004-04-26 | 2009-12-01 | Amazon Technologies, Inc. | Method and system for managing access to media files |
US20050246362A1 (en) | 2004-05-03 | 2005-11-03 | Borland Devin P | System and method for dynamci log compression in a file system |
US7565661B2 (en) | 2004-05-10 | 2009-07-21 | Siew Yong Sim-Tang | Method and system for real-time event journaling to provide enterprise data services |
US20050256845A1 (en) | 2004-05-10 | 2005-11-17 | Microsoft Corporation | Data management for a networked multimedia console |
JP2008500750A (ja) | 2004-05-12 | 2008-01-10 | フュージョンワン インコーポレイテッド | 高度な連絡先識別システム |
JP4662985B2 (ja) | 2004-05-26 | 2011-03-30 | ノキア コーポレイション | メディア・アイテムの管理のための方法、システム、コンピュータ・プログラム及びデバイス |
US20050273486A1 (en) | 2004-06-03 | 2005-12-08 | Keith Robert O Jr | Virtual distributed file system |
US20060005124A1 (en) | 2004-06-16 | 2006-01-05 | Ewald Speicher | User interface for complex process implementation |
US8087091B2 (en) | 2004-07-08 | 2011-12-27 | Media Rights Technologies | Method and system for preventing unauthorized reproduction of electronic media |
KR20060009717A (ko) | 2004-07-26 | 2006-02-01 | 엘지전자 주식회사 | 이동통신 단말기의 데이터 관리 시스템 |
US7672978B2 (en) | 2004-08-20 | 2010-03-02 | Nokia Corporation | Handling of content in a data processing device |
KR100677132B1 (ko) | 2004-09-09 | 2007-02-02 | 삼성전자주식회사 | 동영상 재생 및 프로그래밍 기능을 위한 멀티미디어데이터를 기록한 저장 매체, 그 재생 장치 및 재생 방법 |
JP2006107192A (ja) | 2004-10-06 | 2006-04-20 | Olympus Imaging Corp | 情報処理システム及びコンテンツデータの再生回数管理方法 |
CA2589900A1 (en) | 2004-10-25 | 2006-05-04 | Michael Kuan-Hung Chang | System and method for global data synchronization |
US7610307B2 (en) | 2004-11-30 | 2009-10-27 | Microsoft Corporation | Method and system of detecting file system namespace changes and restoring consistency |
FI119664B (fi) | 2004-12-08 | 2009-01-30 | Open Invention Network Llc | Menetelmä elektronisissa laitteissa oleviin tiedostoihin pääsemiseksi |
US9639554B2 (en) | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
WO2006074110A2 (en) | 2005-01-05 | 2006-07-13 | Divx, Inc. | System and method for a remote user interface |
JP2006235717A (ja) | 2005-02-22 | 2006-09-07 | Sony Corp | コンテンツ転送方法、その装置及びプログラム |
US7818350B2 (en) | 2005-02-28 | 2010-10-19 | Yahoo! Inc. | System and method for creating a collaborative playlist |
US20060206538A1 (en) | 2005-03-09 | 2006-09-14 | Veazey Judson E | System for performing log writes in a database management system |
US7647346B2 (en) | 2005-03-29 | 2010-01-12 | Microsoft Corporation | Automatic rules-based device synchronization |
US8145686B2 (en) | 2005-05-06 | 2012-03-27 | Microsoft Corporation | Maintenance of link level consistency between database and file system |
US20060277183A1 (en) * | 2005-06-06 | 2006-12-07 | Tony Nichols | System and method for neutralizing locked pestware files |
US20060282471A1 (en) | 2005-06-13 | 2006-12-14 | Mark Timothy W | Error checking file system metadata while the file system remains available |
KR20060133410A (ko) | 2005-06-20 | 2006-12-26 | 엘지전자 주식회사 | 복합 미디어 장치에서 파일 검색 및 파일 데이터베이스관리 방법 |
US7809777B2 (en) | 2005-07-01 | 2010-10-05 | Qnx Software Systems Gmbh & Co. Kg | File system having deferred verification of data integrity |
US7698495B2 (en) | 2005-07-01 | 2010-04-13 | QNZ Software Systems GmbH & Co. KG | Computer system having logically ordered cache management |
US20070005874A1 (en) | 2005-07-01 | 2007-01-04 | Dan Dodge | File system storing transaction records in flash-like media |
US7970803B2 (en) | 2005-07-01 | 2011-06-28 | Qnx Software Systems Gmbh & Co. Kg | Optimized startup verification of file system integrity |
US7873683B2 (en) | 2005-07-01 | 2011-01-18 | Qnx Software Systems Gmbh & Co. Kg | File system having transaction record coalescing |
US7707480B2 (en) | 2005-07-01 | 2010-04-27 | Qnx Software Systems Gmbh & Co. Kg | System employing data verification operations of differing computational costs |
US7574443B2 (en) | 2005-07-25 | 2009-08-11 | Parascale, Inc. | Scalable clustered storage system |
US7702821B2 (en) | 2005-09-15 | 2010-04-20 | Eye-Fi, Inc. | Content-aware digital media storage device and methods of using the same |
US20070185879A1 (en) | 2005-12-23 | 2007-08-09 | Metacommunications, Inc. | Systems and methods for archiving and retrieving digital assets |
US7426606B2 (en) | 2006-03-31 | 2008-09-16 | Intel Corporation | Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system |
US7613770B2 (en) | 2006-06-30 | 2009-11-03 | Microsoft Corporation | On-demand file transfers for mass P2P file sharing |
US7558797B2 (en) | 2006-06-30 | 2009-07-07 | Microsoft Corporation | Metadata structures for mass P2P file sharing |
US20080027998A1 (en) | 2006-07-27 | 2008-01-31 | Hitachi, Ltd. | Method and apparatus of continuous data protection for NAS |
US7752402B2 (en) | 2006-08-18 | 2010-07-06 | Isilon Systems, Inc. | Systems and methods for allowing incremental journaling |
US7676691B2 (en) | 2006-08-18 | 2010-03-09 | Isilon Systems, Inc. | Systems and methods for providing nonlinear journaling |
US7908276B2 (en) | 2006-08-25 | 2011-03-15 | Qnx Software Systems Gmbh & Co. Kg | Filesystem having a filename cache |
US8566503B2 (en) | 2006-08-25 | 2013-10-22 | Qnx Software Systems Limited | Multimedia filesystem having unified representation of content on diverse multimedia devices |
US20080059510A1 (en) | 2006-08-31 | 2008-03-06 | Daniel Cardamore | Multimedia system framework having layer consolidating access to multiple media devices |
US7599972B2 (en) | 2006-08-25 | 2009-10-06 | Qnx Software Systems Gmbh & Co. Kg | File system having variable logical storage block size |
US20080147747A1 (en) | 2006-12-14 | 2008-06-19 | Dan Cardamore | Media system having synchronization with preemptive prioritization of synchronization order |
US8682859B2 (en) | 2007-10-19 | 2014-03-25 | Oracle International Corporation | Transferring records between tables using a change transaction log |
-
2005
- 2005-07-01 US US11/173,945 patent/US8959125B2/en active Active
-
2006
- 2006-06-23 CA CA2550871A patent/CA2550871C/en active Active
- 2006-06-23 EP EP06012983.0A patent/EP1739575B1/en active Active
- 2006-06-23 KR KR1020060057098A patent/KR20070003577A/ko not_active Application Discontinuation
- 2006-06-23 CN CNA2006100931795A patent/CN1983265A/zh active Pending
- 2006-06-23 JP JP2006174548A patent/JP2007012060A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20070003577A (ko) | 2007-01-05 |
CA2550871C (en) | 2013-08-13 |
US8959125B2 (en) | 2015-02-17 |
CN1983265A (zh) | 2007-06-20 |
EP1739575B1 (en) | 2018-11-28 |
EP1739575A2 (en) | 2007-01-03 |
US20070005615A1 (en) | 2007-01-04 |
CA2550871A1 (en) | 2007-01-01 |
EP1739575A3 (en) | 2010-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8959125B2 (en) | File system having inverted hierarchical structure | |
US7809777B2 (en) | File system having deferred verification of data integrity | |
EP1739535B1 (en) | File system storing transaction records in flash-like media | |
US7873683B2 (en) | File system having transaction record coalescing | |
US8667029B2 (en) | Optimized startup verification of file system integrity | |
US8024507B2 (en) | Transaction-safe FAT file system improvements | |
US8219739B2 (en) | Read-only optimized flash file system architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090901 |