(57)【要約】【課題】データ処理システムのディスク記憶装置にファイルデータを効率良く記憶するための方法を提供する。【解決手段】ファイルデータは、ディスクに多数の異なる表示で記憶される。ファイルデータは、多数の異なる表示のいずれかをとる流れとして記憶される。各流れには、その流れをディスクにいかに記憶するかを記述する流れ記述子が組み合わされる。上記表示は、流れを単一イクステントに記憶すること、流れを多数のイクステントに記憶すること、及び流れをそれに関連した流れ記述子に記憶することを含む。【選択図】図１
2008152802.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を有するデータ処理システムのファイルシステムにおいて、前記ファイルシステムが、前記記憶装置上で前記ファイルシステムにより提供されるファイル記憶構造体へのファイルの記憶の管理を、ストリームに含まれるデータの量に基づいて行う方法であって、
（ａ）前記記憶装置上で所与のタイプの第１のストリームファイル記憶構造体に、割り当て単位の可変長連続ランであるイクステントに、前記ファイルの内容の少なくとも一部を記憶することと、
（ｂ）前記記憶装置上で前記第１のストリームファイル記憶構造体に対する第１のストリーム記述子を記憶することであって、前記第１のストリーム記述子は、記述フィールドおよびタイプフィールドを有し、
（ｉ）前記第１のストリーム記述子の記述フィールドに前記第１のストリームファイル記憶構造体の記述を記憶することと、
（ｉｉ）前記第１のストリームファイル記憶構造体のタイプを識別するタイプ識別子を前記第１のストリーム記述子のタイプフィールドに記憶することとを含む、第１のストリーム記述子を記憶することと
を備えたことを特徴とする方法。
【請求項２】
前記記述フィールドに前記第１のストリームファイル記憶構造体の記述を記憶することは、更に、前記記述フィールドに前記第１のストリームファイル記憶構造体を記憶することを含み、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリームファイル記憶構造体の内容が記述フィールドに記憶されることを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記記述フィールドに第１のストリームファイル記憶構造体の記述を記憶することは、更に、前記記憶装置に記憶されて前記第１のストリームファイル記憶構造体を保持する前記イクステントに対するアドレスを記述フィールドに記憶することを含み、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリームファイル記憶構造体が一のイクステントに記憶されることを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記記述フィールドに第１のストリームファイル記憶構造体の記述を記憶することは、更に、前記イクステントの長さを指定する値を前記記述フィールドに記憶することを含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記記述フィールドに第１のストリームファイル記憶構造体の記述を記憶することは、更に、前記記述フィールドに第２のストリーム記述子を記憶することを含み、前記第２のストリーム記述子は、前記第１のストリームファイル記憶構造体を記憶する複数のイクステントの複数の記述子を保持する第２のストリームファイル記憶構造体のアドレスを含み、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリームファイル記憶構造体が複数のイクステントに記憶されることを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記記述フィールドに前記第１のストリームファイル記憶構造体の記述を記憶することは、更に、第２のストリーム記述子及び第３のストリーム記述子を前記第１のストリーム記述子の記述フィールドに記憶することを含み、前記第２のストリーム記述子及び前記第３のストリーム記述子は、異なるアドレスに記憶されるストリームの複製を記述するものであり、前記記憶装置において前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリーム記述子の記述フィールドが複製データを記述することを指定する識別子を記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記記述フィールドに第１のストリームファイル記憶構造体の記述を記憶することは、更に、第２のストリームファイル記憶構造体の内容を記述する第２のストリーム記述子及び前記第２のストリームファイル記憶構造体の内容に対する変更を指定する第３のストリームを記述する第３のストリーム記述子を前記第１のストリームファイル記憶構造体の記述フィールドに記憶することを含み、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリームファイル記憶構造体の記述フィールドが、前記第２のストリームファイル記憶構造体を記述する前記第２のストリーム記述子と、前記第２のストリームファイル記憶構造体の内容に対する変更に関する第３のストリームを記述する前記第３のストリーム記述子とを保持することを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記記述フィールドに前記第１のストリームファイル記憶構造体の記述を記憶することは、更に、圧縮データのストリームを記述する第２のストリーム記述子を前記第１のストリームファイル記憶構造体の記述フィールドに記憶することを含み、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリーム記述子の記述フィールドが圧縮データのストリームを記述する第２のストリーム記述子を保持することを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記記述フィールドに前記第１のストリームファイル記憶構造体の記述を記憶することは、更に、暗号データを保持する第２のストリームファイル記憶構造体を記述する第２のストリーム記述子を前記第１のストリーム記述子の記述フィールドに記憶することを含み、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、暗号データを保持する前記第２のストリームファイル記憶構造体を記述する前記第２のストリーム記述子を前記記述フィールドが保持することを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項１０】
ストレージファイルシステムを有するデータ処理システムにおいて、前記ファイルシステムによって提供される第１のストリームファイル記憶構造体を記憶して、第１ファイルの内容を保持し、前記ファイルシステムによって提供される第２のストリームファイル記憶構造体を記憶して、第２ファイルの内容を保持することの管理を、ストリームに含まれるデータの量に基づいて行う、前記ファイルシステムによって実行される方法であって、
（ａ）前記第１のストリームファイル記憶構造体を、タイプフィールドにタイプ識別子を含み前記第１のストリームファイル記憶構造体を記述する第１のストリーム記述子の一部分として記憶することと、
（ｂ）前記第２のストリームファイル記憶構造体を、割り当て単位の可変長連続ランであるイクステントに記憶することと、
（ｃ）前記第２のストリームファイル記憶構造体を記述する第２のストリーム記述子を記憶することであって、前記第２のストリーム記述子は、前記第２のストリームファイル記憶構造体が記憶されるイクステントを記述するイクステント記述子を含む、第２のストリーム記述子をこととを備えることを特徴とする方法。
【請求項１１】
ファイルシステムを提供するオペレーティングシステムと記憶装置とを有するデータ処理システムにおいて、前記ファイルシステムによって提供される第１のストリームファイル記憶構造体を記憶して、第１ファイルの内容を保持し、前記ファイルシステムによって提供される第２のストリームファイル記憶構造体を記憶して、第２ファイルの内容を保持することの管理を、ストリームに含まれるデータの量に基づいて行う、前記ファイルシステムによって実行される方法であって、
（ａ）前記第１のストリームファイル記憶構造体を、タイプフィールドにタイプ識別子を含み前記第１のストリームファイル記憶構造体を記述する第１のストリーム記述子の一部分として前記記憶装置に記憶することと、
（ｂ）ファイルデータの入った前記第２のストリームファイル記憶構造体を前記記憶装置の複数のイクステントに記憶することであって、前記複数のイクステントは割り当て単位の可変長連続ランによって形成されている、そのような複数のイクステントに記憶することと、
（ｃ）前記第２のストリームファイル記憶構造体を記述する第２のストリーム記述子を前記記憶装置に記憶することであって、前記第２のストリーム記述子は、前記第２ストリームファイル記憶構造体が記憶される複数のイクステントを記述する複数のイクステント記述子のストリームを記述する第３のストリーム記述子を含む、第２のストリーム記述子を記憶することとを備えることを特徴とする方法。
【請求項１２】
ファイルシステムおよびディスク記憶装置を有するデータ処理システムにおいて、前記ディスク記憶装置内で、前記ファイルシステムによって提供される第１のストリームファイル記憶構造体を記憶して、第１ファイルの内容を保持し、前記ファイルシステムによって提供される第２のストリームファイル記憶構造体を記憶して、第２ファイルの内容を保持することの管理を、ストリームに含まれるデータの量に基づいて行う、前記ファイルシステムによって実行される方法であって、
（ａ）前記第１のストリームファイル記憶構造体を前記ディスク記憶装置の、割り当て単位の可変長連続ランであるイクステントに記憶することと、
（ｂ）タイプフィールドにタイプ識別子を含み前記第１のストリームファイル記憶構造体を記述する第１のストリーム記述子を前記ディスク記憶装置に記憶することであって、前記第１のストリーム記述子は、前記第１のストリームファイル記憶構造体が記憶される前記イクステントを記述するイクステント記述子を含む、第１のストリーム記述子を記憶することと、
（ｃ）前記第２のストリームファイル記憶構造体を前記ディスク記憶装置に保持された複数のイクステントに記憶することと、
（ｄ）前記第２のストリームファイル記憶構造体を記述する第２のストリーム記述子を前記ディスク記憶装置に記憶することであって、前記第２のストリーム記述子は、前記第２のストリームファイル記憶構造体が記憶される複数のイクステントを記述するための複数のイクステント記述子のストリームを記述する第３のストリーム記述子を含む、第２のストリーム記述子を記憶することと
を備えることを特徴とする方法。
【請求項１３】
前記ファイルシステムにより提供されるファイル記憶構造体へのファイルの記憶の管理を、ストリームに含まれるデータの量に基づいて行う、データ処理システムであって、
（ａ）記憶装置と、
（ｂ）
（ｉ）前記記憶装置に記憶されるファイルの内容を保持するストリームファイル記憶構造体の記述を、前記ストリームファイル記憶構造体に対するストリーム記述子の第１フィールドとして、
（ｉｉ）前記ストリームファイル記憶構造体を保持する複数のイクステントの複数のイクステント記述子のストリームを記述する第２のストリーム記述子を前記第１フィールドとして
前記記憶装置に記憶するための第１手段と、
（ｃ）タイプ識別子を、前記記憶装置における前記ストリーム記述子の第２フィールドとして前記記憶装置に記憶するための第２手段であって、前記タイプ識別子は、
（ｉ）前記ストリームファイル記憶構造体を前記記憶装置にどのように記憶するかを識別するものであり、
（ｉｉ）前記ストリームファイル記憶構造体が前記複数のイクステントに記憶されることを指定するものである、
そのような第２手段とを具備することを特徴とするデータ処理システム。
【請求項１４】
記憶するための前記第１手段は、前記ストリームファイル記憶構造体を前記ストリーム記述子の第１フィールドとして前記記憶装置に記憶し、記憶するための前記第２手段は、前記ストリームファイル記憶構造体が前記第１フィールドに記憶されることを指定するように前記タイプ識別子を前記第２フィールドに記憶することを特徴とする請求項１３に記載のデータ処理システム。
【請求項１５】
記憶するための前記第１手段は、前記ストリームファイル記憶構造体を保持するイクステントを記述するイクステント記述子を、前記ストリーム記述子の第１フィールドとして前記記憶装置に記憶し、記憶するための前記第２手段は、前記ストリームファイル記憶構造体がイクステントに記憶されることを指定するように前記タイプ識別子を前記第２フィールドに記憶することを特徴とする請求項１３に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータ処理システムに係り、より詳細には、ファイルシステムによりディスクにデータを記憶する方法に係る。
【背景技術】
【０００２】
従来のファイルシステムは、ファイルデータをディスクに効率的に記憶する点で問題がある。従来の多くのシステムは、全てのデータをディスクに単一サイズの記憶単位で記憶する手法を採用している。不都合なことに、この手法は、ディスクにファイルデータを効率良く記憶するものではない。特に、ファイルデータはサイズが変化し、従って、所定の記憶単位サイズに良好に一致するものではない。従来の他のシステムは、多数の異なるフォーマットの１つを採用するオプションをユーザに与えるものである。ファイルデータがユーザに使用できるようになる前に、どのフォーマットを採用するか判断しなければならない。その結果、ユーザによるフォーマットの選択は単なる推測となり、実際のファイルデータとうまく対応しないことがしばしばある。従って、ファイルデータが効率的に記憶されないことが頻繁である。
【発明の開示】
【課題を解決するための手段】
【０００３】
本発明の第１の特徴によれば、データ処理システムのファイルシステムにおける方法が実施される。この方法においては、タイプフィールドと、ストリームの記憶を記述する記述フィールドとを有するファイルデータの第１のストリームの記述が、ディスク記憶装置に記述フィールドとして記憶される。第１のストリームは、ファイルデータのバイトの論理的に隣接するアレーを構成する。ストリーム記述子のタイプフィールドにはタイプ識別子が記憶される。
【０００４】
この方法では、第１のストリームは多数の異なるリプレゼンテーション(representation)で記憶することができる。第１のリプレゼンテーションにおいては、第１のストリームのファイルデータがストリーム記述子の記述フィールドに記憶され、そしてタイプフィールドは、この即時リプレゼンテーションを指定するタイプ識別子を記憶する。第２のリプレゼンテーションにおいては、第１のストリームのファイルデータがディスク記憶装置に単一のイクステントで記憶される。タイプフィールドは、第１のストリームのファイルデータが単一イクステントで記憶されることを知らせる識別子を保持する。イクステントのアドレスは、ストリーム識別子の記述フィールドに記憶される。第３のリプレゼンテーションにおいては、ストリーム識別子の記述フィールドは、第１のストリームのファイルデータが記憶されるイクステントのストリームを記述する第２のストリーム記述子を保持する。タイプフィールドは、第１のストリームのファイルデータが多数のイクステントに保持されることを指定する。
【０００５】
又、第１のストリームに対するストリーム記述子のタイプフィールドは、データの特殊なハンドラーが第１のストリームに記憶されることを指定するのにも使用される。例えば、タイプフィールドは、第１のストリームの記述子の記述フィールドが複製データを記述することを指定する識別子を保持する。このような場合に、記述フィールドは、第２のストリームを記述する第２のストリームの記述子と、第３のストリームを記述する第３のストリームの記述子とを保持する。第２のストリーム及び第３のストリームは、同じファイルデータの複製を保持する。又、タイプフィールドは、第１のストリームの記述子の記述フィールドが、圧縮データのストリームを記述する第２のストリームの記述子を保持することを示す識別子を保持する。記述フィールドは、圧縮データのストリームを記述する第２のストリームの記述子を保持する。更に、タイプフィールドは、記述フィールドが、暗号データのストリームを記述する第２のストリームの記述子を保持することを指示する識別子を保持することもできる。
【０００６】
本発明において使用することのできる種々の形式のストリームリプレゼンテーションは、単一のディスク上に一緒に記憶することができる。従って、ディスクは、ストリーム記述子に保持されたストリーム、単一のイクステントに保持されたストリーム及び／又は多数のイクステントに保持されたストリームを含むことができる。
【発明を実施するための最良の形態】
【０００７】
本発明の好ましい実施例は、ファイルをディスクに「ストリーム」のグループとして記憶するファイルシステムを提供する。各ファイルは、ファイル端マーカによって指定された端において拡張可能である。「ストリーム」とは、データのバイトの論理的に隣接しランダムにアクセスできる可変サイズのアレーであって、ディスク上の最小記憶単位として働くものをいう。ファイルのデータへのほとんどのプログラムアクセスは、これらのストリームによって行われる。各ストリームは、多数の異なるリプレゼンテーションの１つにおいてディスクに記憶される。異なるリプレゼンテーションの各々は、ストリームの特定のサイズ及び使用に良く適したものである。従って、各ストリームは、そのサイズに最も良く適したリプレゼンテーションでディスクに記憶される。
【０００８】
各ストリームにはストリーム記述子が関連される。ストリーム記述子は、ストリームをアクセスしそしてストリームに関する情報を得るのに使用される。ストリーム記述子は、ストリームのデータを記憶するリプレゼンテーションの記述を与える。ストリーム記述子は、各ファイルに関連したファイルシステムの制御構造体（ファイル記憶構造体）に記憶される。
【０００９】
図１は、本発明の好ましい実施例によるデータ処理システム１０のブロック図である。図１のシステム１０は単一プロセッサシステムであるが、本発明は分散型システムのようなマルチプロセッサシステムでも実施できることが当業者に明らかであろう。データ処理システム１０は、中央処理ユニット（ＣＰＵ）１２と、メモリ１４と、ディスク記憶装置１６と、キーボード１８と、マウス２０と、ビデオディスプレイ２２とを備えている。メモリ１４は、システムに記憶されたファイルを管理するためのファイルシステムマネージャ２６を含むオペレーティングシステム２４のコピーを保持している。オペレーティングシステム２４は、オブジェクト指向のオペレーティングシステムである。ファイルは、ディスク記憶装置１６にストリームとして記憶される。ディスク記憶装置１６は、ハードディスク及び他の形式のディスク記憶装置を含む。キーボード１８、マウス２０及びビデオディスプレイ２２は、従来の入力／出力装置である。
【００１０】
上記したように、本発明の好ましい実施例においては、ストリームは、多数の異なるリプレゼンテーションで得られる。ストリームについての異なるリプレゼンテーションを理解するために、ストリームに対して与えられるストリーム記述子のフォーマットを検討することが有用であろう。図２は、ストリーム記述子２８のフォーマットを示す図である。ストリーム記述子２８は、本発明の好ましい実施例で使用できるストリームの異なるリプレゼンテーションの各々を記述することができる。ストリーム記述子２８は、サイズフィールド３０、タイプフィールド３２及び記述フィールド３４の３つのフィールドを含んでいる。サイズフィールド３０は、ストリームのサイズをバイトで指定する値を保持する。タイプフィールド３２は、ストリームのタイプを指定し、そして記述フィールド３４は、ストリームの記述を保持する。これらフィールド３０、３２及び３４に保持された値は、それに関連するストリームのリプレゼンテーションと共に変化する（以下で詳細に述べる）。
【００１１】
「極小のストリーム」は、本発明の好ましい実施例に使用できるストリームの第１のリプレゼンテーションである。この極小のストリームは、記憶媒体（即ち、ディスク記憶装置１６のディスク）の割り当て単位に対して非常にサイズの小さいデータを記憶するのに使用されるものである。記憶媒体の「割り当て単位」とは、ファイルを記憶するために割り当てられるディスク記憶装置１６のディスクメモリスペースの基本単位を指す。例えば、ＦＡＴベースのファイルシステムでは、最小割り当て単位はディスクセクタである。不都合なことに、このディスクセクタは、一緒に記憶されるべきデータよりも相当に大きいことがしばしばある。
【００１２】
図３は、極小のストリームに対するストリーム記述子２８のフォーマットを示している。サイズフィールド３０はストリームのサイズを指定する値を保持し、そしてタイプフィールド３２は、ストリームが極小のストリームであることを指定する。記述フィールド３４は、ストリームのデータを保持し、従って、ストリームのデータの即時リプレゼンテーションを与える。この即時リプレゼンテーションは、少量のデータを記憶するための非常に効率的な手段を形成する。特に、データは、ストリーム記述子に直接的に合体されて、容易に且つ速やかにアクセスできるようにされる。
【００１３】
本発明の好ましい実施例に使用できる別のリプレゼンテーションは、小さなストリームである。「小さなストリーム」とは、データの単一のイクステントで記憶されるストリームである。イクステントとは、割り当て単位の可変サイズの隣接した延びである。ストリームのデータは、ストリーム記述子に直接記憶するには大き過ぎるのでイクステントに記憶される。この小さなストリームに対するストリーム記述子２８のフォーマットが図４に示されている。タイプフィールド３２は、それに関連したストリームが小さなストリームであることを指定し、そして記述フィールド３４は、ストリームのデータが記憶されるイクステント４２を記述するイクステント記述子３６を保持する。イクステント４２は、ディスク記憶装置１６のディスクに記憶される。イクステント記述子３６は、２つのサブフィールド３８及び４０を含む。サブフィールド３８はイクステント４２の長さを指定する値を保持し、そしてサブフィールド４０は、イクステントのディスクアドレス（即ち、イクステントがディスクの論理アドレススペースのどこに位置しているか）を保持する。
【００１４】
本発明の好ましい実施例に使用できる第３のリプレゼンテーションは、「大きなストリーム」である。この大きなストリームは、多数のイクステントに記憶されるストリームである。この大きなストリームは、多量のデータを有するストリームを記憶するのに適している。図５は、このような大きなストリームに対するストリーム記述子２８のフォーマットを示している。タイプフィールド３２は、ストリームが大きなストリームであることを指定する。記述フィールド３４は、イクステント記述子を保持するストリーム４４を記述する第２のストリーム記述子４３を保持する。この第２のストリーム記述子４３は極小のストリームを記述し、そしてイクステント記述子のストリーム４４を保持する記述フィールド３４’を含んでいる。イクステント記述子３６’、３６”及び３６”’は、図４について述べたイクステント記述子３６と同じフォーマットを有する。その結果、単一のストリーム３４’によって多数のイクステント４２’、４２”及び４２”’が記述される。イクステント記述子の数があまりに多過ぎる場合には、第２のストリーム記述子４３は、極小のストリームではなくて小さなストリームを記述する。大きなストリームは、一般に、ディスクスペースの大きな隣接ブロックが得られない場合に使用される。この大きなストリームは、多量のデータをディスクに対して分散されたイクステントにおいて単一のストリームとして容易に記憶するものである。その結果、大きなストリームは、ディスクが更に細分化されそしてストリームが成長するときにも、良好にスケーリングされる。
【００１５】
ストリームのサイズが成長するときには、ストリームの効率的な記憶を容易にするために、ストリームのリプレゼンテーションがストリームリプレゼンテーションのハイアラーキを登るように促される。ハイアラーキは、極小のストリーム、小さなストリーム及び大きなストリームを含む。ストリームは、極小のストリームから小さなストリームへそして大きなストリームへと促進される。一般に、上記したように、ストリームに含まれたデータの量に基づいてストリームに最も適したリプレゼンテーションが選択される。
【００１６】
本発明の好ましい実施例に使用できる４つの基本的なストリームの形式を以上に説明した。ストリーム記述子２８のタイプフィールド３４は、ストリーム内に記憶されるデータの特殊な記述を指定するのにも使用できる。図６は、ストリームが圧縮データを保持するときのストリーム記述子２８のフォーマットの一例である。タイプフィールド３２は、ストリームのデータが圧縮されることを指定する値を保持し、一方、記述フィールド３４は、圧縮データに対するストリーム記述子を保持する。記述フィールド３４に保持されるストリーム記述子は、ストリームに含まれるデータの量に基づいて、極小のストリーム、小さなストリーム、又は大きなストリームである。
【００１７】
図７は、ストリーム記述子が暗号データのストリームを記述するときのストリーム記述子２８のフォーマットを示している。タイプフィールド３２は、ストリームが暗号データを保持することを指定する値を保持する。記述フィールド３４は、暗号データのためのストリーム記述子を保持する。又、ストリーム記述子は、暗号キーの値５０も含む。この暗号キーの値５０は、ストリームに記憶されたデータを暗号解読するのに使用できる。記述フィールド３４に保持された暗号データに対するストリーム記述子は、極小のストリーム、小さなストリーム、又は大きなストリームである。
【００１８】
データの特殊な記述を指定するようにタイプフィールド３２を使用する別の例が図８に示されている。図８は、小規模のトランザクションに対するストリーム記述子２８を示している。小規模のトランザクションとは、データベースのデータに対する変更が記録されるが、影響を受ける全てのデータの変更に関連したオーバーヘッドを被ることを保証するに充分な数の他の変更が生じるまでデータを直接的に変更しない場合を指す。タイプフィールド３２は、記述フィールド３４が小規模なトランザクションに対するデータを保持することを指定する。記述フィールド３４は、第１のストリーム記述子５２と、第２のストリーム記述子５４を保持する。第１のストリーム記述子５２は、データの元のストリームを記述する。第２のストリーム記述子５４は、元のストリームに対して行われた変更を指定するストリームを記述する。データの元のストリームは、第２のストリームに保持された変更を実施することによって更新される。
【００１９】
図９は、複製データを保持するストリームに対するストリーム記述子２８の例を示す。データのロスが破壊的な結果を招かないように、データをしばしば複製しなければならない。特に、システムが多数のコピーをディスクに維持するところの選択されたデータ構造体（ファイル記憶構造体）がある。このような場合に、データ構造体は、ディスク上の２つの異なる位置にコピーされる。ストリーム記述子２８は、第１のストリーム記述子５６と、第２のストリーム記述子５８をその記述フィールド３４に含んでいる。第１のストリーム記述子５６は、第１のデータコピーを保持する第１のストリームを記述し、そして第２のストリーム記述子５８は、別のデータコピーを保持する第２のストリームを記述する。タイプフィールド３２は、ストリームが複製データを含むことを指定する値を保持する。
【００２０】
以上の説明から、本発明は、ストリームデータを、そのストリームのサイズ及びディスクの状態に最良に対応するリプレゼンテーションで記憶することにより、ディスクに記憶されるファイルデータの内部分断を最小とする手段を提供することが明らかであろう。更に、割り当て単位のサイズについて前もって判断する必要はない。かくて、本発明はディスクにデータを効率的に記憶することを容易になし得る。
【００２１】
本発明を好ましい実施例について説明したが、特許請求の範囲に規定された本発明の範囲から逸脱せずにその形態及び細部に種々の変更がなされ得ることが当業者に明らかであろう。
【図面の簡単な説明】
【００２２】
【図１】本発明の好ましい実施例によるデータ処理システムのブロック図である。
【図２】本発明の好ましい実施例に用いられるストリーム記述子のフォーマットを示す図である。
【図３】本発明の好ましい実施例による極小のストリームに対するストリーム記述子の図である。
【図４】本発明の好ましい実施例による小さなストリームに対するストリーム記述子の図である。
【図５】本発明の好ましい実施例による大きなストリームに対するストリーム記述子の図である。
【図６】本発明の好ましい実施例による圧縮流に対するストリーム記述子の図である。
【図７】本発明の好ましい実施例による暗号流に対するストリーム記述子の図である。
【図８】本発明の好ましい実施例による小規模トランザクションに対するストリーム記述子の図である。
【図９】本発明の好ましい実施例による複製データに対するストリーム記述子の図である。
【符号の説明】
【００２３】
１０  データ処理システム
１２  中央処理ユニット
１４  メモリ
１６  ディスク記憶装置
１８  キーボード
２０  マウス
２２  ビデオディスプレイ
２４  オペレーティングシステム
２６  ファイルシステムマネージャ
２８  ストリーム記述子
３０  サイズフィールド
３２  タイプフィールド
３４  記述フィールド
３８、４０  サブフィールド
４２  イクステント
４３  第２のストリーム記述子
【図１】
2008152802.tif 000003
【図２】
2008152802.tif 000004
【図３】
2008152802.tif 000005
【図４】
2008152802.tif 000006
【図５】
2008152802.tif 000007
【図６】
2008152802.tif 000008
【図７】
2008152802.tif 000009
【図８】
2008152802.tif 000010
【図９】
2008152802.tif 000011
【手続補正書】
【提出日】平成20年4月2日(2008.4.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶装置を有するデータ処理システムのファイルシステムにおいて、前記ファイルシステムが、前記記憶装置上で前記ファイルシステムにより提供されるファイル記憶構造体へのファイルの記憶の管理を、ストリームに含まれるデータの量に基づいて行う方法であって、
（ａ）前記記憶装置上で所与のタイプの第１のストリームファイル記憶構造体に、割り当て単位の可変長連続ランであるイクステントに、前記ファイルの内容の少なくとも一部を記憶することと、
（ｂ）前記記憶装置上で前記第１のストリームファイル記憶構造体に対する第１のストリーム記述子を記憶することであって、前記第１のストリーム記述子は、記述フィールドおよびタイプフィールドを有し、
（ｉ）前記第１のストリーム記述子の記述フィールドに前記第１のストリームファイル記憶構造体の記述を記憶することと、
（ｉｉ）前記第１のストリームファイル記憶構造体のタイプを識別するタイプ識別子を前記第１のストリーム記述子のタイプフィールドに記憶することとを含む、第１のストリーム記述子を記憶することとを備え、
前記記述フィールドに第１のストリームファイル記憶構造体の記述を記憶することは、更に、前記記述フィールドに第２のストリーム記述子を記憶することを含み、前記第２のストリーム記述子は、前記第１のストリームファイル記憶構造体を記憶する複数のイクステントの複数の記述子を保持する第２のストリームファイル記憶構造体のアドレスを含み、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリームファイル記憶構造体が複数のイクステントに記憶されることを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする方法。
【請求項２】
前記記述フィールドに前記第１のストリームファイル記憶構造体の記述を記憶することは、更に、第３のストリーム記述子を前記第１のストリーム記述子の記述フィールドに記憶することを含み、前記第２のストリーム記述子及び前記第３のストリーム記述子は、異なるアドレスに記憶されるストリームの複製を記述するものであり、前記タイプフィールドにおける前記第１のストリームファイル記憶構造体のタイプ識別子は、更に、前記第１のストリーム記述子の記述フィールドが複製データを記述することを指定する識別子を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第２のストリーム記述子は、第２のストリームファイル記憶構造体の内容を記述し、
前記記述フィールドに第１のストリームファイル記憶構造体の記述を記憶することは、更に、前記第２のストリームファイル記憶構造体の内容に対する変更を指定する第３のストリームを記述する第３のストリーム記述子を前記第１のストリームファイル記憶構造体の記述フィールドに記憶することを含み、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリームファイル記憶構造体の記述フィールドが、前記第２のストリームファイル記憶構造体を記述する前記第２のストリーム記述子と、前記第２のストリームファイル記憶構造体の内容に対する変更に関する第３のストリームを記述する前記第３のストリーム記述子とを保持することを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記第２のストリーム記述子は、圧縮データのストリームを記述するものであり、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、前記第１のストリーム記述子の記述フィールドが圧縮データのストリームを記述する第２のストリーム記述子を保持することを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第２のストリーム記述子は、暗号データを保持する第２のストリームファイル記憶構造体を記述するものであり、および、前記タイプフィールドに前記第１のストリームファイル記憶構造体のタイプ識別子を記憶することは、更に、暗号データを保持する前記第２のストリームファイル記憶構造体を記述する前記第２のストリーム記述子を前記記述フィールドが保持することを指定する識別子を前記タイプフィールドに記憶することを含むことを特徴とする請求項１に記載の方法。
【請求項６】
ストレージファイルシステムを有するデータ処理システムにおいて、前記ファイルシステムによって提供される第１のストリームファイル記憶構造体を記憶して、第１ファイルの内容を保持し、前記ファイルシステムによって提供される第２のストリームファイル記憶構造体を記憶して、第２ファイルの内容を保持することの管理を、ストリームに含まれるデータの量に基づいて行う、前記ファイルシステムによって実行される方法であって、
（ａ）前記第１のストリームファイル記憶構造体を、タイプフィールドにタイプ識別子を含み前記第１のストリームファイル記憶構造体を記述する第１のストリーム記述子の一部分として記憶することと、
（ｂ）前記第２のストリームファイル記憶構造体を、割り当て単位の可変長連続ランであるイクステントに記憶することと、
（ｃ）前記第２のストリームファイル記憶構造体を記述する第２のストリーム記述子を記憶することであって、前記第２のストリーム記述子は、前記第２のストリームファイル記憶構造体が記憶されるイクステントを記述するイクステント記述子を含む、第２のストリーム記述子を記憶することとを備え、
前記第２のストリームファイル記憶構造体は、前記第１のストリームファイル記憶構造体を記憶する複数のイクステントの複数の記述子を保持し、および、前記第１のストリームファイル記憶構造体に記憶される前記タイプ識別子は、前記タイプフィールドにおいて、前記第１のストリームファイル記憶構造体が複数のイクステントに記憶されることを指定する識別子を含むことを特徴とする方法。
【請求項７】
ファイルシステムを提供するオペレーティングシステムと記憶装置とを有するデータ処理システムにおいて、前記ファイルシステムによって提供される第１のストリームファイル記憶構造体を記憶して、第１ファイルの内容を保持し、前記ファイルシステムによって提供される第２のストリームファイル記憶構造体を記憶して、第２ファイルの内容を保持することの管理を、ストリームに含まれるデータの量に基づいて行う、前記ファイルシステムによって実行される方法であって、
（ａ）前記第１のストリームファイル記憶構造体を、タイプフィールドにタイプ識別子を含み前記第１のストリームファイル記憶構造体を記述する第１のストリーム記述子の一部分として前記記憶装置に記憶することと、
（ｂ）ファイルデータの入った前記第２のストリームファイル記憶構造体を前記記憶装置の複数のイクステントに記憶することであって、前記複数のイクステントは割り当て単位の可変長連続ランによって形成されている、そのような複数のイクステントに記憶することと、
（ｃ）前記第２のストリームファイル記憶構造体を記述する第２のストリーム記述子を前記記憶装置に記憶することであって、前記第２のストリーム記述子は、前記第２ストリームファイル記憶構造体が記憶される複数のイクステントを記述する複数のイクステント記述子のストリームを記述する第３のストリーム記述子を含む、第２のストリーム記述子を記憶することとを備え、
前記第２のストリームファイル記憶構造体は、前記第１のストリームファイル記憶構造体を記憶する複数のイクステントの複数の記述子を保持し、および、前記第１のストリームファイル記憶構造体に記憶される前記タイプ識別子は、前記タイプフィールドにおいて、前記第１のストリームファイル記憶構造体が複数のイクステントに記憶されることを指定する識別子を含むことを特徴とする方法。
【請求項８】
ファイルシステムおよびディスク記憶装置を有するデータ処理システムにおいて、前記ディスク記憶装置内で、前記ファイルシステムによって提供される第１のストリームファイル記憶構造体を記憶して、第１ファイルの内容を保持し、前記ファイルシステムによって提供される第２のストリームファイル記憶構造体を記憶して、第２ファイルの内容を保持することの管理を、ストリームに含まれるデータの量に基づいて行う、前記ファイルシステムによって実行される方法であって、
（ａ）前記第１のストリームファイル記憶構造体を前記ディスク記憶装置の、割り当て単位の可変長連続ランであるイクステントに記憶することと、
（ｂ）タイプフィールドにタイプ識別子を含み前記第１のストリームファイル記憶構造体を記述する第１のストリーム記述子を前記ディスク記憶装置に記憶することであって、前記第１のストリーム記述子は、前記第１のストリームファイル記憶構造体が記憶される前記イクステントを記述するイクステント記述子を含む、第１のストリーム記述子を記憶することと、
（ｃ）前記第２のストリームファイル記憶構造体を前記ディスク記憶装置に保持された複数のイクステントに記憶することと、
（ｄ）前記第２のストリームファイル記憶構造体を記述する第２のストリーム記述子を前記ディスク記憶装置に記憶することであって、前記第２のストリーム記述子は、前記第２のストリームファイル記憶構造体が記憶される複数のイクステントを記述するための複数のイクステント記述子のストリームを記述する第３のストリーム記述子を含む、第２のストリーム記述子を記憶することとを備え、
前記第２のストリームファイル記憶構造体は、前記第１のストリームファイル記憶構造体を記憶する複数のイクステントの複数の記述子を保持し、および、前記第１のストリームファイル記憶構造体の前記タイプ識別子は、前記タイプフィールドにおいて、前記第１のストリームファイル記憶構造体が複数のイクステントに記憶されることを指定する識別子を含むことを特徴とする方法。
【請求項９】
前記ファイルシステムにより提供されるファイル記憶構造体へのファイルの記憶の管理を、ストリームに含まれるデータの量に基づいて行う、データ処理システムであって、
（ａ）記憶装置と、
（ｂ）
（ｉ）前記記憶装置に記憶されるファイルの内容を保持するストリームファイル記憶構造体の記述を、前記ストリームファイル記憶構造体に対するストリーム記述子の第１フィールドとして、
（ｉｉ）前記ストリームファイル記憶構造体を保持する複数のイクステントの複数のイクステント記述子のストリームを記述する第２のストリーム記述子を前記第１フィールドとして
前記記憶装置に記憶するための第１手段と、
（ｃ）タイプ識別子を、前記記憶装置における前記ストリーム記述子の第２フィールドとして前記記憶装置に記憶するための第２手段であって、前記タイプ識別子は、
（ｉ）前記ストリームファイル記憶構造体を前記記憶装置にどのように記憶するかを識別するものであり、
（ｉｉ）前記ストリームファイル記憶構造体が前記複数のイクステントに記憶されることを指定するものである、
そのような第２手段とを具備し、
前記第２のストリーム記述子は、前記第１のストリームファイル記憶構造体を記憶する複数のイクステントの複数の記述子を保持する第２のストリームファイル記憶構造体のアドレスを含み、および、前記タイプフィールドにおける前記第１のストリームファイル記憶構造体の前記タイプ識別子は、更に、前記タイプフィールドにおいて、前記第１のストリームファイル記憶構造体が複数のイクステントに記憶されることを指定する識別子を含むことを特徴とするデータ処理システム。
【請求項１０】
記憶するための前記第１手段は、前記ストリームファイル記憶構造体を前記ストリーム記述子の第１フィールドとして前記記憶装置に記憶し、記憶するための前記第２手段は、前記ストリームファイル記憶構造体が前記第１フィールドに記憶されることを指定するように前記タイプ識別子を前記第２フィールドに記憶することを特徴とする請求項９に記載のデータ処理システム。
【請求項１１】
記憶するための前記第１手段は、前記ストリームファイル記憶構造体を保持するイクステントを記述するイクステント記述子を、前記ストリーム記述子の第１フィールドとして前記記憶装置に記憶し、記憶するための前記第２手段は、前記ストリームファイル記憶構造体がイクステントに記憶されることを指定するように前記タイプ識別子を前記第２フィールドに記憶することを特徴とする請求項９に記載のデータ処理システム。