JP2024510137A - データベース・アクセラレータにおける揮発性データベース・キャッシング - Google Patents

データベース・アクセラレータにおける揮発性データベース・キャッシング Download PDF

Info

Publication number
JP2024510137A
JP2024510137A JP2023553627A JP2023553627A JP2024510137A JP 2024510137 A JP2024510137 A JP 2024510137A JP 2023553627 A JP2023553627 A JP 2023553627A JP 2023553627 A JP2023553627 A JP 2023553627A JP 2024510137 A JP2024510137 A JP 2024510137A
Authority
JP
Japan
Prior art keywords
database
target
target database
source
linked
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.)
Pending
Application number
JP2023553627A
Other languages
English (en)
Inventor
バイエル、フェリックス
バタースタイン、デニス
ルーク、エイナー
ペラトナー-チャフラー、サビーネ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/206,221 external-priority patent/US11500733B2/en
Priority claimed from US17/206,240 external-priority patent/US11797570B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2024510137A publication Critical patent/JP2024510137A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

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

Abstract

リンクド・データベースに対するクラッシュ回復のためのコンピュータ実施方法が提供される。リンクド・データベースはソース・データベースと、関連ターゲット・データベースとを含み、ソース・データベースのテーブルの内容の選択された部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期される。それによって、ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のためにターゲット・データベースを含むデータベース管理システムに移される。加えてこの方法は、ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、読取ったエントリをターゲット・データベースに適用することによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させることを含む。

Description

