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