(57)【要約】【課題】データセンターのネットワークにおいてクエリを実行する方法を提供する。【解決手段】方法は、準備段階及び実行段階を含む。準備段階は、各データセンターが、親データセンター（以下、親）及び子データセンター（以下、子）の動的な階層クラスタトポロジーにおけるデータセンターの構成を可能にする、データセンターパラメータ及び／又は近接さに関する情報を提供することを含む。各子は、クエリの個々の解析タスクにより処理されるべき、各子自身のローカルデータシーケンスを有し、子は、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、クラスタは単一の親を有する。実行段階は、親がタスクを子に送信し、子が、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを親に送信することを含む。子及びその親の両方が子により実行されたタスクと子により実行されたタスクの結果のシーケンスとをキャッシュする。【選択図】図１
2017199356.tif 000002
【特許請求の範囲】
【請求項１】
データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法であって、
当該方法は、準備段階及び実行段階を含み、
前記準備段階は、
各データセンターが、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおけるデータセンターの構成を可能にする、データセンターパラメータ及び／又は近接さに関する情報を提供するステップであって、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、前記クラスタは、単一の親データセンターを有する、ステップ
を含み、
前記実行段階は、
前記親データセンターが、タスクを前記子データセンターに送信し、前記子データセンターが、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するステップ
を含み、
子データセンター及び該子データセンターの親データセンターの両方が、該子データセンターにより実行されたタスクと、該子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュする、方法。
【請求項２】
前記実行段階において、前記子データセンターが、新たな受信データに関連付けられる結果の変化を特定した場合、前記子データセンターは、キャッシュされている結果からの前記変化を再現するための変換を提供し、前記変換を前記親データセンターに送信する、請求項１に記載の方法。
【請求項３】
前記実行段階において、前記親データセンターと前記子データセンターとの間の通信が遮断された場合、前記親データセンターは、同じクラスタにおける前記子データセンターのうちの別の子データセンターからの結果を使用して、前記結果のシーケンスを続ける、請求項１又は２に記載の方法。
【請求項４】
前記子データセンターのクラスタは、データサイズ、予期されるタスク、及びデータセンター許容可能な演算、のうちの任意のものを含むデータセンターパラメータと、物理的近接さ、ネットワーク接続、及び地理的位置、のうちの任意のものを含むデータセンター近接ファクタと、に基づいて形成される、請求項１乃至３いずれか一項に記載の方法。
【請求項５】
前記準備段階は、
データセンターＤｉに関して、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
【数１】
2017199356.tif 000035
と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
【数２】
2017199356.tif 000036
と、前記子データセンターのサイズｓｉと、を提供するステップ
を含む、請求項１乃至４いずれか一項に記載の方法。
【請求項６】
規定された条件下でのデータ及びタスクの移転であって、前記移転は、元の子データセンターから送信先の子データセンターにデータを転送することと、前記送信先の子データセンターにおいてタスクを実行することと、を含む、移転
をさらに含む、請求項１乃至５いずれか一項に記載の方法。
【請求項７】
前記規定された条件は、転送される前記データを転送するのに要する時間を考慮する、請求項６に記載の方法。
【請求項８】
前記規定された条件は、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
【数３】
2017199356.tif 000037
と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
【数４】
2017199356.tif 000038
と、前記子データセンターのサイズｓｉと、に基づいて規定され、データ移転中に子データセンターから移動されるデータに対する、前記データ移転中に該子データセンターに移動されるデータの比を計算する、請求項６又は７に記載の方法。
【請求項９】
前記クエリは、階層の全体の親であるルートデータセンターにおいて、前記データセンターのネットワークに入力され、前記ルートデータセンターは、中間親データセンターを介して、前記階層の最下レベルを形成するリーフデータセンターである子データセンターに、タスクを送信する、請求項１乃至８いずれか一項に記載の方法。
【請求項１０】
前記クラスタにおける各子データセンターについて、前記親データセンターに向かう、該子データセンターの上りリンク帯域幅
【数５】
2017199356.tif 000039
と、該子データセンターのサイズｓｉと、を使用して、前記解析タスクを実行するためのデータセンターのサブセットθの選択を決定するステップ
をさらに含み、
前記サブセットθのサイズは、閾値よりも大きいように予め設定され、前記選択は、見込まれる上りリンク通信量を最小化することである、請求項１乃至９いずれか一項に記載の方法。
【請求項１１】
クエリを実行するためのデータセンターのネットワークにおける親データセンターであって、
前記データセンターは、当該親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、当該親データセンターは、前記クラスタについての唯一の親であり、
当該親データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、前記タスクを前記子データセンターに送信し、各子データセンターから、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及び入力／出力コンポーネント（Ｉ／Ｏ）と、
前記子データセンターにより実行されたタスクと、前記子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、親データセンター。
【請求項１２】
前記プロセッサ及び前記Ｉ／Ｏは、ユーザクエリを受信し、前記階層クラスタトポロジーを形成するよう構成されている、請求項１１に記載の親データセンター。
【請求項１３】
クエリを実行するためのデータセンターのネットワークにおける子データセンターであって、
前記データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、前記親データセンターは、前記クラスタについての唯一の親であり、
当該子データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、前記親データセンターからタスクを受信し、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するよう構成されているプロセッサ及び入力／出力コンポーネント（Ｉ／Ｏ）と、
当該子データセンターが実行したタスクと、当該子データセンターが実行した該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、子データセンター。
【請求項１４】
請求項１１に記載の親データセンターと、複数の、請求項１３に記載の子データセンターと、を含む、クエリを実行するためのデータセンターのネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広域地理的分散解析を処理することに関する。本発明は、データ及び処理の両方がしばしば分散される複数のアプリケーションを、今日の世界において見出している。特定のアプリケーションは、データセンターにタスクが分散される。データセンターは、大量のデータのリモート記憶、処理、又は分散のための組織により使用され得るネットワーク化されたコンピューティングリソース／コンピュータ（典型的にはサーバ）のグループとして定義され得る。データセンターは、通常、冗長リソース及び冗長データ通信接続等を提供する。
【背景技術】
【０００２】
現在、従来技術における中心は、１つの単一データセンター内の異なるマシンにわたってデータ処理タスクをいかにして分散させるかにある。この状況における特有の特徴は、以下のことである：
１．１つのデータセンター内のネットワーク接続は、通常同種である。データ及び処理ユニットの局所（ローカル）性（locality）を検討するとき、ネットワーク異種性は、通常、最適化方法において考慮されない。
２．全ての処理ユニット及びデータが、高速ネットワーク接続を有する単一データセンターに保持される場合、ネットワークの上りリンク及び下りリンク転送の影響もそれほど大きくない。
３．ネットワーク通信のコストは、時として、ディスクＩ／Ｏのコストと比較して高くないと考えられる。これは、単一データセンター内のネットワークの速度が、通常は、従来のハードディスクに対する読み書きの速度よりもはるかに速いという事実に起因する。したがって、ネットワークにわたるインメモリデータが、ローカルオンディスクデータと比較すると、好ましい。
【０００３】
上記アプローチにおける１つの主たる問題は、データボリューム及びデータ多様性が急速に大きくなるにつれ、広域の物理的位置にわたる処理能力の分散を検討することがますます重要になることである。これは、以下の見解に基づく：
１．例えばセンサといったデータ収集デバイスが普及するにつれ、データは、生成のポイントにてますます分散されるようになる。中央位置にデータを収集して、予め定義された特性に応じてデータを再分散させる代わりに、生成のポイントに応じたデータ局所性を観測することが自然になる。次いで、データ及び／又は処理ユニットのフラグメントが、性能を最適化するために再分散される。
２．現在のワールドワイドコンピュータネットワークにおける中央化（又は、時として、バックホールデータ収集及び解析と呼ばれる）アプローチの実質的なボトルネックは、光ファイバー網大洋横断（例えば、大西洋横断ケーブル及び太平洋横断ケーブル）である。コスト及び地理的な困難さは、そのような大洋横断ファイバー接続が、従来のアプローチにおけるクリティカルパスである可能性が高いことを決定づけている。
３．例えばセンサといった特殊な収集デバイスの多様性に起因して、データは、当然フラグメント化されて分散されるようになる。結果は、１つの収集方法のレジーム内のデータが、ますます同種になる一方、異なるレジームからのデータが、ますます多様になる。収集のポイントにて局所的にデータを処理すること（及び地域データに適合させること）は、システム性能全体を増大させ得る。
４．中央化−再分散アプローチは、独立国の国境にまたがってデータを移動させる場合には機能しない。安全性、プライバシー、及びセキュリティ上の理由により、多くの国は、（何らかの形の）データが国境をまたがることを防止する法律を課している。これは、グローバルな中央化された視野に基づく最適化を不可能にする。
【０００４】
一方、そのような位置を接続するネットワークは、著しく変化し得る。そのような情報は、データ及びプロセスの局所性を最適化する際に考慮されるべきである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態は、これらの見解の一部又は全てを考慮して、地理的に分散されたデータソースとともに用いるのに適した効率的なデータ解析を容易にすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１の態様の一実施形態に従うと、データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法であって、
本方法は、準備段階及び実行段階を含み、
準備段階は、
各データセンターが、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおけるデータセンターの構成を可能にする、データセンターパラメータ及び／又は近接さに関する情報を提供するステップであって、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、クラスタは、単一の親データセンターを有する、ステップ
を含み、
実行段階は、
親データセンターが、タスクを子データセンターに送信し、子データセンターが、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するステップ
を含み、
子データセンター及びその親データセンターの両方が、この子データセンターにより実行されたタスクと、この子データセンターにより実行されたタスクの結果のシーケンスと、をキャッシュする、
方法が提供される。
【０００７】
特徴のこの組合せは、（例えば、データサイズ、サポートされている演算子、又は処理される典型的なタスク等のデータセンターパラメータに従って変化し得る）動的な階層クラスタ構造を可能にする。この階層クラスタリングは、同じ種類のデータを処理する、同じ国内のデータセンター等の、類似する且つ／又は相互に近接するデータセンターのグループ化を可能にする。
【０００８】
この実施形態において、子データセンター及びその親データセンターの両方が、この子データセンターにより実行されたタスクと、この子データセンターからの結果のシーケンスと、を、例えばクエリが終了されるまで、キャッシュ（一時的に記憶）する。したがって、親データセンターは、クラスタにおける子データセンターの各々からの全てのタスク及び結果を記憶する。このキャッシングは、バックアップとして記憶されている方法を効果的に使用して、演算の所定のフレキシビリティを可能にする。
【０００９】
一実施形態では、実行段階において、子データセンターが、新たな受信データに関連付けられる結果の変化を特定した場合、子データセンターは、キャッシュされている結果からの変化を再現するための変換（transformation）を提供し、この変換を親データセンターに送信する。これは、「プッシュ更新」として知られている。例えば、新たな受信データは、より大きなボリュームであり得、変換を用いて、キャッシュされている結果に対するこの影響を再現し（そうでなければ、このプロセスは生じない）、親にキャッシュされている結果と変換とを用いて、データを不必要に送信するのを回避することが可能である。
【００１０】
（プッシュ更新と組み合わされてもよい）プル推定と言及される別の実施形態では、実行段階において、親データセンターと子データセンターとの間の通信が遮断された場合、親データセンターは、同じクラスタにおける子データセンターのうちの別の子データセンターからの結果を使用して、結果のシーケンスを続けることができる。
【００１１】
子データセンターのクラスタは、データサイズ、予期されるタスク、及びデータセンター許容可能な演算、のうちの任意のものを含むデータセンターパラメータに基づいて形成され得る。子データセンターのクラスタは、物理的近接さ、ネットワーク接続、及び地理的位置、のうちの任意のものを含むデータセンター近接ファクタに基づいて形成され得る。多くの実施形態では、（経時的に変化する可能性がより高い）データセンターパラメータ及び近接ファクタの両方が、含まれ得る。
【００１２】
準備段階は、データセンターに関して、親データセンターに向かう、子データセンターの上りリンク帯域幅と、子データセンターに向かう、親データセンターからの下りリンク帯域幅と、子データセンターのサイズと、を提供するステップを含んでもよい。これらは、データ移転の検討を含め、多くのファクタを評価するのに有用であり得る。
【００１３】
本発明の実施形態は、規定された条件下でデータの移転を（したがってタスクの移転も）提供することができる。移転は、元の子データセンターから送信先の子データセンターにデータを転送することと、送信先の子データセンターにおいてタスクを実行することと、を含む。
【００１４】
規定された条件は、転送されるデータを転送するのに要する時間を考慮することができる。
【００１５】
一例では、規定された条件は、親データセンターに向かう、子データセンターの上りリンク帯域幅と、子データセンターに向かう、親データセンターからの下りリンク帯域幅と、子データセンターのサイズと、に基づいて規定される。これらのファクタ及び場合によっては他のファクタを用いて、データ移転中に子データセンターから移動されるデータに対する、データ移転中にこの子データセンターに移動されるデータの比を計算することができる。
【００１６】
ネットワークは、１つのクラスタ又は複数のクラスタを含み得、一部は単一の子データセンタを含んでもよい。クエリは、階層の全体の親であるルートデータセンターにおいて、データセンターのネットワークに入力され得る。ルートデータセンターは、階層が２つ以上のレベルを有する場合には、１つ以上の中間親データセンターを介して、階層の最下レベルを形成するリーフデータセンターである子データセンターに、タスクを送信する。
【００１７】
本方法は、クラスタにおける各子データセンターについて、親データセンターに向かう、各子データセンターの上りリンク帯域幅と、各子データセンターのサイズと、を使用して、解析タスクを実行するためのデータセンターのサブセットθの選択を決定するステップをさらに含んでもよく、サブセットθのサイズは、閾値よりも大きいように予め設定され、選択は、見込まれる上りリンク通信量を最小化することである。
【００１８】
さらなる態様の一実施形態に従うと、クエリを実行するためのデータセンターのネットワークにおける親データセンターであって、データセンターは、本親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、本親データセンターは、このクラスタについての唯一の親であり、
本親データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、タスクを子データセンターに送信し、各子データセンターから、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及びＩ／Ｏと、
子データセンターにより実行されたタスクと、子データセンターにより実行されたタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、
親データセンターが提供される。
【００１９】
プロセッサ及びＩ／Ｏは、ユーザクエリを受信し、階層クラスタトポロジーを形成するよう構成されてもよい。これは、特定の親データセンターを、ルートデータセンターとして構成させる。
【００２０】
さらなる態様の一実施形態に従うと、クエリを実行するためのデータセンターのネットワークにおける子データセンターであって、データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、親データセンターは、このクラスタについての唯一の親であり、
本子データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、親データセンターからタスクを受信し、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するよう構成されているプロセッサ及びＩ／Ｏと、
本子データセンターが実行したタスクと、本子データセンターが実行したタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、
子データセンターが提供される。
【００２１】
さらなる態様の一実施形態に従うと、上述された親データセンターと、複数の、上述された子データセンターと、を含む、クエリを実行するためのデータセンターのネットワークが提供される。この実施形態では、データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、親データセンターは、このクラスタについての唯一の親であり、
親データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、タスクを子データセンターに送信し、各子データセンターから、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及びＩ／Ｏと、
子データセンターにより実行されたタスクと、子データセンターにより実行されたタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有し、
子データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、親データセンターからタスクを受信し、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するよう構成されているプロセッサ及びＩ／Ｏと、
この子データセンターが実行したタスクと、この子データセンターが実行したタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、
クエリを実行するためのデータセンターのネットワークが提供され得る。
【００２２】
本発明の好ましい実施形態に従った装置又はコンピュータプログラムは、方法の態様の任意の組合せを含み得る。さらなる実施形態に従った方法又はコンピュータプログラムは、処理機能及びメモリ機能を要求するという点で、コンピュータにより実施されるとして記載され得る。
【００２３】
好ましい実施形態に従った装置は、所定の機能を実行するよう構成されているとして、又は、単に、所定の機能を実行するとして、記載される。この構成は、ハードウェア若しくはミドルウェア又は任意の他の適切なシステムの使用によりなされ得る。好ましい実施形態において、この構成は、ソフトウェアによる。
【００２４】
したがって、一態様に従うと、少なくとも１つのデータセンター上にロードされたときに、前述のデータセンターの定義のうちのいずれか又はこれらの任意の組合せに従った親データセンター又は子データセンターになるように少なくとも１つのデータセンターを構成するプログラムが提供される。実際には、同じソフトウェアが、データセンター上にロードされ、動的なクラスタ情報に従って、親データセンター又は子データセンターとしての構成を動的に提供してもよい。
【００２５】
さらなる態様に従うと、ネットワークのデータセンター上にロードされたときに、前述の方法の定義のうちのいずれか又はこれらの任意の組合せに従った方法ステップを実行するようにデータセンターを構成するプログラムが提供される。
【００２６】
本発明は、デジタル電子回路により実装されてもよいし、又は、コンピュータハードウェア、ファームウェア、ソフトウェア、若しくはこれらの組合せにより、実装されてもよい。本発明は、コンピュータプログラム又はコンピュータプログラム製品として、すなわち、１つ以上のハードウェアモジュールによる実行のための又は１つ以上のハードウェアモジュールの動作を制御するための、例えばマシン読み取り可能な記憶デバイスといった非一時的な情報キャリア又は伝搬信号において明白に具現化されるコンピュータプログラムとして、実装されてもよい。
【００２７】
コンピュータプログラムは、スタンドアロンプログラム、コンピュータプログラムの一部、又は２つ以上のコンピュータプログラムの形とすることができ、コンパイル型又はインタープリタ型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、又は、モジュール、コンポーネント、サブルーチン、若しくは、データ処理環境における使用に適した他のユニットとして等、任意の形式でデプロイすることができる。コンピュータプログラムは、１つのサイトにおける１つのモジュール又は複数のモジュール上で実行されるようにデプロイされてもよいし、複数のサイトにわたって分散され、通信ネットワークを介して相互接続されるようにデプロイされてもよい。
【００２８】
本発明の方法ステップは、１つ以上のプログラム可能なプロセッサが、入力データに対して作用し出力を生成することにより本発明の機能を実行するためのコンピュータプログラムを実行することにより、実行され得る。本発明の装置は、プログラムされたハードウェアとして実装されてもよいし、又は、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）若しくはＡＳＩＣ（特定用途向け集積回路）を含む特殊目的ロジック回路として実装されてもよい。
【００２９】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用マイクロプロセッサ及び特殊目的マイクロプロセッサの両方と、任意の種類のデジタルコンピュータの任意の１つ以上のプロセッサと、を含む。一般に、プロセッサは、読み取り専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から、命令及びデータを受信する。コンピュータの不可欠な要素は、命令及びデータを記憶する１つ以上のメモリデバイスに接続される、命令を実行するプロセッサである。
【００３０】
本発明は、特定の実施形態の観点で説明される。他の実施形態も、請求項の範囲内にある。例えば、本発明のステップは、異なる順番で実行されることがあるが、それでも望ましい結果を達成することができる。オブジェクト指向プログラミング技術を使用することなく、複数のテストスクリプトバージョンが、ユニットとして編集されて呼び出されてもよい。例えば、スクリプトオブジェクトの要素が、構造化データベース又はファイルシステムにおいて編成されてもよく、スクリプトオブジェクトにより実行されるとして記述される動作が、テスト制御プログラムにより実行されてもよい。
【図面の簡単な説明】
【００３１】
本発明の好ましい特徴が、添付の図面を参照して、純粋に例としてこれより説明される。
【図１】概括的な実施形態における方法のフローチャート。
【図２】本発明の概括的な実施形態における親データセンター又は子データセンターのブロック図。
【図３】本発明の実施形態において使用するためのデータセンターのより詳細な図。
【図４】データセンターの階層の例を示す図。
【図５】データに対するタスクの結果の概要を示す図。
【図６】プル推定の例を示す図。
【図７】本発明の実施形態に従った準備及び実行のフローチャート。
【図８】データセンターの特徴づけのフローチャート。
【図９】クエリ分散及び実行のフローチャート。
【発明を実施するための形態】
【００３２】
図１は、データセンターのネットワークにおいて実行され得る、詳細には、当該ネットワークのクラスタにおいて実行され得る、本発明の実施形態の方法のフローチャートである。
【００３３】
ステップＳ１０において、各データセンターは、親及び子を有するクラスタへの構成を可能にする情報（例えば、当該データセンター自身についての情報及び他のデータセンターへの当該データセンターの接続についての情報）を提供する。この情報は全て、例えば、データセンターネットワークにおける単一データセンター（以下でさらに説明されるルートデータセンターであり得る）に提供され得る。この情報は、集中して記憶されてもよいし、分散方式で記憶されてもよい。
【００３４】
ステップＳ２０において、階層における親は、タスクを子に送信する。これらのタスクは、クエリ（又は、より大きな階層において、複数の親が同じレベルで存在する場合には、その親に割り当てられた、クエリの一部）を一緒に構成する個々のタスクであり得る。
【００３５】
ステップＳ３０において、各子は、結果を、そのクラスタにおける親に送信する。ステップＳ４０において、各子は、当該子自身の実行されたタスク及び結果をキャッシュし、親は、クラスタにおける、全ての実行されたタスク及び結果をキャッシュする。
【００３６】
図２は、親データセンター又は子データセンターであり得るデータセンターのコンポーネントの概略図である。各データセンターは、実際には、異なる時間においては又は異なるクエリに対しては、親として、及び、子として、機能することがある。本発明の実施形態において使用される部分のみが図示されている。各データセンターは、Ｉ／Ｏ（入力／出力コンポーネント）１００、ストレージ１１０、プロセッサ１２０（単数形で言及されているが、プロセッサとして一緒に機能する複数の処理ユニットを含む可能性が高い）を含む。Ｉ／Ｏ１００は、単一のユニットとして図示されているが、複数のセクションに分割され得る。
【００３７】
データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成されるが、これは、ここでは、接続矢印とさらなるデータセンターの輪郭線とによって表されているだけである。各子データセンターは、クエリの個々の解析タスクにより処理されるべき、当該子自身の（例えばローカルデータソースからの）ローカルデータシーケンスを記憶する。子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、親データセンターは、このクラスタについての唯一の親である。例示的なネットワーク及びクラスタが、図４に示されている。
【００３８】
親データセンター１０は、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、タスクを子データセンターに送信し、各子データセンターから、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ１２０及びＩ／Ｏ１００と、
子により実行されたタスク及び子データセンターにより実行されたタスクの結果のシーケンスをキャッシュするよう構成されているストレージ１１０と、
を有する。
【００３９】
子データセンター１０は、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、親データセンターからタスクを受信し、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するよう構成されているプロセッサ１２０及びＩ／Ｏ１００と、
この子データセンターが実行したタスク及びこの子データセンターが実行したタスクの結果のシーケンスをキャッシュするよう構成されているストレージ１１０と、
を有する。
【００４０】
以下において、データセンターは、Ｄｉと表記され、十分なプロセッサ／ＣＰＵ（中央処理装置）能力及び記憶空間を有すると仮定される。この仮定は、ＣＰＵ（及びプロセッサ一般）及び記憶デバイスの価格が、大規模データセンターを構築するコストと比較するとささいであるという事実に基づく。Ｄｉの演算能力及び記憶能力は、容易に拡張され得る。また、Ｄｉ内ネットワーク接続（単一データセンター内のコンピュータ間の接続、及び／又は、単一データセンター内のプロセッサ及びメモリ間の接続）は、厳しく制限され、注意深く最適化され得る。そのような通信の遅延は、無視され得る。一方、各Ｄｉ内では、データ及びプロセスの局所性の問題は、（分散コンピューティングパラダイムからの既存の容易に利用可能な技術を使用して）満足のいくように解決されることが想定される。これは、本文書の範囲を超えている。以下においては、Ｄｉ間計画化及び実行方策が中心である。
【００４１】
記号
以下のテキストにおいて、以下の記号が頻繁に使用される。
Ｄｉ：データセンター
ｓｉ：データセンターのデータサイズ。これは、典型的には、ギガバイトとして表されるが、他の広く受け入れられている単位が使用されてもよく、最終的な演算に影響を及ぼすものではない。
ｒｉ，ｊ：ｊ番目の（カテゴリの）演算子がデータに適用された後のデータサイズ低減比。これは、通常、パーセンテージとして表され、したがって、単位はない。
ｔｉ，ｊ：単位サイズ（unit  size）のローカルデータに対してｊ番目の（カテゴリの）演算子を実行する経過時間。演算のタイプに応じて、典型的な単位は、秒又はミリ秒であり得る。これは、経過した実時間である。
Ｔｉ，ｊ：全てのローカルデータに対してｊ番目の（カテゴリの）演算子を実行する累積総経過時間。
【数１】
2017199356.tif 000003
：データセンターの上りリンク帯域幅であり、典型的な単位は、ビット／秒である。
【数２】
2017199356.tif 000004
：データセンターの下りリンク帯域幅であり、ここでも、典型的な単位は、ビット／秒である。
【００４２】
データセンター
明示的には要求されないが、本文書におけるデータセンターは、潜在的により高いソフトウェア層を伴う３層設計に従うと仮定される。典型的な３層設計は、コア層、集約層、及びアクセス層からなる。コア層は、データセンターの主入口層及び主出口層とみなされる。
【００４３】
データセンター内のサーバは、アクセス要求を分散させるためのラックスイッチを有する複数のラック内に配置される。ラックスイッチは、ラッククラスタスイッチに接続され、ラッククラスタスイッチは、データセンターのエッジとしてコア層を構成する高性能コンピューティング設備に接続される。各層の上りリンクは、ハードウェア仕様として、又は、周期的にネットワークをテストする設備を使用することにより、収集され得る。データセンターに関する下りリンクは、ネットワークをテストする設備を使用することにより、測定される。そのような情報が、仮想親データセンターにリレーされ、レイヤ３又はレイヤ４の親データセンター（ソフトウェア）データバランサーにおいて、利用可能なリソースがそのような位置で許容されるならば、記憶され得る。理想的には、レイヤ４の（ソフトウェア）ロードバランサーにおいて、子データセンターについての情報は、必要な場合にはいくつかのデータ要求が子データセンターにリダイレクトされる仮想階層の形成を可能にするように、元々の情報を拡張することができる。
【００４４】
典型的には、データセンターは、図３に示される仮想アーキテクチャを有するものと表され得る。図３は、本発明を具現化するデータセンター１０であって、本発明の一実施形態の方法を実施するために使用され得るデータセンター１０のブロック図である。
【００４５】
データセンターは、仮想マシン１０とみなすことができる。仮想マシン１０は、全てのマシンにわたって分散される処理ユニット群２０、ハードディスク群により提供される一時的及び永続的なデータセンター（ＤＣ）ストレージ３０、ネットワークエリアストレージ、オンチップメモリ、オンボードメモリ等を有する。仮想マシンは、ＤＣ内Ｉ／Ｏ４０とＤＣ間Ｉ／Ｏ５０とを違わせることができ、前者は、後者よりもかなり高速であるべきである。ＤＣ間Ｉ／Ｏは、上りリンク帯域幅６０と下りリンク帯域幅７０とを違わせるべきであり、多くの場合、これらは等しくない。ＤＣ内Ｉ／Ｏ４０は、本文書においてさらには特徴づけられないが、完全さのためにここで言及されている。
【００４６】
一実施形態は、これらのデータセンターのネットワークから構成され得る。任意的に、データセンターは、図示されていない、キーボード及びマウス等の１つ以上の入力機構及び１つ以上のモニタ等のディスプレイユニットを含んでもよい。これらのコンポーネントは、内部通信パスを介して互いに接続可能である。内部通信パスも図示されていない。
【００４７】
メモリ３０は、コンピュータ読み取り可能な媒体を含み得る。コンピュータ読み取り可能な媒体という用語は、コンピュータ実行可能な命令を運ぶ且つ／又はデータ構造を記憶するよう構成されている１つの媒体又は複数の媒体（例えば、中央若しくは分散データベース並びに／又は関連付けられたキャッシュ及びサーバ）を指し得る。コンピュータ実行可能な命令は、例えば、汎用コンピュータ、特殊目的コンピュータ、又は特殊目的処理デバイス（例えば、１つ以上のプロセッサ）によりアクセス可能であり、これらに１つ以上の機能又は動作を実行させる命令及びデータを含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語はまた、マシンにより実行され、マシンに本開示の方法のうちの任意の１つ以上の方法を実行させる命令のセットを記憶する、符号化する、又は運ぶことができる任意の媒体を含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むがこれらに限定されるものではないと解釈され得る。限定ではなく例として、そのようなコンピュータ読み取り可能な媒体は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ）、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）又は他の光ディスクストレージ、磁気ディスクストレージ又は他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）を含む非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。
【００４８】
プロセッサブロック２０は、コンピューティングデバイスを制御し、例えば、本明細書及び特許請求の範囲に記載されている様々な異なる機能を実装した、メモリに記憶されているコードを実行すること等の処理動作を実行するよう構成されている。メモリ３０は、プロセッサ２０により読み書きされているデータを記憶する。本明細書で参照される場合、プロセッサは、マイクロプロセッサ、中央処理装置等といった１つ以上の汎用処理デバイスを含み得る。プロセッサは、複合命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は、他の命令セットを実装したプロセッサ若しくは命令セットの組合せを実装したプロセッサを含み得る。プロセッサはまた、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ等といった１つ以上の特殊目的処理デバイスを含み得る。１つ以上の実施形態において、プロセッサは、本明細書で説明される動作及びステップを実行するための命令を実行するよう構成されている。
【００４９】
ディスプレイユニットは、データセンターにより記憶されたデータの表現を表示することができ、ユーザとデータセンターに記憶されているプログラム及びデータとの間のインタラクションを可能にするスクリーン及びダイアログボックス並びにカーソルを表示することもできる。入力機構は、ユーザが、データ及び命令をコンピューティングデバイスに入力することを可能にし得る。
【００５０】
インタフェース４０は、インターネット又はスペシャリストネットワーク等のネットワークに接続され得、ネットワーク内の他のそのようなデータセンターに接続可能である。インタフェース４０は、ネットワークを介する他の装置から／へのデータ入力／出力を制御することができる。マイクロフォン、スピーカ、プリンタ、電源ユニット、ファン、ケース、スキャナ、トラッカボール等といった他の周辺デバイスも、コンピューティングデバイスに含められ得る。
【００５１】
本発明の実施形態において使用されるデータセンターは、メモリ１１０の一部に記憶される処理命令、処理命令を実行するプロセッサ１２０、及び、処理命令の実行中にデータ、タスク、及び結果を記憶する、メモリ１１０の一部を有することができる。
【００５２】
本発明を具現化する方法は、図３に示されるデータセンター等のデータセンター上で実行され得る。そのようなコンピューティングデバイスは、図３に示される全てのコンポーネントを有する必要はなく、これらのコンポーネントのサブセットを有してもよい。
【００５３】
本発明を具現化する方法は、互いと協調して動作する複数のデータセンターにより実行され得る。別の方法は、単一データセンターにおいて実行され得る。
【００５４】
データフォーマット
ローカルデータセグメントがしばしば観測されると想定される。そのようなセグメント化は、フォーマット、シンタックス、及びセマンティクスに基づき得る。ここで、セグメントは、収集された際のデータの自然分離である。例えば、ある領域から収集されたクリックストリーム（特に人の興味を評価するためにモニタリングされるような、ユーザにより行われた一連のマウスクリック）が、生成のポイント近くに記憶され、データのセグメント化を提供し、これは、全体の解析を与えるために、他の領域からの類似するデータと最終的に組み合わされる必要がある。また、センサデータが、（例えば、同じシンタックス及びセマンティクスを有する同じフォーマットで）収集されるとサーバに記憶され得る。
【００５５】
一方、そのようなローカルセグメント化を忠実に反映するメタデータが生成される。例えば、気象センサ局に関して、メタデータは、静的な情報及び動的な情報の両方を含むべきである。静的なメタデータは、データスキーマ、データフォーマット（例えば、表形式又は構造化されていないテキスト）、及び発行組織（並びにデータ来歴目的のための他のキー情報）等を含む。動的なメタデータは、データ最適化方法に起因して経時的に変化する傾向にある、データ生成の速度、データサイズ、データ局所性（ローカルデータ位置）等を含む。メタデータはまた、例えば、センサデータが、日付及び期間に基づいて分離されることを示す。この分離は、より良い演算のために時間次元に潜在的に基づいて地理的にセグメント化されるデータを切る（dice）異なる次元のセグメント化とすることができる。
【００５６】
各データセンターはまた、データセンターにより保持されているデータに適用され得る典型的な許容可能な演算（演算子）を提供することができる。データセンターは、多数のデータを保持することが可能である。この提案において、論理的に独立したデータブロックの各々について、典型的な演算子のカテゴリのリストが定義され得る。論理的に独立したデータブロックは、機能又は意味の類似性を有するが異なる起源（origin）を有するデータとみなされることもあるし、且つ／又は、例えば時間といった、第２の次元をもってさらにスライスされることもある。すなわち、論理的に独立したブロックは、物理的には同じマシン上にあり得るが、論理的には分離され得る。
【００５７】
演算子は、集約演算子又は転送演算子であり得る。データに関して、典型的なトランザクションは、データ低減トランザクション（集約等）及び（データの空間計算量を変化させることなくデータを新たな形式に変換する）サイズ維持トランザクション（size-preserving  transactions）である。カテゴリは、抽象化（abstraction）として、類似する演算子を一緒にグループ化する。演算子類似性は、演算子のセマンティクスに基づき得る：例えば、カウント型：ｃｏｕｎｔｓ、ｍａｘ、ｍｉｎ、ａｖｅｒａｇｅ等；及び、次元維持型（dimension-preserving  type）：画像の回転／変形、マトリックスの追加（matrix  addition）等。各カテゴリｊについて、次の特徴が、データセンターごとに推定（又は評価）され得る：データサイズ低減比ｒｉ，ｊ；ｊ番目の（カテゴリの）演算子を実行する経過時間ｔｉ，ｊ；及び、総経過時間Ｔｉ，ｊ。
【００５８】
ここで、ｔｉ，ｊは、単位データブロックについて費やされる時間である。この単位データブロック及び時間は、演算の便宜上、ユーザにより定義され得る。例えば、基本単位として、１時間の間に１つのセンサから収集されたセンサデータを（キロバイト単位で）カウントすること、又は、基本単位として、１日の間に全ての同種センサ（データソース）からのデータを（ギガバイト単位で）カウントすることが、システム全体にわたって統一され得る。基本単位データブロックをどのように定義するかは、セットアップ全体にわたって統一される限りにおいて、ユーザにより決定され得る。Ｔｉ，ｊは、同じ種類の全てのデータ（同じトランザクション／演算が適用される同種データブロック）に対する演算ｊの累積である。
【００５９】
処理
一般に、提案するソリューションは、以下の２つの機能的段階からなる：
１．準備段階：この段階において、不可欠なネットワーク及びタスク関連の特徴を収集して推定する。
２．実行段階：準備段階から導出されたパラメータを使用して、任意の解析タスクの実行を決定する。
【００６０】
図４は、準備段階のためのフレームワーク基盤の論理的抽象化を示している。この図において、データセンターは、階層に分割されている。図４は、いくつかのデータセンター（これらは、Ｄ１、Ｄ２、及びＤ３である）への直接リンクを有するルートデータセンターＤ０を示している。Ｄ０は、これら３つのデータセンターに対する親データセンターとみなすことができる。今度は、これらが、さらなるデータセンターに対する親データセンターであり得る。例えば、Ｄ１は、３つの子データセンターＤ１１、Ｄ１２、及びＤ１３を有し、データセンターＤ１１、Ｄ１２、及びＤ１３は、クラスタを形成する兄弟データセンターである。Ｄ２は、１つの子データセンターＤ２１を有する。
【００６１】
本着想は、仮想階層が、複数の層を有することができることである（しかしながら、通常は深くない）。階層における全てのノードは、（クエリに応答するためのデータの一部を保持している場合）データをローカルで処理できるべきである。しかしながら、階層における非リーフノードのみが、中間結果をキャッシュし、以下でより詳細に説明されるプッシュ／プル最適化を（親として）実施する必要がある。
【００６２】
データセンターＤｉは、（図３の構造に対応する、データセンター内のブロックにより表される）同じ論理アーキテクチャを共有するが、それらの物理的実装は異なり得る。全てのデータセンターの中で、Ｄ０が、ユーザクエリが到達するデータセンターを指す。これは、ユーザとデータセンターとの物理的近接さに基づくこともあるし、又は、ユーザにより定義される明示的なクエリ提供に基づくこともある。１つのデータセンターのみが、ユーザクエリを受信する役割を担うことになる。ユーザが、例えば、パーソナルコンピュータ、ラップトップ、又はモバイル等の、ユーザのＵＩ（ユーザインタフェース）デバイスを介して、又は、さらにはデータセンターに直接的に、クエリを提供すると、クエリが、本図においてはＤ０と考えられる１つのデータセンターにリレーされる。このクエリに対する応答が、Ｄ０を介してユーザに返送されることになる。したがって、Ｄ０は、ユーザインタラクションのメインエントリポイントである。
【００６３】
Ｄ０は、異なるクエリに基づいて変わり得る。しばしば、クエリは、持続した時間期間の間実行されることが予期されるデータ集約型クエリである。繰り返しの実行と長い実行持続時間との必要性が、仮想階層構造を作成するオーバーヘッドを正当化する。
【００６４】
このフレームワークに含まれる全てのデータセンターは、動的なクラスタ構造において構成され、これは、効果的な方法でデータセンターを一緒にグループ化する。これは、位置の観点での１つ以上の類似性により一緒にリンクされる若しくは良好な接続性により一緒にリンクされる又は類似する能力／アーキテクチャによっても一緒にリンクされるデータセンターのクラスタに所定のタスクが割り当てられることを可能にする。例えば、クラスタトポロジーは、以下の近接ファクタに少なくとも部分的に基づいて（しかしながら、おそらくは、データセンターに記憶されているデータ及びデータセンター演算の同種性等のデータセンターパラメータも考慮して）定義され得る：
１．物理的近接さ：２つのデータセンターが互いからどれだけ離れているか
２．データセンター間の、及び、データセンターとＤ０との間のネットワーク接続
３．地理的特徴：複数のデータセンターが同じ独立国内に配置されているかどうか
【００６５】
当業者の読者ならば、階層構造をどのように算出して構築するかを知っているであろうため、このことは、本文書ではさらには取り扱われない。
【００６６】
これらのクラスタ階層は、クラスタにグループ化され、次いで、階層構造の複数の層（例えば、おそらくは２つ又は３つであり、大きな深さは予想されない）に構成される異なるデータセンターである。この利点は、以下の２部分である：
１．同種データセンターが、この論理トポロジーにおいて一緒にグループ化され得る。このグループ化は、地理的近接さ、データ同種性、タスク同種性等に基づき得る。理想的な結果は、親データセンターＤｐの子が、異なるデータを保持して異なるクエリ応答特性を提示し得るとしても、（特定のクエリのセットを処理するコンテキストにおいて）類似するデータ構造を共有し、タスクの共通セットについては大きく類似するように応答すべきであることである。例えば、所定のウェブサイトのクリックストリームを（グローバルスケールで）解析するとき、そのようなストリームデータを保持するデータセンターが、それらデータセンターの地理的位置に基づいてグループ化され得る。集約タスクは、ローカルで実行され得、その結果が、階層構造における複数の層を介して集約される。
２．親データセンターは、その子を管理することができる。データ及び地理的特性の類似性に起因して、子データセンターにおけるデータは、同じ安全性及びプライバシーの規制の対象になり、したがって、データが、より良いシステム性能のために移転され得る。また、親データセンターは、その子のステータスの高い認知性を有する。親データセンターは、利用可能性を推定することができ、子が利用可能でないときを補償することができる。
便益：論理構造が、データセンターネットワークに与えられる。これは、通信及びデータ割り当てをより良く管理するのを助けることができる。
【００６７】
準備段階
本発明の実施形態は、プロセスの要件に従って、準備段階において以下のステップを含み得る：
１．各Ｄｉは、前のセクションにおいて定義されたパラメータ及びメタデータを推定する（又は、すでに知られている場合には単にこれらにアクセスする）。これらは、例えば、データサイズｓｉ、将来の時点においてデータを推定できるようにｊ番目の（カテゴリの）演算子がデータに適用された後のデータサイズ低減比ｒｉ，ｊ、現在保持されているデータに適用され得る演算及び演算特性、ｔｉ，ｊ及びＴｉ，ｊ（１つの演算子について単位データブロックに対して費やされる時間及びその演算子についてデータセンターにおける全てのデータに対して費やされる時間）。
２．クラスタ階層が、（例えば、上述され、図４に提示されるように）定義される。この階層は、まず、近接さに従って作成され、次いで、データ及び／又はクエリの特徴づけ（characterisation）のために、例えば、データセンターのクラスタにローカルに保持されているデータの大部分に対してどのクエリが実行され得るかをチェックするために、調整され得る。
３．この論理トポロジーが定義された後、各データセンター（Ｄｉ及びＤ０）は、例えば、クエリが到達しない場合、ネットワーク性能を推定及び予測するために、ネットワークを周期的に「ポークする（poke）」。このプロセスは、全てのデータセンターＤｉからのデータを消費すると想定される所与の演算タスクを想定している。
ａ．データの例となるフラグメントが、Ｄｉに典型的には保持される当該データを反映するように、生成される（又は、適切な場合にはサンプリングされる）。理想的には、これは、ｎ重の単位ブロック（n-fold  of  a  unit  block）と同じサイズであるべきである（ここで、ｎは整数である）。したがって、比較のためのこの代表的データセットを使用して、ネットワーク全体の性能を測定することができる。
ｂ．Ｄｉは、そのような例となるデータを、そのタイムスタンプとともに、Ｄ０に周期的に送信する。
ｃ．Ｄ０は、このデータを受信し、Ｄｉの上りリンク帯域幅（
【数３】
2017199356.tif 000005
）を推定する。
ｄ．Ｄ０は、Ｄｉの下りリンク帯域幅（
【数４】
2017199356.tif 000006
）を推定するために、テスト（ハンドシェーキング）データセグメントを、全てのＤｉに周期的にブロードキャストする。
ｅ．階層構造が存在する場合、上りリンク帯域幅及び下りリンク帯域幅は、親−子データセンターのペアごとに推定されるべきである。
準備段階は、必ずしも連続的であるとは限らない。各Ｄｉは、データを生成し、階層に沿って、そのデータを当該Ｄｉの親に転送し、これが、タスク再割り当て／再分散を担当する。タスク再割り当て／再分散は、フレームワーク全体が予備能力を有するときにはいつでも（例えば、２つのクエリ間の間隔中に動的に）実行され得る。
４．データ局所性クラスタ内調整が、クエリ間で実行され得る、以下で説明されるプロセスである。これは、上述された上りリンク帯域幅推定及び下りリンク帯域幅推定を利用する。
【００６８】
データ局所性クラスタ内調整は、Ｄｐの全ての子の間におけるものであり、厳しいデータ局所性規制は当てはまらない。例えば、全ての子が、実際には、同じ独立国領域内に配置されることがある（その結果、データセンター間のデータの転送は、いかなる国境もまたがらない）。したがって、性能調整のために、Ｄｐのリーフ子データセンターにわたってデータを転送及び／又は複製することが可能である。そのような最適化は、リーフレベルで実行されるだけである可能性が高い。このデータは処理のためにあり、したがって、１つのデータセンター上で、別のデータセンターに元々記憶されていたデータを使用してタスクを実行することが可能である。そのような機能が、より良いプロセス効率性のために、データ移転を本発明の実施形態に提供する。
【００６９】
この種の最適化は、ｒｉ，ｊ、ｔｉ，ｊ、
【数５】
2017199356.tif 000007
、
【数６】
2017199356.tif 000008
、ローカルで（すなわち、所定のデータセンターで）処理するためにダウンロードされる（すなわち、別のデータセンターから移動される）データのサイズであるαｉ、及び、リモートで処理されるデータのサイズであるβｉに基づき得る。また、（前述のように）ｓｉは、ローカルデータのサイズとして定義される。対象は、
【数７】
2017199356.tif 000009
に向けられる。本質的に、この式は、以下のように機能する。
最初の部分において、
【数８】
2017199356.tif 000010
は、どれくらいの長さの追加データがＤｉにダウンロードされる必要があるかを与え、
【数９】
2017199356.tif 000011
は、他のデータセンターからのデータのダウンロード及び他のデータセンターへのデータのアップロードの後、且つ、何らかのデータ演算（ｒｉ，ｊ）の後、どれくらいの長さの結果がアップロードされるべきかを与える；これら２つの項が合わさると、データがＤｉに転送されＤｉから転送されるのにどれくらいの時間を要するかを伝える。
【００７０】
２番目の部分は、データを演算するのにどれくらいの時間を要するかである。これら２つの部分が合わさると、何らかのデータの演算を異なるデータセンターに移転する消費時間を算出する。次いで、ネットワーク全体がクエリについて最小時間量を消費するように、最適なデータ転送スケジュールを見出すために、これが、全ての子にわたって最小化される。
【００７１】
最小化の対象は、リーフデータセンターの直近の親データセンターにおいてクエリを処理することに伴う総時間である。総時間は、上記のように、データセンター間通信が必要なときにデータをアップロード及びダウンロードするための時間と、データセンターにおいてローカルでクエリを処理するための時間と、におけるファクタにブレークダウンされる。最適化は、αｉとβｉとの最良な比を見出すことができると、終了する。このような最適化プロセスは、時間を消費するものであり得る。このプロセスの開始の際、全てのデータが、移転なく、ローカルデータセンターにおいて処理されるべきであると仮定することができる。
【００７２】
上記対象は、以下の３つの仮定に基づいて単純化され得る：
１．データ局所性は、全ての子データセンターに対して均等であり、αｉ及びβｉは、実際上同等である。
２．ネットワーク通信時間と比較すると、ローカル処理時間はほとんど無視できる。
３．演算子は独立している、すなわち、演算子ｊと演算子ｋとは、互いに依存しない。
【００７３】
これは、以下の単純化された式をもたらす：
【数１０】
2017199356.tif 000012
ここで、
【数１１】
2017199356.tif 000013
、Ｍ、及びＮは、定数である：
【数１２】
2017199356.tif 000014
は、平均データ低減比であり、Ｎは、子の数であり、Ｍは、データセンターにより保持されているデータに対して適用される演算子の数である。上記の最適化の対象を容易に解決して、同じ親グループに属する他のデータセンターにおいて再割り当てされる又は複製されるデータを推定することができる。
【００７４】
クラスタ間のデータ及び／又はプロセスの局所性正規化は、そのような局所性トランザクションがデータ安全性及び独立国規制のリスクを冒す可能性があると想定される場合には、非子リーフについてはサポートされず、（中間）処理結果のみが転送され得ることに留意されたい。
【００７５】
このデータ局所性調整の範囲が、図４に示されており、図４において、リーフデータセンターのクラスタが破線で囲まれている。上方に動くと、中間結果が、親データセンターにおいて集約される。これは、永久的な物理階層構成ではないことに留意されたい。そうではなく、階層構造は、処理されるデータ及び／又は受信されるクエリの特徴に基づいて変化する。
【００７６】
便益：データ局所性調整は、タスク性能を向上させることができる。データ局所性調整を各クラスタ内に（兄弟データセンター間に）制限することは、高レベルのデータセキュリティ、プライバシー、及び独立国規則の順守を可能にする。これは、性能と安全性との間のバランスを提供する。
【００７７】
実行段階
実行段階において、論理／仮想階層構造に基づいて、ルートデータセンターは、ユーザクエリを受信し、階層の下方にクエリを分散させ、結果全体を集約し、ユーザに返すように配信する役割を担う。
【００７８】
処理されるデータは、リーフデータセンター（階層の最下レベル）に記憶される。ルートデータセンター（Ｄ０）は、タスク移転の役割を担うだけである。
【００７９】
ルートデータセンターは、通常、エンドユーザ間の近接さとデータの大部分が存在する位置との間のバランスに基づいて選択される。クエリと、最終的な集約のための中間データと、は、通常、サイズが小さいので、単純なアプローチは、（クエリ／アプリケーションについての）データの大部分が位置する領域にルートデータセンターを位置させることである。
【００８０】
実行は、以下のような有利な特徴を含み得る：
サブセット選択
プッシュ更新
プル推定
【００８１】
サブセット選択
（必要とされる場合には）所与のクエリのためのさらなるデータセンターの選択に関して、次の方策が適用され得る：Ｃが、親データセンター（ルートデータセンターが、階層のルートを形成するので、ルートデータセンターが、全体の親と解釈される）の全ての子のセットであり、σｉが、この選択方策を調整するために使用され得る定数係数であり、γが、ゼロの分母を避けるための定数であるとした場合、
【数１３】
2017199356.tif 000015
基本的に、この選択により、全ての子データセンターのうち、子と親との間の見込まれる上りリンク通信量を最小化することができるサブセットθが見出される。この目的関数を単純化するために、σｉ＝１に設定し、γを十分小さな数に設定することができる。また、θのサイズは、閾値（ユーザにより予め定められるか、又は、子の総数のパーセンテージとして設定されるかのいずれかである）よりも大きいべきである。サブセットθのこのサイズは、タスクの実行を可能にする最小値以上であるべきなので、閾値より大きい。θ∈２Ｃは、単に、θがＣのサブセットであることを要求する。
【００８２】
この段階において、方法は、データセンターのサブセットを、それらのリストされた特徴に基づいて見出だそうと試みる。上記は、データサイズ及び上りリンクのみを考慮した最も単純な実装である。
【００８３】
サブセット間のタスク／クエリ割り当てに関して、親データセンターの子として存在する全てのデータセンターは、親においてタスクを完了するのに必要なデータを潜在的に保持するデータセンターとして、親に予め登録される。子ＤＣ上のデータの特徴がすでに知られており、タスクを処理するときに使用され得る／使用されるべきであるという仮定に基づいて、タスク／プロセスが子に送信され得るという意味で、タスク割り当ては、（入力を、並列的に処理（写像）するための独立したチャンクに分割し、次いで、サマリを提供する）写像簡約タスク（map-reduce  task）に似ている。
【００８４】
このサブセット選択ステップは、必ずしも必要であるとは限らない。ここでは、例えば、全ての子データセンターにおいてタスクを処理するためのリソースが十分には存在しない場合に応じることが含まれる。データセンターのサブセットは、ユーザにより設定された最小要件に基づいて、又は、解析タスクのために十分であるとユーザがみなしたデータセンターの最小数に基づいて、選択され得る。例えば、領域のクリックストリームを解析することが望まれる場合、限られた時間しか利用可能でないときには、システムは、データセット全体（おそらくは、データセンターにわたって大まかに均等に分散されている−データ分散は、上記で説明されたように、２つのクエリ間の間の時間に再平衡化され得る）の８０％のみを解析するように指示される。上記目的関数は、データセンター選択の単純な実装である。全てのデータが解析に関与する必要があるということが、ハード制約である場合、上記サブセット選択ステップは、必要ではない。
【００８５】
プッシュ更新
このプロセスにおいて、親データセンター（Ｄｐ）の観点から見ると、データは、明示的要求なく、したがって、指定なく、これにプッシュされる。上記論理トポロジーにおいて、初期解析タスク（したがって、割り当てられたタスク全体の一部）の実行の後、初期通信が成功裡に確立され得ると仮定して、Ｄｉ及びその親データセンターＤｐの両方が、実行されたタスク／演算子に加えて、そのようなタスクを実行した結果（
【数１４】
2017199356.tif 000016
）をキャッシュする。
【００８６】
解析が、Ｄｉ上のローカルデータのいくつかの部分に対して得られ得る。Ｄｉは、自身のデータをモニタリングする。このデータは変化する。（結果の生成元の）このデータは、データ間のつながり及び解析結果間のつながりがないという意味で、データセットと解析結果との間のｍ−ｎ２部グラフにおける１セットの頂点とみなされ得る。データが変化すると、対応する結果にフラグが付けられる。Ｄｉは：
１．このような変化が解析タスクの結果に影響を及ぼすかどうかをテストする。（通常、データ変化は、例えば、２部グラフを示す図５で説明されるように、非サイズ維持タスク又は射影タスク（projection  tasks）に影響を及ぼすことになる。）いくつかのデータ変化は、結果に影響を及ぼさない。これらは、出力が、入力と同じデータセマンティクスを共有する演算、例えば、データフォーマット変更又はデータ射影である。
２．影響を及ぼす場合、解析タスクを再実行して、結果（
【数１５】
2017199356.tif 000017
）が変わったかどうかを確認する。
３．結果が変わった場合、前の結果からの変化（
【数１６】
2017199356.tif 000018
）を特定する。
４．Ｄｐにおいてローカルにキャッシュされている解析結果を使用して、ＤｐにおいてΔを再現することができる変換計画ｐｊ（Δ）を生成する。
【００８７】
図５は、結果へのデータのマッピングを示しており、サイズ維持トランザクションに関して、変化を分離することができ、（破線の変換として）追加の射影を作成することができることを示している。非サイズ維持トランザクションに関しては、解析を再実行する必要があり得る。これは、上記の最初の箇条書きにおける判定のための手がかりを提供することができる。
【００８８】
便益：このように行うことにより、ネットワークトラフィックを大いに低減させることができる。Ｄｉが、所定のクエリのために利用可能でないときでも、さらなるクエリにおける代わりに、Ｄｐにおけるローカルのキャッシュされているコピーを使用することができる。仮定は、どのデータが変化しどのようにデータが変化したかを親が知らないことであり、したがって、このプロセスは、ローカルデータセンターにおいて実行される。
【００８９】
例えば、データが変化したこと（例えば、データサイズが増大したこと、より多くのアイテムを有すること）を子が認識したとき、子は、まず、変化したデータを分離し、変化する結果が、前の解析結果からどのように導出され得るかを算出しようと試みる。例えば、ａｖｅｒａｇｅ（ｉ＿０，・・・，ｉ＿１００）という演算は、ａｖｅｒａｇｅ（ｉ＿０，・・・，ｉ＿１１０）＝（ａｖｅｒａｇｅ（ｉ＿０，・・・，ｉ＿１００）＊１００＋ａｖｅｒａｇｅ（ｉ＿１０１，・・・，ｉ＿１１０）＊１０）／１１０に寄与し得る。右辺は、データから独立している変換計画であって、親サーバにおいて再作成されるように単独で転送され得る変換計画である。このような種類の変換計画は、ヒューリスティックルールに基づいて、又は、子データセンターにおいて人間のデータエンジニアにより、予め定義され得るか又は作成され得るかのいずれかである。変換計画の作成は、本文書ではさらには詳述されない。
【００９０】
プル推定（再度親の観点からは、これは、子に対してアクティブにデータを要求する）
Ｄｐが、その子からのプッシュされた更新に基づいて、更新を実行している（結果を処理している）とき、Ｄｐは、先着順（first  come  first  serve）方策に基づいて、更新を実行する。Ｄｉからの更新がコミットされたとき、Ｄｐは、（その子のデータ及びタスクの認知性を用いて）そのレベルで割り当てられたデータ変換を実行し、結果をその親（１つ存在する場合）にリレーする。
【００９１】
潜在的なネットワーク障害に起因して、Ｄｐとその子Ｄｉとの間の通信は変わり得る。接続が切断されたか又はデータセンターがダウンしているかのいずれかのときに、遮断が生じ得る。タイムアウト閾値が予め設定される。Ｄｐとその子Ｄｉとの間の通信が、この閾値を超える経過時間の間遮断されている場合、Ｄｐは、その通信を終了させ、親による推定された計画又は部分的変換計画である不完全な計画
【数１７】
2017199356.tif 000019
を用いて、そのローカルにキャッシュされている
【数１８】
2017199356.tif 000020
を処理する。上記時間閾値は、ＤｉとＤｐとの間の過去の通信パターンから学習されることもあるし、又は、他の子データセンターからの更新の完了に比例して設定されることもある。
【００９２】
実際のｐｉ，ｊ（Δ）（Ｄｉが、実行することを親に提案する実際の変換計画）は、この場合には、得ることができないことは明らかである。Ｄｐは、他の子から受信した、他の子の更新に関する情報に基づいて、近似
【数１９】
2017199356.tif 000021
を導出する。ここでの重要な仮定は、Ｄｐの全ての子が、クエリ／アプリケーションに関して（所与の更新エピソード（update  episode）における）類似するデータ更新頻度及びデータ構造を共有することである。この仮定は、データセンターが、同じ種類のデータを処理することに基づく。したがって、子が、同種データを有し、大きく類似するデータプロセスを実行すべきであるように、階層が構成される。子の大部分が、それら子の更新を送信したとき、Ｄｐは、ｐｉ，ｊ（Δ）の部分的知識と、他の子データセンターからの演算命令と、に基づいて、最も類似する
【数２０】
2017199356.tif 000022
を見出すことにより、Ｄｉからの更新を基本的に推定することができる。この推定は、以下のようになされ得る：
【数２１】
2017199356.tif 000023
ここで、Πｉ，ｊ（Δ）は、Ｄｉから受信された部分的更新演算であり、
【数２２】
2017199356.tif 000024
は、２つの更新演算を一緒に連結又はマージし、
【数２３】
2017199356.tif 000025
は、Ｄｉから受信された部分的更新演算に対応する最も類似する完全更新演算を選択する（ｓ．ｔ．ｍａｘは、「ｍａｘ（・・・．）であるような（so  that  max(・・・．)）」を表す）。
【００９３】
実際には、単純にするために、所与の更新エピソードにおいて、全ての子が、大きく類似する更新演算を実行し、他の子から受信された完全更新が、部分的更新を完全にするために、キャッシュされているデータに適用され得る、と仮定することができる。
【００９４】
図６は、更新着想を示している。Ｄｐ１及びＤｐ２は、それらの更新を完了しているのに対し、Ｄｐ３はそうではない。Ｄｐは、Ｄｐ３からは、部分的更新
【数２４】
2017199356.tif 000026
を受信するだけである。Ｄｐ１が、この場合すでに受信されている情報を使用して最も類似する更新を提供するとみなされると仮定すると、
【数２５】
2017199356.tif 000027
は、
【数２６】
2017199356.tif 000028
として、２つの更新を一緒に結合することにより算出される。これは、別の子データセンターからの値を使用して、不完全なシーケンスを基本的に続けている。
【００９５】
もちろん、このような仮定に基づく何らかのさらなる解析は、正確でない。別のデータセンターからの結果を使用してシーケンスを続ける目的は、絶対的な正確さと引き換えに、データ安全性及びプロセス効率性を得ることである。なぜならば、完全に正確な結果は、決して得ることができないからである。「最終的な一貫性」という原理原則が、ここでは採用される：Ｄｐは、Ｄｉからの更新をプルし続け、これと同時に、
【数２７】
2017199356.tif 000029
に基づく更新が正しいとみなす。Ｄｉからの応答が受信されるまで、演算ログが保存される。次いで、Ｄｐは、Ｄｉが利用可能でなかったときの時間ウィンドウ中になされた演算をトレースバックする（trace  back）（繰り返す）かどうかを決定することができる。
【００９６】
便益：これを行うことにより、システム全体は、所定のデータセンターが利用可能でないときに、（効果的且つ最終的に一貫するように）動作することができる。全ての兄弟データセンターが、互いに対する基準として動作できるように大きく類似して挙動できることを確実にするために、階層構造が、この場合には不可欠である。
【００９７】
便益全般
本発明の実施形態のいくつかの便益は、以下として確認できる：
１．より良いデータ局所性及びクエリ処理のために類似する又は近接するデータセンターを一緒にグループ化するためのデータセンターの論理的編成
２．「オフライン」データ処理、更新のみの通信、及び、必要なときの更新の再構成を容易にするローカルキュッシングアプローチ
３．データの移転及び複製を用いてデータセンターにわたる性能を向上させるクラスタ内データ局所性スキーム
４．ボトルネックを回避するためにどのデータセンターが使用されるべきかを、子データセンターのサブセットの選択の形で選択する方策
５．クエリ処理又は特定のアプリケーションに関与する全てのデータセンターの性能プロファイルを絶えず維持するのを助けることができる、データセンター性能を測定するための機構
【００９８】
図７は、本発明の一実施形態に従った、準備及び実行を含むプロセス全体のフローチャートである。
【００９９】
概して、プロセス全体は、初期タスク及び／又はクエリ解析Ｓ１００で開始する。
【０１００】
これは、（アプリケーションロジックと、処理されるクエリについての潜在的に過去の情報と、に基づく）予期されるタスクに基づく解析であり得る。（近接さとともに、しかしながら、これは一定である）この特徴づけを用いて、Ｓ１１０における論理データセンタークラスタ生成をガイドすることができる。すなわち、これは、データセンターの特徴も考慮して、関与する全てのデータセンターにわたる仮想階層構造を与える。
【０１０１】
最適化するために、データに対して実行できること（又は、データに対してどのような種類の解析を実行できるか及び／又は可能性の高い結果は何であるか）についての所定の知識が必要とされる。これは、「許容可能な演算」のセットとみなされる。例えば、典型的には温度センサに関して、ｓｕｍ、周期的ａｖｅｒａｇｅ、ｍｉｎ、ｍａｘ等といった演算が予期され得る。
【０１０２】
クエリの特徴づけ（Ｓ１２０）における意図は、データセンターのグループにローカルに保持されているデータの大部分についてどのようなクエリを実行できるかを確立することである。これは、仮想複数データセンター階層がどのように確立されるべきかの再編成を助けることである。
【０１０３】
論理構造が定義されると、システムは、クエリが到達したかどうか（Ｓ１３０）に応じて、クラスタ内データ局所性調整が必要且つ可能かどうかを推定する。クエリが到達していない場合、データ局所性調整が行われ得る（Ｓ１４０）。クエリが到達した場合、システムは、クエリ処理（Ｓ１５０）に進む。
【０１０４】
図８は、例えば、親又はルートデータセンターによる、データセンターの継続的な特徴づけの概要を示している。
【０１０５】
ここで、（クラスタ局所性セクションにおいて記載されている）データ局所性調整Ｓ１４０は、特定のアプリケーション／処理タスクのコンテキストにおいて、データセンター特徴及びデータ特徴の両方に基づく。データ特徴は、ｓｉ、ｔ、Ｔ、ｒである。データセンター特徴は、上りリンクパラメータ及び下りリンクパラメータに関連し得る。システムは、まず、ステップＳ１７０において、永続的ストレージに問い合わせて、これらのデータセンター特徴がすでに利用可能であるかどうかを確認する（且つ、可能であれば、利用可能なデータセンター特徴が旧式であるかどうかをチェックする）。永続的ストレージは、共用データ記憶部（分散データ記憶部、例えば、分散ハッシュテーブル）又は中央データ記憶部である。データセンター特徴が利用可能でない場合、Ｓ１８０において、ハンドシェーキングメッセージが送信されて、上りリンク性能及び下りリンク性能について、子データセンターとの接続が調べられる。さらなる情報が、典型的な演算子、それらのデータ低減比、及びそれらの性能を理解するために生じる。これらは、前のセクションにおいて言及されたパラメータｒ、ｔ、及びＴである。
【０１０６】
図９は、クエリ実行を示している。
【０１０７】
クエリは、以下のように実行される：
Ｓ２００：クエリが、リーフデータセンターのサブセットを選択するために各子データセンターの上りリンク及び下りリンクを潜在的に考慮して、分散される。このサブセット選択は、全ての子が使用されるわけではない場合である。全ての子が関与する必要がある場合には、これは適切でない。
Ｓ２１０：完全な結果が受信されたかどうかのクエリがある。
Ｓ２２０：完全な結果が、子データセンターから受信された場合、それらの結果が、子データセンター及び親データセンターの両方にキャッシュされる。システムは、次のクエリに進む。
Ｓ２３０：完全な結果が受信されなかった場合：
Ｓ２４０：前の実行からのキャッシュされている結果及びキャッシュされているタスクが存在する場合、プロセスは、前述されたプッシュ更新若しくはプル推定又はこれらの両方を用いて、結果を近似する。
Ｓ２５０：キャッシュされている結果及びキャッシュされているタスクが存在しない場合、この子に基づいて、中間結果をトラックバックする。すなわち、他の子からの結果に基づいてさえも、Ｄｉからの結果を近似する方法がない場合、Ｄｉは、永久的にデッド状態とみなされ、将来の処理から除去されるべきである。
Ｓ２６０：どちらの場合でも、
ｉ．閾値に達し、子が永久的に利用可能でないとみなされ得るまで、又は
ｉｉ．結果が到達し、処理が続くまで、
プルするのを続ける。
クエリがもはや存在しなくなると、クエリ処理は終了する。
【０１０８】
本発明の実施形態に従うと、方法と、クラスタ、親データセンター、及び子データセンターを含むネットワークと、コンピュータプログラムと、は、地理的に分散されたデータソースにわたる効率的なデータ解析を容易にする。包括的な手段を使用して、データセットに対して実行される解析の性能を収集して推定／予測することができる。すなわち、許容可能な演算／解析タスクの性能が、データセンター間のデータ通信ネットワークの特徴と処理性能とに基づいて、推定される。
【０１０９】
本発明の実施形態は以下のことを行うことができる：
１．（データが生成された）エッジにおいて当該データを記憶すること。ここで、「エッジ」という用語は、データがシステム／ネットワークに入っているエントリポイントを意味し、したがって、データは、記憶のために転送される必要がなく、代わりに、データの生成源において記憶されるべきである。
２．データが生成された場所とは異なるデータセンターであって、（異なるクラスタが配置される）異なる地理的領域にわたるデータセンターにおいて解析タスクを実行するコストを推定すること。これは、局所性が、１つの管轄区域又は地理的領域内に編成される１つの「親−子」サブツリー内でのみ調整されるためである。
３．解析タスクを実行するための最良の方策を計画すること。これは、データを調整し、集約（タスク）がどこで実行されるべきかを決定するための、上りリンク及び下りリンクに基づく最適化を指す。
４．プッシュ更新及びプル推定のセクションにおいて説明されたように、最も効率的なタスク実行を容易にするために、結果を転送及び／又は更新すること。
【０１１０】
本発明の実施形態の主要な特徴は、以下を含み得る：
１．本発明の実施形態におけるプロセスのダイナミズム：システム性能の推定が、最新の変化を反映するように継続的に更新される。この特徴は、全ての関与するデータセンターの上りリンク及び下りリンクの継続的なモニタリング及び推定、並びに／又は、データに影響する（クエリを満たすプロセスの一部としての）データ演算の継続的な推定を指す。
２．インクリメンタル性：リソース要件を最小化するために、データ解析がインクリメンタルに実行される。
３．データ安全性：提案するソリューションは、規制上の制約及び安全性制約を順守することができる。
【０１１１】
以上の実施形態に関し、さらに以下の付記を開示する。
【０１１２】
（付記１）
データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法であって、
当該方法は、準備段階及び実行段階を含み、
前記準備段階は、
各データセンターが、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおけるデータセンターの構成を可能にする、データセンターパラメータ及び／又は近接さに関する情報を提供するステップであって、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、前記クラスタは、単一の親データセンターを有する、ステップ
を含み、
前記実行段階は、
前記親データセンターが、タスクを前記子データセンターに送信し、前記子データセンターが、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するステップ
を含み、
子データセンター及び該子データセンターの親データセンターの両方が、該子データセンターにより実行されたタスクと、該子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュする、方法。
【０１１３】
（付記２）
前記実行段階において、前記子データセンターが、新たな受信データに関連付けられる結果の変化を特定した場合、前記子データセンターは、キャッシュされている結果からの前記変化を再現するための変換を提供し、前記変換を前記親データセンターに送信する、付記１に記載の方法。
【０１１４】
（付記３）
前記実行段階において、前記親データセンターと前記子データセンターとの間の通信が遮断された場合、前記親データセンターは、同じクラスタにおける前記子データセンターのうちの別の子データセンターからの結果を使用して、前記結果のシーケンスを続ける、付記１又は２に記載の方法。
【０１１５】
（付記４）
前記子データセンターのクラスタは、データサイズ、予期されるタスク、及びデータセンター許容可能な演算、のうちの任意のものを含むデータセンターパラメータと、物理的近接さ、ネットワーク接続、及び地理的位置、のうちの任意のものを含むデータセンター近接ファクタと、に基づいて形成される、付記１乃至３いずれかに記載の方法。
【０１１６】
（付記５）
前記準備段階は、
データセンターＤｉに関して、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
【数２８】
2017199356.tif 000030
と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
【数２９】
2017199356.tif 000031
と、前記子データセンターのサイズｓｉと、を提供するステップ
を含む、付記１乃至４いずれかに記載の方法。
【０１１７】
（付記６）
規定された条件下でのデータ及びタスクの移転であって、前記移転は、元の子データセンターから送信先の子データセンターにデータを転送することと、前記送信先の子データセンターにおいてタスクを実行することと、を含む、移転
をさらに含む、付記１乃至５いずれかに記載の方法。
【０１１８】
（付記７）
前記規定された条件は、転送される前記データを転送するのに要する時間を考慮する、付記６に記載の方法。
【０１１９】
（付記８）
前記規定された条件は、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
【数３０】
2017199356.tif 000032
と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
【数３１】
2017199356.tif 000033
と、前記子データセンターのサイズｓｉと、に基づいて規定され、データ移転中に子データセンターから移動されるデータに対する、前記データ移転中に該子データセンターに移動されるデータの比を計算する、付記６又は７に記載の方法。
【０１２０】
（付記９）
前記クエリは、階層の全体の親であるルートデータセンターにおいて、前記データセンターのネットワークに入力され、前記ルートデータセンターは、中間親データセンターを介して、前記階層の最下レベルを形成するリーフデータセンターである子データセンターに、タスクを送信する、付記１乃至８いずれかに記載の方法。
【０１２１】
（付記１０）
前記クラスタにおける各子データセンターについて、前記親データセンターに向かう、該子データセンターの上りリンク帯域幅
【数３２】
2017199356.tif 000034
と、該子データセンターのサイズｓｉと、を使用して、前記解析タスクを実行するためのデータセンターのサブセットθの選択を決定するステップ
をさらに含み、
前記サブセットθのサイズは、閾値よりも大きいように予め設定され、前記選択は、見込まれる上りリンク通信量を最小化することである、付記１乃至９いずれかに記載の方法。
【０１２２】
（付記１１）
クエリを実行するためのデータセンターのネットワークにおける親データセンターであって、
前記データセンターは、当該親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、当該親データセンターは、前記クラスタについての唯一の親であり、
当該親データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、前記タスクを前記子データセンターに送信し、各子データセンターから、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及び入力／出力コンポーネント（Ｉ／Ｏ）と、
前記子データセンターにより実行されたタスクと、前記子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、親データセンター。
【０１２３】
（付記１２）
前記プロセッサ及び前記Ｉ／Ｏは、ユーザクエリを受信し、前記階層クラスタトポロジーを形成するよう構成されている、付記１１に記載の親データセンター。
【０１２４】
（付記１３）
クエリを実行するためのデータセンターのネットワークにおける子データセンターであって、
前記データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ／又は近接するデータセンターのクラスタを一緒に形成し、前記親データセンターは、前記クラスタについての唯一の親であり、
当該子データセンターは、
データセンターパラメータ及び／又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、前記親データセンターからタスクを受信し、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するよう構成されているプロセッサ及び入力／出力コンポーネント（Ｉ／Ｏ）と、
当該子データセンターが実行したタスクと、当該子データセンターが実行した該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、子データセンター。
【０１２５】
（付記１４）
付記１１に記載の親データセンターと、複数の、付記１３に記載の子データセンターと、を含む、クエリを実行するためのデータセンターのネットワーク。
【符号の説明】
【０１２６】
１０    データセンター（ＤＣ）（仮想マシン）
２０    処理ユニット群
３０    ＤＣストレージ
４０    ＤＣ内入力／出力コンポーネント（Ｉ／Ｏ）
５０    ＤＣ間Ｉ／Ｏ
６０    上りリンク帯域幅
７０    下りリンク帯域幅
１００  Ｉ／Ｏ
１１０  ストレージ
１２０  プロセッサ
【図１】
2017199356.tif 000040
【図２】
2017199356.tif 000041
【図３】
2017199356.tif 000042
【図４】
2017199356.tif 000043
【図５】
2017199356.tif 000044
【図６】
2017199356.tif 000045
【図７】
2017199356.tif 000046
【図８】
2017199356.tif 000047
【図９】
2017199356.tif 000048
【外国語明細書】
2017199356000001.pdf