本発明は、一般的にデータベースに対するクラッシュ回復のための方法に関し、より具体的には、リンクド・データベースに対するクラッシュ回復のためのコンピュータ実施方法に関する。本発明はさらに、リンクド・データベースに対するクラッシュ回復を有するリンクド・データベース・システムと、コンピュータ・プログラム製品とに関する。
大量のデータを管理することは、エンタープライズIT(information technology)組織にとって継続する課題であり続けている。これは(i)ますます増加するデータ量に対する観点であり、かつ(ii)多様なデータに対する観点でもある。エンタープライズITシステムには、従来の構造化データに加えて、半構造化データおよびいわゆる非構造化データも大量に記憶される。さらに、より多くなったデータ分析に対する産業要件を満たすために、従来のトランザクション指向データベースに加えて、分析処理に対して最適化された特殊なデータベース・システムが導入されている。他方で、従来のトランザクション・データベースにおいてすべての分析処理を行うことが試みられてきた。しかし、分析処理は、オンライン・トランザクション処理のパフォーマンスに対してあまりにも強力で予測不可能な影響を与えることが明らかになった。
結果として、トランザクション指向データベース管理システムと、分析最適化データベース管理システムとの巧みな組み合わせが導入されてきた。こうした組み合わせ製品の一例は、IBM DB2(IBM社の登録商標)分析アクセラレータ(IDAA:IBM DB2 Analytics Accelerator)アーキテクチャに基づくものである。
一方側で、本格的な行ベースのデータベース管理システム(DBMS:database management system)が、データ操作言語(DML:data manipulation language)動作およびクエリ実行に対するアプリケーション・エンドポイントの働きをしてもよい。ヒューリスティックな決定基準および規則を用いて、クエリ・オプティマイザは、クエリをソースDBMSにおいて、特にオンライン・トランザクション処理にて実行すべきか、または特にオンライン分析処理のためにターゲットDBMSにオフロードすべきかを透過的に決定してもよい。
ターゲットDBMSは、ソースDBMSテーブルの選択されたセットのシャドウ・コピーを保持する本格的な列ベースのデータベース管理システムであってもよい。ターゲットDBMSのシャドウ・コピーを作成するための戦略は、ソースDBMSの1つ以上のテーブルに記憶されたデータを、所与の時点でターゲットDBMSに移すことを含んでもよい。しかし、ロードがいくらか前に行われ、その間に対応するソース・テーブルが修正されているとき、ターゲットDBMS内のクエリ・データが期限切れになるかもしれない。したがって、テーブルの内容は通常、対応するソース・データベース・テーブルにおいて変更が記録される際に増分的に適合される。
どちらのデータベース・システムも、それぞれのデータベースのACID(原子性、一貫性、独立性、耐久性(atomic、consistent、isolation、durable))特性を保証するためのトランザクション機構を実装する。すなわち、同時修正はロッキング技術によって適切に分離され、一貫性チェックによってデータベースの状態が1つの一貫した状態から別の状態に移ることが保証されてもよく、トランザクション変更に対する原子性および耐久性を保証するためにたとえばログにおける書込みなどのロギング技術が実装されてもよい。
しかし、ソース・データベースが現在のトランザクションによって修正されるとき、ACID特性を保証することは顕著なオーバーヘッドをもたらすことがある。特に、ロギングは挿入/更新/削除(IUD:insert/update/delete)ステートメントの処理を減速させる。なぜなら、トランザクションを継続し得る前に変更記録を永続記憶媒体に書込む必要があるからである。データベース・テーブルの内容に対する変更の頻繁に使用されるメモリ内処理と比較して、トランザクション・ログを用いてこの持続性レイヤを追加することは比較的低速である。他方で、故障の場合にそれぞれのデータベースの最新の一貫した状態を復元するために、クラッシュ回復が必要とされる。
IDAAなどのデータベース・アクセラレータの状況において、ターゲット・アクセラレータ・データベースは、ソース・データベースのスナップショットを単純にミラーリングする。すなわち、ソース・データベースがデータのマスタの役割をしてもよいし、またはIUDを介したデータ操作がソース・データベース管理システムによって処理されて、更新技術を介してターゲット・データベースに変更が複製されてもよい。したがってアクセラレータ・データベースは、高速の分析動作を必要とし得るソース・データベースのパーティションを記憶するためのキャッシュの役割をしてもよい。
この技術的状況において、すでにいくつかの開示が存在する。特許文献1の文書は、ホスト・データベース・システムが自身のクエリを処理することを助けるハードウェア・アクセラレータを記載する。このハードウェア・アクセラレータは、マシン・コード・データベース命令の形のデータベース・クエリ/動作タスクを受信し、それらをソフトウェアなしにハードウェアにおいて実行し、クエリ/動作結果をホスト・システムに返送することが可能な特定目的の処理エレメントを含む。
加えて特許文献2の文書は、高速のクラッシュ回復を実現する分散型データベース・システムを記載する。データベース・ヘッド・ノード故障からの回復の際に、そのデータベース・ヘッド・ノードによって実装されるデータベースに対するデータを記憶する分散型ストレージ・システムの1つ以上のストレージ・ノードとの接続が確立されてもよい。ストレージ・ノードとの接続の確立の際に、そのデータベースはたとえばさまざまなアクセス要求などに対するアクセスのために利用可能にされてもよい。
しかし、一方側ではトランザクションに対して最適化され、他方側では分析処理に対して最適化される従来の結合データベースはすべて、永続的な回復ログを維持するための公知のオーバーヘッドを必要とすることがあり、それによって、組み合わされたデータベースの処理が顕著に減速することがある。したがって、組み合わされたトランザクション/分析データベース管理システムに対するより高いパフォーマンス値を達成するために、必要とされるオーバーヘッドを低減させる必要があり得る。
米国特許第9 141 670(B2)号 米国特許出願公開第2014/0 279 930(A1)号
本発明の1つの態様によると、リンクド・データベースに対するクラッシュ回復のコンピュータ実施方法が提供されてもよい。リンクド・データベースはソース・データベースと、関連ターゲット・データベースとを含んでもよく、ソース・データベースのテーブルの内容の選択された部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期されてもよい。ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のためにターゲット・データベースを含むデータベース管理システムに移されてもよい。この方法は、ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、読取ったエントリをターゲット・データベースに適用することによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させることを含んでもよい。
本発明の別の態様によると、リンクド・データベースに対するクラッシュ回復を有するリンクド・データベース・システムが提供されてもよい。リンクド・データベースはソース・データベースと、関連ターゲット・データベースとを含んでもよく、ソース・データベースのテーブルの内容の選択された部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期されてもよい。さらに、ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のためにターゲット・データベースを含むデータベース管理システムに移されてもよい。
リンクド・データベース・システムはプロセッサと、プロセッサに通信的に結合されたメモリとを含んでもよく、メモリはプログラム・コード部分を記憶しており、このプログラム・コード部分は実行されたときに、プロセッサがソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、読取ったエントリをターゲット・データベースに適用することによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させることを可能にする。
リンクド・データベースに対するクラッシュ回復のための提案されるコンピュータ実施方法は、多数の利点、技術効果、寄与、もしくは改善、またはその組み合わせを提供してもよい。
リンクド・データベースの維持に伴うオーバーヘッドが顕著に低減されてもよい。これは、ターゲット・データベースおよびその関連データベース管理システムが、自身のトランザクションもしくは回復ログまたはその両方を維持するという重荷を負わないという事実によるものである。よって、ターゲット・データベースのパフォーマンスを減速させることのある、ターゲット・データベースに対する永続データ・ストレージの維持が必要とされない。ターゲット・データベースは通常は分析システムとして、すなわちOLAP動作のために使用されてもよく、それはしばしばメモリ内で実行され得るという事実によって、実行されるトランザクションの履歴を維持するために永続データ・ストレージを常時更新することが必要とされない。
従来、データベース、すなわちソースおよびターゲット・データベースの各々は、それぞれのデータベースにおけるテーブルの定義に対するメタデータを含む独自の関連回復ログ・ファイルを有することがある。クラッシュの場合のターゲット・データベースの回復のために、ソース・データベースの回復ログ・ファイルがターゲット・データベースの回復のために用いられ得るため、OLAPモードのターゲット・データベースのオーバーヘッドおよびパフォーマンス低下が完全に回避されてもよい。よって、ソース・データベースおよびターゲット・データベースは、たとえばそれぞれのデータベース管理システムの一部などとして、同一のデータベース支援インフラストラクチャを有する必要がなく、異なる支援コンポーネントを有してもよい。それによって、ソース・データベースに対する支援コンポーネントのセットは機能がより豊富であってもよく、一方でターゲット・データベースは、それぞれのメタデータを含むトランザクション・ログ・ファイルもしくは回復ログ・ファイルまたはその両方を含まなくてもよい。しかし、任意選択の実施形態として、データベース・テーブルの定義に対するメタデータが、ターゲット・データベースに関するデータベース管理システムの一部としても保存されてもよい。いずれの場合にも、どちらのデータベース・システムも、データベースのACID(原子性、一貫性、独立性、耐久性)特性を保証するためのトランザクション機構を実装してもよい。
以下において、方法および関連するシステムに適用可能な追加の実施形態が説明されることとなる。
この方法の1つの有用な実施形態によると、トランザクション、すなわちオンライン・トランザクション処理(OLTP:online transactional processing)に対してソース・データベースが最適化されてもよい。これは、エンタープライズIT(情報技術)動作の動作バックボーンを表して効率的にサポートしてもよい。
この方法の許容される実施形態によると、ソース・データベースは行指向リレーショナル・データベースであってもよい。このタイプのデータベースは、データベース内のデータに対する高速の読取り、書込み、および変更動作に対して最適化される。行指向データベースは、報告を生成するためにも有効であってもよい。しかし、このタイプのデータベースは、分析タイプの動作にとって最適ではない。
この方法の進歩した実施形態によると、ターゲット・データベースは分析動作、すなわちオンライン分析処理(OLAP:online analytical processing)に対して最適化されてもよい。さらなる実施形態によると、このタイプのデータベースは列指向データベースであってもよい。このデータベースは、OLTP最適化データベース・システムよりもかなり良好に、多くの依存性および相互相関を有するクエリをサポートしてもよい。
この方法の1つのさらに向上した実施形態によると、ターゲット・データベースはメモリ内データベースであってもよい。OLAPアプリケーションおよびクエリは、多くの異なるデータベース・テーブルからの多くのデータを比較する必要があり得るため、データのキャッシングは遅過ぎることが判明している。よって、すべてまたはほぼすべてのデータをメモリ内に保存することは、最適化されていないセルフ・サービスOLAPクエリ・アプリケーションにとっても、応答時間を比較的短くするための良好なやり方であってもよい。
さらに発展した実施形態によると、この方法は、ターゲット・データベースのクラッシュの場合に、ターゲット・データベースの回復が終了するまでターゲット・データベースに対するクエリを遅延させることも含んでもよい。よって、ターゲット・データベースに対するクエリ、またはターゲット・データベースにリダイレクトされたクエリは、無視されない。それらのクエリは、ターゲット・データベースが再びクエリ動作ができる状態になり得るまで制止されてもよい。その間に、この方法のさらにインテリジェントな実施形態によると、ターゲット・データベースの回復中に、ターゲット・データベースをターゲットとするクエリがソース・データベースにおいて実行されてもよい。
よって、ユーザはリンクド・データベース・システムに対するクエリを停止することは要求されなくてもよく、より低速のパフォーマンスのみを経験してもよい。この特徴は構成可能であってもよい。
この方法のさらなる有用な実施形態によると、ターゲット・データベースの回復は、ソース・データベースからのデータのバルク・ロードによって行われてもよい。こうしたバルク・ロードは、テーブルの一部の内容、すなわち、ターゲット・データベースにおいて同期されるように構成されたもののみに関連していてもよい。
任意選択の実施形態によると、この方法は、ソース・データベースからターゲット・データベースへのデータの直接バルク・ロード・プロセスによってターゲット・データベースを初期化することも含んでもよい。加えてここでは、テーブルの選択された部分の選択された内容のみがバルク・ロードされてもよい。これは、ターゲット・データベースの初期回復ロードに対してソース・データベースの回復ログ・ファイルを用いることよりも速くてもよい。よって、回復ログ・ファイルは、単にターゲット・データベースに対する規則的な動作および更新の際に用いられるか、もしくはソース・データベースのクラッシュの場合にこのデータベースを回復させるために用いられるか、またはその両方であってもよい。
この方法の有利な実施形態によると、選択されたテーブルを定義するメタデータは、回復ログ・ファイルの一部であってもよい。このことは、ターゲット・データベースに対する規則的な更新機構を用いたクラッシュ後のターゲット・データベースの回復を可能にしてもよい。
この方法の別の有利な実施形態によると、ターゲット・データベース管理システムは回復ログ・ファイルを含まなくてもよい。よって、リンクド・データベースに対する唯一の回復ログ・ファイルは、ソース・データベースのものであってもよい。このことは、ターゲット・データベースがクラッシュ後に常にソース・データベースの現在の状態に従って再構築され得ることを保証してもよい。加えてこのことは、ソース・データベースおよびターゲット・データベースの回復ログ・ファイルの照合を必要としなくてもよいため、回復プロセスをより「単純」にしてもよい。加えて、ターゲット・データベースに対する回復ログ・ファイルをセーブする必要がなくてもよいため、ディスク・スペースが節約されてもよい。
さらに実施形態は、コンピュータもしくは任意の命令実行システムによる使用、またはそれに関連した使用のためのプログラム・コードを提供するコンピュータ使用可能媒体もしくはコンピュータ可読媒体からアクセス可能な、関連コンピュータ・プログラム製品の形態を取ってもよい。この記載の目的のためのコンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、もしくはデバイスによる使用、またはそれに関連した使用のためのプログラムの記憶、通信、伝播、または移送のための手段を含み得る任意の装置であってもよい。
なお、本発明の実施形態は、異なる主題を参照して記載される。特に、いくつかの実施形態は方法タイプの請求項を参照して記載されるのに対し、他の実施形態は装置タイプの請求項を参照して記載される。しかし、当業者は上記および下記の記載から、別様のことが示されない限り、1つのタイプの主題に属する特徴の任意の組み合わせに加えて、異なる主題に関する特徴の任意の組み合わせ、特に方法タイプの請求項の特徴と装置タイプの請求項の特徴との任意の組み合わせもこの文書に開示されるものとみなされることを推測するだろう。
上記に定義される態様および本発明のさらなる態様は、以後説明される実施形態の例から明らかであり、実施形態の例を参照して説明されるが、本発明はそれに限定されない。
以下の図面を参照して、単なる例として、本発明の好ましい実施形態を説明することとする。
リンクド・データベースに対するクラッシュ回復のための本発明のコンピュータ実施方法の実施形態を示すブロック図である。 リンクド・データベースの実施形態を示すブロック図である。 ターゲット・データベースがどのように同期されるかの実施形態を示すブロック図である。 リンクド・データベース・システムの実施形態を示すブロック図である。 図4によるリンクド・データベース・システムを含むコンピュータ・システムの実施形態を示す図である。
この記載の文脈において、以下の慣例、用語、もしくは表現、またはその組み合わせが用いられてもよい。
「クラッシュ回復」という用語は、クラッシュが起こる前のデータベースの状態を再構築するプロセスを示してもよい。クラッシュが起こったとき、データは利用可能でないか、または非一貫性であってもよい。
「リンクド・データベース」という用語は、互いに密接に関係する少なくとも2つのデータベースを示してもよい。この文書の文脈において、リンクド・データベースは、同一のデータを少なくとも部分的に記憶することがあるデータベースとして示されてもよい。他方側で、こうした対におけるプライマリ・データベースは、セカンダリ・データベースとは異なるタスクに対して最適化されてもよい。
「ソース・データベース」または「プライマリ・データベース」という用語は、たとえば高速のトランザクション、すなわちオンライン・トランザクション処理などに対して最適化されたデータベースを示してもよい。しかし、こうしたやり方で、すなわちデータに対する高速の読取り、書込み、更新動作に対して最適化されたデータベースは、たとえばオンライン分析処理の場合などにおける多数のテーブルまたは多数のデータを伴う複雑なクエリの実行が低速のことがある。加えて、オンライン分析処理はオンライン・トランザクション処理を減速させることがある。したがって、今言及したタイプのデータベースの高度に最適化されたデータベース管理システムは、タンデムとして機能してもよい。
「ターゲット・データベース」または「セカンダリ・データベース」という用語は、異なるタスクに対して最適化されたデータベースのこうしたタンデムにおける第2のデータベースを示してもよい。本明細書に記載される概念の文脈において、ターゲット・データベースは、オンライン分析処理に対して最適化されてもよい。ターゲット・データベースは、ソース・データベースのテーブルの少なくとも一部およびテーブルのデータの一部を記憶してもよい。
「テーブルの内容の選択された部分」という用語は、ターゲット・データベースにおいて同期してコピーおよび保存され得る、プライマリ・データベースのテーブルの部分のデータの、今言及した部分またはパーティションを示してもよい。
「同期される」という用語は、第1のデータベースと第2のデータベースとの間で同期されるように選択されたターゲット・データベースのデータが、ソース・データベースのデータの状態に基づいて常時更新されてもよいことを示してもよい。これは、ターゲット・データベースにおいて実行されるデータに対するすべての動作、すなわち挿入/更新/削除に適用されてもよい。
「選択されたクエリ」という用語は、クエリの性質に基づいて、データベースのうちの一方、特にターゲット・データベースによって実行された方が良いと考えられる、リンクド・データベースに向けられた特定のタイプのクエリを示してもよい。たとえば、クエリ・タイプがオンライン分析処理に関係するとき、そのクエリはターゲット・データベースに転送されてもよく、ソース・データベースによって実行されなくてもよい。
「データベース管理システム」という用語は、通常はハードウェアおよびソフトウェアの組み合わせと、データを記憶する少なくとも1つの関連データベースとにおいて実装される運営/管理システムの組み合わせを示してもよい。
「回復ログ・ファイル」という用語は、データベースにおいて行われる一連のファイル・プロトコル動作、特にデータを修正するすべての動作、すなわち挿入、更新、および削除動作を示してもよい。回復ログ・ファイルは、データベースの完全な再構築を可能にするように設計されてもよい。したがって、データベースのテーブル定義も回復ログ・ファイルの一部であってもよい。
「メタデータ」という用語は、データに関するデータ、特にデータベース中のテーブルの定義データと、潜在的にそれらの間の関係とを示してもよい。
以下に、図面の詳細な説明を与えることとする。図面中のすべての命令は概略である。最初に、リンクド・データベースに対するクラッシュ回復のための本発明のコンピュータ実施方法の実施形態のブロック図が与えられる。その後、さらなる実施形態、およびリンクド・データベースに対するクラッシュ回復を有するリンクド・データベース・システムの実施形態が説明されることとなる。
図1は、たとえばIDAAアーキテクチャに従って設計された、リンクド・データベースに対するクラッシュ回復のための本発明のコンピュータ実施方法100の好ましい実施形態のブロック図を示す。リンクド・データベースは、ソースまたはプライマリ・データベースと、関連するターゲットまたはセカンダリ・データベースとをリンクド・データベースとして提供する(102)ことを含む。ソース・データベースのテーブルの内容の選択された部分、すなわち通常は完全なデータベースではない部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期される。選択されたテーブルに記憶されたテーブルおよびデータの部分のみが、クエリが実行され得るターゲット・データベースにも記憶される必要がある。
ソース・データベースを含むデータベース管理システムに対する選択されたクエリ、たとえば主にOLAPクエリなどが、処理のためにターゲット・データベースを含むデータベース管理システムに移され、これはたとえば「オフロードされる」とも理解され得る。こうすることで、ソース・データベースはOLAPクエリによる負担を受けなくなる。
この方法100は、次いでソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、読取ったエントリをターゲット・データベースに適用することによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させる(104)ことを含む。このために、ターゲット・データベース・システムのデータベース管理部分が用いられてもよい。
こうすることで、IUD(挿入、更新、削除)トランザクションによって行われた変更はデータのメモリ内表現のみに適用され、そこでそれらの変更は、永続的媒体にすでに記憶されたか否かにかかわらず、アクセラレータにオフロードされたデータベース・クエリによって直ちにアクセスされ得るため、付加的な遅延またはOLAPオーバーヘッドなしにトランザクションが続けられ得る。
図2は、リンクド・データベースの実施形態200のブロック図を示す。プライマリまたはソース・データベース202は、OLTPクエリ210およびOLAPクエリ214を受信する。OLAPクエリ214として識別されたクエリは、セカンダリまたはターゲット・データベース206に移行またはオフロード222される。ソース・データベース202は、複数のテーブル204と、関連する記憶データとを含む。ターゲット・データベース206も、ソース・データベース202のデータベース・テーブル204の少なくともサブセットを表すテーブルと、そのデータの少なくともサブセットとをデータベース・テーブル208中に含む。
ターゲット・データベース206によってOLAP動作が実行された後、データは返送224され、要求するプログラムまたはプロセスにOLAP出力220が返送される。OLTPクエリ210はソース・データベース202において直接実行され、要求するプログラムまたはプロセスにOLTP出力212として返送される。よって、OLTPまたはソース・データベース202は、任意のリソース集約的なOLAPクエリによって減速されないため、自身の最高パフォーマンスで動作してもよい。
ターゲット・データベース206におけるデータ組織が、たとえばソースまたはOLTPデータベース202における行指向の代わりに列指向であるなどして異なる可能性があるため、ターゲット・データベースは、ソース・データベース202よりもかなり高速でOLAP結果を返送224してもよい。
図3は、本明細書で提案される概念によってターゲット・データベースがどのように同期され得るかの実施形態300のブロック図を示す。ソース・データベース管理システム302は、ソース・データベース202およびその関連テーブル204の動作を制御する(図2と比較されたい)。ターゲット・データベース管理システム308もターゲット・データベース206および関連テーブル208について同じことが当てはまる。
ソース・データベース管理システム302は、ソース・データベース202に対する回復ログ・ファイル306も維持する。回復ログ・ファイル306を読取るログ・リーダーまたはログ・ファイル・リーダー314は、これらのデータを適用ユニット316に提供し、適用ユニット316は、ソース・データベースに対して行われた変更(すなわち挿入、更新、削除)を、ターゲット・データベース206の選択されたテーブルおよびデータの選択されたセットに対しても適用する。選択されたテーブルおよびデータの選択されたセットは、予め定義されたとおりのソース・データベース202における関連テーブルおよびデータのサブセットであってもよい。適用ユニット316は、実行されるOLAPクエリに依存してターゲット・データベース206に対する変更の適用を最適化できる。このためにログ・バッファ318が有益であり得る。
ターゲット・データベース206の初期化のために、パフォーマンスの理由から、ソース・データベース202からターゲット・データベース206へのバルク・ロード動作312が行われ得る。
図4は、リンクド・データベース・システム400の実施形態のブロック図を示す。このリンクド・データベース・システムは、リンクド・データベース・システムのリンクド・データベースに対するクラッシュ回復を可能にする。リンクド・データベースはソース・データベース・システム406と、関連ターゲット・データベース・システム408とを含む。それによって、ソース・データベースのテーブルの内容の選択された部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期される。加えて、ソース・データベース・システム406を含むデータベース管理システム(図示せず)に対する選択されたクエリが、処理のためにターゲット・データベースを含むデータベース管理システム(図示せず)に移される。
リンクド・データベース・システム400はプロセッサ402と、プロセッサに通信的に結合されたメモリ404とを含み、メモリ404はプログラム・コード部分を記憶しており、このプログラム・コード部分は実行されたときに、プロセッサ402が、たとえばログ・リーダー410などによってソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、たとえば適用ユニット412などによって読取ったエントリをターゲット・データベースに適用することによって、たとえば同期ユニットなどによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させることを可能にする。
なお、リンクド・データベース・システムのすべてのモジュールおよびユニットは、信号もしくはデータまたはその両方を交換するために1対1の様式で相互接続され得る。代替的に、モジュールおよびユニット、特にプロセッサ402と、メモリ404と、ソース・データベース・システム406と、ターゲット・データベース・システム408と、ログ・リーダー410と、適用ユニット412とを、リンクド・データベース・システム内部バス・システム414によって相互接続することもできる。
本発明の実施形態は、プラットフォームがプログラム・コードの記憶もしくは実行またはその両方に適しているかどうかにかかわらず、実質的に任意のタイプのコンピュータと共に実装されてもよい。図5は例として、提案される方法に関するプログラム・コードを実行するために好適なコンピュータ・システム500を示す。
コンピュータ・システム500は、好適なコンピュータ・システムの単なる一例であり、コンピュータ・システム500が上記に示された機能のいずれかの実装もしくは実行またはその両方が可能であるかどうかにかかわらず、本明細書に記載される本発明の実施形態の使用または機能の範囲に関する任意の限定を示唆することは意図されていない。コンピュータ・システム500には、多数の他の汎用目的または特定目的のコンピュータ・システム環境または構成と共に動作するコンポーネントが存在する。コンピュータ・システム/サーバ500と共に使用するために好適であり得る周知のコンピュータ・システム、環境、もしくは構成、またはその組み合わせの例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル家電機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などを含むが、それに限定されない。コンピュータ・システム/サーバ500は、コンピュータ・システム500によって実行されるたとえばプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈で記載されてもよい。一般的に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ・タイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、およびデータ構造などを含んでもよい。コンピュータ・システム/サーバ500は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境において実施されてもよい。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモート・コンピュータ・システム記憶媒体の両方に位置してもよい。
図面に示されるとおり、コンピュータ・システム/サーバ500は汎用目的のコンピュータ・デバイスの形態で示されている。コンピュータ・システム/サーバ500のコンポーネントは、1つ以上のプロセッサまたは処理ユニット502、システム・メモリ504、およびシステム・メモリ504を含むさまざまなシステム・コンポーネントをプロセッサ502に結合するバス506を含んでもよいが、それに限定されない。バス506は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィクス・ポート、およびさまざまなバス・アーキテクチャのいずれかを用いるプロセッサまたはローカル・バスを含むいくつかのタイプのバス構造のいずれか1つ以上を表す。限定ではなく例として、こうしたアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:Video Electronics Standards Association)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI:Peripheral Component Interconnects)バスを含む。コンピュータ・システム/サーバ500は通常、さまざまなコンピュータ・システム可読媒体を含む。こうした媒体は、コンピュータ・システム/サーバ500によってアクセス可能な任意の利用可能な媒体であってもよく、それは揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体の両方を含む。
システム・メモリ504は、たとえばランダム・アクセス・メモリ(RAM:random access memory)508もしくはキャッシュ・メモリ510またはその両方などの、揮発性メモリの形のコンピュータ・システム可読媒体を含んでもよい。コンピュータ・システム/サーバ500はさらに、他の取り外し可能/取り外し不可能な揮発性/不揮発性コンピュータ・システム記憶媒体を含んでもよい。単なる例として、取り外し不可能な不揮発性磁気媒体(示されておらず、通常は「ハード・ドライブ」と呼ばれる)からの読取りおよびそこへの書込みのために、ストレージ・システム512が提供されてもよい。示されていないが、取り外し可能な不揮発性磁気ディスク(例、「フレキシブル・ディスク」)からの読取りおよびそこへの書込みのための磁気ディスク・ドライブ、ならびにたとえばCD-ROM、DVD-ROM、またはその他の光媒体などの取り外し可能な不揮発性光ディスクからの読取りまたはそこへの書込みのための光ディスク・ドライブが提供されてもよい。こうした場合に、各々は1つ以上のデータ媒体インターフェースによってバス506に接続され得る。以下にさらに示されて説明されることとなるとおり、メモリ504は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。
限定ではなく例として、プログラム・モジュール516のセット(少なくとも1つ)を有するプログラム/ユーティリティ、ならびにオペレーティング・システム、1つ以上のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データがメモリ504に記憶されてもよい。オペレーティング・システム、1つ以上のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データ、またはその何らかの組み合わせの各々は、ネットワーク形成環境の実装を含んでもよい。プログラム・モジュール516は一般的に、本明細書に記載される本発明の実施形態の機能もしくは方法またはその両方を実行する。
コンピュータ・システム/サーバ500は、たとえばキーボード、ポインティング・デバイス、ディスプレイ520などの1つ以上の外部デバイス518;ユーザがコンピュータ・システム/サーバ500と対話することを可能にする1つ以上のデバイス;もしくはコンピュータ・システム/サーバ500が1つ以上の他のコンピュータ・デバイスと通信することを可能にする任意のデバイス(例、ネットワーク・カード、モデムなど);またはその組み合わせとも通信してもよい。こうした通信は、入力/出力(I/O:Input/Output)インターフェース514を介して生じ得る。さらに、コンピュータ・システム/サーバ500は、ネットワーク・アダプタ522を介して、たとえばローカル・エリア・ネットワーク(LAN:local area network)、一般的な広域ネットワーク(WAN:wide area network)、もしくはパブリック・ネットワーク(例、インターネット)、またはその組み合わせなどの1つ以上のネットワークと通信してもよい。示されるとおり、ネットワーク・アダプタ522は、バス506を介してコンピュータ・システム/サーバ500のその他のコンポーネントと通信してもよい。示されていないが、他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方が、コンピュータ・システム/サーバ500と共に使用され得ることが理解されるべきである。その例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイバル・ストレージ・システムなどを含むが、それに限定されない。
加えて、リンクド・データベースに対するクラッシュ回復を有するリンクド・データベース・システム400がバス・システム506に取り付けられてもよい。
本発明のさまざまな実施形態の説明は例示の目的のために提供されたものであるが、開示される実施形態に対して網羅的または限定的になることは意図されていない。記載される実施形態の範囲から逸脱することなく、当業者には多くの修正および変更が明らかになるだろう。本明細書で使用される用語は、実施形態の原理、実際の適用、または市場で見出される技術に対する技術的改善を最もよく説明するため、または他の当業者が本明細書で開示される実施形態を理解できるようにするために選択されたものである。
本発明はシステム、方法、もしくはコンピュータ・プログラム製品、またはその組み合わせとして具現化されてもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含んでもよい。
媒体は、伝播媒体のための電子、磁気、光学、電磁気、赤外、または半導体のシステムであってもよい。コンピュータ可読媒体の例は半導体または固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM:read-only memory)、剛性磁気ディスク、および光ディスクを含んでもよい。光ディスクの現在の例は、コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM:compact disk-read only memory)、コンパクト・ディスク読取り/書込み(CD-R/W:compact disk-read/write)、DVD、およびBlu-Ray(R)ディスクを含む。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶できる有形デバイスであり得る。コンピュータ可読記憶媒体は、たとえば電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の好適な組み合わせなどであってもよいが、それに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは以下を含む。ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(erasable programmable read-only memory)(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、機械的にコード化されたデバイス、たとえばパンチ・カードまたは記録された命令を有する溝の中の隆起構造体など、および前述の任意の好適な組み合わせ。本明細書において用いられるコンピュータ可読記憶媒体は、たとえば電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を通じて伝播する電磁波(例、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされ得るか、あるいはたとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはその組み合わせを含んでもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶させるために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令はアセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または1つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードであってもよく、このプログラミング言語はオブジェクト指向プログラミング言語、たとえばSmalltalk、またはC++など、および従来の手続き型プログラミング言語、たとえば「C」プログラミング言語または類似のプログラミング言語などを含む。コンピュータ可読プログラム命令は、すべてがユーザのコンピュータで実行されてもよいし、スタンドアロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、(たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータへの接続が行われてもよい。いくつかの実施形態において、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic arrays)などを含む電子回路は、本発明の態様を行うために電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を使用することによって、コンピュータ可読プログラム命令を実行してもよい。
本明細書においては、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して、本発明の態様を説明している。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されるだろう。
これらのコンピュータ可読プログラム命令は、汎用目的のコンピュータか、特定目的のコンピュータか、またはマシンを生成するためのその他のプログラマブル・データ処理装置のプロセッサに提供されることによって、そのコンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートもしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作を実装するための手段を生じてもよい。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブル・データ処理装置、もしくはその他のデバイス、またはその組み合わせに特定の方式で機能するように指示できるコンピュータ可読記憶媒体にも記憶されることによって、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作の態様を実装する命令を含む製造物を含んでもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または別のデバイスにもロードされて、コンピュータに実装されるプロセスを生成するためにコンピュータ、他のプログラマブル装置、または他のデバイスにおいて一連の動作ステップを行わせることによって、そのコンピュータ、他のプログラマブル装置、または別のデバイスにおいて実行される命令が、フローチャートもしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作を実装してもよい。
図面におけるフローチャートもしくはブロック図またはその両方は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を示すものである。これに関して、フローチャートまたはブロック図の各ブロックは、命令のモジュール、セグメント、または一部分を表してもよく、これは指定される論理機能(単数または複数)を実装するための1つ以上の実行可能命令を含む。いくつかの代替的実装において、ブロック内に示される機能は、図面に示されるものとは異なる順序で起こってもよい。たとえば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、または関与する機能に依存して、これらのブロックがときには逆の順序で実行されてもよい。加えて、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方のブロックの組み合わせは、指定された機能もしくは動作を行うか、または特定目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特定目的のハードウェア・ベースのシステムによって実装され得ることが注目されるだろう。
本明細書において用いられる用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書において用いられる単数形「a」、「an」、および「the」は、文脈が別様を明確に示さない限り複数形も含むことが意図される。この明細書において用いられるときの「含む(comprises)」もしくは「含んでいる(comprising)」またはその両方の用語は、記述される特徴、整数、ステップ、動作、エレメント、もしくはコンポーネント、またはその組み合わせの存在を特定するが、1つ以上の他の特徴、整数、ステップ、動作、エレメント、コンポーネント、もしくはそのグループ、またはその組み合わせの存在または付加を除外しないことがさらに理解されるだろう。
以下の請求項におけるすべての手段またはステップ・プラス機能要素に対応する構造、材料、動作、および均等物は、特定的に請求される他の請求要素と組み合わせてその機能を行うための任意の構造、材料、または動作を含むことが意図される。本発明の説明は例示および説明の目的のために提供されているが、開示される形の本発明に対して網羅的または限定的になることは意図されていない。本発明の範囲から逸脱することなく、当業者には多くの修正および変更が明らかになるだろう。実施形態は、本発明の原理および実際の適用を最もよく説明し、かつ他の当業者が予期される特定の使用に好適であるようなさまざまな修正を伴うさまざまな実施形態に対して本発明を理解できるようにするために、選択されて記載されたものである。
本明細書で提案される本発明の概念が、以下の項目に要約されてもよい。
1.リンクド・データベースに対するクラッシュ回復のためのコンピュータ実施方法であって、リンクド・データベースがソース・データベースと、関連ターゲット・データベースとを含み、ソース・データベースのテーブルの内容の選択された部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期され、
ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のためにターゲット・データベースを含むデータベース管理システムに移され、この方法が、
- ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、読取ったエントリをターゲット・データベースに適用することによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させることを含むもの。
2.項目1による方法であって、ソース・データベースがトランザクションに対して最適化されるもの。
3.項目2による方法であって、ソース・データベースが行指向リレーショナル・データベースであるもの。
4.先行する項目のいずれかによる方法であって、ターゲット・データベースが分析動作に対して最適化されるもの。
5.項目4による方法であって、ターゲット・データベースが列指向データベースであるもの。
6.項目4または5による方法であって、ターゲット・データベースがメモリ内データベースであるもの。
7.先行する項目のいずれかによる方法であって、
- ターゲット・データベースのクラッシュの場合に、ターゲット・データベースの回復が終了するまでターゲット・データベースに対するクエリを遅延させることをも含むもの。
8.項目7による方法であって、ターゲット・データベースの回復が、ソース・データベースからのデータのバルク・ロードによって行われるもの。
9.項目7または8による方法であって、ターゲット・データベースの回復の間に、ターゲット・データベースをターゲットとするクエリがソース・データベースにおいて実行されるもの。
10.先行する項目のいずれかによる方法であって、
- ソース・データベースからターゲット・データベースへのデータの直接バルク・ロード・プロセスによってターゲット・データベースを初期化することをも含むもの。
11.先行する項目のいずれかによる方法であって、選択されたテーブルを定義するメタデータが、回復ログ・ファイルの一部であるもの。
12.先行する項目のいずれかによる方法であって、ターゲット・データベース管理システムが回復ログを含まないもの。
13.リンクド・データベースに対するクラッシュ回復を有するリンクド・データベース・システムであって、リンクド・データベースがソース・データベースと、関連ターゲット・データベースとを含み、ソース・データベースのテーブルの内容の選択された部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期され、ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のためにターゲット・データベースを含むデータベース管理システムに移され、このリンクド・データベース・システムが、
- プロセッサと、プロセッサに通信的に結合されたメモリとを含み、メモリはプログラム・コード部分を記憶しており、このプログラム・コード部分は実行されたときに、プロセッサが、
- ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、読取ったエントリをターゲット・データベースに適用することによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させることを可能にするもの。
14.項目13によるリンクド・データベース・システムであって、ソース・データベースがトランザクションに対して最適化されるもの。
15.項目14によるリンクド・データベース・システムであって、ソース・データベースが行指向リレーショナルDBMSであるもの。
16.項目13~15のいずれかによるリンクド・データベース・システムであって、ターゲット・データベースが分析動作に対して最適化されるもの。
17.項目16によるリンクド・データベース・システムであって、ターゲット・データベースが列指向データベースであるもの。
18.項目16または17によるリンクド・データベース・システムであって、ターゲット・データベースがメモリ内データベースであるもの。
19.項目13~18のいずれかによるリンクド・データベース・システムであって、加えてメモリが記憶するプログラム・コード部分が実行されたときに、プロセッサが、
- ターゲット・データベースのクラッシュの場合に、ターゲット・データベースの回復が終了するまでターゲット・データベースに対するクエリを遅延させることを可能にするもの。
20.項目19によるリンクド・データベース・システムであって、ターゲット・データベースの回復が、ソース・データベースからのデータのバルク・ロードであるもの。
21.項目19または20によるリンクド・データベース・システムであって、加えてメモリが記憶するプログラム・コード部分が実行されたときに、プロセッサが、
- ターゲット・データベースが回復モードである際に、ターゲット・データベースをターゲットとするクエリをソース・データベースにおいて実行することを可能にするもの。
22.項目13または21によるリンクド・データベース・システムであって、加えてメモリが記憶するプログラム・コード部分が実行されたときに、プロセッサが、
- ソース・データベースからターゲット・データベースへのデータの直接バルク・ロード・プロセスによってターゲット・データベースを初期化することを可能にするもの。
23.項目13または22によるリンクド・データベース・システムであって、選択されたテーブルを定義するメタデータが、回復ログ・ファイルの一部であるもの。
24.項目13または23によるリンクド・データベース・システムであって、ターゲット・データベース管理システムが回復ログを含まないもの。
25.リンクド・データベースに対するクラッシュ回復のためのコンピュータ・プログラム製品であって、リンクド・データベースがソース・データベースと、関連ターゲット・データベースとを含み、ソース・データベースのテーブルの内容の選択された部分が、ターゲット・データベースのテーブルの内容のそれぞれの部分と同期され、ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のためにターゲット・データベースを含むデータベース管理システムに移され、
前記コンピュータ・プログラム製品が、具現化されるプログラム命令を有するコンピュータ可読記憶媒体を含み、前記プログラム命令が1つ以上のコンピュータ・システムまたはコントローラによって実行可能であることによって、前記1つ以上のコンピュータ・システムに、
- ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、読取ったエントリをターゲット・データベースに適用することによって、ターゲット・データベースにおける選択されたテーブルの内容の部分を、ソース・データベースにおける選択されたテーブルの内容の部分と同期させることを行わせるもの。

Claims (25)

  1. リンクド・データベースに対するクラッシュ回復のためのコンピュータ実施方法であって、前記リンクド・データベースがソース・データベースと、関連ターゲット・データベースとを含み、前記ソース・データベースのテーブルの内容の選択された部分が、前記ターゲット・データベースの前記テーブルの前記内容のそれぞれの部分と同期され、前記ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のために前記ターゲット・データベースを含むデータベース管理システムに移される、前記方法が、
    前記ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、前記読取ったエントリを前記ターゲット・データベースに適用することによって、前記ターゲット・データベースにおける選択された前記テーブルの前記内容の前記部分を、前記ソース・データベースにおける前記選択されたテーブルの前記内容の前記部分と同期させることを含む、方法。
  2. 前記ソース・データベースがトランザクションに対して最適化される、請求項1に記載の方法。
  3. 前記ソース・データベースが行指向リレーショナル・データベースである、請求項2に記載の方法。
  4. 前記ターゲット・データベースが分析動作に対して最適化される、請求項1に記載の方法。
  5. 前記ターゲット・データベースが列指向データベースである、請求項4に記載の方法。
  6. 前記ターゲット・データベースがメモリ内データベースである、請求項4に記載の方法。
  7. 前記ターゲット・データベースのクラッシュの場合に、前記ターゲット・データベースの回復が終了するまで前記ターゲット・データベースに対するクエリを遅延させることをさらに含む、請求項1に記載の方法。
  8. 前記ターゲット・データベースの前記回復が、前記ソース・データベースからのデータのバルク・ロードによって行われる、請求項7に記載の方法。
  9. 前記ターゲット・データベースの前記回復の間に、前記ターゲット・データベースをターゲットとするクエリが前記ソース・データベースにおいて実行される、請求項7に記載の方法。
  10. 前記ソース・データベースから前記ターゲット・データベースへのデータの直接バルク・ロード・プロセスによって前記ターゲット・データベースを初期化することをさらに含む、請求項1に記載の方法。
  11. 前記選択されたテーブルを定義するメタデータが、前記回復ログ・ファイルの一部である、請求項1に記載の方法。
  12. 前記ターゲット・データベース管理システムが回復ログを含まない、請求項1に記載の方法。
  13. リンクド・データベースに対するクラッシュ回復を有するリンクド・データベース・システムであって、前記リンクド・データベースが、ソース・データベースと、関連ターゲット・データベースとを含み、前記ソース・データベースのテーブルの内容の選択された部分が、前記ターゲット・データベースの前記テーブルの前記内容のそれぞれの部分と同期され、前記ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のために前記ターゲット・データベースを含むデータベース管理システムに移される、前記リンクド・データベース・システムが、
    プロセッサと、前記プロセッサに通信的に結合されたメモリとを含み、前記メモリはプログラム・コード部分を記憶しており、前記プログラム・コード部分は実行されたときに、前記プロセッサが、
    前記ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、前記読取ったエントリを前記ターゲット・データベースに適用することによって、前記ターゲット・データベースにおける選択された前記テーブルの前記内容の前記部分を、前記ソース・データベースにおける前記選択されたテーブルの前記内容の前記部分と同期させることを可能にする、リンクド・データベース・システム。
  14. 前記ソース・データベースがトランザクションに対して最適化される、請求項13に記載のリンクド・データベース・システム。
  15. 前記ソース・データベースが行指向リレーショナルDBMSである、請求項14に記載のリンクド・データベース・システム。
  16. 前記ターゲット・データベースが分析動作に対して最適化される、請求項13に記載のリンクド・データベース・システム。
  17. 前記ターゲット・データベースが列指向データベースである、請求項16に記載のリンクド・データベース・システム。
  18. 前記ターゲット・データベースがメモリ内データベースである、請求項16に記載のリンクド・データベース・システム。
  19. 加えて前記メモリが記憶するプログラム・コード部分が実行されたときに、前記プロセッサが、
    前記ターゲット・データベースのクラッシュの場合に、前記ターゲット・データベースの回復が終了するまで前記ターゲット・データベースに対するクエリを遅延させることを可能にする、請求項13に記載のリンクド・データベース・システム。
  20. 前記ターゲット・データベースの前記回復が、前記ソース・データベースからのデータのバルク・ロードである、請求項19に記載のリンクド・データベース・システム。
  21. 加えて前記メモリが記憶するプログラム・コード部分が実行されたときに、前記プロセッサが、
    前記ターゲット・データベースが回復モードである際に、前記ターゲット・データベースをターゲットとするクエリを前記ソース・データベースにおいて実行することを可能にする、請求項19に記載のリンクド・データベース・システム。
  22. 加えて前記メモリが記憶するプログラム・コード部分が実行されたときに、前記プロセッサが、
    前記ソース・データベースから前記ターゲット・データベースへのデータの直接バルク・ロード・プロセスによって前記ターゲット・データベースを初期化することを可能にする、請求項13に記載のリンクド・データベース・システム。
  23. 前記選択されたテーブルを定義するメタデータが、前記回復ログ・ファイルの一部である、請求項13に記載のリンクド・データベース・システム。
  24. 前記ターゲット・データベース管理システムが回復ログを含まない、請求項13に記載のリンクド・データベース・システム。
  25. リンクド・データベースに対するクラッシュ回復のためのコンピュータ・プログラム製品であって、前記リンクド・データベースがソース・データベースと、関連ターゲット・データベースとを含み、前記ソース・データベースのテーブルの内容の選択された部分が、前記ターゲット・データベースの前記テーブルの前記内容のそれぞれの部分と同期され、前記ソース・データベースを含むデータベース管理システムに対する選択されたクエリが、処理のために前記ターゲット・データベースを含むデータベース管理システムに移され、前記コンピュータ・プログラム製品が、具現化されるプログラム命令を有するコンピュータ可読記憶媒体を含み、前記プログラム命令が1つ以上のコンピュータ・システムまたはコントローラによって実行可能であることによって、前記1つ以上のコンピュータ・システムに、
    前記ソース・データベースに関係する回復ログ・ファイルのエントリを読取ること、および、前記読取ったエントリを前記ターゲット・データベースに適用することによって、前記ターゲット・データベースにおける選択された前記テーブルの前記内容の前記部分を、前記ソース・データベースにおける前記選択されたテーブルの前記内容の前記部分と同期させることを行わせる、コンピュータ・プログラム製品。
JP2023553627A 2021-03-19 2022-02-16 データベース・アクセラレータにおける揮発性データベース・キャッシング Pending JP2024510137A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US17/206,221 US11500733B2 (en) 2021-03-19 2021-03-19 Volatile database caching in a database accelerator
US17/206,240 US11797570B2 (en) 2021-03-19 2021-03-19 Asynchronous persistency of replicated data changes in a database accelerator
US17/206,221 2021-03-19
US17/206,240 2021-03-19
PCT/CN2022/076435 WO2022193893A1 (en) 2021-03-19 2022-02-16 Volatile database caching in a database accelerator

Publications (1)

Publication Number Publication Date
JP2024510137A true JP2024510137A (ja) 2024-03-06

Family

ID=83321517

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2023553633A Pending JP2024512335A (ja) 2021-03-19 2022-02-16 データベース・アクセラレータにおける複製データ変更の非同期的永続性
JP2023553627A Pending JP2024510137A (ja) 2021-03-19 2022-02-16 データベース・アクセラレータにおける揮発性データベース・キャッシング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2023553633A Pending JP2024512335A (ja) 2021-03-19 2022-02-16 データベース・アクセラレータにおける複製データ変更の非同期的永続性

Country Status (3)

Country Link
JP (2) JP2024512335A (ja)
DE (2) DE112022000767T5 (ja)
WO (2) WO2022193894A1 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205449B1 (en) * 1998-03-20 2001-03-20 Lucent Technologies, Inc. System and method for providing hot spare redundancy and recovery for a very large database management system
US7287043B2 (en) * 2003-08-21 2007-10-23 International Business Machines Corporation System and method for asynchronous data replication without persistence for distributed computing
US10803066B2 (en) 2010-06-29 2020-10-13 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries for a versioned database based on multiple hardware accelerators
US11030055B2 (en) * 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
CN104239476B (zh) * 2014-09-04 2018-09-25 上海天脉聚源文化传媒有限公司 一种数据库同步的方法、装置及系统
CN106815275B (zh) * 2015-12-02 2020-11-27 阿里巴巴集团控股有限公司 一种通过备用数据库实现主备数据库同步的方法与设备
US10242050B2 (en) * 2015-12-23 2019-03-26 Sybase, Inc. Database caching in a database system
US10216589B2 (en) * 2016-03-02 2019-02-26 International Business Machines Corporation Smart data replication recoverer
CN108052681B (zh) * 2018-01-12 2020-05-26 毛彬 一种关系型数据库间结构化数据的同步方法及系统
US11003549B2 (en) * 2018-07-25 2021-05-11 Microsoft Technology Licensing, Llc Constant time database recovery

Also Published As

Publication number Publication date
DE112022000767T5 (de) 2023-11-09
WO2022193894A1 (en) 2022-09-22
WO2022193893A1 (en) 2022-09-22
JP2024512335A (ja) 2024-03-19
DE112022000492T5 (de) 2023-12-14

Similar Documents

Publication Publication Date Title
US10990610B2 (en) Synchronization on reactivation of asynchronous table replication
KR102432304B1 (ko) 클라이언트 동기화에서의 위반 해결
US10552372B2 (en) Systems, methods, and computer-readable media for a fast snapshot of application data in storage
AU2016280884A1 (en) Techniques for resource description framework modeling within distributed database systems
JP7263297B2 (ja) ハイブリッドクラウド弾性スケーリングおよび高性能データ仮想化のためのリアルタイムクロスシステムデータベースレプリケーション
EP2746971A2 (en) Replication mechanisms for database environments
US10838934B2 (en) Modifying archive data without table changes
US9075858B2 (en) Non-disruptive data movement and node rebalancing in extreme OLTP environments
EP3719665B1 (en) Supporting scalable distributed secondary index using replication engine for high-performance distributed database systems
CN107077491B (zh) 联机模式和数据变换
US11314719B2 (en) Method for implementing change data capture in database management system
CN117043763A (zh) 数据库加速器中的易失性数据库高速缓存
US20180276267A1 (en) Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system
US11226878B1 (en) Accelerator-based database recovery
US11461201B2 (en) Cloud architecture for replicated data services
WO2021135210A1 (en) Methods and apparatuses for generating redo records for cloud-based database
US9507783B1 (en) Migration of large data from on-line content management to archival content management
US20230325404A1 (en) Query execution on a replicated database with most recent data
JP2024510137A (ja) データベース・アクセラレータにおける揮発性データベース・キャッシング
US11360866B2 (en) Updating stateful system in server cluster
US11500733B2 (en) Volatile database caching in a database accelerator
US20170169049A1 (en) Staging Log-Based Page Blobs on a Filesystem
CN111797092B (zh) 在数据库系统内提供次级索引的方法和系统
Cottrell et al. Core Concepts
US11966411B1 (en) Change data capture log augmentation for streamlined ETL processing

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231221