JP4664931B2 - Partitioning database ownership between different database servers to control access to the database - Google Patents

Partitioning database ownership between different database servers to control access to the database Download PDF

Info

Publication number
JP4664931B2
JP4664931B2 JP2007047852A JP2007047852A JP4664931B2 JP 4664931 B2 JP4664931 B2 JP 4664931B2 JP 2007047852 A JP2007047852 A JP 2007047852A JP 2007047852 A JP2007047852 A JP 2007047852A JP 4664931 B2 JP4664931 B2 JP 4664931B2
Authority
JP
Japan
Prior art keywords
nodes
data
database
node
ownership
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
JP2007047852A
Other languages
Japanese (ja)
Other versions
JP2007188518A (en
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 to JP2007047852A priority Critical patent/JP4664931B2/en
Publication of JP2007188518A publication Critical patent/JP2007188518A/en
Application granted granted Critical
Publication of JP4664931B2 publication Critical patent/JP4664931B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Hardware Redundancy (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号に関する。
Related Application This application is the United States of the prior application filed on December 28, 1998, entitled “Hybrid Shared Nothing / Shared Disk Database System” by inventor Gianfranco Putzolu. Patent Application Serial No. 09 / 222,577, and inventor Gianfranco Puzzol, “Partitioning Ownership of a Database between different database servers to control access to the database No. 09 / 896,373, filed on the same day as the present application, entitled "Near Different Database Servers to Control Access to the Database".

発明の分野
この発明は、データベースシステムに関し、より特定的には、データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化に関する。
FIELD OF THE INVENTION This invention relates to database systems, and more specifically to database ownership partitioning between different database servers to control access to the database.

発明の背景
多重処理コンピュータシステムとは、命令を互いに並列に実行することが可能である多数の処理ユニットを含むシステムである。並列処理能力を利用するために、タスクの異なった局面が異なった処理ユニットに割当てられる。タスクの異なった局面は、ここで作業グラニュルと称し、利用可能である処理ユニットの間で作業グラニュルを分配する役割を果たす処理をコーディネータプロセスと称する。
BACKGROUND OF THE INVENTION A multi-processing computer system is a system that includes a number of processing units that are capable of executing instructions in parallel with each other. In order to take advantage of parallel processing capabilities, different aspects of a task are assigned to different processing units. The different aspects of the task are referred to herein as work granules, and the process that serves to distribute the work granules among available processing units is referred to as the coordinator process.

多重処理コンピュータシステムは典型的には3つのカテゴリに分類される。すなわち、シェアードエブリシングシステム、シェアードディスクシステム、およびシェアードナッシングシステムである。作業のグラニュルを行なうプロセスに対する作業の分配に課される制約は、関わっている多重処理システムの種類に基づき変化する。   Multiprocessing computer systems typically fall into three categories. That is, a shared everything system, a shared disk system, and a shared nothing system. The constraints imposed on the distribution of work to the process of granulating work vary based on the type of multiprocessing system involved.

シェアードエブリシングシステムにおいては、すべてのプロセッサにおけるプロセスは、システム内のすべてのダイナミックメモリ装置(以降総じて「メモリ」と称する)へ、およびすべてのスタティックメモリ装置(以降総じて「ディスク」と称する)へ、直接アクセスする。したがって、シェアードエブリシングシステムにおいては、どのように作業グラニュルが割当てられるかに関してはほとんど制約がない。しかしながら、シェアードエブリシング機能を提供するためにはさまざまなコンピュータコンポーネント間で高度な配線が必要となる。さらに、シェアードエブリシングアーキテクチャにはスケーラビリティ限界がある。   In a shared everything system, processes in all processors have direct access to all dynamic memory devices in the system (hereinafter collectively referred to as “memory”) and to all static memory devices (hereinafter generally referred to as “disk”). To do. Therefore, in a shared everything system, there are almost no restrictions as to how work granules are allocated. However, in order to provide a shared everything function, advanced wiring is required between various computer components. In addition, shared everything architecture has scalability limitations.

シェアードディスクシステムにおいては、プロセッサおよびメモリはノードにグループ化される。シェアードディスクシステムにおける各ノードは、それ自体が多数のプロセッサおよび多数のメモリを含むシェアードエブリシングシステムを構成し得る。すべてのプロセッサにおけるプロセスはシステム内のすべてのディスクにアクセスし得るが、特定のノードに属するプロセッサのプロセスのみが、その特定のノード内のメモリに直接アクセスし得る。シェアードディスクシステムは一般的に、シェアードエブリシングシステムよ
りも少ない配線しか必要としない。しかしながら、シェアードディスクシステムは不平衡な作業負荷の条件に、より影響されやすい。たとえば、もしノードが大きな容量のダイナミックメモリを必要とする作業グラニュルに対して作業するプロセスを有している場合、そのノードに属するメモリはすべての要求されるデータを同時に記憶するのに十分大きくない可能性がある。したがって、利用可能であり使用されていない大容量のメモリが他のノードに残っていたとしても、プロセスはそのノードのローカルメモリとデータをスワップインおよびスワップアウトしなければならない。
In a shared disk system, processors and memory are grouped into nodes. Each node in the shared disk system may constitute a shared everything system that itself includes multiple processors and multiple memories. Processes in all processors can access all disks in the system, but only the processes of processors belonging to a particular node can directly access memory in that particular node. Shared disk systems generally require less wiring than shared everything systems. However, shared disk systems are more susceptible to unbalanced workload conditions. For example, if a node has a process working on a work granule that requires a large amount of dynamic memory, the memory belonging to that node is not large enough to store all the required data simultaneously there is a possibility. Thus, even if a large amount of available and unused memory remains on the other node, the process must swap in and swap out the node's local memory and data.

シェアードディスクシステムは、メモリ破損をもたらすソフトウェア障害のコンパートメント化を提供する。ノード間ロックマネージャによって用いられる制御ブロックが唯一の例外であり、これらは事実上すべてのノードにおいて反復される。   Shared disk systems provide compartmentalization of software failures that result in memory corruption. The only exceptions are the control blocks used by the inter-node lock manager, which are repeated at virtually every node.

シェアードナッシングシステムにおいては、すべてのプロセッサ、メモリおよびディスクがノードにグループ化される。シェアードディスクシステムにおけるシェアードナッシングシステムにおいては、各ノードはそれ自体がシェアードエブリシングシステムまたはシェアードディスクシステムを構成し得る。特定のノードで実行するプロセスのみがその特定のノード内のメモリおよびディスクへ直接アクセスし得る。多重処理システムの3つの一般的なタイプのうち、シェアードナッシングシステムが典型的には最も少ないシステムコンポーネント間の配線しか必要としない。しかしながら、シェアードナッシングシステムは不平衡な作業負荷の条件に最も影響されやすい。たとえば、特定の作業グラニュルの間にアクセスされるべきすべてのデータは、特定のノードのディスクに存在し得る。したがって、他のノードにおけるプロセスがアイドル状態であったとしても、作業グラニュルを行なうためにそのノードで実行するプロセスしか用いることができない。   In a shared nothing system, all processors, memory and disks are grouped into nodes. In a shared nothing system in a shared disk system, each node can itself constitute a shared everything system or a shared disk system. Only processes executing on a particular node can directly access memory and disk within that particular node. Of the three general types of multiprocessing systems, shared nothing systems typically require the least amount of wiring between system components. However, shared nothing systems are most susceptible to unbalanced workload conditions. For example, all data to be accessed during a particular work granule may reside on a particular node's disk. Therefore, even if a process in another node is in an idle state, only a process executed in that node can be used to perform a work granule.

シェアードナッシングシステムは、メモリおよび/またはディスク破損をもたらすソフトウェア障害のコンパートメント化を提供する。唯一の例外は、異なったノードでデータサブセットの「オーナーシップ」を制御する制御ブロックである。オーナーシップは、シェアードディスクロック管理情報よりも修正されていない。よって、オーナーシップ技術はシェアードディスクロック管理技術よりも簡単で信頼性が高いが、なぜならばこれらは高い性能要件を有さないからである。   Shared nothing systems provide compartmentalization of software failures that result in memory and / or disk corruption. The only exception is the control block that controls the “ownership” of the data subset at different nodes. Ownership is not modified more than shared disk lock management information. Thus, ownership techniques are simpler and more reliable than shared disk lock management techniques because they do not have high performance requirements.

多重処理システムで実行するデータベースは、典型的には2つのカテゴリに分類される。すなわち、シェアードディスクデータベースおよびシェアードナッシングデータベースである。シェアードディスクデータベースシステムにおいては、多数のデータベースサーバ(典型的には異なったノードで実行する)はデータベースの任意の部分において読出および書込が可能である。シェアードディスクアーキテクチャにおけるデータアクセスは、分散ロックマネージャを介して調整される。シェアードディスクデータベースは、シェアードナッシングおよびシェアードディスクコンピュータシステムの両方で実行し得る。シェアードディスクデータベースをシェアードナッシングコンピュータシステムで実行するためには、オペレーティングシステムにソフトウェアサポートを加えるか、または付加的なハードウェアを与えて、プロセスをリモートディスクに直接アクセスさせる。   Databases that run on multiprocessing systems typically fall into two categories. That is, a shared disk database and a shared nothing database. In a shared disk database system, multiple database servers (typically running on different nodes) can read and write on any part of the database. Data access in the shared disk architecture is coordinated through a distributed lock manager. The shared disk database may run on both shared nothing and shared disk computer systems. To run a shared disk database on a shared nothing computer system, add software support to the operating system or provide additional hardware to allow processes to access the remote disk directly.

シェアードナッシングデータベースは、プロセスと同じノードに属するディスクにデータが含まれている場合にのみ、プロセスがデータに直接アクセスできると想定する。特定的には、データベースデータは利用可能なデータベースサーバ間でさらに分割される。各データベースサーバは、そのデータベースサーバによって所有されているデータの部分にのみ直接読出および書込が可能である。もし第1のサーバが第2のサーバによって所有されているデータへのアクセスを所望すれば、第1のデータベースサーバは第2のデータベースサーバにメッセージを送って、代理で第2のデータベースサーバにデータアクセスを行なわせなければならない。   The shared nothing database assumes that a process can directly access data only if the data is contained on a disk that belongs to the same node as the process. Specifically, the database data is further divided between the available database servers. Each database server can directly read and write only the portion of data owned by that database server. If the first server desires access to data owned by the second server, the first database server sends a message to the second database server to proxy the data to the second database server. You must have access.

シェアードナッシングデータベースは、シェアードディスクおよびシェアードナッシング多重処理システムの両方で実行し得る。シェアードナッシングデータベースをシェアードディスクマシンで実行するためには、ソフトウェア機構を設けて論理的にデータベースをパーティション化し、かつ各パーティションのオーナーシップを特定のノードに割当てる。   The shared nothing database can run on both shared disks and shared nothing multiprocessing systems. In order to execute a shared nothing database on a shared disk machine, a software mechanism is provided to logically partition the database and assign ownership of each partition to a particular node.

シェアードナッシングおよびシェアードディスクシステムは各々がその特定のアーキテクチャに関連する好ましい利点を有する。たとえば、シェアードナッシングデータベースは、データへの頻繁な書込アクセス(書込ホットスポット)がある場合により良い性能を提供する。シェアードディスクデータベースは、頻繁な読出アクセス(読出ホットスポット)がある場合により良い性能を提供する。また、上述のように、シェアードナッシングシステムはソフトウェア障害が存在する場合により良い障害封じ込めを提供する。   Shared nothing and shared disk systems each have favorable advantages associated with that particular architecture. For example, shared nothing databases provide better performance when there is frequent write access to data (write hotspots). Shared disk databases provide better performance when there are frequent read accesses (read hotspots). Also, as described above, shared nothing systems provide better fault containment when software faults exist.

上記を鑑みて、両方のタイプのデータベースアーキテクチャの性能利点を提供することができる単一のデータベースシステムを提供することが望ましい。しかしながら、典型的には、これらの2つのタイプのアーキテクチャは互いに対し排他的である。   In view of the above, it would be desirable to provide a single database system that can provide the performance benefits of both types of database architectures. However, typically these two types of architecture are mutually exclusive.

発明の要約
データベースまたはその一部がオーナーシップグループにパーティション化されるデータベースシステムが提供される。各オーナーシップグループは、オーナーシップグループのオーナーとして1つ以上のデータベースサーバを割当てられる。オーナーシップグループのオーナーとして割当てられるデータベースサーバは、オーナーシップグループに属するすべてのデータ項目のオーナーとして扱われる。すなわち、これらはオーナーシップグループ内のデータ項目への直接アクセスを許可される一方、他のデータベースサーバはそれらのデータ項目への直接アクセスを許可されない。
SUMMARY OF THE INVENTION A database system is provided in which a database or a portion thereof is partitioned into ownership groups. Each ownership group is assigned one or more database servers as the owner of the ownership group. The database server assigned as the owner of the ownership group is treated as the owner of all data items belonging to the ownership group. That is, they are allowed direct access to data items in the ownership group, while other database servers are not allowed direct access to those data items.

この発明の一局面に従うと、データベースを記憶する1つ以上の永続的記憶装置と、複数のノードで実行する複数のデータベースサーバとを含むデータベースシステムが提供される。各ノードは、永続的記憶装置に直接アクセスする。データベースの少なくとも一部が複数のオーナーシップグループにパーティション化される。各オーナーシップグループは、オーナー組を割当てられる。オーナーシップグループのオーナー組のメンバーであるデータベースサーバで実行するプロセスのみが、オーナーシップグループ内のデータへの直接アクセスを許可される。   According to one aspect of the present invention, a database system is provided that includes one or more persistent storage devices that store a database and a plurality of database servers executing on a plurality of nodes. Each node has direct access to persistent storage. At least a portion of the database is partitioned into multiple ownership groups. Each ownership group is assigned an owner set. Only processes running on database servers that are members of the ownership group owner group are allowed direct access to the data in the ownership group.

各オーナーシップグループは、シェアードナッシングオーナーシップグループまたはシェアードディスクオーナーシップグループのいずれかとして指定される。各シェアードナッシングオーナーシップグループはデータベースサーバの中からオーナーを割当てられる。各シェアードナッシングオーナーシップグループのオーナーのみが、シェアードナッシングオーナーシップグループ内のデータへの直接アクセスを許可される。各データベースサーバは、シェアードディスクオーナーシップグループとして指定されるオーナーシップグループ内のデータへの直接アクセスを許可される。   Each ownership group is designated as either a shared nothing ownership group or a shared disk ownership group. Each shared nothing ownership group is assigned an owner from the database server. Only the owner of each shared nothing ownership group is allowed direct access to the data in the shared nothing ownership group. Each database server is allowed direct access to data in an ownership group designated as a shared disk ownership group.

この発明を、限定のためではなく例示のために、同様の参照符号が同様の要素を指す添付の図面の図に示す。   The invention is illustrated in the accompanying drawing figures, wherein like reference numerals refer to like elements, for purposes of illustration and not limitation.

好ましい実施例の詳細な説明
データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベ
ースのオーナーシップのパーティション化に対するアプローチを説明する。以下の説明において、説明のために、この発明の十分な理解をもたらすためにさまざまな特定の細部が記述される。しかしながら、当業者においてはこの発明をこれらの特定の細部なしに実行し得ることが明らかである。他の場合においては、この発明を不必要にわかりにくくすることを避けるために、周知の構造および装置はブロック図形式で示される。
Detailed Description of the Preferred Embodiments An approach to partitioning ownership of a database between different database servers to control access to the database is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.

ハードウェア概要
図1は、この発明を実現し得る実施例のコンピュータシステム100を示すブロック図である。コンピュータシステム100は、情報を通信するためのバス102または他の通信機構と、バス102に結合されて情報を処理するプロセッサ104とを含む。コンピュータシステム100はまた、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置のようなメインメモリ106を含み、該メインメモリ106はバス102に結合されて、情報およびプロセッサ104によって実行されるべき命令を記憶する。メインメモリ106はまた、プロセッサ104によって実行されるべき命令の実行の間の一時的変数または他の中間情報を記憶するためにも用い得る。コンピュータシステム100はさらに、読出専用メモリ(ROM)108または他のスタティック記憶装置を含み、該読出専用メモリ(ROM)108はバス102に結合されて、静的情報およびプロセッサ104に対する命令を記憶する。磁気ディスクまたは光学ディスクのような記憶装置110が設けられるが、これはバス102に結合されて情報および命令を記憶する。
Hardware Overview FIG. 1 is a block diagram showing a computer system 100 according to an embodiment that can implement the present invention. Computer system 100 includes a bus 102 or other communication mechanism for communicating information, and a processor 104 coupled with bus 102 for processing information. The computer system 100 also includes a main memory 106, such as random access memory (RAM) or other dynamic storage, that is coupled to the bus 102 for information and instructions to be executed by the processor 104. Remember. Main memory 106 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 104. The computer system 100 further includes a read only memory (ROM) 108 or other static storage device that is coupled to the bus 102 for storing static information and instructions for the processor 104. A storage device 110 such as a magnetic disk or an optical disk is provided, which is coupled to the bus 102 for storing information and instructions.

コンピュータシステム100は、バス102を介して陰極線管(CRT)のようなディスプレイ112に結合されて、コンピュータユーザに情報を表示する。英数字キーおよび他のキーを含む入力装置114がバス102に結合されて、プロセッサ104に対して情報およびコマンド選択を通信する。他の種類のユーザ入力装置はマウス、トラックボール、またはカーソル方向キーのようなカーソル制御116であって、プロセッサ104に対して方向情報およびコマンド選択を通信し、かつディスプレイ112におけるカーソル移動を制御する。この入力装置は典型的には、装置が平面における位置を指定することを可能にする第1の軸(たとえばx)および第2の軸(たとえばy)の2軸における2自由度を有する。   Computer system 100 is coupled via bus 102 to a display 112, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 114 including alphanumeric keys and other keys is coupled to the bus 102 to communicate information and command selections to the processor 104. Another type of user input device is a cursor control 116, such as a mouse, trackball, or cursor direction key, that communicates direction information and command selections to the processor 104 and controls cursor movement on the display 112. . The input device typically has two degrees of freedom in two axes, a first axis (eg, x) and a second axis (eg, y) that allows the device to specify a position in the plane.

この発明は、ハイブリッドシェアードディスク/シェアードナッシングデータベースシステムを提供するためのコンピュータシステム100の使用に関する。この発明の一実施例に従うと、そのようなデータベースシステムは、メインメモリ106に含まれる1つ以上の命令の1つ以上のシーケンスを実行するプロセッサ104に応答して、コンピュータシステム100によって提供される。そのような命令は、記憶装置110のような別のコンピュータ読取可能な記録媒体からメインメモリ106に読出される。メインメモリ106に含まれる命令のシーケンスの実行は、プロセッサ104にここに記載されるプロセスステップを行なわせる。代替的な実施例においては、発明を実現するためにソフトウェア命令の代わりに、またはこれとともにハードワイヤード回路が用いられる。こうして、この発明の実施例はハードウェア回路およびソフトウェアのどのような特定の組合せにも限定されない。   The present invention relates to the use of computer system 100 to provide a hybrid shared disk / shared nothing database system. In accordance with one embodiment of the present invention, such a database system is provided by computer system 100 in response to processor 104 executing one or more sequences of one or more instructions contained in main memory 106. . Such instructions are read into the main memory 106 from another computer readable recording medium such as the storage device 110. Execution of the sequence of instructions contained in main memory 106 causes processor 104 to perform the process steps described herein. In an alternative embodiment, hardwired circuitry is used in place of or in conjunction with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.

ここで用いられる「コンピュータ読取可能な記録媒体」という用語は、実行のためにプロセッサ104に命令を提供することに関わるどのような媒体をも指す。そのような媒体は、これらに限定されるものではないが、不揮発性媒体、揮発性媒体、および送信媒体を含む多くの形態をとり得る。不揮発性媒体はたとえば、記憶装置110のような光学または磁気ディスクを含む。揮発性媒体はメインメモリ106のようなダイナミックメモリを含む。送信媒体は、バス102を構成するワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。送信媒体は、無線波および赤外線データ通信の間に生成されるもののような、音波または光波の形態をもとり得る。   The term “computer-readable recording medium” as used herein refers to any medium that participates in providing instructions to processor 104 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks such as storage device 110. Volatile media includes dynamic memory, such as main memory 106. Transmission media includes coaxial cable, copper wire and optical fiber, including the wires that make up bus 102. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.

コンピュータ読取可能な記録媒体の一般的な形態は、たとえばフロッピー(登録商標)(R)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他のいかなる磁気媒体、CD−ROM、他のいかなる光学媒体、パンチカード、紙テープ、穴パターンを有する他のいかなる物理的媒体、RAM、PROM、およびEPROM、フラッシュ−EPROM、他のいかなるメモリチップまたはカートリッジ、以下に説明する搬送波、またはコンピュータが読出すことができる他のいかなる媒体をも含む。   Common forms of computer-readable recording media are, for example, floppy (R) disks, flexible disks, hard disks, magnetic tapes, any other magnetic medium, CD-ROM, any other optical medium, punch card , Paper tape, any other physical medium with a hole pattern, RAM, PROM, and EPROM, flash-EPROM, any other memory chip or cartridge, carrier wave described below, or any other that the computer can read Also includes media.

さまざまな形態のコンピュータ読取可能な記録媒体が、実行のためにプロセッサ104に1つ以上の命令の1つ以上のシーケンスを記録することに関わる。たとえば、命令は初期にはリモートコンピュータの磁気ディスクで記録され得る。リモートコンピュータは命令をそのダイナミックメモリにロードし、モデムを用いて電話線を介して命令を送信する。コンピュータシステム100にとってローカルであるモデムは、電話線上のデータを受けることができ、赤外線送信機を用いてデータを赤外線信号に変換する。赤外線検出器は赤外線信号で記録されるデータを受けることができ、適切な回路がデータをバス102に入れることができる。バス102は、データをメインメモリ106に記録し、ここからプロセッサ104が命令を検索して実行する。メインメモリ106によって受けられた命令は、プロセッサ104による実行の前または後に任意で記憶装置110に記憶される。   Various forms of computer readable media are involved in recording one or more sequences of one or more instructions on processor 104 for execution. For example, the instructions may initially be recorded on a remote computer magnetic disk. The remote computer loads the instructions into its dynamic memory and sends the instructions over a telephone line using a modem. A modem local to computer system 100 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. The infrared detector can receive data recorded with an infrared signal, and appropriate circuitry can place the data on the bus 102. The bus 102 records data in the main memory 106, from which the processor 104 retrieves and executes instructions. The instructions received by main memory 106 are optionally stored on storage device 110 either before or after execution by processor 104.

コンピュータシステム100はまた、バス102に結合される通信インターフェイス118をも含む。通信インターフェイス118は、ローカルネットワーク122に結合されるネットワークリンク120に結合される2方向データ通信を提供する。たとえば、通信インターフェイス118は対応の種類の電話線にデータ通信接続を提供するための統合サービスデジタル網(ISDN)カードまたはモデムであり得る。別の例としては、通信インターフェイス118は互換性のあるLANに対するデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであり得る。ワイヤレスリンクもまた実現され得る。そのような実現例のいずれにおいても、通信インターフェイス118はさまざまな種類の情報を表わすデジタルデータストリームを記録する電気的、電磁的または光信号を送受信する。   Computer system 100 also includes a communication interface 118 coupled to bus 102. Communication interface 118 provides a two-way data communication coupled to a network link 120 that is coupled to a local network 122. For example, the communication interface 118 may be an integrated services digital network (ISDN) card or modem for providing a data communication connection to a corresponding type of telephone line. As another example, communication interface 118 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. A wireless link may also be implemented. In any such implementation, communication interface 118 sends and receives electrical, electromagnetic or optical signals that record digital data streams representing various types of information.

ネットワークリンク120は典型的には、1つ以上のネットワークを介して他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンク120は、ローカルネットワーク122を介する、ホストコンピュータ124へのまたはインターネットサービスプロバイダ(ISP)126によって動作されるデータ装置への接続を提供し得る。ISP126は、現在一般的に「インターネット」128と呼ばれるワールドワイドパケットデータ通信ネットワークを介するデータ通信サービスを提供する。ローカルネットワーク122およびインターネット128は両方とも、デジタルデータストリームを記録する電気的、電磁的または光信号を用いる。デジタルデータをコンピュータシステム100に送受信する、さまざまなネットワークを通る信号、および通信インターフェイス118を通るネットワーク120上の信号は、情報を伝送する搬送波の例示的な形態である。   The network link 120 typically provides data communication to other data devices via one or more networks. For example, network link 120 may provide a connection to host computer 124 or to a data device operated by Internet service provider (ISP) 126 via local network 122. ISP 126 provides data communication services over a world wide packet data communication network now commonly referred to as the “Internet” 128. Both the local network 122 and the Internet 128 use electrical, electromagnetic or optical signals that record digital data streams. Signals through various networks that transmit and receive digital data to and from computer system 100, and signals on network 120 through communication interface 118, are exemplary forms of carrier waves that carry information.

コンピュータシステム100は、ネットワーク、ネットワークリンク120および通信インターフェイス118を介してメッセージを送り、かつプログラムコードを含むデータを受けることができる。インターネットの例においては、サーバ130がインターネット128、ISP126、ローカルネットワーク122および通信インターフェイス118を介して、アプリケーションプログラムのための要求されたコードを送信し得る。この発明に従うと、そのようなダウンロードされるアプリケーションの1つは、ここに説明されるハイブリッドシェアードディスク/シェアードナッシングデータベースシステムを提供する。   Computer system 100 can send messages and receive data including program code via a network, network link 120 and communication interface 118. In the Internet example, the server 130 may send the requested code for the application program via the Internet 128, ISP 126, local network 122 and communication interface 118. According to the present invention, one such downloaded application provides the hybrid shared disk / shared nothing database system described herein.

受信されるコードは、受信されるとプロセッサ104によって実行され、および/または後で実行するために記憶装置110に、または他の不揮発性記憶装置に記憶される。この態様で、コンピュータシステム100は搬送波の形態でアプリケーションコードを得ることができる。   The received code is executed by processor 104 as it is received and / or stored in storage device 110 for later execution or other non-volatile storage device. In this manner, computer system 100 can obtain application code in the form of a carrier wave.

ここに説明される、データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化に対するアプローチは、すべてのノードからすべてのディスクに対するシェアードディスクアクセスが提供されるコンピュータシステム、すなわち厳密なシェアードディスクアクセスに対して用い得るシステムで実現されるが、この発明の一局面に従うと、いくつかの「シェアードナッシング」ディスクデータに対するアクセスは、ソフトウェアによって規制される。   The approach described herein for partitioning database ownership between different database servers to control access to the database is a computer system that provides shared disk access to all disks from all nodes, That is, implemented in a system that can be used for strict shared disk access, but according to one aspect of the invention, access to some "shared nothing" disk data is regulated by software.

オーナーシップグループ
この発明の実施例に従うと、データベース(またはその一部)がオーナーシップグループにパーティション化される。各オーナーシップグループは、オーナーシップグループのオーナーとして1つ以上のデータベースサーバを割当てられる。オーナーシップグループのオーナーとして割当てられるデータベースサーバは、オーナーシップグループに属するすべてのデータ項目のオーナーとして扱われる。すなわち、これらはオーナーシップグループ内のデータ項目への直接アクセスを許可される一方、他のデータベースサーバはこれらのデータ項目への直接アクセスを許可されない。
Ownership Group According to an embodiment of the present invention, the database (or part thereof) is partitioned into ownership groups. Each ownership group is assigned one or more database servers as the owner of the ownership group. The database server assigned as the owner of the ownership group is treated as the owner of all data items belonging to the ownership group. That is, they are allowed direct access to data items in the ownership group, while other database servers are not allowed direct access to these data items.

一実施例に従うと、ともに頻繁にアクセスされるデータ項目は、同じオーナーシップグループにグループ化され、こうしてこれらが同じデータベースサーバによって所有されることを確実にする。オーナーシップグループは、関連するデータ項目のグループを不可分な単位(atomic unit)として扱うことにより、関連するデータ項目のグループに対する
動作を可能にする。たとえば、オーナーシップグループのオーナーシップを第1のデータベースサーバから第2のデータベースサーバに転送することにより、オーナーシップグループ内のすべてのデータ項目のオーナーシップを第1のデータベースサーバから第2のデータベースサーバへ転送することができる。
According to one embodiment, data items that are frequently accessed together are grouped into the same ownership group, thus ensuring that they are owned by the same database server. An ownership group allows operations on groups of related data items by treating the groups of related data items as an atomic unit. For example, ownership of all data items in the ownership group is transferred from the first database server to the second database server by transferring ownership of the ownership group from the first database server to the second database server. Can be transferred to.

ハイブリッドデータベースシステム
図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に接続される。
Hybrid Database System FIG. 2 is a block diagram illustrating a hybrid database system architecture according to an embodiment of the present invention. FIG. 2 includes three nodes 202, 204, and 206, on which there are three database servers 208, 210, and 212 that execute. Database servers 208, 210 and 212 are associated with buffer caches 220, 222 and 224, respectively. Each node 202, 204, and 206 is connected to a system bus 218 that allows database servers 208, 210, and 212 to directly access data in database 250 residing on two disks 214 and 216.

ディスク214および216に含まれるデータは、オーナーシップグループ230、232、234および236に論理的にパーティション化される。この発明の実施例に従うと、各オーナーシップグループは1つ以上のテーブルスペースを含む。テーブルスペースは1つ以上のデータファイルの集まりである。しかしながら、この発明はパーティション化のどのような特定の細分性にも限定されず、かつより大きなまたはより小さな範囲のオーナーシップグループで用いることが可能である。   The data contained on disks 214 and 216 is logically partitioned into ownership groups 230, 232, 234 and 236. According to an embodiment of the invention, each ownership group includes one or more table spaces. A table space is a collection of one or more data files. However, the invention is not limited to any particular granularity of partitioning and can be used with larger or smaller range ownership groups.

一実施例に従うと、各オーナーシップグループはシェアードディスクオーナーシップグループまたはシェアードナッシングオーナーシップグループとして指定される。シェアードナッシングオーナーシップグループとして指定された各オーナーシップグループは、そ
のオーナーとして利用可能なデータベースサーバの1つを割当てられる。図2に示すシステムにおいては、オーナーシップグループ230はサーバ210によって所有されるシェアードナッシングオーナーシップグループであり、オーナーシップグループ232はシェアードディスクオーナーシップグループであり、オーナーシップグループ234はサーバ212によって所有されるシェアードナッシングオーナーシップグループであり、オーナーシップグループ236はサーバ208によって所有されるシェアードナッシングオーナーシップグループである。
According to one embodiment, each ownership group is designated as a shared disk ownership group or a shared nothing ownership group. Each ownership group designated as a shared nothing ownership group is assigned one of the database servers available as its owner. In the system shown in FIG. 2, ownership group 230 is a shared nothing ownership group owned by server 210, ownership group 232 is a shared disk ownership group, and ownership group 234 is owned by server 212. A shared nothing ownership group, and the ownership group 236 is a shared nothing ownership group owned by the server 208.

オーナーシップグループ230はサーバ210によって所有されるシェアードナッシングオーナーシップグループであるため、サーバ210のみがオーナーシップグループ230内のデータ(D1)に直接アクセスすることを許可される。オーナーシップグループ230内のデータにアクセスすることを所望する他のどのサーバも、通常はサーバ210にメッセージ要求を送り、要求するサーバの代理としてサーバ210が所望のデータアクセスを行なうことを要求しなくてはならない。同様に、オーナーシップグループ234および236もまたシェアードナッシングオーナーシップグループであり、それぞれのオーナーによってのみ直接アクセスされ得る。   Since the ownership group 230 is a shared nothing ownership group owned by the server 210, only the server 210 is permitted to directly access the data (D1) in the ownership group 230. Any other server that desires to access data in the ownership group 230 will normally send a message request to the server 210 and not require the server 210 to perform the desired data access on behalf of the requesting server. must not. Similarly, ownership groups 234 and 236 are also shared-nothing ownership groups and can only be accessed directly by their respective owners.

オーナーシップグループ232はシェアードディスクオーナーシップグループであるため、どのようなデータベースサーバもその中に含まれるデータ組に直接アクセスすることが可能である。図2に示されるように、各データベースサーバはそのバッファキャッシュ内にこのデータ(D2)のコピーを含み得る。分散ロックマネージャはシェアードデータへのアクセスを調整するように用いられる。   Since the ownership group 232 is a shared disk ownership group, any database server can directly access the data set contained therein. As shown in FIG. 2, each database server may include a copy of this data (D2) in its buffer cache. A distributed lock manager is used to coordinate access to shared data.

一実施例に従うと、データベースシステムは特定のオーナーシップグループをシェアードディスクからシェアードナッシングへ、およびその逆に、ダイナミックに変更するための機構を含む。たとえば、もし特定の組のシェアードナッシングデータが頻繁な読出アクセス(読出ホットスポット)の対象となっていれば、これが属するオーナーシップグループをシェアードナッシングからシェアードディスクに変換することにより、シェアードディスクに変換され得る。同様に、もし特定の組のシェアードディスクデータがしばしば書込アクセス(書込ホットスポット)の対象となっていれば、このデータを含むオーナーシップグループをシェアードナッシングオーナーシップに変更し、オーナーシップグループのオーナーシップをデータベースサーバに割当てることにより、このデータをシェアードナッシングデータに変換することが可能である。   According to one embodiment, the database system includes a mechanism for dynamically changing a particular ownership group from shared disk to shared nothing, and vice versa. For example, if a particular set of shared nothing data is subject to frequent read access (read hotspot), it is converted to a shared disk by converting the ownership group to which it belongs from shared nothing to shared disk. obtain. Similarly, if a particular set of shared disk data is often subject to write access (write hotspots), change the ownership group that contains this data to shared nothing ownership, By assigning ownership to the database server, this data can be converted to shared nothing data.

この発明の一局面に従うと、データベースシステムはまたシェアードナッシングオーナーシップグループのオーナーシップを1つのノードから別のノードに再割当てするための機構を含む。これは、負荷平衡を向上させるためにオペレータによって要求されるか、またはノードN1が障害を起こした後で、ノードN1によって所有されるシェアードナッシングオーナーシップグループのデータへのアクセスをサポートし続けるために自動的に生じ得る。   In accordance with one aspect of the invention, the database system also includes a mechanism for reassigning ownership of a shared nothing ownership group from one node to another. This may be required by an operator to improve load balancing or to continue to support access to data in a shared nothing ownership group owned by node N1 after node N1 fails. It can happen automatically.

オーナーシップ
上述のように、いくつかのオーナーシップグループがシェアードナッシングオーナーシップグループとして指定され、いくつかのオーナーシップグループがシェアードディスクオーナーシップグループとして指定される、データベースシステムが提供される。シェアードナッシングオーナーシップグループごとにオーナーが割当てられる。シェアードナッシングオーナーシップグループのオーナーシップは、そのオーナーシップグループ内のデータに対して作業が実行されることをデータベースサーバが要求する場合に、データベースサーバがオーナーシップグループのオーナーに要求を送ることができるように、すべてのデータベースサーバに対して通知される。
Ownership As described above, a database system is provided in which some ownership groups are designated as shared nothing ownership groups and some ownership groups are designated as shared disk ownership groups. An owner is assigned to each shared nothing ownership group. Ownership of a shared nothing ownership group allows the database server to send a request to the owner of the ownership group when the database server requests that work be performed on the data in that ownership group So that all database servers are notified.

この発明の一実施例に従うと、さまざまなオーナーシップグループについてのオーナーシップ情報が制御ファイル内で維持され、データベースにアクセスするすべてのデータベースサーバが制御ファイルにアクセスすることを許可される。各データベースサーバは、そのキャッシュ内に制御ファイルのコピーを記憶し得る。データベースサーバはキャッシュ内の制御ファイルのコピーにより、オーナーシップ情報をディスクから読出すことに関わるオーバーヘッドを常に引起こすことなく、オーナーシップグループのオーナーシップを判断し得る。   According to one embodiment of the present invention, ownership information for various ownership groups is maintained in the control file and all database servers accessing the database are permitted to access the control file. Each database server may store a copy of the control file in its cache. The database server can determine ownership of the ownership group by copying the control file in the cache without always incurring the overhead associated with reading ownership information from the disk.

図3は、シェアードディスクおよびシェアードナッシングオーナーシップグループの両方を採用するシステムにおいてデータを所望するデータベースサーバによって行なわれるステップを示すフローチャートである。ステップ300において、データベースサーバは所望のデータが属するオーナーシップグループを判断する。ステップ302において、データベースサーバは所望のデータを含むオーナーシップグループのオーナーを判断する。上述のように、ステップ302は制御ファイルにアクセスすることによって行なわれ、そのコピーはデータベースサーバに付随するキャッシュに記憶され得る。もしオーナーシップグループがシェアードディスクオーナーシップグループであれば、すべてのデータベースサーバがオーナーシップグループのオーナーであると考えられる。もしオーナーシップグループがシェアードナッシングオーナーシップグループであれば、特定のデータベースサーバがオーナーシップグループのオーナーとして制御ファイル内で特定される。   FIG. 3 is a flowchart illustrating the steps performed by a database server desiring data in a system employing both shared disk and shared nothing ownership groups. In step 300, the database server determines the ownership group to which the desired data belongs. In step 302, the database server determines the owner of the ownership group that contains the desired data. As described above, step 302 is performed by accessing the control file, a copy of which can be stored in a cache associated with the database server. If the ownership group is a shared disk ownership group, all database servers are considered owners of the ownership group. If the ownership group is a shared nothing ownership group, a particular database server is identified in the control file as the owner of the ownership group.

ステップ304において、データベースサーバはこれが所望のデータを保持するオーナーシップグループのオーナーであるか否かを判断する。データベースサーバは、(1)オーナーシップグループはシェアードディスクオーナーシップグループである、または(2)オーナーシップグループはシェアードナッシングオーナーシップであって、かつデータベースサーバが制御ファイルにおいてシェアードナッシングオーナーシップグループのオーナーとして指定されている、のいずれかであれば、オーナーシップグループのオーナーである。もしデータベースサーバが、所望のデータを保持するオーナーシップグループのオーナーであれば、制御はステップ310に進み、ここでデータベースサーバは直接所望のデータを検索する。   In step 304, the database server determines whether it is the owner of the ownership group that holds the desired data. The database server (1) the ownership group is a shared disk ownership group, or (2) the ownership group is shared nothing ownership and the database server is the owner of the shared nothing ownership group in the control file. If any of these are specified, it is the owner of the ownership group. If the database server is the owner of the ownership group that holds the desired data, control proceeds to step 310 where the database server directly retrieves the desired data.

もしデータベースサーバがそのデータを保持するオーナーシップグループのオーナーでなければ、制御はステップ306に進む。ステップ306において、データベースサーバはオーナーシップグループのオーナーに対して、要求側の代理として所望のデータにアクセスするよう、要求を送る。ステップ308において、データベースサーバはオーナーシップグループのオーナーから所望のデータを受取る。   If the database server is not the owner of the ownership group that holds the data, control proceeds to step 306. In step 306, the database server sends a request to the owner of the ownership group to access the desired data on behalf of the requester. In step 308, the database server receives the desired data from the owner of the ownership group.

オーナー組
代替的な実施例に従うと、オーナーシップグループは(1)1つのデータベースサーバのみによって所有される(シェアードナッシング)、または(2)すべてのデータベースサーバによって所有される(シェアードディスク)、のいずれかに限定されない。そうではなく、オーナーシップグループは代替的に、利用可能なデータベースサーバのどのような特定のサブセットによっても所有され得る。特定のオーナーシップグループを所有するデータベースサーバの組は、ここでオーナーシップグループに対するオーナー組と称する。こうして、シェアードナッシングオーナーシップグループは、そのオーナー組の中に1つのデータベースサーバのみを含むオーナーシップグループと等価である一方、シェアードディスクオーナーシップグループは、すべての利用可能なデータベースをそのオーナー組に含むオーナーシップグループと等価である。
Owner Pairs According to alternative embodiments, an ownership group is either (1) owned by only one database server (shared nothing) or (2) owned by all database servers (shared disk). It is not limited to crab. Rather, the ownership group can alternatively be owned by any particular subset of available database servers. A set of database servers that own a particular ownership group is referred to herein as an owner set for the ownership group. Thus, a shared nothing ownership group is equivalent to an ownership group that includes only one database server in its owner set, while a shared disk ownership group includes all available databases in its owner set. Equivalent to an ownership group.

オーナー組がオーナーシップグループ内のデータに対して作業を行なうために用いられ
る場合、オーナーシップグループのオーナー組に属さないデータベースサーバは、オーナーシップグループのオーナー組に属するデータベースサーバの1つに対して要求を送る。要求に応答して、要求の受信側はオーナーシップグループ内のデータに直接アクセスし、要求された作業を行なう。オーナーシップグループ内の書込ホットスポットによって引起こされるコンテンションは、オーナーシップグループのオーナー組に属するデータベースサーバ間でのみ生じる。
When an owner set is used to work on data in an ownership group, a database server that does not belong to the ownership group's owner set is one of the database servers that belong to the ownership group's owner set. Send a request. In response to the request, the request recipient accesses the data in the ownership group directly and performs the requested work. Contention caused by write hotspots within the ownership group only occurs between database servers belonging to the ownership group's owner set.

オーナーシップグループのオーナーシップの変更
上述のように、オーナーシップグループをシェアードナッシングからシェアードディスクに変更する、またはシェアードディスクからシェアードナッシングに変更することが望ましい可能性がある。そのような変更は、読出または書込ホットスポットの検出に応答して自動的に、または手動で(たとえばデータベース管理者によって発行されるコマンドに応答して)開始される。
Changing Ownership of Ownership Group As described above, it may be desirable to change the ownership group from shared nothing to shared disk, or from shared disk to shared nothing. Such a change is initiated automatically in response to detection of a read or write hot spot or manually (eg, in response to a command issued by a database administrator).

オーナーシップグループを一方のオーナー組(「ソースオーナー組」)から他方のもの(「デスティネーションオーナー組」)に遷移させるために、さまざまな技術が用いられる。図4は、発明の実施例に従ったオーナーシップグループのオーナー組を変更するために行なわれるステップを示すフローチャートである。   Various techniques are used to transition an ownership group from one owner group (“source owner group”) to the other (“destination owner group”). FIG. 4 is a flowchart illustrating the steps performed to change the ownership group ownership group according to an embodiment of the invention.

図4を参照して、ステップ400において「変更禁止(disable change)」メッセージが利用可能なデータベースサーバのすべてに対して同報送信される。変更禁止メッセージは、オーナー組が変更される予定のオーナーシップグループ内のデータ(「遷移するオーナーシップグループ」)に対する順方向変更を中止するように、データベースサーバに命令する。順方向変更は、以前には存在しなかったバージョンを生成する変更である(すなわち、データ項目の新しい「現在の」バージョンを生成する)。これに対し、逆方向変更は、データ項目の以前に存在したバージョンの再生成をもたらす変更である。   Referring to FIG. 4, in step 400, a “disable change” message is broadcast to all available database servers. The change prohibition message instructs the database server to cancel the forward change to the data in the ownership group whose owner group is to be changed (“transition ownership group”). A forward change is a change that produces a version that did not exist before (ie, creates a new “current” version of the data item). In contrast, a backward change is a change that results in the regeneration of a previously existing version of the data item.

ステップ402において、データベースシステムの、オーナーシップグループのオーナー組を変更する役割を果たす部分(「オーナー変更機構」)は、遷移するオーナーシップグループに変更を行なったすべてのトランザクションが完遂するかまたはロールバックするまで待機する。   In step 402, the portion of the database system that is responsible for changing the ownership group ownership group ("owner change mechanism") completes or rolls back all transactions that have changed to the transitioning ownership group. Wait until

ステップ400の前に遷移するオーナーシップグループ内のデータに対して、すべてではないがいくらかの更新を行なったトランザクションは、オーナーシップグループに対する順方向変更がもはや許可されないのでロールバックする。ステップ400は遷移するオーナーシップグループへの順方向変更のみを阻止するので、データベースサーバは遷移するオーナーシップグループに対して既に行なった変更をロールバックすることを妨げられない。   Transactions that have made some, but not all, updates to the data in the ownership group that transitions before step 400 are rolled back because forward changes to the ownership group are no longer permitted. Step 400 only prevents forward changes to the transitioning ownership group, so the database server is not prevented from rolling back changes that have already been made to the transitioning ownership group.

不都合なことに、どのトランザクションがトランザクションオーナーシップグループを更新したかを判断するために相当の量のオーバーヘッドが要求され得る。したがって、データベースシステムが遷移するオーナーシップグループ内のデータを更新したトランザクションのトラッキングを試みない、この発明の実施例が提供される。しかしながら、この情報をトラッキングしないと、遷移するオーナーシップグループにおけるデータへのアクセスを許可され、かつステップ400以前に開始したトランザクションのいずれもが、遷移するオーナーシップグループにおけるデータに対する変更を行ない得たことが想定される。   Unfortunately, a significant amount of overhead can be required to determine which transaction has updated the transaction ownership group. Accordingly, an embodiment of the present invention is provided in which the database system does not attempt to track transactions that have updated data in ownership group transitions. However, if this information is not tracked, access to data in the transitioning ownership group is allowed and any transaction started before step 400 could have made changes to the data in the transitioning ownership group. Is assumed.

この想定に基づいて、ステップ402は、(1)遷移するオーナーシップグループにおけるデータにアクセスした可能性があり、かつ(2)ステップ400の前に開始した、ト
ランザクションのすべてが完遂するかまたはロールバックするまで、待機するようオーナー変更機構に要求する。典型的には、遷移するオーナーシップグループのソースオーナー組に属するデータベースサーバ内で実行するトランザクションのみが、遷移するオーナーシップグループにおけるデータにアクセスした可能性がある。こうして、もし遷移するオーナーシップグループがシェアードディスクであれば、ステップ400以前に開始したすべてのデータサーバ内におけるすべてのトランザクションが完遂またはロールバックするまで、オーナー変更機構は待機しなければならない。もし遷移するオーナーシップグループがシェアードナッシングであれば、遷移するオーナーシップグループを所有するデータベースサーバにおけるすべてのトランザクションが完遂するかまたはロールバックするまで、オーナー変更機構は待機しなければならない。これは、他のノードにおいて生じ、かつ遷移するオーナーシップグループに対してローカルであるサブトランザクションを生成した可能性のあるユーザトランザクションを含むことに留意されたい。
Based on this assumption, step 402 may (1) have accessed data in the transitioning ownership group, and (2) all of the transactions started before step 400 are completed or rolled back. Until it does, request the owner change mechanism to wait. Typically, only transactions executed within the database server belonging to the source owner set of the transitioning ownership group may have accessed data in the transitioning ownership group. Thus, if the transitioning ownership group is a shared disk, the owner change mechanism must wait until all transactions in all data servers started before step 400 are completed or rolled back. If the transitioning ownership group is shared nothing, the owner change mechanism must wait until all transactions in the database server that owns the transitioning ownership group have completed or rolled back. Note that this includes user transactions that may have generated sub-transactions that occur at other nodes and are local to the transitioning ownership group.

遷移するオーナーシップグループ内のデータを更新した可能性のあるすべてのトランザクションが完遂するかまたは打切られれば、制御はステップ404に進む。ステップ404において、オーナー変更機構は、制御ファイルを不可分な動作(atomic operation)において更新することにより、遷移するオーナーシップグループのオーナー組を変更する。たとえば、指定の変更は、遷移するオーナーシップグループをシェアードナッシングオーナーシップグループからシェアードディスクオーナーシップグループに、またはその逆に遷移させる。これに代えて、指定の変更は、オーナーシップグループタイプを変更することなく、単にシェアードナッシングオーナーシップグループを所有するデータベースサーバを変更し得る。   If all transactions that may have updated the data in the transitioning ownership group have been completed or aborted, control proceeds to step 404. In step 404, the owner change mechanism changes the owner group of the transitioned ownership group by updating the control file in an atomic operation. For example, a designated change causes the transitioning ownership group to transition from a shared nothing ownership group to a shared disk ownership group or vice versa. Alternatively, the designated change may simply change the database server that owns the shared nothing ownership group without changing the ownership group type.

制御ファイルが遷移するオーナーシップグループの新しいオーナー組を反映するよう変更されると、制御はステップ406に進む。ステップ406において、「リフレッシュキャッシュ」メッセージがすべての利用可能であるデータベースサーバに送られる。リフレッシュキャッシュメッセージを受取ると、各データベースサーバはそのキャッシュ内に含まれる制御ファイルのコピーを無効化する。したがって、データベースサーバは次いでオーナーシップグループのオーナーシップを判断するために制御ファイルを調べる必要がある場合に、それらは永続的記憶装置から制御ファイルの更新されたバージョンを検索する。こうして、これらは遷移するオーナーシップグループの新しいオーナー組を認識する。   If the control file is changed to reflect the new ownership set of the transitioning ownership group, control proceeds to step 406. In step 406, a “refresh cache” message is sent to all available database servers. Upon receipt of the refresh cache message, each database server invalidates the copy of the control file contained in the cache. Thus, if the database server then needs to look up the control file to determine ownership of the ownership group, they retrieve an updated version of the control file from persistent storage. Thus, they recognize the new owner set of the transitioning ownership group.

オーナーシップ変更に対する調整
特定の問合せが頻繁に用いられる予定の場合、問合せは典型的にはデータベース内に記憶される。ほとんどのデータベースシステムは、記憶された問合せが用いられるたびに実行プランを再計算するのではなく、記憶された問合せが最初にデータベースシステムに提出された時点で、記憶された問合せに対する実行プランを生成する。問合せの実行プランは、問合せによってアクセスされるデータを含むオーナーシップグループのオーナーシップを考慮に入れなければならない。たとえば、もし問合せが特定のデータベースサーバによって排他的に所有されるオーナーシップグループにおけるデータ項目に対する更新を特定すれば、問合せの実行プランはその特定のデータベースサーバに更新動作を転送することを含まなければならない。
Adjusting for ownership changes If a particular query is to be used frequently, the query is typically stored in a database. Most database systems do not recalculate the execution plan each time a stored query is used, but generate an execution plan for the stored query when the stored query is first submitted to the database system To do. The query execution plan must take into account the ownership of the ownership group that contains the data accessed by the query. For example, if a query identifies an update to a data item in an ownership group that is exclusively owned by a particular database server, the query execution plan must include forwarding update actions to that particular database server. Don't be.

しかしながら、上述のように、オーナーシップグループのオーナーシップを変更するための機構が提供される。そのようなオーナーシップ変更は、特定の記憶される問合せに対する実行プランが生成された後に生じ得る。したがって実行プランは、あるデータベースサーバに対して、このデータベースサーバがもはや所有していないオーナーシップグループ内のデータに対する動作を行なうことを、要求し得る。この発明の一実施例に従うと、所有しないオーナーシップグループ内のデータに対して動作を行なうよう要求されたデータベースサーバは、動作を要求したプロセスに対して「オーナーシップエラー」メッセー
ジを返す。オーナーシップエラーメッセージの受信に応答して、エラーを引き起こした問合せに対して新しい実行プランが生成される。新しい実行プランは、制御ファイルの現在のバージョンによって示されるように、オーナーシップグループの現在のオーナーシップを考慮に入れる。
However, as described above, a mechanism is provided for changing ownership of an ownership group. Such ownership change can occur after an execution plan for a particular stored query is generated. Thus, an execution plan may require a database server to perform operations on data in an ownership group that is no longer owned by the database server. According to one embodiment of the present invention, a database server that is requested to operate on data in an ownership group that it does not own returns an “ownership error” message to the process that requested the operation. In response to receiving the ownership error message, a new execution plan is generated for the query that caused the error. The new execution plan takes into account the current ownership of the ownership group, as indicated by the current version of the control file.

制御ファイル管理
上述のように、制御ファイルを更新するために不可分な操作が用いられて、オーナーシップグループの指定を変更する(ステップ404)。この動作が不可分であることを確実にするために、さまざまな機構を用い得る。たとえば、この発明の一実施例に従うと、制御ファイルは図5に示されるようにビットマップと一連のブロック対とを含む。ビットマップ512における各ビットは、ブロック対に対応する。
Control File Management As described above, inseparable operations are used to update the control file to change the ownership group designation (step 404). Various mechanisms can be used to ensure that this operation is indivisible. For example, according to one embodiment of the present invention, the control file includes a bitmap and a series of block pairs as shown in FIG. Each bit in the bitmap 512 corresponds to a block pair.

所与の時点で、ブロック対における1つのブロックのみが現在のデータを含む。ブロック対に付随するビットの値は、対応のブロック対の2つのブロックのうちどちらが現在のデータを保持するかを示す。たとえば、ビット502は、ブロック506および508を含むブロック対504に付随する。ビット502の値(たとえば「0」)は、ブロック506がブロック対504内の現在のブロックであることを示す。ビット502の値は「1」に変更されて、ブロック508内のデータが現在のものであることを(かつ、したがってブロック506内のデータがもはや有効ではないことを)示し得る。   At a given time, only one block in the block pair contains the current data. The value of the bit associated with the block pair indicates which of the two blocks of the corresponding block pair holds the current data. For example, bit 502 is associated with block pair 504 that includes blocks 506 and 508. The value of bit 502 (eg, “0”) indicates that block 506 is the current block in block pair 504. The value of bit 502 may be changed to “1” to indicate that the data in block 508 is current (and therefore the data in block 506 is no longer valid).

ブロック対の現在のものではないブロックにおけるデータが無効であると考慮されることから、制御ファイルの有効内容を変更することなくデータは現在のものではないブロックに書込まれる。制御ファイルの内容は、ビットマップ512内のビットの値が変更された場合にのみ有効に変更される。こうして、不可分な変更への予備的なステップとして、ブロック対504内の現在のブロック506の内容は、メモリにロードされ、修正され、ブロック対504内の現在のものではないブロック508に記憶され得る。これらの予備的なステップが行なわれた後で、変更は、ブロック対504に対応するビットマップ512内のビット502の値を変更することにより不可分に行なわれる。   Since the data in the non-current block of the block pair is considered invalid, the data is written to the non-current block without changing the valid contents of the control file. The contents of the control file are effectively changed only when the value of the bit in the bitmap 512 is changed. Thus, as a preliminary step to an inseparable change, the contents of current block 506 in block pair 504 can be loaded into memory, modified, and stored in non-current block 508 in block pair 504. . After these preliminary steps have been made, the change is made atomically by changing the value of bit 502 in bitmap 512 corresponding to block pair 504.

これは、変更を不可分に行なうための技術の一例にすぎない。他の技術もまた可能である。こうして、この発明は不可分に変更を行なうためのどのような特定の技術にも限定されない。   This is just one example of a technique for making changes indivisible. Other techniques are also possible. Thus, the present invention is not limited to any particular technique for making invariant changes.

オーナーシップグループ間でのデータ項目の移動
テーブルスペースのようなデータ項目のオーナーシップを変更する1つの方法は、データ項目が属するオーナーシップグループのオーナー組を変更することである。データ項目のオーナーシップを変更するための第2の方法とは、データ項目を異なったオーナーシップグループに再割当てすることである。たとえば、テーブルスペースAをサーバAに割当てられたオーナーシップグループから取除き、これをサーバBに割当てられたオーナーシップグループに入れることにより、テーブルスペースAのオーナーをサーバAからサーバBに変更することができる。
Moving Data Items Between Ownership Groups One way to change the ownership of a data item such as a table space is to change the owner group of the ownership group to which the data item belongs. A second method for changing the ownership of a data item is to reassign the data item to a different ownership group. For example, changing the owner of table space A from server A to server B by removing table space A from the ownership group assigned to server A and placing it in the ownership group assigned to server B Can do.

この発明の一実施例に従うと、オーナーシップグループのメンバーシップはデータベース内のデータ辞書に維持される。したがって、データ項目を第1のオーナーシップグループから第2のオーナーシップグループに移動するためには、第1および第2のオーナーシップグループの両方についてのメンバーシップ情報がデータ辞書内で更新されなければならない。どのオーナーシップグループにデータ項目が属するかを変更することに関わるさまざまなステップは、上述のオーナーシップグループのオーナー組を変更することと同様である。特定的には、転送されるテーブルスペース(遷移するテーブルスペース)へのアクセスはディスエーブルされる。するとオーナーシップ変更機構は、データ項目(または
そのコンポーネント)に対するロックを保持するすべてのトランザクションがロールバックまたは完遂するまで待機する。
According to one embodiment of the invention, ownership group membership is maintained in a data dictionary in the database. Thus, in order to move a data item from a first ownership group to a second ownership group, membership information for both the first and second ownership groups must be updated in the data dictionary. Don't be. The various steps involved in changing which ownership group a data item belongs to are similar to changing the ownership group owner group described above. Specifically, access to the transferred table space (transition table space) is disabled. The ownership change mechanism then waits until all transactions holding the lock on the data item (or its components) are rolled back or completed.

データ項目に対するロックを保持するすべてのトランザクションが完遂するかまたはロールバックすると、データ辞書が修正されて、データ項目の新しいオーナーシップグループを示す。次いで制御ファイルが修正されて、データ項目の移動先のオーナーシップグループのオーナー組が今やデータ項目のオーナー組であることを示す。この変更は、データ項目へターゲットオーナーがアクセスすることを不可分に可能にする。もしオーナーシップグループがオーナーシップ変更の途中であれば、制御ファイルは更新されてデータ項目が「移動遅延」状態にあることを示す。   When all transactions that hold a lock on a data item complete or roll back, the data dictionary is modified to indicate the new ownership group of the data item. The control file is then modified to indicate that the owner group of the ownership group to which the data item is moved is now the owner group of the data item. This change inseparably allows the target owner to access the data item. If the ownership group is in the middle of ownership change, the control file is updated to indicate that the data item is in the “movement delay” state.

データ項目が属するオーナーシップグループの変更は、データ項目のオーナーを変更させるか、または変更させない。もしソースオーナーシップグループのオーナー組が遷移するオーナーシップグループのオーナー組と同じであれば、データ項目のオーナーはデータ項目がソースオーナーシップグループから遷移するオーナーシップグループに移動された場合にも変更しない。しかしながら、もしソースオーナーシップグループのオーナー組が遷移するオーナーシップグループのオーナー組と同じでなければ、データ項目のオーナーは、データ項目がソースオーナーシップグループから遷移するオーナーシップグループに移動された場合に変更する。   Changing the ownership group to which the data item belongs causes the data item owner to change or not change. If the owner group of the source ownership group is the same as the owner group of the transitioning ownership group, the data item owner will not change even if the data item is moved from the source ownership group to the transitioning ownership group . However, if the owner group of the source ownership group is not the same as the owner group of the transitioning ownership group, the data item owner will be moved if the data item is moved from the source ownership group to the transitioning ownership group. change.

特定のオーナーシップ変更条件
一実施例に従うと、(1)オーナーシップグループのオーナー組を変更する試みがなされるが、そのオーナーシップグループに属するデータ項目は異なったオーナーシップグループへの転送の途中である、および(2)データ項目を異なったオーナーシップグループに転送される試みがなされるが、デスティネーションオーナーシップグループはそのオーナー組を変更している途中である、という状況に対処するための技術が提供される。
Specific Ownership Change Conditions According to one embodiment, (1) an attempt is made to change the ownership group of an ownership group, but data items belonging to that ownership group are in the process of being transferred to a different ownership group. Techniques for dealing with situations where (2) and (2) an attempt is made to transfer a data item to a different ownership group, but the destination ownership group is in the process of changing its owner set Is provided.

これらの条件を検出するために、この発明の実施例は、オーナーシップグループに属するデータ項目(たとえばテーブルスペース)ごとに1つ以上のステータスフラグを制御ファイル内において提供する。たとえば、フラグはデータ項目が属するオーナーシップグループが新しいオーナーを割当てるプロセスにあるかどうかを示すために用いることができる。同様に、フラグはデータ項目が異なったオーナーシップグループに転送されるプロセスにあるかどうかを示し得る。   In order to detect these conditions, embodiments of the present invention provide one or more status flags in the control file for each data item (eg, table space) belonging to the ownership group. For example, a flag can be used to indicate whether the ownership group to which the data item belongs is in the process of assigning a new owner. Similarly, the flag may indicate whether the data item is in the process of being transferred to a different ownership group.

オーナーシップグループのオーナー組を変更するための試みがなされると、オーナーシップ変更機構はオーナーシップグループに属するデータ項目のステータスフラグを調べて、オーナーシップグループに属するいずれかのデータ項目が異なったオーナーシップグループに転送される途中であるかどうかを判断する。もしオーナーシップグループに属するいずれかのデータ項目が異なったオーナーシップグループへ転送される途中であると、オーナーシップグループのオーナー組を変更するための試みは打切られる。もしいずれのオーナーシップグループに属するデータ項目も異なったオーナーシップグループに転送される途中でなければ、オーナーシップグループに属するデータ項目のステータスフラグがセットされて、データ項目が属するオーナーシップグループのオーナーシップが遷移していることを示す。さまざまなデータベースサーバには、それらの制御ファイルのキャッシュしたバージョンを無効化するためのメッセージも送られる。これは、これらがステータスフラグの新しい値を参照することを確実にする。   When an attempt is made to change the ownership group of an ownership group, the ownership change mechanism checks the status flag of the data item belonging to the ownership group and any data item belonging to the ownership group has a different owner. Determine if it is in the process of being transferred to the ship group. If any data item belonging to the ownership group is in the process of being transferred to a different ownership group, the attempt to change the ownership group ownership group is aborted. If a data item belonging to any ownership group is not in the process of being transferred to a different ownership group, the status flag of the data item belonging to the ownership group is set and the ownership of the ownership group to which the data item belongs Indicates a transition. Various database servers are also sent messages to invalidate cached versions of their control files. This ensures that they refer to the new value of the status flag.

データ項目を異なったオーナーシップグループに転送する試みがなされる場合に、データ項目のステータスフラグがチェックされて、デスティネーションオーナーシップグループがそのオーナー組を変更されている最中であるかどうかを判断する。一実施例に従うと
、このチェックはデータ項目の新しいオーナーシップグループを反映するようにデータ辞書を修正した後であるが、新しいオーナーシップグループのオーナーにデータ項目へのアクセスを与えるように制御ファイルを更新する前に行なわれる。もしデータ項目が属するオーナーシップグループがそのオーナー組を変更されている途中であれば、制御ファイルにおけるそのデータ項目に対するステータスフラグがセットされて「移動遅延」条件を示す。さらに、データベース広さ(database-wide)の「移動遅延」フラグがセットされて
、データベースが移動遅延状態にあるいくらかのデータ項目を含むことを示す。
When an attempt is made to transfer a data item to a different ownership group, the data item's status flag is checked to determine if the destination ownership group is changing its owner set. To do. According to one embodiment, this check is after the data dictionary has been modified to reflect the new ownership group of the data item, but the control file is set to give the new ownership group owner access to the data item. This is done before updating. If the ownership group to which the data item belongs is in the process of changing its owner group, the status flag for that data item in the control file is set to indicate a “movement delay” condition. In addition, a database-wide "movement delay" flag is set to indicate that the database contains some data items that are in the movement delay state.

遷移するオーナーシップグループのオーナーシップを転送する動作が完了すると、転送を行なうプロセスはステータスフラグを更新して、オーナーシップグループがオーナーシップ転送のプロセスにはもはやないことを示す。さらに、プロセスはこのオーナーシップグループのオーナーシップ転送の間にこのオーナーシップグループに移動したいかなるデータ項目の「移動遅延」フラグをもクリアする。   When the operation of transferring ownership of the transitioning ownership group is complete, the process that performs the transfer updates the status flag to indicate that the ownership group is no longer in the ownership transfer process. In addition, the process clears the “Move Delay” flag for any data item that has been moved to this ownership group during the ownership transfer of this ownership group.

障害回復
オーナーシップ変更の進行途中で、障害が起こり得る。障害は「プロセス不能(process death)」または「サーバ不能(server death)」の結果であり得る。プロセス不能は
、オーナーシップ変更に関わる特定のプロセスに障害が起こった場合に生じる。サーバ不能は、すべてのデータベースサーバに障害が起こった場合に生じる。これらの両方の障害タイプが生じると、永続的記憶装置にまだ記憶されていなかったすべての変更は失われ得る。そのような障害の後では、データベースを矛盾のない状態に戻すことが必要である。
Failure recovery Failures can occur while ownership changes are in progress. The failure may be the result of “process death” or “server death”. Process inability occurs when a particular process involved in ownership changes fails. Server failure occurs when all database servers fail. When both of these failure types occur, all changes that have not yet been stored in persistent storage can be lost. After such a failure, it is necessary to return the database to a consistent state.

この発明の一実施例に従うと、プロセス不能からの回復はステートオブジェクトを用いて行なわれる。ステートオブジェクトは、プロセスが属するデータベースサーバに付随するメモリ領域に割当てられるデータ構造である。動作を行なう前に、プロセスはステートオブジェクトを更新して、行なおうとしている動作を示す。もしプロセスが不能になれば、データベースサーバ内の別のプロセス(たとえば「プロセスモニタ」)がステートオブジェクトの方法(「クリーンアップルーチン」)を呼出してデータベースを矛盾のない状態に戻す。   According to one embodiment of the invention, recovery from process failure is performed using a state object. A state object is a data structure assigned to a memory area associated with a database server to which a process belongs. Before performing an action, the process updates the state object to indicate the action it is about to do. If the process becomes disabled, another process in the database server (eg, “process monitor”) calls the state object method (“cleanup routine”) to bring the database back to a consistent state.

プロセス障害の後にクリーンアップのために行なわれる特定の動作は、不能になったプロセスが何の動作をしていたか、かつ不能になる前に不能になったプロセスがどれぐらい実行していたかに依存する。一実施例に従うと、オーナーシップグループのオーナーシップ変更の間のプロセス障害は以下のように扱われる。   The specific action taken for cleanup after a process failure depends on what the disabled process was doing and how long the disabled process was running before it was disabled To do. According to one embodiment, process failures during ownership group ownership changes are handled as follows.

もしオーナーシップ変更を行なうプロセスが最後の制御ファイル変更を行なう前に不能になっていれば、オーナーシップグループのオーナーとしてオリジナルのオーナーが復元される。   If the process of changing ownership is disabled before making the last control file change, the original owner is restored as the owner of the ownership group.

もしオーナーシップ変更を行なうプロセスが最終の制御ファイル変更を行なった後であるが、ステートオブジェクトを削除する前に不能になっていれば、新しいオーナーがオーナーとしてとどまり、ステートオブジェクトは削除される。   If the process that changes ownership is after the last control file change but is disabled before deleting the state object, the new owner remains the owner and the state object is deleted.

1つのオーナーシップグループから別のものへデータ項目を転送する間に生じるプロセス障害は以下のように扱われる。   Process failures that occur while transferring data items from one ownership group to another are handled as follows.

もし転送を行なうプロセスがデータ辞書に対する変更を行なう前に不能になっていれば、データ項目のオリジナルのオーナーがデータ項目のオーナーとして復元される。   If the transfer process is disabled before making changes to the data dictionary, the original owner of the data item is restored as the owner of the data item.

もし転送を行なうプロセスが辞書に対する変更が行なわれた後であるが、最終的な制御
ファイル変更の前に生じていれば、プロセスモニタは移動を完了させ、かつ制御ファイルに対する適切な変更を行なう。もしオーナーシップグループがオーナーシップ変更の途中であれば、データ項目は「移動遅延」とマークされる。
If the transferring process is after a change to the dictionary has occurred but before the final control file change, the process monitor completes the move and makes the appropriate changes to the control file. If the ownership group is in the process of changing ownership, the data item is marked "Movement Delay".

もし転送を行なうプロセスが最終的な制御ファイル変更の後であるが、ステートオブジェクトが削除される前に不能になっていれば、プロセスモニタはステートオブジェクトを削除する。   If the process performing the transfer is after the final control file change but is disabled before the state object is deleted, the process monitor deletes the state object.

サーバ不能
データベースサーバが不能になっている間には、不能になったサーバによって排他的に所有されていたオーナーシップグループにおけるデータへのアクセスは提供されない。したがって、この発明の一実施例に従うと、サーバ不能とは自動的なオーナーシップ変更を引起こす事象であり、障害を起こしたサーバによって排他的に所有されるすべてのオーナーシップグループは新しいオーナーに割当てられる。
Server disabled While the database server is disabled, no access is provided to data in ownership groups that were exclusively owned by the disabled server. Thus, according to one embodiment of the present invention, server inability is an event that causes an automatic ownership change and all ownership groups that are exclusively owned by the failed server are assigned to a new owner. It is done.

サーバ障害の後でクリーンアップするために行なわれる特定の動作は、サーバが不能になる前にデータベースサーバが行なっていた動作が何であって、オーナーシップ転送動作がどの程度行なわれていたかに依存する。一実施例に従うと、オーナーシップグループのオーナーシップ変更の間のサーバ障害は以下のように扱われる。   The specific action taken to clean up after a server failure depends on what the database server was doing before the server was disabled and how much ownership transfer action was taking place . According to one embodiment, server failures during ownership group ownership changes are handled as follows.

もしソースデータベースサーバが最終的な制御ファイル変更が行なわれる前に不能になっていれば、オーナーシップグループは別のスレッドに割当てられ、制御ファイルにおけるステータス情報は更新されてオーナーシップグループがもはや遷移していないことを示す。   If the source database server is disabled before the final control file change is made, the ownership group is assigned to another thread, the status information in the control file is updated, and the ownership group no longer transitions. Indicates not.

もしターゲットデータベースサーバが不能になれば、(1)遷移を行なうプロセスがそのインスタンスの不能を検出して遷移を打切るか、または(2)不能になったサーバの回復の間に、オーナーシップグループが不能になったサーバから別のサーバに再割当てされる。   If the target database server becomes disabled, (1) the process that performs the transition detects that the instance is disabled and aborts the transition, or (2) the ownership group during recovery of the disabled server Is reassigned from one server to another.

データ項目を1つのオーナーシップグループから別のオーナーシップグループに転送する間に生じるサーバ障害は以下のように扱われる。   Server failures that occur while transferring data items from one ownership group to another are handled as follows.

もしソースサーバが辞書変更の前に不能になっていれば、サーバの回復の間に、新しいオーナーがソースオーナーシップグループに割当てられ、データ項目の移動フラグがクリアされる。   If the source server is disabled before the dictionary change, during server recovery, a new owner is assigned to the source ownership group and the data item move flag is cleared.

もしソースサーバが辞書変更の後であるが最終的な制御ファイル変更の前に不能になっていれば、ソースサーバの回復の間に、正しいオーナーをデータ項目に割当てるか、またはこれを移動遅延としてマークするかによって移動動作が完了される。   If the source server is after a dictionary change but is not possible before the final control file change, during source server recovery, assign the correct owner to the data item, or this as a migration delay The moving operation is completed depending on whether the mark is made.

もしターゲットサーバが不能になっており最終的な制御ファイル変更が行なわれていれば、データ項目は「移動遅延」としてマークされる。不能になったサーバの回復の間に、遷移するオーナーシップグループのオーナーシップは再割当てされ、移動遅延フラグはクリアされる。   If the target server is disabled and the final control file change has been made, the data item is marked as “move delay”. During recovery of a disabled server, ownership of the transitioning ownership group is reallocated and the migration delay flag is cleared.

オーナーシップ変更の間のダウンタイムの削減
上述のように、図4に示されるステップはオーナーシップグループのオーナーシップを変更するための1つの技術を示す。この技術において、ステップ402はオーナーシップ変更機構が、遷移するオーナーシップグループに属するデータに対して変更を行なったす
べてのトランザクションが完遂するかロールバックするまで待機することを要求する。この待機中には、遷移するオーナーシップグループ内のすべてのデータは利用不可能である。したがって、待機持続時間を最小限にすることが必要である。
Reducing Downtime Between Ownership Changes As noted above, the steps shown in FIG. 4 illustrate one technique for changing ownership of an ownership group. In this technique, step 402 requires the ownership change mechanism to wait until all transactions that have made changes to data belonging to the transitioning ownership group are completed or rolled back. During this standby, all data in the transitioning ownership group is unavailable. It is therefore necessary to minimize the waiting duration.

上述のように、遷移するオーナーシップグループに属するデータに対してどのトランザクションが実際に変更を行なったかをトラッキングすることは実際的ではない可能性がある。したがって、オーナーシップ変更機構は、遷移するオーナーシップグループのソースオーナー組に属するすべてのデータベースサーバで実行するすべてのトランザクションが完遂またはロールバックするまで待機する。オーナーシップ変更機構が待機しなければならないトランザクションの数のために、そのトランザクションの多くは遷移するオーナーシップグループからのデータに対して変更を行なってさえいないかもしれないが、遅延は顕著になり得る。   As mentioned above, it may not be practical to track which transaction actually changed the data belonging to the transitioning ownership group. Therefore, the ownership change mechanism waits until all transactions executed on all database servers belonging to the source owner set of the transitioning ownership group are completed or rolled back. Because of the number of transactions that the ownership change mechanism must wait for, many of those transactions may not even have made changes to data from the transitioning ownership group, but the delay can be significant. .

代替的な実施例に従うと、オーナー間で遷移されるデータをこの遅延の間も利用可能にする機構が提供される。特定的には、すべてのデータベースサーバに対して変更禁止メッセージは送られない。そうではなく、すべてのデータベースサーバに対して「新しいオーナー」メッセージが送られて、オーナーシップグループのターゲットオーナー組を示す。新しいオーナーメッセージは、たとえば、制御ファイルを更新した後で、すべてのデータベースサーバにリフレッシュキャッシュメッセージを送ることにより同報送信して(1)ソースオーナー組、(2)ターゲットオーナー組、および(3)オーナーシップグループが遷移中であること、を示す。   According to an alternative embodiment, a mechanism is provided that makes data that is transitioned between owners available during this delay. Specifically, the change prohibition message is not sent to all database servers. Instead, a “new owner” message is sent to all database servers to indicate the target owner set of the ownership group. The new owner message is broadcast, for example, by sending a refresh cache message to all database servers after updating the control file (1) source owner group, (2) target owner group, and (3) Indicates that the ownership group is in transition.

新しいオーナーメッセージをサーバが受取った後に、そのサーバによって開始されたすべてのトランザクションは、ターゲットオーナー組がオーナーシップグループを所有するかのように行なわれる。新しいオーナーメッセージをサーバが受取る前に、そのサーバにおいて開始されたすべてのトランザクションは、ソースオーナー組がオーナーシップグループを所有するかのように実行され続ける。こうして、待機期間の間に、遷移するオーナーシップグループのオーナーシップは、ソースオーナー組のメンバーとターゲットオーナー組のメンバーとの間で有効に共有される。言い換えると、遷移するオーナーシップグループのデータは一時的に2つのデータベースサーバの間で共有され、シェアードディスクロック機構はそのようなデータに対するアクセスのために一時的に起動される。   After a server receives a new owner message, all transactions initiated by that server are performed as if the target owner set owns the ownership group. Before the server receives a new owner message, all transactions initiated at that server continue to be executed as if the source owner set owns the ownership group. Thus, during the waiting period, ownership of the transitioning ownership group is effectively shared between the members of the source owner group and the members of the target owner group. In other words, the transiting ownership group data is temporarily shared between the two database servers, and the shared disk lock mechanism is temporarily activated for access to such data.

新しいオーナーメッセージの同報送信の前に始まったソースオーナー組におけるすべてのトランザクションが完遂するかロールバックした場合に、制御ファイルは2回目に更新される。2回目の更新の間に、制御ファイルは更新されてターゲットオーナー組がオーナーシップグループに対する排他的なオーナー組であることを示し、オーナーシップグループがもはや遷移していないことを示す。   The control file is updated a second time when all transactions in the source owner pair that began before the broadcast of the new owner message are completed or rolled back. During the second update, the control file is updated to indicate that the target owner set is an exclusive owner set for the ownership group, indicating that the ownership group is no longer transitioning.

上述の明細書において、この発明はその特定の実施例を参照して説明された。しかしながら、この発明の広い精神および範囲から離れることなく、さまざまな修正および変更をなし得ることが明らかとなる。したがって、明細書と図面とは、限定的な意味ではなく例示的な意味で捉えられるべきである。   In the foregoing specification, the invention has been described with reference to specific embodiments thereof. However, it will be apparent that various modifications and changes can be made without departing from the broad spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

この発明の実施例を実現するコンピュータシステムのブロック図である。It is a block diagram of the computer system which implement | achieves the Example of this invention. この発明の実施例に従ったオーナーシップグループを用いる分散データベースシステムのブロック図である。1 is a block diagram of a distributed database system using an ownership group according to an embodiment of the present invention. FIG. オーナーシップグループをサポートするシステムにおけるデータ項目に対する動作を行なうステップを示すフローチャートである。It is a flowchart which shows the step which performs the operation | movement with respect to the data item in the system which supports an ownership group. この発明の実施例に従ったオーナーシップグループのオーナー組を変更するためのステップを示すフローチャートである。6 is a flowchart showing steps for changing an owner group of an ownership group according to an embodiment of the present invention. この発明の実施例に従った不可分な変更を行なうための技術を示すブロック図である。FIG. 3 is a block diagram showing a technique for making an inseparable change according to an embodiment of the present invention.

Claims (24)

システムであって、
第1のデータの組および第2のデータの組を記憶するデータベースと、
前記データベースへアクセスする複数のノードを含み、
前記複数のノードの各ノードは、1つ以上のプロセッサおよびメモリを含み、
前記複数のノードは、1つ以上のノードの第1の組と、1つ以上のノードの第2の組とからなり、
前記1つ以上のノードの第2の組にあるノードで前記1つ以上のノードの第1の組にもあるノードはなく、
記複数のノードの各ノードは、前記第1のデータの組に直接アクセスすること許可され
前記1つ以上のノードの第1の組のみが前記第2のデータの組に直接アクセスすること許可され、
ノードは、別のノードを介してデータを要求することが必要とされない場合に、当該データに直接アクセスすることが許可され、
前記1つ以上のノードの第2の組が前記第2のデータの組内のデータに関わる読取または書込動作の実行を必要とする場合に、前記1つ以上のノードの第2の組は、前記1つ以上のノードの第1の組に要求を送るよう構成される、システム。
A system,
A database storing a first data set and a second data set;
And a plurality of nodes that access to said database,
Each node of the plurality of nodes includes one or more processors and memory;
The plurality of nodes comprises a first set of one or more nodes and a second set of one or more nodes;
There are no nodes in the second set of one or more nodes that are also in the first set of one or more nodes,
Each node of the previous SL plurality of nodes, it is allowed to directly access said first set of data,
Only the first set of one or more nodes is allowed to directly access the second set of data ;
A node is allowed to access the data directly when it is not required to request the data through another node,
If the second set of one or more nodes needs to perform a read or write operation involving data in the second set of data, the second set of one or more nodes is , A system configured to send a request to a first set of the one or more nodes .
前記1つ以上のノードのうちの第1の組は単一のノードを有し、
前記第2のデータの組へのすべてのアクセスは前記単一のノードを介する、請求項1に記載のシステム。
A first set of the one or more nodes comprises a single node;
The system of claim 1, wherein all access to the second data set is through the single node.
前記1つ以上のノードの第1の組、複数のノードの第1のサブセットであり、
前記データベースは、複数のノードの第2のサブセットのみが直接アクセスを許可される第3のデータの組を含み、
前記第1のサブセットは前記第2のサブセットとは異なる、請求項1に記載のシステム。
The first set of one or more nodes is a first subset of a plurality of nodes ;
The database includes a third set of data only the second subset of multiple nodes is allowed to access directly,
The system of claim 1, wherein the first subset is different from the second subset.
前記複数のノードのうちの少なくとも1つのノードが、前記第1のサブセットおよび前記第2のサブセットの両方に属する、請求項3に記載のシステム。   The system of claim 3, wherein at least one node of the plurality of nodes belongs to both the first subset and the second subset. 1つ以上のノードの第1の組にあるノードを変更するための機構をさらに含む、請求項1に記載のシステム。 Before Symbol further comprising one or more mechanisms for changing the first node in the set of nodes, the system according to claim 1. 前記サブセットに属するノードの障害に応答して、1つ以上のノードの第1の組にあるノードを自動的に変更するための機構をさらに含む、請求項1に記載のシステム。 Wherein in response to the failure of nodes belonging to a subset, before Symbol further comprising one or more first mechanism for automatically changing a node to a set of nodes, the system according to claim 1. 前記データベースは複数のデータ項目を記憶し
前記第1のデータの組は、前記複数のデータ項目のうちの1つ以上のデータ項目を含み、前記システムはさらに、
前記複数のデータ項目のどのデータ項目が前記第1のデータの組にあるかを変更するための機構をさらに含む、請求項1に記載のシステム。
Wherein the database stores a plurality of data items,
The first set of data includes one or more data items of the plurality of data items, and the system further includes:
The system of claim 1, further comprising a mechanism for changing which data items of the plurality of data items are in the first set of data.
前記データベースは複数のデータ項目を記憶し
前記第2のデータの組は、前記複数のデータ項目のうちの1つ以上のデータ項目を含み、前記システムはさらに、
前記複数のデータ項目のどのデータ項目が前記第2のデータの組にあるかを変更するための機構をさらに含む、請求項1に記載のシステム。
Wherein the database stores a plurality of data items,
The second set of data includes one or more data items of the plurality of data items, and the system further includes:
The system of claim 1, further comprising a mechanism for changing which data items of the plurality of data items are in the second set of data.
データベースへ直接アクセスする複数のノードによるデータベースへのアクセスを管理するための方法であって、
前記データベースのうちの少なくとも第1の部分を、前記複数のノードの各ノードが直接アクセスを許可される第1のデータの組にパーティション化するステップと、
前記複数のノードの各ノードは、1つ以上のプロセッサおよびメモリを含み、
前記複数のノードは、1つ以上のノードの第1の組と、1つ以上のノードの第2の組とからなり、
前記1つ以上のノードの第2の組にあるノードで前記1つ以上のノードの第1の組にもあるノードはなく、
前記方法はさらに、
前記データベースのうちの少なくとも第2の部分を、前記1つ以上のノードの第1の組のみが直接アクセスを許可される第2のデータの組にパーティション化するステップを含み、
ノードは、別のノードを介してデータを要求することが必要とされない場合に、当該データに直接アクセスすることが許可され、
前記1つ以上のノードの第2の組は、前記1つ以上のノードの第2の組が前記第2のデータの組内のデータに関わる読取または書込動作の実行を必要とする場合に、前記1つ以上のノードの第1の組に要求を送るよう構成され、
各前記ステップは、1つ以上のプロセッサによって実行される、方法。
A method for managing access to a database by multiple nodes that directly access the database,
Partitioning at least a first portion of the database into a first set of data to which each node of the plurality of nodes is allowed direct access;
Each node of the plurality of nodes includes one or more processors and memory;
The plurality of nodes comprises a first set of one or more nodes and a second set of one or more nodes;
There are no nodes in the second set of one or more nodes that are also in the first set of one or more nodes,
The method further includes:
At least a second portion of said database, includes steps to set the partitioning of the second data only the first set of one or more nodes is allowed to access directly,
A node is allowed to access the data directly when it is not required to request the data through another node,
The second set of one or more nodes is when the second set of one or more nodes needs to perform a read or write operation involving data in the second set of data. , Configured to send a request to a first set of the one or more nodes ;
A method wherein each said step is performed by one or more processors .
前記1つ以上のノードの第1の組は単一のノードを有し、
前記第2のデータの組へのすべてのアクセスは前記単一のノードを介する、請求項に記載の方法。
The first set of one or more nodes comprises a single node;
The method of claim 9 , wherein all access to the second set of data is through the single node.
前記1つ以上のノードの第1の組、複数のノードの第1のサブセットであり、前記方法は、
前記データベースのうちの少なくとも第3の部分を、複数のノードの第2のサブセットのみが直接アクセスを許可される第3のデータの組にパーティション化するステップをさらに含み、
前記第1のサブセットは前記第2のサブセットとは異なる、請求項に記載の方法。
The first set of one or more nodes is a first subset of a plurality of nodes, the method comprising:
Partitioning at least a third portion of the database into a third set of data that only a second subset of nodes is allowed to access directly;
The method of claim 9 , wherein the first subset is different from the second subset.
前記複数のノードのうちの少なくとも1つのノードは、前記第1のサブセットおよび前記第2のサブセットの両方に属する、請求項11に記載の方法。 The method of claim 11 , wherein at least one node of the plurality of nodes belongs to both the first subset and the second subset. 前記1つ以上のノードの第1の組にあるノードを変更するステップをさらに含む、請求項に記載の方法。 The method of claim 9 , further comprising changing a node in the first set of the one or more nodes . 前記サブセットに属するノードの障害に応答して、1つ以上のノードの第1の組にあるノードを自動的に変更するステップをさらに含む、請求項に記載の方法。 In response to the failure of a node belonging to said subset, before Symbol further comprising the step of automatically changing one or more first nodes in the set of nodes The method of claim 9. 前記データベースは複数のデータ項目を記憶し
前記第1のデータの組は、前記複数のデータ項目のうちの1つ以上のデータ項目を含み、前記方法はさらに、
前記複数のデータ項目のどのデータ項目が前記第1のデータの組にあるかを変更するステップをさらに含む、請求項に記載の方法。
Wherein the database stores a plurality of data items,
The first set of data includes one or more data items of the plurality of data items, and the method further includes:
The method of claim 9 , further comprising changing which data items of the plurality of data items are in the first set of data.
前記データベースは複数のデータ項目を記憶し
前記第2のデータの組は、前記複数のデータ項目のうちの1つ以上のデータ項目を含み、前記方法はさらに、
前記複数のデータ項目のどのデータ項目が前記第2のデータの組にあるかを変更するステップを含む、請求項に記載の方法。
Wherein the database stores a plurality of data items,
The second set of data includes one or more data items of the plurality of data items, and the method further includes:
The method of claim 9 , comprising changing which data items of the plurality of data items are in the second set of data.
データベースへアクセスする複数のノードによる前記データベースへのアクセスを管理するための命令の1つ以上のシーケンスを記録するコンピュータ読取可能な記録媒体であって、前記複数のノードは、1つ以上のノードの第1の組と、1つ以上のノードの第2の組とからなり、前記1つ以上のノードの第2の組にあるノードで前記1つ以上のノードの第1の組にもあるノードはなく、前記複数のノードの各ノードは、1つ以上のプロセッサおよびメモリを含み、
1つ以上のプロセッサによる前記命令の1つ以上のシーケンスの実行は、前記1つ以上のプロセッサに、
前記データベースのうちの少なくとも第1の部分を、前記複数のノードの各ノードが直接アクセスを許可される第1のデータの組にパーティション化するステップと、
前記データベースのうちの少なくとも第2の部分を、前記1つ以上のノードの第1の組のみが直接アクセスを許可される第2のデータの組にパーティション化するステップとを実行させ、
ノードは、別のノードを介してデータを要求することが必要とされない場合に、当該データに直接アクセスすることが許可され、
前記1つ以上のノードの第2の組は、前記1つ以上のノードの第2の組が前記第2のデータの組内のデータに関わる読取または書込動作の実行を必要とする場合に、前記1つ以上のノードの第1の組に要求を送るよう構成される、コンピュータ読取可能な記録媒体。
A computer readable recording medium for recording one or more sequences of instructions for managing access to said database by a plurality of nodes that access the database, the plurality of nodes, one or more nodes A first set of one or more nodes and a second set of one or more nodes, the second set of one or more nodes being also in the first set of one or more nodes There are no nodes, and each node of the plurality of nodes includes one or more processors and memory;
Execution of one or more sequences of the instructions by one or more processors causes the one or more processors to
Partitioning at least a first portion of the database into a first set of data to which each node of the plurality of nodes is allowed direct access;
Partitioning at least a second portion of the database into a second set of data that only a first set of one or more nodes is allowed to access directly;
A node is allowed to access the data directly when it is not required to request the data through another node,
The second set of one or more nodes is when the second set of one or more nodes needs to perform a read or write operation involving data in the second set of data. , A computer readable recording medium configured to send a request to the first set of one or more nodes .
前記1つ以上のノードの第1の組は単一のノードを有し、
前記第2のデータの組へのすべてのアクセスは前記単一のノードを介する、請求項17に記載のコンピュータ読取可能な記録媒体。
The first set of one or more nodes comprises a single node;
The computer-readable medium of claim 17 , wherein all access to the second data set is through the single node.
前記1つ以上のノードの第1の組、複数のノードの第1のサブセットであり、前記1つ以上のプロセッサによって実行された場合に前記1つ以上のプロセッサに、
前記データベースのうちの少なくとも第3の部分を、複数のノードの第2のサブセットのみが直接アクセスを許可される、第3のデータの組にパーティション化するステップを行なわせる命令をさらに含み、
前記第1のサブセットは前記第2のサブセットとは異なる、請求項17に記載のコンピュータ読取可能な記録媒体。
The first set of one or more nodes is a first subset of a plurality of nodes , and when executed by the one or more processors, to the one or more processors,
Further comprising instructions for partitioning at least a third portion of the database into a third set of data, wherein only a second subset of nodes is allowed direct access;
The computer-readable recording medium according to claim 17 , wherein the first subset is different from the second subset.
前記複数のノードのうちの少なくとも1つのノードは、前記第1のサブセットおよび前記第2のサブセットの両方に属する、請求項19に記載のコンピュータ読取可能な記録媒体。 The computer-readable recording medium according to claim 19 , wherein at least one node of the plurality of nodes belongs to both the first subset and the second subset. 前記1つ以上のプロセッサによって実行された場合に前記1つ以上のプロセッサに、
1つ以上のノードの第1の組にあるノードを変更するステップを実行させる命令をさらに含む、請求項17に記載のコンピュータ読取可能な記録媒体。
To the one or more processors when executed by the one or more processors;
Further comprising instructions for performing the step of changing the nodes in the first set of pre-Symbol one or more nodes, the computer readable recording medium of claim 17.
前記1つ以上のプロセッサによって実行された場合に前記1つ以上のプロセッサに、
前記サブセットに属するノードの障害に応答して、1つ以上のノードの第1の組にあるノードを自動的に変更するステップを実行させる命令をさらに含む、請求項17に記載のコンピュータ読取可能な記録媒体。
To the one or more processors when executed by the one or more processors;
In response to the failure of a node belonging to said subset, before Symbol further comprising instructions for performing the step of automatically changing one or more first in the set node of the node, reading computer of claim 17 Possible recording media.
前記データベースは複数のデータ項目を記憶し、前記第1のデータの組は前記複数のデータ項目のうちの1つ以上のデータ項目を含み、前記1つ以上のプロセッサによって実行された場合に前記1つ以上のプロセッサに
前記複数のデータ項目のどのデータ項目が前記第1のデータの組にあるかを変更するステップを実行させる命令をさらに含む、請求項17に記載のコンピュータ読取可能な記録媒体。
Wherein when the database stores a plurality of data items, which are executed by the first set of data includes one or more data items of the plurality of data items, wherein the one or more processors 1 18. The computer readable recording medium of claim 17 , further comprising instructions that cause one or more processors to perform the step of changing which data items of the plurality of data items are in the first set of data.
前記データベースは複数のデータ項目を記憶し、前記第1のデータの組は前記複数のデータ項目のうちの1つ以上のデータ項目を含み、前記1つ以上のプロセッサによって実行された場合に前記1つ以上のプロセッサに
前記複数のデータ項目のどのデータ項目が前記第2のデータの組にあるかを変更するステップを実行させる命令をさらに含む、請求項17に記載のコンピュータ読取可能な記録媒体。
Wherein when the database stores a plurality of data items, which are executed by the first set of data includes one or more data items of the plurality of data items, wherein the one or more processors 1 18. The computer readable recording medium of claim 17 , further comprising instructions that cause one or more processors to perform the step of changing which data items of the plurality of data items are in the second set of data.
JP2007047852A 2007-02-27 2007-02-27 Partitioning database ownership between different database servers to control access to the database Expired - Lifetime JP4664931B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007047852A JP4664931B2 (en) 2007-02-27 2007-02-27 Partitioning database ownership between different database servers to control access to the database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007047852A JP4664931B2 (en) 2007-02-27 2007-02-27 Partitioning database ownership between different database servers to control access to the database

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003509358A Division JP4746838B2 (en) 2001-06-28 2001-06-28 Partitioning database ownership between different database servers to control access to the database

Publications (2)

Publication Number Publication Date
JP2007188518A JP2007188518A (en) 2007-07-26
JP4664931B2 true JP4664931B2 (en) 2011-04-06

Family

ID=38343584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007047852A Expired - Lifetime JP4664931B2 (en) 2007-02-27 2007-02-27 Partitioning database ownership between different database servers to control access to the database

Country Status (1)

Country Link
JP (1) JP4664931B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013033345A (en) 2011-08-01 2013-02-14 Internatl Business Mach Corp <Ibm> Transaction processing system, method and program
JP5940074B2 (en) 2011-09-30 2016-06-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Transaction processing system, method and program
JP7031919B1 (en) * 2021-09-03 2022-03-08 株式会社Scalar Transaction processing system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075853A (en) * 1999-09-03 2001-03-23 Hitachi Ltd Computer system, and computer and storage device used for the computer system
JP2002318725A (en) * 2001-04-20 2002-10-31 Hitachi Ltd Disk array system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075853A (en) * 1999-09-03 2001-03-23 Hitachi Ltd Computer system, and computer and storage device used for the computer system
JP2002318725A (en) * 2001-04-20 2002-10-31 Hitachi Ltd Disk array system

Also Published As

Publication number Publication date
JP2007188518A (en) 2007-07-26

Similar Documents

Publication Publication Date Title
US6321238B1 (en) Hybrid shared nothing/shared disk database system
JP4746838B2 (en) Partitioning database ownership between different database servers to control access to the database
US6341340B1 (en) Transitioning ownership of data items between ownership groups
US7917596B2 (en) Super master
EP1652082B1 (en) Ownership reassignment in a shared-nothing database system
US7120651B2 (en) Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US6587921B2 (en) Method and apparatus for cache synchronization in a clustered environment
US7814065B2 (en) Affinity-based recovery/failover in a cluster environment
JP3815967B2 (en) Method and apparatus for transferring data from a cache of one node to a cache of another node
US8510334B2 (en) Lock manager on disk
AU2001271680A1 (en) Partitioning ownership of a database among different database servers to control access to the database
US20040148289A1 (en) One-phase commit in a shared-nothing database system
JP2007501455A (en) Parallel recovery with non-failing nodes
CN100565460C (en) Be used for method of managing data
JP2006508459A (en) High-performance lock management for flash copy in n-way shared storage systems
JP4664931B2 (en) Partitioning database ownership between different database servers to control access to the database
WO2003003252A1 (en) Partitioning ownership of a database among different database servers to control access to the database
JP2006351040A (en) Inter-node shared file control method
CA2534066C (en) One-phase commit in a shared-nothing database system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100824

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100827

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100927

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100930

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101022

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101124

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4664931

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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