JP2006139780A - コンピュータのファイルシステム - Google Patents
コンピュータのファイルシステム Download PDFInfo
- Publication number
- JP2006139780A JP2006139780A JP2005323896A JP2005323896A JP2006139780A JP 2006139780 A JP2006139780 A JP 2006139780A JP 2005323896 A JP2005323896 A JP 2005323896A JP 2005323896 A JP2005323896 A JP 2005323896A JP 2006139780 A JP2006139780 A JP 2006139780A
- Authority
- JP
- Japan
- Prior art keywords
- file system
- item
- data
- file
- items
- 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.)
- Pending
Links
Images
Classifications
-
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
【課題】アイテムのライフタイムとアイテムがファイルシステムの編成構造に含まれることとを融合しない本明細書で説明されているファイルシステムを提供する。さらに、ディレクトリツリーに限定されず、その代わりに、任意の非循環有向グラフ(DAG)を使用することができるファイルシステムの編成構造を提供する。
【解決手段】アイテムは、ファイルシステム内に格納されると、アイテムがDAGの一部であるか、一部でないかに関係なく、クライアントにより断定的に削除されるまで保持する。アイテムのライフライムを制御し、アイテムをユーザの選択するDAG構造に編成するため、アイテムをクライアント用の概念的ワークスペースであるファイル領域内に置く。アイテムは、複数のDAG内に同時に格納することができ、またそれぞれのファイル領域は、1つまたは複数の独立のDAGを持つことができる。
【選択図】図7
【解決手段】アイテムは、ファイルシステム内に格納されると、アイテムがDAGの一部であるか、一部でないかに関係なく、クライアントにより断定的に削除されるまで保持する。アイテムのライフライムを制御し、アイテムをユーザの選択するDAG構造に編成するため、アイテムをクライアント用の概念的ワークスペースであるファイル領域内に置く。アイテムは、複数のDAG内に同時に格納することができ、またそれぞれのファイル領域は、1つまたは複数の独立のDAGを持つことができる。
【選択図】図7
Description
本発明は、一般に、コンピュータシステム用のファイルシステムに関する。より具体的には、本発明は、ファイルシステム内に格納されたアイテムのライフタイムとファイルシステムにより使用される基礎をなす編成構造(organizational structure)とを融合(conflate)しないため、ファイルシステムに格納されたアイテムが、それぞれ、削除されるのを心配せずに、編成構造内に親を0個、1個、または複数個持つことができる。
本特許明細書の開示の一部は、著作権保護の対象となる資料を含む。著作権所有者は、特許商標庁の特許ファイルまたは記録の記載に従い誰が特許文書または特許開示の複製を行おうと異存はないが、その他の点では、いかなる形であれすべての著作権を留保する。
コンピュータは、ディスクドライブなどの記憶デバイスにファイルを格納する。ディスクドライブは、空のファイルキャビネットのように、データを格納するための場所を提供するだけである。空のファイリングキャビネットには、ファイル用に予め定められたファイリングシステムが付属していない(つまり、ファイリングキャビネットのユーザがファイリングシステムまたは編成構造自体を、例えばファイルをアルファベット順に並べることにより作成しなければならない)のと同様に、デフォルト設定では、ハードドライブも、単なる空の記憶領域である。それだけでは、ハードドライブ上のデータにアクセスするのに、データの物理的位置を指定する(例えば、ファイルが格納されているハードドライブのシリンダ、ヘッド、およびセクタを指定する)か、ディスク上の論理的位置(例えば、21,671番目のブロック)を指定する方法しかない。ハードディスクドライブがコンピュータに装着されると、コンピュータはファイルシステムを使用して、アクセスしやすい方法でハードディスクドライブに格納されているファイルを追跡する。
知られているファイルシステムは、オペレーティングシステムおよびファイルシステムのユーザがファイルシステム内のファイルに行う編成を不当に制限している。つまり、通常、知られているファイルシステムでは、ユーザ側でアイテムをファイルとディレクトリのツリーに編成する(organize)必要があるが、ディレクトリは実際にはファイルシステムによって識別される特別な種類のファイルである。ファイルシステム側で追加的なデータ構造をサポートしているとしても、この機能は、通常は、ファイルシステムのクライアント(つまり、エンドユーザおよびアプリケーション)には公開されない。図2は、既存のファイルシステムの典型的な編成構造201の簡単な実施例を示している。図2に例示されているように、知られているファイルシステムでは、ツリーを使用して、ディレクトリ(角の丸い長方形で囲まれている)とファイル(長方形で囲まれている)を編成している。ツリー構造では、アイテムの位置と編成は融合されており、すべてのアイテムはただ1つのディレクトリ内になければならない。これでは、ユーザは自分のファイルを編成しなければならず、ユーザは、1つのアイテムを、アイテムの新しいコピーを作成せずには複数の編成の中に置くことはできない。
典型的なファイルシステムでは、2つのテーブルまたはデータベース同士を連携して使用し、ファイルを編成する。第1のテーブルまたはデータベースは、ファイルが格納されるハードドライブなどの記憶デバイス上の物理的位置を識別するルックアップテーブルである。第2のテーブルは、ファイルの編成構造を定義する。これらのテーブルは、一般的に、本明細書では、ロケーションテーブル(LOC)および編成テーブル(ORG)とそれぞれ呼ばれる。編成テーブルには、保持リンク(holding links)に関する情報、つまり、一方のアイテムが他方のアイテムの親であるという情報が格納される。一部のファイルシステムでは、ロケーションテーブルと編成テーブルとを単一のテーブルまたは構造にまとめることができるが、それでも、ファイルシステムが適切に動作するために両方のテーブルの要素が存在している必要がある。例えば、Microsoft Corporation社が販売しているNTブランドのファイルシステム、つまりNTFSでは、マスタファイルテーブルは、ロケーションテーブルと編成テーブルの両方として機能する。同様に、Unix(登録商標)ファイルシステム、UFSでは、ファイル用のロケーションテーブルおよび編成テーブルの両方として機能するiノードからなるテーブルを使用する。ディレクトリは、特別な種類のファイルとして格納され、ディレクトリ「ファイル」は、ディレクトリとそのそれぞれのiノード内にファイル名のリストを格納する。
これらおよびその他の知られているファイルシステムでは、ファイルシステムは、ファイルが編成テーブル内の保持リンクにより定義されているような少なくとも1つのロケーションに配置されている限り、つまりそのファイルをポイントしている少なくとも1つの保持リンクがある限り、物理的記憶デバイス上に格納されているファイルを保持する。つまり、ファイルの保持リンクが編成テーブルから削除され、そのファイルをポイントしている保持リンクがもう存在しない場合は、ファイルシステムは、ロケーションテーブル内のファイルのエントリを除去する(そのファイルが記憶デバイス上に物理的に上書きされるかどうかに関係なく)。記憶デバイスでは、その後、その記憶領域を使用して新しいデータを書き込むことができる。例えば、ユーザが図2に示されているファイルC:\PROGRAMS\MICROSOFT\OFFICE\WORD\FILE.DOCを「削除」する場合、ファイルシステムは、編成テーブルからファイルのエントリを最初に除去する。ファイルがロケーションテーブル内に他のエントリを持たない、つまり、ファイルがさらに他のどこかに格納されていない場合、ファイルシステムは、ロケーションテーブル内のファイルのエントリを除去し、他のデータのために領域を解放する。通常、ファイルシステムは、与えられたアイテムが持つ先祖(「保持リンク」と呼ばれている)の個数の参照カウントを維持する。アイテム上の最後の保持リンクが除去されると、そのアイテムは、ロケーションテーブル内のファイル参照を除去することにより「削除」される。ただし、これは、ファイルシステムが使用できる編成構造を制限するため、エンドユーザの観点からは望ましいことではない。
上述の制約および制限(例えば、ツリーからファイルを除去した副作用としての削除)のせいで、ファイルシステムでは、クライアント側でディレクトリおよびファイルのツリー状階層以外のデータ構造によってデータを編成することはできない。ユーザは、与えられたアイテムが削除されるのを気にせずに、さまざまな編成データ構造においてアイテムの編成および編成の解放を行えることを望んでいる。アイテムのライフタイムがファイルシステム内のその編成から分離されていれば、当技術分野の進歩となるであろう。つまり、アイテムの編成または編成解放の活動がライフタイムに影響を及ぼさない、アイテムのライフタイムと編成構造との融合を行わないファイルシステムを提供すれば進歩であろう。そこで、オペレーティングシステムおよび/またはユーザがファイルの編成に使用するデータ構造の型を制限しない、また単にファイルがファイルシステム内のすべての編成構造から除去された、またはそのファイルを指す保持リンクがないからといって、ファイルを削除しないファイルシステムを提供することは当技術分野における進歩であろう。
以下では、本発明のいくつかの態様の基本的な内容を理解できるように、発明の概要を簡単に説明する。この発明の開示は、本発明の概要を広範囲にわたって述べたものではない。この要約は、本発明の鍵となる要素や決定的な要素を示したり、本発明の範囲を定めたりすることを目的としていない。以下では、後述の詳細な説明の前置きとして、本発明のいくつかの概念を簡略化した形式で述べる。
上述の従来技術における1つまたは複数の制限を克服するために、および/または本明細書を読み理解した後では明白になるであろう他の制限を克服するために、本発明は、一般に、データアイテムとして実現されるファイルシステムおよびコンピュータ読取り可能媒体上に格納されるコンピュータ実行可能命令を対象とする。データアイテムは、一般に、限定はしないがファイル、フォルダ、データ、音楽などを含む、ファイルシステムに格納可能な任意のデータを意味する。ファイルシステムでは、ファイルシステム内に格納されている少なくとも第1、第2、および第3のデータアイテムに対するアイテムロケーション情報を格納する第1のデータテーブルを使用し、また第1および第2のデータアイテムに対する編成情報を格納するが、第3のデータアイテムに対する編成情報を格納しない第2のデータテーブルを使用する。
ファイルシステムのファイルシステムマネージャのソフトウェアモジュールは、コンピュータ読取り可能媒体上に格納されるコンピュータ実行可能命令として実現することができる。ファイルシステムマネージャは、アイテムロケーションデータおよびアイテム編成データに基づいてファイルシステム内に格納されているデータアイテムを管理する。ファイルシステムマネージャは、ファイルシステムからアイテムを削除するために第1のサブルーチンを使用し、ファイルシステムからアイテムを除去するために第2のサブルーチンを使用する。
ファイルシステムマネージャは、ファイルシステムから第1のアイテムを削除する第1の要求を受け取ることを含む、ファイルシステム内に格納されているアイテムを管理する方法を実行し、その第1の要求に対する応答として、ファイルシステムに関連付けられているロケーション情報から、またファイルシステムに関連付けられている編成情報から第1のアイテムへの参照を削除する。ファイルシステムマネージャは、ファイルシステムから第2のアイテムを除去する第2の要求を受け取り、その第2の要求に対する応答として、ファイルシステムに関連付けられている編成情報から第2のアイテムへの参照を削除するが、ファイルシステムに関連付けられているロケーション情報からは第2のアイテムへの参照を削除しない。
本発明の他の態様では、コンピュータ読取り可能媒体上に格納されているコンピュータ実行可能命令として実現され、データアイテムを格納する、ファイルシステムを提供する。このファイルシステムでは、データアイテムのライフタイムは、ファイルシステム内のデータアイテムの概念的編成内のデータアイテムの位置とは無関係である。
付属の図面と合わせて、以下の説明を参照すると、本発明およびその利点をより完全に理解でき、また類似の参照番号は類似の特徴を示している。
さまざまな実施形態の以下の説明では、一部をなし、本発明を実施できるさまざまな実施形態が図で示されている、付属の図面を参照する。他の実施形態を利用し、本発明の範囲から逸脱することなく機能的な修正を加えることができることは理解されるであろう。
例示されているコンピューティング環境
図1は、本発明を実装できる好適なコンピューティングシステム環境100の一実施例の図である。コンピューティングシステム環境100は、好適なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境100は、オペレーティング環境例100に示されている1つのコンポーネントまたはその組み合わせに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
例示されているコンピューティング環境
図1は、本発明を実装できる好適なコンピューティングシステム環境100の一実施例の図である。コンピューティングシステム環境100は、好適なコンピューティング環境の一例にすぎず、本発明の用途または機能性の範囲に関する制限を示唆する意図はない。コンピューティング環境100は、オペレーティング環境例100に示されている1つのコンポーネントまたはその組み合わせに関係する何らかの依存関係または要求条件がその環境にあるものと解釈すべきでない。
本発明は、他の数多くの汎用または専用コンピューティングシステム環境または構成で動作する。本発明とともに使用するのに適していると思われるよく知られているコンピューティングシステム、環境、および/または構成の例として、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システムまたはデバイスなどを含む分散コンピューティング環境などがある。
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的背景状況において説明することができる。一般に、プログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本発明は、通信ネットワークを通じてリンクされているリモート処理装置によりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスなどのローカルとリモートの両方のコンピュータ記憶媒体に配置できる。
図1を参照すると、本発明を実装する例示されているシステムは、汎用コンピューティングデバイスをコンピュータ110の形で備えている。コンピュータ110が備えるコンポーネントとしては、限定はしないが、演算処理装置120、システムメモリ130、およびシステムメモリを備えるさまざまなシステムコンポーネントを演算処理装置120に結合するシステムバス121などがある。システムバス121は、メモリバスまたはメモリコントローラ、周辺機器バス、およびさまざまなバスアーキテクチャを使用するローカルバスを含む数種類のバス構造のうちのいずれでもよい。例えば、限定はしないが、このようなアーキテクチャとしては、ISAバス、MCAバス、EISAバス、VESAローカルバス、およびMezzanineバスとも呼ばれるPCIバスがある。
コンピュータ110は、通常、さまざまなコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ110によってアクセスされることができる媒体であればどのような媒体でも使用可能であり、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体を含む。例えば、限定はしないが、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能媒体を含む。コンピュータ記憶媒体としては、限定はしないが、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、デジタル多目的ディスク(DVD)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または情報を格納するために使用することができコンピュータ110によりアクセスできるその他の媒体または媒体の組み合わせがある。通信媒体は、通常、コンピュータ可読命令、データ構造体、プログラムモジュール、または搬送波もしくはその他のトランスポートメカニズムなどの変調データ信号によるその他のデータを実現するものであり、任意の情報配信媒体を含む。「変調データ信号」という用語は、信号内に情報を符号化するような方法で特性のうちの1つまたは複数が設定または変更された信号を意味する。例えば、限定はしないが、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音響、RF、赤外線、およびその他の無線媒体などの無線媒体がある。
システムメモリ130は、読み取り専用メモリ(ROM)131およびランダムアクセスメモリ(RAM)132などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ110内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム133(BIOS)は、通常、ROM131に格納される。通常、RAM132は、演算処理装置120に直接アクセス可能な、および/または演算処理装置120によって現在操作されているデータおよび/またはプログラムモジュールを格納する。例えば、限定はしないが、図1は、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、プログラムデータ137、およびファイルシステム138を例示している。
コンピュータ110はさらに、その他の取り外し可能/取り外し不可能な、揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが、図1は、取り外し不可能な不揮発性磁気媒体の読み書きを行うハードディスクドライブ140、取り外し可能な不揮発性磁気ディスク152の読み書きを行う磁気ディスクドライブ151、およびCD−ROMまたはその他の光媒体などの取り外し可能な不揮発性光ディスク156の読み書きを行う光ディスクドライブ155を例示している。例示されているオペレーティング環境で使用できる他の取り外し可能/取り外し不可能な、揮発性/不揮発性コンピュータ記憶媒体としては、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多目的ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROMなどがある。ハードディスクドライブ141は、通常、インタフェース140などの取り外し不可能なメモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は、通常、インタフェース150などの取り外し可能なメモリインタフェースによりシステムバス121に接続される。
図1に例示されている上記のドライブおよび関連コンピュータ記憶媒体は、コンピュータ110にコンピュータ可読命令、データ構造体、プログラムモジュール、およびその他のデータを格納する機能を備える。例えば、図1では、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、プログラムデータ147、およびファイルシステム148を格納するものとして例示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、プログラムデータ137、およびファイルシステム138と同じである場合もあれば異なる場合もあることに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、プログラムデータ147、およびファイルシステム148に対しては、図1において異なる番号を割り当てて、例えば、それらが異なるコピーであることを示している。ユーザは、キーボード162、およびマウス、トラックボール、またはタッチパッドと一般に呼ばれるポインティングデバイス161などの入力デバイスを介してコンピュータ20にコマンドおよび情報を入力できる。他の入力デバイスとしては、リモートコントロール163、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ(すべてが図に示されているわけではない)などがある。これらの入力デバイスやその他の入力デバイスは、システムバスに結合されているユーザ入力インタフェース160を介して演算処理装置120に接続されることが多いが、パラレルポート、ゲームポート、またはUSBなどの他のインタフェースおよびバス構造により接続することもできる。モニタ191またはその他の種類の表示デバイス(例えば、TV)も、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタのほかに、コンピュータはさらにスピーカ197およびプリンタ196などの他の周辺出力デバイスも備えることができ、これらは出力周辺機器インタフェース190を介して接続することができる。
いくつかの態様では、手書き入力をデジタル方式で取り込むために、ペンデジタイザ165および付属するペンまたはスタイラス166が用意される。ペンデジタイザ165とユーザ入力インタフェース160との間の直接接続が示されているが、実際には、ペンデジタイザ165は、演算処理装置110に直接、パラレルポートまたはその他のインタフェースに、および無線を含む技術を使用してシステムバス130に結合することができる。また、ペン166は、ペンに関連付けられているカメラ、カメラにより取り込まれた画像情報をバス130とやり取りするインタフェースに無線で送信するトランシーバを備えることができる。さらに、ペンは、加速度計、磁力計、およびジャイロスコープを含む電子インクのストロークを判別するため、カメラに加えて、またはカメラの代わりに、他の検知システムを備えることもできる。
コンピュータ110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の共通ネットワークノードでもよく、通常は、コンピュータ110に関係する上述の要素の多くまたはすべてを含むが、メモリ記憶デバイス181だけが図1に例示されている。図1に示されている論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体にわたるコンピュータネットワーク、イントラネット、およびインターネットでは一般的である。さらに、システムは、有線および/または無線機能を備えることができる。例えば、ネットワークインタフェース170は、ブルートゥース、SWLan、および/または組み合わせ機能のIEEE802.11クラスを含むことができる。他の無線通信プロトコルを、これらのプロトコルとともに、またはこれらのプロトコルの代わりに使用することができることは理解されるであろう。
LANネットワーキング環境で使用される場合、コンピュータ110は、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、通常、インターネットなどのWAN173上での通信を確立するためモデム172またはその他の手段を備える。モデム172は、内蔵でも外付けでもよいが、ユーザ入力インタフェース160またはその他の適切なメカニズムを介してシステムバス121に接続されうる。ネットワーク接続環境では、コンピュータ110またはその一部に関して示されているプログラムモジュールは、リモートメモリ記憶デバイスに格納されうる。例えば、限定はしないが、図1には、リモートアプリケーションプログラム185がメモリデバイス181に置かれているように例示されている。
図1に示されているネットワーク接続は実施例であり、コンピュータ間の通信リンクを確立するのに他の技術が使用可能であることは理解されるであろう。TCP/IP、Ethernet(登録商標)、FTP、HTTPなどのさまざまなよく知られているプロトコルのいずれか存在していると仮定されており、システムは、クライアントサーバ構成で動作可能であり、これによりユーザはWebベースのサーバからWebページを取り出すことができる。さまざまな従来のWebブラウザを使用することで、Webページ上にデータを表示し、操作をすることができる。
本発明の1つまたは複数の態様は、コンピュータ110などの1つまたは複数のコンピュータまたは他のデバイスにより実行される、1つまたは複数のプログラムモジュールなどの、コンピュータ実行可能命令で実現することができる。一般に、プログラムモジュールは、コンピュータまたは他のデバイス内のプロセッサにより実行されたときに、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令は、ハードディスク、光ディスク、取り外し可能記憶媒体、ソリッドステートメモリ、RAMなどのコンピュータ読取り可能媒体上に格納することができる。当業者には周知のことであろうが、プログラムモジュールの機能は、さまざまな実施形態で望まれているように組み合わせるか、または分散させることができる。さらに、機能は、全体または一部を、ファームウェアまたは集積回路、フィールドプログラマブルゲートアレイ(FPGA)などのハードウェア等価物により実現できる。
本発明の例示されている態様によれば、本明細書では、アイテムのライフタイムとファイルシステムの編成構造内でのアイテムの配置とを融合せず、したがって1つまたは複数の非循環有向グラフ(DAG)を形成する、両方のプロパティベースの問い合わせ、またリストなどを通じて、アイテムが複数の編成に参加するか、または全くなににも参加することがないファイルシステムについて説明する。DAGは、アイテムが複数の親を持ち得る編成である。DAGでは、アイテムは、サイクルを形成することになる、その祖先の1つの親にはなり得ない。
本明細書で説明されているファイルシステムは、コンピュータ読取り可能媒体中に格納されるコンピュータ実行可能命令、例えばファイルシステム138および/またはファイルシステム148として実現することができる(図1)。図1の他のコンピュータ読取り可能媒体またはメモリは、さらに、ここで説明されているファイルシステムと同じであるか、または異なるファイルシステムを含むこともできる。例えば、媒体152および156は、さらに、ファイルシステムを含むこともできる。説明のため、このファイルシステムは、本明細書では、ファイルシステム148を参照しつつ説明される。
図3および図4を参照すると、ファイルシステム148は、主に、ロケーションテーブル(LOC)301および編成テーブル(ORG)401の2つのテーブルに依存する。ロケーションテーブル301は、LOCテーブルとも呼ばれ、例えば、ファイル識別子(ID)303、ファイル名305、記憶ボリューム307、ロケーション309、およびファイルサイズ311を含む、ファイルシステムに格納されているそれぞれのアイテムの物理的および/または論理的記憶位置に関する情報を格納する。ファイルID303は、それぞれのアイテムを参照するために使用される主なキーまたは参照であり、ファイルシステム148に格納されているそれぞれのアイテムに対して一意的なものである。ファイルIDは、それぞれのファイルIDがファイルシステム148内に格納されている単一アイテムを一意に識別する限り、数値、アルファベットテキスト、記号、または任意の組み合わせを含むことができる。
ファイル名305は、ファイルシステム148のユーザによって与えられたアイテムの短い説明的ファイル名を含むことができる。ファイル名305は、それぞれのファイルへのユーザの一次的な概念的参照であるのが好ましく、またファイルをファイル名に基づいてユーザが容易に認識できるような説明的形式でユーザが指定することができる。ファイル名305は、制限された長さ、例えば8.3形式、最大長256文字、または他の何らかの最大値を持つものとすることができる。ファイル名が互いに重複しているかどうか、さらにはファイル名が必要か、すでに割り当てられているかどうかに関する制約がないことが好ましい。つまり、複数のファイルが、同じディレクトリ、フォルダ、またはリスト内にあっても、それぞれのファイルが一意的なファイルID303を持つ限り、それぞれ「README.TXT」または「Read this first」と名前を付けることができる。これは、親のコンテキスト内ではそれぞれのファイルが一意的な名前を持つことが要求される、以前のファイルシステムとは異なる。
ボリューム307、ロケーション309、およびサイズ311を使用して、物理的または論理的記憶位置からアイテムを取り出すことができる。ボリューム307は、物理的または論理的記憶デバイス、例えば、物理的または論理的ハードディスクドライブ、光記憶装置、記憶媒体カード、固体記憶デバイスなどを指し得る。ロケーション309は、識別された物理的または論理的ボリューム上のアイテムの実際の開始位置を指し、サイズ311は、識別された位置から開始する識別されたボリューム上にアイテムが格納されている空間の大きさの定量的な測度を指し得る。追加または代替的な情報は、含まれる情報がそれぞれの識別された記憶位置からそれぞれの格納されているアイテムを取り出すために使用可能である限りロケーションテーブル301内に入れることができる。
編成テーブル401は、ORGテーブルとも呼ばれ、ファイルシステム148に格納されているアイテム間の階層関係を格納する。上で簡単に説明したように、ORGテーブル401は、ファイルシステム148内でアイテムを概念的に配列するため、1つまたは複数のツリーを含むことができる、1つまたは複数の非循環有向グラフ(DAG)を定義することができる。ORGテーブル401は、関係毎に、親403および子405を含むことができる。図5は、LOCテーブル301の一部分により定義され、またORGテーブル401により定義されているようなDAG501の実施例を示している。DAG 501は、アイテムI2が「To Do List」と「Items For My Trip」の両方を親とし(「中にある」ともいう)、アイテムI4が「Items For My Trip」と「Key Slide Decks」の両方を親とするため、ツリーではない。ファイルシステム148に格納されているそれぞれのアイテムは、編成構造にDAGが残っている限り、親を1つも持たない、親を1つ持つ、または親を2つ以上持つことがあり得る。
図6は、ファイルシステム148内で使用できるソフトウェアモジュールのブロック図を示している。ファイルシステム148は、ファイルシステム148のオペレーション全体を管理するファイルシステムマネージャのソフトウェアモジュール601を備えることができる。マネージャ601は、DAGに課された制約条件(例えば、サイクルを許容しない)に関するルールを実行しながら、本明細書で説明されているようにLOCテーブル301およびORGテーブル401を使用して、データストア611に格納されているアイテムの追加、更新、削除、および読み取り/問い合わせを実行することができる。マネージャ601は、オペレーティングシステムなどのより上位のプログラムがファイルシステム148とやり取りするために使用できる1つまたは複数のアプリケーションプログラミングインタフェース(API)を公開することができる。APIは、Add_Item API603、Update_Item API605、Delete_Item API607、およびQuery_Item API609を含むことができる。
Add_Item API603は、新しいアイテムがファイルシステム148内に格納される場合に、オペレーティングシステムまたはその他の上位のプログラムまたはアプリケーションにより呼び出され得る。Add_Item API603は、ファイル名とともに、オプションにより、意図される記憶ボリュームおよび/または親IDとともに、新しいアイテムの現在の一時的記憶位置を指すポインタを入力として受け付けることができる。Add_Item APIは、新しく追加されたアイテムに対するファイルIDをオプションにより返すことができる。
Update_Item API605は、ファイルシステム148内にすでに格納されている既存のアイテムを更新するために呼び出すことができ、またファイルID、およびアイテムの更新されたバージョンへのポインタ、ORGテーブル401内の包含の更新された関係、および/または更新されたファイル名から選択された1つまたは複数のオプションで含まれる情報断片を入力として受け付けることができる。
Delete_Item API607を呼び出し、削除するファイルIDをDelete_Item APIに渡すことにより、ファイルシステム148からアイテムを除去することができる。Delete_Item API607が明示的に呼び出された場合のみ、ファイルシステム148からアイテムが削除される。
Query_Item API609は、OSまたはアプリケーションで使用するためアイテムをファイルシステムから取り出す必要がある場合に呼び出すことができる。Query_Itemは、ファイルIDを入力として受け付け、要求されたアイテムを返す。上記のAPIは、本発明の例示されている実施形態に含まれるのが好ましいタイプのAPIを表している。ファイルシステム148は、システムの要求条件または設計に基づく追加または代替えAPIを含むことができる。
Query_Item API609は、OSまたはアプリケーションで使用するためアイテムをファイルシステムから取り出す必要がある場合に呼び出すことができる。Query_Itemは、ファイルIDを入力として受け付け、要求されたアイテムを返す。上記のAPIは、本発明の例示されている実施形態に含まれるのが好ましいタイプのAPIを表している。ファイルシステム148は、システムの要求条件または設計に基づく追加または代替えAPIを含むことができる。
ファイルシステム148では、それぞれのアイテムは0個以上の親を持つことができるため、1つのボリュームまたはファイルシステム内に複数の独立したデータ構造(つまり、複数のDAG)があり得る。これは、通常、クライアント(ユーザまたはアプリケーション)を1つのボリューム単位の単一ツリー内にアイテムを格納することに制限する、既存のファイルシステムとは異なる。したがって、ここで説明されているようにアイテムがファイルシステム内に格納される概念上の空間は、ファイル領域(FR)と呼ばれる。ファイル領域は、アイテムのライフタイムを制御するために使用される編成領域の高いレベルのユーザ概念を指す。アイテムがファイル領域内にある限り、アイテムは、ORGテーブル401内で定義されている親−子関係が適用されているかどうかに関係なく、削除されない。
ファイル領域は、アイテムが概念的に関係付けられているかどうかにかかわりなく、アイテムを入れることができるボックスとして概念上考えられる。アイテムがファイル領域内に置かれると、アイテムは、ユーザが削除しない限りファイル領域内に残る。アイテムがファイル領域内にある間、アイテムは、アイテムがファイル領域内にあるかどうかに影響を及ぼすことなく、またアイテムのライフタイムに影響を及ぼすことなく、ファイル領域内の1つまたは複数のDAGのどれかに編成することができる。つまり、ファイルは、ユーザがシステムにファイルの削除を断定的に命令しない限り削除されない。ファイル領域は、含まれているすべてのデータストア同士が同じコンピュータ、ネットワークなどの中で物理的に近接しているかどうかに関係なく、データストアがアイテムのライフタイムを保証するために単一ファイル領域として管理されている限り、任意に定義された記憶領域を包含することができる。例えば、ファイル領域は、コンピュータ上のすべての内蔵ハードドライブ、コンピュータ上の単一のハードドライブの一部、ネットワーク接続された単独の、またはローカル記憶装置と組み合わされた記憶装置、またはその他の定義されている記憶領域を包含しうる。
図7および図8は、3つの独立したDAG501、703、および705を持つファイル領域701を例示している。DAG501、703、および705の間の唯一必須の関係は、それらが同じファイル領域内に置かれていることであり、それらの間に必須の概念的関係はない。図8は、図7に示されているDAGを記述するORGテーブル801を例示している。図7は、ファイル領域701の概念視点を例示しているが、図8は、ファイル領域701で使用されている保持リンクを例示している。ファイル領域701は、ユーザによって開かれ、その時点で、ファイルシステム148は、ファイルシステムによって定義されたファイル領域内での「トップレベル」または「フローティング」アイテムのすべてをユーザに提示することができる。本明細書で使用されているように、アイテムは、ファイル領域に対応するORGテーブル内の他のアイテムからの保持リンクのリンク先となっていない場合に「トップレベル」または「フローティング」と定義される。したがって、図7では、アイテムi1、i7、To Do List、およびItems For My Tripは、トップレベルアイテムまたはフローティングアイテムとみなされる。エンドユーザにとっては、リストi7は、編成データ構造の形態である。複数の親の概念に基づき、アイテムは複数のリスト内にあってもよい、例えば、アイテムi3である。リストは、順序付けられた、または順序付けられていない他のアイテムを保持するアイテムであり、リストは、ユーザが従来のファイルシステムで扱い慣れているフォルダ/ディレクトリを置き換えることができる。リストは、他リスト内にあってもよいし、あるいは他のリストを保持することもできる。
ファイルシステム148は、ユーザまたはアプリケーション(クライアントと総称される)が基礎をなす編成構造からアイテムを除去することを望んでいるのか、それともクライアントがファイルシステムからアイテムを完全に削除することを望んでいるのかを区別する。図9および図10は、ユーザまたはアプリケーションがKey Slide Decksリストからアイテムi5を除去した後のファイル領域801を例示している。つまり、マネージャ601は、Update_Item API605を介した要求に基づき、Key Slide Decks(ファイルID 000007)をアイテムi5(ファイルID 000006)の親として識別するORGテーブル1001内の保持リンクを除去する。アイテムi5は、アイテムi5に関係するすべての保持リンクがORGテーブル401から除去されたため、もはや複数アイテム編成構造の一部ではない。しかし、アイテムi5はファイル領域801内に残っているため、アイテムi5は、ファイルシステム148またはLOCテーブル301からは削除されない。別の言い方をすると、クライアントはアイテムi5を削除する(delete)要求をしなかったが、むしろアイテムi5を除去する(remove)ことを要求したため、アイテムi5は、データストア611およびLOCテーブル301から削除されない。クライアントがアイテムi5を断定的に選択し、Delete_Item API607を介して削除オペレーションを要求した後でしか、マネージャ601はアイテムi5 (ファイルID 000006)をデータストア611およびLOCテーブル301から除去しない。
図11および図12を参照すると、ファイルシステム148を使用することで、すでに知られているファイルシステムで使用されている編成構造に基づいて、ユーザにおなじみの編成構造、例えば、ディレクトリツリーを模倣することができる。再びLOCテーブル301(図3)を参照すると、ファイルID 000301〜000312を持つアイテムは、ファイルシステム148に格納されているリストの保持リンクを表している。それぞれの順序付けられていないリストは、ファイル領域1201(図12)およびORGテーブル1101(図1)で概念的に表されているディレクトリツリー1203において1つのディレクトリを表す。ディレクトリツリー1203と以前から知られているディレクトリツリーとの主な違いは、サブディレクトリ「Shared」は2つの「User Data」という順序付けされていないリストのうちのいずれかを介してアクセス可能であり、したがって、ファイルシステム148の複数の親機能を利用できるという点である。この方法で、ユーザは自分の慣れ親しんだ編成構造を利用しつつ、ユーザ同士の間でディレクトリを簡単に共有することができる。
本発明の例示されている実施形態によれば、ファイルシステム148は、ファイルシステム148が実装されているコンピュータシステムまたはネットワークのそれぞれの個別ユーザにプライベートワークスペースを用意し、またコンピュータシステムまたはネットワークのすべてのユーザから利用可能な共通の共有ワークスペースも用意する。名前空間は、User Dataの下にPrivateおよびShared File Regionの両方を持つように形成される。これにより、ユーザがシステムに対して行う問い合わせをUser Dataによって形成されるアイテムドメインをルートとするようにでき、したがってすべての典型的な問い合わせにおいてプライベートアイテムと共有アイテムの両方を返す。図12の名前空間を使用すると、ファイルシステム内のアイテムとやり取りする(新しい写真または音楽を取得する、ドキュメントを作成するなど)ときに、ユーザは、「これはプライベートかあるいは共有か?」という質問を概念的に考察して、適切なワークスペース内にそのアイテムを置くだけでよい。その後、Sharedワークスペースのすべてのユーザは、Sharedワークスペースへの共通の可視性を得られる。さらに、一方のユーザが他方のユーザがまだ望んでいたアイテムを削除する場合、第2のユーザがそれを取り出せるようにワークスペース毎に共有リサイクルビンがあり得る。
共通の共有ワークスペースに対するシナリオは、ホームユーザに限られない。企業ドメインでは、知識労働者は、同僚がプロジェクトに関して共同して働けるように共有ワークスペースをセットアップすることができる。ワークスペースには柔軟性があるため、ワークスペースのそれぞれのユーザは、アイテムを編成し、ワークスペース内のアイテムについて問い合わせを行うことができ、それらのアイテムの共通の全体的可視性を実現できる。
図13は、基礎をなす編成構造からアイテムを除去し、および/またはファイルシステム148からアイテムを削除する方法を例示している。最初に、ステップ1301において、クライアントは、特定のファイルIDを持つアイテムを選択する。次に、ステップ1303において、クライアントは、ファイルシステム148からそのアイテムを完全に削除したいことを指示するか、または基礎をなす編成構造からそのアイテムを単に除去したいだけなのかを指示する。クライアントがステップ1303において「除去」を選択した場合、ステップ1305において、ファイルシステムマネージャは、そのアイテムのファイルIDが子列内に存在するエントリをORGテーブルから削除し、その方法は終了する。
クライアントがステップ1303において「削除」を選択した場合、ステップ1307において、ファイルシステムマネージャ601は、そのアイテムのファイルIDが親列に存在するORGテーブルエントリ毎に、その子が子であり、ITEMの(複数の)親が親であるエントリをORGテーブル内に追加するが、ただし、ORGテーブル内にすでに存在していない場合である。使用可能な擬似コードは以下のとおりである。
For each ORG entry X where Xparent=file_ID(ITEM)
For each ORG entry Y where Ychild=file_ID(ITEM)
If ORG table does not have entry (Yparent, Xchild)
Then Add ORG table entry (Yparent, Xchild)
ORGテーブルをそれに応じて更新した後、ファイルシステムマネージャは、ステップ1309において、アイテムのファイルIDを親または子のいずれかとして参照するエントリをORGテーブルから削除する。最後に、ステップ1311において、ファイルシステムマネージャ601は、アイテムが格納されている場所を示すエントリをLOCテーブルから削除する。ファイルシステムマネージャ601は、さらに、安全消去オペレーションを実行し、アイテムのロケーションに格納されているデータをガーベッジデータで上書きし、アンデリート操作を実行できないようにする。
For each ORG entry X where Xparent=file_ID(ITEM)
For each ORG entry Y where Ychild=file_ID(ITEM)
If ORG table does not have entry (Yparent, Xchild)
Then Add ORG table entry (Yparent, Xchild)
ORGテーブルをそれに応じて更新した後、ファイルシステムマネージャは、ステップ1309において、アイテムのファイルIDを親または子のいずれかとして参照するエントリをORGテーブルから削除する。最後に、ステップ1311において、ファイルシステムマネージャ601は、アイテムが格納されている場所を示すエントリをLOCテーブルから削除する。ファイルシステムマネージャ601は、さらに、安全消去オペレーションを実行し、アイテムのロケーションに格納されているデータをガーベッジデータで上書きし、アンデリート操作を実行できないようにする。
それとは別に、ファイルシステムマネージャは、ステップ1307をスキップし、アイテムが親または子のいずれかであるエントリをステップ1309においてORGテーブルから単に除去することができる。この代替え方法の副作用として、削除されたアイテムのそれぞれの子は、子がファイルシステム148の編成構造内に残っている第2のアイテムを親としていない限り、ファイルシステム148の編成構造から除去される。
上記の方法は、選択されたアイテムおよびそのアイテムがポイントしている任意のアイテムが、基礎をなす編成構造から除去されるように例示されている。しかし、当業者であれば、編成構造からアイテムが除去されるときに、そのアイテムの子も編成構造から除去されることはない代替的な方法を使用できることを理解するであろう。この除去方法の実行の仕方は、除去と削除は2つの異なるプロセスであるという事実、つまり、削除プロセスは、記憶領域からアイテムをすっかり削除してしまうが、除去プロセスは、アイテムのライフタイムに影響を及ぼすことなく基礎をなす編成構造からアイテムを除去する(つまり、記憶領域からもファイルシステムからもそのアイテムを削除しない)という事実にとっては、派生的なことである。
従来のファイルシステムのナビゲーションツール、例えば、ワシントン州レドモンドのMicrosoft Corporation社のWindows(登録商標)EXPLORERというシステムナビゲーションツールでは、通常、ファイルシステムの編成構造内にあるファイルを表示するだけである。そのため、クライアントがファイルシステム148の編成構造からアイテムを除去した場合、つまり、アイテムがORGテーブル内に存在していない場合、そのアイテムは、ファイルシステムのナビゲーション表示の中に現れない。しかし、本発明の態様を使用すれば、クライアントは、編成構造内に現在ないアイテムを見つけるために、ファイルシステムマネージャ601に、すべてのフローティングまたはトップレベルアイテム(つまり、親のないアイテム)についての問い合わせを行うことができる。
ファイルシステム148は、ORGテーブル401により定義された編成構造に基づき、問い合わせドメインおよびセキュリティなどの追加機能を備えることができる。つまり、編成構造を定義することに加えて、ORGテーブル内の保持リンクは、問い合わせ可能なアイテムドメイン形成するために使用することも、または名前空間として参照することもできる。クライアントは、少なくとも1つの保持リンクに関わっている、親であるアイテムに問い合わせを行うことができる。例えば、図7を参照すると、「Items For My Trip」について問い合わせると、アイテムi3、i4、i5およびi8、さらにKey Slide Decksが返される。重複アイテムは、一度だけ返されるのが好ましい。例えば、i4は、Key Slide Decksを親ともするが、1回だけ返されるのが好ましい。
ファイルシステム148の編成構造は、レガシーアプリケーションで使用するため名前空間を伝播するために、また新しいユーザに、ファイルシステム148とやり取りするための概念的に認識可能なユーザインタフェースを提供するためにも使用できる。例えば、図12を参照すると、「U1」の下のアイテム「User Data」は、クライアントにより、\Users\Ul\User Dataとして参照されることが可能であり、それにより、概念的に馴染みのあるインタフェースをエンドユーザおよびレガシーアプリケーションに提供することができる。
ORG401により定義された編成構造は、さらに、ファイルシステム148内のセキュリティ情報の伝播のためにも使用できる。つまり、セキュリティテーブル(図に示されていない)は、アイテムに対するセキュリティ情報を提供することが可能である。デフォルト設定では、ユーザが与えられたアイテムに対するアクセス権を持つ場合、ユーザは、デフォルト設定により、直接的か間接的かに関係なく、与えられたアイテムによってポイントされる他のすべてのアイテムへのアクセス権も持つ。
例えば、アイテムU1(図12)に対するセキュリティは、username=RossのユーザのみがU1内のファイルにアクセスできることを示すことが可能である。U1を親とするアイテムApp DataおよびUser Dataに対し異なるセキュリティ情報が与えられない限り、Rossのみがそれらのアイテムをも見ることができる。Private(U1を親とするUser Dataを親とする)およびSharedについて同じことが成立するであろう。アイテムU2に対するセキュリティは、usemame=JordanのユーザのみがU2内のファイルにアクセスできることを示すことがある。U2を親とするアイテムApp DataおよびUser Dataに対し異なるセキュリティ情報が与えられない限り、Jordanのみがそれらのアイテムをも見ることができる。Private(U2を親とするUser Dataを親とする)およびSharedについて同じことが成立するであろう。アイテムSharedは競合するセキュリティ情報を持つように見えるが、セキュリティ情報は加法的であることが好ましい。そのため、アイテムSharedは、U1およびU2の両方からセキュリティ情報を受け取り、「only Ross and Jordan」を許可する。それとは別に、アイテムU1は「only Ross,not Tom」と同等の許可を持っていたと仮定する。アイテムSharedは、「only Ross and Jordan,and not Tom」と同様のセキュリティ許可を受け取ることになる。
アイテムがORGから除去された場合、セキュリティは、除去されたアイテムへの伝播を停止する。例えば、図9に例示されているようにアイテムi5が「Key Slide Decks」から除去される場合、ユーザは、もはや、i5にアクセスする許可を与えられていない限り、i5へのアクセス権を持たない。ただし、ファイルシステム148では、デフォルト設定により、クライアントがアイテムにアクセスすることを特に禁止されていない限り、クライアントはすべてのアイテムにアクセスできることを指定することが可能である。
リストは、上述のように名前空間を形成するので、Windows(登録商標)XPまたは他のレガシーマシン(本明細書で説明されているようにファイル領域、DAG、またはリストを操作する構成でない可能性のある)からユーザがファイルシステム148に接続した場合、そのユーザは、それらのリストをナビゲート可能なフォルダとして見えるものとして参照することができる。同様に、ユーザが(レガシーオペレーティングシステムまたはファイルシステム148に対応するシステム上の)リストのコンテキスト内で与えられたアイテムをダブルクリックすると、ファイルシステムは、要求側アプリケーションに、現在のリストにより形成された名前空間を与える。これにより、アプリケーションは必要なコンテキストを利用できる。例えば、ユーザがリスト「To do List」を通じてアイテムi2を開こうとした場合、ファイルシステムは、「To do list」、つまり、\To Do List\i2を通じて形成されるパスをそのアプリケーションに返す。そのため、ユーザがアプリケーション内でコマンド「File|Save As...」を使用することを選択した場合(例えば、アイテムの新しいコピーを作成するために)、アプリケーションは、ユーザに提示する正しいコンテキストを持つことになる。
本発明は、本発明を実施する目下好ましい方法を含む特定の実施例に関して説明されているが、当業者であれば、上述のシステムおよび手法のさまざまな変更形態および置換があることを理解するであろう。そこで、本発明の趣旨および範囲は、付属の請求項によって規定されているとおり、広い意味で解釈すべきである。
141 ハードディスクドライブ
151 磁気ディスクドライブ
155 光ディスクドライブ
181 メモリデバイス
166 スタイラス
151 磁気ディスクドライブ
155 光ディスクドライブ
181 メモリデバイス
166 スタイラス
Claims (22)
- コンピュータ読取り可能媒体上に格納されているデータアイテムおよびコンピュータ実行可能命令として実現されるファイルシステムであって、
前記ファイルシステム内に格納された少なくとも第1のデータアイテム、第2のデータアイテム、および第3のデータアイテムに対するアイテムロケーション情報を格納する第1のデータテーブルと、
前記第1のデータアイテムおよび第2のデータアイテムに対する編成情報を格納し、前記第3のデータアイテムに対する編成情報を含まない、第2のデータテーブルと、
を備えることを特徴とするファイルシステム。 - 前記第1のテーブルおよび前記第2のテーブルは、別々のテーブルを含むことを特徴とする請求項1に記載のファイルシステム。
- 前記第1のテーブルは、データアイテム毎に、前記データアイテムの一意的なアイテムID、アイテム名、および記憶位置を格納することを特徴とする請求項1に記載のファイルシステム。
- 前記第2のテーブルのそれぞれのエントリは、2つの格納されているデータアイテム間の関係を定義することを特徴とする請求項1に記載のファイルシステム。
- 前記関係は、親−子関係を含むことを特徴とする請求項4に記載のファイルシステム。
- 前記第2のデータテーブルのすべてのエントリは、非循環有向グラフとして集合的に表すことができることを特徴とする請求項5に記載のファイルシステム。
- 前記第2のテーブルは、前記第1のデータアイテムを前記第2のデータアイテムの親として識別する第1のエントリを格納することを特徴とする請求項4に記載のファイルシステム。
- 前記第2のアイテムは、前記第1のデータアイテムおよび第2のデータアイテムの間の関係に基づき、前記第1のデータアイテムからセキュリティ許可を継承することを特徴とする請求項7に記載のファイルシステム。
- コンピュータ読取り可能媒体上に格納されるコンピュータ実行可能命令として実現されるファイルシステムマネージャのソフトウェアモジュールであって、前記ファイルシステムマネージャは、アイテムロケーションデータおよびアイテム編成データを使用してファイルシステムに格納されたアイテムを管理し、前記ファイルシステムマネージャは、
前記ファイルシステムから第1の指定されたアイテムを削除するための第1のサブルーチンと、
前記ファイルシステムの編成構造から第2の指定されたアイテムを除去するが、前記ファイルシステムから前記第2の指定されたアイテムを削除しない、第2のサブルーチンと、
を備えることを特徴とするファイルシステムマネージャのソフトウェアモジュール。 - アイテムロケーションデータは、第1のテーブル内に格納され、アイテム編成データは、第2のテーブル内に格納されることを特徴とする請求項9に記載のファイルシステムマネージャ。
- 前記第1のテーブルは前記第2のテーブルと別であることを特徴とする請求項10に記載のファイルシステムマネージャ。
- 前記第1のサブルーチンは、前記第1の指定されたアイテムへの参照を前記第1のテーブルおよび前記第2のテーブルから削除することを含むことを特徴とする請求項10に記載のファイルシステムマネージャ。
- 前記第1のサブルーチンは、削除前に、前記第1の指定されたアイテムに関係する前記第2のテーブル内の複数のエントリに基づいて、前記第2のテーブルに新しいエントリを追加することをさらに含むことを特徴とする請求項12に記載のファイルシステムマネージャ。
- 前記第2のサブルーチンは、前記第2の指定されたアイテムへの参照を前記第2のテーブルから削除するが、前記第2の指定されたアイテムを前記第1のテーブルから削除しないことを含むことを特徴とする請求項10に記載のファイルシステムマネージャ。
- 前記第1のサブルーチンは、第1のアプリケーションプログラミングインタフェース(API)を介して呼び出し可能であることを特徴とする請求項9に記載のファイルシステムマネージャ。
- 前記第2のサブルーチンは、前記第1のAPIと異なる第2のAPIを介して呼び出し可能であることを特徴とする請求項15に記載のファイルシステムマネージャ。
- 前記編成データに基づくセキュリティデータをさらに備えることを特徴とする請求項9に記載のファイルシステムマネージャ。
- 前記ファイルシステムマネージャは、編成データに基づきアイテムのそれぞれについて名前空間を構成することを特徴とする請求項9に記載のファイルシステムマネージャ。
- ファイルシステムに格納されているアイテムを管理する方法であって、
前記ファイルシステムから第1のアイテムを削除する第1の要求を受け取るステップと、
前記第1の要求に対する応答として、前記ファイルシステムに関連付けられたロケーション情報から、および前記ファイルシステムに関連付けられた編成情報から、前記第1のアイテムへの参照を削除するステップと、
前記ファイルシステムから第2のアイテムを除去する第2の要求を受け取るステップと、
前記第2の要求に対する応答として、前記第2のアイテムへの参照を前記ファイルシステムに関連付けられた前記編成情報から削除し、前記ファイルシステムに関連付けられた前記ロケーション情報からの前記第2のアイテムへの参照を無変更のままにするステップと、
を備えることを特徴とする方法。 - データアイテムを格納するための、コンピュータ読取り可能媒体上に格納されたコンピュータ実行可能命令として実現されるファイルシステムであって、それぞれのデータアイテムのライフタイムは、前記ファイルシステムに格納された他のデータアイテムに対するそれぞれのデータアイテムの編成と無関係であることを特徴とするファイルシステム。
- データアイテムを格納するための、コンピュータ読取り可能媒体上に格納されたコンピュータ実行可能命令として実現されるファイルシステムであって、前記ファイルシステムは、データアイテムと前記ファイルシステムに格納された他のデータアイテムとの関係と無関係であるそれぞれのデータアイテムのライフタイムを決定することを特徴とするファイルシステム。
- データアイテムを格納するための、コンピュータ読取り可能媒体上に格納されたコンピュータ実行可能命令として実現されるファイルシステムであって、前記ファイルシステムは、前記ファイルシステムに格納された他のデータアイテムとの親−子関係を持たない第1のデータアイテムを格納することを特徴とするファイルシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/985,907 US7730114B2 (en) | 2004-11-12 | 2004-11-12 | Computer file system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006139780A true JP2006139780A (ja) | 2006-06-01 |
JP2006139780A5 JP2006139780A5 (ja) | 2008-12-25 |
Family
ID=35998539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005323896A Pending JP2006139780A (ja) | 2004-11-12 | 2005-11-08 | コンピュータのファイルシステム |
Country Status (10)
Country | Link |
---|---|
US (1) | US7730114B2 (ja) |
EP (1) | EP1657654A3 (ja) |
JP (1) | JP2006139780A (ja) |
KR (1) | KR20060052365A (ja) |
CN (1) | CN1773509B (ja) |
AU (1) | AU2005229638A1 (ja) |
BR (1) | BRPI0504844A (ja) |
CA (1) | CA2523176A1 (ja) |
MX (1) | MXPA05011315A (ja) |
RU (1) | RU2005135118A (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7716189B1 (en) * | 2005-09-23 | 2010-05-11 | Symantec Operating Corporation | Method for preserving relationships/dependencies between data in a file system |
US7636737B2 (en) * | 2005-12-20 | 2009-12-22 | Microsoft Corporation | Web site multi-stage recycling |
JP4912026B2 (ja) * | 2006-04-27 | 2012-04-04 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
US20090097825A1 (en) * | 2006-05-05 | 2009-04-16 | Harris Scott C | Peer to Peer Distribution of Media Files |
US9003396B2 (en) * | 2006-06-19 | 2015-04-07 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | File manager integration of uninstallation feature |
CN100405373C (zh) * | 2006-11-29 | 2008-07-23 | 北京中星微电子有限公司 | 一种文件系统的目录项整理方法 |
JP4843532B2 (ja) * | 2007-03-14 | 2011-12-21 | 株式会社リコー | 表示処理装置、表示処理方法、および表示処理プログラム |
US8341652B2 (en) * | 2009-02-26 | 2012-12-25 | Red Hat, Inc. | Method for programmatic editing of configuration files |
US9298480B2 (en) | 2009-02-26 | 2016-03-29 | Red Hat, Inc. | Programmatic editing of text files |
WO2010151750A1 (en) * | 2009-06-26 | 2010-12-29 | Simplivt Corporation | Scalable indexing in a non-uniform access memory |
US8458765B2 (en) * | 2009-12-07 | 2013-06-04 | Samsung Electronics Co., Ltd. | Browser security standards via access control |
US20130113809A1 (en) * | 2011-11-07 | 2013-05-09 | Nvidia Corporation | Technique for inter-procedural memory address space optimization in gpu computing compiler |
US9317511B2 (en) * | 2012-06-19 | 2016-04-19 | Infinidat Ltd. | System and method for managing filesystem objects |
US8914428B2 (en) | 2013-04-08 | 2014-12-16 | Dttp Technologies Inc. | System and method for maintaining a file system at a computing device |
JP6135778B2 (ja) * | 2014-02-14 | 2017-05-31 | 富士通株式会社 | ドキュメント管理プログラム、装置、および方法 |
US9495478B2 (en) * | 2014-03-31 | 2016-11-15 | Amazon Technologies, Inc. | Namespace management in distributed storage systems |
US10769113B2 (en) | 2016-03-25 | 2020-09-08 | Microsoft Technology Licensing, Llc | Attribute-based dependency identification for operation ordering |
JP6700337B2 (ja) * | 2018-05-30 | 2020-05-27 | 日本電信電話株式会社 | 保護装置及び保護方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305829A (ja) * | 1999-04-26 | 2000-11-02 | Canon Inc | フォルダ管理装置及びそのフォルダ管理方法並びに記録媒体 |
JP2004126909A (ja) * | 2002-10-02 | 2004-04-22 | Panasonic Communications Co Ltd | ファイル管理装置及びファイル削除方法、並びに文書処理装置、記録装置 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247658A (en) * | 1989-10-31 | 1993-09-21 | Microsoft Corporation | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers |
US5265159A (en) * | 1992-06-23 | 1993-11-23 | Hughes Aircraft Company | Secure file erasure |
JPH08506911A (ja) * | 1992-11-23 | 1996-07-23 | パラゴン、コンセプツ、インコーポレーテッド | ファイル・アクセスを行うためにユーザーがカテゴリを選択するコンピュータ・ファイリング・システム |
JP2912840B2 (ja) * | 1994-12-07 | 1999-06-28 | 富士通株式会社 | ファイル管理システム |
US6647393B1 (en) * | 1996-11-22 | 2003-11-11 | Mangosoft Corporation | Dynamic directory service |
CA2272708A1 (en) * | 1996-11-27 | 1998-06-04 | Kurt E. Godwin | File directory and file navigation system |
US6615224B1 (en) * | 1999-02-23 | 2003-09-02 | Lewis B. Davis | High-performance UNIX file undelete |
US8352331B2 (en) * | 2000-05-03 | 2013-01-08 | Yahoo! Inc. | Relationship discovery engine |
CN1381800A (zh) * | 2001-01-12 | 2002-11-27 | 有限会社筑城软件研究所 | 联系信息管理系统、联系信息管理用程序和记录媒体 |
AU2002334721B2 (en) * | 2001-09-28 | 2008-10-23 | Oracle International Corporation | An index structure to access hierarchical data in a relational database system |
US20030229612A1 (en) * | 2002-06-10 | 2003-12-11 | Keller S. Brandon | Circuit design duplication system |
WO2004008348A1 (en) | 2002-07-16 | 2004-01-22 | Horn Bruce L | Computer system for automatic organization, indexing and viewing of information from multiple sources |
WO2004023310A1 (ja) * | 2002-09-05 | 2004-03-18 | Hiroyuki Yasoshima | ネットワーク構造によるファイル管理方法、操作対象表示制限プログラムおよび記録媒体 |
CN100504854C (zh) * | 2003-01-14 | 2009-06-24 | 联想(北京)有限公司 | 文件管理方法 |
US20040230652A1 (en) * | 2003-02-14 | 2004-11-18 | Julio Estrada | System and method for message sequencing in a collaborative work environment |
US7627552B2 (en) * | 2003-03-27 | 2009-12-01 | Microsoft Corporation | System and method for filtering and organizing items based on common elements |
US7188308B2 (en) * | 2003-04-08 | 2007-03-06 | Thomas Weise | Interface and method for exploring a collection of data |
US7512790B2 (en) * | 2003-04-17 | 2009-03-31 | International Business Machines Corporation | Method, system and article of manufacture for management of co-requisite files in a data processing system using extended file attributes |
JP3712071B2 (ja) * | 2003-10-02 | 2005-11-02 | ソニー株式会社 | ファイル管理装置、ファイル管理方法、ファイル管理方法のプログラム及びファイル管理方法のプログラムを記録した記録媒体 |
JP4396242B2 (ja) * | 2003-11-28 | 2010-01-13 | 富士ゼロックス株式会社 | 文書リンク構造情報作成装置及び方法 |
US7499921B2 (en) * | 2004-01-07 | 2009-03-03 | International Business Machines Corporation | Streaming mechanism for efficient searching of a tree relative to a location in the tree |
US7614007B2 (en) * | 2004-01-16 | 2009-11-03 | International Business Machines Corporation | Executing multiple file management operations |
US20060075071A1 (en) * | 2004-09-21 | 2006-04-06 | Gillette Joseph G | Centralized management of digital files in a permissions based environment |
-
2004
- 2004-11-12 US US10/985,907 patent/US7730114B2/en not_active Expired - Fee Related
-
2005
- 2005-09-30 EP EP05021459A patent/EP1657654A3/en not_active Withdrawn
- 2005-10-11 CA CA002523176A patent/CA2523176A1/en not_active Abandoned
- 2005-10-21 MX MXPA05011315A patent/MXPA05011315A/es not_active Application Discontinuation
- 2005-10-25 BR BRPI0504844-3A patent/BRPI0504844A/pt not_active IP Right Cessation
- 2005-10-31 KR KR1020050103108A patent/KR20060052365A/ko not_active Application Discontinuation
- 2005-10-31 AU AU2005229638A patent/AU2005229638A1/en not_active Abandoned
- 2005-11-08 JP JP2005323896A patent/JP2006139780A/ja active Pending
- 2005-11-11 RU RU2005135118/09A patent/RU2005135118A/ru not_active Application Discontinuation
- 2005-11-14 CN CN2005101248113A patent/CN1773509B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000305829A (ja) * | 1999-04-26 | 2000-11-02 | Canon Inc | フォルダ管理装置及びそのフォルダ管理方法並びに記録媒体 |
JP2004126909A (ja) * | 2002-10-02 | 2004-04-22 | Panasonic Communications Co Ltd | ファイル管理装置及びファイル削除方法、並びに文書処理装置、記録装置 |
Also Published As
Publication number | Publication date |
---|---|
US7730114B2 (en) | 2010-06-01 |
US20060106841A1 (en) | 2006-05-18 |
EP1657654A2 (en) | 2006-05-17 |
EP1657654A3 (en) | 2006-09-20 |
CA2523176A1 (en) | 2006-05-12 |
MXPA05011315A (es) | 2006-05-16 |
KR20060052365A (ko) | 2006-05-19 |
BRPI0504844A (pt) | 2006-06-27 |
AU2005229638A1 (en) | 2006-06-01 |
CN1773509A (zh) | 2006-05-17 |
CN1773509B (zh) | 2010-12-22 |
RU2005135118A (ru) | 2007-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006139780A (ja) | コンピュータのファイルシステム | |
US11803516B2 (en) | System and method for selective synchronization | |
KR101120755B1 (ko) | 정적 및 동적 리스트의 사용을 포함하는 가상 폴더 및 항목 공유 시스템 및 방법 | |
US8135677B2 (en) | File management system and method | |
US7493307B2 (en) | Document management extension software | |
US8694497B2 (en) | Method, system, and computer program product for enabling file system tagging by applications | |
US8458234B2 (en) | Data management method | |
KR100991027B1 (ko) | 파일 시스템 셸 | |
JP2008003846A (ja) | 文書利用管理システム及び方法、文書管理サーバ及びそのプログラム | |
EP2329379A1 (en) | Shared namespace for storage clusters | |
CN104778192B9 (zh) | 表示可内容寻址存储系统的目录结构 | |
TWI334091B (en) | Data file management and search method and system based on file attributes | |
EP1669891A1 (en) | Computer file system allowing ambiguous names | |
JP2007293619A (ja) | サーバ装置および情報共有システムおよびプログラムおよび記録媒体 | |
US8214410B2 (en) | Conflict management in a versioned file system | |
KR20110096035A (ko) | 영구 문서 모음 관리 기법 | |
Bidelman | Using the HTML5 Filesystem API: A True Filesystem for the Browser | |
US11048666B2 (en) | Method and apparatus for shallow copy functionality | |
JP2007148739A (ja) | ファイル管理システム及びそのプログラム | |
KR20060054099A (ko) | 전자 파일 시스템에서 리스트와 다른 항목의 관리 | |
JP4166704B2 (ja) | ライフサイクル管理エンジン | |
JP4507609B2 (ja) | ファイル管理プログラム及びファイル管理装置 | |
JP2007521540A (ja) | 統合コレクションの拡張可能な作成および編集 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081107 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111007 |