JP4583087B2 - トランザクションの整合性を保つ書き込み時コピーのデータベース - Google Patents
トランザクションの整合性を保つ書き込み時コピーのデータベース Download PDFInfo
- Publication number
- JP4583087B2 JP4583087B2 JP2004190397A JP2004190397A JP4583087B2 JP 4583087 B2 JP4583087 B2 JP 4583087B2 JP 2004190397 A JP2004190397 A JP 2004190397A JP 2004190397 A JP2004190397 A JP 2004190397A JP 4583087 B2 JP4583087 B2 JP 4583087B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- stored
- differential storage
- page
- database
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24557—Efficient disk access during query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
上記の概略および以下の好ましい実施形態の詳細な説明は、添付の図面と併せ読めば、よりよく理解できる。本発明を説明するために本発明の構造例を図面に示しているが、本発明は、開示されている特定の方法および手段に限定されるものではない。
図1は、本発明の態様を実施できるコンピューティング環境の例を示している。コンピューティングシステム環境100は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、コンピューティング環境100を、動作環境100の例に示した構成要素のいずれか1つ、またはその組合せに関連する依存性または必要条件を有しているものと解釈すべきではない。
一般にデータベースは、データベースファイルおよびログファイルの2つの種類のファイルから成る。ログファイルは、ある期間にわたってデータベースファイルに追加された変更を記載する一連のログレコードを含む。ログレコードは、ログシーケンス番号(LSN)で識別することができる。図2に示すように、一実施形態では、1次データベース200は、1組のデータベースファイル205およびログファイル210から成る。データファイルは、ページと呼ばれる複数のストレージの塊に分割される。
一実施形態では、サイドファイルおよびスパースファイル機構は、いずれも同じページ/領域サイズを使用する。つまり、サイドファイルが1次データベースから格納したページは、任意のメモリがスパースファイルに書き込まれたときにスパースファイルが格納した領域と同じサイズである。例えば、スパースファイル領域が8KBであり、1次データベースから格納されたページも8KBである場合、ページサイズおよび領域サイズは等しい。この場合、埋められる任意の領域は、1次データベースから読み取られたページによって完全に埋められ、無効なデータがその領域に格納される可能性はない。
データベースでは、トランザクションログとは、トランザクションログを最後にバックアップしてからデータベースに対して実行されたすべてのトランザクションのシリアルレコードである。トランザクションログを使用して、障害時にデータベースを回復する。一実施形態では、トランザクションログは循環キューとしてモデル化される。トランザクションログは、ログの非アクティブな部分を削除することによって切り捨てることができる。この非アクティブ部分は、回復する必要のない完了したトランザクションを含む。逆に、トランザクションログのアクティブ部分は、完了したトランザクション、および依然として稼動しており、まだ完了していないトランザクション(アクティブトランザクション)を含む。切り捨ては、トランザクションログが拡大し続け、より多くのスペースを使用できるようにする代わりに、トランザクションログ内の非アクティブなスペースを最小限に抑えるために行われる。
データベースビューを作成するために、データベースビューの物理的構造(サイドファイルおよびページテーブル)を初期化する必要がある。まず、サイドファイル225が1次データベース200内のデータファイル205ごとに作成される。上述したように、サイドファイルはスパースファイルでよい。あるいは別の実施形態では、データファイル205と同じサイズの非スパースファイルとすることができる。サイドファイル225は、1次データベース200内のデータファイル205に関連付けられる。
データベースサーバが(正常または異常に)シャットダウンした後で再起動すると、データベースビューを再度初期化する必要がある。そのために、メモリ内に格納されているサイドページテーブルを再度初期化する必要がある。
データが上書きされる前にデータベースビューが1次データベース200から情報を格納するようにするために、1次データベース200は、データベースビューの作成をサポートする必要がある。1次データベース200が修正するページごとに、ページがデータベースビュー内にあるかどうかに関して決定を行う必要がある。データベースビュー内にページが存在する場合、それは正しいバージョンのページである。例えばこれは、前の修正が1次データベース200内のそのページに加えられたときであり得る。ページが1次200内で再度変更されると、データベースビューのバージョンを変更する必要がある。
ケース1:何も行わない
ケース2:ページがサイドファイル225内にあるかどうかを決定し、ない場合はページをサイドファイル225に書き込む
ケース3:ページをサイドファイル225に書き込む。
表1に詳しく示したケースは、データベースビューに格納されているデータの読み取りを行うのにも有用である。ページ内のデータをデータベースビューから読み取るとき、ページがサイドファイル225内に存在している場合は、そこから読み取る必要がある。そこにない場合、ページは1次データベース200から読み取る必要がある。2ビットのページテーブルシステムでは、3つのケースの場合にとるべきアクションは、次の通りである。
ケース1:サイドファイル225からページを読み取る
ケース2:ページがサイドファイル225内にあるかどうかを決定し、そこにある場合はサイドファイル225からページを読み取り、そこにない場合は1次データベース200からページを読み取る
ケース3:1次データベース200からページを読み取る。
データベースビューは、前のある時点でのデータベースの状態を表す。ユーザは、そのデータベースビューをデータベースとして使用することを選択することができる。例えばユーザは、前の時点のデータベースビューに対してそのアクションが行われたかのように、データベースビューに対してアクションを行い、データベースのデータベースビューを作成することができる。さらに、初期化中、上記で詳述したように、データベースビューに対してトランザクションを実行し、元に戻すこともできる。
ケース1:サイドファイル225からページを読み取り、修正を行い、ページをサイドファイル225に書き込む
ケース2:ページがサイドファイル225内に存在するかどうかを決定し、存在する場合はケース1と同様に処理し、存在しない場合はケース3と同様に処理する
ケース3:1次データベース200からページを読み取り、サイドファイル225にページを書き込み、ページがサイドファイル225にあることを示すようにページテーブルを設定する。ページへの修正を行い、適切な場合はサイドファイル225に修正されたページを書き込む。
205 データファイル
210 ログファイル
220 データベースビュー
225 サイドファイル
230 サイドページテーブルデータ
Claims (44)
- 特定の時点のデータベースの内容を反映するトランザクションの整合性を保つデータを含むデータベースビューを提供する方法であって、前記データベースは、データ要素を含み、トランザクションログに関連付けられ、前記トランザクションログは、アクティブトランザクションおよび非アクティブトランザクションを含み、前記データベースビューは、前記データベースからの前記データ要素のうちの少なくとも1つの前のバージョンを格納する差分ストレージを含み、前記方法は、実行されたときに、各ステップをコンピュータに実行させ、前記方法は、
前記時点に対応する前記トランザクションログにおける分割点を、前記データベースの最後の記録を識別することにより、決定するステップと、
前記データベースに対する修正を行う前記分割点より前の最も古いアクティブトランザクションから分割点までの各トランザクションを前記トランザクションログ上で識別するステップと、
前記差分ストレージ内に前記分割点より前の最も古いアクティブトランザクションから分割点までの各トランザクションの結果としての前記修正のデータのそれぞれを記憶するステップと、
各データ要素が前記差分ストレージ内に格納されているか、および各データ要素が前記差分ストレージ内に割り振られているかに関する情報を含むサイドページテーブルを、前記修正の情報のそれぞれを記憶するときに、格納するステップと、
前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションを前記トランザクションログ上で識別するステップと、
前記差分ストレージ内の前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションの結果としての前記修正のデータを元に戻し、前記差分ストレージに前記元に戻した修正のデータを格納するステップと
を備えたことを特徴とする方法。 - 前記差分ストレージを初期化するステップをさらに備えたことを特徴とする請求項1に記載の方法。
- 前記時点に対応する前記トランザクションログにおける分割点を決定する前記ステップは、ログの切り捨てを使用不可にするステップをさらに含むことを特徴とする請求項1に記載の方法。
- 前記方法は、前記サイドページテーブルを初期化するステップをさらに備えたことを特徴とする請求項1に記載の方法。
- 前記差分ストレージ内の前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションの結果としての前記修正のデータを元に戻す前記ステップは、前記対応する修正のデータを削除するステップを含むことを特徴とする請求項1に記載の方法。
- 前記差分ストレージ内の前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションの結果としての前記修正のデータを元に戻す前記ステップは、
前記データベース内の対応する修正されていないデータを読み取るステップと、
前記対応する修正されていないデータを前記差分ストレージに書き込むステップと
を含むことを特徴とする請求項1に記載の方法。 - 前記データ要素のそれぞれは、1ページのデータを含むことを特徴とする請求項1に記載の方法。
- 前記差分ストレージは、少なくとも1つのスパースファイルを含むことを特徴とする請求項7に記載の方法。
- 前記差分ストレージ内に前記修正のデータのそれぞれを格納する前記ステップは、前記スパースファイルのうちの1つにおいてメモリの領域を割り振るステップを含むことを特徴とする請求項8に記載の方法。
- 前記データ要素のそれぞれは、1ページのデータを含み、前記サイドページテーブルは、ページごとに、
前記ページが前記差分ストレージに格納されているかどうかを示す第1の格納データと、
前記差分ストレージにおいて前記領域が割り振られているかどうかを示す第2の格納データと
を含むことを特徴とする請求項9に記載の方法。 - 前記方法は、
前記サイドページテーブルが無効であることを検出するステップと、
前記スパースファイル内の領域ごとに、前記領域が割り振られているかどうかを決定するステップと、
前記スパースファイル内の領域ごとに、前記領域が割り振られているかどうかに基づいて前記第2の格納データを設定するステップと
をさらに備えたことを特徴とする請求項10に記載の方法。 - 前記差分ストレージ内の特定のページにデータが格納されているかどうかの決定は、
前記第1の格納データをチェックし、前記特定のページが前記差分ストレージに格納されていることを、前記第1の格納データが示す場合、前記データは、前記差分ストレージ内の前記特定のページに格納されていることを決定するステップと、
前記第2の格納データをチェックし、前記領域が前記差分ストレージにおいて割り振られていないことを、前記第2の格納データが示す場合、前記データは、前記差分ストレージ内の前記特定のページに格納されていないことを決定するステップと、
前記ページが前記差分ストレージ内に格納されていることを、前記第1の格納データが示さず、前記領域が前記差分ストレージにおいて割り振られてないことを、前記第2の格納データが示さない場合、前記特定のページについての前記差分ストレージの対応するエリアからページデータを読み取り、前記対応するエリアからの前記ページデータが有効であるかどうかを決定するステップと
を含むことを特徴とする請求項10に記載の方法。 - 前記サイドページテーブルは、ページごとに、
前記ページが前記差分ストレージ内に格納されているかどうかを示す第1の格納データを含むことを特徴とする請求項7に記載の方法。 - データが前記差分ストレージ内の特定のページ内に格納されているかどうかの決定は、
前記第1の格納データをチェックし、前記特定のページが前記差分ストレージに格納されていることを、前記第1の格納データが示す場合、前記データは、前記差分ストレージ内の前記特定のページに格納されていることを決定するステップと、
前記特定のページが前記差分ストレージ内に格納されていることを、前記第1の格納データが示さない場合、前記特定のページについての前記差分ストレージの対応するエリアからページデータを読み取り、前記対応するエリアからの前記ページデータが有効であるかどうかを決定するステップと
を含むことを特徴とする請求項13に記載の方法。 - 前記データベースビュー内の特定のデータ要素の要求を受け付けるステップと、
データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されているかどうかを決定するステップと、
データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されている場合、前記差分ストレージを読み取ることによって前記要求に応答するステップと、
データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されている場合、前記データベースを読み取ることによって前記要求に応答するステップと
をさらに含むことを特徴とする請求項1に記載の方法。 - データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されているかどうかを決定する前記ステップは、前記差分ストレージが前記場所に有効なデータを含んでいるかどうかを決定するステップを含むことを特徴とする請求項15に記載の方法。
- データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されているかどうかを決定する前記ステップは、前記サイドページテーブルを調べるステップを含むことを特徴とする請求項15に記載の方法。
- 前記方法は、
第2の特定のデータ要素の代わりに前記データベース内のある場所に第1の特定の値を格納する前記データベースに加えられた修正を検出するステップと、
前記データベースビュー内の対応する場所が有効なデータを含んでいるかどうかを決定するステップと、
前記データベースビュー内の前記対応する場所が有効なデータを含んでいない場合、前記第2の特定のデータ要素を前記対応する場所に書き込むステップと
をさらに含むことを特徴とする請求項1に記載の方法。 - 請求項1に記載の方法を、コンピューティング装置に実行させる、複数のコンピュータ実行可能命令を格納するコンピュータ読取り可能記録媒体。
- 特定の時点のデータベースの内容を反映するトランザクションの整合性を保つデータを含むデータベースビューを提供するシステムであって、前記データベースは、データ要素を含み、トランザクションログに関連付けられ、前記トランザクションログは、アクティブトランザクションおよび非アクティブトランザクションを含み、前記システムは、
前記時点に対応する前記トランザクションログにおける分割点を、前記データベースの最後の記録を識別することにより、決定する第1の手段と、
前記データベースに対する修正を行う前記分割点より前の最も古いアクティブトランザクションから分割点までの各トランザクションを前記トランザクションログ上で識別する第2の手段と、
前記分割点より前の最も古いアクティブトランザクションから分割点までの各トランザクションの結果としての前記修正のデータのそれぞれを記憶する差分ストレージと、
各データ要素が前記差分ストレージ内に格納されているか、および各データ要素が前記差分ストレージ内に割り振られているかに関する情報を含むサイドページテーブルを、前記修正の情報のそれぞれを記憶するときに、格納する第3の手段と、
前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションを前記トランザクションログ上で識別する第4の手段と、
前記差分ストレージ内の前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションの結果としての前記修正のデータを元に戻す第5の手段と
を備えたことを特徴とするシステム。 - 前記第1の手段は、ログの切り捨てを使用不可にする第11の手段をさらに含むことを特徴とする請求項20に記載のシステム。
- 前記修正のそれぞれを前記差分ストレージに格納し、スパースファイルの1つのメモリ領域を割り振る第6の手段をさらに備え、前記データ要素の各々は、1ページのデータを含み、前記差分ストレージは、少なくとも1つのスパースファイルを含むことを特徴とする請求項20に記載のシステム。
- 前記サイドページテーブルは、前記特定のデータ要素が前記差分ストレージに格納されているかどうかを示す第1の格納データを含むことを特徴とする請求項22に記載のシステム。
- 前記差分ストレージは、スパースファイルを含み、
前記サイドページテーブルは、前記差分ストレージにおいて前記特定のデータ要素に対応する領域が割り振られているかどうかを示す第2の格納データをさらに含むことを特徴とする請求項23に記載のシステム。 - 前記第3の手段は、
前記スパースファイル内の領域ごとに、前記領域が割り振られているかどうかを決定する第31の手段と、
前記スパースファイル内の領域ごとに、前記領域が割り振られているか否かの関数として前記第2の格納データを変更する第32の手段と
をさらに備えたことを特徴とする請求項24に記載のシステム。 - 前記データベースビュー内の特定のデータ要素の要求を受け付け、データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されているかどうかを決定し、データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されている場合、前記差分ストレージを読み取ることによって前記要求に応答し、データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されている場合、前記データベースを読み取ることによって前記要求に応答する第7の手段をさらに含むことを特徴とする請求項20に記載のシステム。
- 特定の時点のデータベースの内容を反映するトランザクションの整合性を保つデータを含むデータベースビューを提供するコンピュータ読取り可能記録媒体であって、前記データベースは、データ要素を含み、トランザクションログに関連付けられ、前記トランザクションログは、アクティブトランザクションおよび非アクティブトランザクションを含み、前記データベースビューは、前記データベースからの前記データベース要素のうちの少なくとも1つの前のバージョンを格納する差分ストレージを含み、前記コンピュータ読取り可能記録媒体は、
前記時点に対応する前記トランザクションログにおける分割点を、前記データベースの最後の記録を識別することにより、決定するステップと、
前記データベースに対する修正を行う前記分割点より前の最も古いアクティブトランザクションから分割点までの各トランザクションを前記トランザクションログ上で識別するステップと、
前記差分ストレージ内に前記分割点より前の最も古いアクティブトランザクションから分割点までの各トランザクションの結果としての前記修正のデータのそれぞれを記憶するステップと、
各データ要素が前記差分ストレージ内に格納されているか、および各データ要素が前記差分ストレージ内に割り振られているかに関する情報を含むサイドページテーブルを、前記修正の情報のそれぞれを記憶するときに、格納するステップと、
前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションを前記トランザクションログ上で識別するステップと、
前記差分ストレージ内の前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションの結果としての前記修正のデータを元に戻し、前記差分ストレージに格納するステップと
を含む動作を実行する命令を備えたことを特徴とするコンピュータ読取り可能記録媒体。 - 前記動作は、前記差分ストレージを初期化するステップをさらに含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。
- 前記時点に対応する前記トランザクションログにおける分割点を決定する前記ステップは、ログの切り捨てを使用不可にするステップをさらに含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。
- 前記動作は、前記サイドページテーブルを初期化するステップをさらに含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。
- 前記差分ストレージ内の前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションの結果としての前記修正のデータを元に戻す前記ステップは、前記対応する修正のデータを削除するステップを含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。
- 前記差分ストレージ内の前記分割点より前の最も古いアクティブトランザクションから分割点までの各アクティブトランザクションの結果としての前記修正のデータを元に戻す前記ステップは、
前記データベース内の対応する修正されていないデータを読み取るステップと、
前記対応する修正されていないデータを前記差分ストレージに書き込むステップと
を含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。 - 前記データ要素のそれぞれは、1ページのデータを含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。
- 前記差分ストレージは、少なくとも1つのスパースファイルを含むことを特徴とする請求項33に記載のコンピュータ読取り可能記録媒体。
- 前記差分ストレージ内に前記修正のデータのそれぞれを格納する前記動作は、前記スパースファイルのうちの1つにおいてメモリの領域を割り振るステップを含むことを特徴とする請求項34に記載のコンピュータ読取り可能記録媒体。
- 前記データ要素のそれぞれは、1ページのデータを含み、前記サイドページテーブルは、ページごとに、
前記ページが前記差分ストレージに格納されているかどうかを示す第1の格納データと、
前記差分ストレージにおいて前記領域が割り振られているかどうかを示す第2の格納データと
を含むことを特徴とする請求項35に記載のコンピュータ読取り可能記録媒体。 - 前記動作は、
前記サイドページテーブルが無効であることを検出するステップと、
前記スパースファイル内の領域ごとに、前記領域が割り振られているかどうかを決定するステップと、
前記スパースファイル内の領域ごとに、前記領域が割り振られているかどうかに基づいて前記第2の格納データを設定するステップと
をさらに備えたことを特徴とする請求項36に記載のコンピュータ読取り可能記録媒体。 - 前記差分ストレージ内の特定のページにデータが格納されているかどうかの決定は、
前記第1の格納データをチェックし、前記特定のページが前記差分ストレージに格納されていることを、前記第1の格納データが示す場合、前記データは、前記差分ストレージ内の前記特定のページに格納されていることを決定するステップと、
前記第2の格納データをチェックし、前記領域が前記差分ストレージにおいて割り振られていないことを、前記第2の格納データが示す場合、前記データは、前記差分ストレージ内の前記特定のページに格納されていないことを決定するステップと、
前記ページが前記差分ストレージ内に格納されていることを、前記第1の格納データが示さず、前記領域が前記差分ストレージにおいて割り振られてないことを、前記第2の格納データが示さない場合、前記特定のページについての前記差分ストレージの対応するエリアからページデータを読み取り、前記対応するエリアからの前記ページデータが有効であるかどうかを決定するステップと
を含むことを特徴とする請求項36に記載のコンピュータ読取り可能記録媒体。 - 前記サイドページテーブルは、ページごとに、
前記ページが前記差分ストレージ内に格納されているかどうかを示す第1の格納データを含むことを特徴とする請求項33に記載のコンピュータ読取り可能記録媒体。 - データが前記差分ストレージ内の特定のページ内に格納されているかどうかの決定は、
前記第1の格納データをチェックし、前記特定のページが前記差分ストレージに格納されていることを、前記第1の格納データが示す場合、前記データは、前記差分ストレージ内の前記特定のページに格納されることを決定するステップと、
前記特定のページが前記差分ストレージ内に格納されていることを、前記第1の格納データが示さない場合、前記特定のページについての前記差分ストレージの対応するエリアからページデータを読み取り、前記対応するエリアからの前記ページデータが有効であるかどうかを決定するステップと
を含むことを特徴とする請求項39に記載のコンピュータ読取り可能記録媒体。 - 前記動作は、
前記データベースビュー内の特定のデータ要素の要求を受け付けるステップと、
データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されているかどうかを決定するステップと、
データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されている場合、前記差分ストレージを読み取ることによって前記要求に応答するステップと、
データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されている場合、前記データベースを読み取ることによって前記要求に応答するステップと
をさらに含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。 - データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されているかどうかを決定する前記ステップは、前記差分ストレージが前記場所に有効なデータを含んでいるかどうかを決定するステップを含むことを特徴とする請求項41に記載のコンピュータ読取り可能記録媒体。
- データが前記差分ストレージ内の前記特定のデータ要素に対応する場所に格納されているかどうかを決定する前記動作は、前記サイドページテーブルを調べるステップを含むことを特徴とする請求項41に記載のコンピュータ読取り可能記録媒体。
- 前記コンピュータ読取り可能記録媒体は、
第2の特定のデータ要素の代わりに前記データベース内のある場所に第1の特定の値を格納する前記データベースに加えられた修正を検出するステップと、
前記データベースビュー内の対応する場所が有効なデータを含んでいるかどうかを決定するステップと、
前記データベースビュー内の前記対応する場所が有効なデータを含んでいない場合、前記第2の特定のデータ要素を前記対応する場所に書き込むステップと
をさらに含むことを特徴とする請求項27に記載のコンピュータ読取り可能記録媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/611,774 US7395278B2 (en) | 2003-06-30 | 2003-06-30 | Transaction consistent copy-on-write database |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005025750A JP2005025750A (ja) | 2005-01-27 |
JP2005025750A5 JP2005025750A5 (ja) | 2007-08-16 |
JP4583087B2 true JP4583087B2 (ja) | 2010-11-17 |
Family
ID=33541375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004190397A Expired - Fee Related JP4583087B2 (ja) | 2003-06-30 | 2004-06-28 | トランザクションの整合性を保つ書き込み時コピーのデータベース |
Country Status (5)
Country | Link |
---|---|
US (1) | US7395278B2 (ja) |
EP (1) | EP1503290B1 (ja) |
JP (1) | JP4583087B2 (ja) |
KR (1) | KR101085767B1 (ja) |
CN (1) | CN100437568C (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7448048B1 (en) | 2003-05-27 | 2008-11-04 | International Business Machines Corporation | Method for performing real-time analytics using a business rules engine on real-time heterogeneous materialized data views |
US7523462B1 (en) * | 2003-05-27 | 2009-04-21 | International Business Machines Corporation | Method for providing a real time view of heterogeneous enterprise data |
US8095511B2 (en) * | 2003-06-30 | 2012-01-10 | Microsoft Corporation | Database data recovery system and method |
US7672964B1 (en) * | 2003-12-31 | 2010-03-02 | International Business Machines Corporation | Method and system for dynamically initializing a view for a streaming data base system |
US7831639B1 (en) * | 2004-12-22 | 2010-11-09 | Symantec Operating Corporation | System and method for providing data protection by using sparse files to represent images of data stored in block devices |
CN100369038C (zh) * | 2005-02-24 | 2008-02-13 | 中兴通讯股份有限公司 | 一种实时数据库事务操作的实现方法 |
US20060218204A1 (en) * | 2005-03-25 | 2006-09-28 | International Business Machines Corporation | Log stream validation in log shipping data replication systems |
US7487386B2 (en) * | 2005-03-30 | 2009-02-03 | International Business Machines Corporation | Method for increasing file system availability via block replication |
US7440979B2 (en) * | 2005-03-30 | 2008-10-21 | Sap Ag | Snapshots for instant backup in a database management system |
EP1952283A4 (en) * | 2005-10-28 | 2010-01-06 | Goldengate Software Inc | DEVICE AND METHOD FOR GENERATING A REAL-TIME DATABASE DUPLICATE |
US8095750B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory system with fast processing of common conflicts |
US8095741B2 (en) * | 2007-05-14 | 2012-01-10 | International Business Machines Corporation | Transactional memory computing system with support for chained transactions |
US8688920B2 (en) * | 2007-05-14 | 2014-04-01 | International Business Machines Corporation | Computing system with guest code support of transactional memory |
US8321637B2 (en) * | 2007-05-14 | 2012-11-27 | International Business Machines Corporation | Computing system with optimized support for transactional memory |
US9009452B2 (en) * | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
US8117403B2 (en) * | 2007-05-14 | 2012-02-14 | International Business Machines Corporation | Transactional memory system which employs thread assists using address history tables |
US7792784B2 (en) * | 2007-05-31 | 2010-09-07 | International Business Machines Corporation | Streaming multidimensional data by bypassing multidimensional query processor |
US8196123B2 (en) * | 2007-06-26 | 2012-06-05 | Microsoft Corporation | Object model for transactional memory |
US7962703B1 (en) * | 2007-08-08 | 2011-06-14 | Symantec Corporation | Techniques for improving dirty page logging |
JP4810548B2 (ja) * | 2008-02-07 | 2011-11-09 | 株式会社東芝 | サーバ装置、更新画像検出方法およびプログラム |
US8566524B2 (en) * | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
US20110082832A1 (en) * | 2009-10-05 | 2011-04-07 | Ramkumar Vadali | Parallelized backup and restore process and system |
US8793288B2 (en) * | 2009-12-16 | 2014-07-29 | Sap Ag | Online access to database snapshots |
CN102024052B (zh) * | 2010-12-17 | 2013-03-13 | 北京握奇数据系统有限公司 | 一种数据存储系统事务的实现方法和装置 |
US9110847B2 (en) | 2013-06-24 | 2015-08-18 | Sap Se | N to M host system copy |
CN103744936B (zh) | 2013-12-31 | 2017-02-08 | 华为技术有限公司 | 一种数据库中的多版本并发控制方法及数据库系统 |
KR101805561B1 (ko) | 2014-01-02 | 2017-12-07 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 데이터베이스 시스템에서 온라인 분석 처리를 위한 데이터를 유지하는 방법 및 장치 |
US20150234841A1 (en) * | 2014-02-20 | 2015-08-20 | Futurewei Technologies, Inc. | System and Method for an Efficient Database Storage Model Based on Sparse Files |
US9613078B2 (en) | 2014-06-26 | 2017-04-04 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
US9558078B2 (en) | 2014-10-28 | 2017-01-31 | Microsoft Technology Licensing, Llc | Point in time database restore from storage snapshots |
WO2018118040A1 (en) | 2016-12-21 | 2018-06-28 | Hewlett-Packard Development Company, L.P. | Persistent memory updating |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5043871A (en) * | 1986-03-26 | 1991-08-27 | Hitachi, Ltd. | Method and apparatus for database update/recovery |
US4914569A (en) * | 1987-10-30 | 1990-04-03 | International Business Machines Corporation | Method for concurrent record access, insertion, deletion and alteration using an index tree |
JP2858795B2 (ja) * | 1989-07-14 | 1999-02-17 | 株式会社日立製作所 | 実記憶割り当て方法 |
US5247672A (en) * | 1990-02-15 | 1993-09-21 | International Business Machines Corporation | Transaction processing system and method with reduced locking |
US5893117A (en) * | 1990-08-17 | 1999-04-06 | Texas Instruments Incorporated | Time-stamped database transaction and version management system |
US5317731A (en) * | 1991-02-25 | 1994-05-31 | International Business Machines Corporation | Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor |
US5613113A (en) * | 1993-10-08 | 1997-03-18 | International Business Machines Corporation | Consistent recreation of events from activity logs |
JP2894676B2 (ja) * | 1994-03-21 | 1999-05-24 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 非同期式遠隔コピー・システム及び非同期式遠隔コピー方法 |
US5806078A (en) * | 1994-06-09 | 1998-09-08 | Softool Corporation | Version management system |
US5832508A (en) * | 1996-09-18 | 1998-11-03 | Sybase, Inc. | Method for deallocating a log in database systems |
US6041423A (en) * | 1996-11-08 | 2000-03-21 | Oracle Corporation | Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment |
SE510050C2 (sv) * | 1997-07-21 | 1999-04-12 | Ericsson Telefon Ab L M | Metod för insamlande av logginformation vid förändring av databas |
US6804766B1 (en) * | 1997-11-12 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Method for managing pages of a designated memory object according to selected memory management policies |
US6792432B1 (en) * | 1998-03-31 | 2004-09-14 | Sybase, Inc. | Database system with methods providing high-concurrency access in B-Tree structures |
US6243702B1 (en) * | 1998-06-22 | 2001-06-05 | Oracle Corporation | Method and apparatus for propagating commit times between a plurality of database servers |
SE521433C2 (sv) * | 1998-07-22 | 2003-11-04 | Ericsson Telefon Ab L M | En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas |
US6449623B1 (en) * | 1998-09-04 | 2002-09-10 | Lucent Technologies Inc, | Method and apparatus for detecting and recovering from data corruption of a database via read logging |
US6363387B1 (en) * | 1998-10-20 | 2002-03-26 | Sybase, Inc. | Database system providing methodology for enhancing concurrency using row update bit and deferred locking |
US6581205B1 (en) * | 1998-12-17 | 2003-06-17 | International Business Machines Corporation | Intelligent compilation of materialized view maintenance for query processing systems |
US6477544B1 (en) * | 1999-07-16 | 2002-11-05 | Microsoft Corporation | Single instance store for file systems |
CA2281287C (en) * | 1999-09-01 | 2003-03-11 | Ibm Canada Limited-Ibm Canada Limitee | Method and system for efficiently searching for free space in a table of a relational database having a clustering index |
US6473775B1 (en) * | 2000-02-16 | 2002-10-29 | Microsoft Corporation | System and method for growing differential file on a base volume of a snapshot |
US7072916B1 (en) * | 2000-08-18 | 2006-07-04 | Network Appliance, Inc. | Instant snapshot |
US6631374B1 (en) * | 2000-09-29 | 2003-10-07 | Oracle Corp. | System and method for providing fine-grained temporal database access |
US6668262B1 (en) * | 2000-11-09 | 2003-12-23 | Cisco Technology, Inc. | Methods and apparatus for modifying a database |
US20040199549A1 (en) * | 2001-06-25 | 2004-10-07 | Kenneth Oksanen | Method and system for performing concurrency control in a relational database |
US6898608B2 (en) * | 2002-04-26 | 2005-05-24 | Oracle International Corporation | Techniques for managing what-if analysis of data managed by a relational database system |
US6957362B2 (en) * | 2002-08-06 | 2005-10-18 | Emc Corporation | Instantaneous restoration of a production copy from a snapshot copy in a data storage system |
US6792518B2 (en) * | 2002-08-06 | 2004-09-14 | Emc Corporation | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies |
US6934822B2 (en) * | 2002-08-06 | 2005-08-23 | Emc Corporation | Organization of multiple snapshot copies in a data storage system |
US7191304B1 (en) * | 2002-09-06 | 2007-03-13 | 3Pardata, Inc. | Efficient and reliable virtual volume mapping |
US6976022B2 (en) * | 2002-09-16 | 2005-12-13 | Oracle International Corporation | Method and mechanism for batch processing transaction logging records |
JP4292882B2 (ja) * | 2003-03-18 | 2009-07-08 | 株式会社日立製作所 | 複数のスナップショット維持方法及びサーバ装置及びストレージ装置 |
US7035881B2 (en) * | 2003-09-23 | 2006-04-25 | Emc Corporation | Organization of read-write snapshot copies in a data storage system |
-
2003
- 2003-06-30 US US10/611,774 patent/US7395278B2/en not_active Expired - Fee Related
-
2004
- 2004-06-15 EP EP04102708.7A patent/EP1503290B1/en not_active Not-in-force
- 2004-06-28 JP JP2004190397A patent/JP4583087B2/ja not_active Expired - Fee Related
- 2004-06-29 KR KR1020040049531A patent/KR101085767B1/ko active IP Right Grant
- 2004-06-30 CN CNB2004100632455A patent/CN100437568C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN100437568C (zh) | 2008-11-26 |
EP1503290B1 (en) | 2018-08-29 |
KR101085767B1 (ko) | 2011-11-21 |
US7395278B2 (en) | 2008-07-01 |
JP2005025750A (ja) | 2005-01-27 |
US20040267828A1 (en) | 2004-12-30 |
KR20050002616A (ko) | 2005-01-07 |
EP1503290A3 (en) | 2011-01-19 |
EP1503290A2 (en) | 2005-02-02 |
CN1577334A (zh) | 2005-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4583087B2 (ja) | トランザクションの整合性を保つ書き込み時コピーのデータベース | |
US7440966B2 (en) | Method and apparatus for file system snapshot persistence | |
US10936441B2 (en) | Write-ahead style logging in a persistent memory device | |
US8768890B2 (en) | Delaying database writes for database consistency | |
JP4638905B2 (ja) | データベースのデータ復旧システムおよびその方法 | |
US8533189B2 (en) | Method and system for synthetic backup and restore | |
US8117410B2 (en) | Tracking block-level changes using snapshots | |
KR101014089B1 (ko) | 데이터베이스 백업의 일관성 검사를 위한 시스템 및 방법 | |
US7472129B2 (en) | Lossless recovery for computer systems with map assisted state transfer | |
JP4960963B2 (ja) | データベースミラーからのオンラインページリストア | |
US7360111B2 (en) | Lossless recovery for computer systems with remotely dependent data recovery | |
US6678809B1 (en) | Write-ahead log in directory management for concurrent I/O access for block storage | |
WO2017190604A1 (zh) | 数据库系统中事务恢复的方法与数据库管理系统 | |
JP4419884B2 (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
US8250035B1 (en) | Methods and apparatus for creating a branch file in a file system | |
US20180203606A1 (en) | Method and device for writing data and acquiring data in a distributed storage system | |
US20060123211A1 (en) | Method for optimizing a snapshot operation on a file basis | |
US20150193463A1 (en) | Systems and methods for durable database operations in a memory-mapped environment | |
US8117160B1 (en) | Methods and apparatus for creating point in time copies in a file system using reference counts | |
US9804926B1 (en) | Cataloging file system-level changes to a source storage between image backups of the source storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070628 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100420 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100720 |
|
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: 20100824 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100831 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4583087 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130910 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |