(57)【要約】      （修正有）【課題】  記憶システムにデータを保持するシステムと方法を提供する。【解決手段】アプリケーションプログラムは、記憶システムに、記憶システム上に格納されるべきデータを提供する。アプリケーションプログラムはまた、記憶システムに、データを削除できない期間を示す保持時間も提供する。記憶システムは、データ削除要求を受け取ると、まずそのデータに関連する保持時間を評価して、保持時間が終了したか否かを判定する。保持時間が終了していない場合、記憶システムはデータ削除要求を否定する。【選択図】図４
2005174339.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのホストと少なくとも１つの記憶システムとを有するコンピュータシステム上で実行された時に、
（Ａ）  ホストから、記憶システム上に格納されたデータユニットの削除要求を受け取ること；
（Ｂ）  データユニットの予め定義された保持時間が終了したか否かを判定すること；
（Ｃ）  行為（Ｂ）でデータユニットの保持時間が終了していないと判定された場合に、データユニットの削除要求を否定すること；
という行為から成る方法を実行する命令でコード化された、少なくとも１つのコンピュータ可読媒体。
【請求項２】
前記方法がさらに、
（Ｄ）  行為（Ｂ）でデータユニットの保持時間が終了していると判定された場合に、データユニットを削除すること；
という行為を含む、請求項１に記載の少なくとも１つのコンピュータ可読媒体。
【請求項３】
行為（Ａ）、（Ｂ）および（Ｃ）が記憶システムによって実行される、請求項１に記載の少なくとも１つのコンピュータ可読媒体。
【請求項４】
前記データユニットは、データユニットがいつ記憶システムに格納されたかを識別するタイムスタンプ情報を含み、行為（Ｂ）は該タイムスタンプ情報を調べることから成り、前記方法はさらに、少なくとも１つがタイムスタンプを作成する際に時間情報を使用できように、信頼性の高いソースから少なくとも１つのホストに時間情報を送ること；という行為を含む、請求項１に記載の少なくとも１つのコンピュータ可読媒体。
【請求項５】
少なくとも１つのホストと記憶システムとを有するコンピュータシステムで使用される記憶システムであって、
前記少なくとも１つのホストから受け取ったデータを記憶する、少なくとも１つの記憶装置；および
少なくとも１つのコントローラであって、
ホストから、記憶システム上に格納されたデータユニットの削除要求を受け取り、
データユニットの予め定義された保持時間が終了したか否かを判定し、
データユニットの保持時間が終了していないと判定した場合、データユニットの削除要求を否定する、
コントローラ；
を備えた記憶システム。
【請求項６】
前記少なくとも１つのコントローラは、データユニットの保持時間を指定する情報を受け取る、請求項５に記載の記憶システム。
【請求項７】
前記少なくとも１つのコントローラは、データユニットを受け取り、そのデータユニットを少なくとも１つの記憶装置に書き込む、請求項５に記載の記憶システム。
【請求項８】
少なくとも１つのホストと記憶システムとを有するコンピュータシステムで使用される記憶システムであって、
少なくとも１つのホストから受け取ったデータを記憶する、少なくとも１つの記憶装置；および
少なくとも１つのコントローラであって、
ホストから、少なくとも１つの要求内に指定された保持時間が少なくとも終了するまで
記憶システムがデータユニットを格納するよう要求する、該少なくとも１つの要求を受け取り、
データユニットを少なくとも１つの記憶装置に格納し、
保持時間を指定する情報を少なくとも１つの記憶装置に格納する、コントローラ；
を備えたシステム。
【請求項９】
少なくとも１つのホストと少なくとも１つの記憶システムとを含むコンピュータシステムにおいてデータを処理する方法であって、
（Ａ）  少なくとも１つの要求内に指定された保持時間が少なくとも終了するまで記憶システムがデータユニットを格納するよう要求する、少なくとも１つの要求を、ホストから記憶システムに送ること；
という行為を含む方法。
【請求項１０】
前記行為（Ａ）は、要求が送られた作成時間に少なくとも一部基づいて保持時間を指定する、少なくとも１つの要求を送ることから成り、前記方法はさらに、
（Ｂ）  前記少なくとも１つの記憶システムによって指定されたソースから、時間情報を受け取ること；
（Ｃ）前記生成時間を確立する際に該時間情報を使用すること；
という行為を含む、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ記憶装置に関し、より詳細にはデータ記憶システムにデータを保持する方法および装置に関する。
【背景技術】
【０００２】
病院、学校および政府機関を初めとする、事業所や他の機関は、電子形式で記録を保管するためにデータ記憶装置システムをよく使用する。そのような記録としては、例えば、会社の財務状況、電子メール（e-mail）、患者の医療カルテ、学生の成績証明書、および他のタイプのデータが挙げられる。そのような記録を生成した後、ある期間それらの記録をオリジナルの形式で保管しておくことは、事業所や機関にとって重要である場合がある。すなわち、事業所や機関は、ある期間が経過するまで、記録が削除または修正されないことを望む場合がある。例えば、病院は、患者のレントゲン写真をとった後、一定の数年間、そのレントゲン写真の修正や削除を防止したい可能性がある。さらには、データのそのような保持が、法律により義務づけられている可能性もある。例えば、証券取引委員会（ＳＥＣ）の規則１７ａ−４は、会社が特定の財務記録を６年間保管しておくことを要求している。
【０００３】
従来の記憶システムでは、ユーザがそのような記録を偶然削除または修正する恐れがある。あるいは、悪意のユーザが、例えば、悪質な商慣習を秘密にしたり、成績証明書を不正直に変更したりするために、故意に記録を削除または修正する恐れもある。偶然か故意かにかかわらず、そのような行為は回復不能なデータの損失を引き起こしたり、または法律違反さえ引き起こしたりする可能性がある。一部のコンピュータシステムは、ファイルが「読取専用」に指定されるファイルシステム・フロントエンド（記憶システムではなくホストコンピュータ上にあることが多い）を含んでいるが、システム管理者は、通常、ファイルを修正または削除できるよう、そのような「読取専用」ステータスを変更する能力を有している。さらに、従来のファイルシステムでは、データを削除または修正できない期間をユーザが指定できるようにはなっていない。すなわち、ファイル「読取専用」の指定は、ファイルの読取専用ステータスが変更されない限り、ファイルを削除または修正できないことを意味する。
【０００４】
一部の記憶システムは、データを上書きまたは修正できない記録媒体、例えば（ＣＤ−ＲＯＭ媒体を初めとする）光ディスクの上にデータを格納する。しかしながら、このようなシステムでは、データがひとたび書き込まれると媒体から削除できないため、データへのアクセスを防ぐためには媒体が物理的に破壊すればよいが、ユーザが保持時間を指定できるようにはなっていない。媒体上のデータを新しいデータに置き替えたい場合、そのような媒体は再使用できない。
【０００５】
１つの例証的実施形態は、少なくとも１つのホストと少なくとも１つの記憶システムとを有するコンピュータシステムにおいてデータを処理する方法である。方法は、（Ａ）ホストから、記憶システム上に格納されたデータユニットの削除要求を受け取ること；（Ｂ）データユニットの予め定義された保持時間が終了したか否かを判定すること；（Ｃ）行為（Ｂ）でデータユニットの保持時間が終了していないと判定された場合に、データユニットの削除要求を否定すること；という行為から成る。別の例証的実施形態は、コンピュータシステム上で実行された時に、このような方法を実行する命令でコード化された、少なくとも１つのコンピュータ可読媒体である。
【０００６】
さらなる例証的実施形態は、少なくとも１つのホストと記憶システムとを有するコンピ
ュータシステムで使用される記憶システムである。記憶システムは、少なくとも１つのホストから受け取ったデータを記憶する、少なくとも１つの記憶装置；および、少なくとも１つのコントローラであって、ホストから記憶システム上に格納されたデータユニットの削除要求を受け取り、データユニットの予め定義された保持時間が終了したか否かを判定し、データユニットの保持時間が終了していないことを判定した場合にデータユニットの削除要求を否定する、コントローラ；を備えている。
【０００７】
別の例証的実施形態は、少なくとも１つのホストと記憶システムとを含むコンピュータシステムで使用される記憶システムである。記憶システムは、少なくとも１つのホストから受け取ったデータを記憶する少なくとも１つの記憶装置；および、少なくとも１つのコントローラであって、ホストから少なくとも１つの要求内に指定された保持時間が少なくとも終了するまで記憶システムにデータユニットを記憶する、少なくとも１つの要求を受け取り、少なくとも１つの記憶装置にデータユニットを格納し、少なくとも１つの記憶装置に保持時間を指定する情報を格納する、コントローラ；を備えている。
【０００８】
さらなる例証的実施形態は、少なくとも１つのホストと少なくとも１つの記憶システムとを有するコンピュータシステムにおいてデータを処理する方法である。方法は、（Ａ）少なくとも１つの要求内に指定された保持時間が少なくとも終了するまで記憶システムがデータユニットを格納するよう要求する、少なくとも１つの要求を、ホストから記憶システムに送ること；という行為を含む。
【０００９】
別の例証的実施形態は、少なくとも１つのホストと少なくとも１つのコンテンツ・アドレス記憶システムとを有するコンピュータシステムで使用される方法であって、該記憶システムはデータブロブと該ブロブに対応するコンテンツ記述子ファイル（ＣＤＦ）とを含む少なくとも２つの異なるタイプのデータユニットを格納し、各ＣＤＦは対応するブロブに関するメタデータを有し、ブロブおよびＣＤＦの各１つは、ブロブおよびＣＤＦのうちの一つのコンテンツに基づいて生成された識別子を用いて少なくとも１つのホストコンピュータにアクセス可能である方法である。方法は、（Ａ）識別されたデータユニットがブロブであるかＣＤＦであるかを各データユニットが識別するための少なくとも１つの情報を識別子中に提供すること；という行為を含む。
【００１０】
さらなる例証的実施形態は、少なくとも１つのホストと少なくとも１つのコンテンツ・アドレス記憶システムとを有するコンピュータシステムでデータを処理する方法であって、該記憶システムはデータブロブと、該ブロブに対応し該ブロブによってブロブ／ＣＤＦを形成するコンテンツ記述子ファイル（ＣＤＦ）と、を含む少なくとも２つの異なるタイプのデータユニットを格納し、ＣＤＦは対応するブロブに関するメタデータを有し、ブロブおよびＣＤＦの各１つは、ブロブおよびＣＤＦのうちの一つのコンテンツに基づいて生成された識別子を用いて少なくとも１つのホストコンピュータにアクセス可能であり、記憶システムが、ブロブが対応ＣＤＦを有しないように、対応ＣＤＦが削除された後にのみブロブを削除する不要データ領域収集ユーティリィティ（garbage collection utility）を実行する、方法である。方法は、ブロブ／ＣＤＦの組のうちのブロブまたはＣＤＥの少なくとも１つの削除に対する少なくとも２つの選択肢をホストに提供することであって、該２つの選択肢は、どれだけ多くの削除処理が削除要求に応じて予め実行され、どれだけ多くの削除処理が不要データ領域収集ユーティリィティに残されるかについて異なっていること；いう行為を含む。
【発明を実施するための最良の形態】
【００１１】
例えば、本発明の様々な実施形態は、データ操作を行なうために通信する記憶システムおよびホストコンピュータを有するコンピュータシステムで使用される、方法および装置である。例えば、記憶システムは、ホストコンピュータからのデータ記憶要求に応じてデ
ータを格納し（書込み）、ホストコンピュータからの記憶データを求める要求に応じて記憶データを返し（読み出し）、ホストコンピュータからのデータ削除要求に応じて記憶データを削除する。
【００１２】
１実施形態では、ホストコンピュータ（本明細書では記憶システムにデータを書き込むことが可能な任意のコンピュータとして定義する）は、記憶システムに、格納されるべきデータと、その格納されるべきデータに関連する保持時間とを提供し得る。保持時間は、例えば、データを削除または修正することができない期間を定義し得る。記憶システムは、データおよびその関連保持時間とを格納し得る。記憶システムがのちにデータの削除または修正要求をホストコンピュータから受け取った場合、記憶システムはまず、データに関連する格納された保持時間を評価して、保持時間が終了しているか否かを判定する。保持時間が終了していない場合、記憶システムはデータを削除または修正しないであろう。このように、ひとたびデータユニットに対して保持時間が確立されると、記憶システムは、データユニットが十分な保持時間未修正状態で保持されることを保証する。
【００１３】
本発明の様々な実施形態を実装可能な例証的なシステムを図１に示す。図１は、ネットワーク１０３を通じて複数のホスト１０５ａ，１０５ｂ，…１０５ｎと通信する記憶システム１０１を示す。本明細書に使用する場合、「ネットワーク」（例えばネットワーク１０３）は、情報を装置間で交換可能にする１または複数の送信媒体セグメントによって相互接続された２つ以上の装置のグループである。各セグメントは、１または複数の電線または光ファイバ、金属および／または光ファイバより形成されたケーブル、空気（例えば搬送波での無線送信の使用）またはこれらの送信媒体の任意の組み合わせを含む、複数のタイプの送信媒体のいずれであってもよい。
【００１４】
記憶システム１０１は、コンピュータシステムにアプリケーション、アプリケーションデータ、ユーザデータおよびそれらと同種のものを格納するための、１または複数の記憶装置（例えばディスクドライブ）を有する。記憶システム１０１は、データを格納し、検索し、記憶システム１０１上に格納された該データに操作を実行するためにホスト１０５によってアクセスされる。記憶システム１０１はデータを記憶するために主として使用される装置であってもよいが、ユーザアプリケーションを実行する等の様々な他の機能を行なう装置であってもよい。すなわち、記憶システム１０１はデータを格納および検索することが可能ないかなる装置であってもよい。
【００１５】
ホスト１０５は、例えば、資源（例えば記憶データ、電子メールおよび他のサービス）を提供するサーバ、クライアント（例えばユーザによって操作される汎用コンピューターシステム）、ネットワークコンポーネント（例えばスイッチ）または他のタイプのコンピュータであってよい。ホスト１０５が記憶システム１０１を使用してデータを記憶および検索できるよう、ホスト１０５はネットワーク１０３により記憶システム１０１に結合される。
【００１６】
図１に示した記憶構成は、本発明のいくつかの態様を実装可能なシステムのタイプの例にすぎず、本発明はいかなる特定のタイプのシステム構成での使用にも限定されない。例えば、一つの記憶システムに多数のホストが接続されている必要はなく、ネットワークに加えて、あるいはネットワークの代わりに、多くの他のタイプの接続のうちの任意のもの（例えば直接接続）を使用してもよい。
【００１７】
ホスト１０５は多くの方法のうちのいかなる方法で記憶システム１０１上のデータにアクセスしてもよく、本明細書で説明する本発明の態様はいかなる特定のタイプのシステム構成にも限定されない。例えばあるコンピュータシステムでは、ホスト１０５上で動いているアプリケーションプログラムが、（例えばホスト１０５上で動く）ファイルシステム
によって管理されたファイルに情報を格納する。ファイルシステムは、ファイルへのデータ格納のため、１または複数の論理ボリュームおよび記憶ブロックに個々の特定ファイルの名前をマッピングする。論理ボリュームは、記憶システム１０１上に提供された物理的記憶装置に直接対応してもよいし、または、記憶システム１０１がインテリジェント記憶システムである場合、記憶システムはホスト１０５に提示された論理ボリュームと記憶システム１０１内の実際の物理的記憶装置との間で別のマッピング層を実行してもよい。
【００１８】
以下に説明する本発明の１実施形態は、本願と同一の出願人に譲渡された同時係属出願である、いずれも援用により本明細書に組み込まれる１９９９年１月２１日に出願された出願番号０９／２３６，３６６号、発明の名称「コンテンツ・アドレスデータのカプセル化、表現、および転送（Access to Content Addressable Data Over A Network ）」、１９９９年１月２１日に出願された出願番号第０９／２３５，１４６号、発明の名称「ネットワークを介したコンテンツ・アドレスデータへのアクセス(Access to Content Addressable Data Over A Network) 」、１９９９年９月７日に出願された出願番号第０９／３９１，３６０号、発明の名称「コンテンツ・アドレス情報の高セキュリティな格納、転送、および検索のためのシステムおよび方法(System and Method for Secure Storage, Transfer and Retrieval of Content Addressable Information) 」に説明されているタイプのコンピュータシステムへ使用するよう適合されている。これらの出願は、コンテンツ・アドレスの記憶（Content Address Storage,  ＣＡＳ）に関し、包括的に「ＣＡＳ出願」と称することにする。
【００１９】
コンテンツ・アドレス・システムでは、データは、データのコンテンツ自体に基づいて生成されたコンテンツ・アドレスを使用して格納される。コンテンツ・アドレスは、格納されるべきデータにハッシュ関数を適用することにより生成され得る。ハッシュ関数の出力は、データを参照するためにホストと記憶システムとの間の通信で使用され得るコンテンツ・アドレスである。コンテンツ・アドレスは、記憶システム内の１または複数の物理的記憶位置にマッピングすることができる（例えば記憶システム１０１内）。コンテンツ・アドレス指定の使用は、上述したような多くのタイプの記録のように、格納されたデータが変化しない（すなわち固定コンテンツデータ）用途に特に適する。
【００２０】
コンテンツ・アドレスを生成するために使用され得るハッシュ関数の一例は、メッセージダイジェスト５（ＭＤ５）である。コンテンツ・アドレスは、コンテンツのハッシュ結果に直接相当してもよいし、アドレスを生成するために追加情報をハッシュ結果に加えてもよい。一実施形態では、コンテンツ・アドレスを生成するために、格納されているコンテンツがホストデータであるか、ホストデータに関連するメタデータであるかを説明する情報が、コンテンツのハッシュに加えられる。この追加情報は以下に説明するように有用である。任意のタイプのハッシュ関数を使用してもよく、本明細書で説明する本発明のいくつか態様は、いかなるタイプのハッシュ関数の使用に限定されることもないし、またはコンテンツ・アドレス・システムでの使用に限定されることもない。
【００２１】
データが記憶システムに格納されるよう、ホストがデータを記憶システムに送ると、ホストおよび記憶システムはいずれも別々にデータのコンテンツ・アドレスを計算し得る。ホストは、記憶システムからデータを検索すべく将来使用するために、そのコンテンツ・アドレスを保持してもよい。代わりに、ホストがデータを記憶システムに送ると、記憶システムだけがコンテンツ・アドレスを計算し、データへのアクセスに将来使用するために、計算されたコンテンツをホストに返してもよい。さらに別の代替形態では、記憶システムおよびホストがいずれもコンテンツ・アドレスを計算し、記憶システムがその生成されたコンテンツ・アドレスをホストに返してもよい。ホストは、その別々に計算されたコンテンツ・アドレスを、記憶システムから受け取ったコンテンツ・アドレスと比較し、それらが一致することを確認することができる。
【００２２】
上述したように、患者のレントゲン写真や会社の財務記録を初めとするいくつかの固定コンテンツデータタイプの場合、データをそのオリジナルの形式（すなわちひとたびデータが記憶システムに格納されるとデータの修正を許可すべきでないことを意味する）で保持することが望まれることがある。上記に参照したＣＡＳ出願に使用される本発明の１実施形態では、それらの出願で説明されているコンテンツ・アドレス指定方式の特性を使用して、先に書き込まれたデータへの修正を防止することができる。この特性を、図２に概念的に例証する。図２は、ホストがオリジナル・データ２０１を記憶システム上に格納する場合に、オリジナル・データのためのコンテンツ・アドレス２０５がハッシュ関数２０３によって生成されることを示している。ホストはこの後、コンテンツ・アドレス２０５を使用して、記憶システムからデータのコピーを検索する。ホストがデータを修正し、かつ修正済データ２０７として記憶システムにそれを再度書き込みたい場合、新しいコンテンツ・アドレス２０９が、ハッシュ関数２０３によって修正済データに対して生成される。オリジナル・データ２０１と修正済データ２０７は異なるため、ハッシュ関数２０３はデータ２０１およびデータ２０７に対して異なるコンテンツ・アドレスを生成するだろう。その結果、コンテンツ・アドレス２０５および２０９は、記憶システムの記憶装置の異なる物理的位置にマッピングされるだろう。したがって、ホストが記憶システムに修正済データ２０７を格納する場合、修正済データ２０７はオリジナル・データ２０１とは異なる位置に格納され、オリジナル・データを上書きしない。したがって、オリジナル・データ２０１は記憶システム上で未修正のままである。
【００２３】
いったん書かれたデータの修正を防止する本発明の実施形態は、コンテンツ・アドレス・システムに関しての使用に限定されるわけではなく、以前に書き込まれたデータの修正を防止する他のタイプのアドレス指定スキームを使用する代替技術をシステムに使用してもよい。例えば、ホストおよび／またはファイルシステムは、以前に書かれたデータへの書き込みを排除し、いかなる修正済データが異なる記憶位置にマッピングされるように要求してもよい。
【００２４】
上述したように、データ修正の防止に加えて、予め定義された保持時間の終了前のデータ削除を防止することも望ましいことがある。本発明の１実施形態は、データが予め指定された保持時間の間削除できないことを保証する技術である。上述したように、本発明の１実施形態は、ＣＡＳ出願で説明されているアーキテクチャに関して使用することができる。図３はそのアーキテクチャに従ってデータを格納する様式を例証する。
【００２５】
ＣＡＳ出願に定義されているアーキテクチャのデータユニットは、ブロブと称する（例えばブロブ３０３）。ブロブ３０３は、例えば、ホスト（例えば図１のホスト１０５）によって記憶システム（例えば記憶システム１０１）に格納される２進データであってよく、例えば、患者のレントゲン写真、会社の財務状況、または他のタイプのデータである。ブロブ３０３がコンテンツ・アドレス記憶システムに格納されると、その内容に基づいてブロブ３０３に対して固有のアドレスが上述の様式で生成される。
【００２６】
各ブロブ３０３は、それに関連する少なくとも１つのコンテンツ記述子ファイル（ＣＤＦ）を有する。ＣＤＦ  ３０１は、メタデータ３０５および複数の参照３０７ａ、３０７ｂ、…３０７ｎを含み得る。ＣＤＦは１または複数のブロブまたはＣＤＦを参照してよい。したがって、参照３０７は、例えば、ＣＤＦ  ３０１によって参照されるブロブおよび／またはＣＤＦへの参照であってよい。メタデータ３０５は、例えば、ＣＤＦ  ３０１の作成日（例えばＣＤＦ  ３０１が記憶システムに格納された日付）およびブロブ３０３のコンテンツの記述を含み得る。本発明の１実施形態によれば、メタデータは、関連ブロブ３０３に関する保持時間を指定する情報をさらに含む。保持時間は、例えば、その間ブロブ３０３およびＣＤＦ  ３０１を削除してはいけない、ブロブ３０３および／またはＣＤ
Ｆ  ３０１の作成日からの期間として指定される。したがって、例えば、ＣＤＦ  ３０１に含まれている保持時間が２年である場合、記憶システムは、ＣＤＦ  ３０１のメタデータ３０５に含まれている作成日から２年間、ＣＤＦ  ３０１とブロブ３０３の削除を許可しない。
【００２７】
本発明の１実施形態によれば、メタデータ３０５に定義される保持時間は、ＣＤＦ  ３０１に直接的に関連するが、ブロブ３０３には間接的にのみ関連する。本発明のこの態様は、ホストがブロブ３０３を直接削除することはできず（すなわちそのような要求は否定される）、ＣＤＦ  ３０１のみを削除することができ、削除するものとして識別されたブロブを一掃する、不要データ領域収集ユーティリィティ（以下により詳細に説明する）が記憶システムで使用されている、システムアーキテクチャでの使用に適合される。あるブロブを参照するＣＤＦがなければ、そのブロブは削除するものとして識別され得る。これに関して、本アーキテクチャの１態様は、ブロブが少なくとも１つのＣＤＦ  ３０１によって参照される限り、そのブロブは削除できないが、ＣＤＦによって参照されていないブロブはいかなるものでも削除できるというものである。
【００２８】
本発明は上述のアーキテクチャを有するシステムでの使用に限定されるわけではなく、上述のアーキテクチャの特徴の多くは実装のための詳細事項にすぎない。いずれも本発明の実行には必要ではない。例えば、ＣＤＦに対してだけに保持時間を定義するのではなく、代わりに、ブロブのために直接保持時間を定義してもよい。ブロブがそれ自体保持時間を有している場合、ホストコンピュータは、保持時間が終了したブロブを直接削除することが可能だろう。
【００２９】
メタデータ３０５に含まれているブロブ３０３の記述は、ブロブ３０３の内容について記述する情報を含み得る。例えば、ブロブ３０３がレントゲン写真である場合、メタデータ３０５は、患者の名前、レントゲン写真によって撮ったデータ、Ｘ写真または患者に関する医師による追加のメモ、もしくは他の情報等の情報を含み得る。上記に与えたメタデータのタイプは、ＣＤＦ  ３０１のメタデータ３０５に含まれ得るメタデータのタイプの例にすぎない。実際、ブロブ３０３に関連するいかなるデータがデータ３０５に含まれていてもよく、本発明はこれに関して限定されない。
【００３０】
ＣＤＦ  ３０１はさらに、１または複数の参照３０７を含んでもよい。これらの参照は、例えば、ブロブまたは他のＣＤＦへの参照である。例えば、参照３０７ａはブロブ３０３のコンテンツ・アドレスまたはファイルシステム位置を含むため、ＣＤＦ  ３０１は参照３０７ａを通じてブロブ３０３を「ポイント」する。従って、ＣＤＦ  ３０１のコンテンツの読み取りによってブロブ３０３のコンテンツ・アドレスまたはファイルシステム位置が提供されるため、ブロブ３０３へはＣＤＦ  ３０１のコンテンツ・アドレスまたはファイルシステム位置を使用してホストによりアクセス可能である。図示された実施形態では、ＣＤＦ  ３０１は、それ自体を「ポイント」する参照３０７ｂも含む。すなわち、参照３０７ｂは、ＣＤＦ  ３０１のコンテンツ・アドレスまたはファイルシステム位置を含んでいる。この循環的参照は、以下により詳細に説明する不要データ領域収集プロセスの１実施形態を促進するために提供される。しかしながら、本発明はそのような不要データ領域収集プロセスの使用や、各ＣＤＦでの循環的参照の使用に限定されず、他の実施形態も可能である。ＣＤＦ  ３０１は、他のＣＤＦまたはブロブを「ポイント」する複数の他の参照を含んでもよく、その結果、参照されたＣＤＦまたはブロブへはＣＤＦ  ３０１のコンテンツ・アドレスを使用してアクセス可能である。
【００３１】
図３の例では、ブロブ３０３を「ポイント」する１つのＣＤＦだけ（すなわちＣＤＦ  ３０１）を示したが、複数のＣＤＦが同じブロブへの参照を含んでいてもよい。すなわち、２つ以上のＣＤＦが同じブロブを「ポイント」してもよい。複数のＣＤＦが同じブロブ
への参照を含んでいる場合、そのような複数のＣＤＦは、異なる作成日および／または異なる保持時間を含む、異なるメタデータを含んでいてもよい。例えば、ブロブを「ポイント」するあるＣＤＦは、２００３年７月１５日の作成日から２年の保持時間を指定し、第２のＣＤＦは、同じ作成日から３年の保持時間を指定してもよい。本発明の１実施形態によれば、記憶システムは、保持時間のうちの最長のものを施行し得る。したがって、２００５年７月１５日に、記憶システムは、第１のＣＤＦの削除は許可するが、第２のＣＤＦまたはそれらによって参照されたブロブの削除は許可しない。しかしながら、２００６年７月１５日には、記憶システムは、第１のＣＤＦ（まだ削除されていなければ）および第２のＣＤＦの削除を許可し、従ってブロブの不要データ領域収集（garbage collection）を許容するだろう。
【００３２】
ブロブに指定された最長の保持時間を使用する本発明のこの実施形態は、より短い保持時間を指定するブロブのための新しいＣＤＦを単に作成することだけではユーザが先に特定した保持時間を回避することができないことを保証するために、そのようになっている。このブロブのための最長の保持時間は、本発明の１実施形態では、任意のＣＤＦによって参照されている限りブロブを削除できない上述の実施形態によって強制実行される。しかしながら、最長の定義保持時間の強制実行に関する本発明の態様はそのような実施形態に限定されるわけではなく、他の技術も可能である。
【００３３】
ホストが記憶システムにブロブを格納する場合、ホストは以下に詳述するように、記憶システムにブロブと該ブロブに関連するＣＤＦとを提供し得る。ホストは、ＣＤＦにアクセスするためにＣＤＦのコンテンツ・アドレスを使用し、それによってブロブ・メタデータおよびそれに含まれる参照にアクセスすることができる。その後、ホストは、ブロブ（データ）自体にアクセスするためにＣＤＦから得られたブロブ参照（すなわちブロブのコンテンツ・アドレスまたはファイルシステム位置）を使用し得る。代わりに、ブロブを書き込んだ後、ホストは、ブロブのコンテンツ・アドレスを保持し、このコンテンツ・アドレスを使用してブロブに直接アクセスしてもよい。
【００３４】
ブロブが作成された後、それを参照する１または複数の追加のＣＤＦが作成され得る。例えば、これは、ブロブに追加のメタデータを関連させることが望まれている場合に、メタデータがブロブの保持時間を増加させるか、または該ブロブに関連する追加の記述情報を加えることように、行われ得る。そのような追加ＣＤＦは、第１のＣＤＦ、ブロブ自体、または両方を参照してもよい。
【００３５】
上述の例では、保持時間を、ＣＤＦの作成日からの期間（年）として指定した。しかしながら、保持時間をより細かい精度で指定してもよいことは理解されよう。例えば、保持時間は、年、月、日、時間、分、秒またはこれらの（または任意の他の）時間の長さの任意の組み合わせで指定してもよい。さらに、保持時間は、必ずしもＣＤＦの作成日からの期間として指定する必要はない。例えば、保持時間はＣＤＦおよび参照ブロブを削除し得る時の日付および／または時間として指定してもよい。以下に詳述する１実施形態では、保持時間を、特定のイベントの発生からの期間として指定し得る。
【００３６】
上述したように、ホストが記憶システムに記憶するためにＣＤＦを作成する場合、ホストはＣＤＦのコンテンツに含まれている保持時間を指定してもよい。保持時間は、ＣＤＦの作成日からの期間として指定され得る。１実施形態では、記憶システムは、ホストが特定の保持時間の終了より前にデータを削除できないことを保証するために、保持時間に対するコントロール能を保持しようとする。したがって、保持時間がＣＤＦの作成日に基づいている場合、ホストが不正確な作成日をなりすまして作成するのを防止してデータに課されている保持時間を回避するために、作成日の基礎を高信頼記憶システムのクロックにおくことが望ましい。例えば、２００３年９月１５日には、ＣＤＦは２年の保持時間で格
納される。したがって、ＣＤＦの意図された満了日は２００５年９月１５日である。しかしながら、ホストが２００２年９月１５日の作成日のタイムスタンプをなりすましてＣＤＦに作成した場合、ＣＤＦはＣＤＦの意図された満了日の１年前の２００４年９月１５日に終了するだろう。したがって、本発明の１実施形態によれば、ＣＤＦ中の作成日タイムスタンプがＣＤＦの実際の作成日を正確に反映していることを記憶システムが保証することを許容する技術が使用される。これは任意の多くの方法で行うことができ、記憶システムを有する本発明の態様は、記憶データの作成日が以下に説明する特定の実施形態に限定されないことを保証する。
【００３７】
１実施形態では、ホストによって提供される作成日タイムスタンプの正確さを保証するために、ホストに、記憶システムに書き込まれたデータの作成日の正確さの保証を支援する、記憶システムとインタフェースするアプリケーション・プログラム・インターフェイス（ＡＰＩ）が提供される。１実施形態では、ホストＡＰＩは、記憶システムと通信して記憶システムから現在の時間を取得し（例えば記憶システムのクロックまたは記憶システムによって信頼された任意のソースから）、記憶システムのクロックからの現在時刻を、ホストにおける（例えばホスト・クロックにおける）現在時刻と比較する。この比較結果から、ホストは、記憶システム・クロックとホスト・クロックとの間の時間差を示すデルタ値を決定する。記憶システム・クロックに関する情報は、任意の多くの方法でホストに伝えられ得る。１実施形態では、記憶システムがホストへ情報を送るときは常に、記憶システム・クロックからの現在時刻がその情報に加えられる。したがって、ホストが記憶システムから情報を受け取るたびに、ホストは記憶システムから受け取った現在時刻を、ホスト・クロックによる現在時刻と比較し、それに応じてデルタ値を更新し得る。ホストがＣＤＦを作成し、それを記憶のために記憶システムに送る場合、作成日タイムスタンプは、ホスト・クロックによって指定された現在時刻にデルタ値を加えることにより、ＣＤＦへ書き込まれる。その結果、記憶システムは、自身のクロックに基づいて作成日を確認することができる。
【００３８】
１実施形態では、作成日タイムスタンプがＣＤＦへ書き込まれる前に、ホストはデルタ値が妥当な期間内にチェックされたことを確認する。例えば、ホストが最近の１０秒以内に記憶システム・クロックを受け取っていない場合、ホストは、ＣＤＦに日付タイムスタンプを作成する際に使用する現在時刻を、記憶システムに直接問い合わせてもよい。
【００３９】
本発明の１実施形態では、記憶システムは、ホストからＣＤＦを受け取ると、ＣＤＦの作成日を任意選択で確認してもよく、これによるとデータの偽生成時間をホストがなりすまして書き込もうとすることから一層の保護が図れる。すなわち、記憶システムは、ＣＤＦ中の作成日タイムスタンプを、書き込みリクエストが記憶システムで受け取られた時と比較し得る。それらの２つが妥当な許容範囲（例えば１０秒）内で一致しない場合、記憶システムはＣＤＦを記憶する要求を拒否し得る。この許容範囲は任意の適切な方法で定義してもよく、本発明のこの態様はいかなる点でも限定されない。例えば、許容範囲は、ＣＤＦの作成日タイムスタンプと記憶システム・クロックによる時間との間の差が超えてはいけない閾値を指定し得る。許容範囲は、例えば、１０秒のような固定期間であってもよいし、または他の妥当な期間であってもよい。代わりに、許容範囲はＣＤＦの保持時間に比例していても良く、ＣＤＦの保持時間が小さい場合には許容範囲は小さく、保持時間が大きい場合には許容範囲は比較的大きくなっていてもよい。いかなる適切な関数が保持時間の長さと許容範囲の関係を定義するために使用されてもよく、本発明はこの点で限定されない。
【００４０】
上述したように、本発明の１実施形態によれば、ホストはブロブを直接削除することができない。この実施形態によれば、ブロブを直接削除するホストからの要求は、それがいかなるものであっても記憶システムによって拒絶されるだろう。本発明の１実施形態によ
れば、記憶システム上に格納されたデータユニットがブロブであるかＣＤＦであるかを識別し、削除要求がブロブに対するものであり該要求を否定すべきか、削除要求がＣＤＦに対するものであり以下に説明する特定の状態を受けることを許可し得るかを区別する、技術が使用される。本発明のこの態様は、任意の多くの方法で実装可能である。
【００４１】
本発明の１実施形態によれば、記憶システムで記憶される任意のデータユニットに対するコンテンツアドレスは、ハッシュに加えて上述の様式でデータユニットのコンテンツから生成された、少なくとも１ビットを含み、そのような追加のビットはコンテンツ・アドレスに関連するデータがブロブであるかＣＤＦであるかを識別するために使用される。このように、ホストがデータユニットへのアクセスを求めている場合、提供されたコンテンツ・アドレスは、記憶システムに対し、データユニットがブロブであるかＣＤＦであるかを識別し、記憶システムは、この情報を使用して、そのような削除要求を様々に処理することができる。これに関し、ブロブに向けられた削除要求は否定され、ＣＤＦに向けられた削除要求は、図４に関して以下に説明する様式で取扱われるだろう。
【００４２】
本発明の１実施形態によれば、コンテンツ・アドレスは記憶システム自体によって生成され、ホストに返される。これに関し、記憶システムはコンテンツ・アドレスを生成するために上述の技術を使用する。記憶システムは、そのようなアドレスを真に生成するため信頼性の高いソースである。コンテンツ・アドレスを記憶システムによって生成することで、ホストが例えばコンテンツデータ（すなわちブロブ）を偽ってＣＤＦとして識別し、それをのちに直接削除することにより、記憶システムになりすますことができないことが保証される。これに関して、本発明の１実施形態は、記憶システムに接続しているホストの挙動とは無関係に、保持ポリシーを確実に実装する厳しい要件を満たし得る記憶システムを提供することにある。そのような環境の例は、記述された期間の間財務記録を保管するための、ＳＥＣ規則１７ａ−４要件を満たす記憶システムを提供することである。
【００４３】
図４は、本発明の１実施形態による記憶システムからＣＤＦを削除する要求を処理するプロセスを例証するフローチャートである。このプロセスは、記憶システム自体により実行してもよいし、またはホストと記憶システムとの間のインタフェースを提供する別のコンピュータにより実行してもよい。プロセスは、ＣＤＦを削除するために記憶システムで要求を受け取る行為４０３から始まる。上述したように、要求は、例えば、そのコンテンツ・アドレスによりＣＤＦを識別し得る。本発明の１実施形態では、削除要求の主体が実際にＣＤＦであることを確実にするための技術が使用される。そのようなステップは、図４で示されるプロセスを開始する前に行なってもよいし、または代わりに、追加の検証ステップを実行し、要求がＣＤＦに対するものでない場合に該要求を否定することにより、プロセスに組み込んでもよい。要求を受け取った後、プロセスは行為４０５に進み、ＣＤＦが記憶システムから読み出される。その後、プロセスは行為４０７に進み、ＣＤＦのメタデータを検査し、保持時間を評価して、保持時間が終了したか否かを判定する。保持時間が既に終了している場合、記憶システムは行為４０９でＣＤＦを削除し、次に、行為４１３で終了する。以下により詳細に説明するように、ＣＤＦの削除はいくつかの異なる方法で行ない得る。上述したように、ＣＤＦの削除によって、以下により詳細に説明する様式でＣＤＦによって参照された任意のブロブも（間接的に）削除され得る。保持時間がまだ終了していないことが行為４０７で判定されると、プロセスはＣＤＦの削除要求を否定する。記憶システムは任意選択でリクエスタ（例えばホスト）にエラーメッセージを返すことも可能である。その後、プロセスは行為４１３で終了する。
【００４４】
ＣＤＦとブロブに関する情報は任意の適切な様式で格納することができ、本発明は任意の特定の実施技術に限定されない。本発明の１実施形態によれば、そのような情報は、非構造的可変長記録での使用に適したデータベースのテーブルに格納される。各ブロブおよびＣＤＦは、例えばブロブまたはＣＤＦのコンテンツ・アドレス、ブロブまたはＣＤＦを
参照する（またはポイントする）任意のＣＤＦのコンテンツ・アドレス、あるいは、ブロブまたはＣＤＦを格納する物理的記憶位置（例えばディスク）、生成タイムスタンプ、ブロブまたはＣＤＦの任意のミラーの物理的記憶位置等を初めとする他の情報を格納する、関連テーブルを有し得る。ＣＤＥのための参照テーブルはどのブロブをＣＤＦがポイントするかを識別するエントリを含んでいる必要はない。その理由は、ＣＤＦのコンテンツがそれ自体でそのような情報を含んでいるためである。参照テーブルは、不要データ領域収集プロセスで使用される参照数を含み得る。参照数は、どれだけ多くのＣＤＦが特定のブロブまたはＣＤＦを参照するかを示し得る。例えば、不要データ領域収集機構(garbage collector) は、ＣＤＦが特定のブロブまたはＣＤＦを参照するか否かを判定するために、特定のブロブまたはＣＤＦに関連する参照数を検討してもよい。ブロブまたはＣＤＦが参照されていない場合、不要データ領域収集機構はそれを削除してもよい。他の多くのタイプの情報をテーブルに格納することができ、本発明はこれに関して限定されない。テーブル全体を一つの記憶システム上の一つの位置に格納する必要はなく、テーブルの複数の部分が１または複数の記憶システムの異なる位置に分配されてもよい。さらに、すべてのブロブおよびＣＤＦに対するテーブルを格納するのに一つデータベースを使用する必要はなく、データベーステーブルを全く使用しないものを含めて、いかなる適切な構成も使用し得ることを理解すべきである。
【００４５】
以上から理解されるように、本発明の実施形態は、ＣＤＦがデータのブロブだけでなく他のＣＤＦもポイントし得るシステムに使用し得る。このアーキテクチャは格納された情報の階層を形成する際に有用である。例えば、ブロブは個人のレントゲン写真を含み、第１レベルのＣＤＦは、そのレントゲン写真を参照して、それが特定の個人のものであることを識別できる。さらに、そのようなレントゲン写真は、その個人やその個人の家族に関する多くのレントゲン写真と共にグループ化することができ、より上位レベルのＣＤＦが多くのより低いＣＤＦをポイントすることで、論理階層が作成される。
【００４６】
本発明の１実施形態によれば、１または複数の下位レベルのＣＤＦをポイントする上位レベルのＣＤＦが作成される場合、下位レベルへの参照は上位レベルＣＤＦのコンテンツに含まれ、その結果、上位レベルＣＤＦは下位レベルＣＤＦを論理的にポイントする。１実施形態において、下位レベルＣＤＦへの参照は、単純に上位レベルＣＤＦのコンテンツ内のメタデータまたは記述子として含まれ、アーキテクチャは、本明細書で説明しているようにＣＤＦがブロブをポイントする様式である、ＣＤＦが別のＣＤＦをポイントすることは想定していない（すなわち上位レベルＣＤＦのアドレスは下位レベルＣＤＦの参照テーブルに提供されない）。しかしながら、本発明の代替実施形態では、上位レベルＣＤＦが下位レベルＣＤＦをポイントし、そのアドレスを下位レベルＣＤＦの参照テーブルに提供するように、参照が与えられてもよい。この実施形態によれば、下位レベルＣＤＦは、上位レベルＣＤＦにポイントされている間は削除できず、下位レベルＣＤＦを削除するには、上位レベルＣＤＦを先に削除することが必要である。
【００４７】
上述したように、本発明の１実施形態によれば、ＣＤＦによって参照されていないブロブを削除する不要データ領域収集技術が使用される。本発明の１実施形態によれば、ブロブが記憶システムに書き込まれる場合、それはその対応ＣＤＦより前に書き込まれる。したがって、ブロブが書き込まれたとき、そのＣＤＦに対するコンテンツ・アドレスはまだ生成されていない可能性があり、該アドレスをブロブに関連するテーブル中の参照として含めることができない可能性がある。本発明の１実施形態によれば、そのＣＤＦより前に書き込まれたブロブは非参照ブロブとして不要データ領域収集ユーティリィティに現われることはなく、よって不要データ領域収集ユーティリィティによる新たに書き込まれたブロブの削除を確実にする技術が使用される。
【００４８】
本発明の１実施形態によれば、ブロブおよびＣＤＦの書込みはトランザクションを構成
すると考えられ、該トランザクションに識別子が割り当てられる。ブロブが書き込まれると、トランザクション識別子が、ブロブを参照するＣＤＦの未だ生成されていないコンテンツ・アドレスの代わりに、ブロブの参照テーブル中の代替物（placeholder ）として使用される。不要データ領域収集ユーティリィティはその代替物を認識し、ブロブを削除しない。その後ＣＤＦが書き込まれ、そのコンテンツ・アドレスが計算されると、ブロブ参照テーブル中のトランザクション番号はＣＤＦのコンテンツ・アドレスと置き換えられる。
【００４９】
本発明は、ブロブが最初に書き込まれたときに一時的なトランザクション番号を提供する上述の技術の使用に限定されず、ブロブが不要データ領域収集ユーティリィティによって削除されないことを保証する他の適切な技術を使用できることを理解すべきである。さらに、そのような技術は、不要データ領域収集ユーティリィティを使用しないシステム、どのブロブを削除するか（いかなるＣＤＦにも参照されていないブロブを捜すのではなく）を判定する種々の技術を使用する不要データ領域収集ユーティリティを使用するシステム、または関連ＣＤＦの前に記憶システムにブロブを書き込まないシステムに使用される本発明の実施形態と関連して使用される必要はない。
【００５０】
上述したように、本発明の１実施形態は、不要データ領域収集人ユーティリィティを用いた使用に適合される。不要データ領域収集機構は、例えば記憶のために以前に割り当てられていたがもはや必要ではないディスクスペースを取り戻すために記憶システム上で実行される、バックグラウンドプロセスであってよい（例えば、そのようなスペースに格納されたＣＤＦまたはブロブは、削除のためにマークされる）。本発明の１実施形態では、不要データ領域収集機構は、いかなるＣＤＦにも参照されないブロブまたはＣＤＦを探しているブロブとＣＤＦとに対する参照テーブルを検索する。不要データ領域収集機構がそのようなブロブまたはＣＤＦを見つけた場合、不要データ領域収集機構はそれらを削除し、参照テーブルからのそれらに対応するエントリを削除する。不要データ領域収集機構が特定のＣＤＦまたはブロブを「削除した」場合、ＣＤＦまたはブロブを含んでいるファイルは、記憶システムのファイルシステムから単に除去され得る。代わりに、より安全な削除を希望するアプリケーションでの使用に適した本発明の１実施形態では、ブロブまたはＣＤＦデータを格納する物理的位置は、データ（例えばランダムビットまたは特定のビットシーケンス）で上書きされ、ブロブまたはＣＤＦの実際の２進データは、任意の適切な技術を使用して消去されるか、または電子的に「シュレッド」される。
【００５１】
本発明の１実施形態では、削除のためにマークされていないすべてのＣＤＦに関連する参照テーブルは、ＣＤＦ自体に対する循環的参照を有し、ＣＤＦが別のＣＤＦによって参照されない場合に不要データ領域収集ルーチンがそれを非参照ＣＤＦとして上述の様式で削除しないことを確実にする。本発明はこれについて限定されず、ＣＤＦを削除するベースとして別のＣＤＦからの参照がないことに依存しない他の不要データ領域収集技術を使用し得る。例えば、ＣＤＦとブロブを区別するために固有の識別子を使用する本発明の実施形態に従って使用された時、不要データ領域収集ユーティリィティはその固有識別子を見て、その非参照ＣＤＦを削除せず、非参照ブロブのみを削除すべきことを認識することができる。
【００５２】
上述したように、本発明の１実施形態では、ホストはブロブを直接削除することは許可されていない。すなわち、ブロブを直接（例えばブロブのコンテンツ・アドレスと共に記憶システムに削除コマンドを送ることで）削除しようとする試みは、記憶システムによって否定される。この制限は、要求を発行するホストのアプリケーション・プログラムまたはユーティリィティや、あるいはリクエスタのアクセス権（例えば、ホストのシステム管理者からの要求さえ否定される）とは独立している。したがって、ホストは、ブロブを参照しているすべてのＣＤＦを削除することによってのみブロブを削除することができ、一
旦ブロブがＣＤＦに参照されなくなると、ブロブは不要データ領域収集機構によって削除される。
【００５３】
上述したように、本発明の１実施形態では、記憶システムはブロブの削除要求をＣＤＦに対する削除要求から区別し得る。１実施形態では、ホストが記憶システムに削除要求を送ると、ホストは、削除されるべきデータのコンテンツ・アドレスを、コンテンツ・アドレスがブロブに相当するかＣＤＦに相当するかを示す情報（例えばブール論理）に加えて含み得る。コンテンツ・アドレスがブロブに相当することをホストが示す場合、ブロブの直接削除は本発明の１実施形態では禁止されるため、記憶システムは削除要求を否定する。しかしながら、コンテンツ・アドレスがＣＤＦに相当することをブール論理が示す場合、記憶システムは、ホストから提供されたコンテンツ・アドレスに対応するデータの削除要求を処理するだろう。記憶システムは、データを削除する前に、削除が要求されているデータに関連するメタデータをチェックして、データの保持時間が終了しているか否かを判定する。１実施形態では、記憶システムは、ＣＤＦ自体のコンテンツ内にＣＤＦに関連する保持時間を見出しうる。保持時間が終了していれれば、記憶システムはＣＤＦを削除し得る。ホストによって提供されたコンテンツ・アドレスが、ブロブ（例えばＣＤＦに相当するブール論理中の表示がエラーである）に相当する場合、記憶システムはブロブのコンテンツに保持時間を見出すことはできない。削除すべきデータのコンテンツ内に保持時間が見出されない場合、記憶システムは削除要求を否定する。したがって、記憶システムはブロブのコンテンツ内に保持時間を位置特定することができないため、ブロブを削除する要求は失敗に終わる。これは、ホストが、ブロブ自体を直接削除することにより、ＣＤＦ内に確立された保持時間を回避するのを防止する。
【００５４】
別の実施形態では、記憶システムは、コンテンツ・アドレスに追加された追加情報に基づいて、ブロブの削除要求をＣＤＦの削除要求から区別し得る。上述したように、コンテンツ・アドレスは、ブロブまたはＣＤＦのデータのハッシュから取得し得る。コンテンツ・アドレスは、コンテンツ・アドレスがブロブのアドレスであるかＣＤＦのアドレスであるか否かを示す追加の識別子を含み得る。この識別子は、コンテンツ・アドレス内のいかなる場所に位置してもよい。例えば、２６文字のハッシュ値をコンテンツ・アドレスとして使用する場合、識別子は、１３文字のハッシュ値が識別子の先に来て、１３文字のハッシュ値が識別子の後に続くように配置された追加の文字であってよい。
【００５５】
ＣＤＦおよび関連ブロブの削除は、任意の多くの方法で行ない得る。ＣＤＦおよびその関連ブロブを削除するために提供し得る技術は一つのみであってよいため、以下に説明する技術は、所与のシステム構成に採用される代替技術と見なし得る。しかしながら、本発明の１実施形態によれば、以下に説明する削除技術のうちの２つ以上は、１つのシステム上に提供され、ユーザには削除実行のための選択肢が提供されている。より詳細に以下に説明するように、一部の方法は比較的少量の最初の処理を要求すると共に不要データ領域収集機構のに比較的大量の処理を残すが、一部の方法は比較的大量の最初の処理を要求すると共に（不要データ領域収集機構が完全に使用される場合に）不要データ領域収集機構により少ない仕事を残す。一旦保持時間が終了したことを判定すると（例えば図４の行為４０７で）、以下に説明する削除技術が行なわれるだけである。したがって、下記の技術を実行して、図４のプロセスの行為４０９でＣＤＦの削除行為を実装することができる。
【００５６】
第１の方法は、ファイヤ・アンド・フォーゲット（fire and forget 、「一旦撃ったら撃ちっ放しで後は忘れても構わない」の意。軍事用語でミサイルを一旦発射するとあとは命中するまでミサイル自身による自己制御でいくことを指す）と称される。上述したように、１実施形態では、ＣＤＦはそれ自体への循環的参照を含んでいる（例えば、参照テーブルのＣＤＦエントリに格納）。ＣＤＦを削除する要求に応じて、保持時間が終了していることを確認した後、ファイヤ・アンド・フォーゲット法は、単にＣＤＦへの循環的参照
を削除するのみである。ＣＤＦが任意の他のＣＤＦによって参照されていない限り（この場合には削除は認可されないだろう）、不要データ領域収集機構は、ＣＤＦが今や参照されていないことを発見すると、最終的に上述のようにＣＤＦを削除する。不要データ領域収集機構がＣＤＦを削除する場合、不要データ領域収集機構は削除ＣＤＦによって参照されていた任意の他のブロブまたはＣＤＦの位置を特定する参照テーブルの検索をも行い、削除ＣＤＦによって参照されていたブロブおよびＣＤＦを識別する任意の参照テーブルエントリを削除する。この削除によって、ＣＤＦによって参照されていたブロブはいかなるＣＤＦによっても参照されなくなり、ブロブが参照されていないことが発見されると不要データ領域収集機構はそのようなブロブを削除するだろう。
【００５７】
ホストに応答する前は記憶システムがＣＤＦ削除に比較的小さな処理しか行わず、不要データ領域収集機構に処理の多くを残すという点で、ファイヤ・アンド・フォーゲット技術は第１に非常に速い。ファイヤ・アンド・フォーゲット技術の特徴は、ホストがその対応するＣＤＦを削除することによりブロブの削除をしようとする時に、記憶システムから返されるＣＤＦが削除されたという表示は、対応するブロブ（それがたとえ今参照されていなくとも）が削除されたという表示ではないことであり、不要データ領域収集機構がすべてのブロブおよびＣＤＦの参照テーブルを検索し、新しく削除ＣＤＦを識別するテーブルエントリをすべて削除し、その後、ブロブが今や参照されておらず、該ブロブを削除すべきことを発見するには、いくらか遅延時間が生じ得る。このような遅延時間の結果、削除が認められた後でさえも、データが読み取られることがある。
【００５８】
第２の削除方法は非同期削除と称される。ファイヤ・アンド・フォーゲット法と同様に、この非同期削除も、ＣＤＦから循環的参照を除去する。しかしながら、非同期削除では、その後、ＣＤＦが削除されたことを示すと共にＣＤＦをホストによって読取りできないようにする、異なる位置にＣＤＦを移動させる。ＣＤＦに対する新しい位置は、「削除済みフォルダ」のような特定のファイルシステム位置であってもよい。ＣＤＦのファイルシステム位置の変更により、またはＣＤＦが削除済みフォルダにあることを示す指示物でＣＤＦを印をつけることにより、ＣＤＦに関連するデータの実際の物理的移動を含めて、削除済のＣＤＦはいかなる適切な様式で「移動」してもよい。不要データ領域収集機構は、削除済みフォルダ中のＣＤＦにアクセスし、その削除されたＣＤＦのコンテンツを読み取って、ＣＤＦおよび／またはブロブのいずれが参照されているかを判定することができる。その後、不要データ領域収集機構は、参照テーブルから削除済みＣＤＦへの参照を削除すると共に、その削除の結果としての非参照のすべてのブロブも削除することが可能である。
【００５９】
ファイヤ・アンド・フォーゲット技術とは対照的に、非同期削除は、ＣＤＦが削除されたという表示を記憶システムがホストに返す前に、記憶システムによるよりアップフロントな処理（すなわちＣＤＦを削除済みフォルダに移動させる）を必要とする。しかしながら、この追加的なアップフロント処理は、不要データ領域収集機構によって実行されなければならない処理量を減少させ、不要データ領域収集機構はどのブロブおよび／またはＣＤＦが削除されたＣＤＦに参照されたかを判定するために全部のＣＤＦおよびブロブの参照テーブルを探索する必要はなくなり、不要データ領域収集機構は削除済みフォルダ中の削除済みＣＤＦのコンテンツを調べることにより、その情報を直接取得することができる。ファイヤ・アンド・フォーゲット技術と同様に、ＣＤＦが削除されたことを通知されているホストと、そのＣＤＦによって参照されているブロブの削除との間には遅延時間が生じ得るが、非同期技術では不要データ領域収集機構に必要な処理が少ないという事実に鑑みると、非同期技術を使用した場合のそのような遅延時間は短いであろう。
【００６０】
第３の削除技術は同期削除と称される。同期削除では、ＣＤＦの削除要求に応じて、記憶システムは以下のアップフロント処理機能を実行する：（１）ＣＤＦの循環的参照の削
除；（２）ＣＤＦの削除；（３）参照テーブルからの削除済みＣＤＦによって参照されていた他のブロブまたはＣＤＦを識別するすべてのエントリの削除；（４）ＣＤＦによって現在参照されていないブロブの削除。本発明のこの実施形態によれば、上述の非同期削除技術の実施形態は削除を達成するのに必要なすべての行為をなし、不要データ領域収集ユーティリィティに仕事を残さないため、不要データ領域収集ルーチンは不必要である。
【００６１】
上述の他の削除技術と比較すると、この同期削除は、削除が遂行されたことをホストに教える前に記憶システムによるアップフロント処理が比較的多く行われており、上記に言及したＣＤＦに参照されていたブロブ削除の際の遅延を受けず、不要データ領域収集ユーティリィティの必要性が排除されている。かくして、本明細書で説明した本発明の実施形態は不要データ領域収集ユーティリィティを用いた使用に限定されず、他の削除技術が可能である。
【００６２】
同期削除技術の変形例は、ＣＤＦが削除されたことをホストに教える前に、上述の機能のうちの最初の３つがまず実行され、第４のステップ（すなわち任意の非参照ブロブの除去）は不要データ領域収集ユーティリィティに残されるというものである。
【００６３】
上述の削除方法は例として与えられているにすぎない。他の多くの削除方法が使用されてもよく、本発明の態様はいかなる特定の削除技術の使用にも限定されない。
本発明の１実施形態では、記憶システムは、ホストに、パージコマンドを使用してブロブを直接削除する能力を提供する。パージコマンドによって、ホストはブロブを直接削除することができる。ただし、ブロブがいかなるＣＤＦによっても参照されていない場合に限る。ＣＤＦによって参照されているブロブの削除に対するこのような制限は、記憶システムの保持スキームをパージコマンドの使用によっては回避できないことを保証する。ＣＤＦのコンテンツ・アドレスが削除のために記憶システムに提供される上述の削除方法と異なり、パージコマンドは、ブロブのコンテンツ・アドレスが削除のために記憶システムに直接提供されることを可能にする。パージコマンドの使用によって、ブロブは直接削除され得るため、不要データ領域収集機構はブロブが削除されるのを待つ必要がない。
【００６４】
上述したように、本発明の１実施形態は、例えば例として上述のＳＥＣ規則１７ａ−４が挙げられるような、保持のためのグローバルに定義された基準を満たす記憶システムである。そのような実施形態は、外部で確立された保持ポリシーを遵守する定義遵守システムと称される。本発明の１実施形態では、そのような遵守記憶システムは、ホスト、システム管理者またはその他のものが、グローバルに定義された保持ポリシーを遵守すべく、記憶システムにより施行される保持ポリシーを修正したり、該ポリシーに反して行動したりするのを防止する。
【００６５】
本発明の別の実施形態は、いかなるグローバルに定義された保持ポリシーも遵守する必要のないシステムである。そのような実施形態は、定義非遵守システムと称される。本発明の１実施形態では、非遵守記憶システムは、管理者がどのようなユーザ許可および保持ポリシーが所望されるかを定義することを可能にする、インタフェースを任意の適切な様式で提供することができる。例えば、ある保持ポリシーの組が確立され得るが、ホストまたは記憶システム上にシステムの管理権限を有するユーザは、その定義された保持ポリシーに違反してデータ・ユニットを直接削除する権限を許可される。
【００６６】
出願人は、記憶システム集団の一部に、どのＣＤＦも自身に関連する保持情報を持たないよう、本明細書で説明した保持技術を使用せずに作成されたブロブおよび関連ＣＤＦを有するものが存在し、システムユーザの一部に、本明細書で説明した保持技術を使用するためにそのようなシステム集団を更新することが望ましいものがあることを認識した。そのような改良は、任意の多くの方法で遂行することが可能である。例えば、保持時間を持
たない既存のＣＤＦは、終了されるか、無限の保持時間を有するか、または任意の適切な方法で定義された保持時間を有するように、選択され得る。
【００６７】
上記の例において、ブロブの保持時間はブロブに関連するＣＤＦに格納されていた。しかしながら、保持時間はブロブ自体の中に格納し得る。さらに、本明細書で説明した本発明の態様は、１または複数のブロブに関連するメタデータを格納するＣＤＦを使用するシステムの使用に限定されるわけではなく、他の技術（例えば、ブロブ自体にそのような情報を格納する）も可能である。
【００６８】
上述の本発明の態様は、任意の多くの方法で実装できる。例えば、本明細書で説明した保持ポリシーのうちの一部は、記憶システムによって実施されるものとして論じられている。それらの態様は、記憶装置（例えばテープ・ドライブ）を含む１または複数の記憶ボックス自体の上で実装されてもよいし、代わりに１または複数のホストと、データが記憶される１または複数の記憶システムとの間のインタフェースとして配置された異なるボックス上で実装されてもよい。これに関して、本発明の態様は、システム中の任意のコンピュータ上に実装することができる。本明細書に使用する場合、コンピュータという用語は、データを処理するプロセッサを含む任意の装置を包含するものとし、記憶システム、ネットワークコンポーネントまたは他の計算装置を含むことが可能である。
【００６９】
本発明の上述の実施形態は、任意の多くの方法で実施することができる。例えば、そのような実施形態を、ハードウェア、ソフトウェアまたはそれらの組み合わせを使用して実施してもよい。ソフトウェアで実施される時、ソフトウェアコードは、一つのコンピュータ内に提供されているか多数のコンピュータ間に分配されているかに関わらず、任意の適切なプロセッサまたは複数のプロセッサの集合上で実行される。上述の機能を実行するいかなるコンポーネントまたは複数のコンポーネントの集合も、上述の機能を制御する１または複数のコントローラであると包括的に見なすことができる。１または複数のコントローラを、例えば、専用ハードウェアによって、または上述の機能を実行するようマイクロコードまたはソフトウェアを使用してプログラムされた汎用ハードウェア（例えば１または複数のプロセッサ）によって、多くの方法で実装することができる。
【００７０】
これに関して、本発明の実施形態の１実施例は、プロセッサ上で実行されると本発明の実施形態の上述の機能を実行する、コンピュータ・プログラム（すなわち複数の命令）でコード化された少なくとも１つのコンピュータ可読媒体（例：コンピュータ記憶装置、フロッピー（登録商標）・ディスク、コンパクト・ディスク、テープ）から成る。コンピュータ可読媒体は、本明細書中で説明した本発明の態様を実施するために該媒体上に格納されたプログラムを任意のコンピュータシステム資源にロード可能であるように、移送可能である。さらに、実行されると上述の機能を実行するコンピュータ・プログラムのことを指すとき、ホストコンピュータ上で動くアプリケーション・プログラムに限定されない。そうではなく、コンピュータ・プログラムという用語は、本明細書では、本発明の上述の態様を実施すべくプロセッサをプログラムするために使用可能な任意のタイプのコンピュータ・コード（例えばソフトウェアまたはマイクロコード）を指す包括的な意味で使用されている。
【００７１】
プロセスがコンピュータ可読媒体で実行される本発明の一部の実施形態によれば、コンピュータ実装プロセスは、その実行中に、手動による入力を（例えばユーザから）受け取ってもよい。
【００７２】
本明細書で使用される語句および用語は、説明のためのものであって、限定的なものと見なされるべきでない。原文でのinc luding 、comprising、またはhaving、containing
、involving （訳文ではそれぞれ有する、から成る、有する、備える、含む、含む）なら
びにそれらの変化形の使用は、その後に列挙するものと追加のものとを包含することを意味している。
【００７３】
本発明のいくつかの実施形態について詳細に説明したが、当業者には様々な修正および改良が容易に思い浮かぶだろう。そのような修正および改良は、本発明の趣旨および範囲内にあるものとする。従って、上記の説明は例にすぎず、限定的なものではない。本発明は特許請求の範囲とその均等物によってのみ定義される。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施形態が実装され得る例証的なコンピュータシステムのブロック図。
【図２】本発明の１実施形態による、コンテンツ・アドレスの生成を例証する図。
【図３】本発明の１実施形態に従ってデータを記憶システムに格納する例証的様式を例証するブロック図。
【図４】本発明の１実施形態による、データを記憶システムから削除するプロセスを例証するフローチャート。
【図１】
2005174339.tif 000003
【図２】
2005174339.tif 000004
【図３】
2005174339.tif 000005
【図４】
2005174339.tif 000006
【手続補正書】
【提出日】平成17年2月18日(2005.2.18)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005174339.tif 000007
【図２】
2005174339.tif 000008
【図３】
2005174339.tif 000009
【図４】
2005174339.tif 000010
【外国語明細書】
2005174339.tif 000011
2005174339.tif 000012
2005174339.tif 000013
2005174339.tif 000014
2005174339.tif 000015
2005174339.tif 000016
2005174339.tif 000017
2005174339.tif 000018
2005174339.tif 000019
2005174339.tif 000020
2005174339.tif 000021
2005174339.tif 000022
2005174339.tif 000023
2005174339.tif 000024
2005174339.tif 000025
2005174339.tif 000026
2005174339.tif 000027
2005174339.tif 000028
2005174339.tif 000029
2005174339.tif 000030
2005174339.tif 000031
2005174339.tif 000032
2005174339.tif 000033
2005174339.tif 000034
2005174339.tif 000035
2005174339.tif 000036
2005174339.tif 000037
2005174339.tif 000038
2005174339.tif 000039
2005174339.tif 000040
2005174339.tif 000041
2005174339.tif 000042