JP2002501258A - ファイル・システムにおけるネーティブ・データ署名 - Google Patents

ファイル・システムにおけるネーティブ・データ署名

Info

Publication number
JP2002501258A
JP2002501258A JP2000528932A JP2000528932A JP2002501258A JP 2002501258 A JP2002501258 A JP 2002501258A JP 2000528932 A JP2000528932 A JP 2000528932A JP 2000528932 A JP2000528932 A JP 2000528932A JP 2002501258 A JP2002501258 A JP 2002501258A
Authority
JP
Japan
Prior art keywords
data
data stream
signature
change
unique
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000528932A
Other languages
English (en)
Other versions
JP4283440B2 (ja
JP2002501258A5 (ja
Inventor
ミラー,トーマス・ジェイ
キャブレラ,ルイス・フェリペ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002501258A publication Critical patent/JP2002501258A/ja
Publication of JP2002501258A5 publication Critical patent/JP2002501258A5/ja
Application granted granted Critical
Publication of JP4283440B2 publication Critical patent/JP4283440B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Eye Examination Apparatus (AREA)

Abstract

(57)【要約】 本発明は、自裁のデータ・ストリーム(146)間で比較を行なう必要なく、ファイル・データ・ストリーム(146)が同一かまたは異なるかについて迅速に判定する、信頼性の高いシステムおよび方法を提供する。データ・ストリーム(146)が異なるという判定が行われた場合、本発明は、再度、データ・ストリーム(146)の全サイズの比較を実際に行なう必要なく、データ・ストリーム(146)間に変更が生じたか否かについて迅速に判定することができる。このような方法およびシステムを達成するには、ファイル・システムが格納する各データ・ストリーム(146)毎に、ネーティブ・データ署名(NDS)(148)を生成する。各NDS(148)は、それに対応するデータ・ストリーム(146)と比較すると、そのサイズが格段に小さくなっている。NDS(148)を生成するには、データ・ストリーム(146)を、サイズが4Kバイトから256Kバイトまでの範囲の複数の割当ユニット(162)に分離し、各割当ユニット(162)毎に1つ、一意の変更識別子(UCI)を生成し、通常64までを含む数の一連のビットにUCIを組み込む。こうして、64ビットを有するUCIであっても、NDS(148)間で比較を行なうことにより、データ・ストリーム(146)を比較する時間効率は、割当ユニット(162)のサイズに応じて、500:1または32,000:1程度に改善する。

Description

【発明の詳細な説明】
【0001】 (発明の背景) (発明の分野) 本発明は、ファイル・システムにおいてファイル・データ・ストリームを比較
するシステムおよび方法に関する。更に特定すれば、本発明は、実際にデータ・
ストリーム間の比較を行なうことなく、各データ・ストリームに生成するネーテ
ィブ・データ署名(native data signature)間で比較す
ることによって、ファイル・システムが迅速にファイル・データ・ストリームを
比較することを可能にするものである。 (当技術分野の従来における状態) コンピュータのオペレーティング・システムでは、ファイル・システムは、一
般に、ファイルに名称を付け、格納し、編成する全体的構造として知られている
。1980年代初期では、FAT(ファイル割り当てテーブル)ファイル・シス
テムが、第1世代のパーソナル・コンピュータ上でMS−DOS(MICROS
OFTディスク・オペレーティング・システム)と共に開発された。一般に、コ
ンピュータは低密度フロッピ・ディスク用ドライブを2台有し、FATシステム
は小さなディスク・ボリュームならびに構造およびファイルの階層ディレクトリ
を管理するには十分以上の処理能力を有していた。時の流れと共に、コンピュー
タ・ハードウエアおよびソフトウエアがパワーおよび速度を向上させるに連れて
、FATシステムは、パーソナル・コンピュータ・ユーザの要望に歩を合わせ続
けてきた。しかしながら、低密度フロッピ・ディスクからより大きなハード・デ
ィスク・ドライブに変遷し始めると、データ・ファイルの探索および検索は対応
して時間的に遅くなっていった。
【0002】 10年後には、FATシステムに別の欠陥が認められた。例えば、パーソナル
・コンピュータのハード・ディスクは40M以上に大容量化すると、ユーザは彼
らのディスクを2つ以上のボリュームに区分しなければならなくなった。何故な
ら、FATシステムは、ボリューム当たり32MBに制限されていたからである
。しかしながら、MS−DOSの新しいバージョンは、より大きなディスク・ボ
リュームも勿論考慮した。
【0003】 結局、ハード・ディスクが増々大容量化したので、新たなオペレーティング・
システムOS/2の一部として、高性能ファイル・システム(HPFS)が導入
され、ハード・ディスク上の大きなボリューム管理の効率化を図った。HPFS
は、(1)ファイル・システムのブート、維持および復元のためにセクタ空間を
確保し、(2)ディスク全体にわたって選択した間隔でビットマップ空間を確保
しファイル格納の断片化を防止するように努め、(3)格納してあるファイル・
データの高速精査を可能とする”B−Tree”ルートおよびノード階層の使用
により、従来のFATシステムに対して速度面で優位にあった。HPFSはFA
Tシステムが用いていた8+3キャラクタ・フォーマットから255キャラクタ
にファイル名称のサイズを拡大することも可能にした。ファイル名称が長い程、
用いる記述名称も長くすることができる。
【0004】 HPFSおよびFATシステムは双方共、急速に変化しつつあるコンピュータ
業界において、比較的早期に導入されたが、双方とも着実に人気のあるファイル
・システムであり続け、その速度および多様性のために、引き続き広く用いられ
ている。しかし、ファイル管理の限界は、HPFSおよびFATシステム双方に
相変わらず存在する。
【0005】 例えば、今日のコンピュータ産業において、多数の洗練されたアプリケーショ
ンは、実質的に瞬時的な速度で、ほぼフォールトのないデータ・トランザクショ
ンを要求する。このようなアプリケーションは、国内および世界の金融市場、航
空産業、銀行業界ならびに種々の技術および科学的なアプリケーションを含み、
更に未だ名前をあげることができる。瞬時的かつゼロ・フォールト・トレランス
・トランザクションの探求には、多数の変数を伴うが、今日のコンピュータの世
界は、速度および精度上の優位性を、全くの初歩的なレベルであっても歓迎する
。実際、このようなトランザクションが、単にファイルに格納してあるデータ・
ストリームの個々の特性に関する決定に変わってしまう場合もある。例えば、格
納したデータが変化したか同じままかを確認する判定は、多くの場合、トランザ
クションが行われる迅速性または有効性に相違を生ずれるだけで十分である。F
ATおよびHPFSシステムでは、このような判定は、2つ以上のデータ・スト
リームを、1対1即ちビット毎/バイト毎に比較することによって行なっている
【0006】 FATおよびHPFSシステム双方は効果的にデータ・ストリームの判定を行
なうことができるが、いずれもこれらの種類のアプリケーションに格別適してい
る訳ではない。何故なら、データ・ストリームを1対1で比較することにより、
貴重な時間が消費されるからである。これは、極端に長いデータ・ストリームを
伴うアプリケーションには、特に言えることである。したがって、精度を維持ま
たは向上させつつ、データ・ストリーム間の比較を高速化し、時間を削減するこ
とが望ましい。
【0007】 更に別の欠点は、多くの場合、古いファイルを新しいデータで更新し、次いで
古いファイルを再度「バックアップ」して新たなデータに反映するときに、貴重
な記憶空間が無駄になることである。新しいデータの変更は、その量が極少であ
ったり、または取るに足らない程度に過ぎなくても、バック・アップ・ファイル
は、以前と同じデータの多くを、新たなデータのエントリで繰り返し格納してい
る。したがって、冗長ファイル・データを繰り返し格納する代わりに、ファイル
・データ内における実際の変更だけをバックアップするシステムおよび方法を有
することができれば望ましいであろう。
【0008】 更に別の問題は、従来技術のファイルおよびオペレーティング・システムは比
較的決定論的(deterministic)であり、今やその設計者が想定し
なかった状況をカバーするように拡張することが容易にできないことである。し
たがって、別の方法またはファイル・システムをオペレーティング・システムに
組み込み、前述の洗練されたファイル管理に対する要望を満たそうとしても、不
可能ではないが、困難である。したがって、開発ファイルおよびオペレーティン
グ・システムに完全に同化することができ、しかも同時に未だ完全に開発または
想定されていない未来のファイル管理ユーティリティを同時に勘案しそれに対処
するシステムおよび方法を提供することが望ましい。 (発明の概要) 本発明は、前述した当技術分野の従来の状態における問題の克服に成功した。
本発明は、データ・ストリーム間で実際の比較を行なうことなく、ファイル・デ
ータ・ストリームの迅速な比較を実行するシステムおよび方法に関するものであ
る。比較は、代わりに、各データ・ストリームに生成するネーティブ・データ署
名間で行なう。本発明は、データ・ストリームが変化したか否か、そして変化し
た場合には、当該変化が起きたデータ・ストリーム内の場所の双方を迅速に判定
する際に特に有用である。本発明の利点を享受することができる個々のファイル
管理アプリケーションには、ファイル復元、格納、更新、およびデータ冗長性、
ならびにその他の同様に関連のある洗練されたアプリケーションの多くが含まれ
る。
【0009】 一実施形態では、本発明は、ディスク上に格納してある2つ以上のデータ・ス
トリーム間で比較を行なうために、ネーティブ・データ署名(NDS)を生成す
る。その際、第1に、データ・ストリームを個々の格納割当ユニットに分離し、
第2に、各割当ユニットに1つずつ一意の変更識別子(UCI)を生成し、第3
にUCIの各々を対応するNDSに組み込む。このようにして、常にデータ・ス
トリームを一意に識別するが、実際のデータ・ストリームの格納サイズと等価な
サイズで表わす代わりに、格段に小さい割合でデータ・ストリームを表わす。し
たがって、実際のデータ・ストリームを1つずつ比較する代わりに、ネーティブ
・データ署名間で比較を行なうことによって、データ・ストリームの比較を高速
化することが可能となる。一実施形態では、割当ユニットのサイズは、4Kバイ
トから256Kバイトの範囲であり、UCIは64ビットの大きさである。した
がって、UCIが最大長の64ビットであっても、NDSによってデータ・スト
リームを比較する時間は、割当ユニットに採用するサイズに応じて、それぞれ、
500:1または32,000:1程度に改善する。
【0010】 データ・ストリームに変更が生じた場合、変更データに対応する割当ユニット
のみを更新し、次いで、更新した割当ユニットに対応するUCIのみを更新する
。このように、データ・ストリーム内のどこに変更が生じたのかについて判定す
る場合、ファイル・システムはどのUCIが変化したかについてのみ判定すれば
よい。その結果、本発明によって、記憶空間の浪費が減少する。何故なら、ND
Sは、更新UCIによって、変更が生じたファイルのエリアを識別するので、フ
ァイル全体ではなく、ファイルの変更データ・エリアのみをバックアップすれば
よいからである。
【0011】 本発明の別の利点は、以下に続く説明に明記してあり、部分的にはその記載か
ら自明であり、あるいは本発明の実施によって習得することができる。本発明の
目的および利点は、添付した請求の範囲に特定して指摘した手段および組み合わ
せによって実現し、獲得することができる。本発明のこれらおよびその他の目的
ならびに特徴は、以下の説明および添付した請求の範囲から一層明白となり、あ
るいは以下に明記する本発明の実施によって習得することができよう。
【0012】 本発明の別の利点は、以下に続く説明に明記してあり、部分的にはその記載か
ら自明であり、あるいは本発明の実施によって習得することができる。本発明の
目的および利点は、添付した請求の範囲に特定して指摘した手段および組み合わ
せによって実現し、獲得することができる。本発明のこれらおよびその他の目的
ならびに特徴は、以下の説明および添付した請求の範囲から一層明白となり、あ
るいは以下に明記する本発明の実施によって習得することができよう。 (図面の簡単な説明) 本発明の先に引用した利点およびその他の利点が得られるように、添付図面に
示す具体的な実施形態を参照しながら、先に端的に記載した本発明の更に特定的
な説明を行う。これらの図面は本発明の典型的な実施形態のみを示すものであり
、したがってその範囲を限定すると見なすべきでないことを理解の上で、添付図
面を用いて、更に具体的かつ詳細に本発明について記載し説明する。 (好適な実施形態の詳細な説明) 本発明は、格納してあるデータ・ストリーム間で実際の比較を行なわずに、フ
ァイル・データ・ストリームを迅速に比較するシステムおよび方法を提供する。
本発明によれば、ここに教示するように、コンピュータ・オペレーティング・シ
ステムの一部としてファイル・システムの動作によって格納するデータ・ストリ
ームの各々に生成するネーティブ・データ署名を比較することによって、格納し
てあるデータ・ストリームの比較を行なう。尚、ネーティブ・データ署名とは、
実際のデータ・ストリームのサイズを短縮した表現であり、したがってネーティ
ブ・データ署名の比較は、実際のデータ・ストリームの長さ全体に及ぶ完全な比
較とは異なり、計算時間の短縮に役立つものである。
【0013】 本発明によれば、ここでは、本発明のシステムおよび方法を実現する際に用い
る実施例の構図または処理のいずれかを示すために、図面を用いる。このように
図面を用いて本発明を提示することは、その範囲の限定として解釈すべきことで
はない。以下で更に詳細に説明するが、本発明は、階層状データ格納のための方
法およびシステム双方を念頭に入れている。本発明の実施形態は、種々のコンピ
ュータ・ハードウエアを備えた特殊目的コンピュータまたは汎用コンピュータか
ら成るものとすることができる。
【0014】 また、本発明の範囲に該当する実施形態は、実行可能な命令またはデータ・フ
ィールドが記憶されているコンピュータ読み取り可能媒体も含む。このようなコ
ンピュータ読み取り可能媒体は、汎用コンピュータまたは特殊目的コンピュータ
によってアクセス可能で、かつ入手可能なあらゆる媒体とすることができる。一
例として、限定ではなく、このようなコンピュータ読み取り可能媒体は、RAM
、ROM、EEPROM、CD−ROMまたはその他の光ディスク・ストレージ
、磁気ディクス・ストレージまたはその他の磁気記憶装置、あるいは所望の事項
可能な命令またはデータ・フィールドを格納するために用いることができ、汎用
コンピュータまたは特殊目的コンピュータによってアクセス可能なその他のあら
ゆる媒体を含むことができる。前述の組み合わせも、コンピュータ読み取り可能
媒体の範囲に含まれて当然である。実行可能な命令とは、例えば、汎用コンピュ
ータ、特殊目的コンピュータ、または特殊目的処理装置に、ある種の機能または
機能群を実行させる、命令やデータを含む。
【0015】 更に、記憶デバイスの階層も本システムに使用可能であることを想定する。こ
のような記憶デバイスの階層は、あらゆる数または形式の記憶媒体を備えること
ができ、それらには、ハイエンド・高スループット磁気ディスク、1つ以上の通
常のディスク、光ディスク、光ディスクのジュークボックス、テープ・サイロお
よび/またはオフラインで格納するテープの集合体を含み、なおもこれらに限定
する訳ではない。一般的には、しかしながら、種々の記憶デバイスは2つの基本
的なカテゴリに分類することができる。第1のカテゴリは、コンピュータ・シス
テムにローカルに使用可能な情報を収容するローカル・ストレージである。第2
のカテゴリは、コンピュータ・システムにローカルにアクセスすることができな
い情報を収容するあらゆる形式の記憶デバイスを含む、リモート・ストレージで
ある。これら2つデバイス・カテゴリ間の線は明確に定義することはできないが
、一般的に、ローカル・ストレージは、比較的アクセス時間が素早く、頻繁にア
クセスするデータを格納するために用いる。一方リモート・ストレージは、アク
セス時間がかなり長く、頻繁にはアクセスしないデータを格納するために用いる
。また、リモート・ストレージの容量は、通常、ローカル・ストレージの容量よ
りも1桁大きい。
【0016】 図1および以下の論述は、本発明を実現可能とするのに適した計算機環境につ
いて、手短な概略的説明を行うことを意図したものである。必ずしも必要ではな
いが、本発明は、コンピュータによって実行するプログラム・モジュールのよう
な、コンピュータ実行可能命令に全般的に関連付けて説明する。一般的に、プロ
グラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント
、データ構造等を含み、特定のタスクを実行したり、あるいは特定の抽象的デー
タ型を実現する。更に、本発明は、ハンド・ヘルド機器、マルチプロセッサ・シ
ステム、マイクロプロセッサを用いた即ちプログラム可能な民生用電子機器、ネ
ットワークPC、ミニコンピュータ、メインフレーム・コンピュータ等を含む、
その他のコンピュータ・システム構成を用いても実施可能であることを、当業者
は認めよう。また、本発明は、通信ネットワークを通じてリンクしてあるリモー
ト処理機器によってタスクを実行する分散型計算機環境においても実施可能であ
る。分散型計算機環境では、プログラム・モジュールは、ローカルおよびリモー
ト双方のメモリ記憶装置に配置することも可能である。
【0017】 図1を参照すると、本発明を実現するシステムの一例は、従来のコンピュータ
20の形態とした汎用計算機を含み、演算装置21、システム・メモリ22、お
よびシステム・メモリを含む種々のシステム・コンポーネントを演算装置21に
結合するシステム・バス23を含む。システム・バス23は、メモリ・バスまた
はメモリ・コントローラ、周辺バス、および種々のバス・アーキテクチャのいず
れかを用いたローカル・バスを含む数種類のバス構造のいずれであってもよい。
システム・メモリは、リード・オンリ・メモリ(ROM)24およびランダム・
アクセス・メモリ(RAM)25を含む。起動中におけるように、コンピュータ
20内部のエレメント間で情報を転送する際に役立つ基本ルーチンを含む基本入
出力システム26(BIOS)が、ROM24に格納してある。更に、コンピュ
ータ20は、図示しないハード・ディスクに対して読み出しおよび書き込みを行
うハード・ディスク・ドライブ27、リムーバブル磁気ディスク29に対して読
み出しおよび書き込みを行う磁気ディスク・ドライブ28、ならびにCD RO
Mまたはその他の光媒体等のリムーバブル光ディスク31に対して読み出しおよ
び書き込みを行う光ディスク・ドライブ30を含む。ハード・ディスク・ドライ
ブ27、磁気ディスク・ドライブ28、および光ディスク・ドライブ30は、そ
れぞれ、ハード・ディスク・ドライブ・インターフェース32、磁気ディスク・
ドライブ・インターフェース33、および光ドライブ・インターフェース34を
介してシステム・バス23に接続してある。ドライブおよびそれらと関連するコ
ンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラ
ム・モジュール、およびコンピュータ20のためのその他のデータの不揮発性格
納を行う。ここに記載する環境の一例では、ハード・ディスク、リムーバブル磁
気ディスク29およびリムーバル光ディスク31を採用するが、磁気カセット、
フラッシュ・メモリ・カード、ディジタル・ビデオ・ディスク、ベルヌーイ・カ
ートリッジ、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ
(ROM)等のような、コンピュータによるアクセスが可能なデータを格納する
ことができる、その他の種類のコンピュータ読取可能媒体も、動作環境の一例で
は使用可能であることは、当業者には認められよう。
【0018】 オペレーティング・システム35、1つ以上のアプリケーション・プログラム
36、その他のプログラム・モジュール37、およびプログラム・データ38を
含む、多数のプログラム・モジュールを、ハード・ディスク、磁気ディスク29
、光ディスク31、ROM24またはRAM25に格納することができる。ユー
ザは、キーボード40およびポインティング・デバイス42のような入力デバイ
スを介して、コマンドおよび情報をコンピュータ20に入力することができる。
その他の入力デバイス(図示せず)には、マイクロフォン、ジョイスティック、
ゲーム・パッド、衛星ディッシュ、スキャナ等が含まれる場合もある。これらお
よびその他の入力デバイスは、多くの場合システム・バスに結合してあるシリア
ル・ポート・インターフェース46を介して演算装置21に接続するが、パラレ
ル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス(USB)の
ような他のインターフェースを介して接続することも可能である。モニタ47ま
たはその他の種類の表示装置も、ビデオ・アダプタ48のようなインターフェー
スを介して、システム・バス23に接続してある。モニタに加えて、コンピュー
タは通常、スピーカおよびプリンタのような、その他の周辺出力装置(図示せず
)も含む。
【0019】 コンピュータ20は、リモート・コンピュータ49のような、1つ以上のリモ
ート・コンピュータへの論理接続を用いて、ネットワーク化環境においても動作
することができる。リモート・コンピュータ49は、パーソナル・コンピュータ
、サーバ、ルータ、ネットワークPC、ピア・デバイス、またはその他の共通ネ
ットワーク・ノードとすることができ、通常、コンピュータ20に関して先に述
べたエレメントの多くまたは全てを含むが、図1にはメモリ記憶装置50のみを
示してある。図1に示す論理接続は、ローカル・エリア・ネットワーク(LAN
)51およびワイド・エリア・ネットワーク(WAN)52を含む。このような
ネットワーク化環境は、オフィスの企業規模のコンピュータ・ネットワーク、イ
ントラネットおよびインターネットでは一般的である。
【0020】 LANネットワーク化環境において用いる場合、コンピュータ20はネットワ
ークまたはアダプタ53を経由してローカル・ネットワーク51に接続する。W
ANネットワーク化環境において用いる場合、コンピュータ20は通常モデム5
4、またはインターネットのような広域ネットワーク52を通じて通信を確立す
るその他の手段を含む。モデム54は、内蔵型でも外付けでもよく、シリアル・
ポート・インターフェース46を介してシステム・バス23に接続してある。ネ
ットワーク化環境では、コンピュータ20に関して図示したプログラム・モジュ
ール、またはその部分をリモート・メモリ記憶装置に格納することも可能である
。このネットワーク接続は一例であり、コンピュータ間に通信リンクを確立する
その他の手段も使用可能であることは認められよう。
【0021】 図2を参照すると、フロー図は、ファイル・システムの動作によって格納した
データ・ストリーム間における実際の比較を全く必要とせずに、ファイル・デー
タ・ストリーム間で比較を行なう方法を示す。ファイル・データ・ストリーム比
較の始原(genesis)は、オペレータがファイルにおいて作業を行なって
おり、記憶媒体102上にファイル・データ・ストリームを格納する時に開始す
る。ファイル・データ・ストリームおよびその格納は、当技術分野では双方とも
公知であり、通常、前述のようなローカルおよびリモート記憶媒体のいずれかに
、テキストまたは二進情報のいずれかを書き込むことを含む場合が多い。以下、
このような格納を総じてディスク上に格納すると言うことにする。
【0022】 ディスク上へのデータ・ストリームの格納後、格納したデータ・ストリームに
一意に対応する第1署名104の生成を呼び出す。尚、署名とは、以下で説明す
るが、より大きなデータ・ストリームのサイズを小さくした表現であることは認
められよう。例えば、同じユーザのセッションの一部としてファイル上で作業を
更に行なったり、またはファイルを格納し閉じてから当該ファイルを再度開いて
作業を続ける場合、ファイルのデータ・ストリームは、ファイルを更新する毎に
、頻繁に修正または変更する(106)。何らかの理由でデータ・ストリームを
変更しない場合、またはディスク110に再度格納しない場合、データ・ストリ
ームは、ステップ104で生成した当該データ・ストリームの第1署名108を
維持している。
【0023】 一方、データ・ストリームを変更しディスク110に書き戻し格納した場合、
更新した即ち第2の署名112を生成するステップを呼び出す。この時点で、2
つの異なるデータ・ストリームに対応して、2つの署名が存在する。最初に格納
したデータ・ストリームに対応する第1署名、および変更したデータ・ストリー
ムに対応する第2署名である。しかしながら、ここで認めるべきことは、第1お
よび第2署名は双方共、ファイル・システムの動作によって格納した実際のデー
タ・ストリームよりも遥かに短いということである。これについては、以下で詳
細に説明する。したがって、データ・ストリームが同一かまたは異なるかについ
て判定を行なわなければならない場合、従来技術において行われているように、
データ・ストリーム全長に及ぶ実際の1対1の比較ではなく、対応する署名を比
較することにより、一層迅速な判定を行なうことができる。
【0024】 更に認めるべきは、データ・ストリームの比較は、単にデータを比較するため
ファイル・システム内部で行われるのではなく、通常、他のファイル管理ユーテ
ィリティの実行を伴う種々の前後関係の理由で行なうということである。したが
って、管理ユーティリティを実行するとき(114)、データに対応する署名を
比較する(116)。典型的なデータ管理ユーティリティは、ファイル復元、フ
ァイル複製、内容インデックス化、格納、更新、データ冗長性、およびその他の
同様に関連する管理ユーティリティを含み、なおもこれらに限定される訳ではな
い。その他多数の現在存在するユーティリティも、ファイル・データ・ストリー
ムを比較する必要性があり、更に未だ想定されていないユーティリティも、ファ
イル・データ・ストリームを比較する必要性があるものもあろう。しかしながら
、データ・ストリームの比較は、実際のデータの1対1全長比較を実行すること
によってできなくはないが、今日のコンピュータ・アプリケーションは、本発明
のネーティブ・データ署名から得られる迅速性および精度を必要とすることを注
記するのは重要である。
【0025】 図2Aを参照すると、ディスク102にデータ・ストリームを格納するとき、
署名NDS104を生成するプロセスを呼び出す。このプロセスが開始すると、
データ・ストリームを割当ユニット124に区分即ち分離する。割当ユニット1
24のサイズはいずれにすることも可能であるが、一実施形態では、4Kバイト
から256Kバイトの範囲のサイズとする。この選択したサイズは、通常、ディ
スク・フォーマットの関数であり、そのサイズはユーザが指定するか、あるいは
デフォルトとして選択しコンピュータによって適切なサイズに決定することがで
きる。一旦割り当てられると、一意の変更識別子(UCI)126を各割当ユニ
ット毎に生成する。UCIは、割当ユニット間の区別を行なう手段であり、種々
の実用的な実施形態を採用することができる。
【0026】 一実施形態では、UCIは単調増加手段であり、各割当ユニットがそれ自体の
UCIを受け取ること、および単調増加タイム・ラグまたはカウンタのように、
時間が進んでもUCIが決して繰り返されないことを保証する。単調増加手段は
、UCIには特に適している。何故なら、割当ユニットによってデータ・ストリ
ームに単調増加タイム・ラグを刻印することにより、他の管理ユーティリティの
実行が容易になるからである。例えば、入手可能な最新バージョンのファイルを
得るユーザ実行の間、ファイルの構造においてどの時点で変更が生じたのかを理
解することは非常に重要である。各割当ユニットが一意の時間スタンプを有すれ
ば、コンピュータにとってどのバージョンのファイルが入手可能な最新版である
かを確認することは簡単である。このようにUCIに適した別のデバスも当技術
分野では既に公知であり、データベース管理システムにおいて見られる更新連番
、種々のクロック、ローカル・カウンタ、または割当ユニットに一意性を与える
その他の類似したあらゆる手段を含むことができ、しかもこれらに限られる訳で
はない。コンピュータにIDを用いることによって、これをコンピュータのネッ
トワークに拡張し、それらの間で作成したブロードキャストにおいて用いること
ができる。言い換えると、ネットワーク上の各コンピュータがそれを識別するI
Dを有する場合、IDはUCIの一部を構成することができる。このように、U
CIの検査により、当該UCIを生成したコンピュータを特定する。コンピュー
タIDをUCIの一部として含ませると、コンフリクトや本発明のコンピュータ
・ネットワークにおいて用いる場合に発生するその他の問題を分類するのに役立
てることができる。
【0027】 一旦UCIを生成したなら、UCIをNDS128即ちデータ・ストリームの
一意の署名に組み込む。尚、各UCIは、好ましくは、数が64までを含む範囲
の一連のビットで構成することは認められよう。したがって、データ・ストリー
ム自体は非常に大きいが、NDSはそれを大幅に縮小した表現であることは明白
である。例えば、UCIが実際に64ビットまでの範囲を取り、割当ユニットが
4Kバイトから256Kバイトまでのサイズを単位とするデータ・ストリームを
格納する場合、時間効率は、NDSと比較すると、大幅に改善する。この例では
、効率は、それぞれ500:1および32,000:1程度に改善する。その結
果、NDSを比較することによるデータ・ストリームの比較は、実際のデータ・
ストリーム間の1対1比較よりも時間的に格段に短くて済む。このような時間効
率の改善は、コンピュータ産業では常に歓迎される。
【0028】 以上の説明では、UCI、割当ユニットおよびNDSについて具体的な数値に
よる好ましいサイズを記載したが、特定の数値は限定ではなく、単なる代表とし
て解釈すべきことである。ここでも同様に重要なのは、特定のデータ・ストリー
ムに対して生成する署名が、実際にデータ自体を比較する必要がある場合とは異
なり、データ比較の高速化を可能にするサイズであるということである。この概
念を具体化するデータ・ストリーム署名の変形は全て、本発明の範囲内に該当し
、単一のコンピュータまたはネットワークにおけるコンピュータの集合のための
ものと見なすこととする。
【0029】 図2Bを参照すると、ユーザがデータ・ストリームを変更または更新しディス
ク110に再度格納したときに、別の、即ち、第2のNDS112の生成を呼び
出す。第2NDS112の生成を開始する際、ファイル・データ・ストリームお
よび対応する割当ユニット(複数の割当ユニット)が変更された場所(複数の場
所)を判定する(130)。次に、更新が行われ、更新したUCI132を対応
する割当ユニットに指定することによって、割当ユニット(複数の割当ユニット
)は、その中に変更後のデータ・ストリームを有することになる。以前と同様、
このような更新後のUCIは、元のタイム・ラグよりも1タイム・ラグだけ時間
的に遅れたものとすることができる。最終的に、元の即ち第1のデータ・ストリ
ームに対応する以前の即ち第1のNDSを変更することによって、第2の即ち更
新したNDSを生成し(134)、変更したデータ・ストリームを精度高く反映
する。このNDS更新を行なうには、元々割り当ててあったUCI(複数)を、
変更後の割当ユニットに対応する更新UCI(複数)と置換する。第1および第
2NDSを生成するステップを更に詳しく例示するために、これより図3を参照
する。
【0030】 図3において、第1NDS136は、6つの個別割当ユニットに分離したデー
タ・ストリームに対するUCIの集合体に対応するものとして示している。各割
当ユニットには、UCI−1、UCI−2等UCI−6までの範囲の対応するU
CIを指定してある。新たなデータをデータ・ストリームに追加した後、更新即
ち第2NDS138を生成する。第2NDS138は、6つの割当ユニットに分
離された元のデータ・ストリームに対するUCIの集合体に加えて、追加の新デ
ータに対応する追加の2つの割当ユニットに対応する。尚、この例では、新たな
データを添付したこと以外に第1データ・ストリームを変更しなかったので、第
2署名138の第1部分は対応して無変化のままとなる。何故なら、基礎的なデ
ータ・ストリームは同一であるからである。つまり、第2NDS138は、UC
I−1からUCI−6までの範囲である集合UCIに対応し、更に、追加の新デ
ータに対応して、サイズがUCI−6(UCI−n)からある値UCI−8(U
CI−n+x)に増大する。加えて、NDSはサイズが成長するだけでなく、第
1NDSを生成した後の時点で更新されたので、変更データ・ストリームを内部
に有する割当ユニットに更新UCIを割り当てる。したがって、追加の新データ
に対応する第2NDS138は、無変化のままであるデータ・ストリームの部分
に対するUCI−1、UCI−2...UCI−6までの範囲のUCIと、後の
時刻値のUCIを有する追加データに対する2つの割当ユニットに対するUCI
−7.1、UCI−8.1とによって組み立てられる。
【0031】 ここで認めるべきは、適切なアルゴリズムを用いれば、例えば、第1および第
2NDS136,138間で迅速な比較を実行し、データ・ストリームが同一か
または異なるかを判定できるだけでなく、データ・ストリームをディスクにバッ
クアップする際に、格納は最後の割当ユニットUCI−7.1、UCI−8.1
についてのみ行なうだけでよいということである。最初の6つの割当ユニットに
は既に格納してあるので、これらを第2NDSと対応付けて再度格納することに
よって、貴重な記憶空間を不当に浪費することはない。このように、「余分な」
記憶空間によって、例示のオペレーティング・システムやその他の管理ユーティ
リティには一層有利になる。
【0032】 更に、少なくとも2つのデータ・ストリームが異なることがわかったときにあ
る種の管理ユーティリティを実行する際、即ち、NDS116を比較することに
よって、管理ユーティリティはどの割当ユニット(複数の割当ユニット)におい
て変更が生じたかを把握しているので、実際のデータ内において変更(複数の変
更)が生じた場所(複数の場所)を判定するプロセスも迅速に処理されることも
認められよう。更に別の例示として、データ・ストリームに追加の新データを添
付するのではなく、データ・ストリームを再度修正する場合、第1割当ユニット
に対応して生じたデータ・ストリームにおける変更に対して、第3NDS142
を生成する。この例では、第3NDS142は、更に更新したUCIを第1割当
ユニットに結び付ける(tag)ことによって、データ・ストリーム内の変更を
明確に反映し、UCIの集合は、例えば、UCI−1.2、UCI−2、UCI
−3ないしUCI6、UCI−7.1、UCI−8.1から読み取ることにな
る。次いで、迅速比較時に、第1割当ユニットに分離したデータ・ストリームに
おいて変更があったこと、即ち、UCI−1からUCI−1.2となったことを
判定することができる。こうして、適切な実行コマンド時に、比較および更新の
速度において著しい進歩が実現する。
【0033】 図示のUCIは、7または7.1というような数値として説明したが、これに
加えて、UCIは、データ・ストリームの同一性を迅速に判断する方法を可能に
するため、またはファイルのどの部分を格納する必要があるか判定するためのあ
らゆる識別手段とすることも可能である。他の適当な例には、二進構成、キャラ
クタ、文字、時間指定、またはその他のあらゆる適当な手段を含むこともでき、
しかもこれらに限定される訳ではない。加えて、UCIは変更または更新したデ
ータ・ストリームに割り当てるものとして説明したが、UCIは、これ以外にも
、データ・ストリームの変更、更新、または集合化が最初になくても、クロック
によって数秒毎に生成される周期的なフラグとして、単に指定することも可能で
ある。このように、これまでの説明は、限定としてではなく単なる代表として解
釈して当然であることは認められよう。
【0034】 また、UCIは、コンピュータまたはその他の機構を識別するIDの使用を通
じて、変更が生じたコンピュータのアイデンティティ(identity)を符
号化することも可能である。例えば、多くのネットワークでは、各コンピュータ
が一意のIDを有し、ネットワーク上の他のコンピュータから当該コンピュータ
を区別するためにこれを利用することができる。このIDはUCIの一部とする
ことも可能である。その場合、UCIを検査することにより、変更を行なったコ
ンピュータを特定することができる。また、各コンピュータが、単純なカウンタ
またはその他の機構を用いてUCIの一部を生成し続けるようにすることも可能
である。何故なら、単純なカウンタを一意のIDと組み合わせると、一意のUC
Iが作成され、ネットワーク内の他のいずれのコンピュータが作成する他のいず
れのUCIとも混同することはないからである。ネットワーク環境において一意
のUCIを指定する他の方式も使用可能である。例えば、共通のカウンタからU
CIを得ることができるようにする方式も用いることができるが、性能上の理由
で、この手法は望ましくない場合もある。別の例として、数値のブロックを共通
のソースから各コンピュータに割り当てることも可能である。この場合、ローカ
ル・コンピュータは、必要に応じて、割り当てられたブロックからローカルUC
Iを指定することができる。この手法は、UCIの作成に伴うオーバーヘッドを
削減しつつ、なおも中央のカウンタを使用することができる。しかしながら、こ
のような手法は、コンピュータIDをローカル・カウンタと共に用いることによ
って既に得られている利点のいずれももたらさない場合もある。
【0035】 図4を参照すると、本発明を実現するのに適したファイル例は、属性の集合体
としてファイル144の構成を含む。データ・ストリーム146および署名14
8は、そのような2つの属性である。これら図示の属性は、Microsoft
Windows NTに特別に開発したNTFSファイルが使用する属性の変
更リストを表わす。NTFSファイル・システムについては、Helen Cu
ster(ヘレン・カスター)著、Microsoft Press発行のIn
side the Windows NT File System(Wind
ows NTファイル・システムの内側)に詳な説明があり、その内容はこの言
及により本願にも含まれるものとする。図4において、ファイル144を構成す
る属性は、2つの基本的グループに分割することができる。第1グループはシス
テム属性を含み、第2グループはユーザ属性を含む。一般に、システム属性は、
システムがその種々の機能を実行するために必要な情報または要求された情報を
格納するために用いる。このようなシステム属性は、一般に、ロバストなファイ
ル・システムを実現することができる。システム属性の正確な数および形式は、
利用する個々のオペレーティング・システムまたは個々のファイル・システムに
完全に依存する。一方、ユーザ属性は、ユーザ制御データを格納するために用い
る。これは、ある状況の下ではユーザは1つ以上の属性へのアクセスを得られな
いということを言っているのではない。しかしながら、ユーザ属性は、ユーザま
たはクライアント・プログラムが対象のデータをプログラムに格納することがで
きる格納場所を定義する。図4では、システム属性を全体的に150で示し、ユ
ーザ属性を全体的に152で示す。
【0036】 更に、システム属性は、例えば、標準情報属性154、属性リスト156、名
称属性158、およびセキュリティ記述属性160で構成することができる。標
準情報属性154は、読み取りのみ、システム、隠れ等というような、標準的な
「MS−DOS」属性を表わす。属性リスト156は、ファイルがマスタ・ファ
イル・テーブル内において1つよりも多い記憶レコードを占める場合に、ファイ
ルを構成する追加属性の場所をNTFSが識別する際に用いる。マスタ・ファイ
ル・テーブルとは、ファイルまたはディレクトリの常駐属性全てを格納する場所
のことである。名称属性158は、ファイルの名称である。ファイルは、例えば
、長い名称、短いMS−DOS名称等、多数の名称属性をNTFS内に有するこ
とができる。セキュリティ記述属性160は、誰がファイルを所有し、だれがそ
れにアクセスすることができるかを指定する際にWindows NTが使用す
るデータ構造を含む。加えて、ユーザ・グループ152およびシステム・グルー
プ150双方は、現在および今後の使用に利用可能な他のシステムおよびユーザ
属性161、163も有する。これらの属性については、先に言及して本願にも
含まれるものとしたInside the Windows NT File
Systemに詳細に説明されている。
【0037】 動作において、図5を参照すると、上述のような属性を有するファイル144
は、(i)データ・ストリーム146を割当ユニット(複数の割当ユニット)1
62に分離し、(ii)各割当ユニット162毎にUCI164を生成し、(i
ii)各UCI(この例では6つ)をファイル144の署名属性148に組み込
むことによって、データ・ストリーム146に対して生成したNDS即ち署名属
性148を有する。NTFSの特定の実施形態では、署名属性148は、$SI
GNATURE:StreamNameとして示している。しかしながら、署名
属性は多くの代替物でも表記可能であるので、このような表記は、限定としてで
はなく、代表として解釈して当然である。
【0038】 図1のオペレーティング環境例ならびに図4および図5のNTFSシステムに
関係するコンピュータ読み取り可能媒体の一部として、データ・ストリームを比
較するためのNDS生成の詳細な説明に関して、NDSの生成も効率的な達成の
ために利用可能な無数の代替物を有することが認められよう。一実施形態では、
システムは、ディスク上に格納してあるデータ・ストリーム146のサイズを判
定し、データ・ストリームを、適切な数の適切なサイズに決定した割当ユニット
162に分離する。一旦割り当てられると、次にシステムは、各割当ユニット毎
に1つのUCIを生成するために、割当ユニットをいくつ利用したかについて判
定を行なう。データ・ストリームを変更しディスク上に格納する毎に単調に増加
するタイム・タグを適用したUCIによって、各割当ユニットを識別可能とする
手段も好ましい。例えば、本発明の現在において好適な一実施形態では、NTF
SのLog Sequence Number(LSN:ログ・シーケンス番号
)をUCIとして用いる。NTFSでは、LSNは、ログ・ファイル、即ち、N
TFSのシステム・ファイルに書き込まれるレコードの付番によって得られるイ
ンスタンスとして定義する。あるいは、現在において好適な別の実施形態では、
NTFSのUpdate Sequence Number(USN:更新シー
ケンス番号)をUCIとして用いる。NTFSでは、USNは単調増加システム
属性であり、閉鎖動作を実行する毎に生成し割り当てる。LSNについては、先
に言及して本願にも含まれるものとしたInside the Windows
NT File Systemに詳細に説明されている。
【0039】 一旦各UCIを生成したなら、システムは、得られたUCIをNDS148に
組み込む。その後、オペレーティング環境例は、データ・ストリームにおいてい
つ変更が生じたかについて判定を行い、変更が生じた場合、その変更をディスク
に再度セーブしたか否かについて判定を行なう。セーブした場合、次にシステム
はこの変更(複数の変更)によってどの割当ユニット(複数の割当ユニット)が
影響を受けたかについて判定を行い、変更した割当ユニット(複数の割当ユニッ
ト)の各々に更新UCIを適用可能とする。次に、更新UCIを、データ・スト
リームに対して行なった変更の影響を受けなかった割当ユニットに関連するUC
Iと結合することにより、第2NDSを生成する。次いで、第1および第2ND
Sを比較することによって、データ・ストリーム間で比較を行なうことができる
。尚、第1および第2NDSを比較する手段は、通常、特殊目的コンピュータま
たは汎用コンピュータの一部として、先に定義したように、ディスク上に格納し
てあるプログラム・モジュールの一部として使用可能であることは認められよう
【0040】 要約すると、本発明は、データ・ストリームが同一かまたは異なるかについて
、実際のデータ・ストリーム間で比較を行なうことなく、迅速に判定する信頼性
高いシステムおよび方法を提供する。更に、データ・ストリームが異なる場合、
本発明は、データ・ストリーム間のどこに変更が生じたかについても、データ・
ストリームの全サイズを実際に比較する必要なく、迅速に判定することができる
。このような方法およびシステムを達成するには、ファイル・システムの動作に
よって格納した各データ・ストリーム毎にNDSを生成する。この場合、各ND
Sは、対応するデータ・ストリームと比較すると、そのサイズが極めて小さくな
っている。
【0041】 本発明は、その精神または本質的な特徴から逸脱することなく、他の特定形態
においても具体化可能である。前述の実施形態は、あらゆる観点においても、限
定的ではなく例示として解釈するものとする。したがって、本発明の範囲は、前
述の説明ではなく、添付した特許請求の範囲によって示すこととする。特許請求
の範囲の意味および範囲に該当する全ての変更は、その範囲内に含まれるものと
する。
【図面の簡単な説明】
【図1】 本発明に適したオペレーティング環境を備えるシステム例である。
【図2】 本発明にしたがってファイル・データ・ストリームの比較を行なう階層動作の
フロー図である。 図2Aは図2のファイル・データ・ストリーム比較ルーチンが呼び出すネーテ
ィブ・データ署名を生成するフロー図である。 図2Bは図2のファイル・データ・ストリーム比較ルーチンが呼びだすネーテ
ィブ・データ署名を更新するフロー図である。
【図3】 異なる一意の変更識別子を有するネーティブ・データ署名間の比較例の図であ
る。
【図4】 ファイル・システムの動作によってどのようにネーティブ・データ署名を格納
することができるかに関する例である。
【図5】 データ・ストリーム属性から生成した署名属性を有するファイル例の図である
【手続補正書】
【提出日】平成12年9月11日(2000.9.11)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【請求項12】 請求項9記載のコンピュータ読取可能媒体において、前記
第2のデータ・ストリームは、変更したデータを有する前記第1のデータ・スト
リームであり、前記第2のデータ・ストリームに対応する前記第2の署名を生成
する前記プログラム・コード手段が、更に、前記第1の署名における前記第1の
一意の変更識別子の少なくとも一部を、更新した一意の変更識別子と置換して、
前記第2の署名を形成できるようにすることを含むこと、を特徴とするコンピュ
ータ読取可能媒体。
【手続補正書】
【提出日】平成13年3月6日(2001.3.6)
【手続補正1】
【補正対象書類名】図面
【補正対象項目名】図1
【補正方法】変更
【補正内容】
【図1】
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図2
【補正方法】変更
【補正内容】
【図2】
【手続補正3】
【補正対象書類名】図面
【補正対象項目名】図4
【補正方法】変更
【補正内容】
【図4】
【手続補正4】
【補正対象書類名】図面
【補正対象項目名】図5
【補正方法】変更
【補正内容】
【図5】
───────────────────────────────────────────────────── フロントページの続き (72)発明者 キャブレラ,ルイス・フェリペ アメリカ合衆国ワシントン州98004,ベル ビュー,キラーニー・ウェイ・サウス・ウ エスト 2009 Fターム(参考) 5B075 ND02 NK46 5B082 EA07 GA04 【要約の続き】 連のビットにUCIを組み込む。こうして、64ビット を有するUCIであっても、NDS(148)間で比較 を行なうことにより、データ・ストリーム(146)を 比較する時間効率は、割当ユニット(162)のサイズ に応じて、500:1または32,000:1程度に改 善する。

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータ・オペレーティング・システムのファイル・シ
    ステムにおける、ファイル・データ・ストリームの比較方法であって、 前記ファイル・システムの動作によって格納した各データ・ストリームと関連
    付ける署名属性を定義するステップと、 各前記データ・ストリームとの関連のために署名属性を生成するステップと、 少なくとも2つの前記データ・ストリームの前記署名属性を比較し、前記少な
    くとも2つのデータ・ストリームが同一か否かについて判定を行なうステップと
    、 から成るファイル・データ・ストリームの比較方法。
  2. 【請求項2】 前記署名属性を生成する前記ステップが、更に、 各前記データ・ストリームを割当ユニットに分離するステップと、 前記割当ユニットの各々に対して一意の変更識別子を生成するステップと、 前記一意の変更識別子を前記署名属性に組み込むステップと、 を含む、請求項1記載のファイル・データ・ストリームの比較方法。
  3. 【請求項3】 前記一意の変更識別子を割り当てる前記ステップが、更に、
    前記一意の変更識別子を前記割当ユニットの各々に指定する単調増加手段を備え
    るステップを含む、請求項2記載のファイル・データ・ストリームの比較方法。
  4. 【請求項4】 前記データ・ストリームのいずれかにデータ変更が生じた場
    合、更に、 前記割当ユニットと関連する前記一意の変更識別子を更新することによって、
    前記データの変更を有する前記データ・ストリームに対応する前記割当ユニット
    を更新するステップと、 前記一意の変更識別子を前記更新した一意の変更修正子と置換することによっ
    て、前記データの変更を有する前記データ・ストリームに対する署名属性を更新
    するステップと、 を含む、請求項2記載のファイル・データ・ストリームの比較方法。
  5. 【請求項5】 前記一意の変更識別子を生成する前記ステップが、前記デー
    タ・ストリームをディスクに格納するときはいつでも、単調増加手段によって、
    前記データ・ストリームに刻印するステップを含む、請求項2記載のファイル・
    データ・ストリームの比較方法。
  6. 【請求項6】 前記一意の変更識別子を生成する前記ステップが、64まで
    を含む一連のビットを与えるステップを含む、請求項2記載のファイル・データ
    ・ストリームの比較方法。
  7. 【請求項7】 前記データ・ストリームを割当ユニットに分離する前記ステ
    ップが、各前記データ・ストリームを、4Kバイトから256Kバイトまでの範
    囲のサイズのセグメントに区分することから成る、請求項2記載のファイル・デ
    ータ・ストリームの比較方法。
  8. 【請求項8】 前記署名を生成する前記ステップが、ローカルに生成するカ
    ウンタによってコンピュータを一意に識別する識別子を組み合わせることによっ
    て、一意の変更識別子を生成するステップを含む、請求項1記載のファイル・デ
    ータ・ストリームの比較方法。
  9. 【請求項9】 コンピュータ・オペレーティング・システムのファイル・シ
    ステムにおけるファイル・データ・ストリームの比較方法であって、 (i)第1データ・ストリームを第1割当ユニットに分離し、 (ii)前記第1割当ユニットの各々に一意の第1変更識別子を結び付け、 (iii)前記一意の第1変更識別子の各々を第1署名属性に組み込む、 ことにより、前記第1データ・ストリームに第1署名を生成するステップと、 第2データ・ストリームに第2署名を生成するステップと、 前記第1および第2署名を比較し、前記第1および第2データ・ストリームが
    同一か否かについて判定を行なうステップと、 から成るファイル・データ・ストリームの比較方法。
  10. 【請求項10】 前記第2データ・ストリームが、変更データを有する前記
    第1データ・ストリームであって、前記第2データ・ストリームに対して前記第
    2署名を生成する前記ステップが、 前記割当ユニットのどれが、前記第1データ・ストリームの前記変更データに
    対応するかについて判定を行なうステップと、 前記第1データ・ストリームの前記変更データに対応する前記割当ユニットに
    、一意の更新変更識別子を指定するステップと、 前記第1データ・ストリームの前記変更データに対応する前記割当ユニットに
    対応する前記一意の変更識別子の全てを、前記一意の更新変更識別子と置換する
    ことによって、前記第1署名を改訂し、第2署名属性を形成するステップと、 を含む、請求項9記載のファイル・データ・ストリームの比較方法。
  11. 【請求項11】 更に、前記ファイル・システムの動作によって、前記第1
    および第2署名属性を、それぞれ、第1および第2ファイルに格納するステップ
    を含む、請求項10記載のファイル・データ・ストリームの比較方法。
  12. 【請求項12】 前記第1および第2署名を比較する前記ステップが、前記
    第1および第2署名属性を比較するステップを含む、請求項11記載のファイル
    ・データ・ストリームの比較方法。
  13. 【請求項13】 前記第1および第2署名属性を比較する前記ステップが、
    前記第1および第2ファイルを比較するステップを含む、請求項12記載のファ
    イル・データ・ストリームの比較方法。
  14. 【請求項14】 前記一意の第1変更識別子の各々が、前記変更識別子を作
    成したエンティティの識別子から成る、請求項9記載のファイル・データ・スト
    リームの比較方法。
  15. 【請求項15】 コンピュータ実行可能命令を有するコンピュータ読み取り
    可能媒体であって、 第1データ・ストリームをいつ記憶媒体に格納したかを特定する手段と、 前記記憶媒体上に格納した前記第1データ・ストリームのサイズを判定し、該
    第1データ・ストリームを適切な数の割当ユニットに区分する手段と、 前記第1データ・ストリームを区分した前記適切な数の割当ユニットがいくつ
    であるかについて判定を行い、各前記割当ユニット毎に1つずつ、一意の変更識
    別子を生成する手段と、 各前記変更識別子を、前記第1データ・ストリームに対応する第1署名に組み
    込む手段と、 第2データ・ストリームに対応する第2署名を生成し、前記第1および第2署
    名を比較して、前記第1および第2データ・ストリームが同一か否かについて判
    定を行なう手段と、 から成るコンピュータ読み取り可能媒体。
  16. 【請求項16】 更に、前記割当ユニットに対して適切なサイズを決定する
    手段を備える、請求項15記載のコンピュータ読み取り可能媒体。
  17. 【請求項17】 更に、前記第1および第2署名をそれぞれ第1および第2
    署名属性に組み込み、前記第1および第2署名属性をそれぞれ第1および第2フ
    ァイルに格納する手段を備え、前記第1および第2ファイルが、それぞれ、前記
    第1および第2データ・ストリームを内部に格納する、請求項15記載のコンピ
    ュータ読み取り可能媒体。
  18. 【請求項18】 前記第2データ・ストリームに対応する前記第2署名を生
    成する前記手段は、前記第2データ・ストリームが、前記変更データを内部に有
    する前記第1データ・ストリームであり、更に、前記第1署名内の前記一意の変
    更識別子を一意の更新変更識別子と置換し、前記第2署名を形成する手段を備え
    る、請求項15記載のコンピュータ読み取り可能媒体。
  19. 【請求項19】 コンピュータ・プログラム生産物であって、 前記ファイル・システムの動作によって格納した各データ・ストリームと関連
    付ける署名属性を定義する手段と、 各前記データ・ストリームとの関連のために署名属性を生成する手段と、 少なくとも2つの前記データ・ストリームの前記署名属性を比較し、前記少な
    くとも2つのデータ・ストリームが同一であるか否かについて判定を行なう手段
    と、 を備えるコンピュータ・プログラム生産物。
  20. 【請求項20】 前記署名属性を生成する前記手段が、更に、 各前記データ・ストリームを割当ユニットに分離する手段と、 前記割当ユニットの各々に一意の変更識別子を生成する手段と、 前記一意の変更識別子を前記署名属性に組み込む手段と、 を備える、請求項19記載のコンピュータ・プログラム生産物。
  21. 【請求項21】 前記一意の変更識別子を割り当てる前記手段が、更に、前
    記一意の変更識別子を前記割当ユニットの各々に割り当てる単調増加手段を設け
    る手段を備える、請求項20記載のコンピュータ・プログラム生産物。
  22. 【請求項22】 前記データ・ストリームのいずれかにおいてデータの変更
    が生じた場合、更に、 前記割当ユニットと関連する前記一意の変更識別子を更新することによって、
    前記データの変更を有する前記データ・ストリームに対応する前記割当ユニット
    を更新する手段と、 前記一意の変更識別子を前記更新した一意の変更修正子と置換することによっ
    て、前記データの変更を有する前記データ・ストリームに対する署名属性を更新
    する手段と、 を備える、請求項20記載のコンピュータ・プログラム生産物。
  23. 【請求項23】 前記一意の変更識別子を生成する前記手段が、前記データ
    ・ストリームをディスクに格納するときはいつでも、単調増加手段によって、前
    記データ・ストリームに刻印する手段を備える、請求項20記載のコンピュータ
    ・プログラム生産物。
JP2000528932A 1998-01-21 1998-09-08 ファイル・システムにおけるネーティブ・データ署名 Expired - Fee Related JP4283440B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/010,097 US5978814A (en) 1998-01-21 1998-01-21 Native data signatures in a file system
US09/010,097 1998-01-21
PCT/US1998/018693 WO1999038097A1 (en) 1998-01-21 1998-09-08 Native data signatures in a file system

Publications (3)

Publication Number Publication Date
JP2002501258A true JP2002501258A (ja) 2002-01-15
JP2002501258A5 JP2002501258A5 (ja) 2009-02-12
JP4283440B2 JP4283440B2 (ja) 2009-06-24

Family

ID=21743849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000528932A Expired - Fee Related JP4283440B2 (ja) 1998-01-21 1998-09-08 ファイル・システムにおけるネーティブ・データ署名

Country Status (6)

Country Link
US (1) US5978814A (ja)
EP (1) EP1055184B1 (ja)
JP (1) JP4283440B2 (ja)
AT (1) ATE447211T1 (ja)
DE (1) DE69841262D1 (ja)
WO (1) WO1999038097A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004114137A1 (ja) * 2003-06-17 2004-12-29 Fujitsu Limited ファイル管理プログラム、ファイル管理方法およびファイル管理装置
JP4592115B1 (ja) * 2009-05-29 2010-12-01 誠 後藤 ファイル格納システム、サーバ装置及びプログラム
WO2012101707A1 (ja) * 2011-01-28 2012-08-02 日本電気株式会社 ストレージシステム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363429B1 (en) * 1999-04-20 2002-03-26 3Com Corporation Method and system for automatic determination of priority data streams on computer networks
JP2001111960A (ja) * 1999-10-12 2001-04-20 Sharp Corp データ記録方法及びデータ復旧方法
SE9904250L (sv) * 1999-11-24 2001-05-25 Telia Ab Förfarande och system vid dataöverföring
US6560615B1 (en) 1999-12-17 2003-05-06 Novell, Inc. Method and apparatus for implementing a highly efficient, robust modified files list (MFL) for a storage system volume
US7278128B1 (en) * 2003-04-11 2007-10-02 Xilinx, Inc. Method of altering a bitstream
US9678967B2 (en) * 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
US7484096B1 (en) * 2003-05-28 2009-01-27 Microsoft Corporation Data validation using signatures and sampling
US7457791B1 (en) 2003-05-30 2008-11-25 Microsoft Corporation Using invariants to validate applications states
US20060020594A1 (en) * 2004-07-21 2006-01-26 Microsoft Corporation Hierarchical drift detection of data sets
US7761766B2 (en) * 2005-11-15 2010-07-20 I365 Inc. Methods and apparatus for modifying a backup data stream including logical partitions of data blocks to be provided to a fixed position delta reduction backup application
US7676509B2 (en) * 2006-02-01 2010-03-09 I365 Inc. Methods and apparatus for modifying a backup data stream including a set of validation bytes for each data block to be provided to a fixed position delta reduction backup application
BRPI0708569B1 (pt) * 2006-03-07 2019-08-20 Thomson Licensing Dispositivo de comunicação portátil e base adaptada para comunicar-se com um dispositivo de comunicação portátil
US7685211B2 (en) * 2007-03-27 2010-03-23 Microsoft Corporation Deterministic file content generation of seed-based files
US8973135B2 (en) 2011-09-29 2015-03-03 Microsoft Technology Licensing, Llc Selectively scanning objects for infection by malware
US10445168B2 (en) 2013-06-18 2019-10-15 Nxp Usa, Inc. Device and method for executing a program, and method for storing a program
WO2014203030A1 (en) * 2013-06-18 2014-12-24 Freescale Semiconductor, Inc. Detection of data corruption in a data processing device
US10387264B1 (en) * 2015-06-25 2019-08-20 EMC IP Holding Company LLC Initiating backups based on data changes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02148235A (ja) * 1988-11-30 1990-06-07 Toshiba Corp データ退避方式
US5454101A (en) * 1992-09-15 1995-09-26 Universal Firmware Industries, Ltd. Data storage system with set lists which contain elements associated with parents for defining a logical hierarchy and general record pointers identifying specific data sets
US5579223A (en) * 1992-12-24 1996-11-26 Microsoft Corporation Method and system for incorporating modifications made to a computer program into a translated version of the computer program
US5590318A (en) * 1993-11-18 1996-12-31 Microsoft Corporation Method and system for tracking files pending processing
US5488702A (en) * 1994-04-26 1996-01-30 Unisys Corporation Data block check sequence generation and validation in a file cache system
US5832487A (en) * 1994-12-15 1998-11-03 Novell, Inc. Replicated object identification in a partitioned hierarchy
JP3856855B2 (ja) * 1995-10-06 2006-12-13 三菱電機株式会社 差分バックアップ方式
US5812793A (en) * 1996-06-26 1998-09-22 Microsoft Corporation System and method for asynchronous store and forward data replication

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004114137A1 (ja) * 2003-06-17 2004-12-29 Fujitsu Limited ファイル管理プログラム、ファイル管理方法およびファイル管理装置
JP4592115B1 (ja) * 2009-05-29 2010-12-01 誠 後藤 ファイル格納システム、サーバ装置及びプログラム
JP2010277374A (ja) * 2009-05-29 2010-12-09 Makoto Goto ファイル格納システム、サーバ装置及びプログラム
WO2012101707A1 (ja) * 2011-01-28 2012-08-02 日本電気株式会社 ストレージシステム
JP5534043B2 (ja) * 2011-01-28 2014-06-25 日本電気株式会社 ストレージシステム
US9858287B2 (en) 2011-01-28 2018-01-02 Nec Corporation Storage system

Also Published As

Publication number Publication date
JP4283440B2 (ja) 2009-06-24
ATE447211T1 (de) 2009-11-15
EP1055184A1 (en) 2000-11-29
EP1055184A4 (en) 2003-01-02
US5978814A (en) 1999-11-02
DE69841262D1 (de) 2009-12-10
EP1055184B1 (en) 2009-10-28
WO1999038097A1 (en) 1999-07-29

Similar Documents

Publication Publication Date Title
JP4283440B2 (ja) ファイル・システムにおけるネーティブ・データ署名
US5774715A (en) File system level compression using holes
US5819298A (en) File allocation tables with holes
US5931935A (en) File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
US6996696B2 (en) Compressed file system for non-volatile RAM
US5652865A (en) Linked file storage in a computer memory system
US7587569B2 (en) System and method for removing a storage server in a distributed column chunk data store
US7676481B2 (en) Serialization of file system item(s) and associated entity(ies)
US20090164440A1 (en) Quick filename lookup using name hash
US20050010592A1 (en) Method and system for taking a data snapshot
US9002800B1 (en) Archive and backup virtualization
JPH10198587A (ja) ファイル・システムの間接アドレシング方法及び装置
CA2398148C (en) System and method for managing bi-directional relationships between objects
JP2007012054A (ja) ファイルシステム保全の最適化されたスタートアップ認証
JP2711220B2 (ja) 固定オブジェクト記憶システム
US7113937B2 (en) Systems, methods, and computer program products to improve performance of ported applications, such as a database, operating on UNIX system services for the OS/390
US20070043693A1 (en) Systems and methods for storing a dataset having a hierarchical data structure in a database
US6996682B1 (en) System and method for cascading data updates through a virtual copy hierarchy
US5860079A (en) Arrangement and method for efficient calculation of memory addresses in a block storage memory system
CN1326062C (zh) 计算机系统和方法
US5873092A (en) Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties
EP0817102B1 (en) Circular size-bounded file technique for a computer operating system
JPH0358249A (ja) フアイルのアクセス方法
EP1008045B1 (en) File system primitive allowing reprocessing of i/o requests by multiple drivers in a layered driver i/o system
JPH09305449A (ja) データベース管理システム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050811

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080917

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20081216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090219

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090319

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees