JP2008530716A - データベースシステムにおいて報告トランザクションを処理する方法およびメカニズム - Google Patents

データベースシステムにおいて報告トランザクションを処理する方法およびメカニズム Download PDF

Info

Publication number
JP2008530716A
JP2008530716A JP2007556381A JP2007556381A JP2008530716A JP 2008530716 A JP2008530716 A JP 2008530716A JP 2007556381 A JP2007556381 A JP 2007556381A JP 2007556381 A JP2007556381 A JP 2007556381A JP 2008530716 A JP2008530716 A JP 2008530716A
Authority
JP
Japan
Prior art keywords
reporting
node
database
failover
snapshot
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
JP2007556381A
Other languages
English (en)
Other versions
JP2008530716A5 (ja
JP4939440B2 (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 JP2008530716A publication Critical patent/JP2008530716A/ja
Publication of JP2008530716A5 publication Critical patent/JP2008530716A5/ja
Application granted granted Critical
Publication of JP4939440B2 publication Critical patent/JP4939440B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

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)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

データベースシステムにおいて報告トランザクションを処理するための改良された方法、システムおよび媒体を開示する。いくつかの実施例では、プライマリノードで非報告トランザクションを実行するのと同時にフェイルオーバノードで報告トランザクションを実行するためにデータベーススナップショットが使用される。

Description

背景および概要
この発明はデータベースシステムに関する。より詳細には、この発明は、データベースシステムにおいて報告トランザクション(reporting transaction)を処理する方法およびメカニズムに向けられる。
多くのデータベースシステムは、ペースの速い今日の市場において極めて重要である高可用性を保証するためにフェイルオーバクラスタを利用する。フェイルオーバクラスタでは、データベースはプライマリノードおよび少なくとも1つのフェイルオーバノード(スペアノードとしても公知である)にリンクされる。データベースおよびウェブサーバなどのアプリケーションは、誤動作するまでプライマリノードで動作する。誤動作が発生すると、アプリケーションはフェイルオーバノードで再開される。フェイルオーバノードおよびプライマリノードが単一のクラスタに属しているので、プライマリノードの故障を検出するために標準的なハートビートメカニズムを使用できる。
フェイルオーバクラスタに関する1つの問題は、フェイルオーバノードをプライマリノードと同時に使用できないことである。したがって、プライマリハードウェアが故障したときにのみ使用される追加のハードウェアを購入するコストを正当化することは困難であり得る。ある特定の並列データベースシステムは、2つ以上のノードがクラスタにおけるデータベースに同時にアクセスできるアクティブ/アクティブクラスタを利用することによってこの問題を解決する。しかしながら、アクティブ/アクティブクラスタは、クラスタにおけるすべてのノードからの同時の読取および修正が存在する状態でデータベースが確実に一貫性があるようにするために複雑な並行処理制御メカニズムを必要とする。
ユーザが直面する別の問題は、報告トランザクションが他のトランザクションと同時に実行される混合ワークロードを動作させる必要があることである。理想的には、リアルタイムの報告は各報告トランザクションによって与えられる。すなわち、最新の更新からの結果はトランザクションにおけるクエリによって使用される。さらに、ユーザは、非報告トランザクション(non-reporting transaction)と報告トランザクションとの間の(たとえば、CPUまたはメモリについての)ハードウェアリソースの競合を回避するために、別個に報告トランザクションを動作させることを好む。
アクティブ/アクティブクラスタリングをサポートしないデータベースシステムでは、報告のために複製データベースが作成され、使用され得る。しかしながら、複製データベースがプライマリデータベースの完全なコピーであるので、この解決法は格納コストを2倍にする。さらに、複製データベースはしばしばプライマリデータベースに遅れをとる。なぜなら、プライマリデータベースにおける変更を瞬時に複製することが実現可能でない可能性があるためである。たとえ瞬時の複製が実現可能であったとしても、プライマリデータベースでのすべてのコミットが同期して報告データベースに複製される必要があるだろうという理由で、プライマリデータベースのスループットは大幅に影響を受けるであろう。
したがって、フェイルオーバクラスタを利用するデータベースシステムにおいて報告ト
ランザクションを実行することに関するこれらのおよび他の問題に方法およびメカニズムが対処する必要がある。
この発明の実施例は、データベースシステムにおいて報告トランザクションを処理するための改良された方法、システムおよび媒体を提供する。実施例によれば、データベースのスナップショットが取得される。データベースはプライマリノードおよびフェイルオーバノードにリンクされる。次いで1つ以上の非報告トランザクションがプライマリノードで実行され、プライマリノードで1つ以上の非報告トランザクションを実行するのと同時にフェイルオーバノードで報告トランザクションを実行するためにスナップショットが利用される。
この発明の局面、目的および利点のさらなる詳細について、詳細な説明、図面および特許請求の範囲において以下で説明する。先の一般的な説明および以下の詳細な説明の両方は例示的および説明的なものであり、この発明の範囲に関して限定的であるように意図されるものではない。
添付の図面は、この発明をさらに理解できるようにするために含まれ、詳細な説明とともにこの発明の原理を説明するのに役立つ。
詳細な説明
データベースシステムにおける報告トランザクションの処理を開示する。複雑な整合性およびルーティングメカニズムを必要とするアクティブ/アクティブクラスタを利用するか、または追加のハードウェアの購入を必然的に伴い、潜在的にデータが古い別個の複製データベースを有するのではなく、報告トランザクションは、プライマリノードで動作する非報告トランザクションと同時に、データベーススナップショットを使用して、フェイルオーバノードで実行される。これは、そうでなければアイドルのままであろうフェイルオーバノードを利用し、最新のスナップショットが使用されるときにリアルタイムに近い報告を与える。
データベースシステムにおいて報告トランザクションを処理する方法を図1に示す。102において、データベースのスナップショットが取得される。データベースはプライマリノードおよびフェイルオーバノードにリンクされる。いくつかの実施例では、プライマリノードのみがデータベースを修正することを許可される。クライアント接続部は、すべての報告トランザクションをフェイルオーバノードに向け、すべての他のトランザクションをプライマリノードに向けるよう構成され得るであろう。フェイルオーバノードが、場合によってはデータベースを修正し得るであろうトランザクションを自動的にプライマリノードにルーティングすることも可能であり得る。このルーティングは、セッションがデータベースを修正することになるかどうかを識別するトランザクションにリード・ライト(READ-WRITE)またはリード・オンリ(READ-ONLY)という印をつけることによってなされ得る。
次いで1つ以上の非報告トランザクションがプライマリノードで実行され(104)、プライマリノードで1つ以上の非報告トランザクションを実行するのと同時にフェイルオーバノードで報告トランザクションを実行するためにスナップショットが利用される(106)。報告トランザクションおよび非報告トランザクションの各々は、1つ以上のクエリを備える。そして、非報告トランザクションはリード・ライトまたはリード・オンリトランザクションであってもよいが、報告トランザクションは通常リード・オンリトランザクションである。
スナップショットは、データベースのある時点のコピーであり、スナップショットが取得された後に修正されるデータベースブロックを除いて、データベースと同一のディスクスペースを共有する。これは、スナップショットが修正されないままであるように、変更されたブロックが新しい場所に書込まれる標準的なコピー・オン・ライトメカニズムによって達成されることができる。スナップショットがリード・オンリであり、プライマリノードによって修正されることができないので、フェイルオーバノードで動作するクエリは、プライマリノードとの調整を必要とすることなく、使用されるスナップショットと一貫性のある結果を返すことになる。そして、スナップショットが一貫性があり、データベース全体のためのものである(すなわち、クエリにおいて参照されるスナップショットおよびテーブルの中の索引がすべて一貫性がある)ので、既存のクエリ実行エンジンは修正される必要がない。さまざまなスナップショット方法論が利用可能であり、ファイル、アプリケーション、システムまたはデータベースレベルで実現され得る。たとえば、ファイルレベルのスナップショットの作成についての説明は、http://www.netapp.com/tech library/3002.htmlにおいて見ることができる。
スナップショットは、すべての変更されないデータについてデータベースと同一のディスク記憶装置を使用するので、ディスクスペースおよびCPU使用率の両方の点で比較的安価に作成される。したがって、データベースシステムはかなり頻繁に、たとえば10秒ごとにスナップショットを取得するよう構成され得る。しかしながら、ユーザコマンドに応答して、たとえば報告セッションまたは他のこのようなメトリクスによって所望されるサービスの質に基づいてデータベースシステムがスナップショットを生成することも可能である。最新のスナップショットを使用してフェイルオーバノードで報告トランザクションを実行することにより、リアルタイムに近い報告が与えられることになる。なぜなら、最新の更新は報告トランザクションにおけるクエリによって使用されることになるためである。しかしながら、ユーザは取得された最新のスナップショットよりも古いスナップショットの使用を指定することも許可され得る。
図2は、プライマリノード202、フェイルオーバノード204およびデータベース206を有するクラスタ200を示す。データベース206のスナップショット208が取得されている。複数の非報告トランザクション210aおよび210bがプライマリノード202で動作している間、スナップショット208はフェイルオーバノード204で報告トランザクション212を実行するために使用される。いくつかの実施例では、非報告トランザクション210aおよび210bならびに報告トランザクション212はワークロードの一部である。
データベースシステムにおいて報告トランザクションを処理するための方法のプロセスフローを図3に示す。この実施例によれば、プライマリノードおよびフェイルオーバノードにリンクされるデータベースのスナップショットが取得される(302)。304において、1つ以上の非報告トランザクションがプライマリノードで実行される。プライマリノードで1つ以上の非報告トランザクションを実行するのと同時にフェイルオーバノードで報告トランザクションを実行するためにスナップショットが利用される(306)。次いで、報告トランザクションがフェイルオーバノードで実行されるときに1つ以上の一時的なテーブルが作成され、使用される(308)。
クラスタ400を図4に示す。クラスタ400は、プライマリノード402、フェイルオーバノード404およびデータベース406を含む。この例では、スナップショット408aが取得され、非報告トランザクション410がプライマリノード402で動作している間にフェイルオーバノード404で報告トランザクション412を実行するために使用される。報告トランザクション412の実行中、一時的な結果を格納するためにトラン
ザクション412におけるクエリスクリプトを通じて一時的なテーブル414aおよび414bが作成される。これらの一時的なテーブル414aおよび414bはプライマリノード402に透過的に送られ、プライマリノード402は次いで一時的なテーブル414aおよび414bのためにデータベース406においてスペースを割当てる。フェイルオーバノード404において一時的なテーブル414aおよび414bに後に保存される変更はプライマリノード402に送られる必要はない。
図4では、データベース406の新しいスナップショット408bが取得されて、報告トランザクション412における後続のクエリが一時的なテーブル414aおよび414bにアクセスできるようにする。しかしながら、他の実施例では、作成されるすべての一時的なテーブルよりも少ない一時的なテーブルが後続のクエリによるアクセスのために保有されることになる。したがって、クエリの完了後、フェイルオーバノードは、テーブルのために割当てられたデータベーススペースを解放するために、一時的なテーブルを削除でき、削除部分をプライマリノードに送ることができる。
一貫性のある結果を保証するために、単一のクエリは通常同一のスナップショットを使用することになる。しかしながら、図4の例に見られるように、同一のセッションまたはトランザクション内の後続のクエリは、以前のクエリによって使用されたスナップショットと同一のスナップショットまたはそれよりも最近のスナップショットを使用してもよい。
データベースシステムにおいて報告トランザクションを処理する別の方法を図5に示す。502において、データベースのスナップショットが取得される。この実施例では、データベースはプライマリノードおよびフェイルオーバノードにリンクされる。次いで1つ以上の非報告トランザクションがプライマリノードで実行され(504)、プライマリノードで1つ以上の非報告トランザクションを実行するのと同時にフェイルオーバノードで報告トランザクションを実行するためにスナップショットが利用される(506)。508において、報告トランザクションがフェイルオーバノードで実行されるときにデータベースにおける1つ以上のスキーマが修正され、使用される。1つ以上のスキーマは、プライマリノードで作成されていた可能性があり、フェイルオーバノードで報告トランザクションが使用するために「印をつけられていた」または「確保されていた」可能性がある。さらに、1つ以上のスキーマへの変更はプライマリノードと調整することなくなされ得る。
データベーススキーマはオブジェクトの集まりである。スキーマオブジェクトは、たとえばテーブル、ビュー、シーケンスおよびストアドプロシージャを含むが、それらに限定されない。テーブルは、概してデータベースにおける編成の基本単位であり、それぞれの行および列に格納されたデータを備える。ビューは、1つ以上のテーブルでのデータの特別仕立ての提示である。ビューは、データが基づいているテーブル、すなわちベーステーブルからデータを導き出す。さらには、ベーステーブルがテーブルである可能性もあれば、ベーステーブル自体がビューである可能性もある。ビューの一例は、テーブルからテーブルのデータの列のうち2列をマイナスしたものである。
シーケンスは、1つ以上のデータベーステーブルの数値列を識別する固有の数字の連続的なリストである。シーケンスは概して、単一のテーブルまたは複数のテーブルの行について固有の数値を自動的に生成することによってアプリケーションプログラミングを単純化する。シーケンスを使用することによって、2人以上のユーザが概して同時にテーブルにデータを入力できる。ストアドプロシージャは概して、特定のタスクを行なうために実行可能な単位としてともにグループ分けされる1組のコンピュータ命令文である。
図6は、プライマリノード602、2つのフェイルオーバノード604aおよび604b、ならびにデータベース606を有するクラスタ600を示す。データベース606のスナップショット608が取得されている。この実施例では、スナップショット608を介してしかフェイルオーバノード604aおよび604bに開いていない残りのデータベース606とは異なって、リード・ライトモードでデータベース606内のスキーマ614aおよび614bをフェイルオーバノード604aおよび604bが利用できる。この状況下で、スキーマ614aおよび614bは、フェイルオーバノード604aおよび604bで動作する報告トランザクション612aおよび612bによってそれぞれに修正され得る。スキーマ614aおよび614bに含まれるデータがフェイルオーバノード604a、604bとプライマリノード602との間で共有されないので、プライマリノード602で実行する非報告トランザクション610はデータベース606におけるスキーマ614aおよび614bにアクセスできない。
データベースシステムにおいて報告トランザクションを処理するための方法のフローチャートを図7に示す。702において、プライマリノードおよびフェイルオーバノードにリンクされるデータベースのスナップショットが取得される。704において、1つ以上の非報告トランザクションがプライマリノードで実行される。次いで、プライマリノードで1つ以上の非報告トランザクションを実行するのと同時にフェイルオーバノードで報告トランザクションを実行するためにスナップショットが利用される(706)。
この実施例では、報告トランザクションがフェイルオーバノードで実行されるときに、プライマリノードの1つ以上のユーザ定義プロシージャがアクセスされ、使用される(708)。ユーザ定義プロシージャは、一般に複雑な報告の準備をより容易にするために使用され、通常はプライマリノードで作成され、コンパイルされる。これらのプロシージャには、ちょうど他のデータベースオブジェクトと同様に、フェイルオーバノードからアクセス可能である。
データベースシステム800を図8に示す。この図はユーザ802、クライアント804、プライマリノード806、フェイルオーバノード808およびデータベース810しか示していないが、システム800は他のクラスタ、ノード、ユーザ、データベースおよびクライアントを含んでもよい。この例では、ユーザ802はクライアント804を介してプライマリノード806でプロシージャ818aおよび818bを定義している。データベース810のスナップショット812が取得された後、スナップショット812ならびにユーザ定義プロシージャ818aおよび818bを使用して、プライマリノード806で非報告トランザクション814を動作させるのと同時に報告トランザクション816がフェイルオーバノード808で実行される。図8に示すように、スナップショット812の使用は、ユーザ定義プロシージャ818aおよび818bとは異なって、直接的である。すなわち、スナップショット812はプライマリノード806を経ることなく使用される。
データベースシステムにおいて報告トランザクションを処理する別の方法を図9に示す。この方法によれば、902において、データベースのスナップショットが取得される。データベースはプライマリノードおよびセカンダリノードにリンクされる。次いで、904において、1つ以上の非報告トランザクションがプライマリノードで実行され、906において、プライマリノードで1つ以上の非報告トランザクションを実行するのと同時にフェイルオーバノードで報告トランザクションを実行するためにスナップショットが利用される。報告トランザクションがフェイルオーバノードで実行されるときにデータベースにおける一時的なスペースが確保され、使用される(908)。
データベースに一時的なスペースを確保するために、フェイルオーバノードはメッセー
ジをプライマリノードに送信することができる。なぜなら、確保することは通常、整合性の問題を回避するためにプライマリノードによって行なわれるカタログの変更を必要とするためである。一旦フェイルオーバノードのためにスクラッチディスクスペースが確保されると、プライマリノードからの介入なしに一時的なスペース自体への書込を行なうことができる。スクラッチスペースによって一時的なファイルを作成することができる。これらの一時的なファイルは時には、メインメモリに適合しない一時的な動作の結果、たとえばもろもろの中間結果、JOIN法において使用されるハッシュテーブルなどを格納するために必要である。
図10は、プライマリノード1002ならびに3つのフェイルオーバノード1004a、1004bおよび1004cを有するクラスタ1000を示し、それらはすべてデータベース1006にリンクされる。この図では、ユーザ定義プロシージャ1012は、リード・ライトトランザクション1010aおよびリード・オンリトランザクション1010bとともに、プライマリノード1002で見られることができる。報告トランザクション1014aおよび1014bはフェイルオーバノード1004aで動作している。さらに、報告トランザクション1014d、1014eおよび1014fがフェイルオーバノード1004cで動作している間、報告トランザクション1014cはファイルオーバノード1004bで動作している。データベース1006の3つのスナップショット1008a、1008bおよび1008cは異なるときに取得された。報告トランザクションの各々はスナップショットのうちの1つを使用して実行され得る。しかしながら、同一のフェイルオーバノードでの報告トランザクションは同一のスナップショットを利用する必要はない。たとえば、フェイルオーバノード1004cでの報告トランザクション1014d、1014eおよび1014fは各々が異なるスナップショット1008を使用できる。
図10に示すように、3つの一時的なスペース1016a、1016bおよび1016cは、フェイルオーバノード1004a、1004bおよび1004cのためにそれぞれにデータベース1006に確保されている。フェイルオーバノード1004a、1004bおよび1004cの各々は要求をプライマリノード1002に送信して、それぞれのスクラッチスペースを確保する。他の実施例では、フェイルオーバノード1004a、1004bおよび1004cは1つ以上の一時的なスペースを共有してもよい。
システムアーキテクチャの概要
図11は、この発明の実施例を実現するのに好適なコンピュータシステム1100のブロック図である。コンピュータシステム1100は、プロセッサ1104、システムメモリ1106(たとえばRAM)、静的記憶装置1108(たとえばROM)、ディスクドライブ1110(たとえば磁気もしくは光学)、通信インターフェイス1112(たとえばモデムもしくはイーサネット(登録商標)カード)、ディスプレイ1114(たとえばCRTもしくはLCD)、入力装置1116(たとえばキーボード)およびカーソル制御装置1118(たとえばマウスもしくはトラックボール)などのサブシステムおよび装置を相互接続する、情報を通信するためのバス1102または他の通信メカニズムを含む。
この発明の一実施例によれば、コンピュータシステム1100は、システムメモリ1106に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ1104によって特定の動作を行なう。このような命令は、静的記憶装置1108またはディスクドライブ1110などの別のコンピュータ可読媒体からシステムメモリ1106に読取られることができる。代替的な実施例では、この発明を実現するためにソフトウェア命令の代わりにまたはソフトウェア命令と組合せられてハードワイヤード回路が使用されてもよい。
本明細書において使用される「コンピュータ可読媒体」という用語は、実行のためにプ
ロセッサ1104に命令を与えることに関与する任意の媒体を指す。このような媒体は、不揮発性媒体、揮発性媒体および伝送媒体を含むがそれらに限定されない多くの形態を取り得る。不揮発性媒体はたとえばディスクドライブ1110などの光学または磁気ディスクを含む。揮発性媒体はシステムメモリ1106などのダイナミックメモリを含む。伝送媒体はバス1102を備えるワイヤを含む同軸ケーブル、銅線および光ファイバを含む。伝送媒体は、電波および赤外線データ通信中に発生するものなどの音波または光波の形態も取り得る。
コンピュータ可読媒体の一般的な形態は、たとえばフロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の磁気媒体、CD−ROM、他の光学媒体、パンチカード、紙テープ、穴のパターンを有する他の物理的な媒体、RAM、PROM、EPROM、FLASH−EPROM、他のメモリチップもしくはカートリッジ、搬送波、またはコンピュータが読取ることができる他の媒体を含む。
この発明の実施例では、この発明を実施するための命令のシーケンスの実行は単一のコンピュータシステム1100によって行なわれる。この発明の他の実施例によれば、通信リンク1120(たとえばLAN、PTSNまたはワイヤレスネットワーク)によって結合される2つ以上のコンピュータシステム1100が互いに連携してこの発明を実施するのに必要な命令のシーケンスを実行してもよい。
コンピュータシステム1100は、通信リンク1120および通信インターフェイス1112を介して、プログラムすなわちアプリケーションコードを含むメッセージ、データおよび命令を伝送および受信できる。受信されたプログラムコードは、受信したままでプロセッサ1104によって実行されてもよく、および/または後に実行するためにディスクドライブ1110もしくは他の不揮発性記憶装置に格納されてもよい。
先の明細書では、具体的な実施例を参照してこの発明について説明してきた。しかしながら、この発明のより広い精神および範囲から逸脱することなくさまざまな修正および変更がなされ得ることは明白であろう。たとえば、プロセスアクションの特定の順序付けを参照して上述のプロセスフローを説明する。しかしながら、説明するプロセスアクションの多くの順序付けはこの発明の範囲または動作に影響を及ぼすことなく変更され得る。したがって、明細書および図面は限定的な意味ではなく例示的な意味で考えられるべきである。
この発明の実施例に従ってデータベースシステムにおいて報告トランザクションを処理する方法のフローチャートである。 この発明の一実施例に従うフェイルオーバクラスタにおける報告トランザクションの実行を示す。 この発明の別の実施例に従ってデータベースシステムにおいて報告トランザクションを処理するための方法のプロセスフローを示す。 この発明の別の実施例に従ってクラスタにおいて報告トランザクションがいかに処理されるかの一例である。 データベースシステムにおいて報告トランザクションを処理する方法の一実施例を示す。 複数のフェイルオーバノードを有するクラスタを示す。 データベースシステムにおいて報告トランザクションを処理するための方法の別の実施例を示す。 サンプルのデータベースシステムを示す。 この発明のさらなる実施例に従ってデータベースシステムにおいて報告トランザクションを処理するための方法のプロセスフローである。 この発明のさらなる実施例に従うフェイルオーバクラスタにおける複数の報告および非報告トランザクションの実行を示す。 この発明の実施例が実現され得るシステムアーキテクチャの図である。

Claims (23)

  1. データベースシステムにおいて報告トランザクションを処理する方法であって、
    データベースのスナップショットを取得することを備え、前記データベースはプライマリノードおよびフェイルオーバノードにリンクされ、前記方法はさらに、
    前記プライマリノードで1つ以上の非報告トランザクションを実行することと、
    前記プライマリノードで前記1つ以上の非報告トランザクションを実行するのと同時に前記フェイルオーバノードで報告トランザクションを実行するために前記スナップショットを利用することとを備える、方法。
  2. 前記フェイルオーバノードで1つ以上の一時的なテーブルを作成することをさらに備え、前記1つ以上の一時的なテーブルは、前記報告トランザクションが前記フェイルオーバノードで実行されるときに使用される、請求項1に記載の方法。
  3. 前記1つ以上の一時的なテーブルは、前記報告トランザクションにおけるクエリスクリプトを通じて作成される、請求項2に記載の方法。
  4. 前記1つ以上の一時的なテーブルのうち少なくとも1つは、前記報告トランザクションにおける2つ以上のクエリにアクセス可能である、請求項2に記載の方法。
  5. 前記データベースにおける1つ以上のスキーマを修正することをさらに備え、前記1つ以上のスキーマは、前記報告トランザクションが前記フェイルオーバノードで実行されるときに使用される、請求項1に記載の方法。
  6. 前記1つ以上のスキーマは、前記プライマリノードで実行する前記1つ以上の非報告トランザクションにアクセス可能ではない、請求項5に記載の方法。
  7. 前記1つ以上のスキーマのうち少なくとも1つは1つ以上のテーブルを含む、請求項5に記載の方法。
  8. 前記プライマリノードで1つ以上のユーザ定義プロシージャにアクセスすることをさらに備え、前記1つ以上のユーザ定義プロシージャは、前記報告トランザクションが前記フェイルオーバノードで実行されるときに使用される、請求項1に記載の方法。
  9. 前記データベースに一時的なスペースを確保することをさらに備え、前記一時的なスペースは、前記報告トランザクションが前記フェイルオーバノードで実行されるときに使用される、請求項1に記載の方法。
  10. 前記プライマリノードおよび前記フェイルオーバノードはクラスタの一部である、請求項1に記載の方法。
  11. 前記クラスタは1つ以上のさらなるフェイルオーバノードを含む、請求項10に記載の方法。
  12. 前記1つ以上の非報告トランザクションのうち少なくとも1つはリード・ライトトランザクションである、請求項1に記載の方法。
  13. 前記報告トランザクションおよび前記1つ以上の非報告トランザクションはワークロードの一部である、請求項1に記載の方法。
  14. 前記報告トランザクションはリアルタイムに近い報告を与える、請求項1に記載の方法。
  15. 前記プライマリノードのみが前記データベースを修正できる、請求項1に記載の方法。
  16. 前記スナップショットはユーザコマンドに応答して取得される、請求項1に記載の方法。
  17. 前記スナップショットはリード・オンリである、請求項1に記載の方法。
  18. 前記スナップショットは前記プライマリノードによって修正されることができない、請求項1に記載の方法。
  19. 前記スナップショットおよび前記データベースはディスクスペースを共有する、請求項1に記載の方法。
  20. 前記スナップショットは最新のものである、請求項1に記載の方法。
  21. 前記スナップショットは、前記フェイルオーバノードで前記報告トランザクションを実行するために直接に使用される、請求項1に記載の方法。
  22. コンピュータ可読媒体を含むコンピュータプログラム製品であって、前記コンピュータ可読媒体は、プロセッサによって実行されると請求項1から21のいずれかを行なうためのプロセスを前記プロセッサに実行させる命令を備える、コンピュータプログラム製品。
  23. 請求項1から21の方法のいずれかを行なうためのシステム。
JP2007556381A 2005-02-18 2006-02-17 データベースシステムにおいて報告トランザクションを処理する方法およびメカニズム Active JP4939440B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/061,152 US20060190460A1 (en) 2005-02-18 2005-02-18 Method and mechanism of handling reporting transactions in database systems
US11/061,152 2005-02-18
PCT/US2006/005909 WO2006089263A2 (en) 2005-02-18 2006-02-17 Method and mechanism of handling reporting transactions in database systems

Publications (3)

Publication Number Publication Date
JP2008530716A true JP2008530716A (ja) 2008-08-07
JP2008530716A5 JP2008530716A5 (ja) 2009-03-19
JP4939440B2 JP4939440B2 (ja) 2012-05-23

Family

ID=36914050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007556381A Active JP4939440B2 (ja) 2005-02-18 2006-02-17 データベースシステムにおいて報告トランザクションを処理する方法およびメカニズム

Country Status (7)

Country Link
US (1) US20060190460A1 (ja)
EP (1) EP1849075A2 (ja)
JP (1) JP4939440B2 (ja)
CN (1) CN100489800C (ja)
AU (1) AU2006214063A1 (ja)
CA (1) CA2598021A1 (ja)
WO (1) WO2006089263A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023518118A (ja) * 2020-05-12 2023-04-27 グーグル エルエルシー Select*クエリのゼロコピー最適化

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US20070162512A1 (en) * 2006-01-10 2007-07-12 Microsoft Corporation Providing reporting database functionality using copy-on-write technology
US7743155B2 (en) * 2007-04-20 2010-06-22 Array Networks, Inc. Active-active operation for a cluster of SSL virtual private network (VPN) devices with load distribution
US20090248631A1 (en) * 2008-03-31 2009-10-01 International Business Machines Corporation System and Method for Balancing Workload of a Database Based Application by Partitioning Database Queries
CN101996214B (zh) * 2009-08-27 2013-10-23 国际商业机器公司 用于处理数据库操作请求的方法和装置
WO2011082132A1 (en) * 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for analyzing snapshots
WO2011144386A1 (en) 2010-05-18 2011-11-24 International Business Machines Corporation Transaction processing system
CN103064860A (zh) * 2011-10-21 2013-04-24 阿里巴巴集团控股有限公司 数据库高可用实现方法及其装置
US9613083B2 (en) * 2012-04-26 2017-04-04 Hewlett Packard Enterprise Development Lp Nesting level
US20140236898A1 (en) * 2013-02-18 2014-08-21 Compellent Technologies System and method for facilitating electronic discovery
US9817742B2 (en) * 2013-06-25 2017-11-14 Dell International L.L.C. Detecting hardware and software problems in remote systems
US11080257B2 (en) * 2019-05-13 2021-08-03 Snowflake Inc. Journaled tables in database systems
US11921878B2 (en) * 2021-01-21 2024-03-05 Servicenow, Inc. Database security through obfuscation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001159985A (ja) * 1999-12-02 2001-06-12 Sun Corp 二重化装置
JP2005202915A (ja) * 2003-12-19 2005-07-28 Hitachi Ltd スナップショット取得方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US5951695A (en) * 1997-07-25 1999-09-14 Hewlett-Packard Company Fast database failover
US6460055B1 (en) * 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
US6553391B1 (en) * 2000-06-08 2003-04-22 International Business Machines Corporation System and method for replicating external files and database metadata pertaining thereto
US6658478B1 (en) * 2000-08-04 2003-12-02 3Pardata, Inc. Data storage system
US6529917B1 (en) * 2000-08-14 2003-03-04 Divine Technology Ventures System and method of synchronizing replicated data
EP1324229A3 (en) * 2001-12-27 2006-02-01 Ncr International Inc. Using point-in-time views to provide varying levels of data freshness
US20030220948A1 (en) * 2002-01-22 2003-11-27 Columbia Data Products, Inc. Managing snapshot/backup collections in finite data storage
US7072915B2 (en) * 2002-01-22 2006-07-04 International Business Machines Corporation Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
DE10393771T5 (de) * 2002-11-20 2006-03-30 Filesx Ltd. Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
US20040220947A1 (en) * 2003-05-02 2004-11-04 International Business Machines Corporation Method and apparatus for real-time intelligent workload reporting in a heterogeneous environment
US7389314B2 (en) * 2004-08-30 2008-06-17 Corio, Inc. Database backup, refresh and cloning system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001159985A (ja) * 1999-12-02 2001-06-12 Sun Corp 二重化装置
JP2005202915A (ja) * 2003-12-19 2005-07-28 Hitachi Ltd スナップショット取得方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023518118A (ja) * 2020-05-12 2023-04-27 グーグル エルエルシー Select*クエリのゼロコピー最適化
JP7277675B2 (ja) 2020-05-12 2023-05-19 グーグル エルエルシー Select*クエリのゼロコピー最適化

Also Published As

Publication number Publication date
AU2006214063A2 (en) 2008-02-21
WO2006089263A2 (en) 2006-08-24
CN101124546A (zh) 2008-02-13
WO2006089263A3 (en) 2007-08-02
CA2598021A1 (en) 2006-08-24
US20060190460A1 (en) 2006-08-24
EP1849075A2 (en) 2007-10-31
AU2006214063A1 (en) 2006-08-24
JP4939440B2 (ja) 2012-05-23
CN100489800C (zh) 2009-05-20

Similar Documents

Publication Publication Date Title
JP4939440B2 (ja) データベースシステムにおいて報告トランザクションを処理する方法およびメカニズム
Taft et al. Cockroachdb: The resilient geo-distributed sql database
CA2578666C (en) Method and system for load balancing a distributed database
EP3811230B1 (en) Automatic query offloading to a standby database
US8209699B2 (en) System and method for subunit operations in a database
Aguilera et al. Sinfonia: a new paradigm for building scalable distributed systems
US20180046554A1 (en) Managing a Redundant Computerized Database Using a Replicated Database Cache
CN103116596B (zh) 在分布式数据库中执行快照隔离的系统和方法
US8156082B2 (en) System and methods for temporary data management in shared disk cluster
JP5801375B2 (ja) データベース管理システム
US8122284B2 (en) N+1 failover and resynchronization of data storage appliances
US20130110873A1 (en) Method and system for data storage and management
US20080098048A1 (en) Migrating temporary data of a session
KR20170060036A (ko) 멀티테넌트 어플리케이션 서버 환경에서 트랜잭션 복구를 위한 시스템 및 방법
CN107787490A (zh) 分布式数据库网格中的直接连接功能
JP2007525765A (ja) データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法
US7720884B1 (en) Automatic generation of routines and/or schemas for database management
US20060095481A1 (en) Method and system for partition level cleanup of replication conflict metadata
DE202023104916U1 (de) Verteilte Ausführung von transaktionalen Abfragen
Okardi et al. Overview of distributed database system
CN104035952A (zh) 硬件支持的存储临时拷贝
Krogh et al. Pro MySQL NDB Cluster
CN104035838A (zh) 硬件支持的存储日志记录
US12124474B2 (en) Real-time masking in a standby database
Kirby et al. Ibm websphere extreme scale v7: Solutions architecture

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111004

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

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

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

Free format text: PAYMENT UNTIL: 20150302

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4939440

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250