JP4746838B2 - データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化 - Google Patents

データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化 Download PDF

Info

Publication number
JP4746838B2
JP4746838B2 JP2003509358A JP2003509358A JP4746838B2 JP 4746838 B2 JP4746838 B2 JP 4746838B2 JP 2003509358 A JP2003509358 A JP 2003509358A JP 2003509358 A JP2003509358 A JP 2003509358A JP 4746838 B2 JP4746838 B2 JP 4746838B2
Authority
JP
Japan
Prior art keywords
ownership
group
ownership group
database
data
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 - Lifetime
Application number
JP2003509358A
Other languages
English (en)
Other versions
JP2004531005A5 (ja
JP2004531005A (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 オラクル・インターナショナル・コーポレイション
Priority claimed from PCT/US2001/020842 external-priority patent/WO2003003252A1/en
Publication of JP2004531005A publication Critical patent/JP2004531005A/ja
Publication of JP2004531005A5 publication Critical patent/JP2004531005A5/ja
Application granted granted Critical
Publication of JP4746838B2 publication Critical patent/JP4746838B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

関連出願
本願は、発明者ジャンフランコ・プッツォル(Gianfranco Putzolu)の「ハイブリッドシェアードナッシング/シェアードディスクデータベースシステム(Hybrid Shared Nothing/Shared Disk Database System)」と称する1998年12月28日出願の先願の米国特許出願連続番号第09/222,577号、および、発明者ジャンフランコ・プッツォルの「データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化(Partitioning Ownership of a Database Among Different Database Servers to Control Access to the Database)」と称する本願と同日出願の米国特許出願連続番号第09/896,373号に関する。
発明の分野
この発明は、データベースシステムに関し、より特定的には、データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化に関する。
発明の背景
多重処理コンピュータシステムとは、命令を互いに並列に実行することが可能である多数の処理ユニットを含むシステムである。並列処理能力を利用するために、タスクの異なった局面が異なった処理ユニットに割当てられる。タスクの異なった局面は、ここで作業グラニュルと称し、利用可能である処理ユニットの間で作業グラニュルを分配する役割を果たす処理をコーディネータプロセスと称する。
多重処理コンピュータシステムは典型的には3つのカテゴリに分類される。すなわち、シェアードエブリシングシステム、シェアードディスクシステム、およびシェアードナッシングシステムである。作業のグラニュルを行なうプロセスに対する作業の分配に課される制約は、関わっている多重処理システムの種類に基づき変化する。
シェアードエブリシングシステムにおいては、すべてのプロセッサにおけるプロセスは、システム内のすべてのダイナミックメモリ装置(以降総じて「メモリ」と称する)へ、およびすべてのスタティックメモリ装置(以降総じて「ディスク」と称する)へ、直接アクセスする。したがって、シェアードエブリシングシステムにおいては、どのように作業グラニュルが割当てられるかに関してはほとんど制約がない。しかしながら、シェアードエブリシング機能を提供するためにはさまざまなコンピュータコンポーネント間で高度な配線が必要となる。さらに、シェアードエブリシングアーキテクチャにはスケーラビリティ限界がある。
シェアードディスクシステムにおいては、プロセッサおよびメモリはノードにグループ化される。シェアードディスクシステムにおける各ノードは、それ自体が多数のプロセッサおよび多数のメモリを含むシェアードエブリシングシステムを構成し得る。すべてのプロセッサにおけるプロセスはシステム内のすべてのディスクにアクセスし得るが、特定のノードに属するプロセッサのプロセスのみが、その特定のノード内のメモリに直接アクセスし得る。シェアードディスクシステムは一般的に、シェアードエブリシングシステムよ
りも少ない配線しか必要としない。しかしながら、シェアードディスクシステムは不平衡な作業負荷の条件に、より影響されやすい。たとえば、もしノードが大きな容量のダイナミックメモリを必要とする作業グラニュルに対して作業するプロセスを有している場合、そのノードに属するメモリはすべての要求されるデータを同時に記憶するのに十分大きくない可能性がある。したがって、利用可能であり使用されていない大容量のメモリが他のノードに残っていたとしても、プロセスはそのノードのローカルメモリとデータをスワップインおよびスワップアウトしなければならない。
シェアードディスクシステムは、メモリ破損をもたらすソフトウェア障害のコンパートメント化を提供する。ノード間ロックマネージャによって用いられる制御ブロックが唯一の例外であり、これらは事実上すべてのノードにおいて反復される。
シェアードナッシングシステムにおいては、すべてのプロセッサ、メモリおよびディスクがノードにグループ化される。シェアードディスクシステムにおけるシェアードナッシングシステムにおいては、各ノードはそれ自体がシェアードエブリシングシステムまたはシェアードディスクシステムを構成し得る。特定のノードで実行するプロセスのみがその特定のノード内のメモリおよびディスクへ直接アクセスし得る。多重処理システムの3つの一般的なタイプのうち、シェアードナッシングシステムが典型的には最も少ないシステムコンポーネント間の配線しか必要としない。しかしながら、シェアードナッシングシステムは不平衡な作業負荷の条件に最も影響されやすい。たとえば、特定の作業グラニュルの間にアクセスされるべきすべてのデータは、特定のノードのディスクに存在し得る。したがって、他のノードにおけるプロセスがアイドル状態であったとしても、作業グラニュルを行なうためにそのノードで実行するプロセスしか用いることができない。
シェアードナッシングシステムは、メモリおよび/またはディスク破損をもたらすソフトウェア障害のコンパートメント化を提供する。唯一の例外は、異なったノードでデータサブセットの「オーナーシップ」を制御する制御ブロックである。オーナーシップは、シェアードディスクロック管理情報よりも修正されていない。よって、オーナーシップ技術はシェアードディスクロック管理技術よりも簡単で信頼性が高いが、なぜならばこれらは高い性能要件を有さないからである。
多重処理システムで実行するデータベースは、典型的には2つのカテゴリに分類される。すなわち、シェアードディスクデータベースおよびシェアードナッシングデータベースである。シェアードディスクデータベースシステムにおいては、多数のデータベースサーバ(典型的には異なったノードで実行する)はデータベースの任意の部分において読出および書込が可能である。シェアードディスクアーキテクチャにおけるデータアクセスは、分散ロックマネージャを介して調整される。シェアードディスクデータベースは、シェアードナッシングおよびシェアードディスクコンピュータシステムの両方で実行し得る。シェアードディスクデータベースをシェアードナッシングコンピュータシステムで実行するためには、オペレーティングシステムにソフトウェアサポートを加えるか、または付加的なハードウェアを与えて、プロセスをリモートディスクに直接アクセスさせる。
シェアードナッシングデータベースは、プロセスと同じノードに属するディスクにデータが含まれている場合にのみ、プロセスがデータに直接アクセスできると想定する。特定的には、データベースデータは利用可能なデータベースサーバ間でさらに分割される。各データベースサーバは、そのデータベースサーバによって所有されているデータの部分にのみ直接読出および書込が可能である。もし第1のサーバが第2のサーバによって所有されているデータへのアクセスを所望すれば、第1のデータベースサーバは第2のデータベースサーバにメッセージを送って、代理で第2のデータベースサーバにデータアクセスを行なわせなければならない。
シェアードナッシングデータベースは、シェアードディスクおよびシェアードナッシング多重処理システムの両方で実行し得る。シェアードナッシングデータベースをシェアードディスクマシンで実行するためには、ソフトウェア機構を設けて論理的にデータベースをパーティション化し、かつ各パーティションのオーナーシップを特定のノードに割当てる。
シェアードナッシングおよびシェアードディスクシステムは各々がその特定のアーキテクチャに関連する好ましい利点を有する。たとえば、シェアードナッシングデータベースは、データへの頻繁な書込アクセス(書込ホットスポット)がある場合により良い性能を提供する。シェアードディスクデータベースは、頻繁な読出アクセス(読出ホットスポット)がある場合により良い性能を提供する。また、上述のように、シェアードナッシングシステムはソフトウェア障害が存在する場合により良い障害封じ込めを提供する。
上記を鑑みて、両方のタイプのデータベースアーキテクチャの性能利点を提供することができる単一のデータベースシステムを提供することが望ましい。しかしながら、典型的には、これらの2つのタイプのアーキテクチャは互いに対し排他的である。
発明の要約
データベースまたはその一部がオーナーシップグループにパーティション化されるデータベースシステムが提供される。各オーナーシップグループは、オーナーシップグループのオーナーとして1つ以上のデータベースサーバを割当てられる。オーナーシップグループのオーナーとして割当てられるデータベースサーバは、オーナーシップグループに属するすべてのデータ項目のオーナーとして扱われる。すなわち、これらはオーナーシップグループ内のデータ項目への直接アクセスを許可される一方、他のデータベースサーバはそれらのデータ項目への直接アクセスを許可されない。
この発明の一局面に従うと、データベースを記憶する1つ以上の永続的記憶装置と、複数のノードで実行する複数のデータベースサーバとを含むデータベースシステムが提供される。各ノードは、永続的記憶装置に直接アクセスする。データベースの少なくとも一部が複数のオーナーシップグループにパーティション化される。各オーナーシップグループは、オーナー組を割当てられる。オーナーシップグループのオーナー組のメンバーであるデータベースサーバで実行するプロセスのみが、オーナーシップグループ内のデータへの直接アクセスを許可される。
各オーナーシップグループは、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定される。各シェアードナッシングオーナーシップグループはデータベースサーバの中からオーナーを割当てられる。各シェアードナッシングオーナーシップグループのオーナーのみが、シェアードナッシングオーナーシップグループ内のデータへの直接アクセスを許可される。各データベースサーバは、シェアードディスクオーナーシップグループとして指定されるオーナーシップグループ内のデータへの直接アクセスを許可される。
この発明を、限定のためではなく例示のために、同様の参照符号が同様の要素を指す添付の図面の図に示す。
好ましい実施例の詳細な説明
データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベ
ースのオーナーシップのパーティション化に対するアプローチを説明する。以下の説明において、説明のために、この発明の十分な理解をもたらすためにさまざまな特定の細部が記述される。しかしながら、当業者においてはこの発明をこれらの特定の細部なしに実行し得ることが明らかである。他の場合においては、この発明を不必要にわかりにくくすることを避けるために、周知の構造および装置はブロック図形式で示される。
ハードウェア概要
図1は、この発明を実現し得る実施例のコンピュータシステム100を示すブロック図である。コンピュータシステム100は、情報を通信するためのバス102または他の通信機構と、バス102に結合されて情報を処理するプロセッサ104とを含む。コンピュータシステム100はまた、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置のようなメインメモリ106を含み、該メインメモリ106はバス102に結合されて、情報およびプロセッサ104によって実行されるべき命令を記憶する。メインメモリ106はまた、プロセッサ104によって実行されるべき命令の実行の間の一時的変数または他の中間情報を記憶するためにも用い得る。コンピュータシステム100はさらに、読出専用メモリ(ROM)108または他のスタティック記憶装置を含み、該読出専用メモリ(ROM)108はバス102に結合されて、静的情報およびプロセッサ104に対する命令を記憶する。磁気ディスクまたは光学ディスクのような記憶装置110が設けられるが、これはバス102に結合されて情報および命令を記憶する。
コンピュータシステム100は、バス102を介して陰極線管(CRT)のようなディスプレイ112に結合されて、コンピュータユーザに情報を表示する。英数字キーおよび他のキーを含む入力装置114がバス102に結合されて、プロセッサ104に対して情報およびコマンド選択を通信する。他の種類のユーザ入力装置はマウス、トラックボール、またはカーソル方向キーのようなカーソル制御116であって、プロセッサ104に対して方向情報およびコマンド選択を通信し、かつディスプレイ112におけるカーソル移動を制御する。この入力装置は典型的には、装置が平面における位置を指定することを可能にする第1の軸(たとえばx)および第2の軸(たとえばy)の2軸における2自由度を有する。
この発明は、ハイブリッドシェアードディスク/シェアードナッシングデータベースシステムを提供するためのコンピュータシステム100の使用に関する。この発明の一実施例に従うと、そのようなデータベースシステムは、メインメモリ106に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ104に応答して、コンピュータシステム100によって提供される。そのような命令は、記憶装置110のような別のコンピュータ読取可能な記録媒体からメインメモリ106に読出される。メインメモリ106に含まれる命令のシーケンスの実行は、プロセッサ104にここに記載されるプロセスステップを行なわせる。代替的な実施例においては、発明を実現するためにソフトウェア命令の代わりに、またはこれとともにハードワイヤード回路が用いられる。こうして、この発明の実施例はハードウェア回路およびソフトウェアのどのような特定の組合せにも限定されない。
ここで用いられる「コンピュータ読取可能な記録媒体」という用語は、実行のためにプロセッサ104に命令を提供することに関わるどのような媒体をも指す。そのような媒体は、これらに限定されるものではないが、不揮発性媒体、揮発性媒体、および送信媒体を含む多くの形態をとり得る。不揮発性媒体はたとえば、記憶装置110のような光学または磁気ディスクを含む。揮発性媒体はメインメモリ106のようなダイナミックメモリを含む。送信媒体は、バス102を構成するワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。送信媒体は、無線波および赤外線データ通信の間に生成されるもののような、音波または光波の形態をもとり得る。
コンピュータ読取可能な記録媒体の一般的な形態は、たとえばフロッピー(R)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他のいかなる磁気媒体、CD−ROM、他のいかなる光学媒体、パンチカード、紙テープ、穴パターンを有する他のいかなる物理的媒体、RAM、PROM、およびEPROM、フラッシュ−EPROM、他のいかなるメモリチップまたはカートリッジ、以下に説明する搬送波、またはコンピュータが読出すことができる他のいかなる媒体をも含む。
さまざまな形態のコンピュータ読取可能な記録媒体が、実行のためにプロセッサ104に1つ以上の命令の1つ以上のシーケンスを記録することに関わる。たとえば、命令は初期にはリモートコンピュータの磁気ディスクで記録され得る。リモートコンピュータは命令をそのダイナミックメモリにロードし、モデムを用いて電話線を介して命令を送信する。コンピュータシステム100にとってローカルであるモデムは、電話線上のデータを受けることができ、赤外線送信機を用いてデータを赤外線信号に変換する。赤外線検出器は赤外線信号で記録されるデータを受けることができ、適切な回路がデータをバス102に入れることができる。バス102は、データをメインメモリ106に記録し、ここからプロセッサ104が命令を検索して実行する。メインメモリ106によって受けられた命令は、プロセッサ104による実行の前または後に任意で記憶装置110に記憶される。
コンピュータシステム100はまた、バス102に結合される通信インターフェイス118をも含む。通信インターフェイス118は、ローカルネットワーク122に結合されるネットワークリンク120に結合される2方向データ通信を提供する。たとえば、通信インターフェイス118は対応の種類の電話線にデータ通信接続を提供するための統合サービスデジタル網(ISDN)カードまたはモデムであり得る。別の例としては、通信インターフェイス118は互換性のあるLANに対するデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであり得る。ワイヤレスリンクもまた実現され得る。そのような実現例のいずれにおいても、通信インターフェイス118はさまざまな種類の情報を表わすデジタルデータストリームを記録する電気的、電磁的または光信号を送受信する。
ネットワークリンク120は典型的には、1つ以上のネットワークを介して他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンク120は、ローカルネットワーク122を介する、ホストコンピュータ124へのまたはインターネットサービスプロバイダ(ISP)126によって動作されるデータ装置への接続を提供し得る。ISP126は、現在一般的に「インターネット」128と呼ばれるワールドワイドパケットデータ通信ネットワークを介するデータ通信サービスを提供する。ローカルネットワーク122およびインターネット128は両方とも、デジタルデータストリームを記録する電気的、電磁的または光信号を用いる。デジタルデータをコンピュータシステム100に送受信する、さまざまなネットワークを通る信号、および通信インターフェイス118を通るネットワーク120上の信号は、情報を伝送する搬送波の例示的な形態である。
コンピュータシステム100は、ネットワーク、ネットワークリンク120および通信インターフェイス118を介してメッセージを送り、かつプログラムコードを含むデータを受けることができる。インターネットの例においては、サーバ130がインターネット128、ISP126、ローカルネットワーク122および通信インターフェイス118を介して、アプリケーションプログラムのための要求されたコードを送信し得る。この発明に従うと、そのようなダウンロードされるアプリケーションの1つは、ここに説明されるハイブリッドシェアードディスク/シェアードナッシングデータベースシステムを提供する。
受信されるコードは、受信されるとプロセッサ104によって実行され、および/または後で実行するために記憶装置110に、または他の不揮発性記憶装置に記憶される。この態様で、コンピュータシステム100は搬送波の形態でアプリケーションコードを得ることができる。
ここに説明される、データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化に対するアプローチは、すべてのノードからすべてのディスクに対するシェアードディスクアクセスが提供されるコンピュータシステム、すなわち厳密なシェアードディスクアクセスに対して用い得るシステムで実現されるが、この発明の一局面に従うと、いくつかの「シェアードナッシング」ディスクデータに対するアクセスは、ソフトウェアによって規制される。
オーナーシップグループ
この発明の実施例に従うと、データベース(またはその一部)がオーナーシップグループにパーティション化される。各オーナーシップグループは、オーナーシップグループのオーナーとして1つ以上のデータベースサーバを割当てられる。オーナーシップグループのオーナーとして割当てられるデータベースサーバは、オーナーシップグループに属するすべてのデータ項目のオーナーとして扱われる。すなわち、これらはオーナーシップグループ内のデータ項目への直接アクセスを許可される一方、他のデータベースサーバはこれらのデータ項目への直接アクセスを許可されない。
一実施例に従うと、ともに頻繁にアクセスされるデータ項目は、同じオーナーシップグループにグループ化され、こうしてこれらが同じデータベースサーバによって所有されることを確実にする。オーナーシップグループは、関連するデータ項目のグループを不可分な単位(atomic unit)として扱うことにより、関連するデータ項目のグループに対する動作を可能にする。たとえば、オーナーシップグループのオーナーシップを第1のデータベースサーバから第2のデータベースサーバに転送することにより、オーナーシップグループ内のすべてのデータ項目のオーナーシップを第1のデータベースサーバから第2のデータベースサーバへ転送することができる。
ハイブリッドデータベースシステム
図2は、この発明の実施例に従ったハイブリッドデータベースシステムアーキテクチャを示すブロック図である。図2は3つのノード202、204および206を含み、その上には実行する3つのデータベースサーバ208、210、および212がそれぞれ存在する。データベースサーバ208、210および212はそれぞれバッファキャッシュ220、222および224と関連づけられる。各ノード202、204および206は、データベースサーバ208、210および212が2つのディスク214および216上に存在するデータベース250内のデータに直接アクセスできるようにするシステムバス218に接続される。
ディスク214および216に含まれるデータは、オーナーシップグループ230、232、234および236に論理的にパーティション化される。この発明の実施例に従うと、各オーナーシップグループは1つ以上のテーブルスペースを含む。テーブルスペースは1つ以上のデータファイルの集まりである。しかしながら、この発明はパーティション化のどのような特定の細分性にも限定されず、かつより大きなまたはより小さな範囲のオーナーシップグループで用いることが可能である。
一実施例に従うと、各オーナーシップグループはシェアードディスクオーナーシップグループまたはシェアードナッシングオーナーシップグループとして指定される。シェアードナッシングオーナーシップグループとして指定された各オーナーシップグループは、そ
のオーナーとして利用可能なデータベースサーバの1つを割当てられる。図2に示すシステムにおいては、オーナーシップグループ230はサーバ210によって所有されるシェアードナッシングオーナーシップグループであり、オーナーシップグループ232はシェアードディスクオーナーシップグループであり、オーナーシップグループ234はサーバ212によって所有されるシェアードナッシングオーナーシップグループであり、オーナーシップグループ236はサーバ208によって所有されるシェアードナッシングオーナーシップグループである。
オーナーシップグループ230はサーバ210によって所有されるシェアードナッシングオーナーシップグループであるため、サーバ210のみがオーナーシップグループ230内のデータ(D1)に直接アクセスすることを許可される。オーナーシップグループ230内のデータにアクセスすることを所望する他のどのサーバも、通常はサーバ210にメッセージ要求を送り、要求するサーバの代理としてサーバ210が所望のデータアクセスを行なうことを要求しなくてはならない。同様に、オーナーシップグループ234および236もまたシェアードナッシングオーナーシップグループであり、それぞれのオーナーによってのみ直接アクセスされ得る。
オーナーシップグループ232はシェアードディスクオーナーシップグループであるため、どのようなデータベースサーバもその中に含まれるデータ組に直接アクセスすることが可能である。図2に示されるように、各データベースサーバはそのバッファキャッシュ内にこのデータ(D2)のコピーを含み得る。分散ロックマネージャはシェアードデータへのアクセスを調整するように用いられる。
一実施例に従うと、データベースシステムは特定のオーナーシップグループをシェアードディスクからシェアードナッシングへ、およびその逆に、ダイナミックに変更するための機構を含む。たとえば、もし特定の組のシェアードナッシングデータが頻繁な読出アクセス(読出ホットスポット)の対象となっていれば、これが属するオーナーシップグループをシェアードナッシングからシェアードディスクに変換することにより、シェアードディスクに変換され得る。同様に、もし特定の組のシェアードディスクデータがしばしば書込アクセス(書込ホットスポット)の対象となっていれば、このデータを含むオーナーシップグループをシェアードナッシングオーナーシップに変更し、オーナーシップグループのオーナーシップをデータベースサーバに割当てることにより、このデータをシェアードナッシングデータに変換することが可能である。
この発明の一局面に従うと、データベースシステムはまたシェアードナッシングオーナーシップグループのオーナーシップを1つのノードから別のノードに再割当てするための機構を含む。これは、負荷平衡を向上させるためにオペレータによって要求されるか、またはノードN1が障害を起こした後で、ノードN1によって所有されるシェアードナッシングオーナーシップグループのデータへのアクセスをサポートし続けるために自動的に生じ得る。
オーナーシップ
上述のように、いくつかのオーナーシップグループがシェアードナッシングオーナーシップグループとして指定され、いくつかのオーナーシップグループがシェアードディスクオーナーシップグループとして指定される、データベースシステムが提供される。シェアードナッシングオーナーシップグループごとにオーナーが割当てられる。シェアードナッシングオーナーシップグループのオーナーシップは、そのオーナーシップグループ内のデータに対して作業が実行されることをデータベースサーバが要求する場合に、データベースサーバがオーナーシップグループのオーナーに要求を送ることができるように、すべてのデータベースサーバに対して通知される。
この発明の一実施例に従うと、さまざまなオーナーシップグループについてのオーナーシップ情報が制御ファイル内で維持され、データベースにアクセスするすべてのデータベースサーバが制御ファイルにアクセスすることを許可される。各データベースサーバは、そのキャッシュ内に制御ファイルのコピーを記憶し得る。データベースサーバはキャッシュ内の制御ファイルのコピーにより、オーナーシップ情報をディスクから読出すことに関わるオーバーヘッドを常に引起こすことなく、オーナーシップグループのオーナーシップを判断し得る。
図3は、シェアードディスクおよびシェアードナッシングオーナーシップグループの両方を採用するシステムにおいてデータを所望するデータベースサーバによって行なわれるステップを示すフローチャートである。ステップ300において、データベースサーバは所望のデータが属するオーナーシップグループを判断する。ステップ302において、データベースサーバは所望のデータを含むオーナーシップグループのオーナーを判断する。上述のように、ステップ302は制御ファイルにアクセスすることによって行なわれ、そのコピーはデータベースサーバに付随するキャッシュに記憶され得る。もしオーナーシップグループがシェアードディスクオーナーシップグループであれば、すべてのデータベースサーバがオーナーシップグループのオーナーであると考えられる。もしオーナーシップグループがシェアードナッシングオーナーシップグループであれば、特定のデータベースサーバがオーナーシップグループのオーナーとして制御ファイル内で特定される。
ステップ304において、データベースサーバはこれが所望のデータを保持するオーナーシップグループのオーナーであるか否かを判断する。データベースサーバは、(1)オーナーシップグループはシェアードディスクオーナーシップグループである、または(2)オーナーシップグループはシェアードナッシングオーナーシップであって、かつデータベースサーバが制御ファイルにおいてシェアードナッシングオーナーシップグループのオーナーとして指定されている、のいずれかであれば、オーナーシップグループのオーナーである。もしデータベースサーバが、所望のデータを保持するオーナーシップグループのオーナーであれば、制御はステップ310に進み、ここでデータベースサーバは直接所望のデータを検索する。
もしデータベースサーバがそのデータを保持するオーナーシップグループのオーナーでなければ、制御はステップ306に進む。ステップ306において、データベースサーバはオーナーシップグループのオーナーに対して、要求側の代理として所望のデータにアクセスするよう、要求を送る。ステップ308において、データベースサーバはオーナーシップグループのオーナーから所望のデータを受取る。
オーナー組
代替的な実施例に従うと、オーナーシップグループは(1)1つのデータベースサーバのみによって所有される(シェアードナッシング)、または(2)すべてのデータベースサーバによって所有される(シェアードディスク)、のいずれかに限定されない。そうではなく、オーナーシップグループは代替的に、利用可能なデータベースサーバのどのような特定のサブセットによっても所有され得る。特定のオーナーシップグループを所有するデータベースサーバの組は、ここでオーナーシップグループに対するオーナー組と称する。こうして、シェアードナッシングオーナーシップグループは、そのオーナー組の中に1つのデータベースサーバのみを含むオーナーシップグループと等価である一方、シェアードディスクオーナーシップグループは、すべての利用可能なデータベースをそのオーナー組に含むオーナーシップグループと等価である。
オーナー組がオーナーシップグループ内のデータに対して作業を行なうために用いられ
る場合、オーナーシップグループのオーナー組に属さないデータベースサーバは、オーナーシップグループのオーナー組に属するデータベースサーバの1つに対して要求を送る。要求に応答して、要求の受信側はオーナーシップグループ内のデータに直接アクセスし、要求された作業を行なう。オーナーシップグループ内の書込ホットスポットによって引起こされるコンテンションは、オーナーシップグループのオーナー組に属するデータベースサーバ間でのみ生じる。
オーナーシップグループのオーナーシップの変更
上述のように、オーナーシップグループをシェアードナッシングからシェアードディスクに変更する、またはシェアードディスクからシェアードナッシングに変更することが望ましい可能性がある。そのような変更は、読出または書込ホットスポットの検出に応答して自動的に、または手動で(たとえばデータベース管理者によって発行されるコマンドに応答して)開始される。
オーナーシップグループを一方のオーナー組(「ソースオーナー組」)から他方のもの(「デスティネーションオーナー組」)に遷移させるために、さまざまな技術が用いられる。図4は、発明の実施例に従ったオーナーシップグループのオーナー組を変更するために行なわれるステップを示すフローチャートである。
図4を参照して、ステップ400において「変更禁止(disable change)」メッセージが利用可能なデータベースサーバのすべてに対して同報送信される。変更禁止メッセージは、オーナー組が変更される予定のオーナーシップグループ内のデータ(「遷移するオーナーシップグループ」)に対する順方向変更を中止するように、データベースサーバに命令する。順方向変更は、以前には存在しなかったバージョンを生成する変更である(すなわち、データ項目の新しい「現在の」バージョンを生成する)。これに対し、逆方向変更は、データ項目の以前に存在したバージョンの再生成をもたらす変更である。
ステップ402において、データベースシステムの、オーナーシップグループのオーナー組を変更する役割を果たす部分(「オーナー変更機構」)は、遷移するオーナーシップグループに変更を行なったすべてのトランザクションが完遂するかまたはロールバックするまで待機する。
ステップ400の前に遷移するオーナーシップグループ内のデータに対して、すべてではないがいくらかの更新を行なったトランザクションは、オーナーシップグループに対する順方向変更がもはや許可されないのでロールバックする。ステップ400は遷移するオーナーシップグループへの順方向変更のみを阻止するので、データベースサーバは遷移するオーナーシップグループに対して既に行なった変更をロールバックすることを妨げられない。
不都合なことに、どのトランザクションがトランザクションオーナーシップグループを更新したかを判断するために相当の量のオーバーヘッドが要求され得る。したがって、データベースシステムが遷移するオーナーシップグループ内のデータを更新したトランザクションのトラッキングを試みない、この発明の実施例が提供される。しかしながら、この情報をトラッキングしないと、遷移するオーナーシップグループにおけるデータへのアクセスを許可され、かつステップ400以前に開始したトランザクションのいずれもが、遷移するオーナーシップグループにおけるデータに対する変更を行ない得たことが想定される。
この想定に基づいて、ステップ402は、(1)遷移するオーナーシップグループにおけるデータにアクセスした可能性があり、かつ(2)ステップ400の前に開始した、ト
ランザクションのすべてが完遂するかまたはロールバックするまで、待機するようオーナー変更機構に要求する。典型的には、遷移するオーナーシップグループのソースオーナー組に属するデータベースサーバ内で実行するトランザクションのみが、遷移するオーナーシップグループにおけるデータにアクセスした可能性がある。こうして、もし遷移するオーナーシップグループがシェアードディスクであれば、ステップ400以前に開始したすべてのデータサーバ内におけるすべてのトランザクションが完遂またはロールバックするまで、オーナー変更機構は待機しなければならない。もし遷移するオーナーシップグループがシェアードナッシングであれば、遷移するオーナーシップグループを所有するデータベースサーバにおけるすべてのトランザクションが完遂するかまたはロールバックするまで、オーナー変更機構は待機しなければならない。これは、他のノードにおいて生じ、かつ遷移するオーナーシップグループに対してローカルであるサブトランザクションを生成した可能性のあるユーザトランザクションを含むことに留意されたい。
遷移するオーナーシップグループ内のデータを更新した可能性のあるすべてのトランザクションが完遂するかまたは打切られれば、制御はステップ404に進む。ステップ404において、オーナー変更機構は、制御ファイルを不可分な動作(atomic operation)において更新することにより、遷移するオーナーシップグループのオーナー組を変更する。たとえば、指定の変更は、遷移するオーナーシップグループをシェアードナッシングオーナーシップグループからシェアードディスクオーナーシップグループに、またはその逆に遷移させる。これに代えて、指定の変更は、オーナーシップグループタイプを変更することなく、単にシェアードナッシングオーナーシップグループを所有するデータベースサーバを変更し得る。
制御ファイルが遷移するオーナーシップグループの新しいオーナー組を反映するよう変更されると、制御はステップ406に進む。ステップ406において、「リフレッシュキャッシュ」メッセージがすべての利用可能であるデータベースサーバに送られる。リフレッシュキャッシュメッセージを受取ると、各データベースサーバはそのキャッシュ内に含まれる制御ファイルのコピーを無効化する。したがって、データベースサーバは次いでオーナーシップグループのオーナーシップを判断するために制御ファイルを調べる必要がある場合に、それらは永続的記憶装置から制御ファイルの更新されたバージョンを検索する。こうして、これらは遷移するオーナーシップグループの新しいオーナー組を認識する。
オーナーシップ変更に対する調整
特定の問合せが頻繁に用いられる予定の場合、問合せは典型的にはデータベース内に記憶される。ほとんどのデータベースシステムは、記憶された問合せが用いられるたびにクエリ実行計画を再計算するのではなく、記憶された問合せが最初にデータベースシステムに提出された時点で、記憶された問合せに対するクエリ実行計画を生成する。クエリ実行計画は、問合せによってアクセスされるデータを含むオーナーシップグループのオーナーシップを考慮に入れなければならない。たとえば、もし問合せが特定のデータベースサーバによって排他的に所有されるオーナーシップグループにおけるデータ項目に対する更新を特定すれば、クエリ実行計画はその特定のデータベースサーバに更新動作を転送することを含まなければならない。
しかしながら、上述のように、オーナーシップグループのオーナーシップを変更するための機構が提供される。そのようなオーナーシップ変更は、特定の記憶される問合せに対するクエリ実行計画が生成された後に生じ得る。したがってクエリ実行計画は、あるデータベースサーバに対して、このデータベースサーバがもはや所有していないオーナーシップグループ内のデータに対する動作を行なうことを、要求し得る。この発明の一実施例に従うと、所有しないオーナーシップグループ内のデータに対して動作を行なうよう要求されたデータベースサーバは、動作を要求したプロセスに対して「オーナーシップエラー」メッセージを返す。オーナーシップエラーメッセージの受信に応答して、エラーを引き起こした問合せに対して新しいクエリ実行計画が生成される。新しいクエリ実行計画は、制御ファイルの現在のバージョンによって示されるように、オーナーシップグループの現在のオーナーシップを考慮に入れる。
制御ファイル管理
上述のように、制御ファイルを更新するために不可分な操作が用いられて、オーナーシップグループの指定を変更する(ステップ404)。この動作が不可分であることを確実にするために、さまざまな機構を用い得る。たとえば、この発明の一実施例に従うと、制御ファイルは図5に示されるようにビットマップと一連のブロック対とを含む。ビットマップ512における各ビットは、ブロック対に対応する。
所与の時点で、ブロック対における1つのブロックのみが現在のデータを含む。ブロック対に付随するビットの値は、対応のブロック対の2つのブロックのうちどちらが現在のデータを保持するかを示す。たとえば、ビット502は、ブロック506および508を含むブロック対504に付随する。ビット502の値(たとえば「0」)は、ブロック506がブロック対504内の現在のブロックであることを示す。ビット502の値は「1」に変更されて、ブロック508内のデータが現在のものであることを(かつ、したがってブロック506内のデータがもはや有効ではないことを)示し得る。
ブロック対の現在のものではないブロックにおけるデータが無効であると考慮されることから、制御ファイルの有効内容を変更することなくデータは現在のものではないブロックに書込まれる。制御ファイルの内容は、ビットマップ512内のビットの値が変更された場合にのみ有効に変更される。こうして、不可分な変更への予備的なステップとして、ブロック対504内の現在のブロック506の内容は、メモリにロードされ、修正され、ブロック対504内の現在のものではないブロック508に記憶され得る。これらの予備的なステップが行なわれた後で、変更は、ブロック対504に対応するビットマップ512内のビット502の値を変更することにより不可分に行なわれる。
これは、変更を不可分に行なうための技術の一例にすぎない。他の技術もまた可能である。こうして、この発明は不可分に変更を行なうためのどのような特定の技術にも限定されない。
オーナーシップグループ間でのデータ項目の移動
テーブルスペースのようなデータ項目のオーナーシップを変更する1つの方法は、データ項目が属するオーナーシップグループのオーナー組を変更することである。データ項目のオーナーシップを変更するための第2の方法とは、データ項目を異なったオーナーシップグループに再割当てすることである。たとえば、テーブルスペースAをサーバAに割当てられたオーナーシップグループから取除き、これをサーバBに割当てられたオーナーシップグループに入れることにより、テーブルスペースAのオーナーをサーバAからサーバBに変更することができる。
この発明の一実施例に従うと、オーナーシップグループのメンバーシップはデータベース内のデータ辞書に維持される。したがって、データ項目を第1のオーナーシップグループから第2のオーナーシップグループに移動するためには、第1および第2のオーナーシップグループの両方についてのメンバーシップ情報がデータ辞書内で更新されなければならない。どのオーナーシップグループにデータ項目が属するかを変更することに関わるさまざまなステップは、上述のオーナーシップグループのオーナー組を変更することと同様である。特定的には、転送されるテーブルスペース(遷移するテーブルスペース)へのアクセスはディスエーブルされる。するとオーナーシップ変更機構は、データ項目(または
そのコンポーネント)に対するロックを保持するすべてのトランザクションがロールバックまたは完遂するまで待機する。
データ項目に対するロックを保持するすべてのトランザクションが完遂するかまたはロールバックすると、データ辞書が修正されて、データ項目の新しいオーナーシップグループを示す。次いで制御ファイルが修正されて、データ項目の移動先のオーナーシップグループのオーナー組が今やデータ項目のオーナー組であることを示す。この変更は、データ項目へターゲットオーナーがアクセスすることを不可分に可能にする。もしオーナーシップグループがオーナーシップ変更の途中であれば、制御ファイルは更新されてデータ項目が「移動遅延」状態にあることを示す。
データ項目が属するオーナーシップグループの変更は、データ項目のオーナーを変更させるか、または変更させない。もしソースオーナーシップグループのオーナー組が遷移するオーナーシップグループのオーナー組と同じであれば、データ項目のオーナーはデータ項目がソースオーナーシップグループから遷移するオーナーシップグループに移動された場合にも変更しない。しかしながら、もしソースオーナーシップグループのオーナー組が遷移するオーナーシップグループのオーナー組と同じでなければ、データ項目のオーナーは、データ項目がソースオーナーシップグループから遷移するオーナーシップグループに移動された場合に変更する。
特定のオーナーシップ変更条件
一実施例に従うと、(1)オーナーシップグループのオーナー組を変更する試みがなされるが、そのオーナーシップグループに属するデータ項目は異なったオーナーシップグループへの転送の途中である、および(2)データ項目を異なったオーナーシップグループに転送される試みがなされるが、デスティネーションオーナーシップグループはそのオーナー組を変更している途中である、という状況に対処するための技術が提供される。
これらの条件を検出するために、この発明の実施例は、オーナーシップグループに属するデータ項目(たとえばテーブルスペース)ごとに1つ以上のステータスフラグを制御ファイル内において提供する。たとえば、フラグはデータ項目が属するオーナーシップグループが新しいオーナーを割当てるプロセスにあるかどうかを示すために用いることができる。同様に、フラグはデータ項目が異なったオーナーシップグループに転送されるプロセスにあるかどうかを示し得る。
オーナーシップグループのオーナー組を変更するための試みがなされると、オーナーシップ変更機構はオーナーシップグループに属するデータ項目のステータスフラグを調べて、オーナーシップグループに属するいずれかのデータ項目が異なったオーナーシップグループに転送される途中であるかどうかを判断する。もしオーナーシップグループに属するいずれかのデータ項目が異なったオーナーシップグループへ転送される途中であると、オーナーシップグループのオーナー組を変更するための試みは打切られる。もしいずれのオーナーシップグループに属するデータ項目も異なったオーナーシップグループに転送される途中でなければ、オーナーシップグループに属するデータ項目のステータスフラグがセットされて、データ項目が属するオーナーシップグループのオーナーシップが遷移していることを示す。さまざまなデータベースサーバには、それらの制御ファイルのキャッシュしたバージョンを無効化するためのメッセージも送られる。これは、これらがステータスフラグの新しい値を参照することを確実にする。
データ項目を異なったオーナーシップグループに転送する試みがなされる場合に、データ項目のステータスフラグがチェックされて、デスティネーションオーナーシップグループがそのオーナー組を変更されている最中であるかどうかを判断する。一実施例に従うと
、このチェックはデータ項目の新しいオーナーシップグループを反映するようにデータ辞書を修正した後であるが、新しいオーナーシップグループのオーナーにデータ項目へのアクセスを与えるように制御ファイルを更新する前に行なわれる。もしデータ項目が属するオーナーシップグループがそのオーナー組を変更されている途中であれば、制御ファイルにおけるそのデータ項目に対するステータスフラグがセットされて「移動遅延」条件を示す。さらに、データベース広さ(database-wide)の「移動遅延」フラグがセットされて、データベースが移動遅延状態にあるいくらかのデータ項目を含むことを示す。
遷移するオーナーシップグループのオーナーシップを転送する動作が完了すると、転送を行なうプロセスはステータスフラグを更新して、オーナーシップグループがオーナーシップ転送のプロセスにはもはやないことを示す。さらに、プロセスはこのオーナーシップグループのオーナーシップ転送の間にこのオーナーシップグループに移動したいかなるデータ項目の「移動遅延」フラグをもクリアする。
障害回復
オーナーシップ変更の進行途中で、障害が起こり得る。障害は「プロセス不能(process death)」または「サーバ不能(server death)」の結果であり得る。プロセス不能は、オーナーシップ変更に関わる特定のプロセスに障害が起こった場合に生じる。サーバ不能は、すべてのデータベースサーバに障害が起こった場合に生じる。これらの両方の障害タイプが生じると、永続的記憶装置にまだ記憶されていなかったすべての変更は失われ得る。そのような障害の後では、データベースを矛盾のない状態に戻すことが必要である。
この発明の一実施例に従うと、プロセス不能からの回復はステートオブジェクトを用いて行なわれる。ステートオブジェクトは、プロセスが属するデータベースサーバに付随するメモリ領域に割当てられるデータ構造である。動作を行なう前に、プロセスはステートオブジェクトを更新して、行なおうとしている動作を示す。もしプロセスが不能になれば、データベースサーバ内の別のプロセス(たとえば「プロセスモニタ」)がステートオブジェクトの方法(「クリーンアップルーチン」)を呼出してデータベースを矛盾のない状態に戻す。
プロセス障害の後にクリーンアップのために行なわれる特定の動作は、不能になったプロセスが何の動作をしていたか、かつ不能になる前に不能になったプロセスがどれぐらい実行していたかに依存する。一実施例に従うと、オーナーシップグループのオーナーシップ変更の間のプロセス障害は以下のように扱われる。
もしオーナーシップ変更を行なうプロセスが最後の制御ファイル変更を行なう前に不能になっていれば、オーナーシップグループのオーナーとしてオリジナルのオーナーが復元される。
もしオーナーシップ変更を行なうプロセスが最終の制御ファイル変更を行なった後であるが、ステートオブジェクトを削除する前に不能になっていれば、新しいオーナーがオーナーとしてとどまり、ステートオブジェクトは削除される。
1つのオーナーシップグループから別のものへデータ項目を転送する間に生じるプロセス障害は以下のように扱われる。
もし転送を行なうプロセスがデータ辞書に対する変更を行なう前に不能になっていれば、データ項目のオリジナルのオーナーがデータ項目のオーナーとして復元される。
もし転送を行なうプロセスが辞書に対する変更が行なわれた後であるが、最終的な制御
ファイル変更の前に生じていれば、プロセスモニタは移動を完了させ、かつ制御ファイルに対する適切な変更を行なう。もしオーナーシップグループがオーナーシップ変更の途中であれば、データ項目は「移動遅延」とマークされる。
もし転送を行なうプロセスが最終的な制御ファイル変更の後であるが、ステートオブジェクトが削除される前に不能になっていれば、プロセスモニタはステートオブジェクトを削除する。
サーバ不能
データベースサーバが不能になっている間には、不能になったサーバによって排他的に所有されていたオーナーシップグループにおけるデータへのアクセスは提供されない。したがって、この発明の一実施例に従うと、サーバ不能とは自動的なオーナーシップ変更を引起こす事象であり、障害を起こしたサーバによって排他的に所有されるすべてのオーナーシップグループは新しいオーナーに割当てられる。
サーバ障害の後でクリーンアップするために行なわれる特定の動作は、サーバが不能になる前にデータベースサーバが行なっていた動作が何であって、オーナーシップ転送動作がどの程度行なわれていたかに依存する。一実施例に従うと、オーナーシップグループのオーナーシップ変更の間のサーバ障害は以下のように扱われる。
もしソースデータベースサーバが最終的な制御ファイル変更が行なわれる前に不能になっていれば、オーナーシップグループは別のスレッドに割当てられ、制御ファイルにおけるステータス情報は更新されてオーナーシップグループがもはや遷移していないことを示す。
もしターゲットデータベースサーバが不能になれば、(1)遷移を行なうプロセスがそのインスタンスの不能を検出して遷移を打切るか、または(2)不能になったサーバの回復の間に、オーナーシップグループが不能になったサーバから別のサーバに再割当てされる。
データ項目を1つのオーナーシップグループから別のオーナーシップグループに転送する間に生じるサーバ障害は以下のように扱われる。
もしソースサーバが辞書変更の前に不能になっていれば、サーバの回復の間に、新しいオーナーがソースオーナーシップグループに割当てられ、データ項目の移動フラグがクリアされる。
もしソースサーバが辞書変更の後であるが最終的な制御ファイル変更の前に不能になっていれば、ソースサーバの回復の間に、正しいオーナーをデータ項目に割当てるか、またはこれを移動遅延としてマークするかによって移動動作が完了される。
もしターゲットサーバが不能になっており最終的な制御ファイル変更が行なわれていれば、データ項目は「移動遅延」としてマークされる。不能になったサーバの回復の間に、遷移するオーナーシップグループのオーナーシップは再割当てされ、移動遅延フラグはクリアされる。
オーナーシップ変更の間のダウンタイムの削減
上述のように、図4に示されるステップはオーナーシップグループのオーナーシップを変更するための1つの技術を示す。この技術において、ステップ402はオーナーシップ変更機構が、遷移するオーナーシップグループに属するデータに対して変更を行なったす
べてのトランザクションが完遂するかロールバックするまで待機することを要求する。この待機中には、遷移するオーナーシップグループ内のすべてのデータは利用不可能である。したがって、待機持続時間を最小限にすることが必要である。
上述のように、遷移するオーナーシップグループに属するデータに対してどのトランザクションが実際に変更を行なったかをトラッキングすることは実際的ではない可能性がある。したがって、オーナーシップ変更機構は、遷移するオーナーシップグループのソースオーナー組に属するすべてのデータベースサーバで実行するすべてのトランザクションが完遂またはロールバックするまで待機する。オーナーシップ変更機構が待機しなければならないトランザクションの数のために、そのトランザクションの多くは遷移するオーナーシップグループからのデータに対して変更を行なってさえいないかもしれないが、遅延は顕著になり得る。
代替的な実施例に従うと、オーナー間で遷移されるデータをこの遅延の間も利用可能にする機構が提供される。特定的には、すべてのデータベースサーバに対して変更禁止メッセージは送られない。そうではなく、すべてのデータベースサーバに対して「新しいオーナー」メッセージが送られて、オーナーシップグループのターゲットオーナー組を示す。新しいオーナーメッセージは、たとえば、制御ファイルを更新した後で、すべてのデータベースサーバにリフレッシュキャッシュメッセージを送ることにより同報送信して(1)ソースオーナー組、(2)ターゲットオーナー組、および(3)オーナーシップグループが遷移中であること、を示す。
新しいオーナーメッセージをサーバが受取った後に、そのサーバによって開始されたすべてのトランザクションは、ターゲットオーナー組がオーナーシップグループを所有するかのように行なわれる。新しいオーナーメッセージをサーバが受取る前に、そのサーバにおいて開始されたすべてのトランザクションは、ソースオーナー組がオーナーシップグループを所有するかのように実行され続ける。こうして、待機期間の間に、遷移するオーナーシップグループのオーナーシップは、ソースオーナー組のメンバーとターゲットオーナー組のメンバーとの間で有効に共有される。言い換えると、遷移するオーナーシップグループのデータは一時的に2つのデータベースサーバの間で共有され、シェアードディスクロック機構はそのようなデータに対するアクセスのために一時的に起動される。
新しいオーナーメッセージの同報送信の前に始まったソースオーナー組におけるすべてのトランザクションが完遂するかロールバックした場合に、制御ファイルは2回目に更新される。2回目の更新の間に、制御ファイルは更新されてターゲットオーナー組がオーナーシップグループに対する排他的なオーナー組であることを示し、オーナーシップグループがもはや遷移していないことを示す。
上述の明細書において、この発明はその特定の実施例を参照して説明された。しかしながら、この発明の広い精神および範囲から離れることなく、さまざまな修正および変更をなし得ることが明らかとなる。したがって、明細書と図面とは、限定的な意味ではなく例示的な意味で捉えられるべきである。
この発明の実施例を実現するコンピュータシステムのブロック図である。 この発明の実施例に従ったオーナーシップグループを用いる分散データベースシステムのブロック図である。 オーナーシップグループをサポートするシステムにおけるデータ項目に対する動作を行なうステップを示すフローチャートである。 この発明の実施例に従ったオーナーシップグループのオーナー組を変更するためのステップを示すフローチャートである。 この発明の実施例に従った不可分な変更を行なうための技術を示すブロック図である。

Claims (109)

  1. データベースシステムであって、
    複数のデータを有するデータベースを記憶する1つ以上の永続的記憶装置と、
    ネットワークを介して前記1つ以上の永続的記憶装置に接続された複数のデータベースサーバとを含み、前記複数のデータベースサーバの各々は、前記ネットワークのノードを構成しており、
    前記複数のデータベースサーバの各々は、前記1つ以上の永続的記憶装置へ直接アクセスし、
    前記データベースのうちの少なくとも一部は複数のパーティションに論理的に分割されており、
    前記複数のパーティションの各々は、関連するデータ項目からなるグループを含み、
    関連するデータ項目からなる各グループは、オーナーシップグループに属するものであり、
    前記オーナーシップグループへのアクセス権であるオーナーシップは、前記複数のデータベースサーバのうちの少なくとも一部のデータベースサーバに割り当てられており、オーナーシップが割り当てられた前記少なくとも一部のデータベースサーバは、オーナー組を構成し、
    前記複数のデータベースサーバのうちの第1のデータベースサーバは、1つの特定のオーナー組に割り当てられる1つの特定のオーナーシップグループ内のデータを含む動作を行なうリクエストを受け、
    前記第1のデータベースサーバが特定のオーナー組に含まれている場合には、前記第1のデータベースサーバで実行されるプロセスは、データを直接検索し、
    前記第1のデータベースサーバが特定のオーナー組に含まれていない場合には、前記第1のデータベースサーバで実行されるプロセスは、前記複数のデータベースサーバのうちの、特定のオーナー組に含まれている第2のデータベースサーバにデータを要求して検索し、前記第1のデータベースサーバは、前記第2のデータベースサーバからのデータを用いて、前記リクエストに応答する、データベースシステム。
  2. 複数のオーナーシップグループの各々は、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定され、
    前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割り当てられており、
    前記シェアードナッシングオーナーシップグループのオーナーシップは、前記複数のデータベースサーバのうちの1つのデータベースサーバに割当てられ、
    前記シェアードナッシングオーナーシップグループのオーナーシップに割当てられたデータベースサーバのみが、前記シェアードナッシングオーナーシップグループ内のデータへ直接アクセスすることを許可され、
    前記複数のデータベースサーバの各々は、前記シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへ直接アクセスすることを許可される、請求項1に記載のデータベースシステム。
  3. シェアードディスクオーナーシップグループの前記指定をシェアードナッシングオーナーシップグループに変更するための機構をさらに含む、請求項2に記載のデータベースシステム。
  4. 前記機構は、前記シェアードディスクオーナーシップグループは書込のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して、前記シェアードディスクオーナーシップグループの前記指定をシェアードナッシングオーナーシップグループに自動的に変更するよう構成される、請求項3に記載のデータベースシステム。
  5. シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するための機構をさらに含む、請求項2に記載のデータベースシステム。
  6. 前記シェアードナッシングオーナーシップグループは読出のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して、前記機構は、前記シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに自動的に変更するよう構成される、請求項5に記載のデータベースシステム。
  7. 前記機構は、シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するようさらに構成される、請求項3に記載のデータベースシステム。
  8. 前記シェアードナッシングオーナーシップグループは読出のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して、前記機構は、シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに自動的に変更するよう構成される、請求項7に記載のデータベースシステム。
  9. シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへのアクセスを管理するが、シェアードナッシングオーナーシップグループとして指定されたオーナーシップグループ内のデータへのアクセスを管理しないよう構成される、分散ロックマネージャをさらに含み、
    前記分散ロックマネージャは、シェアードディスクとして指定されたオーナーシップグループ内のデータへのアクセスを調整するように構成されている、請求項2に記載のデータベースシステム。
  10. ネットワークに接続された1つ以上の永続的記憶装置に記憶されるデータベースへのアクセスをコンピュータのプロセッサが管理するための方法であって、前記1つ以上の永続的記憶装置は、複数のデータベースサーバに直接アクセス可能であり、前記複数のデータベースサーバの各々は、前記ネットワークのノードであり、
    前記方法は、
    前記データベースのうちの少なくとも一部を複数のパーティションに論理的に分割するステップを含み、前記複数のパーティションの各々は、関連するデータからなるグループを含み、前記関連するデータからなるグループは、オーナーシップグループに属しており、
    前記オーナーシップグループへのアクセス権としてのオーナーシップを、前記複数のデータベースサーバの少なくとも一部に割当てるステップとを含み、前記割当てられたオーナーシップを有する前記少なくとも一部のデータベースサーバはオーナー組を構成し、
    前記オーナーシップを有する前記少なくとも一部のデータベースサーバで実行するプロセスのみに、前記オーナーシップグループ内のデータへ直接アクセスすることを許可するステップと、
    前記複数のデータベースサーバのうちの第1のデータベースサーバから、特定のオーナー組に割当てられた特定のオーナーシップグループ内のデータを含む処理を行なうリクエストを受けるステップと、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれている場合に、前記データを直接検索するプロセスを第1のデータベースサーバで実行するステップと、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれていない場合に、前記複数のデータベースサーバのうちの、前記特定のオーナー組に含まれている第2のデータベースサーバにデータを要求して検索するプロセスを、前記第1のデータベースサーバで実行し、かつ、前記第2のデータベースサーバからのデータを用いて、前記第1のデータベースサーバによって前記リクエストに応答するステップとを含む、方法。
  11. 前記オーナーシップを、前記複数のデータベースサーバの少なくとも一部に割当てるステップは、
    複数のオーナーシップグループの各々を、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定するステップと、
    前記シェアードナッシングオーナーシップグループのオーナーシップを、前記複数のデータベースサーバのうちの1つのデータベースサーバに割当てるステップと、
    各シェアードナッシングオーナーシップグループのオーナーシップを有する前記1つのデータベースサーバのみに、前記シェアードナッシングオーナーシップグループ内のデータへ直接アクセスすることを許可するステップと、
    前記複数のデータベースサーバの各々に、シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへ直接アクセスすることを許可するステップとを含み、
    前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割当てられるものである、請求項10に記載の方法。
  12. シェアードディスクオーナーシップグループの前記指定をシェアードナッシングオーナーシップグループに変更するステップをさらに含む、請求項11に記載の方法。
  13. 前記シェアードディスクオーナーシップグループの前記指定をシェアードナッシングオーナーシップグループに変更するステップは、前記シェアードディスクオーナーシップグループは書込のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して自動的に行なわれる、請求項12に記載の方法。
  14. シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップをさらに含む、請求項11に記載の方法。
  15. 前記シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップは、前記シェアードナッシングオーナーシップグループは読出のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して自動的に行なわれる、請求項14に記載の方法。
  16. シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップをさらに含む、請求項12に記載の方法。
  17. 前記シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップは、前記シェアードナッシングオーナーシップグループは読出のためのアクセスの頻度が予め規定された頻度よりも大きいデータを含むという判断に応答して自動的に行なわれる、請求項16に記載の方法。
  18. シェアードナッシングオーナーシップグループとして指定されたオーナーシップグループ内のデータへのアクセスではなく、シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへのアクセスを管理するための、分散ロックマネージャを用いるステップをさらに含み、
    前記分散ロックマネージャは、シェアードディスクとして指定されたオーナーシップグループ内のデータへのアクセスを調整するように構成されている、請求項11に記載の方法。
  19. ネットワークに接続された1つ以上の永続的な記憶装置に記憶されるデータベースへのアクセスを管理するための命令を記録するコンピュータ読取可能な記録媒体であって、前記命令はコンピュータのプロセッサによって実行され、前記1つ以上の永続的記憶装置は、複数のデータベースサーバに直接アクセス可能であり、前記複数のデータベースサーバの各々は、前記ネットワークのノードであり、前記命令は前記プロセッサに、
    前記データベースのうちの少なくとも一部を複数のパーティションに論理的に分割するステップを実行させ、前記複数のパーティションの各々は、関連するデータからなるグループを含み、前記関連するデータは、オーナーシップグループに属しており、
    前記オーナーシップグループへのアクセス権としてのオーナーシップを、前記複数のデータベースサーバの少なくとも一部に割当てるステップとを実行させ、前オーナーシップが割当てられた少なくとも一部のデータベースサーバは、オーナー組を構成し、
    前記命令は前記プロセッサに、
    前記オーナーシップを有する前記少なくとも一部のデータベースサーバにおいて実行するプロセスのみに前記オーナーシップグループ内のデータへ直接アクセスすることを許可するステップと、
    前記複数のデータベースサーバのうちの第1のデータベースサーバから、特定のオーナー組に割当てられた特定のオーナーシップグループ内のデータを含む処理を行なうリクエストを受けるステップと、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれている場合に、前記データを直接検索するプロセスを第1のデータベースサーバで実行するステップと、
    前記第1のデータベースサーバが特定のオーナー組に含まれていない場合に、前記複数のデータベースサーバのうちの、前記特定のオーナー組に含まれている第2のデータベースサーバにデータを要求して検索するプロセスを前記第1のデータベースサーバで実行し、かつ、前記第2のデータベースサーバからのデータを用いて、前記第1のデータベースサーバによって前記リクエストに応答するステップとを実行させる、コンピュータ読取可能な記録媒体。
  20. 前記オーナーシップを、前記複数のデータベースサーバの少なくとも一部に割当てる前記ステップは、
    複数のオーナーシップグループの各々を、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定するステップと、
    前記シェアードナッシングオーナーシップグループのオーナーシップを、前記複数のデータベースサーバのうちの1つのデータベースサーバに割当てるステップと、
    前記シェアードナッシングオーナーシップグループのオーナーシップを有する前記1つのデータベースサーバのみに、前記シェアードナッシングオーナーシップグループ内のデータへ直接アクセスすることを許可するステップと、
    前記複数のデータベースサーバの各々に、シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへ直接アクセスすることを許可するステップとを含み、
    前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割当てられるものである、請求項19に記載のコンピュータ読取可能な記録媒体。
  21. シェアードディスクオーナーシップグループの前記指定をシェアードナッシングオーナーシップグループに変更するステップを行なうための命令をさらに含む、請求項20に記載のコンピュータ読取可能な記録媒体。
  22. 前記シェアードディスクオーナーシップグループの前記指定をシェアードナッシングオーナーシップグループに変更するステップは、前記シェアードディスクオーナーシップグループは書込のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して自動的に行なわれる、請求項21に記載のコンピュータ読取可能な記録媒体。
  23. シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップを行なうための命令をさらに含む、請求項20に記載のコンピュータ読取可能な記録媒体。
  24. 前記シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップは、前記シェアードナッシングオーナーシップグループは読出のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して自動的に行なわれる、請求項23に記載のコンピュータ読取可能な記録媒体。
  25. シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップを行なうための命令をさらに含む、請求項21に記載のコンピュータ読取可能な記録媒体。
  26. 前記シェアードナッシングオーナーシップグループの前記指定をシェアードディスクオーナーシップグループに変更するステップは、前記シェアードナッシングオーナーシップグループは読出のためのアクセスの頻度が予め設定された頻度よりも大きいデータを含むという判断に応答して自動的に行なわれる、請求項25に記載のコンピュータ読取可能な記録媒体。
  27. シェアードナッシングオーナーシップグループとして指定されたオーナーシップグループ内のデータへのアクセスを除く、シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへのアクセスを管理するための分散ロックマネージャを用いるステップを行なうための命令をさらに含み、
    前記分散ロックマネージャは、シェアードディスクとして指定されたオーナーシップグループ内のデータへのアクセスを調整するように構成されている、請求項20に記載のコンピュータ読取可能な記録媒体。
  28. データベースシステムであって、
    データベースと、
    複数のデータベースサーバとを含み、
    前記複数のデータベースサーバの各データベースサーバは、前記データベースへ直接アクセスし、
    前記データベースのうちの少なくとも一部が複数のパーティションに論理的に分割されており、
    前記複数のパーティションの各々は、前記データベースにおいて関連するデータからなるグループを含み、
    関連するデータからなる前記グループは、オーナーシップグループに属するものであり、
    前記オーナーシップグループへのアクセス権であるオーナーシップは、前記複数のデータベースサーバのうちの少なくとも一部のデータベースサーバに割当てられており、前記オーナーシップが割当てられた前記少なくとも一部のデータベースサーバはオーナー組を構成し、
    前記オーナー組を構成する前記少なくとも一部のデータベースサーバで実行するプロセスは、前記オーナーシップグループ内のデータへ直接アクセスすることを許可され、
    前記複数のデータベースサーバのうちの第1のデータベースサーバは、1つの特定のオーナー組に割当てられる1つの特定のオーナーシップグループ内のデータを含む動作を行なうリクエストを受け、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれている場合には、前記第1のデータベースサーバで実行されるプロセスは、データを直接検索し、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれていない場合には、前記第1のデータベースサーバで実行されるプロセスは、前記複数のデータベースサーバのうちの、前記特定のオーナー組に含まれている第2のデータベースサーバにデータを要求して検索し、前記第1のデータベースサーバは、前記第2のデータベースサーバからのデータを用いて、前記リクエストに応答する、データベースシステム。
  29. 複数の前記オーナーシップの各々が、前記オーナー組に割当てられる、請求項28に記載のデータベースシステム。
  30. 前記オーナーシップが割当てられたオーナー組に含まれるデータベースサーバで実行するプロセスのみが、前記オーナーシップグループ内のデータへ直接アクセスすることを許可される、請求項28に記載のデータベースシステム。
  31. 複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループは1つ以上のテーブルスペースを含む、請求項28に記載のデータベースシステム。
  32. 前記1つ以上のテーブルスペースのうちの少なくとも1つのテーブルスペースはデータファイルの集まりである、請求項31に記載のデータベースシステム。
  33. 複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループが、シェアードナッシングオーナーシップグループとして指定され、
    少なくとも1つのシェアードナッシングオーナーシップグループのオーナーシップは、前記複数のデータベースサーバのうちの1つのデータベースサーバに割当てられるものであり、
    各シェアードナッシングオーナーシップグループのオーナーシップを有する1つのデータベースサーバのみが、前記シェアードナッシングオーナーシップグループ内のデータに直接アクセスすることを許可される、請求項28に記載のデータベースシステム。
  34. 複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループがシェアードディスクオーナーシップグループとして指定され、
    前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割り当てられるものであり、
    前記複数のデータベースサーバの各々が、シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへ直接アクセスすることを許可される、請求項28に記載のデータベースシステム。
  35. 複数のオーナーシップグループの各々が、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定され、
    前記シェアードナッシングオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの中から単一のデータベースサーバに割当てられ、
    前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割り当てられる、請求項28に記載のデータベースシステム。
  36. 複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループが、複数のタイプのオーナーシップグループの特定のタイプのオーナーシップグループとして指定される、請求項28に記載のデータベースシステム。
  37. 指定された、前記特定のタイプのオーナーシップグループを変更するための機構をさらに含む、請求項36に記載のデータベースシステム。
  38. 複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループが、前記複数のタイプのオーナーシップグループの第1のタイプのオーナーシップグループとして指定され、
    複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループが、前記複数のタイプのオーナーシップグループの第2のタイプのオーナーシップグループとして指定される、請求項36に記載のデータベースシステム。
  39. 前記第1のタイプのオーナーシップグループはシェアードナッシングオーナーシップグループであり、
    前記第2のタイプのオーナーシップグループはシェアードディスクオーナーシップグループであり、
    前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちのいずれかに割当てられたものであり、
    前記シェアードディスクオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバの全てに割り当てられたものである、請求項38に記載のデータベースシステム。
  40. 複数の前記オーナーシップグループの各オーナーシップグループは、前記シェアードナッシングオーナーシップグループまたは前記シェアードディスクオーナーシップグループのいずれかとして指定される、請求項39に記載のデータベースシステム。
  41. 前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記複数のデータベースサーバのうちの1つのデータベースサーバのみが、前記少なくとも1つのタイプのオーナーシップグループとして指定されたオーナーシップグループごとの前記オーナー組において許可される、請求項36に記載のデータベースシステム。
  42. 前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記複数のデータベースサーバのうちの各データベースサーバが、前記少なくとも1つのタイプのオーナーシップグループとして指定されたオーナーシップグループごとの前記オーナー組の中に含まれる、請求項36に記載のデータベースシステム。
  43. 前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記複数のデータベースサーバのうちの少なくとも2つであって、かつ、すべてのデータベースサーバよりも少ない数のデータベースサーバが、前記少なくとも1つのタイプのオーナーシップグループとして指定されたオーナーシップグループごとの前記オーナー組の中に含まれる、請求項36に記載のデータベースシステム。
  44. 複数のデータベースサーバによって直接アクセス可能であるデータベースへのアクセスを管理するための方法であって、前記方法は、コンピュータのプロセッサによって使用されるものであり、
    前記データベースのうちの少なくとも一部を複数のパーティションに論理的に分割するステップを含み、前記複数のパーティションの各々は、前記データベースにおいて関連するデータからなるグループを含み、関連するデータからなる前記グループは、オーナーシップグループに属するものであり、
    前記オーナーシップグループへのアクセス権であるオーナーシップを、前記複数のデータベースサーバのうちの少なくとも1つのデータベースサーバに割当てるステップとを含み、前記オーナーシップが割り当てられたデータベースサーバは、オーナー組を構成し、
    前記オーナー組に属するデータベースサーバで実行するプロセスに、各オーナーシップグループ内のデータへ直接アクセスすることを許可するステップと、
    前記複数のデータベースサーバのうちの第1のデータベースサーバが、特定のオーナー組に割当てられる1つの特定のオーナーシップグループ内のデータを含む動作を行なうリクエストを受けるステップと、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれている場合に、前記第1のデータベースサーバで実行されるプロセスが、データを直接検索するステップと、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれていない場合に、前記第1のデータベースサーバで実行されるプロセスが、前記複数のデータベースサーバのうちの、前記特定のオーナー組に含まれている第2のデータベースサーバにデータを要求して検索し、前記第1のデータベースサーバが、前記第2のデータベースサーバからのデータを用いて、前記リクエストに応答するステップとを含む、方法。
  45. 1つのオーナー組を、複数のオーナーシップグループの各オーナーシップグループに割当てるステップをさらに含む、請求項44に記載の方法。
  46. 特定のオーナーシップグループの前記オーナー組のメンバーであるデータベースサーバで実行するプロセスにのみ、前記特定のオーナーシップグループ内のデータに直接アクセスすることを許可するステップをさらに含む、請求項44に記載の方法。
  47. 数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループは1つ以上のテーブルスペースを含む、請求項44に記載の方法。
  48. 前記1つ以上のテーブルスペースのうちの少なくとも1つのテーブルスペースはデータファイルの集まりである、請求項47に記載の方法。
  49. 数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループを、シェアードナッシングオーナーシップグループとして指定するステップと、
    少なくとも1つのシェアードナッシングオーナーシップグループのオーナーシップを、前記複数のデータベースサーバのうちの1つのデータベースサーバに割当てるステップと、
    各シェアードナッシングオーナーシップグループのオーナーシップが割り当てられた1つのデータベースサーバにのみ、前記シェアードナッシングオーナーシップグループ内のデータへ直接アクセスすることを許可するステップとを含む、請求項44に記載の方法。
  50. 数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループをシェアードディスクオーナーシップグループとして指定するステップを含み、前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割り当てられるものであり、
    前記オーナーシップが割り当てられた前記複数のデータベースサーバの各々に、シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへ直接アクセスすることを許可するステップとを含む、請求項44に記載の方法。
  51. 数のオーナーシップグループの各オーナーシップグループを、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定するステップをさらに含み、前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割り当てられるものであり、
    各シェアードナッシングオーナーシップグループのオーナーシップを、前記複数のデータベースサーバの中から単一のデータベースサーバに割当てるステップをさらに含む、請求項44に記載の方法。
  52. 数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループを、複数のタイプのオーナーシップグループの特定のタイプのオーナーシップグループとして指定するステップをさらに含む、請求項44に記載の方法。
  53. 指定されたオーナーシップグループの前記タイプを変更するステップをさらに含む、請求項52に記載の方法。
  54. 前記複数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループを、前記複数のタイプのオーナーシップグループの第1のタイプのオーナーシップグループとして指定するステップと、
    前記複数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループを、前記複数のタイプのオーナーシップグループの第2のタイプのオーナーシップグループとして指定するステップとをさらに含む、請求項52に記載の方法。
  55. 前記第1のタイプのオーナーシップグループはシェアードナッシングオーナーシップグループであり、
    前記第2のタイプのオーナーシップグループはシェアードディスクオーナーシップグループであり、
    前記シェアードナッシングオーナーシップグループのオーナーシップは、前記複数のデータベースサーバのうちのいずれかに割当てらるものであり、
    前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割り当てられるものである、請求項54に記載の方法。
  56. 前記複数のオーナーシップグループの各オーナーシップグループを、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定するステップをさらに含む、請求項55に記載の方法。
  57. 前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記少なくとも1つのタイプのオーナーシップグループとして指定された各オーナーシップグループごとの前記オーナー組において、前記複数のデータベースサーバの1つのデータベースサーバのみを許可するステップをさらに含む、請求項52に記載の方法。
  58. 前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記複数のデータベースサーバの各データベースサーバを、前記少なくとも1つのタイプのオーナーシップグループとして指定されたオーナーシップグループごとの前記オーナー組に含めるステップをさらに含む、請求項52に記載の方法。
  59. 前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記複数のデータベースサーバのうちの少なくとも2つであって、かつ、すべてのデータベースサーバよりも少ない数のデータベースサーバを、前記少なくとも1つのタイプのオーナーシップグループとして指定されたオーナーシップグループについての前記オーナー組に含めるステップをさらに含む、請求項52に記載の方法。
  60. 前記特定のオーナーシップグループはシェアードディスクオーナーシップグループであり、前記シェアードディスクオーナーシップグループのオーナーシップは、前記複数のデータベースサーバの全てに割当てられるものであり、前記特定のオーナー組は前記複数のデータベースサーバを含み、前記第1のデータベースサーバで実行する前記プロセスは前記データを直接検索する、請求項44に記載の方法。
  61. 前記特定のオーナーシップグループはシェアードナッシングオーナーシップグループであり、前記シェアードナッシングオーナーシップグループのオーナーシップは、前記複数のデータベースサーバのうちのいずれかに割当てられるものであり、前記複数のデータベースサーバのうちの前記第2のデータベースサーバは、前記特定のオーナー組内の唯一のデータベースサーバである、請求項44に記載の方法。
  62. 前記特定のオーナーシップグループはシェアードナッシングオーナーシップグループであり、前記シェアードナッシングオーナーシップグループのオーナーシップは、前記複数のデータベースサーバのうちのいずれかに割当てられるものであり、前記複数のデータベースサーバのうちの前記第1のデータベースサーバは、前記特定のオーナー組内の唯一のデータベースサーバである、請求項44に記載の方法。
  63. 数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループの前記オーナーシップを、前記複数のデータベースサーバのいずれかに割当てるステップと、
    前記少なくとも1つのオーナーシップグループに対する前記オーナーシップの割当てを、前記複数のデータベースサーバの第1のデータベースサーバから、前記複数のデータベースサーバの第2のデータベースサーバに変更するステップをさらに含む、請求項44に記載の方法。
  64. 前記少なくとも1つのオーナーシップグループはシェアードナッシングオーナーシップグループであり、前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちのいずれかに割当てられたものである、請求項63に記載の方法。
  65. 前記少なくとも1つのオーナーシップグループに対する前記オーナーシップの割当てを変更する前記ステップは、要求に応答して行なわれる、請求項63に記載の方法。
  66. 前記少なくとも1つのオーナーシップグループに対する前記オーナーシップの割当てを変更する前記ステップは、前記第1のデータベースサーバの障害に応答して自動的に行なわれる、請求項63に記載の方法。
  67. 以下のステップを行なうことにより、前記特定のオーナーシップグループのオーナーシップを、前記第1のオーナー組から前記第2のオーナー組に変更するステップをさらに含み、前記以下のステップは、
    特定のオーナーシップグループ内のデータ項目の順方向の変更を行なうことを中止するよう前記複数のデータベースサーバに命令するステップを含み、前記順方向の変更は、前記データ項目の新たなバージョンを生成することを含み、
    前記命令に応答して、前記第1のオーナー組を介して前記データ項目にアクセスしているすべてのトランザクションを完遂し、あるいは打切るステップと、
    前記第1のオーナー組を介して前記データ項目にアクセスしている前記すべてのトランザクションが完遂しているかまたは打切られている場合に、前記特定のオーナーシップグループのオーナーシップを示すデータを変更して、第2のオーナー組が前記特定のオーナーシップグループのオーナーであることを示すステップとを含む、請求項44に記載の方法。
  68. 前記特定のオーナーシップグループのオーナーシップを、前記第1のオーナー組から前記第2のオーナー組へ変更することにおける障害に応答して、
    前記障害は前記特定のオーナーシップグループのオーナーシップを示す前記データの変更前に生じたか否かを判断するステップと、
    もし前記障害が前記特定のオーナーシップグループのオーナーシップを示す前記データの変更前に生じていれば、前記第1のオーナー組を前記特定のオーナーシップグループのオーナーとして復元するステップと、
    もし前記障害が前記特定のオーナーシップグループのオーナーシップを示す前記データの変更後に生じていれば、前記第2のオーナー組を前記特定のオーナーシップグループのオーナーとして保持するステップとを含む、請求項67に記載の方法。
  69. 問合せが前記データベース内に含まれ、前記問合せは第1のオーナー組を参照するクエリー実行計画と関連付けられ、前記クエリー実行計画は、前記データベースに含まれるデータにアクセスして前記データを処理する動作を規定しており、
    前記方法はさらに、
    特定のオーナーシップグループを前記第1のオーナー組から前記第2のオーナー組に変更するステップと、
    前記特定のオーナーシップグループを前記第1のオーナー組から前記第2のオーナー組に変更した後で、前記第2のオーナー組を参照する新しいクエリー実行計画を生成するステップとを含む、請求項44に記載の方法。
  70. 前記複数のデータベースサーバによるデータ項目へのアクセスをディスエーブルするステップと、
    前記データ項目にアクセスするすべてのトランザクションが完遂しているかまたは打切られている場合、前記データ項目がどのオーナーシップグループに属するかを示すデータを変更して、前記データ項目が第2のオーナーシップグループに属することを示すステップとを行なうことにより、
    前記データ項目の属するオーナーシップグループを前記第1のオーナーシップグループから前記第2のオーナーシップグループに変更するステップをさらに含む、請求項44に記載の方法。
  71. 第1のデータを変更して前記データ項目がどのオーナーシップグループに属するかを示すステップと、
    前記第1のデータを変更する前に、第2のデータを変更して前記データ項目がどのオーナーシップグループに属するかを示すステップとをさらに含む、請求項70に記載の方法。
  72. 前記第1のデータは制御ファイル内にあり、前記第2のデータはデータ辞書内にある、請求項71に記載の方法。
  73. 前記データ項目の属するオーナーシップグループを、前記第1のオーナーシップグループから前記第2のオーナーシップグループに変更することの障害に応答して、
    前記障害が前記第2のデータの変更前に生じた否かを判断するステップと、
    もし前記障害が前記第2のデータの変更前に生じていれば、前記第1のオーナーシップグループに対して前記データ項目を復元するステップと、
    もし前記障害が前記第2のデータの変更後に生じていれば、前記第1のデータを変更することにより前記データ項目の属するオーナーシップグループを、前記第1のオーナーシップグループから前記第2のオーナーシップグループに変更するステップとをさらに含む、請求項72に記載の方法。
  74. 前記第2のオーナーシップグループがオーナーシップの変更を受けているか否かを判断するステップと、
    もし前記第2のオーナーシップグループがオーナーシップの変更を受けていれば、前記データ項目に対して移動遅延条件を示す状態フラグを設定するステップとをさらに含む、請求項70に記載の方法。
  75. 複数のデータベースサーバによって直接アクセス可能であるデータベースへのアクセスを管理するためのプログラムを格納したコンピュータ読取可能な記録媒体であって、前記プログラムは、1つ以上のプロセッサに、
    前記データベースのうちの少なくとも一部を特定の複数のパーティションに論理的に分割するステップを実行させ、前記特定の複数のパーティションの各々は、前記データベースにおいて関連するデータからなるグループを含み、前記関連するデータからなる前記グループは、オーナーシップグループに属するものであり、
    前記オーナーシップグループへのアクセス権であるオーナーシップを、前記複数のデータベースサーバのうちの少なくとも1つのデータベースサーバに割当てるステップを実行させ、前記オーナーシップが割り当てられたデータベースサーバは、オーナー組を構成し、
    前記オーナー組に属するデータベースサーバで実行するプロセスに、各オーナーシップグループ内のデータへ直接アクセスすることを許可するステップと、
    前記複数のデータベースサーバのうちの第1のデータベースサーバが、1つの特定のオーナー組に割当てられる1つの特定のオーナーシップグループ内のデータを含む動作を行なうリクエストを受けるステップと、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれている場合に、前記第1のデータベースサーバで実行されるプロセスが、データを直接検索するステップと、
    前記第1のデータベースサーバが前記特定のオーナー組に含まれていない場合に、前記第1のデータベースサーバで実行されるプロセスが、前記複数のデータベースサーバのうちの、前記特定のオーナー組に含まれている第2のデータベースサーバにデータを要求して検索し、前記第1のデータベースサーバが、前記第2のデータベースサーバからのデータを用いて、前記リクエストに応答するステップとを実行させる、コンピュータ読取可能な記録媒体。
  76. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    複数の前記オーナーシップを、1つのオーナー組に割当てるステップをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  77. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記オーナー組のメンバーであるデータベースサーバで実行するプロセスにのみ、前記オーナーシップグループ内のデータへ直接アクセスすることを許可するステップをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  78. 複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループは1つ以上のテーブルスペースを含む、請求項75に記載のコンピュータ読取可能な記録媒体。
  79. 前記1つ以上のテーブルスペースのうちの少なくとも1つのテーブルスペースはデータファイルの集まりである、請求項78に記載のコンピュータ読取可能な記録媒体。
  80. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに
    複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループを、シェアードナッシングオーナーシップグループとして指定するステップを実行させ、前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちの1つのデータベースサーバに割当てられたオーナーシップグループであり、
    少なくとも1つのシェアードナッシングオーナーシップグループに、前記複数のデータベースサーバの中からオーナーを割当てるステップと、
    各シェアードナッシングオーナーシップグループの前記オーナーにのみ、前記シェアードナッシングオーナーシップグループ内のデータへ直接アクセスすることを許可するステップとをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  81. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループをシェアードディスクオーナーシップグループとして指定するステップを実行させ、前記シェアードディスクオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバの全てに割り当てられたオーナーシップグループであり、
    前記複数のデータベースサーバの各々に、シェアードディスクオーナーシップグループとして指定されたオーナーシップグループ内のデータへ直接アクセスすることを許可するステップをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  82. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    複数の前記オーナーシップグループの各オーナーシップグループを、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定するステップを実行させ、前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちのいずれかに割当てられたオーナーシップグループであり、前記シェアードディスクオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバの全てに割り当てられたオーナーシップグループであり、
    前記プログラムは、前記1つ以上のプロセッサに、
    各シェアードナッシングオーナーシップグループに、前記複数のデータベースサーバの中から単一のデータベースサーバを割当てるステップをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  83. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループを、複数のタイプのオーナーシップグループの特定のタイプのオーナーシップグループとして指定するステップをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  84. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    指定されたオーナーシップグループの前記タイプを変更するステップをさらに実行させる、請求項83に記載のコンピュータ読取可能な記録媒体。
  85. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    複数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループを、前記複数のタイプのオーナーシップグループの第1のタイプのオーナーシップグループとして指定するステップと、
    前記複数のオーナーシップグループのうちの少なくとも1つのオーナーシップグループを、前記複数のタイプのオーナーシップグループの第2のタイプのオーナーシップグループとして指定するステップとをさらに実行させる、請求項83に記載のコンピュータ読取可能な記録媒体。
  86. 前記第1のタイプのオーナーシップグループはシェアードナッシングオーナーシップグループであり、前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちのいずれかに割当てられたオーナーシップグループであり、
    前記第2のタイプのオーナーシップグループはシェアードディスクオーナーシップグループであり、前記シェアードディスクオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバの全てに割り当てられたオーナーシップグループである、請求項85に記載のコンピュータ読取可能な記録媒体。
  87. 前記1つ以上のプロセッサによって実行された場合、前記プログラムは、前記1つ以上のプロセッサに、
    複数のオーナーシップグループの各オーナーシップグループを、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定するステップをさらに実行させる、請求項86に記載のコンピュータ読取可能な記録媒体。
  88. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記少なくとも1つのタイプのオーナーシップグループとして指定された各オーナーシップグループごとの前記オーナー組において、前記複数のデータベースサーバの1つのデータベースサーバのみを許可するステップをさらに実行させる、請求項83に記載のコンピュータ読取可能な記録媒体。
  89. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記複数のデータベースサーバの各データベースサーバを、前記少なくとも1つのタイプのオーナーシップグループとして指定されたオーナーシップグループごとの前記オーナー組に含めるステップをさらに実行させる、請求項83に記載のコンピュータ読取可能な記録媒体。
  90. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記複数のタイプのオーナーシップグループのうちの少なくとも1つのタイプのオーナーシップグループに対して、前記複数のデータベースサーバのうちの少なくとも2つであって、かつ、すべてのデータベースサーバよりも少ない数のデータベースサーバを、前記少なくとも1つのタイプのオーナーシップグループとして指定されたオーナーシップグループごとの前記オーナー組に含めるステップをさらに実行させる、請求項83に記載のコンピュータ読取可能な記録媒体。
  91. 前記特定のオーナーシップグループはシェアードディスクオーナーシップグループであり、前記特定のオーナー組は前記複数のデータベースサーバを含み、前記シェアードディスクオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバの全てに割り当てられたものであり、前記第1のデータベースサーバで実行する前記プロセスは前記データを直接検索する、請求項75に記載のコンピュータ読取可能な記録媒体。
  92. 前記特定のオーナーシップグループはシェアードナッシングオーナーシップグループであり、前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちのいずれかに割当てられたものであり、前記複数のデータベースサーバの前記第2のデータベースサーバは、前記特定のオーナー組内の唯一のデータベースサーバである、請求項75に記載のコンピュータ読取可能な記録媒体。
  93. 前記特定のオーナーシップグループはシェアードナッシングオーナーシップグループであり、前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちのいずれかに割当てられたものであり、前記複数のデータベースサーバの前記第1のデータベースサーバは、前記特定のオーナー組内の唯一のデータベースサーバである、請求項75に記載のコンピュータ読取可能な記録媒体。
  94. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    複数の前記オーナーシップグループのうちの少なくとも1つのオーナーシップグループのオーナーシップを、前記複数のデータベースサーバの中のデータベースサーバに割当てるステップと、
    前記少なくとも1つのオーナーシップグループの前記オーナーシップの割当てを、前記複数のデータベースサーバの第1のデータベースサーバから、前記複数のデータベースサーバの第2のデータベースサーバに変更するステップとをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  95. 前記少なくとも1つのオーナーシップグループはシェアードナッシングオーナーシップグループであり、
    前記シェアードナッシングオーナーシップグループは、前記オーナーシップが前記複数のデータベースサーバのうちのいずれかに割当てられたものである、請求項94に記載のコンピュータ読取可能な記録媒体。
  96. 前記少なくとも1つのオーナーシップグループに対する前記オーナーシップの割当てを変更する前記ステップは、要求に応答して行なわれる、請求項94に記載のコンピュータ読取可能な記録媒体。
  97. 前記少なくとも1つのオーナーシップグループに対する前記オーナーシップの割当てを変更する前記ステップは、前記第1のデータベースサーバの障害に応答して自動的に行なわれる、請求項94に記載のコンピュータ読取可能な記録媒体。
  98. 前記1つ以上のプロセッサによって実行された場合に前記プログラムは、前記1つ以上のプロセッサに、
    以下のステップを行なうことにより、前記特定のオーナーシップグループのオーナーシップを、前記第1のオーナー組から前記第2のオーナー組に変更するステップを実行させ、前記以下のステップは、
    前記特定のオーナーシップグループ内のデータ項目の順方向の変更を行なうことを中止するよう前記複数のデータベースサーバに命令するステップを含み、前記順方向の変更は、前記データ項目の新たなバージョンを生成することを含み、
    前記命令に応答して、前記第1のオーナー組を介して前記データ項目にアクセスしているすべてのトランザクションを完遂し、あるいは打切るステップと、
    前記第1のオーナー組を介して前記データ項目にアクセスしている前記すべてのトランザクションが完遂しているかまたは打切られている場合に、前記特定のパーティションに含まれる一群の関連するデータのオーナーシップグループの前記オーナーシップを示すデータを変更して、変更後の前記オーナーシップが、第2のオーナー組に割当てられられたことを示すステップとを含む、請求項75に記載のコンピュータ読取可能な記録媒体。
  99. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記特定のオーナーシップグループのオーナーシップを、前記第1のオーナー組から前記第2のオーナー組へ変更することにおける障害に応答して、
    前記障害は前記特定のオーナーシップグループのオーナーシップを示す前記データの変更前に生じたか否かを判断するステップと、
    もし前記障害が前記特定のオーナーシップグループのオーナーシップを示す前記データの変更前に生じていれば、前記第1のオーナー組を前記特定のオーナーシップグループのオーナーとして復元するステップと、
    もし前記障害が前記特定のオーナーシップグループのオーナーシップを示す前記データの変更後に生じていれば、前記第2のオーナー組を前記特定のオーナーシップグループのオーナーとして保持するステップとをさらに実行させる、請求項98に記載のコンピュータ読取可能な記録媒体。
  100. 問合せが前記データベース内に含まれ、前記問合せは第1のオーナー組を参照するクエリ実行計画と関連付けられ、前記クエリ実行計画は、前記データベースに含まれるデータにアクセスして前記データを処理する動作を規定しており、前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    特定のオーナーシップグループを前記第1のオーナー組から前記第2のオーナー組に変更するステップと、
    前記特定のオーナーシップグループを前記第1のオーナー組から前記第2のオーナー組に変更した後で、前記第2のオーナー組を参照する新しいクエリ実行計画を生成するステップとをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  101. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記複数のデータベースサーバによる前記データ項目へのアクセスをディスエーブルするステップと、
    前記データ項目にアクセスするすべてのトランザクションが完遂しているかまたは打切られている場合、前記データ項目がどのオーナーシップグループに属するかを示すデータを変更して、前記データ項目が第2のオーナーシップグループに属することを示すステップとを行なうことにより、
    前記データ項目の属するオーナーシップグループを第1のオーナーシップグループから前記第2のオーナーシップグループに変更するステップをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
  102. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    第1のデータを変更して前記データ項目がどのオーナーシップグループに属するかを示すステップと、
    前記第1のデータを変更する前に、第2のデータを変更して前記データ項目がどのオーナーシップグループに属するかを示すステップとをさらに実行させる、請求項101に記載のコンピュータ読取可能な記録媒体。
  103. 前記第1のデータは制御ファイル内にあり、前記第2のデータはデータ辞書内にある、請求項102に記載のコンピュータ読取可能な記録媒体。
  104. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記データ項目の属するオーナーシップグループを、前記第1のオーナーシップグループから前記第2のオーナーシップグループに変更することの障害に応答して、
    前記障害が前記第2のデータの変更前に生じたか否かを判断するステップと、
    もし前記障害が前記第2のデータの変更前に生じていれば、前記第1のオーナーシップグループに対して前記データ項目を復元するステップと、
    もし前記障害が前記第2のデータの変更後に生じていれば、前記第1のデータを変更することにより前記データ項目の属するオーナーシップグループを、前記第1のオーナーシップグループから前記第2のオーナーシップグループに変更するステップとをさらに実行させる、請求項102に記載のコンピュータ読取可能な記録媒体。
  105. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    前記第2のオーナーシップグループがオーナーシップの変更を受けているか否かを判断するステップと、
    もし前記第2のオーナーシップグループがオーナーシップの変更を受けていれば、前記データ項目に対して移動遅延条件を示す状態フラグを設定するステップとをさらに実行させる、請求項101に記載のコンピュータ読取可能な記録媒体。
  106. 各前記オーナーシップグループについての前記オーナーシップの情報を格納するキャッシュメモリと、
    前記キャッシュメモリに格納されている前記情報に基づいて、前記オーナシップグループのオーナーシップを決定する手段とをさらに備える、請求項1または28に記載のデータベースシステム。
  107. 各前記オーナーシップグループについての前記オーナーシップの情報を、キャッシュメモリに格納するステップと、
    前記キャッシュメモリに格納されている前記情報に基づいて、前記オーナシップグループのオーナーシップを決定するステップとをさらに備える、請求項10または44に記載の方法。
  108. 前記命令は前記コンピュータに、
    各前記オーナーシップグループについての前記オーナーシップの情報を、キャッシュメモリに格納するステップと、
    前記キャッシュメモリに格納されている前記情報に基づいて、前記オーナシップグループのオーナーシップを決定するステップとをさらに実行させる、請求項19に記載のコンピュータ読取可能な記録媒体。
  109. 前記1つ以上のプロセッサによって実行された場合に、前記プログラムは、前記1つ以上のプロセッサに、
    各前記オーナーシップグループについての前記オーナーシップの情報を、キャッシュメモリに格納するステップと、
    前記キャッシュメモリに格納されている前記情報に基づいて、前記オーナシップグループのオーナーシップを決定するステップとをさらに実行させる、請求項75に記載のコンピュータ読取可能な記録媒体。
JP2003509358A 2001-06-28 2001-06-28 データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化 Expired - Lifetime JP4746838B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2001/020842 WO2003003252A1 (en) 1998-02-12 2001-06-28 Partitioning ownership of a database among different database servers to control access to the database

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007047852A Division JP4664931B2 (ja) 2007-02-27 2007-02-27 データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化

Publications (3)

Publication Number Publication Date
JP2004531005A JP2004531005A (ja) 2004-10-07
JP2004531005A5 JP2004531005A5 (ja) 2006-01-05
JP4746838B2 true JP4746838B2 (ja) 2011-08-10

Family

ID=28038554

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003509358A Expired - Lifetime JP4746838B2 (ja) 2001-06-28 2001-06-28 データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化

Country Status (6)

Country Link
EP (3) EP2562662B1 (ja)
JP (1) JP4746838B2 (ja)
CN (1) CN100517303C (ja)
AU (1) AU2001271680B2 (ja)
CA (1) CA2435388C (ja)
HK (1) HK1059971A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101451280B1 (ko) * 2012-10-16 2014-10-16 케이티하이텔 주식회사 분산형 데이터베이스 관리 시스템 및 방법

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850941B1 (en) 2000-12-21 2005-02-01 Vignette Corporation Method and system for native-byte form handling
US7277897B2 (en) 2003-08-01 2007-10-02 Oracle International Corporation Dynamic reassignment of data ownership
US7120651B2 (en) 2003-08-01 2006-10-10 Oracle International Corporation Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US8234517B2 (en) * 2003-08-01 2012-07-31 Oracle International Corporation Parallel recovery by non-failed nodes
US7139772B2 (en) 2003-08-01 2006-11-21 Oracle International Corporation Ownership reassignment in a shared-nothing database system
CN100565460C (zh) * 2003-08-01 2009-12-02 甲骨文国际公司 用于管理数据的方法
US7814065B2 (en) 2005-08-16 2010-10-12 Oracle International Corporation Affinity-based recovery/failover in a cluster environment
US8510334B2 (en) 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US8375056B2 (en) * 2010-02-26 2013-02-12 International Business Machines Corporation Optimizing data cache when applying user-based security
CN103262090B (zh) * 2010-10-27 2017-01-25 马普科技促进协会 使用存储租约保护数据完整性
EP2448294B1 (en) * 2010-10-29 2015-05-27 HTC Corporation Method and performing service group owner transfer procedure in communication system
JP6166254B2 (ja) * 2011-04-08 2017-07-19 リープマン, アンドリューLIEBMAN, Andrew プロジェクト共有のためのシステム、コンピュータ可読記憶媒体およびコンピュータ実装方法
US20140032595A1 (en) * 2012-07-25 2014-01-30 Netapp, Inc. Contention-free multi-path data access in distributed compute systems
US8838535B2 (en) * 2012-10-05 2014-09-16 Oracle International Corporation Providing services across systems that manage distributed replicas
US9906410B2 (en) 2014-09-29 2018-02-27 Netapp, Inc. Dynamic data access configuration
WO2016170538A1 (en) * 2015-04-20 2016-10-27 Ogy Docs, Inc. A method of distributed management of electronic documents of title (edt) and system thereof
CN105608190B (zh) * 2015-12-23 2020-02-28 福建亿榕信息技术有限公司 协同数据处理方法和系统
CN105608185B (zh) * 2015-12-23 2020-02-28 福建亿榕信息技术有限公司 预防数据灭失的方法和系统
US9619952B1 (en) * 2016-02-16 2017-04-11 Honeywell International Inc. Systems and methods of preventing access to users of an access control system
CN107783842B (zh) * 2016-08-31 2021-09-03 阿里巴巴集团控股有限公司 一种分布式锁实现方法、设备及存储装置
CN106376034B (zh) * 2016-10-19 2020-02-11 深圳市晟碟半导体有限公司 快速获取无线Mesh网络内设备的状态的方法和系统
US11640317B2 (en) 2019-03-11 2023-05-02 Qualcomm Incorporated Hardware co-ordination of resource management in distributed systems
EP4398110A1 (en) * 2021-09-03 2024-07-10 Scalar, Inc Transaction processing system and method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
US5625811A (en) * 1994-10-31 1997-04-29 International Business Machines Corporation Method and system for database load balancing
WO1997004384A1 (en) * 1995-07-21 1997-02-06 Emc Corporation Dynamic load balancing
US5907849A (en) * 1997-05-29 1999-05-25 International Business Machines Corporation Method and system for recovery in a partitioned shared nothing database system using virtual share disks
US6594698B1 (en) * 1998-09-25 2003-07-15 Ncr Corporation Protocol for dynamic binding of shared resources
US6341340B1 (en) * 1998-12-28 2002-01-22 Oracle Corporation Transitioning ownership of data items between ownership groups

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101451280B1 (ko) * 2012-10-16 2014-10-16 케이티하이텔 주식회사 분산형 데이터베이스 관리 시스템 및 방법

Also Published As

Publication number Publication date
CN1505788A (zh) 2004-06-16
JP2004531005A (ja) 2004-10-07
EP2562662A3 (en) 2015-03-18
EP1399847A1 (en) 2004-03-24
EP1399847B1 (en) 2013-01-16
EP2562662A2 (en) 2013-02-27
CA2435388A1 (en) 2003-01-09
EP1399847A4 (en) 2005-11-02
HK1059971A1 (en) 2004-07-23
AU2001271680B2 (en) 2007-04-26
EP2562662B1 (en) 2019-08-21
EP1521184A2 (en) 2005-04-06
CA2435388C (en) 2008-12-09
EP1521184A3 (en) 2006-02-22
CN100517303C (zh) 2009-07-22

Similar Documents

Publication Publication Date Title
JP4746838B2 (ja) データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化
US6711571B2 (en) Partitioning ownership of a database among different database servers to control access to the database
US6341340B1 (en) Transitioning ownership of data items between ownership groups
US6587921B2 (en) Method and apparatus for cache synchronization in a clustered environment
EP1652082B1 (en) Ownership reassignment in a shared-nothing database system
JP4586019B2 (ja) 非故障ノードによる並列な回復
US5920872A (en) Resource management using resource domains
US7120651B2 (en) Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
AU2001271680A1 (en) Partitioning ownership of a database among different database servers to control access to the database
US20100174802A1 (en) Super master
US20070043726A1 (en) Affinity-based recovery/failover in a cluster environment
JP2006508459A (ja) nウェイ共用ストレージ・システムにおけるフラッシュ・コピーのためのハイパフォーマンス・ロック管理
JP4664931B2 (ja) データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化
Rahm Use of global extended memory for distributed transaction processing
WO2003003252A1 (en) Partitioning ownership of a database among different database servers to control access to the database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060829

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061128

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080624

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080925

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090414

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090427

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110325

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

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

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4746838

Country of ref document: JP

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

EXPY Cancellation because of completion of term