(57)【要約】      （修正有）【課題】主データベースと副ホットスタンバイデータベースとを使用するデータベースシステムを提供する。【解決手段】コンピュータシステムは、1つまたは複数のプロセッサによって実施される主データベースシステムと、ホットスタンバイシステムとして構成される副データベースシステムとを含む。副データベースシステムは、主データベースシステムに対する混乱中に主データベースシステムの本質的な機能性のうちの少なくとも最小量を提供することができる。主データベースシステムは、照会からの作業負荷が副データベースシステムにシフトされ得ることを、主データベースシステムに向けられたクライアントアプリケーションからの照会要求から判定し、照会を実行するように副データベースシステムに指示するようにクライアントアプリケーションに指示する。【選択図】図４
2018088235.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実施される主データベースシステムと、
前記1つまたは複数のプロセッサによって実施される副データベースシステムであって、前記副データベースシステムは、前記主データベースシステムに対する混乱中に前記主データベースシステムの本質的な機能性のうちの少なくとも最小量を提供することのできる、前記主データベースシステムのホットスタンバイシステムとして構成される、副データベースシステムと
を含み、前記主データベースシステムは、前記1つまたは複数のプロセッサに、
照会からの作業負荷が前記副データベースシステムにシフトされ得ることを、前記主データベースシステムに向けられたクライアントアプリケーションからの照会要求から判定させ、
前記照会を実行するように前記副データベースシステムに指示するように前記クライアントアプリケーションに指示させる
ように、前記コンピュータシステム上で実行可能なプログラミング命令によって構成される
コンピュータシステム。
【請求項２】
前記1つまたは複数のプロセッサに、照会からの作業負荷が前記副データベースシステムにシフトされ得ることを、前記主データベースシステムに向けられたクライアントアプリケーションからの照会要求から判定させる前記プログラミング命令は、前記1つまたは複数のプロセッサに、
前記照会要求内のルーティングヒントが、前記照会からの作業負荷が前記副データベースシステムにシフトされ得ることを示すと判定させ、
前記照会がデータの書込を伴わないことを判定させる
プログラミング命令を含む、請求項1に記載のコンピュータシステム。
【請求項３】
前記1つまたは複数のプロセッサに、前記照会を実行するように前記副データベースシステムに指示するように前記クライアントアプリケーションに指示させる前記プログラミング命令は、前記1つまたは複数のプロセッサに、前記副データベースシステムのアイデンティティを前記クライアントアプリケーションに提供させるプログラミング命令を含む、請求項1に記載のコンピュータシステム。
【請求項４】
前記副データベースシステムは、前記1つまたは複数のプロセッサに、
前記クライアントアプリケーションからの前記照会の受信に応答して、前記照会から複製遅延パラメータを取り出させ、前記複製遅延パラメータは、前記照会に応答するデータの最大の受諾できる複製遅延を示し、
前記照会に応答するデータの実際のデータラグを取り出させ、
前記実際のデータラグを前記複製遅延パラメータと比較させ、
前記実際のデータラグが前記複製遅延パラメータを超えない時に前記クライアントアプリケーションに照会に応答する前記データを提供させる
ように、前記コンピュータシステム上で実行可能なプログラミング命令によって構成される、請求項1に記載のコンピュータシステム。
【請求項５】
前記副データベースシステムは、前記1つまたは複数のプロセッサに、
前記実際のデータラグが前記複製遅延パラメータを超える時に、前記主データベースシステムに前記照会をルーティングする指示を前記クライアントアプリケーションに提供させる
ように、前記コンピュータシステム上で実行可能なプログラミング命令によってさらに構成される、請求項4に記載のコンピュータシステム。
【請求項６】
前記副データベースシステムは、前記1つまたは複数のプロセッサに、
前記実際のデータラグが前記複製遅延パラメータを超える時に、照会に応答する前記データおよびフォールバック指示を前記クライアントアプリケーションに提供させる
ように、前記コンピュータシステム上で実行可能なプログラミング命令によってさらに構成される、請求項4に記載のコンピュータシステム。
【請求項７】
前記副データベースシステムは、前記1つまたは複数のプロセッサに、
前記実際のデータラグが前記複製遅延パラメータを超える時に、フォールバック指示を提供させ、前記照会に応答する前記データを前記クライアントアプリケーションに提供させない
ように、前記コンピュータシステム上で実行可能なプログラミング命令によってさらに構成される、請求項4に記載のコンピュータシステム。
【請求項８】
主データベースシステムと副データベースシステムとを含むコンピュータシステム内でのコンピュータ実施される方法であって、前記副データベースシステムは、前記主データベースシステムに対する混乱中に前記主データベースシステムの本質的な機能性のうちの少なくとも最小量を提供することのできる、前記主データベースシステムのバックアップシステムとして構成され、前記方法は、
前記主データベースシステムによって、照会を受信する前にクライアントアプリケーションから照会要求を受信するステップと、
前記主データベースシステムによって、前記照会からの作業負荷が前記副データベースシステムにシフトされ得ることを前記照会要求内のルーティングヒントが示すことを判定するステップと、
前記照会の実行がデータの書込を伴わないことを判定するステップと、
前記主データベースシステムによって、前記照会を前記副データベースシステムにルーティングするように前記クライアントアプリケーションに指示すべきであると判定するステップと、
前記主データベースシステムによって、前記照会を前記副データベースシステムにルーティングするように前記クライアントアプリケーションに指示するステップと
を含む、方法。
【請求項９】
前記照会を前記副データベースシステムにルーティングするように前記クライアントアプリケーションに指示するステップは、前記副データベースシステムのアイデンティティを前記クライアントアプリケーションに提供するステップを含む、請求項8に記載の方法。
【請求項１０】
動作のホットスタンバイモードである間に、前記副データベースシステムにおけるデータ取出しを要求する前記照会を前記クライアントアプリケーションから受信するステップ
をさらに含む、請求項8に記載の方法。
【請求項１１】
前記副データベースシステムによって、前記照会から複製遅延パラメータを取り出すステップであって、前記複製遅延パラメータは、前記照会に応答するデータの最大の受諾できる複製遅延を示す、取り出すステップと、
前記副データベースシステムによって、前記照会に応答する前記データの実際のデータラグを取り出すステップと、
前記副データベースシステムによって、前記実際のデータラグを前記複製遅延パラメータと比較するステップと、
前記副データベースシステムによって、前記実際のデータラグが前記複製遅延パラメータを超えない時に前記照会に応答する前記データを提供するステップと
をさらに含む、請求項10に記載の方法。
【請求項１２】
前記副データベースシステムによって、前記実際のデータラグが前記複製遅延パラメータを超える時に、前記主データベースシステムに前記照会をルーティングする指示を前記クライアントアプリケーションに提供するステップ
をさらに含む、請求項11に記載の方法。
【請求項１３】
前記副データベースシステムによって、前記実際のデータラグが前記複製遅延パラメータを超える時に、前記照会に応答する前記データおよびフォールバック指示を前記クライアントアプリケーションに提供するステップ
をさらに含む、請求項11に記載の方法。
【請求項１４】
前記副データベースシステムによって、前記実際のデータラグが前記複製遅延パラメータを超える時に、フォールバック指示を前記クライアントアプリケーションに提供するステップ
をさらに含む、請求項11に記載の方法。
【請求項１５】
方法を実行するプログラミング命令を実施する非一時的コンピュータ可読記憶媒体であって、前記方法は、
主データベースシステムによって、照会を受信する前にクライアントアプリケーションから照会要求を受信するステップと、
前記主データベースシステムによって、前記照会からの作業負荷が副データベースシステムにシフトされ得ることを前記照会要求内のルーティングヒントが示すことを判定するステップであって、前記副データベースシステムは、前記主データベースシステムに対する混乱中に前記主データベースシステムの本質的な機能性のうちの少なくとも最小量を提供することのできる、前記主データベースシステムのバックアップシステムとして構成される、判定するステップと、
前記照会の実行がデータの書込を伴わないことを判定するステップと、
前記主データベースシステムによって、前記照会を前記副データベースシステムにルーティングするように前記クライアントアプリケーションに指示すべきであると判定するステップと、
前記主データベースシステムによって、前記照会を前記副データベースシステムにルーティングするように前記クライアントアプリケーションに指示するステップと
を含む、非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記照会を前記副データベースシステムにルーティングするように前記クライアントアプリケーションに指示するステップは、前記副データベースシステムのアイデンティティを前記クライアントアプリケーションに提供するステップを含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記方法は、
動作のホットスタンバイモードである間に、前記副データベースシステムにおけるデータ取出しを要求する前記照会を前記クライアントアプリケーションから受信するステップ
をさらに含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記方法は、
前記副データベースシステムによって、前記照会から複製遅延パラメータを取り出すステップであって、前記複製遅延パラメータは、前記照会に応答するデータの最大の受諾できる複製遅延を示す、取り出すステップと、
前記副データベースシステムによって、前記照会に応答する前記データの実際のデータラグを取り出すステップと、
前記副データベースシステムによって、前記実際のデータラグを前記複製遅延パラメータと比較するステップと、
前記副データベースシステムによって、前記実際のデータラグが前記複製遅延パラメータを超えない時に前記照会に応答する前記データを提供するステップと
をさらに含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記方法は、
前記副データベースシステムによって、前記実際のデータラグが前記複製遅延パラメータを超える時に、前記主データベースシステムに前記照会をルーティングする指示を前記クライアントアプリケーションに提供するステップ
をさらに含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記方法は、
前記副データベースシステムによって、前記実際のデータラグが前記複製遅延パラメータを超える時に、前記照会に応答する前記データおよびフォールバック指示を前記クライアントアプリケーションに提供するステップ
をさらに含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明される主題は、データベースシステムに関し、より具体的には、主データベースと副ホットスタンバイデータベースとを使用するデータベースシステムに関する。
【背景技術】
【０００２】
データベースシステムは、データベースとデータベース管理システム(DBMS)とを含む。データベースは、データの編成されたコレクションである。DBMSは、データを取り込み、分析するために、1つまたは複数のプロセッサ上で実行し、ユーザ、他のアプリケーション、およびデータベースと相互作用するコンピュータソフトウェアを含む。DBMSは、データベースの定義、作成、照会、更新、および管理を可能にすることができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
コンピュータシステムは、データベースシステムを提供するように構成される。コンピュータシステムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実施される主データベースシステムと、1つまたは複数のプロセッサによって実施される副データベースシステムとを含む。副データベースシステムは、主データベースシステムのホットスタンバイシステムとして構成される。副データベースシステムは、主データベースシステムに対する混乱中に主データベースシステムの本質的な機能性のうちの少なくとも最小量を提供することができる。主データベースシステムは、1つまたは複数のプロセッサに、照会からの作業負荷が副データベースシステムにシフトされ得ることを、主データベースシステムに向けられたクライアントアプリケーションからの照会要求から判定させ、照会を実行するように副データベースシステムに指示するようにクライアントアプリケーションに指示させるように、コンピュータシステム上で実行可能なプログラミング命令によって構成される。
【０００４】
これらの態様および他の実施形態は、以下の特徴のうちの1つまたは複数を含むことができる。1つまたは複数のプロセッサに、照会からの作業負荷が副データベースシステムにシフトされ得ることを、主データベースシステムに向けられたクライアントアプリケーションからの照会要求から判定させるように構成されたプログラミング命令は、1つまたは複数のプロセッサに、照会要求内のルーティングヒントが、照会からの作業負荷が副データベースシステムにシフトされ得ることを示すと判定させ、照会がデータの書込を伴わないことを判定させるプログラミング命令を含むことができる。1つまたは複数のプロセッサに、照会を実行するように副データベースシステムに指示するようにクライアントアプリケーションに指示させるように構成されたプログラミング命令は、1つまたは複数のプロセッサに、副データベースシステムのアイデンティティをクライアントアプリケーションに提供させるプログラミング命令を含むことができる。
【０００５】
副データベースシステムは、1つまたは複数のプロセッサに、クライアントアプリケーションからの照会の受信に応答して、照会から複製遅延パラメータを取り出させるように、コンピュータシステム上で実行可能なプログラミング命令によって構成され得、複製遅延(replication delay)パラメータは、照会に応答するデータの最大の受諾できる複製遅延を示す。副データベースシステムは、照会に応答するデータの実際のデータラグ(data lag)を取り出し、実際のデータラグを複製遅延パラメータと比較し、実際のデータラグが複製遅延パラメータを超えない時にクライアントアプリケーションに照会に応答するデータを提供する、コンピュータシステム上で実行可能なプログラミング命令によってさらに構成され得る。
【０００６】
副データベースシステムは、1つまたは複数のプロセッサに、実際のデータラグが複製遅延パラメータを超える時に、主データベースシステムに照会をルーティングする指示をクライアントアプリケーションに提供させるように、コンピュータシステム上で実行可能なプログラミング命令によってさらに構成され得る。副データベースシステムは、1つまたは複数のプロセッサに、実際のデータラグが複製遅延パラメータを超える時に、照会に応答するデータおよびフォールバック指示をクライアントアプリケーションに提供させるように、コンピュータシステム上で実行可能なプログラミング命令によってさらに構成され得る。副データベースシステムは、1つまたは複数のプロセッサに、実際のデータラグが複製遅延パラメータを超える時に、フォールバック指示を提供させ、照会に応答するデータをクライアントアプリケーションに提供させないように、コンピュータシステム上で実行可能なプログラミング命令によってさらに構成され得る。
【０００７】
別の実施形態では、コンピュータシステム内でのコンピュータ実施される方法が提供される。コンピュータシステムは、主データベースシステムと副データベースシステムとを含む。副データベースシステムは、主データベースシステムのバックアップシステムとして構成され、主データベースシステムに対する混乱中に主データベースシステムの本質的な機能性のうちの少なくとも最小量を提供することができる。方法は、主データベースシステムによって、照会を受信する前にクライアントアプリケーションから照会要求を受信するステップと、主データベースシステムによって、照会からの作業負荷が副データベースシステムにシフトされ得ることを照会要求内のルーティングヒントが示すことを判定するステップと、照会の実行がデータの書込を伴わないことを判定するステップと、主データベースシステムによって、照会を副データベースシステムにルーティングするようにクライアントアプリケーションに指示すべきであると判定するステップと、主データベースシステムによって、照会を副データベースシステムにルーティングするようにクライアントアプリケーションに指示するステップとを含む。
【０００８】
これらの態様および他の実施形態は、以下の特徴のうちの1つまたは複数を含むことができる。照会を副データベースシステムにルーティングするようにクライアントアプリケーションに指示するステップは、副データベースシステムのアイデンティティをクライアントアプリケーションに提供するステップを含むことができる。方法は、動作のホットスタンバイモードである間に、副データベースシステムにおけるデータ取出しを要求する照会をクライアントアプリケーションから受信するステップをさらに含むことができる。方法は、副データベースシステムによって、照会から複製遅延パラメータを取り出すステップをさらに含むことができ、複製遅延パラメータは、照会に応答するデータの最大の受諾できる複製遅延を示す。方法は、副データベースシステムによって、照会に応答するデータの実際のデータラグを取り出すステップと、副データベースシステムによって、実際のデータラグを複製遅延パラメータと比較するステップと、副データベースシステムによって、実際のデータラグが複製遅延パラメータを超えない時に照会に応答するデータを提供するステップとをさらに含むことができる。方法は、副データベースシステムによって、実際のデータラグが複製遅延パラメータを超える時に、主データベースシステムに照会をルーティングする指示をクライアントアプリケーションに提供するステップをさらに含むことができる。方法は、副データベースシステムによって、実際のデータラグが複製遅延パラメータを超える時に、照会に応答するデータおよびフォールバック指示をクライアントアプリケーションに提供するステップをさらに含むことができる。方法は、副データベースシステムによって、実際のデータラグが複製遅延パラメータを超える時に、フォールバック指示をクライアントアプリケーションに提供するステップをさらに含むことができる。
【０００９】
別の実施形態では、方法を実行するプログラミング命令を実施する非一時的コンピュータ可読記憶媒体が提供される。方法は、主データベースシステムによって、照会を受信する前にクライアントアプリケーションから照会要求を受信するステップと、主データベースシステムによって、照会からの作業負荷が副データベースシステムにシフトされ得ることを照会要求内のルーティングヒントが示すことを判定するステップであって、副データベースシステムは、主データベースシステムに対する混乱中に主データベースシステムの本質的な機能性のうちの少なくとも最小量を提供することのできる、主データベースシステムのバックアップシステムとして構成される、判定するステップと、照会の実行がデータの書込を伴わないことを判定するステップと、主データベースシステムによって、照会を副データベースシステムにルーティングするようにクライアントアプリケーションに指示すべきであると判定するステップと、主データベースシステムによって、照会を副データベースシステムにルーティングするようにクライアントアプリケーションに指示するステップとを含む。
【００１０】
これらの態様および他の実施形態は、以下の特徴のうちの1つまたは複数を含むことができる。照会を副データベースシステムにルーティングするようにクライアントアプリケーションに指示するステップは、副データベースシステムのアイデンティティをクライアントアプリケーションに提供するステップを含むことができる。非一時的コンピュータ可読記憶媒体内で実施されるプログラミング命令によって提供される方法は、動作のホットスタンバイモードである間に、副データベースシステムにおけるデータ取出しを要求する照会をクライアントアプリケーションから受信するステップをさらに含むことができる。方法は、副データベースシステムによって、照会から複製遅延パラメータを取り出すステップであって、複製遅延パラメータは、照会に応答するデータの最大の受諾できる複製遅延を示す、取り出すステップと、副データベースシステムによって、照会に応答するデータの実際のデータラグを取り出すステップと、副データベースシステムによって、実際のデータラグを複製遅延パラメータと比較するステップと、副データベースシステムによって、実際のデータラグが複製遅延パラメータを超えない時に照会に応答するデータを提供するステップとをさらに含むことができる。方法は、副データベースシステムによって、実際のデータラグが複製遅延パラメータを超える時に、主データベースシステムに照会をルーティングする指示をクライアントアプリケーションに提供するステップをさらに含むことができる。方法は、副データベースシステムによって、実際のデータラグが複製遅延パラメータを超える時に、照会に応答するデータおよびフォールバック指示をクライアントアプリケーションに提供するステップをさらに含むことができる。
【００１１】
1つまたは複数のコンピューティングシステムの1つまたは複数のデータプロセッサによって実行される時に、少なくとも1つのデータプロセッサに本明細書の動作を実行させる命令を記憶した非一時的コンピュータプログラム製品(すなわち、物理的に実施されたコンピュータプログラム製品)も説明される。同様に、1つまたは複数のデータプロセッサと1つまたは複数のデータプロセッサに結合されたメモリとを含むことのできるコンピュータシステムも説明される。メモリは、少なくとも1つのプロセッサに本明細書で説明される動作のうちの1つまたは複数を実行させる命令を一時的にまたは永久的に記憶することができる。さらに、方法は、単一のコンピューティングシステム内でまたは2つ以上のコンピューティングシステムの間で分散されてのいずれかで、1つまたは複数のデータプロセッサによって実施され得る。そのようなコンピューティングシステムは、ネットワーク(たとえば、インターネット、ワイヤレス広域ネットワーク、ローカルエリアネットワーク、広域ネットワーク、有線ネットワーク、または類似物)、複数のコンピューティングシステムのうちの1つまたは複数の間の直接接続などを介する接続を含むがこれに限定されない1つまたは複数の接続を介して、接続され得、データおよび/またはコマンドもしくは他の命令などを交換することができる。
【００１２】
本明細書で説明される主題は、多数の技術的利点を有する。一例として、本明細書で説明される主題は、データベースシステムに対するデータの要求が、要求を完了するのに十分なシステムリソースが使用可能になるまでキューイングされ、バッファリングされ、または拒絶される可能性を低減するために、高作業負荷中のデータベースシステムの高められた平均スループットを提供することができる。
【００１３】
本明細書で説明される主題の1つまたは複数の変形形態の詳細が、添付図面および下の説明で示される。本明細書で説明される主題の他の特徴および利点は、説明、図面、および特許請求の範囲から明白になる。
【図面の簡単な説明】
【００１４】
【図１】本主題に関連する使用のための例のデータベースシステムを示すシステム図である。
【図２】本主題に関連する使用に関するスケーラビリティおよび/または可用性のために複数のホストにまたがるサーバ構成要素の分散をサポートすることのできる例のデータベースシステムを示すシステム図である。
【図３】本主題に関連する使用のためのインデックスサーバのアーキテクチャを示す図である。
【図４】本主題に関連する使用のための、主データベースシステムと主データベースシステムに対するホットスタンバイとして働く副データベースシステムとの間の負荷平衡化をサポートするアーキテクチャを示す機能流れ図である。
【図５】HA/DRシステム内で負荷平衡化を管理する、1つの例の解決策を示す図である。
【図６】HA/DRシステム内で負荷平衡化を管理する、別の例の解決策を示す図である。
【図７】ヒントベースのルーティングを実施するための例のアーキテクチャ図を示す図である。
【図８】照会に応答するデータのデータラグが複製遅延パラメータを超える時のHA/DRシステムの例の動作を示す図である。
【図９】副システムとクライアントアプリケーションとの間の認証されたセッションを維持する例のプロセスを示す流れ図である。
【発明を実施するための形態】
【００１５】
様々な図内の同様の符号は、同様の要素を示す。
【００１６】
本明細書で説明される主題は、データベースシステムに対するデータの要求が、要求を完了するのに十分なシステムリソースが使用可能になるまでキューイングされ、バッファリングされ、または拒絶される可能性を低減するために、高作業負荷中のデータベースシステムの高められた平均スループット能力を提供することができる装置、システム、技法、および物品を開示する。いくつかの例では、本明細書で開示される装置、システム、技法、および物品は、主データベースシステムの作業負荷を低減するために、照会を実行するのに副バックアップデータベースシステムを利用する。いくつかの例では、本明細書で開示されるシステムおよび方法は、副データベースシステムによる実行の候補になり得る照会を識別するために、アプリケーションからの照会要求内のヒントを利用する。
【００１７】
図1は、本主題の諸態様を実施するのに使用され得るデータベースシステム105を示す図100である。データベースシステム105は、たとえば、すべての関係するデータがメインメモリ内に保持され、その結果、読取動作がディスクI/Oなしで実行され得るようになり、ディスクストレージが、すべての変更を恒久的にすることを要求される、インメモリデータベースとすることができる。データベースシステム105は、たとえばインデックスサーバ110、ネームサーバ115、および/またはアプリケーションサーバ120のうちの1つまたは複数を含む複数のサーバを含むことができる。データベースシステム105は、拡張ストア(extended store)サーバ125、データベース開発インフラストラクチャ(DDI)サーバ130、データプロビジョニングサーバ135、および/またはストリーミングクラスタ140のうちの1つまたは複数を含むこともできる。データベースシステム105は、SQL/MDXなどの異なるプロトコル(インデックスサーバ110によって)および/またはHTTPなどのウェブベースのプロトコル(アプリケーションサーバ120によって)を介して複数のリモートクライアント145、150によってアクセスされ得る。
【００１８】
インデックスサーバ110は、インメモリデータストアおよびデータを処理するエンジンを含むことができる。インデックスサーバ110は、様々な開発環境および管理ツールを提供することのできるリモートツールによって(たとえば、SQL照会を介して)アクセスされることも可能である。インデックスサーバ110の例の実施態様に関する追加の詳細は、図3の図300に関連して説明され、図示される。
【００１９】
ネームサーバ115は、データベースシステム105のトポロジに関する情報を所有することができる。分散データベースシステムでは、ネームサーバ115は、様々な構成要素がどこで走行しており、どのデータがどのサーバに配置されているのかを知ることができる。複数のデータベースコンテナを有するデータベースシステム105内では、ネームサーバ115は、既存のデータベースコンテナに関する情報を有することができ、システムデータベースをホスティングすることもできる。たとえば、ネームサーバ115は、既存のテナントデータベースに関する情報を管理することができる。単一コンテナシステム内のネームサーバ115とは異なって、複数のデータベースコンテナを有するデータベースシステム105内のネームサーバ115は、分散データベース内のテーブルの位置などのトポロジ情報を記憶しない。複数コンテナデータベースシステム105内では、そのようなデータベースレベルのトポロジ情報は、テナントデータベースのカタログの一部として記憶され得る。
【００２０】
アプリケーションサーバ120は、1つまたは複数のリモートクライアント150によって使用されるネイティブウェブアプリケーションがHTTPなどのウェブプロトコルを介してデータベースシステム105にアクセスすることを可能にすることができる。アプリケーションサーバ120は、追加のアプリケーションサーバを走行させる必要なしに、開発者が様々なデータベースアプリケーションを記述し、走行させることを可能にすることができる。アプリケーションサーバ120は、管理、ライフサイクル管理、および開発のためにウェブベースのツール155を走行させるのにも使用され得る。他の管理ツールおよび開発ツール160は、たとえば、SQLおよび他のプロトコルを介してインデックスサーバ110に直接にアクセスすることができる。
【００２１】
拡張ストアサーバ125は、ペタバイト以上の範囲までの非常に大きいデータのための高性能ディスクベースの列ストアを含むことができるダイナミックティアリング(dynamic tiering)オプションの一部とすることができる。より低頻度でアクセスされるデータ(それに関して、インデックスサーバ110のメインメモリ内で維持することは非オプションである)は、拡張ストアサーバ125内に配置され得る。拡張ストアサーバ125のダイナミックティアリングは、従来の配置と比較して、低減された所有コストを伴う非常に大きいデータベースのホスティングを可能にする。
【００２２】
DDIサーバ130は、データベース開発インフラストラクチャ(DDI)の一部である別々のサーバプロセスとすることができる。DDIは、宣言的設計時アーティファクト(declarative design time artifact)を使用してデータベースオブジェクトの展開を単純化するデータベースシステム105のレイヤとすることができる。DDIは、たとえば複数のオブジェクトが依存性に基づいて正しいシーケンスにおいて展開されることを保証することと、トランザクション的すべてか無か展開を実施することとによって、一貫した展開を保証することができる。
【００２３】
データプロビジョニングサーバ135は、エンタープライズ情報管理を提供し、リアルタイムおよびバッチモードにおけるデータプロビジョニング、リアルタイムデータ変換、データ品質機能(data quality function)、様々なタイプのリモートリソースのためのアダプタ、および追加アダプタを開発するためのアダプタSDKなどの能力を使用可能にすることができる。
【００２４】
ストリーミングクラスタ140は、様々なタイプのデータストリーム(すなわち、データフィードなど)がデータベースシステム105によって利用されることを可能にする。ストリーミングクラスタ140は、データストリームの消費と複合イベント処理との両方を可能にする。
【００２５】
図2は、スケーラビリティおよび/または可用性のために複数のホストにまたがるサーバ構成要素の分散をサポートすることのできるデータベースシステム105の変形形態を示す図200である。このデータベースシステム105は、たとえば、単一システムID(SID)によって識別され得、システムを全体としてインストールし、更新し、起動し、シャットダウンし、またはバックアップすることのできる管理者の展望からは単一のユニットとして知覚される。データベースシステム105の異なる構成要素は、同一のメタデータを共有することができ、クライアントアプリケーション230からの要求は、必要な場合に、システム内の異なるサーバ1101-3、1201-3に透過的にディスパッチされ得る。
【００２６】
図2内に示されているように、分散データベースシステム105は、複数のホスト2101-3上にインストールされ得る。各ホスト2101-3は、少なくとも1つのデータプロセッサ(たとえば、CPUなど)、メモリ、ストレージ、ネットワークインターフェース、およびオペレーティングシステムを含むことができ、データベースシステム105の一部を実行する機械である。各ホスト2101-3は、1つのホスト2101-3上にインストールされる分散データベースシステム105の構成要素のセットを含むデータベースインスタンス2201-3を実行することができる。図2は、3つのホストを有する分散システムを示し、ホストは、それぞれ、ネームサーバ1151-3、インデックスサーバ1101-3、その他(他の構成要素は、図示を単純にするために省略した)を走行させる。
【００２７】
図3は、インデックスサーバ110(上で示したように、多数のインスタンスのうちの1つとすることができる)のアーキテクチャを示す図300である。接続およびセッション管理構成要素302は、クライアントアプリケーション145のためにセッションおよび接続を作成し、管理することができる。セッションごとに、たとえばセッション変数、自動コミットセッティング、または現在のトランザクション分離レベルなどのパラメータのセットが維持され得る。
【００２８】
クライアントアプリケーション145からの要求は、要求処理および実行制御構成要素310によって処理され、実行され得る。データベースシステム105は、データベースシステムの内部でアプリケーション固有計算を走行させる、豊富なプログラミング能力を提供する。SQL、MDX、およびWIPEに加えて、データベースシステム105は、異なるユースケースのために異なるプログラミング言語を提供することができる。SQLScriptは、SQLステートメント内で使用され得るデータベースプロシージャおよびユーザ定義関数を記述するのに使用され得る。L言語は、SQLScriptプロシージャによって呼び出され得るオペレータ論理を実施し、ユーザ定義関数を記述するのに使用され得る命令型言語である。
【００２９】
セッションが確立された後に、クライアントアプリケーション145は、通常、インデックスサーバ110と通信するのにSQLステートメントを使用し、このSQLステートメントは、要求処理および実行制御構成要素310内のSQLプロセッサ312によって処理され得る。分析アプリケーションは、MDXプロセッサ322を介して多次元照会言語MDX(MultiDimensional eXpressions)を使用することができる。グラフデータに関して、アプリケーションは、GEM(Graph Query and Manipulation)プロセッサ316を介してGEM(GEM言語)を使用することができる。SQLステートメントおよびMDX照会は、同一のネットワーク通信プロトコルを使用して、クライアントアプリケーション145との同一の接続を介して送られ得る。GEMステートメントは、組込みSQLシステムプロシージャを使用して送られ得る。
【００３０】
インデックスサーバ110は、クライアントアプリケーション145との新しい接続が確立される時に呼び出され得る認証構成要素304を含むことができる。ユーザは、データベースシステム105自体(ユーザ名およびパスワードを用いるログイン)によって認証され得、あるいは、認証は、外部の認証プロバイダに委任され得る。認可マネージャ306は、ユーザが要求された動作を実行するのに必要な特権を有するかどうかをチェックするために、データベースシステム105の他の構成要素によって呼び出され得る。
【００３１】
各ステートメントは、トランザクションの文脈内で処理され得る。新しいセッションが、新しいトランザクションに暗黙のうちに割り当てられ得る。インデックスサーバ110は、トランザクションを調整し、トランザクション分離を制御し、走行中のトランザクションおよびクローズされたトランザクションを追跡し続けるトランザクションマネージャ344を含むことができる。トランザクションがコミットされまたはロールバックされる時に、トランザクションマネージャ344は、かかわりのあるエンジンにこのイベントに関して知らせることができ、したがって、そのエンジンは、必要なアクションを実行することができる。トランザクションマネージャ344は、様々なタイプの並行処理制御を提供することができ、原子的トランザクションおよび恒久的トランザクションを達成するために永続性レイヤ346と協力することができる。
【００３２】
クライアントアプリケーション145からの着信SQL要求は、SQLプロセッサ312によって受信され得る。データ操作ステートメントは、SQLプロセッサ312自体によって実行され得る。他のタイプの要求は、それぞれの構成要素に委任され得る。データ定義ステートメントは、メタデータマネージャ308にディスパッチされ得、トランザクション制御ステートメントは、トランザクションマネージャ344に転送され得、プラニングコマンドは、プラニングエンジン318にルーティングされ得、タスク関連コマンドは、タスクマネージャ324(より大きいタスクフレームワークの一部とすることができる)に転送され得る。着信MDX要求は、MDXプロセッサ322に委任され得る。プロシージャ呼出しは、プロシージャプロセッサ314に転送され得、プロシージャプロセッサ314は、たとえば計算エンジン326、GEMプロセッサ316、リポジトリ330、またはDDIプロキシ328への呼出しをさらにディスパッチする。
【００３３】
インデックスサーバ110は、たとえばファイナンシャルプラニング用のプラニングアプリケーションがデータベースレイヤ内で基本的なプラニング動作を実行することを可能にするプラニングエンジン318をも含むことができる。1つのそのような基本的な動作が、フィルタおよび変換を適用しながら、既存データセットのコピーとしてデータセットの新しいバージョンを作成することである。たとえば、新しい年のプラニングデータは、前年からのデータのコピーとして作成され得る。プラニング動作の別の例は、分布関数に基づいてより高いアグリゲーションレベルからより低いアグリゲーションレベルにターゲット値を分配するディスアグリゲーション(disaggregation)動作である。
【００３４】
SQLプロセッサ312は、データベースシステム105上でエンタープライズパフォーマンス管理(enterprise performance management)アプリケーションを開発し、走行させるためのインフラストラクチャを提供するより大きいプラットフォームの一部を形成することのできるエンタープライズパフォーマンス管理(EPM)ランタイム構成要素320を含むことができる。プラニングエンジン318は、基本的なプラニング動作を提供することができるが、EPMプラットフォームは、データベースシステム105内で管理されるアプリケーション固有プラニングモデルに基づく、完全なプラニングアプリケーションの基礎を提供する。
【００３５】
計算エンジン326は、SQLScript、MDX、GEM、タスク、およびプラニング動作などの様々な特徴を実施する共通のインフラストラクチャを提供することができる。SQLプロセッサ312、MDXプロセッサ322、プラニングエンジン318、タスクマネージャ324、およびGEMプロセッサ316は、異なるプログラミング言語、照会言語、およびモデルを、最適化され、計算エンジン326によって実行される共通表現に変換することができる。計算エンジン326は、リレーショナルストア332内のデータに部分的に基づくものとすることのできる一時的結果340を使用してこれらの特徴を実施することができる。
【００３６】
メタデータは、メタデータマネージャ構成要素308を介してアクセスされ得る。メタデータは、この文脈では、リレーショナルテーブル、列、ビュー、インデックス、およびプロシージャの定義など、様々なオブジェクトを含むことができる。これらすべてのタイプのメタデータが、すべてのストアについて1つの共通のデータベースカタログ内に記憶され得る。データベースカタログは、リレーショナルストア332のグループの一部を形成する行ストア336内のテーブル内に記憶され得る。たとえばサポートおよびマルチバージョン並行処理制御を含むデータベースシステム105の他の態様も、メタデータ管理に使用され得る。分散システムにおいては、中央メタデータが、サーバにまたがって共有され、メタデータマネージャ308は、そのような共有を調整し、または他の形で管理することができる。
【００３７】
リレーショナルストア332は、インデックスサーバ110の異なるデータ管理構成要素を形成し、これらのリレーショナルストアは、たとえば、データをメインメモリ内に記憶することができる。行ストア336、列ストア338、およびフェデレーション構成要素334は、すべて、リレーショナルテーブル内で編成されたデータへのアクセスを提供できるリレーショナルデータストアである。列ストア338は、列単位で(すなわち、列指向の形などにおいて)リレーショナルテーブルを記憶することができる。列ストア338は、テキスト検索能力、テキスト分析能力、空間データのサポート、ならびにグラフ構造化されたデータの演算子およびストレージをも含むことができる。グラフ構造化されたデータに関して、アプリケーションの視点から、列ストア338は、グラフ構造化されたデータの非リレーショナルでスキーマ柔軟なインメモリデータストアとみなされ得る。しかし、厳密には、そのようなグラフストアは、別々の物理データストアではない。そうではなく、グラフストアは、列ストア338を使用して構築され、専用のグラフAPIを有することができる。
【００３８】
行ストア336は、リレーショナルテーブルを行単位で記憶することができる。テーブルが作成される時に、作成者は、そのテーブルが行ベースまたは列ベースのどちらでなければならないのかを指定することができる。テーブルは、2つのストレージフォーマットの間で移植され得る。ある種のSQL拡張は、1種類のテーブルについてのみ使用可能である(列テーブルの「合併」コマンドなど)が、標準SQLは、すべてのテーブルに対して使用され得る。インデックスサーバ110は、両方の種類のテーブルを1つのステートメントに組み合わせる機能性(結合、副照会、和集合)をも提供する。
【００３９】
フェデレーション構成要素334は、仮想リレーショナルデータストアとみなされ得る。フェデレーション構成要素334は、通常のテーブルに似た形でSQL照会内で使用され得る仮想テーブルを介して、外部データソースシステム354内のリモートデータへのアクセスを提供することができる。
【００４０】
データベースシステム105は、インデックスサーバ110への非リレーショナルデータストア342の統合を含むことができる。たとえば、非リレーショナルデータストア342は、ディスクに永続化され得るC++オブジェクトのネットワークとして表現されたデータを有することができる。非リレーショナルデータストア342は、たとえば、たとえばサプライチェーン管理におけるデータオブジェクトの大きいネットワークに作用する最適化タスクおよびプラニングタスクに使用され得る。行ストア336および列ストア338とは異なって、非リレーショナルデータストア342は、リレーショナルテーブルを使用するのではなく、オブジェクトは、永続性レイヤ346によって提供されるコンテナ内に直接に記憶され得る。固定サイズエントリコンテナが、1つのクラスのオブジェクトを記憶するのに使用され得る。永続化されたオブジェクトは、オブジェクトの間の参照を永続化するのにも使用され得る永続化オブジェクトIDを介してロードされ得る。さらに、インメモリインデックスを介するアクセスが、サポートされる。その場合に、オブジェクトは、検索キーを含む必要がある。インメモリ検索インデックスは、最初のアクセス時に作成される。非リレーショナルデータストア342は、トランザクション管理を副トランザクションに拡張するために、また、異なるロックプロトコルとマルチバージョン並行処理制御の実施態様とを提供するためにも、トランザクションマネージャ344と一体化され得る。
【００４１】
拡張ストアは、使用され得る、またはデータベースシステム105の一部を他の形で形成することのできる、別のリレーショナルストアである。拡張ストアは、たとえば、メモリ内で保持される(リレーショナルストア332を用いて)ことが望まれない可能性がある非常に大きいテーブルを管理するために最適化されたディスクベースの列ストアとすることができる。拡張ストアは、インデックスサーバ110とは別々の拡張ストアサーバ125内で走行することができる。インデックスサーバ110は、拡張ストアサーバ125にSQLステートメントを送るのにフェデレーション構成要素334を使用することができる。
【００４２】
永続性レイヤ346は、トランザクションの恒久性および原子性の責任を負う。永続性レイヤ346は、データベースシステム105が、再始動の後に最新のコミットされた状態に復元されることと、トランザクションが、完全に実行されるか完全に元に戻されるかのいずれかになることとを保証することができる。この目標を効率的な形で達成するために、永続性レイヤ346は、先書きログ、シャドウページング、およびセーブポイントの組合せを使用することができる。永続性レイヤ346は、永続化されたデータを書き込み、読み取るためのインターフェースを提供することができ、トランザクションログを管理するロガー構成要素を含むこともできる。トランザクションログエントリは、ログインターフェースを使用することによって明示的に、または仮想ファイル抽象化を使用する時に暗黙のうちに、書き込まれ得る。
【００４３】
永続性レイヤ346は、永続ディスクストレージ348内にデータを記憶し、永続ディスクストレージ348は、ページ単位で編成され得るデータボリューム350および/またはトランザクションログボリューム352を含むことができる。たとえば4kと16Mとの間の、異なるページサイズがサポートされ得る。データは、ページ単位で、ディスクストレージ348からロードされ、ディスクに記憶され得る。読取アクセスおよび書込アクセスに関して、ページは、メモリ内のページバッファにロードされ得る。ページバッファは、最小サイズまたは最大サイズを有する必要があるのではなく、他のものに使用されていないすべての空きメモリが、ページバッファに使用され得る。メモリが他所で必要とされる場合に、最も以前に使用されたページが、キャッシュから除去され得る。変更されたページが、除去のために選択される場合に、そのページは、まずディスクストレージ348に永続化される必要がある。ページおよびページバッファは、永続性レイヤ346によって管理されるが、インメモリストア(すなわち、リレーショナルストア332)は、ロードされたページ内のデータにアクセスすることができる。
【００４４】
多くのアプリケーションにおいて、データシステムは、週7日24時間スケジュールでの動作をサポートすることを要求される可能性があり、データシステムプロバイダは、ダウンタイムすなわちその間にシステムが進行中の動作を完全にはサポートできない時間の最大長さを保証することを要求される場合がある。システムが、動作性能の合意されたレベルを保証することを要求される時に、これは、高可用性システム(「HA」)と呼ばれる場合がある。ダウンタイムがないか非常に短い、実質的に連続的なアップタイムを保証するための1つの解決策は、1つまたは複数のホットスタンバイシステムを維持することである。ホットスタンバイシステムまたはバックアップシステムとは、主動作データシステムの1つまたは複数の機能に障害を発生させる混乱の場合に素早くアクティブ化され得るシステムである。そのような混乱は、災害と呼ばれる場合があり、データシステムを完全な動作に復元するプロセスは、災害時回復(「DR」)と呼ばれる場合がある。
【００４５】
ホットスタンバイシステムは、主動作システムによって提供されるすべての機能を提供することのできる主動作システムの正確な複製とすることができ、あるいは、ホットスタンバイは、主動作データシステムを復元するのに要する時間中に最小量の本質的機能性を提供することのできるシステムとすることができる。災害の後に、たとえばホットスタンバイをオンラインにすることによって、データシステムの完全なまたは最小の機能性を復元するのに要する時間は、回復時間と呼ばれる。回復時間を最小にし、これによってダウンタイムを最小にする努力において、ホットスタンバイシステムは、通常、完全な動作にはわずかに足りない状態にある。たとえば、ホットスタンバイのすべての機能システムが、アクティブであり、動作し、すべてのシステムおよびデータの変更または更新が、主動作システムおよびホットスタンバイ内で正確に同時に発生する、システムアーキテクチャが実施され得る。その場合に、2つのシステムの唯一の相違は、主がユーザ要求に応答するように構成され、ホットスタンバイシステムがそうではないことである。他のホットスタンバイシステムにおいて、1つまたは複数の機能は、ホットスタンバイのミッションクリティカルシステムが正常に動作すると観察されるまで使用不能にされる場合があり、この観察の時に、残りの機能がオンラインにされ得る。
【００４６】
多くのアプリケーションでは、データシステムは、データシステムによって管理されるデータに頼るユーザおよびアプリケーションに迅速な応答を提供することを要求され得る。データシステムのプロバイダおよび設計者は、経時的な最小平均スループットまたは平均最大応答時間を保証することを要求され得る。データシステムがユーザまたはアプリケーションからの要求に応答する速度は、多数の要因に依存する可能性があるが、すべてのシステムが、所与の時間期間内に処理できる要求の個数において制限されている。データシステムが、相対的に大量のデータを管理し、相対的に多数のユーザまたはアプリケーションをサポートする時に、高い作業負荷中に、要求は、要求を完了するのに十分なシステムリソースが使用可能になるまで、キューイングされ、バッファリングされ、または拒絶される可能性がある。これが発生する時に、平均スループットは低下し、平均応答時間は増加する。そのような問題に対する1つの解決策は、複数の処理システムにまたがって作業負荷を分散させることである。これは、負荷平衡化として知られている。
【００４７】
HAシステムにおける負荷平衡化の1つの欠点は、負荷平衡化が、高いコストを有する追加の処理システムを必要とする可能性があることである。組織のクリティカルな機能をサポートする、ある種のデータシステムに関して、連続動作を効率的にサポートするために、負荷平衡化とHA機能性との両方を実行するために追加のシステムが必要になることがしばしばである。DRシステムの冗長な性質を考慮すると、ホットスタンバイシステムは、しばしば、災害が発生しない限り平静なままにされる。したがって、いくつかの状況において、主動作システムとホットスタンバイシステムの両方および潜在的に1つまたは複数の第三次システムを含む、負荷平衡化を伴う組合せ高可用性/災害時回復(HA/DR)システムを実施し、維持することが望ましい。そのような組合せシステムは、災害の場合に主機能性を引き受けるホットスタンバイシステムの能力を崩壊させずに主動作システムとホットスタンバイシステムとの両方の処理システムの間での作業負荷の負荷平衡化を可能にする。
【００４８】
図4は、主データベースシステムすなわち主システム405aと主システム405aに対するホットスタンバイとして働く副データベースシステムすなわち副システム405bとの間の負荷平衡化をサポートするアーキテクチャ400を示す機能流れ図である。主システム405aおよび副システム405bのそれぞれは、図1に示されたデータベースシステム105に似た単一インスタンスシステムとすることができ、あるいは、それぞれ、図2に示されたデータベースシステム105の分散された変形形態とすることができる。そのようなアーキテクチャ400は、高可用性データシステム内、災害時回復システム内、または組合せHA/DRシステム内で有用である可能性がある。
【００４９】
主システム405aおよび副システム405bのそれぞれは、負荷平衡化機能性を含むことができる。そのような負荷平衡化機能性は、たとえば、別個の負荷平衡化サーバ470aまたは470b内に含まれ得る。しかし、そのような負荷平衡化機能性は、任意の適切な処理システムによって管理され得る。たとえば、主システムのアプリケーションサーバ120は、主システム405aのアプリケーションサーバに発行される要求の負荷平衡化をも管理し、よく分散された作業負荷を維持するための必要に応じて副システム405bに要求を送ることができる。
【００５０】
図4内に示されているように、主システム405aおよび副システム405bのそれぞれは、それぞれ主システム405aまたは副システム405bに向けられたユーザアプリケーションからの要求を受信する負荷平衡化サーバ470aまたは470bを含む。そのような要求は、管理ツール460もしくはウェブベースのツール450のいずれかまたは任意の他のユーザアプリケーションに由来する可能性がある。要求の受信時に、負荷平衡化サーバ、たとえば470aは、作業負荷をどのように分配すべきかを決定する。図示されているように、負荷平衡化サーバ470aは、SQL要求465を管理ツール460から主システム405aのインデックスサーバ110にルーティングすると同時に、ウェブベースのツール450からのHTTP要求455を副システム405bのアプリケーションサーバ120にルーティングする。
【００５１】
主システム405aと副システム405bとの間のリソースの負荷平衡化は、複数の複雑な問題を引き起こす可能性がある。たとえば、要求455、465のいずれかが1つまたは複数のデータテーブルへの書込またはデータテーブルの変更を要求する場合に、2つのシステム405a、405bは、分岐する。書込要求の多数のインスタンスが、主システム405aと副システム405bとの間で分配された後に、この2つのシステムは、実質的に異なり、役に立たない可能性が高い。別の例において、アプリケーション要求、たとえば465が、書込トランザクションを実行し、これに、書込要求465によって書き込まれたデータに関係する読取トランザクション、たとえば455が続く場合がある。書込要求が、主システム405aに割り振られる場合に、読取要求は、後続の読取トランザクションが主システム405aまたは副システム405bのどちらによって実行されるのかに応じて異なる結果を入手する。
【００５２】
主データシステムの作業負荷の一部をホットスタンバイシステムまたはバックアップシステムに分配することによる、HA/DRシステムにおける負荷平衡化は、動作の素早く効率的な回復を可能にすることによって高可用性システムにおけるダウンタイムを実質的に除去する、バックアップシステムの主目的を妨げない形において行われなければならない。言い換えると、ルールとして、負荷平衡化は、ホットスタンバイを破壊することができない。この主目的を考慮すると、主システムとバックアップシステムとの間での作業負荷の負荷平衡化を可能にするすべての解決策は、バックアップシステムを主システムと同一のまたはほぼ同一の状態に維持しなければならない。そのような解決策は、バックアップシステムの状態を主システムの状態から実質的に分岐させる可能性があるすべてのアクションをも回避しまたは禁止しなければならない。この形において、災害に起因する主システムの部分的または全体的な障害の場合に、バックアップシステムは、クライアントアプリケーションに対する最小限の影響を伴ってまたは影響を伴わずに、主システムモードにフェイルオーバーすることができる。
【００５３】
図5は、HA/DRシステム500内で負荷平衡化を管理する1つの例の解決策を示す。HA/DRシステム500は、主システム505および副システム510を含み、副システム510のホットスタンバイ機能性に干渉せずに、主システム505と副システム510との間で負荷平衡化を行うことができる。主システム505および副システム510のそれぞれは、図1に示されたデータベースシステム105に似た単一インスタンスデータベースシステムとすることができ、あるいは、図2に示されたデータベースシステム105の分散された変形形態とすることができる。さらに、主システム505および副システム510のそれぞれは、インデックスサーバ110、ネームサーバ115、アプリケーションサーバ120、拡張ストアサーバ125、DDIサーバ130、データプロビジョニングサーバ135、およびストリームクラスタ140に帰するものより少数、より多数、またはすべての機能性を含むことができる。しかし、図示の単純さのために、HA/DRシステム500は、各それぞれのシステム505、510の処理制御555、560と永続性レイヤ565、570との間で単に区別することによってある種の機能性を強調するために単純化されている。
【００５４】
クライアントのコレクションは、それぞれ、主システム505と副システム510との両方へのオープン接続を維持することができる。たとえば、クライアント515は、主システム505への読取/書込接続520と副システム510への読取専用接続525とを維持する。代替案では、クライアント515は、主システム505および副システム510のそれぞれとの読取/書込接続を維持することができるが、副システム510内のプロセス自体が、副システムがバックアップモードである間に副システムに対する書込トランザクションを要求するすべての要求の実行を禁止する。クライアント515において実行中のクライアントアプリケーションによって要求された作業負荷の負荷平衡化の管理は、クライアント515アプリケーション自体によって管理され得る。代替案では、クライアント515アプリケーションが、主システム505に照会要求をサブミットすることができる。その後、プロセッサ545上で実行中の処理制御555負荷平衡化プロセスが、照会がどこで実行されるべきであるのかを判定することができ、クライアント515がそれに対して照会を発行すべきシステムを識別する命令をクライアント515に応答する。
【００５５】
主システム505は、動作が、ディスクストレージのアクセスを必要とするディスクI/Oなしで実行され得るようにするために、実質的にすべての能動的に使用されるデータがメインメモリ535内に保持され、維持される、インメモリデータベースを含むことができる。処理制御555内のアプリケーションの能動的動作は、プロセッサ545に、メインメモリ535または永続性レイヤ565内のディスクからデータを読み取らせ、書き込ませることができる。処理制御555アプリケーションは、プロセッサ545に、データベースに対するデータトランザクションを取り込むためのトランザクションログをも生成させ、プロセッサ545は、その後、このトランザクションログをログボリューム585内で永続化する。実質的にすべての能動的に使用されるデータがインメモリに存在することができるので、処理制御555は、主にメインメモリ内に保持されたデータと相互作用すると同時に、より低頻度で使用されるデータの取出しと書込とのためにのみデータボリューム575に頼ることができる。処理制御555内の追加のプロセスは、データが再起動時または回復時に使用可能になるようにするために、インメモリデータが永続性レイヤ565内で永続化されることを保証するために、プロセッサ545によって実行され得る。
【００５６】
主システム505は、組織のために週7日24時間動作をサポートするのに必要な様々な機能性を提供するための主動作システムとすることができる。副システム510は、ダウンタイムを最小化するために最小限の回復時間でオンラインになる準備ができているホットスタンバイとすることができる。副システム510は、主システム505と同一の物理システムとすることができ、副システム510が主システム505と同一の機能性を提供することを可能にするために、実質的に同一の形において構成され得る。たとえば、処理制御560は、処理制御555と同一のアプリケーションおよび機能性のすべてを含むことができ、永続性レイヤ570は、それぞれデータボリューム575およびログボリューム585と同一の形において構成されるデータボリューム580およびログボリューム590を含むことができる。副システム510は、主にメインメモリ540内に保持され、維持される、インメモリデータベースをも含むことができる。
【００５７】
主システム505および副システム510は、書込トランザクションを要求する、クライアント515または他からのすべての要求が、主システム505内でのみ実行されるという点において異なる。主システム505および副システム510は、永続オブジェクトへのすべての書込トランザクションが、副システム510によって禁止されるという点においてさらに異なる。データまたは基礎になるスキーマに対する変更を主システム505から副システム510に伝搬させるために、プロセッサ545は、副システム510の処理制御560に対して直接にトランザクションログを複製530もする。処理制御560は、プロセッサ550に、その後に主システム505から複製されたトランザクションログを再生させ、これによって副システム510においてトランザクションを再生する、1つまたは複数のアプリケーションを含む。トランザクションログが再生される時に、主システムにおいて実行された様々なトランザクションが、副システム510内で反映されるようになる。HA機能性と負荷平衡化機能性との両方を保証するために、副システムにおけるトランザクションログの再生は、データをメインメモリ540内に配置し、また、主システム内でコミットされたすべてのデータを、データボリューム580によって記憶される永続性レイヤ570に永続化する。副システム510におけるトランザクションログの再生は、トランザクションログがログボリューム590内で永続化されることをももたらすことができる。
【００５８】
トランザクションログは、異なる形において複製され得る。主システムと同一の状態にできる限り近い状態にスタンバイシステムを維持することは、重要な要因であるが、ログは、同期式に複製され得、これは、副システムがログ複製に成功裡に応答しない限り、主システムが、トランザクションをコミットしないことを意味する。これが、主システムの性能を低速化することを了解されたい。逆に、主システムの性能が優先事項である場合には、ログは、非同期に複製され得、この場合に、主動作は、応答を待たずにトランザクションのコミットに進む。様々なトレードオフが、適当なレベルの性能を達成すると同時にクリティカルデータの複製を保証するために、この2つのシナリオの間で行われ得る。
【００５９】
上の詳細な説明から、副システム510などのスタンバイモードにある副システムが、最も最近に再生されたトランザクションログと同等に最新であることだけができることを了解されたい。トランザクションログは、トランザクションが主システム505内で実行した後に限って、副システム510において複製され、再生される。したがって、副システム510は、関連する主システム505より常にわずかに遅れている。また、負荷平衡化の努力において主システムにルーティングされた照会が、特定のトランザクションログが再生される前、再生中、または再生の後に実行されることの保証はない。したがって、主システム505の状態と副システムの状態とは、仮に同一になるとしても、めったに同一にはならない。しかし、ある種の懸念事項に対処することによって、副システム510は、多数の動作によって要求される作業負荷が副システム510によってサポートされ得るように、主システム505と同一の状態に実質的に近い状態に保たれ得る。ホットスタンバイシステムが作業負荷の一部を担持するようにも機能するHA/DRアーキテクチャにおける頑健な負荷平衡化実施態様を提供するために対処されるべき少数の問題がある。図5内に示された負荷平衡化解決策によって生じる問題に対する1つまたは複数の解決策に、これから対処する。
【００６０】
図6は、HA/DRシステム600内で負荷平衡化を管理する、別の例の解決策を示す。HA/DRシステム600は、主データベースシステム605と、副データベースシステム610と、トランザクションログおよびデータまたは基礎になるスキーマに対する変更を主システム605から副システム610に伝搬させるための通信チャネル655とを含む。HA/DRシステム600は、副システム610のホットスタンバイ機能性に干渉せずに主システム605と副システム610との間での負荷平衡化を行うことができる。主システム605および副システム610のそれぞれは、図1に示されたデータベースシステム105に似た単一インスタンスデータベースシステムとすることができ、あるいは、図2に示されたデータベースシステム105の分散された変形形態とすることができる。さらに、主システム605および副システム610のそれぞれは、主システム505および副システム510、インデックスサーバ110、ネームサーバ115、アプリケーションサーバ120、拡張ストアサーバ125、DDIサーバ130、データプロビジョニングサーバ135、およびストリームクラスタ140に帰するものより少数、より多数、またはすべての機能性を含むことができる。しかし、図示の単純さのために、HA/DRシステム600は、各それぞれのシステム605、610のインデックスサーバ615、620とセッションサービス625、630との間で単に区別することによってある種の機能性を強調するために単純化されている。また、インデックスサーバ615、620のそれぞれは、インデックスサーバ110に帰するものより少数、より多数、またはすべての機能性を含むことができ、セッションサービス625、630のそれぞれは、接続およびセッション管理構成要素302に帰するものより少数、より多数、またはすべての機能性を含むことができる。
【００６１】
クライアントアプリケーション634は、主サーバシステム605および副サーバシステム610との接続を確立するために1つまたは複数のクライアントライブラリ635を呼び出すことができる。その結果、1つまたは複数のクライアントライブラリ635は、それぞれ、主システム605と副システム610との両方へのオープン接続を維持することができる。たとえば、クライアントライブラリ635は、主システム605への読取/書込接続645および副システム610への読取専用接続650を維持することができる。代替案では、クライアントライブラリ635は、主システム605および副システム610のそれぞれとの読取/書込接続を維持することができるが、副システム610内のプロセス自体が、副システムがバックアップモードである間に副システムに対する書込トランザクションを要求するすべての要求の実行を禁止する。
【００６２】
クライアントアプリケーション634によって要求される作業負荷の負荷平衡化の管理は、この例において、クライアントライブラリ635と主システム605との両方によって管理される。クライアントライブラリ635は、主システム605のインデックスサーバ615内のセッションサービス625に照会要求をサブミットすることができる。クライアントアプリケーション634は、照会要求内でヒントを介して、照会が副システム610において実行されることがクライアントアプリケーション634によって受諾できる(または好ましい)ことを示すことができる。その後、主システム605内のインデックスサーバ615内のプロセッサ上で実行中の負荷平衡化プロセスは、照会がどこで実行されるべきであるのかを判定することができ、クライアントがそれに対して照会を発行すべきシステムを識別する命令をクライアントに応答する。この例において、インデックスサーバ615は、照会が副システム610において実行されるべきであると判定し、副システム610に照会を発行するようにクライアントライブラリ635に指示する。ヒントは、可能な場合に照会が副システムにおいて実行することに関するクライアントライブラリ635のプリファレンスを主システム605に示すことができる。
【００６３】
図7は、HA/DRシステム700内で負荷平衡化を管理する、別の例の解決策を示す。HA/DRシステム700は、主データベースシステム705および副データベースシステム710を含み、副システム710のホットスタンバイ機能性に干渉せずに主システム705と副システム710との間で負荷平衡化を行うことができる。主システム705および副システム710のそれぞれは、図1に示されたデータベースシステム105に似た単一インスタンスデータベースシステムとすることができ、あるいは、図2に示されたデータベースシステム105の分散された変形形態とすることができる。
【００６４】
さらに、主システム705および副システム710のそれぞれは、主システム605、505および副システム610、510、インデックスサーバ110、ネームサーバ115、アプリケーションサーバ120、拡張ストアサーバ125、DDIサーバ130、データプロビジョニングサーバ135、ならびにストリームクラスタ140に帰するものより少数、より多数、またはすべての機能性を含むことができる。しかし、図示の単純さのために、HA/DRシステム700は、各それぞれのシステム705、710のインデックスサーバ715、720とシステム705のセッションおよび接続サービス725、SQLオプティマイザ765、およびネームサーバ775との間で単に区別することによってある種の機能性を強調するために単純化されている。また、インデックスサーバ715、720のそれぞれは、インデックスサーバ110に帰するものより少数、より多数、またはすべての機能性を含むことができ、セッションおよび接続サービス725は、接続およびセッション管理構成要素302、625に帰するものより少数、より多数、またはすべての機能性を含むことができ、SQLオプティマイザ765は、SQLプロセッサ312に帰するものより少数、より多数、またはすべての機能性を含むことができ、ネームサーバ775は、ネームサーバ115に帰するものより少数、より多数、またはすべての機能性を含むことができる。
【００６５】
クライアントアプリケーション734は、主サーバシステム705および副サーバシステム710との接続を確立するために1つまたは複数のクライアントライブラリ735を呼び出すことができる。その結果、1つまたは複数のクライアントライブラリ735は、それぞれ、主システム705と副システム710との両方へのオープン接続を維持することができる。たとえば、クライアントライブラリ735は、主システム705への読取/書込接続745および副システム710への読取専用接続750を維持することができる。代替案では、クライアントライブラリ735は、主システム705および副システム710のそれぞれとの読取/書込接続を維持することができるが、副システム710内のプロセス自体が、副システムがバックアップモードである間に副システムに対する書込トランザクションを要求するすべての要求の実行を禁止する。
【００６６】
クライアントアプリケーション734によって要求される作業負荷の負荷平衡化の管理は、この例において、クライアントライブラリ735と主システム705との両方によって管理される。クライアントライブラリ735は、主システム705のインデックスサーバ715内のセッションサービス725に照会要求をサブミットすることができる。クライアントアプリケーション734は、照会要求内でヒントを介して、照会が副システム710において実行されることがクライアントアプリケーション734によって受諾できる(または好ましい)ことを示すことができる。SQLオプティマイザ765は、照会要求を解析し、副システム710における照会実行に関するヒントを認識することができる。その後、主システム705内のインデックスサーバ715内のプロセッサ上で実行中の負荷平衡化プロセスは、照会がどこで実行されるべきであるのかを判定することができ、クライアントがそれに対して照会を発行すべきシステムを識別する命令をクライアントに応答する。
【００６７】
照会が副システム710において実行されるべきであると判定される場合に、インデックスサーバ715は、ネームサーバ775を介して副システムのパブリックネーム(public name)を取り出し、応答内でクライアントライブラリ735に副システムのパブリックネームを供給することができる。クライアントライブラリ735は、データの位置情報を記憶するのにトポロジキャッシュを利用することができ、そのトポロジキャッシュを、副システム710について知るようにされるように拡張させる必要がある場合がある。
【００６８】
この例において、インデックスサーバ715は、照会が副システム710において実行されるべきであると判定し、副システム710に照会を発行するようにクライアントライブラリ735に指示する。ヒントは、照会が可能な場合に副システムにおいて実行することに関するアプリケーション734のプリファレンスを主システム705に示すことができる。
【００６９】
副サイトにおいて照会を実行する時に、副サイトは、たとえばデルタログの応答が遅延される時に、古いデータを返す可能性がある。クライアントアプリケーション734は、データの受諾できるラグタイムとして複製遅延パラメータ(たとえば、秒単位の時間)を指定することができ、ここで、ラグタイムは、書込トランザクションが主システム上でコミットされた時と、これが副システム上のアプリケーションによって再生され、読み取られ得る時との間の差である。副システム710は、実際のデータラグが複製遅延パラメータを超えない時に限って、照会に応答してクライアントライブラリ735にデータを供給することができる。代替案では、副システム710は、実際のデータラグが複製遅延パラメータを超える時に、主データベースシステムに照会をルーティングするようにクライアントライブラリ735に指示することができる。あるいは、副システム710は、実際のデータラグが複製遅延パラメータを超える時に、照会に応答するデータとフォールバック指示との両方をクライアントアプリケーションに供給することができる。
【００７０】
図8は、照会に応答するデータのデータラグが複製遅延パラメータを超える時のHA/DRシステム800の例の動作を示す。HA/DRシステム800は、主データベースシステム805および副データベースシステム810を含む。主システム805および副システム810のそれぞれは、図1に示されたデータベースシステム105に似た単一インスタンスデータベースシステムとすることができ、あるいは、図2に示されたデータベースシステム105の分散された変形形態とすることができる。さらに、主システム805および副システム810のそれぞれは、主システム705、605、505および副システム710、610、510、インデックスサーバ110、ネームサーバ115、アプリケーションサーバ120、拡張ストアサーバ125、DDIサーバ130、データプロビジョニングサーバ135、ならびにストリームクラスタ140に帰するものより少数、より多数、またはすべての機能性を含むことができる。しかし、図示の単純さのために、HA/DRシステム800は、各それぞれのシステム805、810のインデックスサーバ815、820と、セッションおよび接続サービス825、トランザクションマネージャまたは永続性レイヤ870、および照会プラニングエンジン880との間で単に区別することによってある種の機能性を強調するために単純化されている。また、インデックスサーバ815、820のそれぞれは、インデックスサーバ110、615、715に帰するものより少数、より多数、またはすべての機能性を含むことができ、セッションおよび接続サービス825は、接続およびセッション管理構成要素302、625、725に帰するものより少数、より多数、またはすべての機能性を含むことができ、トランザクションマネージャまたは永続性レイヤ870は、トランザクションマネージャ344および/または永続性レイヤ346に帰するものより少数、より多数、またはすべての機能性を含むことができ、照会プラニングエンジン880は、照会プラニングエンジン318に帰するものより少数、より多数、またはすべての機能性を含むことができる。
【００７１】
照会を副システム810にルーティングする命令を受信した後に、クライアントアプリケーション834によって呼び出されたクライアントライブラリ835は、ルーティングされた照会ステートメントを実行するように副システム810に指示する(動作802)。照会プラニングエンジン880は、照会から指定されたラグ(すなわち、複製遅延パラメータ)を取り出す(動作804)。トランザクションマネージャまたは永続性レイヤ870は、照会に応答するデータの現在のデータラグを取り出す(動作806)。セッションおよび接続サービス825は、指定されたラグを現在のデータラグと比較し、照会に応答するデータがクライアントライブラリ835に供給されるべきかどうかに関して判断する(動作808)。現在のデータラグが指定されたラグを超える時には、副システムは、クライアントライブラリに通知する(動作812)。現在のデータラグが指定されたラグを超えることの通知を受信する時に、クライアントライブラリ835は、実行のために照会を主システム805に再ルーティングする(動作814)。
【００７２】
図9は、副システムとクライアントライブラリとの間の認証されたセッションを維持する例のプロセスの流れ図を示す。この例において、クライアントアプリケーション901は、主および副のサーバシステム904、906との接続を確立するために1つまたは複数のクライアントライブラリ902を呼び出すことができる。その結果、クライアントライブラリは、主システム904および副システム906との認証された接続をオープンさせる。セッションコンテキスト変化は、主システム904内のセッションマネージャ908によって検出される。主システム904内のセッションマネージャ908は、セッションコンテキスト変化についてアプリケーション901に知らせ、変化したキー/値をライブラリ902に送り、ライブラリ902は、変化値をセッションコンテキストキャッシュ910内に記憶することができる。作業負荷がシフトされ、照会が副システム906にルーティングされる時に、クライアントライブラリ902は、変化したキー/値を有するキャッシングされたセッション変数を副システム906内のセッションマネージャ912に送る。これは、副システム906が、そのセッションコンテキストを更新し、クライアントライブラリ902との認証されたセッションを維持することを可能にする。
【００７３】
本明細書で説明される主題の1つまたは複数の態様または特徴は、デジタル電子回路網、集積回路網、特別に設計された特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはその組合せにおいて実現され得る。これらの様々な態様または特徴は、特殊目的または汎用とすることができ、ストレージシステムからデータおよび命令を受信し、ストレージシステムにデータおよび命令を送信するように結合された少なくとも1つのプログラマブルプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラマブルシステム上で実行可能および/または解釈可能である1つまたは複数のコンピュータプログラム内での実施態様を含むことができる。プログラマブルシステムまたはコンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、お互いからリモートであり、通常は、通信ネットワークを介して相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で走行し、お互いとのクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【００７４】
これらのコンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、コンポーネント、またはコードと呼ばれる可能性もあるが、プログラマブルプロセッサ用の機械命令を含み、高水準手続き型言語、オブジェクト指向プログラミング言語、関数プログラミング言語、論理プログラミング言語、および/またはアセンブリ/機械語において実施され得る。本明細書で使用される時に、用語「機械可読媒体」は、たとえば、機械可読信号として機械命令を受信する機械可読媒体を含む、プログラマブルプロセッサに機械命令および/またはデータを供給するのに使用される、磁気ディスク、光ディスク、メモリ、およびプログラマブル論理デバイス(PLD)などのすべてのコンピュータプログラム製品、装置、および/またはデバイスを指す。用語「機械可読信号」は、機械命令および/またはデータをプログラマブルプロセッサに供給するのに使用されるすべての信号を指す。機械可読媒体は、たとえば非一時的ソリッドステートメモリ、磁気ハードドライブ、または任意の同等の記憶媒体などのように、そのような機械命令を非一時的に記憶することができる。機械可読媒体は、その代わりにまたはそれに加えて、たとえば1つまたは複数の物理プロセッサコアに関連するプロセッサキャッシュまたは他のランダムアクセスメモリなどのように、過渡的な形においてそのような機械命令を記憶することができる。
【００７５】
ユーザとの対話を提供するために、本明細書で説明される主題は、ユーザに情報を表示する表示デバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、それによってユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)ならびに/またはタッチスクリーンとを有するコンピュータ上で実施され得る。他の種類のデバイスも、ユーザとの対話を提供するのに使用され得、たとえば、ユーザに提供されるフィードバックは、任意の形の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形において受け取られ得る。
【００７６】
上の説明および特許請求の範囲において、「少なくとも1つの」または「1つまたは複数の」などの句が現れ、これに要素または特徴の連結的なリストが続く場合がある。用語「および/または」も、2つ以上の要素または特徴のリスト内に現れる場合がある。それが使用される文脈によって他の形で暗黙のうちにまたは明示的に否定されない限り、そのような句は、リストされた要素または特徴のいずれかを個別に、または他の列挙された要素または特徴と組み合わされた列挙された要素または特徴のいずれかを意味することが意図されている。たとえば、句「AおよびBのうちの少なくとも1つ」、「AおよびBのうちの1つまたは複数」、および「Aおよび/またはB」は、それぞれ、「Aのみ、Bのみ、またはAとBとを一緒に」を意味することが意図されている。同様の解釈が、3つ以上の項目を含むリストに関しても意図されている。たとえば、句「A、B、およびCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、および「A、B、および/またはC」は、それぞれ、「Aのみ、Bのみ、Cのみ、AとBとを一緒に、AとCとを一緒に、BとCとを一緒に、AとBとCとを一緒に」を意味することが意図されている。さらに、上および特許請求の範囲内での用語「〜に基づく」の使用は、列挙されていない特徴または要素も許容可能になるように、「〜に少なくとも部分的に基づく」を意味することが意図されている。
【００７７】
本明細書で説明された主題は、所望の構成に応じて、システム、装置、方法、および/または物品内で実施され得る。前述の説明内で示された実施態様は、本明細書で説明された主題と一貫するすべての実施態様を表すものではない。そうではなく、それらは、単に、説明される主題に関する態様と一貫するいくつかの例である。少数の変形形態が、上で詳細に説明されたが、他の変形または追加が可能である。具体的には、さらなる特徴および/または変形形態が、本明細書で示されたものに加えて提供され得る。たとえば、上で説明された実施態様は、開示される特徴の様々な組合せおよび副組合せならびに/または上で開示された複数のさらなる特徴の組合せおよび副組合せを対象とすることができる。さらに、添付図面内に示され、かつ/または本明細書で説明された論理フローは、必ずしも、望ましい結果を達成するために図示の特定の順序または順次順序を必要としない。他の実施態様が以下の特許請求の範囲の範囲内である可能性がある。
【符号の説明】
【００７８】
100  図
105  データベースシステム
110  インデックスサーバ
1101  インデックスサーバ
1102  インデックスサーバ
1103  インデックスサーバ
115  ネームサーバ
1151  ネームサーバ
1152  ネームサーバ
1153  ネームサーバ
120  アプリケーションサーバ
1201  サーバ
1202  サーバ
1203  サーバ
125  拡張ストアサーバ
130  データベース開発インフラストラクチャ(DDI)サーバ
135  データプロビジョニングサーバ
140  ストリーミングクラスタ
145  リモートクライアント
150  リモートクライアント
155  ウェブベースのツール
160  管理ツールおよび開発ツール
200  図
2101  ホスト
2102  ホスト
2103  ホスト
2201  データベースインスタンス
2202  データベースインスタンス
2203  データベースインスタンス
230  クライアントアプリケーション
300  図
302  接続およびセッション管理構成要素
304  認証構成要素
306  認可マネージャ
308  メタデータマネージャ
310  要求処理および実行制御構成要素
312  SQLプロセッサ
314  プロシージャプロセッサ
316  GEMプロセッサ
318  プラニングエンジン
320  エンタープライズパフォーマンス管理(EPM)ランタイム構成要素
322  MDXプロセッサ
324  タスクマネージャ
326  計算エンジン
328  DDIプロキシ
330  リポジトリ
332  リレーショナルストア
334  フェデレーション構成要素
336  行ストア
338  列ストア
340  一時的結果
342  非リレーショナルデータストア
344  トランザクションマネージャ
346  永続性レイヤ
348  永続ディスクストレージ
350  データボリューム
352  トランザクションログボリューム
354  外部データソースシステム
400  アーキテクチャ
405a  主システム
405b  副システム
450  ウェブベースのツール
455  HTTP要求
460  管理ツール
465  SQL要求
470a  負荷平衡化サーバ
470b  負荷平衡化サーバ
500  HA/DRシステム
505  主システム
510  副システム
515  クライアント
520  読取/書込接続
525  読取専用接続
535  メインメモリ
540  メインメモリ
545  プロセッサ
550  プロセッサ
555  処理制御
560  処理制御
565  永続性レイヤ
570  永続性レイヤ
575  データボリューム
580  データボリューム
585  ログボリューム
590  ログボリューム
600  HA/DRシステム
605  主データベースシステム
610  副データベースシステム
615  インデックスサーバ
620  インデックスサーバ
625  セッションサービス
630  セッションサービス
634  クライアントアプリケーション
635  クライアントライブラリ
645  読取/書込接続
650  読取専用接続
655  通信チャネル
700  HA/DRシステム
705  主データベースシステム
710  副データベースシステム
715  インデックスサーバ
720  インデックスサーバ
725  セッションおよび接続サービス
734  クライアントアプリケーション
735  クライアントライブラリ
745  読取/書込接続
750  読取専用接続
765  SQLオプティマイザ
775  ネームサーバ
800  HA/DRシステム
805  主データベースシステム
810  副データベースシステム
815  インデックスサーバ
820  インデックスサーバ
825  セッションおよび接続サービス
834  クライアントアプリケーション
835  クライアントライブラリ
870  トランザクションマネージャまたは永続性レイヤ
880  照会プラニングエンジン
901  クライアントアプリケーション
902  クライアントライブラリ
904  主システム
906  副システム
908  セッションマネージャ
910  セッションコンテキストキャッシュ
912  セッションマネージャ
【図１】
2018088235.tif 000003
【図２】
2018088235.tif 000004
【図３】
2018088235.tif 000005
【図４】
2018088235.tif 000006
【図５】
2018088235.tif 000007
【図６】
2018088235.tif 000008
【図７】
2018088235.tif 000009
【図８】
2018088235.tif 000010
【図９】
2018088235.tif 000011
【外国語明細書】
2018088235000001.pdf