(57)【要約】【課題】プラットフォームベースのデータ分離のためのシステムを提供する。【解決手段】システムは、第1のホストにおける第1のクエリの受信と、第1のクエリが第1のテーブルに関連付けられていることの第1のホストにおける判定であって、第1のテーブルは、地理的に制限されたデータと、地理的制限の識別子を記憶する区画カラムとを含む、判定と、第1のテーブルの第1の区画と、第1の区画のストレージ場所との、第1のホストにおける、第1のテーブルの区画カラムと、第1のクエリとに基づく判定と、第1の区画のストレージ場所と連携した第1のホストにおける第1のクエリの実行とを含む。【選択図】図１
2018005919.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
第1のコンピューティングデバイスを備え、前記第1のコンピューティングデバイスは、
第1のプロセッサ実行可能な処理ステップを記憶する第1のメモリと、
第1のクエリの受信と、
前記第1のクエリが、第1のテーブルに関連付けられているとの判定であって、
前記第1のテーブルは、地理的に制限されたデータと、地理的制限の識別子を記憶した区画カラムとを含む、判定と、
前記第1のテーブルの第1の区画と、前記第1の区画のストレージ場所との、前記第1のテーブルの前記区画カラムと、前記第1のクエリとに基づく判定と、
前記第1の区画の前記ストレージ場所と連携した前記第1のクエリの実行とを、前記第1のコンピューティングデバイスに対して行わせるために、前記第1のプロセッサ実行可能な処理ステップを実行する第1の少なくとも1つのプロセッサとを備える、システム。
【請求項２】
前記第1の区画の前記ストレージ場所は、遠隔システムにあり、前記第1の少なくとも1つのプロセッサはさらに、
第2のクエリの受信と、
前記第2のクエリが、前記第1のテーブルに関連付けられているとの判定と、
前記第1のテーブルの前記第1の区画と、前記第1のテーブルの第2の区画の複製された部分のローカルなストレージ場所との、前記第1のテーブルの前記区画カラムと、前記第2のクエリとに基づく判定と、
前記第2の区画の前記複製された部分の前記ローカルなストレージ場所と連携した前記第2のクエリの実行とを、前記第1のコンピューティングデバイスに対して行わせるために、前記第1のプロセッサ実行可能な処理ステップを実行する、請求項1に記載のシステム。
【請求項３】
前記第1のテーブルの前記第2の区画の前記複製された部分は、地理的に制限されたデータを含まない、請求項2に記載のシステム。
【請求項４】
前記第1の少なくとも1つのプロセッサはさらに、
第3のクエリの受信と、
前記第3のクエリが、第2のテーブルに関連付けられているとの判定であって、
前記第2のテーブルは、地理的に制限されたデータ、または、地理的制限の識別子を記憶した区画カラムを含まない、判定と、
前記第2のテーブルのローカルなストレージ場所の判定と、
前記第2のテーブルの前記ローカルなストレージ場所と連携した前記第3のクエリの実行とを、前記第1のコンピューティングデバイスに対して行わせるために、前記第1のプロセッサ実行可能な処理ステップを実行する、請求項2に記載のシステム。
【請求項５】
前記第1の少なくとも1つのプロセッサはさらに、
前記第1のテーブルの前記第1の区画、前記第1のテーブル部分の前記第2の区画の前記複製された部分、および、前記第2のテーブルのローカルバックアップを生成するためのバックアップ動作の実行を、前記第1のコンピューティングデバイスに対して行わせるために、前記第1のプロセッサ実行可能な処理ステップを実行する、請求項4に記載のシステム。
【請求項６】
前記第1の少なくとも1つのプロセッサはさらに、
第2のクエリの受信と、
前記第2のクエリが、第2のテーブルに関連付けられているとの判定であって、前記第2のテーブルは、地理的に制限されたデータ、または、地理的制限の識別子を記憶した区画カラムを含まない、判定と、
前記第2のテーブルのローカルなストレージ場所の判定と、
前記第2のテーブルの前記ローカルなストレージ場所と連携した前記第2のクエリの実行とを、前記第1のコンピューティングデバイスに対して行わせるために、前記第1のプロセッサ実行可能な処理ステップを実行する、請求項1に記載のシステム。
【請求項７】
前記第1の少なくとも1つのプロセッサはさらに、
前記第1のテーブルおよび第2のテーブルの前記第1の区画のローカルバックアップを生成するためのバックアップ動作の実行を、前記第1のコンピューティングデバイスに対して行わせるために、前記第1のプロセッサ実行可能な処理ステップを実行する、請求項2に記載のシステム。
【請求項８】
第2のコンピューティングデバイスをさらに備え、前記第2のコンピューティングデバイスは、
第2のプロセッサ実行可能な処理ステップを記憶した第2のメモリと、
前記第2のコンピューティングデバイスに対して、第2のテーブルの前記第2の区画を記憶させるために、前記第2のプロセッサ実行可能な処理ステップを実行する第2の少なくとも1つのプロセッサとを備える、請求項2に記載のシステム。
【請求項９】
前記第1の少なくとも1つのプロセッサはさらに、
前記第1のテーブルの前記第1の区画、および前記第1のテーブル部分の前記第2の区画の前記複製された部分のローカルバックアップを生成するためのバックアップ動作の実行を、前記第1のコンピューティングデバイスに対して行わせるために、前記第1のプロセッサ実行可能な処理ステップを実行し、
前記第2の少なくとも1つのプロセッサはさらに、
前記第2のテーブルの前記第2の区画のローカルバックアップを生成するためのバックアップ動作の実行を、前記第2のコンピューティングデバイスに対して行わせるために、前記第2のプロセッサ実行可能な処理ステップを実行する、請求項8に記載のシステム。
【請求項１０】
前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスとが、異なる法的管轄に配置された、請求項9に記載のシステム。
【請求項１１】
コンピュータによって実施される方法であって、
第1のクエリを第1のホストにおいて受信するステップと、
前記第1のクエリが、第1のテーブルに関連付けられていることを、前記第1のホストにおいて判定するステップであって、前記第1のテーブルは、地理的に制限されたデータと、地理的制限の識別子を記憶した区画カラムとを含む、判定するステップと、
前記第1のテーブルの第1の区画と、前記第1の区画のストレージ場所とを、前記第1のホストにおいて、前記第1のテーブルの前記区画カラムと、前記第1のクエリとに基づいて判定するステップと、
前記第1の区画の前記ストレージ場所と連携して前記第1のクエリを前記第1のホストにおいて実行するステップとを備える、方法。
【請求項１２】
前記第1の区画の前記ストレージ場所は、遠隔システムにあり、前記方法はさらに、
前記第1のホストにおいて第2のクエリを受信するステップと、
前記第2のクエリが、前記第1のテーブルに関連付けられていることを、前記第1のホストにおいて判定するステップと、
前記第1のテーブルの前記第1の区画と、前記第1のテーブルの第2の区画の複製された部分のローカルなストレージ場所とを、前記第1のホストにおいて、前記第1のテーブルの前記区画カラムと、前記第2のクエリとに基づいて判定するステップと、
前記第2の区画の前記複製された部分の前記ローカルなストレージ場所と連携して前記第1のホストにおいて前記第2のクエリを実行するステップとを備える、請求項11に記載の方法。
【請求項１３】
前記第1のテーブルの前記第2の区画の前記複製された部分は、地理的に制限されたデータを含まない、請求項12に記載の方法。
【請求項１４】
第3のクエリを前記第1のホストにおいて受信するステップと、
前記第3のクエリが、第2のテーブルに関連付けられていることを前記第1のホストにおいて判定するステップであって、前記第2のテーブルは、地理的に制限されたデータ、または、地理的制限の識別子を記憶した区画カラムを含まない、判定するステップと、
前記第2のテーブルのローカルなストレージ場所を、前記第1のホストにおいて判定するステップと、
前記第2のテーブルの前記ローカルなストレージ場所と連携して前記第1のホストにおいて前記第3のクエリを実行するステップとをさらに備える、請求項12に記載の方法。
【請求項１５】
前記第1のテーブルの前記第1の区画、前記第1のテーブル部分の前記第2の区画の前記複製された部分、および、前記第2のテーブルのローカルバックアップを生成するためのバックアップ動作を前記第1のホストにおいて実行するステップをさらに備える、請求項14に記載の方法。
【請求項１６】
第2のクエリを前記第1のホストにおいて受信するステップと、
前記第2のクエリが、第2のテーブルに関連付けられていることを、前記第1のホストにおいて判定するステップであって、前記第2のテーブルは、地理的に制限されたデータ、または、地理的制限の識別子を記憶した区画カラムを含まない、判定するステップと、
前記第2のテーブルのローカルなストレージ場所を、前記第1のホストにおいて判定するステップと、
前記第2のテーブルの前記ローカルなストレージ場所と連携して前記第1のホストにおいて前記第2のクエリを実行するステップとをさらに備える、請求項11に記載の方法。
【請求項１７】
前記第1のテーブルおよび第2のテーブルの前記第1の区画のローカルバックアップを生成するためのバックアップ動作を、前記第1のホストにおいて実行するステップ、をさらに備える、請求項12に記載の方法。
【請求項１８】
第2のテーブルの前記第2の区画を、第2のホストにおいて記憶させるステップ、をさらに備える、請求項12に記載の方法。
【請求項１９】
前記第1のテーブルの前記第1の区画、前記第1のテーブル部分の前記第2の区画の前記複製された部分のローカルバックアップを生成するためのバックアップ動作を前記第1のホストにおいて実行するステップと、
前記第2のテーブルの前記第2の区画のローカルバックアップを生成するためのバックアップ動作を前記第2のホストにおいて実行するステップとをさらに備える、請求項18に記載の方法。
【請求項２０】
前記第1のホストと前記第2のホストとが、異なる法的管轄に配置された、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラットフォームベースのデータ分離に関する。
【背景技術】
【０００２】
企業データベースシステムは、事業の多くの態様に関連するデータを受信し、生成し、記憶する。このデータは、販売、顧客関係、マーケティング、下請け業者関係、在庫、人的資源、および/または財務に関連し得る。パフォーマンスおよび信頼度の理由で、企業データベースシステムは、ますます分散されるようになって来ており、これによって、データベースノード(および、結果として、そこに記憶されるデータ)は、任意の数の異なる地理的場所に配置され得るようになる。
【０００３】
国特有のデータプライバシ規則は、いくつかのタイプのデータ(たとえば、個人データ)が、特有の地理的場所に記憶されることを要求し得る。典型的に、これらの要件は、データベースアプリケーションレベルに準拠し、根底をなすデータベースプラットフォームからの制限があるか、または、サポートがない。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明はシステムを提供し、システムは第1のコンピューティングデバイスを備え、第1のコンピューティングデバイスは、
第1のプロセッサ実行可能な処理ステップを記憶する第1のメモリと、
第1のクエリの受信と、
第1のクエリが、第1のテーブルに関連付けられているとの判定であって、
第1のテーブルは、地理的に制限されたデータと、地理的制限の識別子を記憶した区画カラムとを含む、判定と、
第1のテーブルの第1の区画と、第1の区画のストレージ場所との、第1のテーブルの区画カラムと、第1のクエリとに基づく判定と、
第1の区画のストレージ場所と連携した第1のクエリの実行とを、第1のコンピューティングデバイスに対して行わせるために、第1のプロセッサ実行可能な処理ステップを実行する第1の少なくとも1つのプロセッサとを備える。
【図面の簡単な説明】
【０００５】
【図１】いくつかの実施形態に従うシステムアーキテクチャのブロック図である。
【図２】いくつかの実施形態に従う処理のフロー図である。
【図３】いくつかの実施形態に従う設計時間システムアーキテクチャのブロック図である。
【図４】いくつかの実施形態に従う処理のフロー図である。
【図５】いくつかの実施形態に従うランタイムシステムアーキテクチャのブロック図である。
【図６】いくつかの実施形態に従うランタイムシステムアーキテクチャのブロック図である。
【図７】いくつかの実施形態に従うランタイムシステムアーキテクチャのブロック図である。
【図８】いくつかの実施形態に従うバックアップシステムアーキテクチャのブロック図である。
【図９】いくつかの実施形態に従うバックアップシステムアーキテクチャのブロック図である。
【図１０】いくつかの実施形態に従うコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【０００６】
以下の説明は、説明された実施形態を当業者が製造し使用することを可能にするように提供される。しかしながら、様々な修正が、当業者へ容易に明白であり続けるであろう。
【０００７】
簡潔に述べると、いくつかの実施形態は、テーブルデータの一部を、所望された地理的場所に記憶し、そこからデータを取得するために、非プライマリキーベースの範囲区画を有利にかつ創意的に導入する。実施形態はまた、パフォーマンス利点を提供するために、選択された表形式データの複製を含み得る。
【０００８】
図1は、いくつかの実施形態に従う設計時間アーキテクチャ100のブロック図である。アーキテクチャ100は、データストア112および114、サーバ120、およびアドミニストレータ130を含む。実施形態は、アーキテクチャ100に限定されない。
【０００９】
サーバ120は、データストア112および114のクエリをサービス提供するための任意のシステムを備え得る。データストア112および114は、それぞれ、任意のタイプのクエリ応答データストアを備え得る。データストア112および114は、異なる法的管轄(たとえば、ドイツと米国)におけるような、異なる地理的場所に配置され得る。プライバシおよび/または他の法的もしくはビジネス考慮により、特定のデータテーブル(たとえば、従業員テーブル)のあるデータをデータストア112に、および、特定のデータテーブルの他のデータをデータストア114に記憶することが所望され得る。たとえば、ドイツ人従業員に関連する従業員テーブルのロウをデータストア112に記憶し、米国人従業員に関連する従業員テーブルのロウをデータストア114に記憶することが所望され得る。
【００１０】
アドミニストレータ130は、それに管理機能を提供するために、サーバ120とインタラクトする任意のコンピューティングシステムを備え得る。そのような機能は、コンフィギュレーション設定、メンテナンス、およびバックアップ/復元を含み得る。アドミニストレータ130はまた、ユーザが、データストア112および114に記憶されたテーブル構造、および、データを記述する他のメタデータを、ユーザインターフェースを介して定義することを可能にし得る。このメタデータは、サーバ120のメタデータリポジトリに記憶され得る。
【００１１】
図2は、いくつかの実施形態に従う処理200のフロー図を備える。いくつかの実施形態では、アーキテクチャ100の様々なハードウェア要素は、処理200を実行するためにプログラムコードを実行する。本明細書で言及された処理200および他のすべての処理は、フロッピーディスク、CD-ROM、DVD-ROM、フラッシュドライブ、および磁気テープのような非一時的なコンピュータ読取可能な媒体のうちの1つまたは複数から読み取られたコンピュータ実行可能なプログラムコードにおいて具体化され得、その後、圧縮された、非コンパイルの、および/または、暗号化されたフォーマットで記憶され得る。いくつかの実施形態では、ハードワイヤ回路が、いくつかの実施形態に従う処理の実施のためのプログラムコードの代わりに、または、このプログラムコードと結合して使用され得る。したがって、実施形態は、ハードウェアとソフトウェアのあらゆる特有の組合せにも限定されない。
【００１２】
先ず、S210において、地理的に制限されたデータを含むデータベーステーブルが識別される。S210の1つの例では、ユーザは、サーバ120のデータベースカタログへアクセスするために、アドミニストレータ130を操作し得る。データベースカタログは、データベーステーブルの論理レイヤおよびデータベーステーブル間の関係を定義するメタデータを含み得る。各データベーステーブルは、1つまたは複数のカラムを含むと定義される。たとえば、前述された従業員テーブルは、カラム従業員ID、従業員名、従業員住所、従業員電話番号、従業員給与等を含めるようにデータベースカタログにおいて定義され得る。
【００１３】
次に、S220において、S210において識別された各テーブルのために、区画カラムが定義される。区画カラムは、地理的制限の識別子を記憶するためのものである。上記の例に続いて、データベースカタログを見るためにアドミニストレータ130において実行されるユーザインターフェースアプリケーションもまた、データベースカタログを編集するための機能を提供し得る。ユーザは、区画カラムストレージ場所を定義するために、S220においてこの機能を利用し得る。そのようなカラムは、関連付けられたテーブルロウのデータが記憶されるべき地理的場所の識別子を記憶するように意図され得る。
【００１４】
処理200は、設計時間中、および、地理的に感度の高いデータベーステーブルがアーキテクチャ100へ追加される任意の時間中に実行され得る。データストア112および114は、地理的に感度の高いデータを記憶することに限定されず、アーキテクチャ100は、地理的に感度の高いデータを記憶しないデータストアを備え得、したがって、任意の適切な場所に配置され得る。
【００１５】
いくつかの実施形態に従って、アプリケーション開発者は、興味のあるテーブルが区画カラムを含むように事前定義するので、処理200は、必ずしもアドミニストレータによって行われる必要はない。したがって、アプリケーションはそのカラム内に適切なドメイン値(たとえば、国コード)を設定し、また、もしも適用可能であれば、これら値は、データベースが区画を効率的に除去でき得ることを保証するために、WHERE節において(すなわち、述部において)常に使用されることを保証する。
【００１６】
図3は、いくつかの実施形態に従うランタイムアーキテクチャ300を例示する。アーキテクチャ300は、図1のサーバ120と、データストア112および114を含み、また、クライアント140と、その上で実行しているアプリケーション145とを含む。一般に、サーバ120は、サービス125を実行し、アプリケーション145へ提供し得る。より具体的には、サーバ120内で実行しているサービス125は、クライアント140上で実行しているアプリケーション145からの要求を受信し、データストア112および114内に記憶されたデータに基づいて、結果を、アプリケーション145へ提供する。
【００１７】
クライアント140へユーザインターフェースを提供し、アプリケーション145から要求を受信し、この要求に基づいてデータストア112および114からデータを取得し、データストア112および114から受信したデータを処理し、処理されたデータをアプリケーション145へ提供することによって、アプリケーション145へ機能を提供する、サーバ側で実行可能なプログラムコード(たとえば、コンパイルされたコード、スクリプト等)を、サービス125は備え得る。
【００１８】
1つの特有の例では、クライアント140は、クライアント140のディスプレイ上に、ユーザへのユーザインターフェースを提示するためのアプリケーション145を実行する。ユーザは、1つまたは複数の次元、および/または、1つまたは複数の手段から構成されたユーザインターフェースへクエリを入力する。このクエリはまた、フィルタのような他の情報を含み得る。アプリケーションは、クエリに基づいて、要求を、サービス125のうちの1つへ渡す。構造化照会言語(SQL)ステートメントが、要求に基づいて生成され、データストア112および114のうちの適切なものへ転送され、結果セットが返され、アプリケーション145は、結果セットに基づいて、レポート/可視化を生成する。
【００１９】
サーバ120は、任意の適切なプロトコルインターフェースを提供し、クライアント140において実行しているアプリケーション145は、このプロトコルインターフェースを介して、サービス125と通信し得る。たとえば、サーバ120は、転送制御プロトコル(TCP)において過渡的要求/応答プロトコルをサポートするハイパテキスト転送プロトコル(HTTP)インターフェース、および/または、サーバ120と単一のTCP接続においてWebSocketプロトコルを実施する任意のクライアント140との間の非過渡的フルデュプレクス通信をサポートするWebSocketインターフェースを含み得る。
【００２０】
サーバ120において実行している1つまたは複数のサービス125は、限定されないが、オープンデータベースコネクティビティ(ODBC)およびJava（登録商標）データベースコネクティビティ(JDBC)インターフェースのようなデータベース管理インターフェースを使用して、データストア112および114と通信し得る。これらのタイプのサービス125は、データストア112および114に記憶されたデータを管理およびクエリするために、SQLを使用し得る。
【００２１】
データストア112および114のデータは、いくつかのリレーショナルデータベース、次元データベース、および/または、他のデータソースの間で分散され得る。実施形態は、いずれの数またはタイプのデータストアへも限定されない。いくつかの実施形態では、データストア112および114のデータは、従来の表形式データ、ロウベースのデータ、カラムベースのデータ、およびオブジェクトベースのデータのうちの1つまたは複数を備え得る。データストア112および114のいずれかは、フルデータベースが揮発性(たとえば、非ディスクベースの)メモリ(たとえば、ランダムアクセスメモリ)に記憶された「インメモリ」データベースを実施し得る。フルデータベースは、固定ディスク(図示せず)に固定され、および/または、固定ディスク(図示せず)へバックアップされ得る。あるいは、データは、ランダムアクセスメモリ(たとえば、最近使用されたデータを記憶するためのキャッシュメモリ)および、1つまたは複数の固定ディスク(たとえば、フルデータベースの各々の部分を記憶するための永久メモリ)に記憶され得る。
【００２２】
クライアント140の各々は、サーバ120とのインタラクションを可能にするためのユーザインターフェースを提示するため、アプリケーション145のプログラムコードを実行する1つまたは複数のデバイスを備え得る。アプリケーション145のユーザインターフェースは、レポート、データ分析、および/または、データストア112および114のデータに基づく他の任意の機能のために適したユーザインターフェースを備え得る。
【００２３】
本明細書で説明されるようなユーザインターフェースの提示は、サーバ120によって生成されたユーザインターフェースコードのタイプに依存して、任意の程度またはタイプのレンダリングを備え得る。たとえば、クライアント140は、サーバ120から、HTTP、HTTPS、および/またはWebSocketによって、(たとえば、HTMLフォーマットの)ウェブページを要求および受信するためにウェブブラウザを実行し得、既知のプロトコルに従って、ウェブページをレンダリングし、提示し得る。クライアント140のうちの1つまたは複数はまた、あるいは、その代わりに、仮想マシン内のスタンドアロンの実行可能ファイル(たとえば、.exeファイル)またはコード(たとえば、JAVA（登録商標）アプレット)を実行することによって、ユーザインターフェースを提示し得る。別の方法では、クライアント140のうちの1つまたは複数は、サーバ120からロードされたアプリケーション145を実行し、サーバ120において実行されたサービス125への要求によって、データおよびメタデータを受信する。データおよびメタデータは、クライアント140上にユーザインターフェースをレンダリングするために、アプリケーション145によって処理される。
【００２４】
図4は、いくつかの実施形態に従ってサーバ120によって実行され得る処理400のフロー図を備える。先ず、S410において、クエリが受信される。クエリは、クライアント上で実行しているアプリケーション145から受信され得、データベースカタログにおいて定義された1つまたは複数のデータベーステーブルにおいて実行されるべき動作(たとえば、挿入、更新、読取)を指定し得る。
【００２５】
次に、S415において、クエリが、地理的に制限されたデータを含むテーブルに関連付けられていることが判定される。この判定は、クエリにおいて指定されたテーブルが、地理的制限の識別子を記憶している区画カラムを含んでいることを、データベースカタログのメタデータに基づいて識別するステップを備え得る。
【００２６】
識別されたテーブル上のクエリによって要求される動作が、S420において判定される。たとえば、クエリが、テーブルへのデータの挿入を要求しているのであれば、フローはS420からS430へ進む。S430において、挿入されるべきデータに関連付けられたストレージ場所が判定される。ストレージ場所は、挿入されるべきデータに含まれている地理的識別子の値に基づいて判定され得る。更新および読取のために、アプリケーションは、典型的には、どのロウを更新または読取するのかを識別するためのWHERE節(または述部、またはフィルタ)を提供するであろう。たとえば、挿入されるべきデータが、その区画カラムに値「米国」を含んでいるのであれば、S430において判定されるストレージ場所は、識別子「米国」に関連付けられたストレージ場所である。
【００２７】
この点において、データベースカタログは、データベース区画を定義し得る。本明細書において議論されたデータベーステーブルの地理的分離部分は、これらデータベーステーブルの区画として考慮され得、この区画は、区画カラムのユニークな値に関連付けられている。したがって、データベースカタログは、地理的に制限されたデータを含む各テーブルのために、テーブルの各地理的制限識別子(たとえば、ドイツ、米国等)に関連付けられたストレージ場所を指定し得る。
【００２８】
データは、S435において、関連付けられたストレージ場所におけるデータベーステーブルへ挿入される。従来の範囲区画では、ロウは、ロウのプライマリキーに基づいて、その適切な区画に記憶される。この点において、各区画は、プライマリキー値の1つまたは複数の範囲へ割り当てられる。プライマリキー値がユニークであることを保証するために、プライマリキーチェックが行われる。区画カラムが、プライマリキーカラム、または、プライマリキーカラムのうちの1つであれば、衝突を有するロウは、区画機能によって強制されるようにロウが挿入されている区画に対してローカルであるので、衝突のために他の区画にチェックインすることは必要ではない。現在のケースでは、区画は、プライマリキーカラムに基づいていないので、いくつかの実施形態は、S435において、各ロウの、関連付けられたストレージ場所への記憶の前に、プライマリキー衝突をチェックし得る。フローは、その後、S460へ進み、クエリに対する応答(たとえば、確認メッセージ)を送信する。
【００２９】
S420において、クエリが、テーブルのデータへの更新を要求していると判定されると、フローは、S440へ進む。更新されるべきデータに関連付けられたストレージ場所が、S440において判定される。たとえば、クエリは、更新されるべきロウに関連付けられた地理的識別子の値を指定し得るか、または、この値は、クエリのWHERE節において指定され得る。この値は、上述されたように、データベースカタログに基づいて、ストレージ場所を判定するために使用される。判定されたストレージ場所において記憶されたデータは、その後、S445において更新され、クエリに対する応答(たとえば、確認メッセージ)がS460において送信される。
【００３０】
一方、S420において、クエリが、識別されたテーブルのロウの読取を要求していると判定されると、フローは、S450へ進む。S450において、読み取られるべきロウを記憶しているデータセンタが、クエリのWHERE節に基づいて識別される。またS450では、各ロウの地理的に制限されたデータが識別される。以下に記載されるように、ロウのいくつかのカラムは、(たとえば、地理的場所に関係なく)1つのストレージ場所に配置され得る一方、(たとえば、地理的に制限されたデータを含む)他のカラムは、要求された地理的場所に配置され得る。読み取られるべきロウは、S455において、その1つまたは複数のストレージ場所から取得され、読み取られた値は、S460において、クエリに対する応答で送信される。
【００３１】
図5は、いくつかの実施形態に従うシステム500を例示する。図示されるように、データストア112または114のうちの1つを実施し得るホスト510は、システム500のすべてのアプリケーションサーバからクエリを受信する。したがって、ホスト510は、上述したように処理400を実行し得る。ホスト510は、従業員テーブルのテーブルA、テーブルB、テーブルC、および区画1を記憶する。この点において、テーブルA、B、およびCのデータは、地理的に制限されていないが、従業員テーブルは、本明細書に説明されたように、地理的制限に基づいて区画される。すべてのクエリがホスト510へ経路付けられているので、クエリにサービス提供する場合、遠隔データをフェッチする必要性を最小化するために、ホスト510において、テーブルA、B、およびCを記憶することがより効率的であり得る。従業員テーブルの区画2および3は、受信されたクエリに対してサービス提供する必要がある場合に、単にホスト510によってアクセスされる。いくつかの実施形態に従って、ほとんどの処理(参加等)はホスト510において実行されるので、ホスト520および530は、ホスト510よりも著しく低い処理電力しか有さないように構成され得る。
【００３２】
図6のシステム600は、システム500に類似しているが、従業員テーブルの区画2および3の部分は、ホスト610において複製される。複製された部分は、地理的に制限されたデータを含まない区画2および3のカラムを含む。これらローカルな複製は、ホスト620および630への遠隔コールを必要とすることなく、地理的に制限されたデータを必要としない従業員テーブルのクエリに対してより効率的にサービス提供するために使用され得る。
【００３３】
たとえば、ホスト610は、指定された基準が、地理的に制限されたデータ(すなわち、これは、ホスト620および630に記憶されている)に関係していない限り、たとえば、この基準にマッチするロウの数をカウントするために、従業員テーブルの複製された部分にローカルに集合し得る。別の例では、ホスト610に記憶された従業員テーブルの複製された部分は、従業員テーブルの従業員IDカラムを含み得、したがって、いずれかの従業員が特定の従業員IDに関連付けられているか否かを判定するために使用され得る。
【００３４】
図7は、いくつかの実施形態に従うシステム700を例示する。ホスト710から720の各々は、それらの関連付けられたアプリケーションサーバからのクエリを受信し得る。テーブルA、B、およびCは、当該技術分野において知られているように、位置決めがなされ、期待された用途に基づいてホスト710から730において選択的に複製される。繰り返すが、ホスト710から730の各々は、ホストの地理的場所に制限されたデータを含む従業員テーブルの区画を記憶する。
【００３５】
地理的制限はまた、バックアップおよびリストア動作中にも考慮され得る。具体的には、ログバックアップおよびデータバックアップ内に記憶されたデータに関して、地理的なデータ制限を維持することが望ましい。図8は、いくつかの実施形態に従うバックアップアーキテクチャ800を例示する。図示されるように、各ホスト810から830は、それ自体のローカルデータおよびログボリュームおよびデータおよびログバックアップを維持する。各ボリュームおよびバックアップのファイルは、それらの対応するホストのインデクスサーバによってダイレクトに書き込まれる。
【００３６】
アーキテクチャ800はまた、ホスト810のバックアップコーディネータ815を使用して、共有ファイルシステムをサポートする。ファイルシステムがデータ場所を管理できるようにするために、場所特有の規則(たとえば、ジェネラルパラレルファイルシステム規則)が設定される。このファイルシステム規則を適用するために使用され得るパターンに従うように、ファイル名が適合され得る。そのような実施形態のうちのいくつかは、バックアップからの復元を開始する前に、すべてのファイルが存在していることをチェックするステップを容易にする。復元中、各処理は、任意の瞬間において、任意のボリュームをピックアップし、リストアし得る。したがって、データ場所へのファイル名の固定されたマッピングが望ましい。
【００３７】
図9のバックアップアーキテクチャ900に従って、サードパーティバックアップツール940がバックアップをトリガする。ホスト910から930の各インデクスサーバは、そのデータを、そのホストローカルバックアップエージェントへ送信する。ホストローカルバックアップエージェントは、その後、このデータを、サードパーティバックアップツール940へ配信する。バックアップツール940は、遠隔データセンタにおける個々のバックアップボリュームへの遠隔アクセスをサポートする、または、共有ファイルシステム規則のアプリケーションが、ファイルを特定のデータストレージ場所へピン留めすることを可能にする上述したようなパターンに従うファイル名を使用するかのいずれか一方を行う。
【００３８】
図10は、いくつかの実施形態に従う装置1000のブロック図である。装置1000は、汎用コンピューティング装置を備え得、本明細書に記載された機能のいずれかを実行するためにプログラムコードを実行し得る。装置1000は、いくつかの実施形態において、図1の、および/または、ホスト510、610、または710のサーバ120およびデータストア112の実施を備え得る。装置1000は、いくつかの実施形態に従って、他の図示されない要素を含み得る。
【００３９】
装置1000は、通信デバイス1020、データ記憶デバイス1030、1つまたは複数の入力デバイス1040、1つまたは複数の出力デバイス1050、および、メモリ1060へ動作可能に結合されるプロセッサ1010を含む。通信デバイス1020は、アドミニストレーションデバイスおよび/または遠隔データストアのような外部デバイスとの通信を容易にし得る。入力デバイス1040は、たとえば、キーボード、キーパッド、マウスまたは他のポインティングデバイス、マイクロホン、ノブもしくはスイッチ、赤外線(IR)ポート、ドッキングステーション、および/または、タッチスクリーンを備え得る。入力デバイス1040は、たとえば、装置1000へ情報を入力するために使用され得る。出力デバイス1050は、たとえば、ディスプレイ(たとえば、ディスプレイスクリーン)、スピーカ、および/または、プリンタを備え得る。
【００４０】
データ記憶デバイス1030は、磁気記憶デバイス(たとえば、磁気テープ、ハードディスクドライブ、およびフラッシュメモリ)、光記憶デバイス、読取専用メモリ(ROM)デバイス等の組合せを含む任意の適切な永久記憶デバイスを備え得る一方、メモリ1060は、ランダムアクセスメモリ(RAM)、ストレージクラスメモリ(SCM)、または他の任意の高速アクセスメモリを備え得る。メモリ1060は、本明細書に記載されるように動作するローカルバッファを含み得る。
【００４１】
インデクスサーバ1032は、本明細書に記載された処理の任意の1つまたは複数を装置1000に実行させるためにプロセッサ1010によって実行されるプログラムコードを備え得る。実施形態は、単一の装置によるこれら処理の実行に限定されない。データ1036は、本明細書に記載されたような地理的に制限された区画を含むデータベーステーブルを含み得る。(キャッシュまたはフルデータベースのいずれかである)データ1036はまた、メモリ1060のような揮発性メモリに記憶され得る。データ記憶デバイス1030はまた、追加の機能を提供するための、および/または、デバイスドライバ、オペレーティングシステムファイル等のような装置1000の動作のために必要な、データおよび他のプログラムコードを記憶し得る。
【００４２】
前述した図は、いくつかの実施形態に従う処理を説明するための論理的なアーキテクチャを表し、実際の実施は、それより多くの、または、他の方式で構成された異なる構成要素を含み得る。他のトポロジが、他の実施形態と連携して使用され得る。さらに、本明細書で説明された各構成要素またはデバイスが、任意の数の他のパブリックおよび/またはプライベートネットワークを経由して通信する任意の数のデバイスによって実施され得る。そのようなコンピューティングデバイスの2つ以上が、互いに離れて配置され得、任意の既知の方式のネットワークおよび/または専用接続を経由して互いに通信し得る。各構成要素またはデバイスは、本明細書で説明された機能のみならず、他の任意の機能を提供するために適切な任意の数のハードウェアおよび/またはソフトウェア要素を備え得る。たとえば、いくつかの実施形態に従うシステムの実施において使用される任意のコンピューティングデバイスは、コンピューティングデバイスが本明細書で説明されたように動作するようにプログラムコードを実行するプロセッサを含み得る。
【００４３】
本明細書において議論されたすべてのシステムおよび処理は、1つまたは複数の非一時的なコンピュータ読取可能な媒体に記憶されたプログラムコードにおいて具体化され得る。そのような媒体は、たとえば、フロッピーディスク、CD-ROM、DVD-ROM、フラッシュドライブ、磁気テープ、およびソリッドステートランダムアクセスメモリ(RAM)または読取専用メモリ(ROM)記憶ユニットを含み得る。したがって、実施形態は、ハードウェアとソフトウェアのあらゆる特有の組合せに限定されない。
【００４４】
本明細書において説明された実施形態は、単に例示の目的のためである。当業者は、他の実施形態が、上記で説明されたものに対する修正および変更を用いて実現され得ることを認識するであろう。
【符号の説明】
【００４５】
100  アーキテクチャ
112  データストア
114  データストア
120  サーバ
125  サービス
130  アドミニストレータ
140  クライアント
145  アプリケーション
300  アーキテクチャ
500  システム
510  ホスト
520  ホスト
530  ホスト
600  システム
610  ホスト
620  ホスト
630  ホスト
700  システム
710  ホスト
720  ホスト
730  ホスト
800  バックアップアーキテクチャ、アーキテクチャ
810  ホスト
815  バックアップコーディネータ
820  ホスト
830  ホスト
900  バックアップアーキテクチャ
910  ホスト
920  ホスト
930  ホスト
940  サードパーティバックアップツール
1000  装置
1010  プロセッサ
1020  通信デバイス
1030  データ記憶デバイス
1032  インデクスサーバ
1036  データ
1040  入力デバイス
1050  出力デバイス
1060  メモリ
【図１】
2018005919.tif 000003
【図２】
2018005919.tif 000004
【図３】
2018005919.tif 000005
【図４】
2018005919.tif 000006
【図５】
2018005919.tif 000007
【図６】
2018005919.tif 000008
【図７】
2018005919.tif 000009
【図８】
2018005919.tif 000010
【図９】
2018005919.tif 000011
【図１０】
2018005919.tif 000012
【外国語明細書】
2018005919000001.pdf