JP2002530741A - 物理レベルにおける論理オブジェクトに対する変更に基づいて、論理オブジェクトに対する変更を識別する方法および装置 - Google Patents

物理レベルにおける論理オブジェクトに対する変更に基づいて、論理オブジェクトに対する変更を識別する方法および装置

Info

Publication number
JP2002530741A
JP2002530741A JP2000582895A JP2000582895A JP2002530741A JP 2002530741 A JP2002530741 A JP 2002530741A JP 2000582895 A JP2000582895 A JP 2000582895A JP 2000582895 A JP2000582895 A JP 2000582895A JP 2002530741 A JP2002530741 A JP 2002530741A
Authority
JP
Japan
Prior art keywords
logical
physical
logical object
data
mapping
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
JP2000582895A
Other languages
English (en)
Other versions
JP3866038B2 (ja
Inventor
タマー,フィリップ・イー
リー,テリー・セト
Original Assignee
イーエムシー コーポレーション
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 イーエムシー コーポレーション filed Critical イーエムシー コーポレーション
Publication of JP2002530741A publication Critical patent/JP2002530741A/ja
Application granted granted Critical
Publication of JP3866038B2 publication Critical patent/JP3866038B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/99953Recoverability
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 論理オブジェクトが格納されているデータ記憶システム内の物理レベルに関する情報を試験することによって、ホスト・コンピュータ上の論理オブジェクトに対する変更を識別する方法および装置。一実施形態では、基準時点以降の論理オブジェクトに対する変更を判定する方法を、コンピュータ・システムにおけるホスト・コンピュータのアプリケーション・レイヤに属する論理オブジェクトについて記載する。コンピュータ・システムは、ホスト・コンピュータ、記憶システム、および論理オブジェクトを記憶システム上の物理記憶ロケーションに関する物理レイヤにマップする少なくとも1つのマッピング・レイヤを含む。物理レイヤは、基準時点以降に記憶システム上の物理記憶ロケーションに対して行われた変更に関する物理変更情報を含む。この方法は、論理オブジェクトをアプリエーション・レイヤから物理レイヤにマップし、どの物理記憶ロケーションが、論理オブジェクトに対応するデータを含むか識別するステップと、物理変更情報を試験し、マップするステップにおいて識別された、基準時点以降に変化したデータを含む物理記憶ロケーションのいずれをも識別するステップと、試験するステップにおいて、基準時点以降に変化したデータを含むとして、いずれかの物理記憶ロケーションが識別された場合、論理オブジェクトに対して変更が行われたと判定するステップとを含む。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明は、データ記憶装置に関する。本発明の一態様は、論理オブジェクトが
格納されているデータ記憶システムにおいて、物理レベルに関する情報を試験す
ることによって、論理オブジェクトに対する変更を識別する方法および装置を対
象とする。本発明の別の態様は、識別子のグループを直接指定しない、データベ
ース構造に関する情報に基づいて、データベース内部の論理データ・ユニットの
ロケーションを一意に指定する論理データ・ユニットの識別子を含む識別子のグ
ループを決定することによって、データベースに属する論理データ・ユニットを
識別する方法および装置を対象とする。
【0002】 (関連技術の説明) コンピュータ・システムは、通常、1つ以上の記憶装置を含む。図1は、かか
る典型的なコンピュータ・システム100のブロック図である。システム100
は、プロセッサ120およびメモリ130を有するホスト・コンピュータ110
、ならびに記憶システム140を含む。記憶システム140は、多数の異なる種
類の記憶装置(例えば、テープ記憶装置、フロッピ・ディスケット記憶装置、デ
ィスク記憶装置等)のいずれの1つとすることもでき、あるいは異なる種類の記
憶装置の組み合わせを含むこともできる。
【0003】 ワード・プロセッシング・アプリケーション、デスクトップ・パブリッシング
・アプリケーション、データベース・ソフトウエア等のようなアプリケーション
・プログラムは、プロセッサ120上で実行し、1つ以上の論理的に関連するデ
ータ・ブロックから形成される論理オブジェクト(例えば、ファイル等)上で動
作する。アプリケーションが論理オブジェクト上で動作を実行する際、論理オブ
ジェクトを形成するデータ・ブロックが記憶システム140から読み出され、更
に効率的な処理のために、ホスト・コンピュータのメモリ130内に一時的に格
納される。アプリケーションがこの論理オブジェクト上での動作を実行し終える
と、論理オブジェクトを形成するデータはメモリ130から読み出され、記憶シ
ステム140に書き込まれる。
【0004】 多くのアプリケーションでは、記憶システム140上に格納されているデータ
から、特定の時点以降に変更したサブセットを判定できることが望ましい。この
ような状況の一例は、逐次バックアップ(incremental backu
p)である。フォールト・トレラント上の理由から、個々のアプリケーションの
ために記憶システム140上に格納されているデータは、周期的にバックアップ
するとよいことは認められよう。多くのアプリケーションでは、記憶システム1
40上に格納されるデータ量は膨大となる可能性があり、記憶システム140上
に格納されているデータ全てのバックアップを完全に行なうプロセスは長時間か
かる可能性がある。システム・バックアップを行なうとき、アプリケーション・
プログラムは他の他のユーザには利用できない場合があり、あるいは、当該アプ
リケーションおよびその他のアプリケーションによって認められるコンピュータ
・システム100の性能は、著しく損なわれる、即ち、低下し、コンピュータ・
システム100は事実上他のユーザには利用できなくなる可能性があることは認
められよう。したがって、記憶システム140上でデータをバックアップするた
めに要する時間量を極力抑えることが望ましい。この課題に取り組むために、逐
次バックアップの概念が生み出された。これは、記憶システム140上のデータ
のサブセットに対してバックアップを行うというもので、サブセットは、最後に
完全にバックアップを行なった以降に変更した(即ち、追加、削除または修正さ
れた)データ部分のみに対応する。
【0005】 多くのコンピュータ・システムは、記憶システム140上に格納されているデ
ータ全てに対して逐次バックアップを行なう能力を備えている。しかしながら、
記憶システム140は非常に大型である可能性があり、大量のデータを格納可能
であるため、記憶システム140全体に対する逐次バックアップの実行は、非常
に時間がかかるプロセスとなる可能性があることは認められよう。したがって、
記憶システム140上に格納されているデータの内、特定のアプリケーションに
関係し、したがって論理的に関係付けられているサブセットのみに作用する逐次
バックアップ能力を備えることが望ましい。多くのコンピュータ・システムは、
論理的に関係付けられているデータ・セットに対して逐次バックアップを行なう
能力を備えている。これを行なうには、特定の基準時点(例えば、論理的に関連
付けられているデータ・セットに対して最後に全体的なバックアップを行なった
時点)以降、論理的に関連付けられているデータ・セットを形成する論理オブジ
ェクトに対して行われた変更を識別する。このような逐次バックアップ・ファシ
リティ(facility)の一例が、ORACLEリレーショナル・データベ
ースに設けられており、データ・ベース内に含まれているデータを、特定の基準
時点に関して、逐次バックアップすることが可能である。
【0006】 ORACLEデータベースは、典型的に、テーブルの集合として編成されてお
り、各テーブルは1つ以上のデータ行を含む。行は、主題(subject)の
インスタンスである。例えば、「CITY」という名称のテーブルは、ボストン
、ロスアンゼルス、ニューヨークおよびパリというような、異なる都市に関連す
る、異なるいくつかのデータ行を含むことができる。各行は、人口、平均所得等
のような、主題の属性を格納する多数の列を含むことができる。
【0007】 図2は、テーブルに対する行データが、典型的に、ORACLEデータベース
・ファイルに格納される際の方法を示す構造図である。各ファイル200は、典
型的に、通常のオペレーティング・システムのファイルであり、ファイル・ヘッ
ダ210およびファイル・データ220を含む。ファイル・データ220は、デ
ータ・ブロック単位230で編成され、各ブロックは、ブロック・ヘッダ240
およびブロック・データ250を有する。ブロック・データ250は、実際のデ
ータ行を含み、これがデータベース内にある1つ以上のテーブルと連携(ass
ociate)されている。ブロック・ヘッダ240は、それぞれのデータ・ブ
ロック230内にある各データ行を識別し、各データ行がどこで始まりどこで終
わるかを識別する、行ディレクトリを含む。また、ブロック・ヘッダ240は、
それぞれのデータ・ブロック230内の情報が基準時点(例えば、変更ビットが
最後にリセットされた時点)以来変化したか否かを識別する1つ以上の変更ビッ
トも含む。基準時点以降にデータ・ブロック230内部の行データに変更が加え
られたならいつでも、1つ以上の変更ビットがデータベース・ソフトウエアによ
ってセットされるので、この変更の発生は後に識別することが可能である。
【0008】 先に注記したように、ORACLEデータベースは、特定の基準時点以降にデ
ータベースのデータ・ブロック230に変更が加えられたことを識別することが
できる。各データ・ブロック230内の変更ビットは、典型的に、データベース
のバックアップ後に、データベース・ソフトウエアによってリセットされるので
、この基準点は、典型的に、データベースの完全なバックアップまたは逐次バッ
クアップを最後に行なった時点である。データベースは、最後の完全なバックア
ップまたは逐次バックアップ以後に変更(即ち、追加、削除、または修正)され
たデータ・ブロック230を識別することができるので、変更したデータ・ブロ
ックのみをバックアップすることによって、データベースの逐次バックアップを
行なうことができる。逐次バックアップは、データが変更されたデータ・ブロッ
クのみをバックアップするのであって、データベースにはわかっているデータ・
ブロック全てではないので、一般に、逐次バックアップに要する時間は、特に大
きなデータベースの場合には、完全なデータベースのバックアップよりも遥かに
短い。この時間の節約は重要となり得る。何故なら、いずれの形態にしろ、バッ
クアップの間データベースに対する修正は典型的に禁止されるからである。デー
タベースの破局的な障害の場合、最後の完全バックアップおよび最新の逐次バッ
クアップに基づいて、データベースを復元することができる。
【0009】 ORACLEデータベースは、特定の基準時点以降にデータベースに加えられ
た変更を識別することができるが、どのデータ・ブロックが変化したかを判定す
る際に要する時間量は、データベースのサイズに直接比例する。即ち、どのデー
タ・ブロックが変化したかを判定するためには、データベースは、データベース
の各ファイルにおける各ブロック・ヘッダを走査しなければならない。したがっ
て、大きなデータベースでは、逐次バックアップの有効性は、どのデータ・ブロ
ックが変化したかをデータベースが判定するために要する時間量によって、弱め
られてしまう場合がある。更に、データベースは、当該データベース自体が制御
するデータ・ブロックに対する変更を判定できるに過ぎないことを認めなければ
ならない。
【0010】 本発明の一態様の目的は、論理的に関係付けられたデータ・セット内において
、特定の時間期間における変更を識別する、改良された方法および装置を提供す
ることである。本発明の別の態様の目的は、データベースから従来アクセス可能
であった最少データ単位よりも小さな粒度で、データベースに格納されているデ
ータ単位を識別することである。
【0011】 (発明の概要) 本発明の一態様によれば、ホスト・コンピュータ上における論理オブジェクト
に対する変更を、記憶装置内の物理的変化に基づいて識別することを可能にする
、アプリケーション・プログラミング・インターフェース(API)を提供する
。このAPIは、いずれのアプリケーション・プログラムによってコールするこ
ともでき、論理オブジェクトのどの論理ブロックが基準時点以降に変更されたか
を識別することができる。
【0012】 本発明の一実施形態によれば、基準時点以降の論理オブジェクトに対する変更
を判定する方法を提供する。論理オブジェクトは、ホスト・コンピュータ、記憶
システム、および論理オブジェクトを記憶システム上の物理記憶ロケーションに
関係する物理レイヤにマップする少なくとも1つのマッピング・レイヤを含むコ
ンピュータ・システムにおけるホスト・コンピュータのアプリケーション・レイ
ヤに属する。物理レイヤは、基準時点以降における記憶システム上の物理記憶ロ
ケーションに対して行われた変更に関係する物理変更情報を含む。この方法は、
アプリケーション・レイヤから物理レイヤに論理オブジェクトをマップし、どの
物理記憶ロケーションが論理オブジェクトに対応するデータを含むか識別するス
テップと、物理変更情報を試験して、マップするステップにおいて識別された、
基準時点以降に変化したデータを含む物理記憶ロケーションのいずれをも識別す
るステップと、いずれかの物理記憶ロケーションが、試験するステップにおいて
基準時点以降に変化したデータを含むと識別された場合、変更が論理オブジェク
トに対して行われたと判定するステップを含む。
【0013】 本発明の別の実施形態によれば、ホスト・コンピュータのためにコンピュータ
・プログラムをエンコードされたコンピュータ読み取り可能媒体を提供する。ホ
スト・コンピュータは、記憶システムに結合され、当該ホスト・コンピュータ上
のアプリケーション・レイヤに属する論理オブジェクトを、記憶システム上の物
理記憶ロケーションに関係する物理レイヤにマップする少なくとも1つのマッピ
ング・レイヤを含む。物理レイヤは、基準時点以降に記憶システム上の物理記憶
位置に対して行われた変更に関する物理変更情報を含む。コンピュータ・プログ
ラムは、ホスト・コンピュータ上で実行されたときに、基準時点以降の論理オブ
ジェクトに対する変更を判定する方法を実行する。このコンピュータ・プログラ
ムは、アプリケーション・レイヤから物理レイヤに論理オブジェクトをマップし
、どの物理記憶ロケーションが論理オブジェクトに対応するデータを含むか識別
するステップと、物理変更情報を試験して、マップするステップにおいて識別さ
れた、基準時点以降に変化したデータを含む物理記憶ロケーションのいずれをも
識別するステップと、いずれかの物理記憶ロケーションが、試験するステップに
おいて基準時点以降に変化したデータを含むと識別された場合、変更が論理オブ
ジェクトに対して行われたと判定するステップとを含む。
【0014】 本発明の別の実施形態によれば、複数の物理記憶ロケーションを有する記憶シ
ステムと共に用いるホスト・コンピュータを提供する。ホスト・コンピュータは
、当該ホスト・コンピュータ上のアプリケーション・レイヤに属する論理オブジ
ェクトを、記憶システム上の複数の物理記憶ロケーションに関係する物理レイヤ
にマップする少なくとも1つのマッピング・レイヤを含む。物理レイヤは、基準
時点以降に記憶システム上の複数の物理記憶ロケーションに対して行われた変更
に関する物理変更情報を含む。また、ホスト・コンピュータは、少なくとも1つ
のマッピング・レイヤから、アプリケーション・レイヤから物理レイヤへの論理
オブジェクトのマッピングを判定し、複数の物理記憶ロケーションのどれが論理
オブジェクトに対応するデータを含むか識別する判定手段と、判定手段によって
識別された複数の物理記憶ロケーションに対応する物理変更情報を試験すること
により、基準時点以降において論理オブジェクトに対して変更が行われたか否か
識別する手段とを含む。
【0015】 本発明の別の実施形態によれば、ホスト・コンピュータと共に用いる記憶シス
テムを提供する。ホスト・コンピュータは、当該ホスト・コンピュータ上のアプ
リケーション・レイヤに属する論理オブジェクトを、少なくとも1つの記憶ボリ
ュームを含む物理レイヤにマップする少なくとも1つのマッピング・レイヤを含
む。記憶システムは、少なくとも1つの記憶ボリュームに含まれるデータを格納
する少なくとも1つの記憶装置と、記憶システム上の少なくとも1つの記憶ボリ
ュームに関する変更情報を記憶するメモリとを含む。メモリに格納されている変
更情報は、基準時点以降に、少なくとも1つの記憶ボリュームに対して変更が行
われたか否か識別する。更に、記憶システムは、アプリケーション・レイヤから
論理オブジェクトに対応するデータを含む少なくとも1つの記憶ボリュームへの
論理オブジェクトのマッピングを、ホスト・コンピュータから受信する手段と、
論理オブジェクトに対応するデータを含む少なくとも1つの記憶ボリュームに関
する変更情報を試験することによって、基準時点以降に論理オブジェクトに変更
が行われたか否か判定する手段と含む。
【0016】 本発明の別の態様によれば、データベースに属する論理データ・ユニットのロ
ケーションを一意に識別する識別子を得る方法および装置を提供する。この方法
および装置は、データベースの構造に関する情報に基づいて識別子を判定するの
で、アプリケーション空間において、ラベルを用いて、データベースから論理オ
ブジェクトに最初にアクセスする必要がないという利点がある。
【0017】 本発明のこの態様の一実施形態によれば、データベースに属する論理データ・
ユニットのロケーションを一意に識別する第1識別子を得る方法を提供する。こ
の方法は、識別子のグループを直接指定しない、データベースの構造に関する情
報に基づいて、第1識別子を含む識別子のグループを判定するステップを含む。
【0018】 別の実施形態によれば、データベースに属する論理データ・ユニットの第1識
別子を得る方法を提供する。第1識別子は、データベース内部における論理デー
タ・ユニットのロケーションを一意に識別し、論理データ・ユニットは、アプリ
ケーション空間ラベルを有し、アプリケーション・プログラムはこれを用いて、
データベースから論理データ・ユニットにアクセスすることができる。この方法
は、アプリケーション空間ラベルを用いてデータベースから論理データ・ユニッ
トに最初にアクセスすることなく、第1識別子を与えるようにデータベースに要
求するステップを含む。
【0019】 更に別の実施形態によれば、データベースを含むホスト・コンピュータ上にお
ける実行のためのコンピュータ・プログラムがエンコードされたコンピュータ読
み取り可能媒体を提供する。このコンピュータ・プログラムは、ホスト・コンピ
ュータ上で実行されたときに、データベース内における論理データ・ユニットの
ロケーションを一意に識別する、論理データ・ユニットの第1識別子を得る方法
を実行する。この方法は、データベースの構造に関する情報に基づいて第1識別
子を含む識別子のグループを判定するステップを含み、前述の情報は識別子のグ
ループを直接指定しない。
【0020】 更に別の実施形態によれば、データベースを含むホスト・コンピュータ上にお
ける実行のためのコンピュータ・プログラムがエンコードされたコンピュータ読
み取り可能媒体を提供する。このコンピュータ・プログラムは、ホスト・コンピ
ュータ上で実行されたときに、データベースに属し、データベース内の論理デー
タ・ユニットのロケーションを一意に識別する、論理データ・ユニットの第1識
別子を得る方法を実行する。論理データ・ユニットは、アプリケーション空間に
おけるラベルを有し、これによってデータベースから論理データ・ユニットにア
クセスすることができる。この方法は、アプリケーション空間におけるラベルを
用いてデータベースから論理データ・ユニットに最初にアクセスすることなく、
第1識別子を与えるようにデータベースに要求するステップを含む。
【0021】 本発明の別の実施形態によれば、コンピュータを提供する。このコンピュータ
は、プロセッサと、当該プロセッサに結合され、データベースがロードされてい
るメモリとを含む。データベースは、当該データベースに属する論理データ・ユ
ニットと、データベース内における論理データ・ユニットのロケーションを一意
に識別する第1識別子とを有する。コンピュータは、識別子のグループを直接指
定しない、データベースの構造に関する情報に基づいて、第1識別子を含む識別
子のグループを判定する手段を含む。
【0022】 本発明の更に別の実施形態によれば、プロセッサと、当該プロセッサに結合さ
れ、データベースがロードされているメモリとを含むコンピュータを提供する。
データベースは、当該データベースに属する論理データ・ユニットと、データベ
ース内における論理データ・ユニットのロケーションを一意に識別する第1識別
子とを有し、論理データ・ユニットは、アプリケーション空間ラベルを有し、プ
ロセッサ上で実行するアプリケーションはこれを用いて、データベースから論理
データ・ユニットにアクセスすることができる。コンピュータは、アプリケーシ
ョン空間ラベルを用いてデータベースから論理データ・ユニットに最初にアクセ
スすることなく、第1識別子を与えるようにデータベースに要求する手段を含む
【0023】 (発明の詳細な説明) 本発明の例示の一実施形態によれば、論理オブジェクトが格納されているデー
タ記憶システムにおいて、物理レベルに関係する情報を試験することによって、
論理オブジェクトに対する変更を識別する方法および装置を提供する。ここで用
いる場合、「論理オブジェクト」という用語は、総称的に、論理的に関係付けら
れている情報(例えば、データベース、ファイル等)のあらゆるセットを意味す
ることとし、いずれの特定的な種類の論理的に関係付けられている情報にも限定
することは想定していない。データベースに対してどんな変更が行われたかを判
定するのにファイル毎に各ブロック・ヘッダを走査しなければならない、ORA
CLEデータベースについて先に説明したような従来技術に対して、本発明の態
様は、物理レベルにおいて論理オブジェクトに対する変更を識別することによっ
て、著しい性能上の向上をもたらす。加えて、以下で更に詳細に論ずるが、本発
明の別の例示実施形態によれば、論理ブロック・レベルにおいて単純に行なうよ
りも一層有意に、論理オブジェクトに対する変更を識別することができる。例え
ば、このような変更は、より低い粒度に対して識別することができ、アプリケー
ション・プログラムに対して一層有用な情報を提供するので、変更の具体的な本
質(追加、削除、修正)を特定することができる。この点について、変更された
論理ブロックを識別することは、逐次バックアップの用途には有用であるが、本
発明は、より詳細な情報が望まれるその他の多数のアプリケーションにも用いる
ことができる。
【0024】 本発明の別の例示実施形態によれば、データベースに属する論理データ・ユニ
ットのロケーションを一意に識別する識別子を得る方法および装置を提供する。
この方法は、従来のように、ラベルを用いて、最初にデータベースから論理オブ
ジェクトにアクセスする必要がないという利点がある。逆に、この方法および装
置は、データベースの構造に関する情報に基づいて識別子を決定することができ
る。
【0025】 本発明の技術を採用可能な応用分野の1つは、逐次バックアップを行なうこと
である。本願と同じ譲受人に譲渡された、METHOD AND APPARA
TUS FOR A DIFFERENTIAL BACKUP IN A C
OMPUTER STORAGE SYSTEM(コンピュータ記憶システムに
おける差分バックアップのための方法および装置)と題する、1998年6月3
0日出願の米国特許出願第09/107,679号は、差分データ・ファシリテ
ィについて記載しており、データ記憶システムにおける物理レベルに関連する情
報を試験することによって論理オブジェクトに対する変更を識別することに関す
る本発明が、逐次バックアップを行なうために採用されている。その内容は、こ
の言及により本願にも含まれるものとする。本発明のこの態様について、以下に
更に詳しく纏める。しかしながら、データ記憶システムにおける物理レベルの情
報を試験することによって、どのデータが論理オブジェクトに対して変化したか
を判定することに関する本発明の態様は、多数の他の用途にも採用可能であるこ
とから、本発明は、逐次バックアップの用途に用いることに限定されるのではな
いことは認めてしかるべきである。
【0026】 前述のように、本発明の態様の一部は、論理オブジェクトを形成するデータが
格納されているデータ記憶システムにおける物理レベルに関するデータに基づい
て、論理オブジェクトに対する変更を識別することを対象とする。物理レベルに
おけるデータ変更に関する情報は、多数の方法のいずれで与えることもでき、本
発明はいずれの特定の技法にも限定されない。MAのHopkintonにある
EMC Corporation(イーエムシー社)から入手可能な記憶システ
ムのSYMMETRIXラインのようなインテリジェント記憶システムの中には
、物理レベルで編成され、特定の基準時点以降に変化したデータを含む記憶シス
テムの部分を識別するビット・セットを含むものがある。SYMMETRIXラ
インの記憶システムは、SYMMETRIX model 55XX製品取扱説
明書、P−N200−810−550,rev.F、(1996年2月)を含む
、EMC社からの多数の刊行物に記載されている。
【0027】 SYMMETRIXラインの記憶システム、およびその他のインテリジェント
・ディスク・ドライブ記憶システムでは、データは、トラックと呼ばれる単位で
多数のディスク・ドライブに格納される。典型的なトラック・サイズは32Kバ
イトである。インテリジェント記憶システムは、典型的に、記憶システム内のデ
ータ・トラックを構成する際に用いられる、コンフィギュレーション情報(メタ
データと呼ぶこともある)を含む。SYMMETRIXラインの記憶システムで
は、このメタデータは、記憶システムのどのトラックが、特定の基準時点以降に
変化したかに関する情報を含む。この情報は、多数の形態のいずれを取ることも
可能である。一実施態様では、論理ボリューム毎にビットマップを用意する。以
下で更に詳しく論ずるが、論理ボリュームは、ホスト・コンピュータ110(図
1)が記憶システム140内における物理デバイス(例えば、ディスク・ドライ
ブ)に対応すると認めるものに対応する。しかしながら、記憶システム140内
部で追加のマッピングが行われると、ホスト・コンピュータ110が指定する論
理ボリュームと、記憶システム140内の物理デバイスとの間の1対1の対応が
なくなる。とは言え、本出願の目的上、各論理ボリュームの単位に与えられる変
更情報は、データ記憶システム内の物理レベルに関係すると見なすこととする。
何故なら、論理ボリューム・レベルは、ホスト・コンピュータ110にアクセス
可能な最も低いレベルであり、ホストによって、物理空間に対応することが認め
られるからである。各論理ボリュームに対するビットマップは、ディスク・ドラ
イブ内の各トラックに対応するビットを含み、このビットは、当該トラックが、
基準時点以降に変化したデータを含むか否かを示す。各論理ボリュームに対する
ビットマップは、単一のデータ構造として一緒に格納される。したがって、各論
理ボリュームに対するビットマップを試験することによって、記憶システム14
0上のトラックは、ビットマップを最後にリセットしたときの、特定の基準時点
以降に変化したデータを含むか否かに関する判定を行なうことができる。本発明
の例示の一実施形態によれば、このビットマップを試験して、論理オブジェクト
に対して行われた変更を識別する。各論理ボリュームに対してトラック・レベル
で維持される変更情報は、多数のコピーを含むことができ、これらは独立してリ
セットすることができるので、同時に異なるインスタンスの監視を採用すること
ができる。
【0028】 記憶装置140に格納されているデータは、典型的に、「物理ブロック」と呼
ばれる記憶単位で編成されており、複数の物理ブロックが1つのトラックを形成
し、各物理ブロックは、特定数のデータ・バイト(例えば、512バイト)を含
む。逆に、ホスト・コンピュータ110上で実行するアプリケーションは、典型
的に、論理オブジェクトを形成する、論理的に関係付けられているデータ・ブロ
ック(「論理ブロック」)で構成された論理オブジェクト(例えば、ファイル)
上で動作を行なう。典型的に、コンピュータ・システム100は、1つ以上のマ
ッピング・レイヤを含み、論理オブジェクトを形成する論理データ・ブロックを
、論理オブジェクトを表すデータが物理的に格納されている記憶システム140
内の1つ以上の物理データ・ブロックにマップする。論理データ・ブロックのサ
イズは直接記憶システム140内に格納されている物理ブロックに対応すること
もできるが、必ずしもそうでなくてもよい。例えば、1つの論理データ・ブロッ
クは、2つ以上の物理データ・ブロックにすることができ、その逆も可能である
【0029】 図3に示すように、コンピュータ・システム100(図1)は、アプリケーシ
ョン空間310および物理空間330を含む、多数の階層空間即ちレイヤを有す
るものと見なすことができる。アプリケーション空間310および物理空間33
0間には、マッピング・レイヤ320がある。前述のように、コンピュータ・シ
ステム100のホスト・コンピュータ110上で実行するアプリケーション・プ
ログラム(例えば、ワード・プロセッシング・アプリケーション、デスクトップ
・パブリッシング・アプリケーション、データベース・ソフトウエア等)は、ア
プリケーション空間310内の論理オブジェクト(例えば、ファイル)上で動作
する。これらの論理オブジェクトを形成するデータは、記憶システム140に含
まれ物理空間330を規定する1つ以上の記憶装置341〜343上に格納され
る。
【0030】 図3に示す代表例では、記憶システム140は、ディスク・ドライブ341〜
343を含むディスク記憶システムである。各ディスク・ドライブは、記録媒体
の1つ以上のディスク(例えば、磁気または光記録媒体)を含むことができ、そ
の上にデータを格納し、さらにそこに格納されているデータを読み出すことがで
きる。先に論じたように、ディスク・ドライブ341〜343の各々に格納され
ているデータは、典型的に、「物理ブロック」に関して編成されており、各物理
ブロックは多数のデータ・バイトを含む。
【0031】 図3に示す例示のシステムでは、マッピング・レイヤ320は、全体的にコン
ピュータ・システム100のホスト・コンピュータ110上に実装されている。
しかしながら、前述のように、インテリジェント記憶システム140を採用する
場合、追加のマッピング・レイヤを記憶システム140上で実行することができ
る。マッピング・レイヤ320は、アプリケーション空間310内に指定されて
いる各論理オブジェクトを、当該論理オブジェクトを形成するデータが格納され
ている物理空間330内にある1箇所以上の一意のロケーション(例えば、物理
ブロック)にマップする。マッピング・レイヤ320は、ファイル・システム3
22または論理ボリューム・マネージャ(LVM)324のような単一のマッピ
ング・レイヤを含むことができ、または図3に示すように、多数のマッピング・
レイヤ322および324を含むことができる。アプリケーション・プログラム
がファイルのような論理オブジェクトにアクセスする場合、そのファイル名のよ
うな論理オブジェクト識別子を用いてオブジェクトを識別する。マッピング・レ
イヤ320は、典型的に、物理空間330内の一意のロケーションを、アプリケ
ーション空間310内で識別した論理オブジェクトの各々を形成する論理データ
・ブロックに割り当てるデータ構造として編成される。
【0032】 先に述べたように、マッピング・レイヤ320は、ファイル・システム322
およびLVM324のような多数のマッピング・レイヤを含むことができる。L
VMは、究極的に論理オブジェクト識別子を、論理オブジェクトに対応するデー
タを格納する物理ブロックに変換する際に用いられるマッピング・レイヤを表す
。LVMは、典型的に、多数の記憶装置を有し、記憶データのボリュームを論理
(物理ではなく)レベルで管理可能な、大型コンピュータ・システムにおいて用
いられる。LVM324の有無は、アプリケーション空間310には透過的であ
る。同様に、LVM324の有無は、ファイル・システム322にも透過的であ
る。この点に関して、ファイル・システムは、単に、アプリケーション空間31
0から、ファイル・システムが物理空間330であると認めるものにマップする
だけに過ぎない。記憶システム140上のLVMまたはマッピング・レイヤのよ
うな別のマッピング・レイヤがマッピング・レイヤ320内に含まれている場合
、これは、単に、ファイル・システム内で行われたマッピングの結果は物理レイ
ヤに対する最終的なマッピングを示していないことを意味する。
【0033】 前述のことから認められるように、典型的なコンピュータ・システムでは、記
憶システム140は、物理空間330内に格納しているデータ・ブロック間の論
理関係を理解していない。データの論理グループ化はアプリケーション空間31
0において行われ、記憶システム140には受け渡されないので、これは正しい
。同様に、典型的なコンピュータ・システムでは、アプリケーション空間310
内で実行するアプリケーション・プログラムは論理データ・ブロック(またはそ
の中に含まれ、それよりも小さくてより有意のデータ単位)が物理空間330内
に格納されている物理ブロックにどのように対応するかを理解していない。した
がって、ある記憶システムは物理レベルにおける変更情報を提供するが、この情
報は、典型的なコンピュータ・システムでは、論理オブジェクトに対する変更に
関する何らかの有意の情報を与えるためには用いることができない。何故なら、
典型的なコンピュータ・システムにおけるアプリケーション・プログラムには、
物理レベル上での変更が論理レベルに関係する態様を理解する能力がないからで
ある。
【0034】 本発明の一実施形態によれば、アプリケーション・プログラムには、論理オブ
ジェクトのホスト・コンピュータ110が物理空間330であると認めるものに
対するマッピングの理解が備えられているので、記憶システム140によって与
えられる変更情報を用いて、論理オブジェクトに対する変更を識別することがで
きる。この理解は、多数の方法のいずれでも得ることができ、本発明はいずれの
特定の技法にも限定されない。コンピュータ・システムにおいて物理レベルの論
理オブジェクトに対するマッピングを判定するシステムの一例が、本願と同じ譲
受人に譲渡され、SYSTEM FOR DETERMINING MAPPI
NG OF LOGICAL OBJECTS IN A COMPUTER
SYSTEM(コンピュータ・システムにおいて論理オブジェクトのマッピング
を判定するシステム)と題する、1998年6月30日に出願された米国特許出
願番号第09/108,038号に記載されている。その内容は、この言及によ
り本願にも含まれるものとする。このマッピング・システムは、アプリケーショ
ン・プログラミング・インターフェース(API)を含み、アプリケーション空
間(図3)内で動作するアプリケーション・プログラムに、アプリケーション空
間310内の論理オブジェクトを物理空間330にマップする能力を備える。本
発明の一実施形態では、このマッピングAPIを用いて、論理オブジェクトと、
対応するデータを格納している物理空間330内の物理ブロックとの間の関係を
理解する。この理解を用いると、物理空間330内に記憶システム140によっ
て与えられる変更情報を用いて、論理オブジェクトに対する変更情報を決定する
ことができる。
【0035】 図4は、本発明の一実施形態による変更APIが用いて、特定の時点以降に変
化した論理オブジェクトの論理ブロックを判定するステップのフローチャートで
ある。変更APIはアプリケーション・プログラミング・インターフェースに関
して説明するが、変更APIはアプリケーション空間(310、図3)内のアプ
リケーション・プログラムのみと通信する必要はないことは認められよう。この
点に関して、変更APIは、論理オブジェクトに対する変更を識別し、LVMの
ような、他のコンピュータ・プログラムに対して変更を伝達するために用いられ
る汎用コンピュータ・プログラムとしてという方が、より適切に見なすことがで
きる。更に、当業者には公知であろうが、変更APIは、ソフトウエア、ハード
ウエア、またはファームウエアのみ、あるいはソフトウエア、ハードウエアおよ
びファームウエアのあらゆる組み合わせでも実現可能であることは認められよう
【0036】 図4のステップ410に示すように、変更情報を求める論理オブジェクトに対
するマッピングを最初に行い、それに対応するデータを格納している物理ブロッ
クを識別する。このマッピングは、先に引用した関連出願に記載されているマッ
ピングAPIを用いることによって行なうことができる。これについては以下で
更に詳しく論ずる。しかしながら、本発明は、このマッピングAPIの使用にも
、論理オブジェクトのマッピングを判定するその他のいずれの特定の技法にも限
定されないことは認められよう。アプリケーション空間310に、対象の論理オ
ブジェクトに対応する物理ブロックの識別を備えるのであれば、いずれの技法で
も採用可能である。
【0037】 ステップ420において、ステップ410において識別された物理ブロックの
どれが、対象の基準時点以降に変化したかについて特定を行なう。先に論じたよ
うに、この物理レベルにおける変更情報は、各論理ボリュームに対して記憶シス
テム140によって与えられる前述のビットマップを用いて判定することができ
る。しかしながら、本発明はこの点に関して限定される訳ではなく、図4の変更
ルーチンに、対象物理ブロックのどれが変化したかに関する情報を与える技法で
あればいずれでも採用可能であることは認められよう。
【0038】 ステップ430において、ステップ420で識別された物理ブロックを論理空
間にマップし、それに対応する論理ブロックを識別する。この場合も、本発明は
、このマッピング機能を実行するいずれの特定の技法にも限定されず、図4の変
更ルーチンに、ステップ420で識別された物理ブロックに対応する論理ブロッ
クの識別を与えるいずれの技法でも採用可能である。
【0039】 図4に示す本発明の実施形態は、論理オブジェクトに行われた変更を判定する
ために用いられる従来の技法に対して、多数の利点をもたらすことは認められよ
う。例えば、データベースに対して逐次バックアップを行なう場合、従来の技法
では、データベースがそのブロックの各々を走査して、バックアップを行なった
最後の時点以降に変化したブロックを判定する。大きなデータベースでは、これ
は過度に長い時間を要する可能性があり、そのため、この長い時間中データベー
スの処理能力が低下する。これは、データベースに対して行われる変更の量には
関係なく言えることである。何故なら、論理オブジェクト内における変更を判定
する従来の技法は、僅かな変更がなされただけであっても、論理オブジェクト全
体(例えば、データベース全体)を走査しなければならないからである。
【0040】 従来の技法とは対照的に、図4に示す本発明の実施形態は、ケタ違いに高速化
している。先に論じたように、物理レベルにおいて維持されている変更情報は、
例えば、各論理ボリュームのどのトラックが変更データを含むかを示すビットマ
ップを含む。SYMMETRIXラインのディスク・アレイでは、このビットマ
ップをSYMMETRIX記憶システム内部のキャッシュに格納し、この情報に
アクセスする際の記憶システムの応答時間を向上させている。加えて、論理オブ
ジェクトを格納する際に用いた各論理ボリューム内における変更を判定するには
、単一のビットマップのみを読み取ればよいので、図4に示す変更ルーチンの処
理能力は、変更情報を求める論理オブジェクトのサイズに直接依存しない。
【0041】 論理オブジェクトに対する変更を判定する従来の技法に対する別の利点として
、図4の変更APIは、変更情報が要求された論理オブジェクトの所有権には独
立して、いずれのコンピュータ・プログラムでもコールできることがあげられる
。例えば、変更APIは、逐次バックアップ・ユーティリティ、オンライン報告
システム、またはその他のいずれの形式のアプリケーション・プログラムでも、
論理オブジェクトが、変更APIをコールしたアプリケーション・プログラムに
よって所有されているか否かには無関係に、コールすることができる。これは、
変更情報を要求したプログラムによって所有されている論理オブジェクトについ
ての変更のみを判定できるに過ぎない従来の技法とは対照的である。例えば、O
RACLEデータベースは論理オブジェクトに対してなされた変更を検出するこ
とができるが、当該データベース自体のみが制御する論理オブジェクトについて
のみそうすることができるに過ぎない。尚、データベースによって所有されてい
る論理オブジェクトが、データベースの知識なくして、他のアプリケーション・
プログラムによる変更が可能である場合、データベースは、何らかの変更が論理
オブジェクトに対してなされたか否かを判定することはできないことは認められ
よう。
【0042】 従来の技法に対する変更APIの更に別の利点は、変更APIを使用しても、
異なるアプリケーション・プログラム間の調整が不要であることである。例えば
、論理オブジェクトに対する変更を追跡するためにインデックスを与えるために
、何らかのアプリケーション・プログラムを書き込むことがある。典型的に、こ
のようなインデックスは、論理オブジェクト自体とは別個のデータ構造として維
持される。このアプリケーション・プログラムによって所有されている論理オブ
ジェクトを変更すると、その論理オブジェクトに対応するインデックスが更新さ
れ、論理オブジェクトが変更されたことを反映する。しかしながら、他のアプリ
ケーション・プログラムも論理オブジェクトを修正することを許されている場合
、論理オブジェクトを修正する能力を有する全てのアプリケーション・プログラ
ムは、一致して当該論理オブジェクトに対応するインデックスを同様に更新しな
ければならない。さもなければ、いずれも(論理オブジェクトを所有するアプリ
ケーションも含む)変更が行われたか否かについて信頼性高く識別することはで
きない。更に、このような調整が可能であっても、論理オブジェクトを修正可能
な各アプリケーション・プログラムは、インデックスを更新するタスクも負担す
ることになる。したがって、論理オブジェクトを修正する場合、その修正を行な
うアプリケーション・プログラムは、修正毎に2回の書き込みを事実上行なうこ
とになる。1回は修正した論理オブジェクトを書き込むため、そして2回目の書
き込みは当該論理オブジェクトに対応するインデックスを更新するためである。
このように、論理オブジェクトを直接修正することを許されている各アプリケー
ション・プログラムは、追加のオーバーヘッドを負担することになる。対照的に
、図4の変更APIによって可能な変更情報の監視は、論理レベルではなく、物
理レベルにおける変更に基づいて論理オブジェクトに対する変更を識別するので
、アプリケーション・プログラムに対して透過的である。即ち、論理オブジェク
トに対する変更の監視は、アプリケーション・プログラムへの追加のオーバーヘ
ッドを伴わない。
【0043】 尚、前述のことから、本発明の一実施形態では、物理空間330におけるトラ
ック・レベルにおける変更を識別する情報を用いて、論理ブロック・レベルにお
ける変更を識別することは認められよう。各トラックは数個の物理ブロックを含
むことが認められよう。トラック毎に唯1つの変更ビットが備えられているので
、このビットは、トラック内の物理ブロックの1つだけが変化した場合でも、ト
ラックに対するデータが変化したことを示す。したがって、図4の変更ルーチン
におけるステップ420を実行する際、単一の変更物理ブロックを含むトラック
においてでさえ、物理ブロックの全てを識別し、それに対応する論理ブロックの
全てを、ステップ430において、潜在的に変更データを含むものとして識別す
る。このように、図4の変更ルーチンはいくらか控えめ(conservati
ve)であり、実際には変更がなかったのに、いくつかの論理ブロックを、変更
があったとして識別する場合もある。これは、単に、トラック・レベルのみにお
いて物理的変更を識別する技法の個々の実施態様の特性であるに過ぎない。尚、
本発明は、異なる方法で実現し、物理レベルにおける変更情報をより小さい刻み
(例えば、物理ブロック・レベル)で与えることができるようにすれば、変更ル
ーチンが、実際に変更があった論理ブロックを、より高い粒度で識別できること
も認められよう。
【0044】 先に論じたように、本発明の一実施形態では、関連出願に記載されているマッ
ピングAPIを用いて、対象の論理オブジェクトと物理空間との間のマッピング
(例えば、図4のステップ410)を行なう。このAPIが動作する態様につい
て、図7を参照しながら説明する。図7に示すマッピング・ルーチンの一例は、
ホスト・コンピュータ110(図1)上で実行し、論理オブジェクト(アプリケ
ーション空間310内)の、ホスト・コンピュータが物理空間330内にあると
見なす1組のブロックに対するマッピングを判定することができる。例えば、マ
ッピング・ルーチンは、メモリ130(図1)に格納され、ホスト・コンピュー
タ110のプロセッサ120上で実行されるソフトウエアで実現することができ
る。
【0045】 図7のマッピング・ルーチンは、2つの部分を有すると見なすことができる。
即ち、ホスト・コンピュータ上にどれだけマッピング・レイヤがあるか判定する
第1部、およびアプリケーション空間310からの指定された論理オブジェクト
の、ホスト・コンピュータが物理空間であると認めたものに対するグローバル・
マッピングを判定する第2部である。これら情報ピースの各々は、マッピング・
ルーチンをコールする毎に、動的に判定することができる。しかしながら、ホス
ト・コンピュータ上に存在するマッピング・レイヤ数は頻繁に変化しないので、
本発明の一実施形態では、この情報を1回判定し、ホスト・コンピュータ上のマ
ッピング・レイヤ320に対して変更が行われた場合にだけ必要に応じて更新す
る。このため、ホスト・コンピュータ上にどれだけマッピング・レイヤがあるか
についての判定は、マッピング・ルーチンをコールする毎に行なう必要はない。
一旦この情報を取得すれば、ホスト・コンピュータ110または記憶システム1
40にセーブしておけばよい。本発明の一実施形態では、この情報をホスト・コ
ンピュータ上のメモリ130に格納し、この情報をアクセスする際に伴う遅延を
極力抑えるようにしている。
【0046】 例えば、ホスト・コンピュータ上にあるマッピング・レイヤの数は、最初に、
初期プログラム・ロード(IPL)、またはホスト・コンピュータ・システムの
ブート中に行なうことができる。システム起動時にロードされる各ファイル・シ
ステムおよび/またはLVMを記録するコマンド・ユーティリティをホスト・コ
ンピュータ上で実行することができる。このようなコマンド・ユーティリティは
、背景タスクとして、周期的に実行し、別のファイル・システムまたはLVMが
後にマウント(実装)された場合に、マッピング・レイヤ320のレコードを更
新することも可能である。あるいは、ホスト・コンピュータ上にマッピング・ル
ーチンがロードされたとき、およびファイル・システム、LVMまたはマッピン
グ・レイヤ320のその他のコンポーネントがホスト・コンピュータに追加され
たり、ホスト・コンピュータから除去される毎に、コンピュータ・ユーザ(例え
ば、システム・マネージャ)にどのマッピング・レイヤが存在するか指定させる
コマンド・ユーティリティを実行することも可能である。
【0047】 マッピング・ルーチンの第2部は、マッピング・ルーチンをコールする毎に実
行することができる。端的に言うと、指定した論理オブジェクトのグローバル・
マッピングの判定は、マッピングのどのレイヤが、アプリケーション空間310
(図3)内で指定された論理オブジェクトを所有するのかについての判定、指定
された論理オブジェクトと連携するホスト・コンピュータ上にあるマッピング・
レイヤ数の識別、および各マッピング・レイヤを通じて、指定された論理オブジ
ェクトの、ホスト・コンピュータ110が物理空間であると認めたものにおける
1組のブロックに対するマッピングの繰り返しを含む。マッピング・レイヤ32
0が、ファイル・システム322またはLVM324のような、単一のマッピン
グ・レイヤのみを含む場合、アプリケーション空間において指定された論理オブ
ジェクトは、物理空間内の1組の物理空間に直接マップされる。しかしながら、
マッピング・レイヤが多数のマッピング・レイヤを含む場合、各マッピング・レ
イヤの出力を次のマッピング・レイヤに対する入力識別子として繰り返し用いる
。それ以外のマッピング・レイヤがないと判定された場合、マッピング・ルーチ
ンは、最下位のマッピング・レイヤにおいて識別した1組の物理ブロックを、マ
ッピング・ルーチンをコールしたアプリケーションに戻す。
【0048】 マッピング・ルーチンは、ホスト・コンピュータによって、「mapping
file A」というようなコールを発行することによって、コールすること
ができる。ここで、識別子file Aはアプリケーション空間310において
論理オブジェクトfile Aを一意に識別する。ステップ710において、マ
ッピング・ルーティンは、アプリケーション空間における論理オブジェクトの所
有権を判定する。尚、コンピュータ・システムによっては、ホスト・コンピュー
タ110上に多数のファイル・システムを実装している場合もあることは認めら
れよう。例えば、UNIXオペレーティング・システムの下で動作するコンピュ
ータ・システム上では、UNIXファイル・システム(UFS)、VERITA
S(VxFS)ファイル・システム、そして恐らくその他のファイル・システム
に遭遇するのは特別なことではない。しかしながら、コンピュータ・システム上
のファイルのような各論理オブジェクトは、通常、これらのファイル・システム
の内1つだけによって所有されている。論理オブジェクトの所有権は、論理オブ
ジェクトの形式に応じて、多数の方法のいずれでも判定することができる。例え
ば、論理オブジェクトがホスト・コンピュータ上に常駐するファイル・システム
322である場合、マッピング・ルーチンは、ホスト・コンピュータのオペレー
ティング・システムに、ファイルがどこに位置するか特定するように要求するこ
とができる。例えば、論理ファイルが、UNIXオペレーティング・システムを
有するコンピュータ・システム上のファイルである場合、マッピング・ルーチン
はコマンドdf file Aを発行し、オペレーティング・システムに、論理
オブジェクトfile Aを所有するファイル・システムはどれか、マッピング
・ルーチンに伝えるように要求することができる。他のオペレーティング・シス
テムは、典型的に、同様の形式のコマンドを有する。
【0049】 ステップ710において論理オブジェクトの所有権を判定した後、マッピング
・ルーチンはステップ720に進み、ルーチンは、指定された論理オブジェクト
と連携するマッピング・レイヤの数を識別する。論理オブジェクトが、UNIX
(登録商標)オペレーティング・システムを有するホスト・コンピュータ上に常 駐するファイル・システム内のファイルであるという前述の例では、dfコマン ドは、どのファイル・システムが指定の論理オブジェクトを所有するのかについ て識別するだけでなく、更にどの論理デバイス上にファイル・システムが実装さ れているかについても識別する。ファイル・システムの下にどのようなマッピン グ・レイヤが存在するかに応じて、ファイル・システムに対して識別された論理 デバイスは、物理空間330内のロケーションに直接対応する論理ボリュームで あったり、またはLVM324のような更に別のマッピング・レイヤによってマ ップされる場合もある。しかしながら、ファイル・システムが実装されている論 理デバイスが一旦識別されたなら、マッピング・ルーチンは、次に、ホスト・コ ンピュータ・システム上に存在することがわかっているいずれかのLVMに問い 合わせを行い、このLVMが、識別された論理デバイスを下位レイヤにマップす るか否か判定を行なう。殆どのLVMは、ユーザに、LVMに問い合わせを行い 、指定された論理デバイスがLVMにはわかっているか否か判定させる。デバイ スがLVMにわかっている場合、LVMは、論理デバイスがLVMによってマッ プされた先の論理ボリューム・アドレスを回答する。あるいは、LVMにはデバ イスがわかっていない場合、LVMは、回答する際、典型的に、その旨示し、L VMはファイル・システムに対していずれのレベルのマッピングも行なわないこ とを示す。LVMの下に別のマッピング・レイヤがない場合、この論理ボリュー ム・アドレスは物理空間内のロケーションに対応する。
【0050】 ステップ720において、論理オブジェクトと連携するマッピング・レイヤの
数を識別した後、マッピング・ルーチンはステップ730に進み、ここでマッピ
ング・ルーチンは、指定された論理オブジェクトと連携する最初のマッピング・
レイヤに対して、マッピング・レイヤ320において次に低いレイヤに対するオ
ブジェクトのマッピングを判定する。マッピング・レイヤ毎に、例えば、当該マ
ッピング・レイヤに渡された論理オブジェクト(例えば、ファイル)に対するメ
タデータを格納しているマッピング・レイヤ(例えば、ファイル・システム32
2またはLVM324)のデータ構造の部分にアクセスすることによって、これ
を行なうことができる。特定のファイルに対するメタデータがファイル・システ
ムまたはLVMのデータ構造内に格納されているか否か判定を行なう方法は多数
ある。例えば、メタデータの構造およびロケーションは、マッピング・レイヤ(
例えば、ファイル・システム322またはLVM324)のベンダから直接得る
ことができる。一旦マッピング・レイヤ(例えば、ファイル・システムまたはL
VM)に対するメタデータの構造およびロケーションがわかったなら、マッピン
グ・ルーチンはこの構造を直接用いて、次のマッピング・レイヤへのウインドウ
をこれに与える情報にアクセスする。
【0051】 最初のマッピング・レイヤにおいて指定された論理オブジェクトのマッピング
を判定した後、ルーチンはステップ740に進み、ここで、直前のマッピング・
レイヤによって与えられたロケーションが更に別のマッピング・レイヤに従うか
否かについて判定を行なう。従う場合、マッピング・ルーチンはステップ730
に戻り、マッピング・ルーチンは、処理するマッピング・レイヤに対して、前述
のように、マッピング・レイヤ320内の次の下位レイヤに対するオブジェクト
のマッピングを判定する。このように、ルーチンは、ステップ740において、
指定された論理オブジェクトに対する最下位のマッピング・レイヤを処理し終え
たと判定されるまで、マッピング・レイヤの各々に進み、処理し終えたときに、
ルーチンはステップ750に進む。ステップ750において、ルーチンは、ホス
ト・コンピュータが物理空間330であると認めたものにおいて、マッピング・
ルーチンがコールされたときにマッピングが要求された論理オブジェクトを構成
するデータのブロックのロケーションを戻す。また、ルーティンは、論理オブジ
ェクトのサイズ(例えば、バイト単位)を戻してもよい。ステップ750におい
てこの情報を戻した後、ルーチンは終了する。
【0052】 以上、ファイルに対して動作するものとして、マッピング・ルーチンの動作に
ついて論じたが、ホスト・コンピュータは、別の形式の論理オブジェクトを含む
場合もあり、マッピング・ルーチンはその場合でも同様に動作可能であることは
認められよう。例えば、1つ以上のファイル・システムおよび/またはLVMに
加えて、コンピュータ・システム上にデータベースを実装することも可能である
。データベースは、当該データベースのオブジェクトの各々が、特定のファイル
・システムによって所有されるファイルとなるような構造とすることができ、ま
たは各オブジェクトが論理デバイスであってもよい。例えば、UNIXオペレー
ティング・システムの下で動作するコンピュータ・システム上では、データベー
スは、/dev/dev1、/dev/dev2、および/dev/dev3の
ような3つのオブジェクトを有する場合もあり、その各々が論理デバイスである
。これらの論理デバイスは、データベースによって、物理空間内の一意のロケー
ションにマップすることができ、あるいはLVMのような他のマッピング・レイ
ヤによってマップすることもできる。代わりに、データベースは、/usr/u
sers/dbase/dbfile1、/usr/users/dbase/
dbfile2、および/usr/users/dbase/dbfiles3
というような3つのオブジェクトを有する場合もあり、dbfile1、dbf
ile2、およびdbfile3は、ファイル・システムによって所有される通
常のファイルである。この後者の場合、データベースおよびファイル・システム
によって行われるマッピングに加えて、これらのファイルは、LVMのような、
更に別のマッピング・レイヤによってマップすることも可能である。
【0053】 尚、殆どのデータベースに対する構造は、データベースをコンピュータ・シス
テム上に実装するときに、識別できることは認められよう。更に、より広く用い
られるデータベースは、一般に、それによって所有されるいずれのオブジェクト
でも次のマッピング・レイヤにマップするために動的にアクセスすることができ
る構造を有する。したがって、コンピュータ・システム上にどれだけ異なるマッ
ピング・レイヤが存在するか、そしてどのマッピング・レイヤが特定の論理オブ
ジェクトのマッピングに関与するかについて一旦判定したなら、論理オブジェク
トの、ホスト・コンピュータが物理空間330にあると認めるロケーションに対
するマッピングの判定を行なえば、当該論理オブジェクトが、データベース、フ
ァイル・システム、またはその他の何らかのオブジェクト管理階層のどれによっ
て所有されているのかについて容易に判定することができる。
【0054】 尚、各論理オブジェクトのマッピングは、コールしたときに、マッピング・ル
ーチンによって動的に判定することが好ましいが、1つ以上の論理オブジェクト
のマッピングは、前もって決定しておき、クイック参照テーブルに保持しておく
ことも可能であることは認められよう。参照テーブルは、背景タスクとして作成
し維持すれば、ホストの効率を更に高めることができる。このような参照テーブ
ルは、論理オブジェクトに頻繁にアクセスし、経時的に比較的安定である場合に
有利であると考えられる。
【0055】 先に論じたように、数個の記憶システム140(図3)は、記憶装置の集合体
を超えるものであり、インテリジェンスを有する。このような記憶システムは、
ホスト・コンピュータによって与えられるマッピング・レイヤ320から物理空
間330への、1つ以上の追加のマッピング・レイヤを実行することができる。
このマッピングは、ホスト・コンピュータ・システムとは独立して行われ、した
がってホストに対して透過的である。このため、ホストが、そのマッピング・レ
イヤ320によって与えられた所与の論理オブジェクトに対するブロックのロケ
ーションが、記憶システム140内部のデータのロケーションに対応すると認め
ても、それが事実でないこともある。このため、ホスト・マッピング・レイヤ3
20はそれが物理空間330内の物理アドレスを指定していると確信していても
、追加のマッピングを用いるインテリジェント記憶システムは、固有の物理アド
レスであると判定した論理アドレスを受け取ると見なすことができる。インテリ
ジェント記憶システム上で行われるマッピングはオプションとすることもできる
ので、システムは、それが受け取ったアドレスが物理空間330内の実際の物理
アドレスを規定するように、構成することも可能である。
【0056】 図8は、ホスト・コンピュータ上のマッピング・レイヤ320と物理空間33
0との間で追加のマッピングを行なうことができるインテリジェント記憶装置8
40を含むコンピュータ・システム800のブロック図である。記憶装置840
は、複数のディスク・ドライブ841〜843を含み、各ディスク・ドライブは
数個のディスクを含む。このような大容量記憶システムの一例は、EMC社から
入手可能なSYMMETRIXラインのディスク・アレイである。
【0057】 インテリジェント記憶システム840は、キャッシュ(図示せず)を内蔵し、
ホスト・コンピュータには透過的に、システム性能を向上させることができる。
典型的に、読み取り動作は、記憶システムに、要求されたデータがキャッシュ内
にあるか否か判定を行なわせ、ある場合、データはキャッシュからホスト・コン
ピュータに転送される。要求されたデータがキャッシュ内にない場合、記憶シス
テム840は、ディスク841〜843のどれにデータが格納されているか判定
し、データを当該ディスクからキャッシュに転送する。次いで、要求されキャッ
シュ内にあるデータはホスト・コンピュータに転送される。書き込み動作では、
データは、典型的に、キャッシュに書き込まれ、データがキャッシュに格納され
ていることが検証されると直ちに、ホスト・コンピュータには書き込みが完了し
たと報告される。次いで、記憶装置は、ディスク・ドライブ841〜843の内
適切な1つに非同期でデータをデステージ(destage)する。
【0058】 先に論じた本発明の実施形態の全ては、前述と同様に、インテリジェント記憶
システム840と共に用い得ることは認められよう。この点について、記憶シス
テム840が追加のマッピング・レイヤを実行しても、このマッピングはホスト
・コンピュータに対して透過的であり、ホストおよび記憶装置840間でインタ
ーフェースを行なう前述の技法に何ら影響も与えない。例えば、物理レベルにお
けるデータ変更を反映するビットマップを論理ボリュームのトラックに与えれば
、物理レイヤでどのような変更が行われたかを判定するために、マッピング・ル
ーチンは、記憶システム140内で行われるマッピングを評価する必要はない。
【0059】 尚、図7のマッピング・ルーチンは、多数のフォーマットのいずれででも、マ
ップされた論理オブジェクトに対応する物理データ・ブロックを戻すことができ
(ステップ750)、本発明はいずれの特定のフォーマットにも限定されないこ
とは認められよう。本発明の一実施形態によれば、図7のマッピング・ルーチン
は、マップされた論理オブジェクトに対応する物理ブロックに関係する情報を、
特定のフォーマットで戻す。特に、各論理オブジェクトは多数の論理ブロックで
構成することができ、その各々は特定の論理ブロック・サイズを有することは認
められよう。論理オブジェクトを構成する論理ブロックは、論理空間において隣
接していてもよく、あるいは不連続な論理ブロック・アドレスで論理ブロックを
含むこともできる。本発明の例示の一実施形態では、図7のマッピング・ルーチ
ンは、論理オブジェクトがマップする物理ブロックに関する情報を、論理オブジ
ェクトを形成する論理ブロックの順序に対応する順序で戻す。このように、論理
オブジェクトに対する論理および物理ブロック間の対応が維持され、以下に述べ
るように用いることができ有利である。
【0060】 本発明の更に別の例示の実施形態によれば、図7のマッピング・ルーチンによ
って戻される論理オブジェクトのフォーマットは、論理オブジェクトの論理ブロ
ックとの対応を維持する順序で、論理オブジェクトを格納する隣接物理ブロック
のセグメントを識別する。各セグメントは、記憶システム140内の物理記憶空
間へのオフセット、および隣接する物理ブロックの数を示す範囲(例えば、51
2Kバイト)によって識別される。この点に関して、記憶システム140内部の
物理ブロックは、開始アドレスから終了アドレスまでにわたる隣接物理ブロック
の集合体として見なせることは認められよう。これによって、図7のマッピング
・ルーチンの一実施態様によって与えられるオフセットおよび範囲は、論理オブ
ジェクトに含まれるデータを格納する物理ブロックの各隣接セグメントを別個に
識別する。加えて、前述のように、これらの隣接物理セグメントは、論理オブジ
ェクトを形成する対応の論理ブロックに対応するために指定される。このように
、図7のマッピング・ルーチンは、論理オブジェクトの物理レベルに対するマッ
ピングを、論理オブジェクト全体のためだけではなく、その中に含まれる各論理
ブロックのためにも維持する。
【0061】 尚、論理オブジェクトは、当該論理オブジェクトを規定する用途に便利ないず
れのサイズを有する論理ブロックに関しても定義できることは認められよう。同
様に、物理ブロック・サイズは、記憶システム140に適切ないずれのサイズと
することも可能である。したがって、先に論じた図7のマッピング・ルーチンの
例示の実施態様によって戻される物理ブロックは、論理オブジェクトに対する論
理ブロックと1対1で対応する必要はない。しかしながら、物理ブロックによっ
て表される論理ブロックの境界は、各論理ブロックに含まれるバイト(またはビ
ット)数、および各物理ブロックに含まれるバイト(またはビット)数に基づい
て、簡単な数学的計算で容易に決定することができる。このように、マッピング
・ルーチンによって戻される物理ブロックの隣接するセグメントの順序の維持は
、論理ブロックおよび物理ブロック間の対応の判定を可能にするために必要とさ
れる全てである。
【0062】 図7のルーチンを用いて、マップされた論理オブジェクトに対する論理ブロッ
クと、これによって戻される物理ブロック間の対応付けを行なう方法を、図5(
a)に概念的に示す。図5(a)は、100個の論理ブロック501を含む論理
オブジェクト500を示す。図示の例では、論理ブロックは、記憶システム14
0(図1)の物理ブロック・サイズの2倍のブロック・サイズを有する。したが
って、論理オブジェクト500は、記憶システム140内にある200個の物理
ブロックに格納される。更に図5(a)に示すように、200個の物理ブロック
は、隣接する物理ブロックの2つのセグメント間で分割され、50個の物理ブロ
ックを含む第1セグメント503、および150個の物理ブロックを含む第2物
理セグメント505となる。先に論じたように、図7のマッピング・ルーチンを
論理オブジェクト500に対して実行すると、マッピング・ルーチンは、2つの
隣接物理セグメント503および505を別個に識別することによって、論理オ
ブジェクトを格納している200個の物理ブロックを識別する。物理セグメント
503は、オフセット503aおよび範囲503bによって識別される。同様に
、物理セグメント505は、オフセット505aおよび範囲505bによって定
義される。前述のように、物理セグメント503および505はマッピング・ル
ーチンによって順番に戻されるので、論理オブジェクト500に対する論理ブロ
ック501と、セグメント503および505内の物理ブロックとの間の対応は
維持される。
【0063】 物理レベルにおける変更情報をどのようにして論理レベルにマップできるか(
例えば、図4におけるステップ430)という代表例を、図5(b)を参照しな
がら説明する。この実施態様例では、ホスト・コンピュータ上に変更APIを備
え、図4の変更ルーチンを実行する。この変更APIは、ビットマップに関して
、アプリケーション空間310(図3)において変化した論理ブロックを識別す
る。論理オブジェクト内のどの論理ブロックが変化したかに関する情報を求めて
いるアプリケーション・プログラムは、変更APIによって戻されたビットマプ
の内どのビットが変化したかを読み取るだけでよい。勿論、他の実施態様を代わ
りに備えてもよく、本発明はここに記載する特定の実施態様に限定される訳では
ないことは認められよう。
【0064】 本発明の例示の一実施形態では、論理ビットマップを備え、図7のマッピング
・ルーチンによって戻される、前述のフォーマット(物理ブロックの隣接セクシ
ョン毎にオフセットおよび範囲を含む)と共に動作する。この実施形態では、変
更APIには、図7のマッピング・ルーチンから戻される隣接物理セグメントを
識別する情報が受け渡される。この点に関して、変更APIは、隣接する物理セ
グメントの各々に対して1回コールすることができ、物理オフセット、所望のブ
ロック・サイズ、および変更情報を求める範囲を受け渡すことができる。これに
応答して、変更APIは、記憶システム140によって与えられた物理変更情報
を試験し、変更APIがコールされたときに指定された物理ブロックの各々にビ
ットが対応する、ビットマップを戻す。前述のように、図7のマッピング・ルー
チンが物理セグメントを順に配列する方法のために、オブジェクトに対する物理
ブロックと論理ブロックとの間の対応は維持される。したがって、この情報を用
いると、変更APIによって与えられるビットマップを用いて、論理オブジェク
トのどの部分が、対象の特定基準時点以降に変化したかについて判定することが
できる。
【0065】 図5(b)は、本発明の例示の一実施形態による変更ルーチンが用いるビット
マップの特性を示す。前述のように、変更APIは、コールされたときに物理セ
グメント503または505の一方を受け渡すことができ、変更ビットと共に、
コールにおいて指定された物理ブロックの各々に対応するビットマップを戻すこ
とができる。これを図5(b)に示す。即ち、隣接物理ブロック507はセグメ
ント503における50個のブロックを表す。ビットマップ509は、変更AP
Iによって戻すことができ、ビット511は物理ブロック507の各々に対応し
、対応する物理ブロックが変更データを含むか否かを示す。物理ブロック507
および論理ブロック501の対応はわかっているので(図5(a)参照)、ビッ
トマップ509を用いて、論理オブジェクト500の論理ブロック501の内ど
れが変更データを含むか判定することができる。
【0066】 尚、変更APIをコールして特定の隣接物理セグメントに対する変更情報を戻
す場合、図7のマッピング・ルーチンによって戻される場合と同様に正確に物理
セグメントを識別して、コールを行なう必要はないことは認められよう。即ち、
変更APIは、同じ物理オフセットを用いてコールすることが好ましいが、ブロ
ック・サイズおよび範囲はいずれの所望値に変更することも可能である。尚、変
更APIをコールするときに要求したブロック・サイズは、図5(b)に示すビ
ットマップによって戻される情報の粒度を決定し、ブロック・サイズが小さい程
粒度が大きくなることは認められよう。加えて、指定された範囲は、選択された
ブロック・サイズによって異なる。
【0067】 また、論理オブジェクトに対して変更データを検出することに関する本発明の
態様を容易にするために、アプリケーション・プログラムが、論理オブジェクト
に対応する物理変更ビットをリセットする能力を備えることが望ましいことは認
められよう。
【0068】 図6は、基準時点以降の論理オブジェクトに対する変更を監視するために用い
られる、物理レベルのビットを変更APIがリセットする際に用いることができ
るステップのフローチャートである。変更APIは、ソフトウエアで実現するこ
とができ、ホスト・コンピュータ110のプロセッサ120上で実行し、記憶シ
ステム140(図1)と通信する。図6に示すように、変更APIは、基準時点
以降の変更に関して監視される論理オブジェクトの1つ以上のブロックにマーク
を付けることができる。ステップ620において、変更APIは、指定された論
理オブジェクトの論理ブロックの、論理オブジェクトが格納されている記憶装置
内の1組の物理ブロックに対するマッピングを行なう。先に論じたように、これ
は、図7のマッピング・ルーチンを用いて行なうことができる。ステップ630
において、APIは、ステップ630においてAPIが識別した論理ブロックに
対応する、記憶システムのメタデータ内の物理ビットマップ509におけるビッ
ト511をリセットする。これによって、基準時点を確立し、それ以降は、マー
クを付けた論理ブロックに対するいずれの変更でも識別可能となる。
【0069】 前述のように、本発明の実施形態は、アプリケーション空間310(図1)に
おける論理オブジェクト上で動作するいずれのアプリケーション・プログラムで
も、論理レベルにおいて、基準時点以降に生じたこれら論理オブジェクトに対す
る変更を識別することを可能にする。この技術の一使用例は、先に記したように
、逐次バックアップである。しかしながら、この能力を用いれば、他にも無数の
有用なアプリケーションが実現できることは認められよう。
【0070】 例えば、アプリケーション・ソフトウエアを書くアプリケーション・プログラ
マは、コードの品質を検査する際、コードが実際に意図した通りに動くことを検
証する。これを行なうには、典型的に、アプリケーション・ソフトウエアによっ
て行われると予測された論理オブジェクトに対するあらゆるそして全ての変更が
、実際に予測したように行われたことを確認する。しかしながら、当業者には公
知のように、欠陥のあるアプリケーション・プログラムでは、そのアプリケーシ
ョン・プログラムによって影響を受けるとは思いもよらなかった他の論理オブジ
ェクトを思い掛けなく修正してしまうということもあり得る。本出願人の発明の
技術を用いることによって、アプリケーション・プログラマは、アプリケーショ
ン・プログラムが、修正されるはずの情報のみを変更し、それ以上でもそれ以下
でもないことを検証することができる。
【0071】 図9は、アプリケーション・プログラムが、当該アプリケーション・プログラ
ムによって修正されたはずの論理オブジェクトのみを変更したか否か確認するた
めに実行することができるステップを示す。ステップ910において、変更AP
Iをコールし、監視のために、コンピュータ・システム上の論理オブジェクト全
てにマークを付け、後にいずれの変更でも識別できるようにする。図6に関して
説明したように、これは、記憶システムのメタデータの物理ビットマップ内の各
ビットをリセットすることによって行なうことができる。
【0072】 ステップ920において、コンピュータ・システム上でアプリケーション・プ
ログラムを実行し、その意図した機能を遂行する。実行後、ステップ930にお
いて、変更APIをコールし、コンピュータ・システム上で変化したあらゆる論
理ブロックを識別する。図4に関して注記したように、変更APIはビットマッ
プ509を戻すことができる。そのビットは、コンピュータ・システム上の各論
理ブロックに対応し、アプリケーション空間内の論理ブロックがアプリケーショ
ン・プログラムの実行によって変更されたか否かを表す。アプリケーション・プ
ログラムによって変更された論理ブロックを、変更されることを予測していた論
理ブロックと比較することによって、プログラマに、アプリケーション・プログ
ラムにおける潜在的なエラーを警告する。前述のステップは、データベースのよ
うな他のアプリケーションによって所有される論理オブジェクトを修正するアプ
リケーション・プログラムを含む、あらゆるアプリケーション・プログラムの品
質を検証するためにも使用可能であることは認められよう。例えば、以下で詳し
く説明する図12ないし図14のルーチンと共に用いる場合、アプリケーション
・プログラマは、彼/彼女のアプリケーション・プログラムが、当該アプリケー
ション・プログラムによって修正されることが予測されたデータベース・オブジ
ェクトの行またはレコードのみを変更することを検証することができる。
【0073】 本出願人の発明の技術の別の使用として、コンピュータ・システムの監査を実
行することがあげられる。例えば、コンピュータ・システムは、正規ユーザによ
る以外は、修正させない1つ以上の論理オブジェクト(例えば、個人ファイル)
を有する場合がある。典型的に、このような論理オブジェクトは、アプリケーシ
ョン空間におけるあるレベル(例えば、オペレーティング・システムまたはファ
イル・システム・レベル)で保護されているので、論理オブジェクトは、正規の
要員による以外、修正や削除されるはずはない。しかしながら、広く利用可能な
コンピュータ・システムの場合、そのいずれにおいても、無許可の人がオペレー
ティング・システムまたはファイル・システム・レベルにおいて保護を突破し、
論理オブジェクトを修正してしまう可能性があるという懸念が存在する。本出願
に記載された技術を用いることによって、論理オブジェクトに対する不正な変更
を検出することができる。
【0074】 例えば、正規の要員が何らかの変更を、保護されている論理オブジェクトに対
して行なった後、変更APIをコールして、保護されている論理オブジェクトに
マークを付け、論理オブジェクトに対するそれ以降のあらゆる変更を特定できる
ようにする。論理オブジェクトにマークを付けた後、変更APIを周期的にコー
ルして、保護されている論理オブジェクトにおけるいずれかの情報が変化したか
否か確認することができる。例えば、周期的な間隔で変更APIをコールするユ
ーティリティ・アプリケーションを書いてもよい。このユーティリティ・アプリ
ケーションは、保護されている論理オブジェクトに対して変更が検出された場合
に、正規の要員に通知するように書くとよい。あるいは、またはこのようなユー
ティリティ・アプリケーションに加えて、正規の要員が差動データAPIをコー
ルし、別の変更を行なう前に、保護されている論理オブジェクトに対して不正の
変更がなされていないことを確認することも可能である。
【0075】 本出願人の発明の技術の別の使用として、一次コンピュータシステムから1つ
以上のリモート・コンピュータ・システムに対して変更を複製することがあげら
れる。例えば、多くの組織が中央コンピュータを有し、そこにはデータベースが
実装されており、多数の別のリモート・コンピュータ・システムがそのデータベ
ースのコピーを有する。中央コンピュータ・システム上のデータベースに変更を
加えると、これらの変更は一般的にリモート・コンピュータ・システム上のデー
タベースのコピーにも伝える必要がある。あらゆる変更情報を識別し、変更情報
のみ(データベース全体ではなく)をリモート・コンピュータ・システムに伝え
ることによって、リモート・コンピュータ・システム上のデータベースを素早く
更新することができるので便利である。
【0076】 本出願人の発明の更に別の実施形態によれば、論理オブジェクトを再編成する
方法が提供される。コンピュータ・システム上の論理オブジェクトは、典型的に
、論理オブジェクトを形成するデータに対して行われる変更のために、時と共に
変化する。例えば、新たなデータ・ブロックを追加する場合もあり、古いデータ
・ブロックを削除または変更する場合もある。時間と共に、論理オブジェクトを
形成する物理データ・ブロックは、記憶システム内の別々の非隣接物理ブロック
に散在してしまう可能性がある。論理オブジェクトを形成するデータをメモリに
読み込んだり、あるいはメモリから記憶装置に書き込む時、この断片化が、ホス
ト・コンピュータおよび記憶システム間に多数のI/O動作を生ずる可能性があ
る。
【0077】 従来の論理オブジェクトの断片化を修正する方法は、典型的に、論理オブジェ
クトを形成するデータを、記憶システム内の空き空間の1組の隣接物理ブロック
にコピーし、次いで断片化した論理オブジェクトの論理オブジェクト識別子を修
正し、断片化を排した論理オブジェクトの新たなコピーを示すようにすることを
伴う。しかしながら、従来の論理オブジェクトの断片化を修正する方法では、一
般に、断片化修正プロセスが完了するまで、論理オブジェクトに対する修正を行
うことができなかった。これは、このような断片化論理オブジェクトに頻繁にア
クセスする(データベースのような)アプリケーションにとっては問題である。
【0078】 図10は、本発明の別の実施形態による再編成ルーチンの一例を示す。この再
編成ルーチンは、論理オブジェクトのユーザに対する影響を最少に抑えつつ、フ
ァイルのような論理オブジェクト、またはデータベース全体でさえも、断片化を
修正するために用いることができる。再編成ルーチンは、ユーザ・プログラムま
たはデータベースのような別のアプリケーション・プログラムによってコールす
ることができる。図10に示す再編成ルーチンは、少なくとも1つの一次記憶装
置と、少なくとも1つの一次記憶装置の1つ以上のミラーとを有するコンピュー
タ・システム上に論理オブジェクトが格納されていると仮定する。このようなミ
ラー記憶装置は当技術分野では周知であり、一般に、リレーショナル・データベ
ースが実装されているコンピュータ・システムのように、高いアクセス性(ac
cessability)を要求するコンピュータ・システムと連携されている
【0079】 ルーチンをコールする前に、ホスト・コンピュータ110(図1)のメモリ1
30において行われた論理オブジェクトに対するあらゆる変更を、記憶システム
140に一括して送り込み(flush)、論理オブジェクトに対する全ての修
正が記憶システムにおいて表されることを確保しておかなければならない。
【0080】 ステップ1010において、再編成ルーチンは、論理オブジェクトを静止させ
(書き込みを抑制し)論理オブジェクトに対する変更を一時的に禁止する。再編
成ルーチンを実装するコンピュータ・システムによっては、論理オブジェクトは
この時間中リード・アクセスが可能な場合もある。論理オブジェクトを静止させ
た後、再編成ルーチンはステップ1020に進み、再編成ルーチンは、例えば、
図6に関して説明した変更APIをコールすることによって、論理オブジェクト
にマークを付ける。これによって、再編成ルーチンは、再編成プロセスの間に論
理オブジェクトに対して行われたあらゆる変更を、後に識別することができる。
【0081】 ステップ1030において、一次記憶装置のミラーの1つを、コンピュータ・
システムから分離させる。分離したミラーは基準を確立し、一次デバイス上の論
理オブジェクトに対するあらゆる変更をこの基準と比較し識別することができる
。ステップ1040において、再編成ルーチンは一次記憶装置を再活性化し、論
理オブジェクトに対して変更を行なうことを許可する。一般に、ステップ101
0ないし1040は、非常に短い時間量で行なうことができ、論理オブジェクト
を修正できない時間量は抑えられる。
【0082】 ステップ1050において、再編成ルーチンは(一次記憶装置からの)論理オ
ブジェクトを新たな論理オブジェクトにコピーし、新たな再編成論理オブジェク
トを作成する。これは、オペレーティング・システムが対応するいずれかのコピ
ー・コマンドを用いて実行することができ、あるいは、より特殊化したコマンド
を用いて実行することも可能である。例えば、論理オブジェクトがORACLE
データベースである場合、ORACLEデータベース・ソフトウエアは、「Cr
eate Table As Select」と呼ばれるコマンド・ユーティリ
ティに対応している。これは、データベース・オブジェクトの再編成コピーを作
成することができる。このORACLEのコマンドは、コマンドをコールした時
点において存在している、一次記憶装置上の論理オブジェクトの再編成コピーを
作成する。したがって、再編成コピーは、内部に含まれるデータに関しては、一
次記憶装置の分離ミラー・コピー上に保存されている論理オブジェクトのコピー
と同一である。しかしながら、再編成コピーは異なるフォーマット化がなされて
おり、例えば、断片化修正フォーマット(defragmented form
at)となっている。一次記憶装置上での論理オブジェクトの再編成が完了した
後、再編成ルーチンはステップ1060に進む。
【0083】 ステップ1060において、再編成ルーチンは、一次記憶装置上の再編成コピ
ーの作成中に、一次記憶装置上の論理オブジェクトに対して行われたあらゆる変
更を識別する。尚、大型のデータベースでは、再編成コピーの作成にはかなりの
時間量を要する可能性があり、一次記憶装置上の論理オブジェクトに対する変更
が非常に広範囲にわたる場合もあることを注記しておく。しかしながら、例えば
、前述の変更APIを用いることによって、論理オブジェクトに対するあらゆる
変更を識別することができるので、これらの変更を再編成コピーに適用すること
ができる。
【0084】 ステップ1070において、再編成ルーチンは、一次記憶装置上の論理オブジ
ェクトにおけるあらゆる変更を、論理オブジェクトの再編成コピーに適用する。
このステップを実行する際、分割ミラー上に格納されている論理オブジェクトの
基準コピーを、一次記憶装置上の論理オブジェクトと比較する。この比較によっ
て、再編成ルーチンは、論理オブジェクト内の各論理ブロックにおけるどのデー
タが、基準コピーから変化したかについて正確に判定することができる。一次記
憶装置上の論理オブジェクトと分離ミラー上の論理オブジェクトの基準コピーと
の間の変化を識別した後、再編成ルーチンは、これらの変更を、一次記憶装置上
の再編成論理オブジェクトに適用し、再編成コピーを更新し、ルーチンはステッ
プ1080に進む。
【0085】 ステップ1080において、再編成ルーチンは、一次記憶装置上の論理オブジ
ェクトの論理オブジェクト識別子を修正して一次記憶装置上の当該論理オブジェ
クトの更新し再編成したコピーを示すようにして、ルーチンは終了する。
【0086】 先に記したように、再編成ルーチンは、論理オブジェクトの変更データを、当
該論理オブジェクトの基準コピーと比較することによって、論理オブジェクトに
対する変更を識別することができる。当業者には認められようが、再編成ルーチ
ンによって実行するステップは、データーベース・ソフトウエアが論理コピーを
作成することができるデータベースにおける全てのデータベース・オブジェクト
というように、多数の論理オブジェクトに対して実行することができる(即ち、
ステップ1050において)。
【0087】 本発明の更に別の実施形態によれば、最大論理ブロック・レベルよりも小さい
論理ユニットで、データベース・オブジェクトに対する変更を識別する方法およ
び装置を提供する。即ち、本発明の実施形態は、基準時点以降に追加、削除、ま
たは修正が行われたデータベースのあらゆるレコードの識別を可能にする。一実
施形態では、この方法は、ORACLEデータベース・オブジェクトに対する変
更を、基準時点以降に追加、削除、または修正されたデータのあらゆる行の行識
別子によって識別できるようにする。この粒度は重要である。何故なら、最も関
心がある情報は、典型的に、行レベルにあるからである。更に、本出願人の発明
は、データベースにおいてどの行またはレコードの情報が変化したかを識別する
ことによって、情報を報告することができる新たな枠組み(paradigm)
全体を容易にすることができる。
【0088】 当業者には公知であろうが、リレーショナル・データベース、可変シーケンシ
ャル・アクセス方法(VSMA:variable sequential a
ccess method)ファイル、インデックス・シーケンシャル・アクセ
ス方法(ISAM)ファイル、および、ORACLE、INFORMIX、SY
BASE、SAS、SAP等のような会社からのその他のデータ・ストアという
ようなデータ・ウェアハウス(data warehouse)が、銀行業務か
ら健康管理まで広範囲に及ぶ多様な状況で用いられている。これらのデータ・ウ
ェアハウスの各々は、ここではデータベースと呼ぶが、種々のハードウエアおよ
びオペレーティング・システムで構成された多数の異なる計算環境上に実現する
ことができる。典型的に、これらのデータベースは大量の情報を格納し、その殆
どは経時的に殆ど変化しない。ユーザ・プログラムまたはその他のアプリケーシ
ョン・プログラムにとって最も関心がある情報は、情報のレコードまたは行と連
携付けられたものである。データベース・オブジェクトの論理ブロックに関して
データベースに対する変更を識別することは、逐次バックアップや、データベー
スのセキュリティ監査というような目的にも使用可能であるが、この粒度はその
他の目的に対しては粗すぎる可能性がある。ユーザ・プログラムまたはその他の
アプリケーション・プログラムは、より具体的に、データベースのどの特定の行
またはレコードが時と共に変化しているのかについて関心がある頻度が高い。例
えば、データベース内に格納されているデータが在庫を表す場合、特定の品目の
在庫の経時的な変化は、当該品目の実際の在庫よりも関心が高い場合がある。デ
ータベースからこのような情報にアクセスするために、特殊なオンライン報告ア
プリケーションが用意されていることが多い。これらの報告システムの中には、
データベースによって与えられるログ・ファイルを処理するものもある。一般に
、ログ・ファイル内のエントリの多くは、データベースに格納されている情報に
対する変更については殆ど関与していないので、これは煩わしいプロセスである
。変更情報のこの粒度を得る他の方法には、データベース自体の構造を修正し、
論理レベルでデータ構造(例えば、インデックス)を割り当て、いつデータベー
スの特定の行が変更されたかを示すものがある。しかしながら、データベースの
ベンダは、このような変更を保証するのを躊躇っており、エンド・ユーザによっ
てこのような修正がデータベースに対してなされると、データベース・ソフトウ
エアの今後のリリースに対するアップグレードを、継続できなくなる(unte
nable)虞れがある。更に、ソフトウエア・ベンダの一部は、実際にこのよ
うな変更を彼らのデータベースまたはアプリケーション・ソフトウエアに対して
行なうことを禁止している。
【0089】 本発明の別の態様によれば、データベースに属する論理データ・ユニットを識
別する方法および装置を提供する。この場合、当該論理データ・ユニットに対す
るアプリケーション空間ラベルを用いて、データベースから論理ユニットに最初
にアクセスする必要なく、これを行なう。一実施形態では、データベースに属す
る論理データ・ユニットのロケーションを一意に識別する第1識別子を得る方法
を提供する。この方法は、識別子グループを直接指定しない、データベース構造
に関する情報に基づいて、第1識別子を含む識別子グループを判定するステップ
を含む。後述する本発明の例示の一実施形態では、本発明のこの態様を用いて、
データベース・オブジェクト内の行またはレコードを識別する。この方法は、変
更APIと共に用いて、あらゆるデータベース・オブジェクトに対して、当該デ
ータベース・オブジェクトのどの行またはレコードに、基準時点以降に追加、削
除、または変更が行われたかについて判定し、対象の行またはレコードに対応す
る物理空間における物理変更ビットをリセットすることができる。ORACLE
データベースを対象とする一実施形態では、データベース・オブジェクトの行ま
たはレコードを識別する方法は、ORACLEデータ・ディクショナリを用いて
、論理レベルに格納されているデータベース・オブジェクトのファイル名称、お
よびそのデータベース・オブジェクトを形成する論理データ・ブロックを判定す
る。この情報に基づいて、レコード識別方法は、どの行またはレコードが各論理
データ・ブロックに格納されているかについて判定を行なう。
【0090】 先に注記したように、ORACLEデータベースでは、情報の行(またはレコ
ード)はテーブル単位で格納されている。ORACLEデータベースは、行識別
子(「rowid」と呼ぶ)に基づいて情報の行を識別する。ORACLEデー
タベース内のrowidのフォーマットを図11に示す。図11に示すように、
ORACLEバージョン7以前のrowid1110のフォーマットは、ファイ
ル番号1111、論理ブロック番号1112(アプリケーション空間310にお
ける)、および行番号1113を含む。ORACLEバージョン8のrowid
1120のフォマットは、オブジェクト番号1121、ファイル番号1122、
論理ブロック番号1123、および行番号1124を含む。バージョン8におい
て対応するオブジェクト・タイプは、クラスタ、インデックス編成テーブル、ユ
ーザ定義オブジェクト等を含む。ORACLEバージン8におけるオブジェクト
番号は、データベースが用いる場合のオブジェクトの名称、およびそのタイプを
示し、各オブジェクトは、一意のオブジェクト番号を有する。全てのORACL
Eバージョンにおいて、ファイル番号は、オブジェクトが格納されているオペレ
ーティング・システムのファイル名に基づいている。ORACLEバージョン8
のrowidはORACLEバージョン7以前のrowidに含まれる情報のス
ーパーセットを含むので、以下の論述は、新しいバージョン8のrowidフォ
ーマットを対象にすることとする。しかしながら、本発明の実施形態はバージョ
ン7以前でも同様に使用可能であることは認められよう。
【0091】 各rowidは、行またはレコードが連携するオブジェクト名およびタイプ、
ファイル名、論理ブロック、および当該行に関連するデータが論理レベルにおい
て格納されている行番号を示すので、ORACLEデータベース・オブジェクト
における各行またはレコードは、そのrowidに基づいて一意に特定すること
ができる。各行またはレコードはその対応するrowidによって識別すること
ができるが、特定の行またはレコードのrowidを得るには、従来では、最初
にアプリエーション空間におけるラベル(例えば、シカゴ市の人口)によって、
行またはレコードにアクセスしなければならなかった。典型的に、この形態のア
クセスは、特に大型データベースでは、非効率的である。一旦行またはレコード
にアクセスしたなら、当該行またはレコードをデータベースに一意に識別するr
owidを、データベースから要求することができるので、データベースに対し
てrowidを直接指定することによって、以降のアクセスを実行することがで
きる。尚、例えば、アプリケーション・プログラムによって行またはレコードに
最初にアクセスする場合、当該行と連携する論理データ・ブロック全体を、デー
タベース・ソフトウエアによって読み取り、走査して所望の情報を求めることを
注記しておく。本出願人は、報告システムのようなその他のアプリケーションは
、この情報の大部分には関心がないことを発見した。例えば、このようなその他
のアプリケーションは、データベース・オブジェクト内にある特定の行またはレ
コードのみを識別し、その中に格納されている情報が変更されたか否か判定する
ことに関心があると考えられる。この技術にとって有用なその他のアプリケーシ
ョンも、想定することができる。
【0092】 本発明の一実施形態によれば、アプリケーション空間におけるラベルを用いて
データベースから論理データ・ユニットに最初にアクセスすることなく、データ
ベース内部の論理データ・ユニットのロケーションを一意に識別する識別子を得
る方法を提供する。この方法は、特定の行またはレコードに対応するデータを、
別のアプリケーションに供給し、続いて処理または報告を行なうために用いるこ
とができる。以下では、データベース・オブジェクトの行またはレコードを識別
する方法は、行またはレコードに対する変更を識別する(例えば、図4の変更A
PIを用いて)ために用いるものとして説明するが、この方法は、その他の目的
でデータベース・オブジェクトの特定の行またはレコードを識別するためにも使
用可能であることは認められよう。
【0093】 図12は、データベース・オブジェクトの行またはレコードを識別し、特定の
レコードに対応するデータを与える、データベース・レコード識別ルーチンを示
す。図4の変更ルーチンと共に用いる場合、この識別ルーチンは、論理ブロック
・レベルよりも低い粒度で、データベースの行またはレコードに格納されている
情報が、基準時点以降に、追加、削除、または修正されたか否か識別するために
用いることができる。同様に、識別ルーチンは、図6のリセット・ルーチンと共
に用いて、物理空間内の対応する変更ビットをリセットすることも可能である。
変更APIと共に用いる場合、基準時点以降に変化した各行またはレコードを識
別することができる。物理レベルで与えられる変更情報が、十分に小さな情報ユ
ニットにおいて変更を識別するのに十分な粒度を有するのであれば、変更API
を用いて、先に論じたように行またはレコードに対する変更を識別することがで
きる。あるいは、物理変更情報が十分な粒度ではなく、データベース・オブジェ
クトのより大きな論理ユニットについてのみ変更を識別する場合、本発明の一実
施形態では、変更されたより大きな論理ユニット(例えば、論理ブロック)の各
行における行データを、基準時点における対応する論理ユニットで作られた基準
コピーと比較し、基準点以降にデータベース・オブジェクトにおいて追加、削除
、または修正されたいずれの情報の行でも識別することができる。
【0094】 図12のデータベース・レコード識別ルーチンは、ホスト・コンピュータ11
0(図1)のプロセッサ120上で実行する汎用アプリケーション・プログラム
として実装することができる。ユーザ・プログラムまたはその他のアプリケーシ
ョン・プログラムは、特定のデータベース・オブジェクトをルーチンに指定する
ことによって、データベース・レコード識別ルーチンと通信することができる。
データベース・オブジェクトは、具体的なデータベース・オブジェクト・タイプ
、例えば、テーブルとしてもよく、全体として、データベース全体に言及しても
よい。データベース・レコード識別ルーチンのあるステップは、ルーチンに指定
されたデータベース・オブジェクトのタイプに応じて変化する。これについて、
以下で更に詳しく説明する。
【0095】 図12に示すデータベース・レコード識別ルーチンは、一次記憶装置および当
該一次記憶装置の1つ以上のミラーを有するコンピュータ・システム上に、デー
タベース・オブジェクトが格納されていると仮定する。レコード識別ルーチンを
コールする前に、ホスト・コンピュータ110(図1)のメモリ130において
行われたデータベース・オブジェクトに対するあらゆる変更を記憶システム14
0に一括して送り込み、論理オブジェクトに対する全ての修正が記憶システムに
おいて表されることを確保する。
【0096】 ステップ1210において、ルーチンはデータベース・オブジェクトを静止(
即ち、書き込みを抑制)し、データベース・オブジェクトに対する変更を一時的
に禁止する。ルーチンを実装するコンピュータ・システムによっては、この時間
中読み取りアクセスのためにデータベース・オブジェクトがなおも利用できる場
合もある。データベース・オブジェクトを静止した後、ルーチンはステップ12
20に進み、例えば、図6に関して説明したリセットAPIをコールすることに
よって、データベース・オブジェクトにマークを付ける。このステップによって
、レコード識別ルーチンは、データベース・オブジェクトにおいて変更されたあ
らゆるレコードをその後に識別することができ、基準時点を設定し、この時点以
降のデータベース・オブジェクトに対する変更を判定する。ステップ1230に
おいて、一次記憶装置のミラーの内1つをコンピュータ・システムから分離する
。図10の再編成ルーチンにおけると同様、分離ミラーは基準を確立し、一次記
憶装置上のデータベース・オブジェクトに対するあらゆる変更をこの基準と比較
し識別することができる。ステップ1240において、ルーチンは一次記憶装置
を再活性化し、データベース・オブジェクトを変更可能にする。一般に、ステッ
プ1210〜1240は、非常に短い時間量で行なうことができ、論理オブジェ
クトを修正できない時間量は抑えられる。
【0097】 ステップ1250において、レコード識別ルーチンは、データベース・オブジ
ェクトの変更を監視して以降の、一次記憶装置に上のデータベース・オブジェク
トに行われたあらゆる変更を識別する。このステップは、データベース・オブジ
ェクトを再活性化した後であればいずれの時点でも実行することができる。本発
明の一実施形態では、図4に関して先に説明した変更APIを用いて、修正され
たデータベース・オブジェクトの論理ブロックに関して、データベース・オブジ
ェクトにおける変更を識別する。
【0098】 ステップ1260において、ルーチンは、ステップ1250で識別されたデー
タベース・オブジェクトの各変更論理ブロックと連携するレコードまたは行を識
別し、ダンプ(即ち、読み出し出力)する。レコードまたは行をどのように識別
しダンプするかについての更に詳しい説明は、図13および図14に関連付けて
以下で記載する。
【0099】 ステップ1270において、レコード識別ルーチンは、ステップ1260と同
様に、一次記憶装置上のデータベース・オブジェクトの分割ミラー・コピーの対
応する論理ブロックにおける行およびレコードを識別してダンプする。ステップ
1280において、ルーチンは、ステップ1260および1270においてダン
プしたレコードを比較し、基準時点以降に追加、削除、または修正された行を識
別する。具体的には、ステップ1280において、あるrowidが、分割ミラ
ー上に格納されているデータベース・オブジェクトの基準コピー内で発見された
が、一次記憶装置上に格納されているデータベース・オブジェクト内では発見さ
れない場合、基準時点以降に行が削除されたと判定する。あるいは、データベー
ス・オブジェクトの特定の論理ブロックに対するrowidが、一次記憶装置上
のデータベース・オブジェクトの現バージョンにおいて発見されたが、分割ミラ
ー上のデータベース・オブジェクトの基準コピー内では発見されない場合、基準
時点以降にデータベース・オブジェクトに行が挿入または追加されたと判定する
。最後に、rowidが、分割ミラー内のデータベース・オブジェクトの基準コ
ピー内、および一次記憶装置上のデータベース・オブジェクトの現バージョンに
おいて発見された場合、実際の行データの比較を行い、何らかの相違があるか否
か識別する。データベース・オブジェクトの現バージョンに対する行データが、
データベース・オブジェクトの基準コピーのそれと相違する場合、そのrowi
dに対応する行内のデータが基準時点以降修正されたと判定する。
【0100】 行情報が追加、削除、または修正されたか否か判定した後、ルーチンはステッ
プ1290に進み、この情報をアプリケーション・プログラムまたはルーチンを
コールしたユーザに提供し、次いでルーチンは終了する。
【0101】 図13は、特定のデータベース・オブジェクトと連携する行またはレコードを
識別しダンプするルーチンを示す。このルーチンは、レコード識別ルーチン、ま
たはその他のアプリケーション・プログラムによってコールし、データベース・
オブジェクト内の特定の行またはレコードを識別しダンプすることができる。図
13のルーチンは、典型的に、アプリケーション空間310(図3)内で実行す
る別のアプリケーション・プログラムによってコールされるが、異なる空間内で
実行する別のコンピュータ・プログラムがこのルーチンをコールしてもよいこと
は認められよう。更に、図13のルーチンは典型的にソフトウエアで実現される
が、本発明はそれに限定される訳ではない。何故なら、このルーチンは、ハード
ウエアまたはファームウエア、あるいはソフトウエア、ハードウエア、およびフ
ァームウエアの組み合わせで実現することも可能であるからである。
【0102】 端的に要約すると、図13のルーチンは、上側境界rowidおよび下側境界
rowidを、データベース・オブジェクトの対象論理ブロック内に潜在的に格
納されている可能性がある各データ行毎に決定することを伴う。この判定は、対
象の論理ブロックのオブジェクト番号(適用可能な場合)、ファイル番号、論理
ブロック番号、ならびに論理ブロックに格納可能な最大および最小行番号に基づ
く。どのrowidが対象の特定論理ブロック内に潜在的に格納されている可能
性があるか判定した後、ルーチンは、どのrowidが実際に対象の論理ブロッ
クに格納されているかを判定し、これらのデータ行の各々と連携する行データを
出力する。
【0103】 ステップ1310において、ルーチンは、データベース・オブジェクトの特定
の論理ブロックに対応する上側および下側境界rowidを決定する。上側およ
び下側境界rowidは、データベース・オブジェクトに対するオブジェクト番
号、ファイル番号、および論理ブロック番号に基づいて算出される。図13のル
ーチンを図4の変更APIと共に用いて、変更したデータベース・オブジェクト
の行をダンプする場合、データベース・オブジェクトに対する論理ブロック番号
が変更APIによって与えられる。したがって、特定の論理ブロック内に含まれ
る各行またはレコードに対してrowidを算出するために足りない情報は、図
11に示すように、特定のレコードのオブジェクト番号、ファイル番号、および
行番号である。図14に関して以下で更に詳しく説明するが、オブジェクト番号
およびファイル番号は、ORACLEデータ・ディクショナリに問い合わせ、特
定のデータベース・オブジェクトを求めることによって決定することができる。
この場合も、図4の変更APIと共に用いる場合、データベース・オブジェクト
はわかっており、これは、変更APIに渡され、データベース・オブジェクト内
におけるあらゆる変更を判定したオブジェクトである。したがって、決定すべき
残っているものは、変更データを含むと識別された論理データ・ブロックにおけ
る各行の実際の行番号である。論理ブロックに含まれる各データ行の行番号は正
確にはわからないが、この行番号に対する上側および下側の境界は、図14に関
連付けて以下で説明するように決定することができる。論理ブロックにおける各
行は、上側および下側境界の間にあることがわかる。
【0104】 識別した各論理データ・ブロックに対して上側および下側境界rowidを決
定した後、ルーチンはステップ1320に進み、識別された論理ブロックからの
個々のレコードを読み出し、ルーチンをコールしたアプリケーションに、以下に
論ずるように与える。
【0105】 図14は、データベース・オブジェクトの特定の論理ブロック内にある全ての
行が存在する上側境界および下側境界を判定するために用いることができる上側
境界および下側境界行識別ルーチンを示す。即ち、図14のルーチンは、コール
されたときに、論理ブロックが渡され、その論理ブロック上で動作する。上側お
よび下側境界行識別ルーチンの動作は、論理ブロックが関連するデータベース・
オブジェクトのタイプによって異なる。したがって、最初に、テーブルのような
、データベース・オブジェクトの指定されたタイプについて、ルーチンの動作を
説明し、次いでデータベース全体のように、データベース・オブジェクトのより
一般的なタイプについて再度説明する。
【0106】 図14に示すように、データベース・オブジェクトの特定のタイプ(例えば、
テーブル)に対してコールされた後、上側および下側境界行識別ルーチンはステ
ップ1410に進む。ステップ1410において、ルーチンは、指定されたデー
タベース・オブジェクトに対するオブジェクト番号を判定する。このステップは
、ORACLEデータベースによって与えられる、dba_objectsディ
クショナリ・ビュー(dictionary view)を用いて、ORACL
Eデータ・ディクショナリに問い合わせることによって実行することができる。
当業者には理解されようが、ORACLEデータ・ディクショナリとは、問い合
わせをすることができ、データベースおよびそのデータベース・オブジェクトの
構造および編成についての情報を提供するユーティリティである。ORACLE
データ・ディクショナリに対する問い合わせは、構造型問い合わせ言語(SQL
)ステートメントを用いて行われる。SQLは、リレーショナル・データベース
において動作を実行するために広く採用されている標準的なプログラミング言語
であり、ORACLE、INFORMIX等のようなリレーショナル・データベ
ース提供者によって支援されている。例えば、以下のSQLコード・フラグメン
トは、ORACLEデータ・ディクショナリに問い合わせ、「TABLE NA
ME」という名称を有する指定のデータベース・テーブルを求め、この指定のテ
ーブルに対応するオブジェクト番号を与える。
【0107】 1 select data#object#number 2 from dba#objects 3 where object#name='<TABLE NAME>' 4 and object#type='TABLE'; 上のコード・フラグメントでは、問い合わせのライン4は、テーブルであるデ
ータベース・オブジェクトに制約される。しかしながら、当業者には公知であろ
うが、このラインを修正し、他のデータベース・オブジェクト・タイプを識別す
ることも可能である。
【0108】 指定されたデータベース・オブジェクトに対するオブジェクト番号を決定した
後、ルーチンはステップ1420に進み、ここでルーチンは、指定されたデータ
ベース・オブジェクトに対するファイル名(または複数のファイル名)を決定す
る。このステップは、dba_extentsディクショナリ・ビューを用いて
ORACLEデータ・ディクショナリに問い合わせることによって実行すること
ができる。以下のSQLコード・フラグメントは、ORACLEデータ・ディク
ショナリに問い合わせ、名称「TABLE NAME」を有する指定のテーブル
と連携するファイル識別子(即ち、ファイル名)を求める。
【0109】 1 select file#id 2 from dba#extents 3 where segment#name='<TABLE NAME>' 4 and segment#type='TABLE' 先のコード・フラグメントにおけると同様、この問い合わせは、テーブルであ
るデータベース・オブジェクトに限定されるが、当業者には公知のように、修正
して他のデータベース・オブジェクト・タイプを識別することも可能である。
【0110】 指定のデータベース・オブジェクトと連携するファイルのファイル名を識別し
た後、行識別ルーチンはステップ1430に進む。ステップ1430において、
ルーチンは、ステップ1220において識別したファイル名の各々に対応するフ
ァイル番号(ORACLEでは「相対ファイル番号」と呼ぶ)を識別する。この
ステップは、dba_data_filesディクショナリ・ビューを用いてO
RACLEデータ・ディクショナリに問い合わせることによって、実行すること
ができる。以下のSQLコード・フラグメントは、ORACLEデータ・ディク
ショナリに問い合わせ、ファイル名「FILE NAME」を有するファイルと
連携する相対ファイル番号を求める。
【0111】 1 select relative#fno 2 from dba#data#files 3 where file#id='<FILE NAME>' あるいは、ステップ1420および1430は、直ぐ下に示すように、単一の
SQLコード・フラグメントを用いて実行してもよい。
【0112】 1 select 2 relative#fno, 3 file#name 4 from dba#data#files df 5 where df.file#id in ( 6 select de.file#id 7 from dba#extents de 8 where segment#name='<TABLE>' 9 and segment#type='TABLE' 10 ); 上のコード・フラグメントにおいて、ライン6ないし9は、「TABLE」と
いう名称のテーブルに対するファイル識別子のリストを戻し、行1ないし5は、
ファイル識別子のリストに対応する相対ファイル番号およびファイル名を戻す。
【0113】 ステップ1430において、指定のデータベース・オブジェクトに対する相対
ファイル番号を決定した後、ルーチンはステップ1440に進む。ステップ14
40において、ルーチンは、指定の論理ブロックに対して上側境界rowidお
よび下側境界rowidを決定する。以下のSQLコード・フラグメントは、デ
ータベース・オブジェクトが格納されている特定の論理ブロックに対して、ro
widの上側境界および下側境界を決定する2つの代替方法の1つを示す。この
コード・フラグメントは、ORACLEデータベース・ソフトウエアに対応する
、直ぐ下に示す手順を利用する。
【0114】 1 select 2 DBMS#ROWID.ROWID#CREATE( 3 1, 4 <object number> 5 <relative file number> 6 <block number> 7 <row number>) 8 from dual; 上のコード・フラグメントでは、オブジェクト番号および相対ファイル番号は
、それぞれ、ステップ1420および1430において決定したものである。ブ
ロック番号は、データベース・オブジェクトの行が格納されている論理ブロック
番号を示し、ルーチンをコールしたアプリケーション、例えば、図12のレコー
ド識別ルーチンによって、行識別ルーチンに与えることができる。上のコード・
フラグメントにおいて用いられる行番号は、上側境界行番号または下側境界行番
号のいずれかである。したがって、対象の論理ブロック毎に上のコード・フラグ
メントを2回実行する。1回目は下側境界行番号、そして再度上側境界行番号を
用いて実行する。
【0115】 一般に、下側境界行番号は、ORACLEによって用いられる最低の行番号(
即ち、行0)であり、上側境界行番号は、現在ORACLEが対応する最高の行
番号である。現在、ORACLEが対応する最大論理ブロック・サイズは、65
536バイトである。いずれの行も少なくとも1バイトを占めるので、現在OR
ACLEが対応可能な最高の行番号は、行番号65536である。更に、ORA
CLEによって供給されるrowid手順は、現在行番号65536で元に戻る
(wrap)ことを注記しておく。現在ORACLEが対応する最高の行番号を
用いる代わりに、特定のORACLEデータベースにおいて見ることができる最
高の行番号を用いてもよい。即ち、最高の行番号は、上側および下側境界行識別
ルーチンと共に用いられる特定のORACLEデータベースにおいて許される最
大論理ブロック・サイズに基づくことができる。この許される最大の論理ブロッ
ク・サイズは、ORACLEデータベースを試験することによって決定すること
ができる。ORACLEデータベースによって用いられる最大許容論理ブロック
・サイズが、ORACLEが対応する最大許容可能ブロック・サイズよりも著し
く小さい場合、最高の行番号に対して小さい値を用いると、図13のルーチンの
効率を高めることができる。
【0116】 ステップ1440における上側および下側境界rowidを決定する代わりの
方法は、オブジェクト番号、相対ファイル番号、論理ブロック番号、ならびに上
側および下側境界行番号に基づくrowidの直接エンコードに基づくことがで
きる。rowidのフォーマットは、ORACLE8 Application
Developer’s Guide Release 8.0の第5章に、
ORACLEによって文書化されている。文書化されているように、rowid
は、基準64キャラクタ・セットに基づく。ステップ1410ないし1430に
記載したように、特定の対象論理ブロックに対して決定した情報(即ち、オブジ
ェクト番号、相対ファイル番号、および論理ブロック番号)、および行番号(例
えば行0および行65536)に対する上側および下側境界が与えられると、所
望通りに、いずれかの特定のプログラミング言語を用いて、文書化されている基
準64(base64)キャラクタ・セットに基づいて、上側および下側境界r
owidを直接エンコードすることができる。この直接エンコードは、一般に、
前述のORACLEが対応する手順を用いるよりも効率的である。ステップ14
40においていずれかの方法で上側および下側境界rowidを決定した後、ル
ーチンは終了する。
【0117】 先に注記したように、図14の上側および下側境界行識別ルーチンは、データ
ベース全体に対する上側および下側rowidを識別するためにも使用可能であ
る。一般に、典型的なデータベースにおいては多数のデータベース・オブジェク
トのために、このような情報は、典型的に、例えば、図12のレコード識別ルー
チンを用いることによって、特定の基準時点以降のデータベース全体に対するあ
らゆる変更を識別することの要求と連携して、要求される。データベース全体に
関する変更情報が要求された場合(例えば、セキュリティ監査のため、またはデ
ータベースのレコードを修正するアプリケーション・プログラムを検証するため
)、以下のSQLコード・フラグメントを用いて、データベース内で変化したあ
らゆる行またはレコードを識別することができる。
【0118】 1 select /*+parallel(dba#extents, 10, 1)*/ 2 do.object#name||''|| 3 do.data#object#id||''|| 4 de.relative#fno||''|| 5 de.owner||''|| 6 from dba#extents de, dba#objects do 7 where do.object#name=de.segment#name 8 and do.onwer=de.owner 9 and do.object#type = de.segment#type 10 and do.object#type = 'TABLE' 11 and <BLOCK> between de.block#id and (de.block#id+de.blocks-1) 12 and de.file#id = ( 13 select df.file#id 14 from dba#data#files df 15 where file#name = '<FILE NAME>' 16 ); 上のコード・フラグメントは、ORACLEデータベースの各論理ブロックに
対して、オブジェクト名および番号、ファイル名、ならびに相対ファイル番号を
戻す双方向合併問い合わせ(join query)である。合併問い合わせと
は、2つ以上の問い合わせ上でセット動作を実行するものである。上のコード・
フラグメントでは、合併問い合わせは、2つのディクショナリ・ビューの共通部
分(intersection)を実行する。ORACLEデータベースにおけ
るブロック数は、従来のストレージのギガバイトに及び得るので、上のコード・
フラグメントは、典型的に、変更APIによって基準時点以降に変更されたとし
て識別された論理ブロックのように、特定の対象論理ブロックに限定される。直
ぐ上に示したコード・フラグメントは、前述のレコード識別ルーチンと同じステ
ップ1410ないし1440を実行するが、これは、単一のコード・フラグメン
トで、データベース全体として、指定の論理ブロックに対してこれらのステップ
を実行するのみである。
【0119】 上のコード・フラグメントは、ORACLEデータ・ディクショナリに、指定
の論理ブロック番号に対して、ORACLEデータベースにおけるどのテーブル
範囲に、指定の論理ブロック番号が存在するかについて判定を行なう。論理ブロ
ックが存在する範囲が一旦判定されたなら、dba_extentsディクショ
ナリ・ビューに問い合わせを行い、このテーブル範囲を所有するデータベース・
オブジェクトを識別することができる。上のコード・フラグメントは、テーブル
・オブジェクトおよび2つの異なるディクショナリ・ビュー(dba_obje
ctおよびdba_extent)のみを見るが、他のデータベース・オブジェ
クトも見るように修正することができる。これら2つのビューから、オブジェク
ト名およびファイル名双方を決定し、これから、オブジェクト番号および相対フ
ァイル番号を、前述と同様に決定することができる。このコード・フラグメント
のライン1は、ORACLEデータベース・ソフトウエアに、可能であれば、こ
の問い合わせを並行して10個までのプロセッサ(CPU)上で実行するように
指令する。一般に、ORACLEユーティリティは、明示的に命令されない限り
、並列プロセッサを用いて動作を実行することはない。
【0120】 前述のように、上側および下側境界行識別ルーチンは、データベース・オブジ
ェクトの特定の論理ブロック内にある全てのrowidが存在する上側境界およ
び下側境界を決定する。しかしながら、この情報は、特定のブロック内にある全
てのrowidを見つけることができる境界を識別するだけに過ぎない。したが
って、データベース・オブジェクトの特定の論理ブロック内にある実際の各デー
タ行に対応する実際のrowidを識別する方法を提供する。この方法は、実際
のrowidを識別するだけでなく、この情報をダンプする(即ち、読み取り出
力する)ためにも用いることができるので(即ち図13のステップ1320)、
別のアプリケーション、例えば、図12のレコード識別ルーチンが用いてもよい
【0121】 例示の一実施形態では、論理ブロックにおける行情報は、特定の論理ブロック
における各行について、行毎に得ることができる。例えば、以下のSQLコード
・フラグメントは、図14の行識別ルーチンによって決定された、下側境界ro
wid以上および上側rowid以下のrowidによって識別された論理ブロ
ック内の全ての行を識別する。
【0122】 1 select/*+ rowid(<TABLE>)* / rowid, <TABLE>.* from <TABLE> 2 where (rowid >= '<LOW ROWID A' and rowid <= 'HIGH ROWID A') 上のコード・フラグメントを用いてORACLEデータ・ディクショナリに問
い合わせをすると、ORACLEデータ・ディクショナリは、上側および下側r
owid間で各データ行毎に、rowidおよび行データ双方を戻す。このフラ
グメントによって与えられる情報は、他のアプリケーション、例えば、図12の
レコード識別ルーチンに行データを与えるために用いることができる。図12の
レコード識別ルーチンと共に用いる場合、コード・フラグメントは、ステップ1
280においてレコード識別ルーチンによって比較される各論理データ・ブロッ
クに対して実行される。
【0123】 別の実施形態では、多数の論理ブロックにおける行情報を、多数の論理ブロッ
クにおける各行について、行毎に得ることができる。例えば、以下のSQLコー
ド・フラグメントは、単一動作で、論理ブロックA、B、C、およびD内にある
全てのデータ行に対して、rowidおよび行データを得る。
【0124】 1 select /*+ rowid(<TABLE>) * / rowid, <TABLE>. * from <TABLE> 2 where (rowid >= '<LOW ROWID A' and rowid <= 'HIGH ROWID A') 3 or (rowid >= '<LOW ROWID B' and rowid <='HIGH ROWID B') 4 or (rowid >= '<LOW ROWID C' and rowid <='HIGH ROWID C') 5 or (rowid >= '<LOW ROWID D' and rowid <='HIGH ROWID D') 6 ... 多数の論理ブロックに対する行情報も、以下に示すような異なる方法で、当該
数ブロックにおける各行について、行毎に得ることができる。先のコード・フラ
グメントにおけると同様、多数の論理ブロック内にある全ての行に対して、行デ
ータが戻される。以下のSQLコード・フラグメントは、論理ブロックA、B、
およびC内にある全てのデータ行に対して、rowidおよび行データを得る。
【0125】 1 select /*+ rowid(<TABLE>) * / rowid, <TABLE>. * from <TABLE> 2 where (rowid >= '<LOW ROWID A' and rowid <= 'HIGH ROWID A') 3 union all 4 select * from <TABLE> 5 where (rowid >= '<LOW ROWID B' and rowid <='HIGH ROWID B') 6 union all 7 select * from <TABLE> 8 where (rowid >= '<LOW ROWID C' and rowid <='HIGH ROWID C') 9 ... 以上、本発明のいくつかの実施形態を詳細に説明したが、種々の変更および改
良も当業者には容易に想起されよう。かかる変更および改良は、本発明の精神お
よび範囲内であることとする。したがって、前述の説明は一例に過ぎず、限定と
して意図したのではない。本発明は、特許請求の範囲およびその均等物によって
規定されるものとしてのみ限定されることとする。
【図面の簡単な説明】
【図1】 本発明の態様を採用可能なコンピュータ・システムの機能ブロック図である。
【図2】 ORACLEデータベース内にデータを格納する方法の構成図である。
【図3】 論理オブジェクトの物理空間に対するマッピングを行なうマッピング・レイヤ
を有するコンピュータ・システムの構成図である。
【図4】 本発明の一実施形態にしたがって、論理オブジェクトに対する変更の識別に用
いることができる識別ルーチンを示すフローチャートである。
【図5】 図5(a)は、論理オブジェクトと、当該論理オブジェクトが物理空間のどこ
に格納されているかを示すマッピング情報との間の対応を示す図である。 図5(b)は、本発明の例示の一実施形態による物理レベルにおける変更情報
を示すために用いられるビットマップを示す図である。
【図6】 本発明の一実施形態にしたがって、指定された論理オブジェクトに対応する物
理変更ビットをリセットするために、変更APIが用いることができるステップ
を示すフローチャートである。
【図7】 本発明の実施形態と共に用い、論理オブジェクトを物理空間にマップするため
に用いることができる、例示のマッピング・ルーチンのフローチャートである。
【図8】 マッピング・レイヤおよびインテリジェント記憶装置を含むコンピュータ・シ
ステムの構成図である。
【図9】 本発明の一態様にしたがってアプリケーション・プログラムのデバックを行な
うために実行することができるステップを示すフローチャートである。
【図10】 本発明の別の実施形態にしたがって、最少のダウンタイムで論理オブジェクト
を再編成するために用いることができる再編成ルーチンを示すフローチャートで
ある。
【図11】 ORACLEデータベースにおける行識別子を示す図である。
【図12】 本発明の別の実施形態にしたがって、データベース・オブジェクトの行または
レコードを識別し、特定のレコードに対応するデータを供給するルーチンを示す
フローチャートである。
【図13】 本発明の別の実施形態にしたがって、特定のデータベース・オブジェクトと連
携された行またはレコードを識別しダンプする際のフローチャートである。
【図14】 本発明の更に別の実施形態にしたがって、データベース・オブジェクトの特定
の論理ブロック内にある全ての行が含まれる、上側境界および下側境界を決定す
る際に用いることができる、上側境界および下側境界行識別ルーチンのフローチ
ャートである。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年2月11日(2000.2.11)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正内容】
【発明の名称】 物理レベルにおける論理オブジェクトに対する変更に基づい
て、論理オブジェクトに対する変更を識別する方法および装置
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0001
【補正方法】変更
【補正内容】
【0001】 (発明の分野) 本発明は、データ記憶装置に関する。本発明の一態様は、論理オブジェクトが
格納されているデータ記憶システムにおいて、物理レベルに関する情報を試験す
ることによって、論理オブジェクトに対する変更を識別する方法および装置を対
象とする。本発明の別の態様は、識別子のグループを直接指定しない、データベ
ース構造に関する情報に基づいて、データベース内部の論理データ・ユニットの
ロケーションを一意に指定する論理データ・ユニットの識別子を含む識別子のグ
ループを決定することによって、データベースに属する論理データ・ユニットを
識別する方法および装置を対象とする。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0002
【補正方法】変更
【補正内容】
【0002】 (関連技術の説明) コンピュータ・システムは、通常、1つ以上の記憶装置を含む。図1は、かか
る典型的なコンピュータ・システム100のブロック図である。システム100
は、プロセッサ120およびメモリ130を有するホスト・コンピュータ110
、ならびに記憶システム140を含む。記憶システム140は、多数の異なる種
類の記憶装置(例えば、テープ記憶装置、フロッピ・ディスケット記憶装置、デ
ィスク記憶装置等)のいずれの1つとすることもでき、あるいは異なる種類の記
憶装置の組み合わせを含むこともできる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0003
【補正方法】変更
【補正内容】
【0003】 ワード・プロセッシング・アプリケーション、デスクトップ・パブリッシング
・アプリケーション、データベース・ソフトウエア等のようなアプリケーション
・プログラムは、プロセッサ120上で実行し、1つ以上の論理的に関連するデ
ータ・ブロックから形成される論理オブジェクト(例えば、ファイル等)上で動
作する。アプリケーションが論理オブジェクト上で動作を実行する際、論理オブ
ジェクトを形成するデータ・ブロックが記憶システム140から読み出され、更
に効率的な処理のために、ホスト・コンピュータのメモリ130内に一時的に格
納される。アプリケーションがこの論理オブジェクト上での動作を実行し終える
と、論理オブジェクトを形成するデータはメモリ130から読み出され、記憶シ
ステム140に書き込まれる。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正内容】
【0004】 多くのアプリケーションでは、記憶システム140上に格納されているデータ
から、特定の時点以降に変更したサブセットを判定できることが望ましい。この
ような状況の一例は、逐次バックアップ(incremental backu
p)である。フォールト・トレラント上の理由から、個々のアプリケーションの
ために記憶システム140上に格納されているデータは、周期的にバックアップ
するとよいことは認められよう。多くのアプリケーションでは、記憶システム1
40上に格納されるデータ量は膨大となる可能性があり、記憶システム140上
に格納されているデータ全てのバックアップを完全に行なうプロセスは長時間か
かる可能性がある。システム・バックアップを行なうとき、アプリケーション・
プログラムは他の他のユーザには利用できない場合があり、あるいは、当該アプ
リケーションおよびその他のアプリケーションによって認められるコンピュータ
・システム100の性能は、著しく損なわれる、即ち、低下し、コンピュータ・
システム100は事実上他のユーザには利用できなくなる可能性があることは認
められよう。したがって、記憶システム140上でデータをバックアップするた
めに要する時間量を極力抑えることが望ましい。この課題に取り組むために、逐
次バックアップの概念が生み出された。これは、記憶システム140上のデータ
のサブセットに対してバックアップを行うというもので、サブセットは、最後に
完全にバックアップを行なった以降に変更した(即ち、追加、削除または修正さ
れた)データ部分のみに対応する。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正内容】
【0049】 ステップ710において論理オブジェクトの所有権を判定した後、マッピング
・ルーチンはステップ720に進み、ルーチンは、指定された論理オブジェクト
と連携するマッピング・レイヤの数を識別する。論理オブジェクトが、UNIX
オペレーティング・システムを有するホスト・コンピュータ上に常駐するファイ
ル・システム内のファイルであるという前述の例では、dfコマンドは、どのフ
ァイル・システムが指定の論理オブジェクトを所有するのかについて識別するだ
けでなく、更にどの論理デバイス上にファイル・システムが実装されているかに
ついても識別する。ファイル・システムの下にどのようなマッピング・レイヤが
存在するかに応じて、ファイル・システムに対して識別された論理デバイスは、
物理空間330内のロケーションに直接対応する論理ボリュームであったり、ま
たはLVM324のような更に別のマッピング・レイヤによってマップされる場
合もある。しかしながら、ファイル・システムが実装されている論理デバイスが
一旦識別されたなら、マッピング・ルーチンは、次に、ホスト・コンピュータ・
システム上に存在することがわかっているいずれかのLVMに問い合わせを行い
、このLVMが、識別された論理デバイスを下位レイヤにマップするか否か判定
を行なう。殆どのLVMは、ユーザに、LVMに問い合わせを行い、指定された
論理デバイスがLVMにはわかっているか否か判定させる。デバイスがLVMに
わかっている場合、LVMは、論理デバイスがLVMによってマップされた先の
論理ボリューム・アドレスを回答する。あるいは、LVMにはデバイスがわかっ
ていない場合、LVMは、回答する際、典型的に、その旨示し、LVMはファイ
ル・システムに対していずれのレベルのマッピングも行なわないことを示す。L
VMの下に別のマッピング・レイヤがない場合、この論理ボリューム・アドレス
は物理空間内のロケーションに対応する。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0050
【補正方法】変更
【補正内容】
【0050】 ステップ720において、論理オブジェクトと連携するマッピング・レイヤの
数を識別した後、マッピング・ルーチンはステップ730に進み、ここでマッピ
ング・ルーチンは、指定された論理オブジェクトと連携する最初のマッピング・
レイヤに対して、マッピング・レイヤ320において次に低いレイヤに対するオ
ブジェクトのマッピングを判定する。マッピング・レイヤ毎に、例えば、当該マ
ッピング・レイヤに渡された論理オブジェクト(例えば、ファイル)に対するメ
タデータを格納しているマッピング・レイヤ(例えば、ファイル・システム32
2またはLVM324)のデータ構造の部分にアクセスすることによって、これ
を行なうことができる。特定のファイルに対するメタデータがファイル・システ
ムまたはLVMのデータ構造内に格納されているか否か判定を行なう方法は多数
ある。例えば、メタデータの構造およびロケーションは、マッピング・レイヤ(
例えば、ファイル・システム322またはLVM324)のベンダから直接得る
ことができる。一旦マッピング・レイヤ(例えば、ファイル・システムまたはL
VM)に対するメタデータの構造およびロケーションがわかったなら、マッピン
グ・ルーチンはこの構造を直接用いて、次のマッピング・レイヤへのウインドウ
をこれに与える情報にアクセスする。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0051
【補正方法】変更
【補正内容】
【0051】 最初のマッピング・レイヤにおいて指定された論理オブジェクトのマッピング
を判定した後、ルーチンはステップ740に進み、ここで、直前のマッピング・
レイヤによって与えられたロケーションが更に別のマッピング・レイヤに従うか
否かについて判定を行なう。従う場合、マッピング・ルーチンはステップ730
に戻り、マッピング・ルーチンは、処理するマッピング・レイヤに対して、前述
のように、マッピング・レイヤ320内の次の下位レイヤに対するオブジェクト
のマッピングを判定する。このように、ルーチンは、ステップ740において、
指定された論理オブジェクトに対する最下位のマッピング・レイヤを処理し終え
たと判定されるまで、マッピング・レイヤの各々に進み、処理し終えたときに、
ルーチンはステップ750に進む。ステップ750において、ルーチンは、ホス
ト・コンピュータが物理空間330であると認めたものにおいて、マッピング・
ルーチンがコールされたときにマッピングが要求された論理オブジェクトを構成
するデータのブロックのロケーションを戻す。また、ルーティンは、論理オブジ
ェクトのサイズ(例えば、バイト単位)を戻してもよい。ステップ750におい
てこの情報を戻した後、ルーチンは終了する。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0065
【補正方法】変更
【補正内容】
【0065】 図5(b)は、本発明の例示の一実施形態による変更ルーチンが用いるビット
マップの特性を示す。前述のように、変更APIは、コールされたときに物理セ
グメント503または505の一方を受け渡すことができ、変更ビットと共に、
コールにおいて指定された物理ブロックの各々に対応するビットマップを戻すこ
とができる。これを図5(b)に示す。即ち、隣接物理ブロック507はセグメ
ント503における50個のブロックを表す。ビットマップ509は、変更AP
Iによって戻すことができ、ビット511は物理ブロック507の各々に対応し
、対応する物理ブロックが変更データを含むか否かを示す。物理ブロック507
および論理ブロック501の対応はわかっているので(図5(a)参照)、ビッ
トマップ509を用いて、論理オブジェクト500の論理ブロック501の内ど
れが変更データを含むか判定することができる。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0066
【補正方法】変更
【補正内容】
【0066】 尚、変更APIをコールして特定の隣接物理セグメントに対する変更情報を戻
す場合、図7のマッピング・ルーチンによって戻される場合と同様に正確に物理
セグメントを識別して、コールを行なう必要はないことは認められよう。即ち、
変更APIは、同じ物理オフセットを用いてコールすることが好ましいが、ブロ
ック・サイズおよび範囲はいずれの所望値に変更することも可能である。尚、変
更APIをコールするときに要求したブロック・サイズは、図5(b)に示すビ
ットマップによって戻される情報の粒度を決定し、ブロック・サイズが小さい程
粒度が大きくなることは認められよう。加えて、指定された範囲は、選択された
ブロック・サイズによって異なる。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0067
【補正方法】変更
【補正内容】
【0067】 また、論理オブジェクトに対して変更データを検出することに関する本発明の
態様を容易にするために、アプリケーション・プログラムが、論理オブジェクト
に対応する物理変更ビットをリセットする能力を備えることが望ましいことは認
められよう。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0068
【補正方法】変更
【補正内容】
【0068】 図6は、基準時点以降の論理オブジェクトに対する変更を監視するために用い
られる、物理レベルのビットを変更APIがリセットする際に用いることができ
るステップのフローチャートである。変更APIは、ソフトウエアで実現するこ
とができ、ホスト・コンピュータ110のプロセッサ120上で実行し、記憶シ
ステム140(図1)と通信する。図6に示すように、変更APIは、基準時点
以降の変更に関して監視される論理オブジェクトの1つ以上のブロックにマーク
を付けることができる。ステップ620において、変更APIは、指定された論
理オブジェクトの論理ブロックの、論理オブジェクトが格納されている記憶装置
内の1組の物理ブロックに対するマッピングを行なう。先に論じたように、これ
は、図7のマッピング・ルーチンを用いて行なうことができる。ステップ630
において、APIは、ステップ630においてAPIが識別した論理ブロックに
対応する、記憶システムのメタデータ内の物理ビットマップ509におけるビッ
ト511をリセットする。これによって、基準時点を確立し、それ以降は、マー
クを付けた論理ブロックに対するいずれの変更でも識別可能となる。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0069
【補正方法】変更
【補正内容】
【0069】 前述のように、本発明の実施形態は、アプリケーション空間310(図1)に
おける論理オブジェクト上で動作するいずれのアプリケーション・プログラムで
も、論理レベルにおいて、基準時点以降に生じたこれら論理オブジェクトに対す
る変更を識別することを可能にする。この技術の一使用例は、先に記したように
、逐次バックアップである。しかしながら、この能力を用いれば、他にも無数の
有用なアプリケーションが実現できることは認められよう。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年2月27日(2000.2.27)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0123
【補正方法】変更
【補正内容】
【0123】 別の実施形態では、多数の論理ブロックにおける行情報を、多数の論理ブロッ
クにおける各行について、行毎に得ることができる。例えば、以下のSQLコー
ド・フラグメントは、単一動作で、論理ブロックA、B、C、およびD内にある
全てのデータ行に対して、rowidおよび行データを得る。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0124
【補正方法】変更
【補正内容】
【0124】 1 select /*+ rowid(<TABLE>) * / rowid, <TABLE>. * from <TABLE> 2 where (rowid >= '<LOW ROWID A' and rowid <= 'HIGH ROWID A') 3 or (rowid >= '<LOW ROWID B' and rowid <='HIGH ROWID B') 4 or (rowid >= '<LOW ROWID C' and rowid <='HIGH ROWID C') 5 or (rowid >= '<LOW ROWID D' and rowid <='HIGH ROWID D') 6 ... 多数の論理ブロックに対する行情報も、以下に示すような異なる方法で、当該
数ブロックにおける各行について、行毎に得ることができる。先のコード・フラ
グメントにおけると同様、多数の論理ブロック内にある全ての行に対して、行デ
ータが戻される。以下のSQLコード・フラグメントは、論理ブロックA、B、
およびC内にある全てのデータ行に対して、rowidおよび行データを得る。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0125
【補正方法】変更
【補正内容】
【0125】 1 select /*+ rowid(<TABLE>) * / rowid, <TABLE>. * from <TABLE> 2 where (rowid >= '<LOW ROWID A' and rowid <= 'HIGH ROWID A') 3 union all 4 select * from <TABLE> 5 where (rowid >= '<LOW ROWID B' and rowid <='HIGH ROWID B') 6 union all 7 select * from <TABLE> 8 where (rowid >= '<LOW ROWID C' and rowid <='HIGH ROWID C') 9 ... 以上、本発明のいくつかの実施形態を詳細に説明したが、種々の変更および改
良も当業者には容易に想起されよう。かかる変更および改良は、本発明の範囲内
であることとする。したがって、前述の説明は一例に過ぎず、限定として意図し
たのではない。本発明は、特許請求の範囲およびその均等物によって規定される
ものとしてのみ限定されることとする。
───────────────────────────────────────────────────── 【要約の続き】 ケーションのいずれをも識別するステップと、試験する ステップにおいて、基準時点以降に変化したデータを含 むとして、いずれかの物理記憶ロケーションが識別され た場合、論理オブジェクトに対して変更が行われたと判 定するステップとを含む。

Claims (43)

    【特許請求の範囲】
  1. 【請求項1】 基準時点以降の論理オブジェクトに対する変更を判定する方
    法であって、前記論理オブジェクトは、ホスト・コンピュータ、記憶システム、
    および前記論理オブジェクトを前記記憶システム上の物理記憶ロケーションに関
    係する物理レイヤにマップする少なくとも1つのマッピング・レイヤを含むコン
    ピュータ・システムにおけるホスト・コンピュータのアプリケーション・レイヤ
    に属し、前記物理レイヤが、前記基準時点以降における前記記憶システム上の前
    記物理記憶ロケーションに対して行われた変更に関係する物理変更情報を含み、
    前記方法が、 (A)前記アプリケーション・レイヤから前記物理レイヤに前記論理オブジェ
    クトをマップし、どの物理記憶ロケーションが前記論理オブジェクトに対応する
    データを含むか識別するステップと、 (B)前記物理変更情報を試験して、前記ステップ(A)において識別された
    、前記基準時点以降に変化したデータを含む物理記憶ロケーションのいずれをも
    識別するステップと、 (C)いずれかの物理記憶ロケーションが、前記ステップ(B)において前記
    基準時点以降に変化したデータを含むと識別された場合、変更が前記論理オブジ
    ェクトに対して行われたと判定するステップと、 から成る方法。
  2. 【請求項2】 請求項1記載の方法において、前記論理オブジェクトは、集
    合的に前記論理オブジェクトを形成する複数の論理ユニットを含み、前記方法は
    、更に、 (D)前記ステップ(B)において識別された前記物理記憶ロケーションを前
    記アプリケーション・レイヤにマップし、前記複数の論理ユニットのどれがそれ
    に対応するか判定することにより、前記論理オブジェクトにおける前記複数の論
    理ユニットのどれが、前記基準時点以降に変化したデータを含むのか識別するス
    テップを含む、 方法。
  3. 【請求項3】 請求項1記載の方法において、前記論理オブジェクトは、集
    合的に前記論理オブジェクトを形成する複数の論理ユニットを含み、前記方法は
    、更に、 (D)前記基準時点において前記論理オブジェクトのコピーを作成するステッ
    プと、 (E)前記ステップ(B)において識別した前記物理記憶ロケーションを、前
    記アプリケーション・レイヤにマップし、前記論理オブジェクトの前記複数の論
    理ユニットのどれがそれに対応するかを判定することにより、前記論理オブジェ
    クトにおける前記複数の論理ユニットのどれが、前記基準時点以降に変化したデ
    ータを含むのか識別するステップと、 (F)変化したデータを含む前記論理オブジェクト内の論理ユニットを、前記
    論理オブジェクトのコピーにおける対応する論理ユニットと比較し、前記論理オ
    ブジェクトに対する変更の特性を判定するステップと、 を含む方法。
  4. 【請求項4】 請求項3記載の方法において、変化したデータを含む前記論
    理オブジェクト内の論理ユニットは、各々、前記論理オブジェクトが前記アプリ
    ケーション・レイヤにおいて属するアプリケーションに関連する情報の数個のフ
    ィールドを含み、前記ステップ(F)は、変化したデータを含む前記論理オブジ
    ェクト内の論理ユニットを、前記論理オブジェクトのコピーにおける対応する論
    理ユニットと比較し、前記論理オブジェクトを形成する前記論理ユニットにおけ
    る前記数個の情報フィールドのどれが、前記基準時点以降に変化したか判定する
    ステップを含む方法。
  5. 【請求項5】 請求項1記載の方法において、前記記憶システムは、前記物
    理レイヤから前記記憶システムに含まれる複数の記憶装置にマップする追加のマ
    ッピング・レイヤを含み、前記物理変更情報を前記物理レイヤにおいて与え、前
    記ステップ(A)は、前記論理オブジェクトを前記アプリケーション・レイヤか
    ら前記物理レイヤのみにマップし、前記追加のマッピング・レイヤを通じて前記
    複数の記憶装置にはマップしない、ステップを含む方法。
  6. 【請求項6】 請求項1記載の方法であって、更に、 (D)前記基準時点において前記物理変更情報をリセットするステップ、 を含む方法。
  7. 【請求項7】 請求項6記載の方法において、前記ステップ(D)は、 (E)前記論理オブジェクトを前記アプリケーション・レイヤから前記物理レ
    イヤにマップし、どの物理記憶ロケーションが前記論理オブジェクトに対応する
    データを含むか識別するステップと、 (F)前記ステップ(E)において識別した前記物理記憶ロケーションに対応
    する前記物理変更情報をリセットするステップと、 を含む方法。
  8. 【請求項8】 請求項1記載の方法において、前記物理記憶ロケーションは
    、物理情報ユニットで編成されており、前記物理変更情報は、少なくとも1つの
    ビット・マップを含み、1つのビットが各物理情報ユニットに対応し、前記ステ
    ップ(B)は、前記少なくとも1つのビット・マップを試験し、前記基準時点以
    降に変化したデータを含む前記物理情報ユニットを識別するステップを含む方法
  9. 【請求項9】 請求項1記載の方法において、前記物理記憶ロケーションは
    、論理ボリューム単位で編成され、各々が複数のトラックを含み、前記物理変更
    情報は、各論理ボリュームに対するビット・マップを含み、各ビット・マップは
    、対応する論理ボリューム内の各トラックに対応するビットを含み、前記ステッ
    プ(B)は、前記論理ボリュームの少なくとも1つに対して前記ビット・マップ
    を試験し、前記基準時点以降に変化したデータを含む、前記論理ボリュームの少
    なくとも1つの前記トラックのいずれもを識別するステップを含む方法。
  10. 【請求項10】 請求項1記載の方法において、前記論理オブジェクトは、
    集合的に前記論理オブジェクトを形成する複数の論理ユニットを含み、前記ステ
    ップ(A)は、前記論理オブジェクトに対応するデータを含む前記物理記憶ロケ
    ーションを、隣接する物理ロケーションの1つ以上のストリングの集合体として
    識別するステップを含み、前記ストリングは、当該ストリングと、該ストリング
    が対応する前記複数の論理ユニットとの間で対応を維持するように順序付けられ
    る方法。
  11. 【請求項11】 ホスト・コンピュータ上における実行のためにコンピュー
    タ・プログラムをエンコードされたコンピュータ読み取り可能媒体であって、前
    記ホスト・コンピュータが、記憶システムに結合され、当該ホスト・コンピュー
    タ上のアプリケーション・レイヤに属する論理オブジェクトを前記記憶システム
    上の物理記憶ロケーションに関係する物理レイヤにマップする少なくとも1つの
    マッピング・レイヤを含み、前記物理レイヤは、基準時点以降に前記記憶システ
    ム上の前記物理記憶位置に対して行われた変更に関する物理変更情報を含み、前
    記コンピュータ・プログラムは、前記ホスト・コンピュータ上で実行されたとき
    に、前記基準時点以降の論理オブジェクトに対する変更を判定する方法を実行し
    、該方法が、 (A)前記アプリケーション・レイヤから前記物理レイヤに前記論理オブジェ
    クトをマップし、どの物理記憶ロケーションが前記論理オブジェクトに対応する
    データを含むか識別するステップと、 (B)前記物理変更情報を試験して、前記ステップ(A)において識別された
    、前記基準時点以降に変化したデータを含む物理記憶ロケーションのいずれをも
    識別するステップと、 (C)いずれかの物理記憶ロケーションが、前記ステップ(B)において前記
    基準時点以降に変化したデータを含むと識別された場合、変更が前記論理オブジ
    ェクトに対して行われたと判定するステップと、 から成るコンピュータ読み取り可能媒体。
  12. 【請求項12】 請求項11記載のコンピュータ読み取り可能媒体において
    、前記論理オブジェクトは、集合的に前記論理オブジェクトを形成する複数の論
    理ユニットを含み、前記方法は、更に、 (D)前記ステップ(B)において識別された前記物理記憶ロケーションを前
    記アプリケーション・レイヤにマップし、前記複数の論理ユニットのどれがそれ
    に対応するか判定することにより、前記論理オブジェクトにおける前記複数の論
    理ユニットのどれが、前記基準時点以降に変化したデータを含むのか識別するス
    テップを含む、 コンピュータ読み取り可能媒体。
  13. 【請求項13】 請求項11記載のコンピュータ読み取り可能媒体において
    、前記論理オブジェクトは、集合的に前記論理オブジェクトを形成する複数の論
    理ユニットを含み、前記方法は、更に、 (D)前記基準時点において前記論理オブジェクトのコピーを作成するステッ
    プと、 (E)前記ステップ(B)において識別した前記物理記憶ロケーションを、前
    記アプリケーション・レイヤにマップし、前記論理オブジェクトの前記複数の論
    理ユニットのどれがそれに対応するかを判定することにより、前記論理オブジェ
    クトにおける前記複数の論理ユニットのどれが、前記基準時点以降に変化したデ
    ータを含むのか識別するステップと、 (F)変化したデータを含む前記論理オブジェクト内の論理ユニットを、前記
    論理オブジェクトのコピーにおける対応する論理ユニットと比較し、前記論理オ
    ブジェクトに対する変更の特性を判定するステップと、 を含むコンピュータ読み取り可能媒体。
  14. 【請求項14】 請求項13記載のコンピュータ読み取り可能媒体において
    、変化したデータを含む前記論理オブジェクト内の論理ユニットは、各々、前記
    論理オブジェクトが前記アプリケーション・レイヤにおいて属するアプリケーシ
    ョンに関連する情報の数個のフィールドを含み、前記ステップ(F)は、変化し
    たデータを含む前記論理オブジェクト内の論理ユニットを、前記論理オブジェク
    トのコピーにおける対応する論理ユニットと比較し、前記論理オブジェクトを形
    成する前記論理ユニットにおける前記数個の情報フィールドのどれが、前記基準
    時点以降に変化したか判定するステップを含むコンピュータ読み取り可能媒体。
  15. 【請求項15】 請求項11記載のコンピュータ読み取り可能媒体において
    、前記記憶システムは、前記物理レイヤから、前記記憶システムに含まれる複数
    の記憶装置にマップする追加のマッピング・レイヤを含み、前記物理変更情報を
    前記物理レイヤにおいて与え、前記ステップ(A)は、前記論理オブジェクトを
    前記アプリケーション・レイヤから前記物理レイヤのみにマップし、前記追加の
    マッピング・レイヤを通じて前記複数の記憶装置にはマップしない、ステップを
    含むコンピュータ読み取り可能媒体。
  16. 【請求項16】 請求項11記載のコンピュータ読み取り可能媒体であって
    、更に、 (D)前記基準時点において前記物理変更情報をリセットするステップ、 を含むコンピュータ読み取り可能媒体。
  17. 【請求項17】 請求項16記載のコンピュータ読み取り可能媒体において
    、前記ステップ(D)は、 (E)前記論理オブジェクトを前記アプリケーション・レイヤから前記物理レ
    イヤにマップし、どの物理記憶ロケーションが前記論理オブジェクトに対応する
    データを含むか識別するステップと、 (F)前記ステップ(E)において識別した前記物理記憶ロケーションに対応
    する前記物理変更情報をリセットするステップと、 を含むコンピュータ読み取り可能媒体。
  18. 【請求項18】 請求項11記載のコンピュータ読み取り可能媒体において
    、前記物理記憶ロケーションは、物理情報ユニットで編成されており、前記物理
    変更情報は、少なくとも1つのビット・マップを含み、1つのビットが各物理情
    報ユニットに対応し、前記ステップ(B)は、前記少なくとも1つのビット・マ
    ップを試験し、前記基準時点以降に変化したデータを含む前記物理情報ユニット
    を識別するステップを含むコンピュータ読み取り可能媒体。
  19. 【請求項19】 請求項11記載のコンピュータ読み取り可能媒体において
    、前記物理記憶ロケーションは、論理ボリューム単位で編成され、各々が複数の
    トラックを含み、前記物理変更情報は、各論理ボリュームに対するビット・マッ
    プを含み、各ビット・マップは、対応する論理ボリューム内の各トラックに対応
    するビットを含み、前記ステップ(B)は、前記論理ボリュームの少なくとも1
    つに対して前記ビット・マップを試験し、前記基準時点以降に変化したデータを
    含む、前記論理ボリュームの少なくとも1つの前記トラックのいずれもを識別す
    るステップを含むコンピュータ読み取り可能媒体。
  20. 【請求項20】 請求項11記載のコンピュータ読み取り可能媒体において
    、前記論理オブジェクトは、集合的に前記論理オブジェクトを形成する複数の論
    理ユニットを含み、前記ステップ(A)は、前記論理オブジェクトに対応するデ
    ータを含む前記物理記憶ロケーションを、隣接する物理ロケーションの1つ以上
    のストリングの集合体として識別するステップを含み、前記ストリングは、当該
    ストリングと、該ストリングが対応する前記複数の論理ユニットとの間で対応を
    維持するように順序付けられるコンピュータ読み取り可能媒体。
  21. 【請求項21】 複数の物理記憶ロケーションを有する記憶システムと共に
    用いるホスト・コンピュータであって、 前記ホスト・コンピュータ上のアプリケーション・レイヤに属する論理オブジ
    ェクトを、前記記憶システム上の前記複数の物理記憶ロケーションに関係する物
    理レイヤにマップする少なくとも1つのマッピング・レイヤであって、前記物理
    レイヤが、基準時点以降に前記記憶システム上の前記複数の物理記憶ロケーショ
    ンに対して行われた変更に関する物理変更情報を含む、マッピング・レイヤと、 前記少なくとも1つのマッピング・レイヤから、前記アプリケーション・レイ
    ヤから前記物理レイヤへの論理オブジェクトのマッピングを判定し、前記複数の
    物理記憶ロケーションのどれが、前記論理オブジェクトに対応するデータを含む
    か識別する判定手段と、 前記判定手段によって識別された前記複数の物理記憶ロケーションに対応する
    前記物理変更情報を試験することにより、前記基準時点以降において前記論理オ
    ブジェクトに対して変更が行われたか否か識別する手段と、 を備えるホスト・コンピュータ。
  22. 【請求項22】 請求項21記載のホスト・コンピュータにおいて、前記識
    別する手段は、 前記判定手段によって識別された前記複数の物理記憶ロケーションのいずれか
    が、前記基準時点以降に変化したデータを含むとき、前記論理オブジェクトに対
    して変更が行われたと判定する手段を含む、 ホスト・コンピュータ。
  23. 【請求項23】 請求項21記載のホスト・コンピュータにおいて、前記識
    別する手段は、 前記判定手段によって識別された前記複数の物理記憶ロケーションに、前記基
    準時点以降に変化したデータを含むものがないとき、前記論理オブジェクトに対
    して変更が行われなかったと判定する手段を含む、 ホスト・コンピュータ。
  24. 【請求項24】 請求項21記載のホスト・コンピュータにおいて、前記論
    理オブジェクトは、集合的に前記論理オブジェクトを形成する複数の論理ユニッ
    トを含み、前記識別する手段は、 前記判定手段によって識別された前記複数の物理記憶ロケーションに対応する
    前記物理変更情報を前記アプリケーション・レイヤにマップし、前記論理オブジ
    ェクトを形成する前記複数の論理ユニットが前記基準時点以降変化したか否か識
    別する手段を含む、 ホスト・コンピュータ。
  25. 【請求項25】 請求項21記載のホスト・コンピュータにおいて、前記論
    理オブジェクトは、集合的に前記論理オブジェクトを形成する複数の論理ユニッ
    トを含み、前記ホスト・コンピュータは、更に、 前記基準時点において前記論理オブジェクトをコピーする手段と、 前記判定手段によって識別された前記複数の物理記憶ロケーションに対応する
    前記物理変更情報を、前記アプリケーション・レイヤにマップし、前記論理オブ
    ジェクトを形成する前記複数の論理ユニットが前記基準時点以降に変化したか否
    か識別する手段と、 変化したデータを含む前記論理オブジェクト内の前記論理ユニットを、前記論
    理オブジェクトのコピー内の対応する論理ユニットと比較し、前記論理オブジェ
    クトに対する変更の特性を判定する手段と、 を更に備えるホスト・コンピュータ。
  26. 【請求項26】 請求項25記載のホスト・コンピュータにおいて、変化し
    たデータを含む前記論理オブジェクト内の前記論理ユニットは、各々、前記アプ
    リケーション・レイヤにおいて前記論理オブジェクトが属するアプリケーション
    に関連する情報のフィールドを数個含み、前記比較する手段は、変化したデータ
    を含む前記論理オブジェクト内の論理ユニットを、前記論理オブジェクトのコピ
    ーにおける対応する論理ユニットと比較し、前記論理オブジェクトを形成する前
    記論理ユニットにおける前記数個の情報フィールドのどれが、前記基準時点以降
    に変化したか判定する手段を含むホスト・コンピュータ。
  27. 【請求項27】 請求項21記載のホスト・コンピュータにおいて、前記記
    憶システムは、前記物理レイヤから、前記記憶システムに含まれる複数の記憶装
    置にマップする追加のマッピング・レイヤを含み、前記物理変更情報は前記物理
    レイヤにおいて与えられ、前記判定手段は、前記追加のマッピング・レイヤを通
    じた前記複数の記憶装置への更なるマッピングを行なわずに、前記論理オブジェ
    クトの前記アプリケーション・レイヤから前記物理レイヤのみへのマッピングを
    判定する、ホスト・コンピュータ。
  28. 【請求項28】 請求項21記載のホスト・コンピュータであって、更に、 前記基準時点において前記物理変更情報をリセットする手段、 を含むホスト・コンピュータ。
  29. 【請求項29】 請求項28記載のホスト・コンピュータにおいて、前記リ
    セットする手段は、 前記基準時点において前記判定手段によって識別された前記物理記憶ロケーシ
    ョンに対応する前記物理変更情報をリセットする手段、 を含むホスト・コンピュータ。
  30. 【請求項30】 請求項21記載のホスト・コンピュータにおいて、前記物
    理記憶ロケーションは、物理情報ユニットで編成されており、前記物理変更情報
    は、少なくとも1つのビット・マップを含み、1つのビットが各物理情報ユニッ
    トに対応し、前記識別する手段が、前記少なくとも1つのビット・マップを試験
    し、前記基準時点以降に変化したデータを含む前記物理情報ユニットを識別する
    、ホスト・コンピュータ。
  31. 【請求項31】 請求項21記載のホスト・コンピュータにおいて、前記物
    理記憶ロケーションは、各々複数のトラックを含む論理ボリューム単位で編成さ
    れ、前記物理変更情報は、各論理ボリュームに対するビット・マップを含み、各
    ビット・マップは、対応する論理ボリューム内の各トラックに対応するビットを
    含み、前記識別する手段が、前記論理ボリュームの少なくとも1つに対して前記
    ビット・マップを試験し、前記論理ボリュームの少なくとも1つの前記トラック
    のいずれかが、前記基準時点以降に変化したデータを含むか否か識別する、ホス
    ト・コンピュータ。
  32. 【請求項32】 請求項21記載のホスト・コンピュータにおいて、前記論
    理オブジェクトは、集合的に前記論理オブジェクトを形成する複数の論理ユニッ
    トを含み、前記判定手段は、前記複数の論理ユニットの前記物理レイヤへのマッ
    ピングを判定し、前記論理オブジェクトに対応するデータを含む前記物理記憶ロ
    ケーションを、隣接する物理ロケーションの1つ以上のストリングの集合体とし
    て識別し、前記ストリングが、当該ストリングと、該ストリングが対応する前記
    複数の論理ユニットとの間で対応を維持するように順序付けられる、ホスト・コ
    ンピュータ。
  33. 【請求項33】 ホスト・コンピュータと共に用いる記憶システムであって
    、前記ホスト・コンピュータが、当該ホスト・コンピュータ上のアプリケーショ
    ン・レイヤに属する論理オブジェクトを、少なくとも1つの記憶ボリュームを含
    む物理レイヤにマップする少なくとも1つのマッピング・レイヤを有し、前記記
    憶システムが、 前記少なくとも1つの記憶ボリュームに含まれるデータを格納する少なくとも
    1つの記憶装置と、 前記記憶システム上の少なくとも1つの記憶ボリュームに関する変更情報を記
    憶するメモリであって、前記変更情報が、基準時点以降に前記少なくとも1つの
    記憶ボリュームに対して変更が行われたか否か識別する、メモリと、 前記アプリケーション・レイヤから前記論理オブジェクトに対応するデータを
    含む前記少なくとも1つの記憶ボリュームへの前記論理オブジェクトのマッピン
    グを、前記ホスト・コンピュータから受信する手段と、 前記論理オブジェクトに対応するデータを含む前記少なくとも1つの記憶ボリ
    ュームに関する前記変更情報を試験することによって、前記基準時点以降に前記
    論理オブジェクトに変更が行われたか否か判定する手段と、 を備える記憶システム。
  34. 【請求項34】 請求項33記載の記憶システムにおいて、前記判定する手
    段は、 前記論理オブジェクトに対応するデータのいずれかが前記基準時点以降に変化
    したデータを含む場合、前記論理オブジェクトに対して変更が行われたと識別す
    る手段を含む、 記憶システム。
  35. 【請求項35】 請求項33記載の記憶システムにおいて、前記判定する手
    段は、 前記論理オブジェクトに対応するデータに、前記基準時点以降に変化したデー
    タを含むものがない場合、前記論理オブジェクトに対して変更が行われなかった
    と識別する手段を含む、 記憶システム。
  36. 【請求項36】 請求項33記載の記憶システムにおいて、前記メモリは、
    前記少なくとも1つの記憶ボリュームに含まれる情報ユニットに関して、前記変
    更情報を格納する、記憶システム。
  37. 【請求項37】 請求項36記載の記憶システムにおいて、前記変更情報は
    少なくとも1つのビット・マップを含み、1つのビットが前記少なくとも1つの
    記憶ボリュームに含まれる各情報ユニットに対応し、前記判定する手段が、前記
    少なくとも1つのビット・マップを試験し、前記情報ユニットが、前記基準時点
    以降に変化したデータを含むか否か識別する、記憶システム。
  38. 【請求項38】 請求項33記載の記憶システムにおいて、更に、 前記基準時点において前記変更情報をリセットする手段を備える、 記憶システム。
  39. 【請求項39】 請求項38記載の記憶システムにおいて、前記メモリは、
    前記少なくとも1つの記憶装置に格納されている情報ユニットに関して前記変更
    情報を格納し、前記リセットする手段は、 前記論理オブジェクトに対応するデータを含む情報ユニットに対応する前記変
    更情報をリセットする手段を含む、 記憶システム。
  40. 【請求項40】 請求項33記載のデータ記憶システムにおいて、前記少な
    くとも1つの記憶ボリュームは、前記ホスト・コンピュータが、前記データ記憶
    システム内に物理記憶装置を構成するものとして認めた論理ボリュームを含み、
    前記記憶システムは、更に、 前記少なくとも1つの記憶ボリュームを前記少なくとも1つの記憶装置にマッ
    プする追加のマッピング・レイヤを備える、 データ記憶システム。
  41. 【請求項41】 請求項33記載のデータ記憶システムであって、更に、 前記ホスト・コンピュータに、前記基準時点に、前記論理オブジェクトに変更
    が行われたか否かについての指示を与える手段を備える、 データ記憶システム。
  42. 【請求項42】 請求項41記載のデータ記憶システムにおいて、前記論理
    オブジェクトは、集合的に前記論理オブジェクトを形成する複数の論理ユニット
    を含み、前記与える手段は、前記論理オブジェクトを集合的に形成する前記複数
    の論理ユニットの各々に対して変更が行われたか否かについての指示を、前記ホ
    スト・コンピュータに与える、データ記憶システム。
  43. 【請求項43】 請求項42記載のデータ記憶システムにおいて、前記受信
    する手段は、前記論理ユニットのマッピングを前記ホスト・コンピュータからあ
    る順序で受信し、前記与える手段は、前記ホスト・コンピュータに、前記順序で
    、前記論理オブジェクトを集合的に形成する前記複数の論理ユニットの各々に対
    して変更が行われたか否かの指示を与える、データ記憶システム。
JP2000582895A 1998-11-19 1999-11-19 物理レベルにおける論理オブジェクトに対する変更に基づいて、論理オブジェクトに対する変更を識別する方法および装置 Expired - Lifetime JP3866038B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/196,651 US6385626B1 (en) 1998-11-19 1998-11-19 Method and apparatus for identifying changes to a logical object based on changes to the logical object at physical level
US09/196,651 1998-11-19
PCT/US1999/027569 WO2000029952A2 (en) 1998-11-19 1999-11-19 Method and system for incremental backup copying of data

Publications (2)

Publication Number Publication Date
JP2002530741A true JP2002530741A (ja) 2002-09-17
JP3866038B2 JP3866038B2 (ja) 2007-01-10

Family

ID=22726271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000582895A Expired - Lifetime JP3866038B2 (ja) 1998-11-19 1999-11-19 物理レベルにおける論理オブジェクトに対する変更に基づいて、論理オブジェクトに対する変更を識別する方法および装置

Country Status (6)

Country Link
US (1) US6385626B1 (ja)
JP (1) JP3866038B2 (ja)
DE (1) DE19983713T1 (ja)
GB (1) GB2359159B (ja)
HK (1) HK1039665B (ja)
WO (1) WO2000029952A2 (ja)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035943B2 (en) * 1998-05-29 2006-04-25 Yahoo! Inc. Web server content replication
US6976093B2 (en) * 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
US7143193B1 (en) * 1998-05-29 2006-11-28 Yahoo! Inc. Content collection
US6542909B1 (en) * 1998-06-30 2003-04-01 Emc Corporation System for determining mapping of logical objects in a computer system
US6564219B1 (en) * 1998-11-19 2003-05-13 Emc Corporation Method and apparatus for obtaining an identifier for a logical unit of data in a database
US7107395B1 (en) * 1998-12-31 2006-09-12 Emc Corporation Apparatus and methods for operating a computer storage system
US6754661B1 (en) * 1999-07-13 2004-06-22 Microsoft Corporation Hierarchical storage systems for holding evidentiary objects and methods of creating and operating upon hierarchical storage systems
US6836780B1 (en) * 1999-09-01 2004-12-28 Jacada, Ltd. Method and system for accessing data in legacy applications
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7401131B2 (en) * 2000-05-22 2008-07-15 Verizon Business Global Llc Method and system for implementing improved containers in a global ecosystem of interrelated services
US6978280B1 (en) * 2000-10-12 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system for improving LUN-based backup reliability
US6970892B2 (en) * 2001-02-16 2005-11-29 Stratus Technologies Bermuda Ltd Implementing standards-based file operations in proprietary operating systems
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7509356B2 (en) * 2001-09-06 2009-03-24 Iron Mountain Incorporated Data backup
US6826666B2 (en) * 2002-02-07 2004-11-30 Microsoft Corporation Method and system for transporting data content on a storage area network
US7725428B1 (en) * 2002-03-14 2010-05-25 Novell, Inc. System and method for restoring a database in a distributed database system
US7308463B2 (en) * 2002-06-26 2007-12-11 Hewlett-Packard Development Company, L.P. Providing requested file mapping information for a file on a storage device
CN1692356B (zh) * 2002-11-14 2014-06-04 易斯龙系统公司 用于对现存文件重新条带化的方法
US20040221016A1 (en) * 2003-05-01 2004-11-04 Hatch James A. Method and apparatus for preventing transmission of unwanted email
JP2005128771A (ja) * 2003-10-23 2005-05-19 Fujitsu Ltd データファイルシステム、データアクセスサーバ、およびデータアクセスプログラム
US20070198583A1 (en) * 2003-12-25 2007-08-23 H & T Corporation Safety test support system,method,and program
US7734581B2 (en) * 2004-05-18 2010-06-08 Oracle International Corporation Vector reads for array updates
US20060004846A1 (en) * 2004-06-16 2006-01-05 Bmc Software, Inc. Low-overhead relational database backup and restore operations
US8131674B2 (en) * 2004-06-25 2012-03-06 Apple Inc. Methods and systems for managing data
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US8051425B2 (en) * 2004-10-29 2011-11-01 Emc Corporation Distributed system with asynchronous execution systems and methods
US8238350B2 (en) * 2004-10-29 2012-08-07 Emc Corporation Message batching with checkpoints systems and methods
US9946729B1 (en) * 2005-03-21 2018-04-17 EMC IP Holding Company LLC Sparse recall and writes for archived and transformed data objects
US7917474B2 (en) * 2005-10-21 2011-03-29 Isilon Systems, Inc. Systems and methods for accessing and updating distributed data
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US7797283B2 (en) 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US7346720B2 (en) * 2005-10-21 2008-03-18 Isilon Systems, Inc. Systems and methods for managing concurrent access requests to a shared resource
US7551572B2 (en) * 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
US7386675B2 (en) * 2005-10-21 2008-06-10 Isilon Systems, Inc. Systems and methods for using excitement values to predict future access to resources
US9009114B1 (en) * 2005-10-31 2015-04-14 Symantec Operating Corporation Version mapped incremental backups
US20070112895A1 (en) * 2005-11-04 2007-05-17 Sun Microsystems, Inc. Block-based incremental backup
US7848261B2 (en) 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US7756898B2 (en) * 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
US8539056B2 (en) 2006-08-02 2013-09-17 Emc Corporation Systems and methods for configuring multiple network interfaces
US7676691B2 (en) 2006-08-18 2010-03-09 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7680836B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7953704B2 (en) 2006-08-18 2011-05-31 Emc Corporation Systems and methods for a snapshot of data
US7822932B2 (en) 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7680842B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7899800B2 (en) 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7590652B2 (en) 2006-08-18 2009-09-15 Isilon Systems, Inc. Systems and methods of reverse lookup
US7752402B2 (en) 2006-08-18 2010-07-06 Isilon Systems, Inc. Systems and methods for allowing incremental journaling
US8286029B2 (en) 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
US7593938B2 (en) * 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
US7509448B2 (en) 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks
US8966080B2 (en) 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US7779048B2 (en) * 2007-04-13 2010-08-17 Isilon Systems, Inc. Systems and methods of providing possible value ranges
US7900015B2 (en) 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
US7966289B2 (en) 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US7949692B2 (en) 2007-08-21 2011-05-24 Emc Corporation Systems and methods for portals into snapshot data
US7882068B2 (en) 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write
US8832163B1 (en) 2007-09-14 2014-09-09 Emc Corporation Techniques for determining logical data objects corresponding to physical storage locations
US8930651B2 (en) * 2007-10-05 2015-01-06 Imation Corp. Archiving system with partitions of individual archives
US8140787B2 (en) 2007-10-05 2012-03-20 Imation Corp. Methods for implementation of an active archive in an archiving system and managing the data in the active archive
US9418154B2 (en) * 2007-10-19 2016-08-16 Oracle International Corporation Push-model based index updating
US9594794B2 (en) * 2007-10-19 2017-03-14 Oracle International Corporation Restoring records using a change transaction log
US8682859B2 (en) 2007-10-19 2014-03-25 Oracle International Corporation Transferring records between tables using a change transaction log
US9594784B2 (en) * 2007-10-19 2017-03-14 Oracle International Corporation Push-model based index deletion
US8046552B2 (en) * 2008-01-30 2011-10-25 Hewlett-Packard Development Company, L.P. Tracking metadata changes during data copy in a storage system
US7953709B2 (en) 2008-03-27 2011-05-31 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7984324B2 (en) 2008-03-27 2011-07-19 Emc Corporation Systems and methods for managing stalled storage devices
US7949636B2 (en) * 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7870345B2 (en) 2008-03-27 2011-01-11 Isilon Systems, Inc. Systems and methods for managing stalled storage devices
US9092639B2 (en) 2008-12-02 2015-07-28 Ab Initio Technology Llc Processing data updates within a data maintenance system
US8655892B2 (en) * 2010-09-29 2014-02-18 International Business Machines Corporation Data reorganization
CN102622285B (zh) * 2012-02-22 2014-04-02 浪潮(北京)电子信息产业有限公司 一种实现数据存储备份还原的系统及方法
US9251151B1 (en) * 2013-07-02 2016-02-02 Ca, Inc. System and method for merging continuous volume snapshots
US10521309B1 (en) * 2013-12-23 2019-12-31 EMC IP Holding Company LLC Optimized filesystem walk for backup operations
US9501516B2 (en) * 2014-12-19 2016-11-22 Sap Se Zero downtime upgrade of database applications using triggers and calculated fields
US9898494B2 (en) 2015-02-23 2018-02-20 Sap Se Zero downtime upgrade for database applications using tables with sequences
US11477264B2 (en) * 2016-06-29 2022-10-18 Nicira, Inc. Network workflow replay tool
US20220075771A1 (en) * 2020-09-08 2022-03-10 International Business Machines Corporation Dynamically deploying execution nodes using system throughput

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497483A (en) * 1992-09-23 1996-03-05 International Business Machines Corporation Method and system for track transfer control during concurrent copy operations in a data processing storage subsystem
EP0706686B1 (en) * 1993-07-01 1998-10-14 Legent Corporation System and method for distributed storage management on networked computer systems
WO1995011508A1 (fr) 1993-10-18 1995-04-27 Sony Corporation Procede de gestion d'informations, support d'enregistrement de donnees, procede d'enregistrement de donnees, procede et dispositif d'extraction d'informations
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US5926836A (en) * 1996-12-03 1999-07-20 Emc Corporation Computer and associated method for restoring data backed up on archive media
US5963935A (en) 1997-02-28 1999-10-05 Oracle Corporation Combining bitmaps within a memory limit
US6081800A (en) 1997-02-28 2000-06-27 Oracle Corporation Creating bitmaps from multi-level identifiers
US6061678A (en) 1997-10-31 2000-05-09 Oracle Corporation Approach for managing access to large objects in database systems using large object indexes
US6141773A (en) * 1998-06-30 2000-10-31 Emc Corporation Method and apparatus for undoing changes to computer memory

Also Published As

Publication number Publication date
US6385626B1 (en) 2002-05-07
GB2359159A (en) 2001-08-15
DE19983713T1 (de) 2002-01-24
WO2000029952A3 (en) 2000-08-03
JP3866038B2 (ja) 2007-01-10
GB2359159B (en) 2003-08-06
HK1039665B (zh) 2004-01-02
WO2000029952A9 (en) 2002-08-22
GB0109796D0 (en) 2001-06-13
WO2000029952A2 (en) 2000-05-25
HK1039665A1 (en) 2002-05-03

Similar Documents

Publication Publication Date Title
JP3866038B2 (ja) 物理レベルにおける論理オブジェクトに対する変更に基づいて、論理オブジェクトに対する変更を識別する方法および装置
US6564219B1 (en) Method and apparatus for obtaining an identifier for a logical unit of data in a database
US6792518B2 (en) Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US6957362B2 (en) Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US6934822B2 (en) Organization of multiple snapshot copies in a data storage system
US8549252B2 (en) File based volumes and file systems
US8954383B1 (en) Analyzing mapping objects of file systems
US8315991B2 (en) Detecting inadvertent or malicious data corruption in storage subsystems and recovering data
US10216757B1 (en) Managing deletion of replicas of files
US8135678B1 (en) System and method for restoring a single data stream file from a snapshot
US5991753A (en) Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
US7487138B2 (en) System and method for chunk-based indexing of file system content
US8190850B1 (en) Virtual block mapping for relocating compressed and/or encrypted file data block blocks
US9430331B1 (en) Rapid incremental backup of changed files in a file system
US10809932B1 (en) Managing data relocations in storage systems
US20070083482A1 (en) Multiple quality of service file system
US20030196052A1 (en) Method, system, and program for grouping objects
US20040078641A1 (en) Operating system-independent file restore from disk image
US5504857A (en) Highly available fault tolerant relocation of storage with atomicity
JP2005505829A (ja) 移動および消去の候補の効率的な検索
US10261944B1 (en) Managing file deletions in storage systems
US10387369B1 (en) Managing file deletions of files and versions of files in storage systems
US7047390B2 (en) Method, system, and program for managing a relationship between one target volume and one source volume
US7047378B2 (en) Method, system, and program for managing information on relationships between target volumes and source volumes when performing adding, withdrawing, and disaster recovery operations for the relationships
KR100490810B1 (ko) 참조 무결성에 관련된 테이블 공간을 점검하는 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050427

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050728

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060217

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060619

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060602

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060725

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: 20060912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061004

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3866038

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091013

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20131013

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term