JP6953738B2 - データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法 - Google Patents

データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法 Download PDF

Info

Publication number
JP6953738B2
JP6953738B2 JP2017034854A JP2017034854A JP6953738B2 JP 6953738 B2 JP6953738 B2 JP 6953738B2 JP 2017034854 A JP2017034854 A JP 2017034854A JP 2017034854 A JP2017034854 A JP 2017034854A JP 6953738 B2 JP6953738 B2 JP 6953738B2
Authority
JP
Japan
Prior art keywords
data center
data
child
parent
centers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017034854A
Other languages
English (en)
Other versions
JP2017199356A (ja
Inventor
ヒュー・ボ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB1607542.6A external-priority patent/GB2549790A/en
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2017199356A publication Critical patent/JP2017199356A/ja
Application granted granted Critical
Publication of JP6953738B2 publication Critical patent/JP6953738B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Description

本発明は、広域地理的分散解析を処理することに関する。本発明は、データ及び処理の両方がしばしば分散される複数のアプリケーションを、今日の世界において見出している。特定のアプリケーションは、データセンターにタスクが分散される。データセンターは、大量のデータのリモート記憶、処理、又は分散のための組織により使用され得るネットワーク化されたコンピューティングリソース/コンピュータ(典型的にはサーバ)のグループとして定義され得る。データセンターは、通常、冗長リソース及び冗長データ通信接続等を提供する。
現在、従来技術における中心は、1つの単一データセンター内の異なるマシンにわたってデータ処理タスクをいかにして分散させるかにある。この状況における特有の特徴は、以下のことである:
1.1つのデータセンター内のネットワーク接続は、通常同種である。データ及び処理ユニットの局所(ローカル)性(locality)を検討するとき、ネットワーク異種性は、通常、最適化方法において考慮されない。
2.全ての処理ユニット及びデータが、高速ネットワーク接続を有する単一データセンターに保持される場合、ネットワークの上りリンク及び下りリンク転送の影響もそれほど大きくない。
3.ネットワーク通信のコストは、時として、ディスクI/Oのコストと比較して高くないと考えられる。これは、単一データセンター内のネットワークの速度が、通常は、従来のハードディスクに対する読み書きの速度よりもはるかに速いという事実に起因する。したがって、ネットワークにわたるインメモリデータが、ローカルオンディスクデータと比較すると、好ましい。
上記アプローチにおける1つの主たる問題は、データボリューム及びデータ多様性が急速に大きくなるにつれ、広域の物理的位置にわたる処理能力の分散を検討することがますます重要になることである。これは、以下の見解に基づく:
1.例えばセンサといったデータ収集デバイスが普及するにつれ、データは、生成のポイントにてますます分散されるようになる。中央位置にデータを収集して、予め定義された特性に応じてデータを再分散させる代わりに、生成のポイントに応じたデータ局所性を観測することが自然になる。次いで、データ及び/又は処理ユニットのフラグメントが、性能を最適化するために再分散される。
2.現在のワールドワイドコンピュータネットワークにおける中央化(又は、時として、バックホールデータ収集及び解析と呼ばれる)アプローチの実質的なボトルネックは、光ファイバー網大洋横断(例えば、大西洋横断ケーブル及び太平洋横断ケーブル)である。コスト及び地理的な困難さは、そのような大洋横断ファイバー接続が、従来のアプローチにおけるクリティカルパスである可能性が高いことを決定づけている。
3.例えばセンサといった特殊な収集デバイスの多様性に起因して、データは、当然フラグメント化されて分散されるようになる。結果は、1つの収集方法のレジーム内のデータが、ますます同種になる一方、異なるレジームからのデータが、ますます多様になる。収集のポイントにて局所的にデータを処理すること(及び地域データに適合させること)は、システム性能全体を増大させ得る。
4.中央化−再分散アプローチは、独立国の国境にまたがってデータを移動させる場合には機能しない。安全性、プライバシー、及びセキュリティ上の理由により、多くの国は、(何らかの形の)データが国境をまたがることを防止する法律を課している。これは、グローバルな中央化された視野に基づく最適化を不可能にする。
一方、そのような位置を接続するネットワークは、著しく変化し得る。そのような情報は、データ及びプロセスの局所性を最適化する際に考慮されるべきである。
本発明の実施形態は、これらの見解の一部又は全てを考慮して、地理的に分散されたデータソースとともに用いるのに適した効率的なデータ解析を容易にすることを目的とする。
本発明の第1の態様の一実施形態に従うと、データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法であって、
本方法は、準備段階及び実行段階を含み、
準備段階は、
各データセンターが、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおけるデータセンターの構成を可能にする、データセンターパラメータ及び/又は近接さに関する情報を提供するステップであって、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、クラスタは、単一の親データセンターを有する、ステップ
を含み、
実行段階は、
親データセンターが、タスクを子データセンターに送信し、子データセンターが、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するステップ
を含み、
子データセンター及びその親データセンターの両方が、この子データセンターにより実行されたタスクと、この子データセンターにより実行されたタスクの結果のシーケンスと、をキャッシュする、
方法が提供される。
特徴のこの組合せは、(例えば、データサイズ、サポートされている演算子、又は処理される典型的なタスク等のデータセンターパラメータに従って変化し得る)動的な階層クラスタ構造を可能にする。この階層クラスタリングは、同じ種類のデータを処理する、同じ国内のデータセンター等の、類似する且つ/又は相互に近接するデータセンターのグループ化を可能にする。
この実施形態において、子データセンター及びその親データセンターの両方が、この子データセンターにより実行されたタスクと、この子データセンターからの結果のシーケンスと、を、例えばクエリが終了されるまで、キャッシュ(一時的に記憶)する。したがって、親データセンターは、クラスタにおける子データセンターの各々からの全てのタスク及び結果を記憶する。このキャッシングは、バックアップとして記憶されている方法を効果的に使用して、演算の所定のフレキシビリティを可能にする。
一実施形態では、実行段階において、子データセンターが、新たな受信データに関連付けられる結果の変化を特定した場合、子データセンターは、キャッシュされている結果からの変化を再現するための変換(transformation)を提供し、この変換を親データセンターに送信する。これは、「プッシュ更新」として知られている。例えば、新たな受信データは、より大きなボリュームであり得、変換を用いて、キャッシュされている結果に対するこの影響を再現し(そうでなければ、このプロセスは生じない)、親にキャッシュされている結果と変換とを用いて、データを不必要に送信するのを回避することが可能である。
(プッシュ更新と組み合わされてもよい)プル推定と言及される別の実施形態では、実行段階において、親データセンターと子データセンターとの間の通信が遮断された場合、親データセンターは、同じクラスタにおける子データセンターのうちの別の子データセンターからの結果を使用して、結果のシーケンスを続けることができる。
子データセンターのクラスタは、データサイズ、予期されるタスク、及びデータセンター許容可能な演算、のうちの任意のものを含むデータセンターパラメータに基づいて形成され得る。子データセンターのクラスタは、物理的近接さ、ネットワーク接続、及び地理的位置、のうちの任意のものを含むデータセンター近接ファクタに基づいて形成され得る。多くの実施形態では、(経時的に変化する可能性がより高い)データセンターパラメータ及び近接ファクタの両方が、含まれ得る。
準備段階は、データセンターに関して、親データセンターに向かう、子データセンターの上りリンク帯域幅と、子データセンターに向かう、親データセンターからの下りリンク帯域幅と、子データセンターのサイズと、を提供するステップを含んでもよい。これらは、データ移転の検討を含め、多くのファクタを評価するのに有用であり得る。
本発明の実施形態は、規定された条件下でデータの移転を(したがってタスクの移転も)提供することができる。移転は、元の子データセンターから送信先の子データセンターにデータを転送することと、送信先の子データセンターにおいてタスクを実行することと、を含む。
規定された条件は、転送されるデータを転送するのに要する時間を考慮することができる。
一例では、規定された条件は、親データセンターに向かう、子データセンターの上りリンク帯域幅と、子データセンターに向かう、親データセンターからの下りリンク帯域幅と、子データセンターのサイズと、に基づいて規定される。これらのファクタ及び場合によっては他のファクタを用いて、データ移転中に子データセンターから移動されるデータに対する、データ移転中にこの子データセンターに移動されるデータの比を計算することができる。
ネットワークは、1つのクラスタ又は複数のクラスタを含み得、一部は単一の子データセンタを含んでもよい。クエリは、階層の全体の親であるルートデータセンターにおいて、データセンターのネットワークに入力され得る。ルートデータセンターは、階層が2つ以上のレベルを有する場合には、1つ以上の中間親データセンターを介して、階層の最下レベルを形成するリーフデータセンターである子データセンターに、タスクを送信する。
本方法は、クラスタにおける各子データセンターについて、親データセンターに向かう、各子データセンターの上りリンク帯域幅と、各子データセンターのサイズと、を使用して、解析タスクを実行するためのデータセンターのサブセットθの選択を決定するステップをさらに含んでもよく、サブセットθのサイズは、閾値よりも大きいように予め設定され、選択は、見込まれる上りリンク通信量を最小化することである。
さらなる態様の一実施形態に従うと、クエリを実行するためのデータセンターのネットワークにおける親データセンターであって、データセンターは、本親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、本親データセンターは、このクラスタについての唯一の親であり、
本親データセンターは、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、タスクを子データセンターに送信し、各子データセンターから、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及びI/Oと、
子データセンターにより実行されたタスクと、子データセンターにより実行されたタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、
親データセンターが提供される。
プロセッサ及びI/Oは、ユーザクエリを受信し、階層クラスタトポロジーを形成するよう構成されてもよい。これは、特定の親データセンターを、ルートデータセンターとして構成させる。
さらなる態様の一実施形態に従うと、クエリを実行するためのデータセンターのネットワークにおける子データセンターであって、データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、親データセンターは、このクラスタについての唯一の親であり、
本子データセンターは、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、親データセンターからタスクを受信し、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するよう構成されているプロセッサ及びI/Oと、
本子データセンターが実行したタスクと、本子データセンターが実行したタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、
子データセンターが提供される。
さらなる態様の一実施形態に従うと、上述された親データセンターと、複数の、上述された子データセンターと、を含む、クエリを実行するためのデータセンターのネットワークが提供される。この実施形態では、データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、クエリの個々の解析タスクにより処理されるべき、各子データセンター自身のローカルデータシーケンスを有し、子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、親データセンターは、このクラスタについての唯一の親であり、
親データセンターは、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、タスクを子データセンターに送信し、各子データセンターから、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及びI/Oと、
子データセンターにより実行されたタスクと、子データセンターにより実行されたタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有し、
子データセンターは、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、親データセンターからタスクを受信し、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するよう構成されているプロセッサ及びI/Oと、
この子データセンターが実行したタスクと、この子データセンターが実行したタスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、
クエリを実行するためのデータセンターのネットワークが提供され得る。
本発明の好ましい実施形態に従った装置又はコンピュータプログラムは、方法の態様の任意の組合せを含み得る。さらなる実施形態に従った方法又はコンピュータプログラムは、処理機能及びメモリ機能を要求するという点で、コンピュータにより実施されるとして記載され得る。
好ましい実施形態に従った装置は、所定の機能を実行するよう構成されているとして、又は、単に、所定の機能を実行するとして、記載される。この構成は、ハードウェア若しくはミドルウェア又は任意の他の適切なシステムの使用によりなされ得る。好ましい実施形態において、この構成は、ソフトウェアによる。
したがって、一態様に従うと、少なくとも1つのデータセンター上にロードされたときに、前述のデータセンターの定義のうちのいずれか又はこれらの任意の組合せに従った親データセンター又は子データセンターになるように少なくとも1つのデータセンターを構成するプログラムが提供される。実際には、同じソフトウェアが、データセンター上にロードされ、動的なクラスタ情報に従って、親データセンター又は子データセンターとしての構成を動的に提供してもよい。
さらなる態様に従うと、ネットワークのデータセンター上にロードされたときに、前述の方法の定義のうちのいずれか又はこれらの任意の組合せに従った方法ステップを実行するようにデータセンターを構成するプログラムが提供される。
本発明は、デジタル電子回路により実装されてもよいし、又は、コンピュータハードウェア、ファームウェア、ソフトウェア、若しくはこれらの組合せにより、実装されてもよい。本発明は、コンピュータプログラム又はコンピュータプログラム製品として、すなわち、1つ以上のハードウェアモジュールによる実行のための又は1つ以上のハードウェアモジュールの動作を制御するための、例えばマシン読み取り可能な記憶デバイスといった非一時的な情報キャリア又は伝搬信号において明白に具現化されるコンピュータプログラムとして、実装されてもよい。
コンピュータプログラムは、スタンドアロンプログラム、コンピュータプログラムの一部、又は2つ以上のコンピュータプログラムの形とすることができ、コンパイル型又はインタープリタ型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、又は、モジュール、コンポーネント、サブルーチン、若しくは、データ処理環境における使用に適した他のユニットとして等、任意の形式でデプロイすることができる。コンピュータプログラムは、1つのサイトにおける1つのモジュール又は複数のモジュール上で実行されるようにデプロイされてもよいし、複数のサイトにわたって分散され、通信ネットワークを介して相互接続されるようにデプロイされてもよい。
本発明の方法ステップは、1つ以上のプログラム可能なプロセッサが、入力データに対して作用し出力を生成することにより本発明の機能を実行するためのコンピュータプログラムを実行することにより、実行され得る。本発明の装置は、プログラムされたハードウェアとして実装されてもよいし、又は、例えばFPGA(フィールドプログラマブルゲートアレイ)若しくはASIC(特定用途向け集積回路)を含む特殊目的ロジック回路として実装されてもよい。
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用マイクロプロセッサ及び特殊目的マイクロプロセッサの両方と、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサと、を含む。一般に、プロセッサは、読み取り専用メモリ若しくはランダムアクセスメモリ又はこれらの両方から、命令及びデータを受信する。コンピュータの不可欠な要素は、命令及びデータを記憶する1つ以上のメモリデバイスに接続される、命令を実行するプロセッサである。
本発明は、特定の実施形態の観点で説明される。他の実施形態も、請求項の範囲内にある。例えば、本発明のステップは、異なる順番で実行されることがあるが、それでも望ましい結果を達成することができる。オブジェクト指向プログラミング技術を使用することなく、複数のテストスクリプトバージョンが、ユニットとして編集されて呼び出されてもよい。例えば、スクリプトオブジェクトの要素が、構造化データベース又はファイルシステムにおいて編成されてもよく、スクリプトオブジェクトにより実行されるとして記述される動作が、テスト制御プログラムにより実行されてもよい。
本発明の好ましい特徴が、添付の図面を参照して、純粋に例としてこれより説明される。
概括的な実施形態における方法のフローチャート。 本発明の概括的な実施形態における親データセンター又は子データセンターのブロック図。 本発明の実施形態において使用するためのデータセンターのより詳細な図。 データセンターの階層の例を示す図。 データに対するタスクの結果の概要を示す図。 プル推定の例を示す図。 本発明の実施形態に従った準備及び実行のフローチャート。 データセンターの特徴づけのフローチャート。 クエリ分散及び実行のフローチャート。
図1は、データセンターのネットワークにおいて実行され得る、詳細には、当該ネットワークのクラスタにおいて実行され得る、本発明の実施形態の方法のフローチャートである。
ステップS10において、各データセンターは、親及び子を有するクラスタへの構成を可能にする情報(例えば、当該データセンター自身についての情報及び他のデータセンターへの当該データセンターの接続についての情報)を提供する。この情報は全て、例えば、データセンターネットワークにおける単一データセンター(以下でさらに説明されるルートデータセンターであり得る)に提供され得る。この情報は、集中して記憶されてもよいし、分散方式で記憶されてもよい。
ステップS20において、階層における親は、タスクを子に送信する。これらのタスクは、クエリ(又は、より大きな階層において、複数の親が同じレベルで存在する場合には、その親に割り当てられた、クエリの一部)を一緒に構成する個々のタスクであり得る。
ステップS30において、各子は、結果を、そのクラスタにおける親に送信する。ステップS40において、各子は、当該子自身の実行されたタスク及び結果をキャッシュし、親は、クラスタにおける、全ての実行されたタスク及び結果をキャッシュする。
図2は、親データセンター又は子データセンターであり得るデータセンターのコンポーネントの概略図である。各データセンターは、実際には、異なる時間においては又は異なるクエリに対しては、親として、及び、子として、機能することがある。本発明の実施形態において使用される部分のみが図示されている。各データセンターは、I/O(入力/出力コンポーネント)100、ストレージ110、プロセッサ120(単数形で言及されているが、プロセッサとして一緒に機能する複数の処理ユニットを含む可能性が高い)を含む。I/O100は、単一のユニットとして図示されているが、複数のセクションに分割され得る。
データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成されるが、これは、ここでは、接続矢印とさらなるデータセンターの輪郭線とによって表されているだけである。各子データセンターは、クエリの個々の解析タスクにより処理されるべき、当該子自身の(例えばローカルデータソースからの)ローカルデータシーケンスを記憶する。子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、親データセンターは、このクラスタについての唯一の親である。例示的なネットワーク及びクラスタが、図4に示されている。
親データセンター10は、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、タスクを子データセンターに送信し、各子データセンターから、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ120及びI/O100と、
子により実行されたタスク及び子データセンターにより実行されたタスクの結果のシーケンスをキャッシュするよう構成されているストレージ110と、
を有する。
子データセンター10は、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、親データセンターからタスクを受信し、ローカルデータシーケンス及びタスクから導出された結果のシーケンスを、親データセンターに送信するよう構成されているプロセッサ120及びI/O100と、
この子データセンターが実行したタスク及びこの子データセンターが実行したタスクの結果のシーケンスをキャッシュするよう構成されているストレージ110と、
を有する。
以下において、データセンターは、Dと表記され、十分なプロセッサ/CPU(中央処理装置)能力及び記憶空間を有すると仮定される。この仮定は、CPU(及びプロセッサ一般)及び記憶デバイスの価格が、大規模データセンターを構築するコストと比較するとささいであるという事実に基づく。Dの演算能力及び記憶能力は、容易に拡張され得る。また、D内ネットワーク接続(単一データセンター内のコンピュータ間の接続、及び/又は、単一データセンター内のプロセッサ及びメモリ間の接続)は、厳しく制限され、注意深く最適化され得る。そのような通信の遅延は、無視され得る。一方、各D内では、データ及びプロセスの局所性の問題は、(分散コンピューティングパラダイムからの既存の容易に利用可能な技術を使用して)満足のいくように解決されることが想定される。これは、本文書の範囲を超えている。以下においては、D間計画化及び実行方策が中心である。
記号
以下のテキストにおいて、以下の記号が頻繁に使用される。
:データセンター
:データセンターのデータサイズ。これは、典型的には、ギガバイトとして表されるが、他の広く受け入れられている単位が使用されてもよく、最終的な演算に影響を及ぼすものではない。
i,j:j番目の(カテゴリの)演算子がデータに適用された後のデータサイズ低減比。これは、通常、パーセンテージとして表され、したがって、単位はない。
i,j:単位サイズ(unit size)のローカルデータに対してj番目の(カテゴリの)演算子を実行する経過時間。演算のタイプに応じて、典型的な単位は、秒又はミリ秒であり得る。これは、経過した実時間である。
i,j:全てのローカルデータに対してj番目の(カテゴリの)演算子を実行する累積総経過時間。
Figure 0006953738

:データセンターの上りリンク帯域幅であり、典型的な単位は、ビット/秒である。
Figure 0006953738

:データセンターの下りリンク帯域幅であり、ここでも、典型的な単位は、ビット/秒である。
データセンター
明示的には要求されないが、本文書におけるデータセンターは、潜在的により高いソフトウェア層を伴う3層設計に従うと仮定される。典型的な3層設計は、コア層、集約層、及びアクセス層からなる。コア層は、データセンターの主入口層及び主出口層とみなされる。
データセンター内のサーバは、アクセス要求を分散させるためのラックスイッチを有する複数のラック内に配置される。ラックスイッチは、ラッククラスタスイッチに接続され、ラッククラスタスイッチは、データセンターのエッジとしてコア層を構成する高性能コンピューティング設備に接続される。各層の上りリンクは、ハードウェア仕様として、又は、周期的にネットワークをテストする設備を使用することにより、収集され得る。データセンターに関する下りリンクは、ネットワークをテストする設備を使用することにより、測定される。そのような情報が、仮想親データセンターにリレーされ、レイヤ3又はレイヤ4の親データセンター(ソフトウェア)データバランサーにおいて、利用可能なリソースがそのような位置で許容されるならば、記憶され得る。理想的には、レイヤ4の(ソフトウェア)ロードバランサーにおいて、子データセンターについての情報は、必要な場合にはいくつかのデータ要求が子データセンターにリダイレクトされる仮想階層の形成を可能にするように、元々の情報を拡張することができる。
典型的には、データセンターは、図3に示される仮想アーキテクチャを有するものと表され得る。図3は、本発明を具現化するデータセンター10であって、本発明の一実施形態の方法を実施するために使用され得るデータセンター10のブロック図である。
データセンターは、仮想マシン10とみなすことができる。仮想マシン10は、全てのマシンにわたって分散される処理ユニット群20、ハードディスク群により提供される一時的及び永続的なデータセンター(DC)ストレージ30、ネットワークエリアストレージ、オンチップメモリ、オンボードメモリ等を有する。仮想マシンは、DC内I/O40とDC間I/O50とを違わせることができ、前者は、後者よりもかなり高速であるべきである。DC間I/Oは、上りリンク帯域幅60と下りリンク帯域幅70とを違わせるべきであり、多くの場合、これらは等しくない。DC内I/O40は、本文書においてさらには特徴づけられないが、完全さのためにここで言及されている。
一実施形態は、これらのデータセンターのネットワークから構成され得る。任意的に、データセンターは、図示されていない、キーボード及びマウス等の1つ以上の入力機構及び1つ以上のモニタ等のディスプレイユニットを含んでもよい。これらのコンポーネントは、内部通信パスを介して互いに接続可能である。内部通信パスも図示されていない。
メモリ30は、コンピュータ読み取り可能な媒体を含み得る。コンピュータ読み取り可能な媒体という用語は、コンピュータ実行可能な命令を運ぶ且つ/又はデータ構造を記憶するよう構成されている1つの媒体又は複数の媒体(例えば、中央若しくは分散データベース並びに/又は関連付けられたキャッシュ及びサーバ)を指し得る。コンピュータ実行可能な命令は、例えば、汎用コンピュータ、特殊目的コンピュータ、又は特殊目的処理デバイス(例えば、1つ以上のプロセッサ)によりアクセス可能であり、これらに1つ以上の機能又は動作を実行させる命令及びデータを含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語はまた、マシンにより実行され、マシンに本開示の方法のうちの任意の1つ以上の方法を実行させる命令のセットを記憶する、符号化する、又は運ぶことができる任意の媒体を含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むがこれらに限定されるものではないと解釈され得る。限定ではなく例として、そのようなコンピュータ読み取り可能な媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、コンパクトディスク読み取り専用メモリ(CD−ROM)又は他の光ディスクストレージ、磁気ディスクストレージ又は他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)を含む非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。
プロセッサブロック20は、コンピューティングデバイスを制御し、例えば、本明細書及び特許請求の範囲に記載されている様々な異なる機能を実装した、メモリに記憶されているコードを実行すること等の処理動作を実行するよう構成されている。メモリ30は、プロセッサ20により読み書きされているデータを記憶する。本明細書で参照される場合、プロセッサは、マイクロプロセッサ、中央処理装置等といった1つ以上の汎用処理デバイスを含み得る。プロセッサは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は、他の命令セットを実装したプロセッサ若しくは命令セットの組合せを実装したプロセッサを含み得る。プロセッサはまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ等といった1つ以上の特殊目的処理デバイスを含み得る。1つ以上の実施形態において、プロセッサは、本明細書で説明される動作及びステップを実行するための命令を実行するよう構成されている。
ディスプレイユニットは、データセンターにより記憶されたデータの表現を表示することができ、ユーザとデータセンターに記憶されているプログラム及びデータとの間のインタラクションを可能にするスクリーン及びダイアログボックス並びにカーソルを表示することもできる。入力機構は、ユーザが、データ及び命令をコンピューティングデバイスに入力することを可能にし得る。
インタフェース40は、インターネット又はスペシャリストネットワーク等のネットワークに接続され得、ネットワーク内の他のそのようなデータセンターに接続可能である。インタフェース40は、ネットワークを介する他の装置から/へのデータ入力/出力を制御することができる。マイクロフォン、スピーカ、プリンタ、電源ユニット、ファン、ケース、スキャナ、トラッカボール等といった他の周辺デバイスも、コンピューティングデバイスに含められ得る。
本発明の実施形態において使用されるデータセンターは、メモリ110の一部に記憶される処理命令、処理命令を実行するプロセッサ120、及び、処理命令の実行中にデータ、タスク、及び結果を記憶する、メモリ110の一部を有することができる。
本発明を具現化する方法は、図3に示されるデータセンター等のデータセンター上で実行され得る。そのようなコンピューティングデバイスは、図3に示される全てのコンポーネントを有する必要はなく、これらのコンポーネントのサブセットを有してもよい。
本発明を具現化する方法は、互いと協調して動作する複数のデータセンターにより実行され得る。別の方法は、単一データセンターにおいて実行され得る。
データフォーマット
ローカルデータセグメントがしばしば観測されると想定される。そのようなセグメント化は、フォーマット、シンタックス、及びセマンティクスに基づき得る。ここで、セグメントは、収集された際のデータの自然分離である。例えば、ある領域から収集されたクリックストリーム(特に人の興味を評価するためにモニタリングされるような、ユーザにより行われた一連のマウスクリック)が、生成のポイント近くに記憶され、データのセグメント化を提供し、これは、全体の解析を与えるために、他の領域からの類似するデータと最終的に組み合わされる必要がある。また、センサデータが、(例えば、同じシンタックス及びセマンティクスを有する同じフォーマットで)収集されるとサーバに記憶され得る。
一方、そのようなローカルセグメント化を忠実に反映するメタデータが生成される。例えば、気象センサ局に関して、メタデータは、静的な情報及び動的な情報の両方を含むべきである。静的なメタデータは、データスキーマ、データフォーマット(例えば、表形式又は構造化されていないテキスト)、及び発行組織(並びにデータ来歴目的のための他のキー情報)等を含む。動的なメタデータは、データ最適化方法に起因して経時的に変化する傾向にある、データ生成の速度、データサイズ、データ局所性(ローカルデータ位置)等を含む。メタデータはまた、例えば、センサデータが、日付及び期間に基づいて分離されることを示す。この分離は、より良い演算のために時間次元に潜在的に基づいて地理的にセグメント化されるデータを切る(dice)異なる次元のセグメント化とすることができる。
各データセンターはまた、データセンターにより保持されているデータに適用され得る典型的な許容可能な演算(演算子)を提供することができる。データセンターは、多数のデータを保持することが可能である。この提案において、論理的に独立したデータブロックの各々について、典型的な演算子のカテゴリのリストが定義され得る。論理的に独立したデータブロックは、機能又は意味の類似性を有するが異なる起源(origin)を有するデータとみなされることもあるし、且つ/又は、例えば時間といった、第2の次元をもってさらにスライスされることもある。すなわち、論理的に独立したブロックは、物理的には同じマシン上にあり得るが、論理的には分離され得る。
演算子は、集約演算子又は転送演算子であり得る。データに関して、典型的なトランザクションは、データ低減トランザクション(集約等)及び(データの空間計算量を変化させることなくデータを新たな形式に変換する)サイズ維持トランザクション(size-preserving transactions)である。カテゴリは、抽象化(abstraction)として、類似する演算子を一緒にグループ化する。演算子類似性は、演算子のセマンティクスに基づき得る:例えば、カウント型:counts、max、min、average等;及び、次元維持型(dimension-preserving type):画像の回転/変形、マトリックスの追加(matrix addition)等。各カテゴリjについて、次の特徴が、データセンターごとに推定(又は評価)され得る:データサイズ低減比ri,j;j番目の(カテゴリの)演算子を実行する経過時間ti,j;及び、総経過時間Ti,j
ここで、ti,jは、単位データブロックについて費やされる時間である。この単位データブロック及び時間は、演算の便宜上、ユーザにより定義され得る。例えば、基本単位として、1時間の間に1つのセンサから収集されたセンサデータを(キロバイト単位で)カウントすること、又は、基本単位として、1日の間に全ての同種センサ(データソース)からのデータを(ギガバイト単位で)カウントすることが、システム全体にわたって統一され得る。基本単位データブロックをどのように定義するかは、セットアップ全体にわたって統一される限りにおいて、ユーザにより決定され得る。Ti,jは、同じ種類の全てのデータ(同じトランザクション/演算が適用される同種データブロック)に対する演算jの累積である。
処理
一般に、提案するソリューションは、以下の2つの機能的段階からなる:
1.準備段階:この段階において、不可欠なネットワーク及びタスク関連の特徴を収集して推定する。
2.実行段階:準備段階から導出されたパラメータを使用して、任意の解析タスクの実行を決定する。
図4は、準備段階のためのフレームワーク基盤の論理的抽象化を示している。この図において、データセンターは、階層に分割されている。図4は、いくつかのデータセンター(これらは、D、D、及びDである)への直接リンクを有するルートデータセンターDを示している。Dは、これら3つのデータセンターに対する親データセンターとみなすことができる。今度は、これらが、さらなるデータセンターに対する親データセンターであり得る。例えば、Dは、3つの子データセンターD11、D12、及びD13を有し、データセンターD11、D12、及びD13は、クラスタを形成する兄弟データセンターである。Dは、1つの子データセンターD21を有する。
本着想は、仮想階層が、複数の層を有することができることである(しかしながら、通常は深くない)。階層における全てのノードは、(クエリに応答するためのデータの一部を保持している場合)データをローカルで処理できるべきである。しかしながら、階層における非リーフノードのみが、中間結果をキャッシュし、以下でより詳細に説明されるプッシュ/プル最適化を(親として)実施する必要がある。
データセンターDは、(図3の構造に対応する、データセンター内のブロックにより表される)同じ論理アーキテクチャを共有するが、それらの物理的実装は異なり得る。全てのデータセンターの中で、Dが、ユーザクエリが到達するデータセンターを指す。これは、ユーザとデータセンターとの物理的近接さに基づくこともあるし、又は、ユーザにより定義される明示的なクエリ提供に基づくこともある。1つのデータセンターのみが、ユーザクエリを受信する役割を担うことになる。ユーザが、例えば、パーソナルコンピュータ、ラップトップ、又はモバイル等の、ユーザのUI(ユーザインタフェース)デバイスを介して、又は、さらにはデータセンターに直接的に、クエリを提供すると、クエリが、本図においてはDと考えられる1つのデータセンターにリレーされる。このクエリに対する応答が、Dを介してユーザに返送されることになる。したがって、Dは、ユーザインタラクションのメインエントリポイントである。
は、異なるクエリに基づいて変わり得る。しばしば、クエリは、持続した時間期間の間実行されることが予期されるデータ集約型クエリである。繰り返しの実行と長い実行持続時間との必要性が、仮想階層構造を作成するオーバーヘッドを正当化する。
このフレームワークに含まれる全てのデータセンターは、動的なクラスタ構造において構成され、これは、効果的な方法でデータセンターを一緒にグループ化する。これは、位置の観点での1つ以上の類似性により一緒にリンクされる若しくは良好な接続性により一緒にリンクされる又は類似する能力/アーキテクチャによっても一緒にリンクされるデータセンターのクラスタに所定のタスクが割り当てられることを可能にする。例えば、クラスタトポロジーは、以下の近接ファクタに少なくとも部分的に基づいて(しかしながら、おそらくは、データセンターに記憶されているデータ及びデータセンター演算の同種性等のデータセンターパラメータも考慮して)定義され得る:
1.物理的近接さ:2つのデータセンターが互いからどれだけ離れているか
2.データセンター間の、及び、データセンターとDとの間のネットワーク接続
3.地理的特徴:複数のデータセンターが同じ独立国内に配置されているかどうか
当業者の読者ならば、階層構造をどのように算出して構築するかを知っているであろうため、このことは、本文書ではさらには取り扱われない。
これらのクラスタ階層は、クラスタにグループ化され、次いで、階層構造の複数の層(例えば、おそらくは2つ又は3つであり、大きな深さは予想されない)に構成される異なるデータセンターである。この利点は、以下の2部分である:
1.同種データセンターが、この論理トポロジーにおいて一緒にグループ化され得る。このグループ化は、地理的近接さ、データ同種性、タスク同種性等に基づき得る。理想的な結果は、親データセンターDの子が、異なるデータを保持して異なるクエリ応答特性を提示し得るとしても、(特定のクエリのセットを処理するコンテキストにおいて)類似するデータ構造を共有し、タスクの共通セットについては大きく類似するように応答すべきであることである。例えば、所定のウェブサイトのクリックストリームを(グローバルスケールで)解析するとき、そのようなストリームデータを保持するデータセンターが、それらデータセンターの地理的位置に基づいてグループ化され得る。集約タスクは、ローカルで実行され得、その結果が、階層構造における複数の層を介して集約される。
2.親データセンターは、その子を管理することができる。データ及び地理的特性の類似性に起因して、子データセンターにおけるデータは、同じ安全性及びプライバシーの規制の対象になり、したがって、データが、より良いシステム性能のために移転され得る。また、親データセンターは、その子のステータスの高い認知性を有する。親データセンターは、利用可能性を推定することができ、子が利用可能でないときを補償することができる。
便益:論理構造が、データセンターネットワークに与えられる。これは、通信及びデータ割り当てをより良く管理するのを助けることができる。
準備段階
本発明の実施形態は、プロセスの要件に従って、準備段階において以下のステップを含み得る:
1.各Dは、前のセクションにおいて定義されたパラメータ及びメタデータを推定する(又は、すでに知られている場合には単にこれらにアクセスする)。これらは、例えば、データサイズs、将来の時点においてデータを推定できるようにj番目の(カテゴリの)演算子がデータに適用された後のデータサイズ低減比ri,j、現在保持されているデータに適用され得る演算及び演算特性、ti,j及びTi,j(1つの演算子について単位データブロックに対して費やされる時間及びその演算子についてデータセンターにおける全てのデータに対して費やされる時間)。
2.クラスタ階層が、(例えば、上述され、図4に提示されるように)定義される。この階層は、まず、近接さに従って作成され、次いで、データ及び/又はクエリの特徴づけ(characterisation)のために、例えば、データセンターのクラスタにローカルに保持されているデータの大部分に対してどのクエリが実行され得るかをチェックするために、調整され得る。
3.この論理トポロジーが定義された後、各データセンター(D及びD)は、例えば、クエリが到達しない場合、ネットワーク性能を推定及び予測するために、ネットワークを周期的に「ポークする(poke)」。このプロセスは、全てのデータセンターDからのデータを消費すると想定される所与の演算タスクを想定している。
a.データの例となるフラグメントが、Dに典型的には保持される当該データを反映するように、生成される(又は、適切な場合にはサンプリングされる)。理想的には、これは、n重の単位ブロック(n-fold of a unit block)と同じサイズであるべきである(ここで、nは整数である)。したがって、比較のためのこの代表的データセットを使用して、ネットワーク全体の性能を測定することができる。
b.Dは、そのような例となるデータを、そのタイムスタンプとともに、Dに周期的に送信する。
c.Dは、このデータを受信し、Dの上りリンク帯域幅(
Figure 0006953738

)を推定する。
d.Dは、Dの下りリンク帯域幅(
Figure 0006953738

)を推定するために、テスト(ハンドシェーキング)データセグメントを、全てのDに周期的にブロードキャストする。
e.階層構造が存在する場合、上りリンク帯域幅及び下りリンク帯域幅は、親−子データセンターのペアごとに推定されるべきである。
準備段階は、必ずしも連続的であるとは限らない。各Dは、データを生成し、階層に沿って、そのデータを当該Dの親に転送し、これが、タスク再割り当て/再分散を担当する。タスク再割り当て/再分散は、フレームワーク全体が予備能力を有するときにはいつでも(例えば、2つのクエリ間の間隔中に動的に)実行され得る。
4.データ局所性クラスタ内調整が、クエリ間で実行され得る、以下で説明されるプロセスである。これは、上述された上りリンク帯域幅推定及び下りリンク帯域幅推定を利用する。
データ局所性クラスタ内調整は、Dの全ての子の間におけるものであり、厳しいデータ局所性規制は当てはまらない。例えば、全ての子が、実際には、同じ独立国領域内に配置されることがある(その結果、データセンター間のデータの転送は、いかなる国境もまたがらない)。したがって、性能調整のために、Dのリーフ子データセンターにわたってデータを転送及び/又は複製することが可能である。そのような最適化は、リーフレベルで実行されるだけである可能性が高い。このデータは処理のためにあり、したがって、1つのデータセンター上で、別のデータセンターに元々記憶されていたデータを使用してタスクを実行することが可能である。そのような機能が、より良いプロセス効率性のために、データ移転を本発明の実施形態に提供する。
この種の最適化は、ri,j、ti,j
Figure 0006953738


Figure 0006953738

、ローカルで(すなわち、所定のデータセンターで)処理するためにダウンロードされる(すなわち、別のデータセンターから移動される)データのサイズであるα、及び、リモートで処理されるデータのサイズであるβに基づき得る。また、(前述のように)sは、ローカルデータのサイズとして定義される。対象は、
Figure 0006953738

に向けられる。本質的に、この式は、以下のように機能する。
最初の部分において、
Figure 0006953738

は、どれくらいの長さの追加データがDにダウンロードされる必要があるかを与え、
Figure 0006953738

は、他のデータセンターからのデータのダウンロード及び他のデータセンターへのデータのアップロードの後、且つ、何らかのデータ演算(ri,j)の後、どれくらいの長さの結果がアップロードされるべきかを与える;これら2つの項が合わさると、データがDに転送されDから転送されるのにどれくらいの時間を要するかを伝える。
2番目の部分は、データを演算するのにどれくらいの時間を要するかである。これら2つの部分が合わさると、何らかのデータの演算を異なるデータセンターに移転する消費時間を算出する。次いで、ネットワーク全体がクエリについて最小時間量を消費するように、最適なデータ転送スケジュールを見出すために、これが、全ての子にわたって最小化される。
最小化の対象は、リーフデータセンターの直近の親データセンターにおいてクエリを処理することに伴う総時間である。総時間は、上記のように、データセンター間通信が必要なときにデータをアップロード及びダウンロードするための時間と、データセンターにおいてローカルでクエリを処理するための時間と、におけるファクタにブレークダウンされる。最適化は、αとβとの最良な比を見出すことができると、終了する。このような最適化プロセスは、時間を消費するものであり得る。このプロセスの開始の際、全てのデータが、移転なく、ローカルデータセンターにおいて処理されるべきであると仮定することができる。
上記対象は、以下の3つの仮定に基づいて単純化され得る:
1.データ局所性は、全ての子データセンターに対して均等であり、α及びβは、実際上同等である。
2.ネットワーク通信時間と比較すると、ローカル処理時間はほとんど無視できる。
3.演算子は独立している、すなわち、演算子jと演算子kとは、互いに依存しない。
これは、以下の単純化された式をもたらす:
Figure 0006953738

ここで、
Figure 0006953738

、M、及びNは、定数である:
Figure 0006953738

は、平均データ低減比であり、Nは、子の数であり、Mは、データセンターにより保持されているデータに対して適用される演算子の数である。上記の最適化の対象を容易に解決して、同じ親グループに属する他のデータセンターにおいて再割り当てされる又は複製されるデータを推定することができる。
クラスタ間のデータ及び/又はプロセスの局所性正規化は、そのような局所性トランザクションがデータ安全性及び独立国規制のリスクを冒す可能性があると想定される場合には、非子リーフについてはサポートされず、(中間)処理結果のみが転送され得ることに留意されたい。
このデータ局所性調整の範囲が、図4に示されており、図4において、リーフデータセンターのクラスタが破線で囲まれている。上方に動くと、中間結果が、親データセンターにおいて集約される。これは、永久的な物理階層構成ではないことに留意されたい。そうではなく、階層構造は、処理されるデータ及び/又は受信されるクエリの特徴に基づいて変化する。
便益:データ局所性調整は、タスク性能を向上させることができる。データ局所性調整を各クラスタ内に(兄弟データセンター間に)制限することは、高レベルのデータセキュリティ、プライバシー、及び独立国規則の順守を可能にする。これは、性能と安全性との間のバランスを提供する。
実行段階
実行段階において、論理/仮想階層構造に基づいて、ルートデータセンターは、ユーザクエリを受信し、階層の下方にクエリを分散させ、結果全体を集約し、ユーザに返すように配信する役割を担う。
処理されるデータは、リーフデータセンター(階層の最下レベル)に記憶される。ルートデータセンター(D)は、タスク移転の役割を担うだけである。
ルートデータセンターは、通常、エンドユーザ間の近接さとデータの大部分が存在する位置との間のバランスに基づいて選択される。クエリと、最終的な集約のための中間データと、は、通常、サイズが小さいので、単純なアプローチは、(クエリ/アプリケーションについての)データの大部分が位置する領域にルートデータセンターを位置させることである。
実行は、以下のような有利な特徴を含み得る:
サブセット選択
プッシュ更新
プル推定
サブセット選択
(必要とされる場合には)所与のクエリのためのさらなるデータセンターの選択に関して、次の方策が適用され得る:Cが、親データセンター(ルートデータセンターが、階層のルートを形成するので、ルートデータセンターが、全体の親と解釈される)の全ての子のセットであり、σが、この選択方策を調整するために使用され得る定数係数であり、γが、ゼロの分母を避けるための定数であるとした場合、
Figure 0006953738

基本的に、この選択により、全ての子データセンターのうち、子と親との間の見込まれる上りリンク通信量を最小化することができるサブセットθが見出される。この目的関数を単純化するために、σ=1に設定し、γを十分小さな数に設定することができる。また、θのサイズは、閾値(ユーザにより予め定められるか、又は、子の総数のパーセンテージとして設定されるかのいずれかである)よりも大きいべきである。サブセットθのこのサイズは、タスクの実行を可能にする最小値以上であるべきなので、閾値より大きい。θ∈2は、単に、θがCのサブセットであることを要求する。
この段階において、方法は、データセンターのサブセットを、それらのリストされた特徴に基づいて見出だそうと試みる。上記は、データサイズ及び上りリンクのみを考慮した最も単純な実装である。
サブセット間のタスク/クエリ割り当てに関して、親データセンターの子として存在する全てのデータセンターは、親においてタスクを完了するのに必要なデータを潜在的に保持するデータセンターとして、親に予め登録される。子DC上のデータの特徴がすでに知られており、タスクを処理するときに使用され得る/使用されるべきであるという仮定に基づいて、タスク/プロセスが子に送信され得るという意味で、タスク割り当ては、(入力を、並列的に処理(写像)するための独立したチャンクに分割し、次いで、サマリを提供する)写像簡約タスク(map-reduce task)に似ている。
このサブセット選択ステップは、必ずしも必要であるとは限らない。ここでは、例えば、全ての子データセンターにおいてタスクを処理するためのリソースが十分には存在しない場合に応じることが含まれる。データセンターのサブセットは、ユーザにより設定された最小要件に基づいて、又は、解析タスクのために十分であるとユーザがみなしたデータセンターの最小数に基づいて、選択され得る。例えば、領域のクリックストリームを解析することが望まれる場合、限られた時間しか利用可能でないときには、システムは、データセット全体(おそらくは、データセンターにわたって大まかに均等に分散されている−データ分散は、上記で説明されたように、2つのクエリ間の間の時間に再平衡化され得る)の80%のみを解析するように指示される。上記目的関数は、データセンター選択の単純な実装である。全てのデータが解析に関与する必要があるということが、ハード制約である場合、上記サブセット選択ステップは、必要ではない。
プッシュ更新
このプロセスにおいて、親データセンター(D)の観点から見ると、データは、明示的要求なく、したがって、指定なく、これにプッシュされる。上記論理トポロジーにおいて、初期解析タスク(したがって、割り当てられたタスク全体の一部)の実行の後、初期通信が成功裡に確立され得ると仮定して、D及びその親データセンターDの両方が、実行されたタスク/演算子に加えて、そのようなタスクを実行した結果(
Figure 0006953738

)をキャッシュする。
解析が、D上のローカルデータのいくつかの部分に対して得られ得る。Dは、自身のデータをモニタリングする。このデータは変化する。(結果の生成元の)このデータは、データ間のつながり及び解析結果間のつながりがないという意味で、データセットと解析結果との間のm−n2部グラフにおける1セットの頂点とみなされ得る。データが変化すると、対応する結果にフラグが付けられる。Dは:
1.このような変化が解析タスクの結果に影響を及ぼすかどうかをテストする。(通常、データ変化は、例えば、2部グラフを示す図5で説明されるように、非サイズ維持タスク又は射影タスク(projection tasks)に影響を及ぼすことになる。)いくつかのデータ変化は、結果に影響を及ぼさない。これらは、出力が、入力と同じデータセマンティクスを共有する演算、例えば、データフォーマット変更又はデータ射影である。
2.影響を及ぼす場合、解析タスクを再実行して、結果(
Figure 0006953738

)が変わったかどうかを確認する。
3.結果が変わった場合、前の結果からの変化(
Figure 0006953738

)を特定する。
4.Dにおいてローカルにキャッシュされている解析結果を使用して、DにおいてΔを再現することができる変換計画p(Δ)を生成する。
図5は、結果へのデータのマッピングを示しており、サイズ維持トランザクションに関して、変化を分離することができ、(破線の変換として)追加の射影を作成することができることを示している。非サイズ維持トランザクションに関しては、解析を再実行する必要があり得る。これは、上記の最初の箇条書きにおける判定のための手がかりを提供することができる。
便益:このように行うことにより、ネットワークトラフィックを大いに低減させることができる。Dが、所定のクエリのために利用可能でないときでも、さらなるクエリにおける代わりに、Dにおけるローカルのキャッシュされているコピーを使用することができる。仮定は、どのデータが変化しどのようにデータが変化したかを親が知らないことであり、したがって、このプロセスは、ローカルデータセンターにおいて実行される。
例えば、データが変化したこと(例えば、データサイズが増大したこと、より多くのアイテムを有すること)を子が認識したとき、子は、まず、変化したデータを分離し、変化する結果が、前の解析結果からどのように導出され得るかを算出しようと試みる。例えば、average(i_0,・・・,i_100)という演算は、average(i_0,・・・,i_110)=(average(i_0,・・・,i_100)*100+average(i_101,・・・,i_110)*10)/110に寄与し得る。右辺は、データから独立している変換計画であって、親サーバにおいて再作成されるように単独で転送され得る変換計画である。このような種類の変換計画は、ヒューリスティックルールに基づいて、又は、子データセンターにおいて人間のデータエンジニアにより、予め定義され得るか又は作成され得るかのいずれかである。変換計画の作成は、本文書ではさらには詳述されない。
プル推定(再度親の観点からは、これは、子に対してアクティブにデータを要求する)
が、その子からのプッシュされた更新に基づいて、更新を実行している(結果を処理している)とき、Dは、先着順(first come first serve)方策に基づいて、更新を実行する。Dからの更新がコミットされたとき、Dは、(その子のデータ及びタスクの認知性を用いて)そのレベルで割り当てられたデータ変換を実行し、結果をその親(1つ存在する場合)にリレーする。
潜在的なネットワーク障害に起因して、Dとその子Dとの間の通信は変わり得る。接続が切断されたか又はデータセンターがダウンしているかのいずれかのときに、遮断が生じ得る。タイムアウト閾値が予め設定される。Dとその子Dとの間の通信が、この閾値を超える経過時間の間遮断されている場合、Dは、その通信を終了させ、親による推定された計画又は部分的変換計画である不完全な計画
Figure 0006953738

を用いて、そのローカルにキャッシュされている
Figure 0006953738

を処理する。上記時間閾値は、DとDとの間の過去の通信パターンから学習されることもあるし、又は、他の子データセンターからの更新の完了に比例して設定されることもある。
実際のpi,j(Δ)(Dが、実行することを親に提案する実際の変換計画)は、この場合には、得ることができないことは明らかである。Dは、他の子から受信した、他の子の更新に関する情報に基づいて、近似
Figure 0006953738

を導出する。ここでの重要な仮定は、Dの全ての子が、クエリ/アプリケーションに関して(所与の更新エピソード(update episode)における)類似するデータ更新頻度及びデータ構造を共有することである。この仮定は、データセンターが、同じ種類のデータを処理することに基づく。したがって、子が、同種データを有し、大きく類似するデータプロセスを実行すべきであるように、階層が構成される。子の大部分が、それら子の更新を送信したとき、Dは、pi,j(Δ)の部分的知識と、他の子データセンターからの演算命令と、に基づいて、最も類似する
Figure 0006953738

を見出すことにより、Dからの更新を基本的に推定することができる。この推定は、以下のようになされ得る:
Figure 0006953738

ここで、Πi,j(Δ)は、Dから受信された部分的更新演算であり、
Figure 0006953738

は、2つの更新演算を一緒に連結又はマージし、
Figure 0006953738

は、Dから受信された部分的更新演算に対応する最も類似する完全更新演算を選択する(s.t.maxは、「max(・・・.)であるような(so that max(・・・.))」を表す)。
実際には、単純にするために、所与の更新エピソードにおいて、全ての子が、大きく類似する更新演算を実行し、他の子から受信された完全更新が、部分的更新を完全にするために、キャッシュされているデータに適用され得る、と仮定することができる。
図6は、更新着想を示している。Dp1及びDp2は、それらの更新を完了しているのに対し、Dp3はそうではない。Dは、Dp3からは、部分的更新
Figure 0006953738

を受信するだけである。Dp1が、この場合すでに受信されている情報を使用して最も類似する更新を提供するとみなされると仮定すると、
Figure 0006953738

は、
Figure 0006953738

として、2つの更新を一緒に結合することにより算出される。これは、別の子データセンターからの値を使用して、不完全なシーケンスを基本的に続けている。
もちろん、このような仮定に基づく何らかのさらなる解析は、正確でない。別のデータセンターからの結果を使用してシーケンスを続ける目的は、絶対的な正確さと引き換えに、データ安全性及びプロセス効率性を得ることである。なぜならば、完全に正確な結果は、決して得ることができないからである。「最終的な一貫性」という原理原則が、ここでは採用される:Dは、Dからの更新をプルし続け、これと同時に、
Figure 0006953738

に基づく更新が正しいとみなす。Dからの応答が受信されるまで、演算ログが保存される。次いで、Dは、Dが利用可能でなかったときの時間ウィンドウ中になされた演算をトレースバックする(trace back)(繰り返す)かどうかを決定することができる。
便益:これを行うことにより、システム全体は、所定のデータセンターが利用可能でないときに、(効果的且つ最終的に一貫するように)動作することができる。全ての兄弟データセンターが、互いに対する基準として動作できるように大きく類似して挙動できることを確実にするために、階層構造が、この場合には不可欠である。
便益全般
本発明の実施形態のいくつかの便益は、以下として確認できる:
1.より良いデータ局所性及びクエリ処理のために類似する又は近接するデータセンターを一緒にグループ化するためのデータセンターの論理的編成
2.「オフライン」データ処理、更新のみの通信、及び、必要なときの更新の再構成を容易にするローカルキュッシングアプローチ
3.データの移転及び複製を用いてデータセンターにわたる性能を向上させるクラスタ内データ局所性スキーム
4.ボトルネックを回避するためにどのデータセンターが使用されるべきかを、子データセンターのサブセットの選択の形で選択する方策
5.クエリ処理又は特定のアプリケーションに関与する全てのデータセンターの性能プロファイルを絶えず維持するのを助けることができる、データセンター性能を測定するための機構
図7は、本発明の一実施形態に従った、準備及び実行を含むプロセス全体のフローチャートである。
概して、プロセス全体は、初期タスク及び/又はクエリ解析S100で開始する。
これは、(アプリケーションロジックと、処理されるクエリについての潜在的に過去の情報と、に基づく)予期されるタスクに基づく解析であり得る。(近接さとともに、しかしながら、これは一定である)この特徴づけを用いて、S110における論理データセンタークラスタ生成をガイドすることができる。すなわち、これは、データセンターの特徴も考慮して、関与する全てのデータセンターにわたる仮想階層構造を与える。
最適化するために、データに対して実行できること(又は、データに対してどのような種類の解析を実行できるか及び/又は可能性の高い結果は何であるか)についての所定の知識が必要とされる。これは、「許容可能な演算」のセットとみなされる。例えば、典型的には温度センサに関して、sum、周期的average、min、max等といった演算が予期され得る。
クエリの特徴づけ(S120)における意図は、データセンターのグループにローカルに保持されているデータの大部分についてどのようなクエリを実行できるかを確立することである。これは、仮想複数データセンター階層がどのように確立されるべきかの再編成を助けることである。
論理構造が定義されると、システムは、クエリが到達したかどうか(S130)に応じて、クラスタ内データ局所性調整が必要且つ可能かどうかを推定する。クエリが到達していない場合、データ局所性調整が行われ得る(S140)。クエリが到達した場合、システムは、クエリ処理(S150)に進む。
図8は、例えば、親又はルートデータセンターによる、データセンターの継続的な特徴づけの概要を示している。
ここで、(クラスタ局所性セクションにおいて記載されている)データ局所性調整S140は、特定のアプリケーション/処理タスクのコンテキストにおいて、データセンター特徴及びデータ特徴の両方に基づく。データ特徴は、s、t、T、rである。データセンター特徴は、上りリンクパラメータ及び下りリンクパラメータに関連し得る。システムは、まず、ステップS170において、永続的ストレージに問い合わせて、これらのデータセンター特徴がすでに利用可能であるかどうかを確認する(且つ、可能であれば、利用可能なデータセンター特徴が旧式であるかどうかをチェックする)。永続的ストレージは、共用データ記憶部(分散データ記憶部、例えば、分散ハッシュテーブル)又は中央データ記憶部である。データセンター特徴が利用可能でない場合、S180において、ハンドシェーキングメッセージが送信されて、上りリンク性能及び下りリンク性能について、子データセンターとの接続が調べられる。さらなる情報が、典型的な演算子、それらのデータ低減比、及びそれらの性能を理解するために生じる。これらは、前のセクションにおいて言及されたパラメータr、t、及びTである。
図9は、クエリ実行を示している。
クエリは、以下のように実行される:
S200:クエリが、リーフデータセンターのサブセットを選択するために各子データセンターの上りリンク及び下りリンクを潜在的に考慮して、分散される。このサブセット選択は、全ての子が使用されるわけではない場合である。全ての子が関与する必要がある場合には、これは適切でない。
S210:完全な結果が受信されたかどうかのクエリがある。
S220:完全な結果が、子データセンターから受信された場合、それらの結果が、子データセンター及び親データセンターの両方にキャッシュされる。システムは、次のクエリに進む。
S230:完全な結果が受信されなかった場合:
S240:前の実行からのキャッシュされている結果及びキャッシュされているタスクが存在する場合、プロセスは、前述されたプッシュ更新若しくはプル推定又はこれらの両方を用いて、結果を近似する。
S250:キャッシュされている結果及びキャッシュされているタスクが存在しない場合、この子に基づいて、中間結果をトラックバックする。すなわち、他の子からの結果に基づいてさえも、Dからの結果を近似する方法がない場合、Dは、永久的にデッド状態とみなされ、将来の処理から除去されるべきである。
S260:どちらの場合でも、
i.閾値に達し、子が永久的に利用可能でないとみなされ得るまで、又は
ii.結果が到達し、処理が続くまで、
プルするのを続ける。
クエリがもはや存在しなくなると、クエリ処理は終了する。
本発明の実施形態に従うと、方法と、クラスタ、親データセンター、及び子データセンターを含むネットワークと、コンピュータプログラムと、は、地理的に分散されたデータソースにわたる効率的なデータ解析を容易にする。包括的な手段を使用して、データセットに対して実行される解析の性能を収集して推定/予測することができる。すなわち、許容可能な演算/解析タスクの性能が、データセンター間のデータ通信ネットワークの特徴と処理性能とに基づいて、推定される。
本発明の実施形態は以下のことを行うことができる:
1.(データが生成された)エッジにおいて当該データを記憶すること。ここで、「エッジ」という用語は、データがシステム/ネットワークに入っているエントリポイントを意味し、したがって、データは、記憶のために転送される必要がなく、代わりに、データの生成源において記憶されるべきである。
2.データが生成された場所とは異なるデータセンターであって、(異なるクラスタが配置される)異なる地理的領域にわたるデータセンターにおいて解析タスクを実行するコストを推定すること。これは、局所性が、1つの管轄区域又は地理的領域内に編成される1つの「親−子」サブツリー内でのみ調整されるためである。
3.解析タスクを実行するための最良の方策を計画すること。これは、データを調整し、集約(タスク)がどこで実行されるべきかを決定するための、上りリンク及び下りリンクに基づく最適化を指す。
4.プッシュ更新及びプル推定のセクションにおいて説明されたように、最も効率的なタスク実行を容易にするために、結果を転送及び/又は更新すること。
本発明の実施形態の主要な特徴は、以下を含み得る:
1.本発明の実施形態におけるプロセスのダイナミズム:システム性能の推定が、最新の変化を反映するように継続的に更新される。この特徴は、全ての関与するデータセンターの上りリンク及び下りリンクの継続的なモニタリング及び推定、並びに/又は、データに影響する(クエリを満たすプロセスの一部としての)データ演算の継続的な推定を指す。
2.インクリメンタル性:リソース要件を最小化するために、データ解析がインクリメンタルに実行される。
3.データ安全性:提案するソリューションは、規制上の制約及び安全性制約を順守することができる。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法であって、
当該方法は、準備段階及び実行段階を含み、
前記準備段階は、
各データセンターが、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおけるデータセンターの構成を可能にする、データセンターパラメータ及び/又は近接さに関する情報を提供するステップであって、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、前記クラスタは、単一の親データセンターを有する、ステップ
を含み、
前記実行段階は、
前記親データセンターが、タスクを前記子データセンターに送信し、前記子データセンターが、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するステップ
を含み、
子データセンター及び該子データセンターの親データセンターの両方が、該子データセンターにより実行されたタスクと、該子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュする、方法。
(付記2)
前記実行段階において、前記子データセンターが、新たな受信データに関連付けられる結果の変化を特定した場合、前記子データセンターは、キャッシュされている結果からの前記変化を再現するための変換を提供し、前記変換を前記親データセンターに送信する、付記1に記載の方法。
(付記3)
前記実行段階において、前記親データセンターと前記子データセンターとの間の通信が遮断された場合、前記親データセンターは、同じクラスタにおける前記子データセンターのうちの別の子データセンターからの結果を使用して、前記結果のシーケンスを続ける、付記1又は2に記載の方法。
(付記4)
前記子データセンターのクラスタは、データサイズ、予期されるタスク、及びデータセンター許容可能な演算、のうちの任意のものを含むデータセンターパラメータと、物理的近接さ、ネットワーク接続、及び地理的位置、のうちの任意のものを含むデータセンター近接ファクタと、に基づいて形成される、付記1乃至3いずれかに記載の方法。
(付記5)
前記準備段階は、
データセンターDに関して、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
Figure 0006953738

と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
Figure 0006953738

と、前記子データセンターのサイズsと、を提供するステップ
を含む、付記1乃至4いずれかに記載の方法。
(付記6)
規定された条件下でのデータ及びタスクの移転であって、前記移転は、元の子データセンターから送信先の子データセンターにデータを転送することと、前記送信先の子データセンターにおいてタスクを実行することと、を含む、移転
をさらに含む、付記1乃至5いずれかに記載の方法。
(付記7)
前記規定された条件は、転送される前記データを転送するのに要する時間を考慮する、付記6に記載の方法。
(付記8)
前記規定された条件は、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
Figure 0006953738

と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
Figure 0006953738

と、前記子データセンターのサイズsと、に基づいて規定され、データ移転中に子データセンターから移動されるデータに対する、前記データ移転中に該子データセンターに移動されるデータの比を計算する、付記6又は7に記載の方法。
(付記9)
前記クエリは、階層の全体の親であるルートデータセンターにおいて、前記データセンターのネットワークに入力され、前記ルートデータセンターは、中間親データセンターを介して、前記階層の最下レベルを形成するリーフデータセンターである子データセンターに、タスクを送信する、付記1乃至8いずれかに記載の方法。
(付記10)
前記クラスタにおける各子データセンターについて、前記親データセンターに向かう、該子データセンターの上りリンク帯域幅
Figure 0006953738

と、該子データセンターのサイズsと、を使用して、前記解析タスクを実行するためのデータセンターのサブセットθの選択を決定するステップ
をさらに含み、
前記サブセットθのサイズは、閾値よりも大きいように予め設定され、前記選択は、見込まれる上りリンク通信量を最小化することである、付記1乃至9いずれかに記載の方法。
(付記11)
クエリを実行するためのデータセンターのネットワークにおける親データセンターであって、
前記データセンターは、当該親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、当該親データセンターは、前記クラスタについての唯一の親であり、
当該親データセンターは、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、前記タスクを前記子データセンターに送信し、各子データセンターから、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及び入力/出力コンポーネント(I/O)と、
前記子データセンターにより実行されたタスクと、前記子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、親データセンター。
(付記12)
前記プロセッサ及び前記I/Oは、ユーザクエリを受信し、前記階層クラスタトポロジーを形成するよう構成されている、付記11に記載の親データセンター。
(付記13)
クエリを実行するためのデータセンターのネットワークにおける子データセンターであって、
前記データセンターは、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、前記親データセンターは、前記クラスタについての唯一の親であり、
当該子データセンターは、
データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、前記親データセンターからタスクを受信し、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するよう構成されているプロセッサ及び入力/出力コンポーネント(I/O)と、
当該子データセンターが実行したタスクと、当該子データセンターが実行した該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
を有する、子データセンター。
(付記14)
付記11に記載の親データセンターと、複数の、付記13に記載の子データセンターと、を含む、クエリを実行するためのデータセンターのネットワーク。
10 データセンター(DC)(仮想マシン)
20 処理ユニット群
30 DCストレージ
40 DC内入力/出力コンポーネント(I/O)
50 DC間I/O
60 上りリンク帯域幅
70 下りリンク帯域幅
100 I/O
110 ストレージ
120 プロセッサ

Claims (14)

  1. データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法であって、
    当該方法は、準備段階及び実行段階を含み、
    前記準備段階は、
    各データセンターによって提供される、データセンターパラメータ及び/又は近接さに関する情報に基づいて、データセンターを親データセンター及び子データセンターの動的な階層クラスタトポロジーに構成するステップであって、各子データセンターは、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、前記クラスタは、単一の親データセンターを有する、ステップ
    を含み、
    前記実行段階は、
    前記親データセンターが、タスクを前記子データセンターに送信し、前記子データセンターが、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するステップ
    を含み、
    子データセンター及び該子データセンターの親データセンターの両方が、該子データセンターにより実行されたタスクと、該子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュする、方法。
  2. 前記実行段階において、前記子データセンターが、新たな受信データに関連付けられる結果の変化を特定した場合、前記子データセンターは、キャッシュされている結果からの前記変化を再現するための変換を提供し、前記変換を前記親データセンターに送信する、請求項1に記載の方法。
  3. 前記実行段階において、前記親データセンターと前記子データセンターとの間の通信が遮断された場合、前記親データセンターは、同じクラスタにおける前記子データセンターのうちの別の子データセンターからの結果を使用して、前記結果のシーケンスを続ける、請求項1又は2に記載の方法。
  4. 前記子データセンターのクラスタは、データサイズ、予期されるタスク、及びデータセンター許容可能な演算、のうちの任意のものを含むデータセンターパラメータと、物理的近接さ、ネットワーク接続、及び地理的位置、のうちの任意のものを含むデータセンター近接ファクタと、に基づいて形成される、請求項1乃至3いずれか一項に記載の方法。
  5. 前記準備段階は、
    データセンターDに関して、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
    Figure 0006953738

    と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
    Figure 0006953738

    と、前記子データセンターのサイズsと、を提供するステップ
    を含む、請求項1乃至4いずれか一項に記載の方法。
  6. 規定された条件下でのデータ及びタスクの移転であって、前記移転は、元の子データセンターから送信先の子データセンターにデータを転送することと、前記送信先の子データセンターにおいてタスクを実行することと、を含む、移転
    をさらに含む、請求項1乃至5いずれか一項に記載の方法。
  7. 前記規定された条件は、転送される前記データを転送するのに要する時間を考慮する、請求項6に記載の方法。
  8. 前記規定された条件は、前記親データセンターに向かう、前記子データセンターの上りリンク帯域幅
    Figure 0006953738

    と、前記子データセンターに向かう、前記親データセンターからの下りリンク帯域幅
    Figure 0006953738

    と、前記子データセンターのサイズsと、に基づいて規定され、データ移転中に子データセンターから移動されるデータに対する、前記データ移転中に該子データセンターに移動されるデータの比を計算する、請求項6又は7に記載の方法。
  9. 前記クエリは、階層の全体の親であるルートデータセンターにおいて、前記データセンターのネットワークに入力され、前記ルートデータセンターは、中間親データセンターを介して、前記階層の最下レベルを形成するリーフデータセンターである子データセンターに、タスクを送信する、請求項1乃至8いずれか一項に記載の方法。
  10. 前記クラスタにおける各子データセンターについて、前記親データセンターに向かう、該子データセンターの上りリンク帯域幅
    Figure 0006953738
    と、該子データセンターのサイズsと、を使用して、前記クエリの解析タスクを実行するためのデータセンターのサブセットθの選択を決定するステップ
    をさらに含み、
    前記サブセットθのサイズは、閾値よりも大きいように予め設定され、前記選択は、見込まれる上りリンク通信量を最小化することである、請求項1乃至9いずれか一項に記載の方法。
  11. クエリを実行するためのデータセンターのネットワークにおける親データセンターであって、
    前記データセンターは、各データセンターによって提供される、データセンターパラメータ及び/又は近接さに関する情報に基づいて、当該親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、当該親データセンターは、前記クラスタについての唯一の親であり、
    当該親データセンターは、
    データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、タスクを受信し、前記タスクを前記子データセンターに送信し、各子データセンターから、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを受信するよう構成されているプロセッサ及び入力/出力コンポーネント(I/O)と、
    前記子データセンターにより実行されたタスクと、前記子データセンターにより実行された該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
    を有する、親データセンター。
  12. 前記プロセッサ及び前記I/Oは、ユーザクエリを受信し、前記階層クラスタトポロジーを形成するよう構成されている、請求項11に記載の親データセンター。
  13. クエリを実行するためのデータセンターのネットワークにおける子データセンターであって、
    前記データセンターは、各データセンターによって提供される、データセンターパラメータ及び/又は近接さに関する情報に基づいて、親データセンター及び子データセンターの動的な階層クラスタトポロジーにおいて構成され、各子データセンターは、前記クエリの個々の解析タスクにより処理されるべき、該子データセンター自身のローカルデータシーケンスを有し、前記子データセンターは、類似する且つ/又は近接するデータセンターのクラスタを一緒に形成し、前記親データセンターは、前記クラスタについての唯一の親であり、
    当該子データセンターは、
    データセンターパラメータ及び/又は近接さに関する情報を他のデータセンターに提供するよう構成されており、さらに、前記親データセンターからタスクを受信し、前記ローカルデータシーケンス及び前記タスクから導出された結果のシーケンスを、前記親データセンターに送信するよう構成されているプロセッサ及び入力/出力コンポーネント(I/O)と、
    当該子データセンターが実行したタスクと、当該子データセンターが実行した該タスクの結果のシーケンスと、をキャッシュするよう構成されているストレージと、
    を有する、子データセンター。
  14. 請求項11に記載の親データセンターと、複数の、請求項13に記載の子データセンターと、を含む、クエリを実行するためのデータセンターのネットワーク。
JP2017034854A 2016-04-29 2017-02-27 データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法 Active JP6953738B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102016207472 2016-04-29
GB1607542.6A GB2549790A (en) 2016-04-29 2016-04-29 A computer-implemented method of executing a query in a network of data centres
DE102016207472.5 2016-04-29
GB1607542.6 2016-04-29

Publications (2)

Publication Number Publication Date
JP2017199356A JP2017199356A (ja) 2017-11-02
JP6953738B2 true JP6953738B2 (ja) 2021-10-27

Family

ID=58428199

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017034854A Active JP6953738B2 (ja) 2016-04-29 2017-02-27 データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法

Country Status (3)

Country Link
US (1) US10691692B2 (ja)
EP (1) EP3242209A1 (ja)
JP (1) JP6953738B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831633B2 (en) 2018-09-28 2020-11-10 Optum Technology, Inc. Methods, apparatuses, and systems for workflow run-time prediction in a distributed computing system
US11755383B2 (en) * 2019-12-31 2023-09-12 Vmware, Inc. Hybrid inventory data summarization using various input schema across hybrid cloud infrastructure
US11776281B2 (en) 2020-12-22 2023-10-03 Toyota Research Institute, Inc. Systems and methods for traffic light detection and classification
US11368333B1 (en) * 2021-01-18 2022-06-21 Curvalux Uk Limited Mobile mux

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145742B1 (en) * 2000-10-31 2012-03-27 Red Hat, Inc. Method of and apparatus for network administration
US7801944B2 (en) 2001-05-18 2010-09-21 Gary Stephen Shuster Distributed computing using agent embedded in content unrelated to agents processing function
US7734783B1 (en) 2006-03-21 2010-06-08 Verint Americas Inc. Systems and methods for determining allocations for distributed multi-site contact centers
US8793354B2 (en) 2006-04-20 2014-07-29 Cisco Technology, Inc. System and method for optimizing maintenance of geographically distributed processing units
US20090113323A1 (en) 2007-10-31 2009-04-30 Microsoft Corporation Data center operation optimization
US9184983B2 (en) 2010-08-26 2015-11-10 Futurewei Technologies, Inc. Cross-stratum optimization protocol
US9164806B2 (en) * 2011-01-28 2015-10-20 Oracle International Corporation Processing pattern framework for dispatching and executing tasks in a distributed computing grid
EP2500823A1 (de) 2011-03-15 2012-09-19 Siemens Aktiengesellschaft Betrieb eines Datenverarbeitungsnetzes mit mehreren geografisch beabstandeten Datenzentren
US8645957B2 (en) 2011-08-02 2014-02-04 Microsoft Corporation Optimized datacenter management by centralized task execution through dependency inversion
US9092566B2 (en) 2012-04-20 2015-07-28 International Drug Development Institute Methods for central monitoring of research trials
US9141430B2 (en) 2012-04-30 2015-09-22 Hewlett-Packard Development Company, L.P. Scheduling mapreduce job sets
US9164791B2 (en) * 2012-07-02 2015-10-20 International Business Machines Corporation Hierarchical thresholds-based virtual machine configuration
US20140149493A1 (en) 2012-11-29 2014-05-29 Utku Gunay ACER Method for joint service placement and service routing in a distributed cloud
US9306978B2 (en) 2013-03-15 2016-04-05 Bracket Computing, Inc. Automatic tuning of virtual data center resource utilization policies
US9418455B1 (en) * 2013-04-12 2016-08-16 Vmware, Inc. Graphing parameters of a virtualized computing environment
WO2014205585A1 (en) 2013-06-28 2014-12-31 Polyvalor, Société En Commandite Method and system for optimizing the location of data centers or points of presence and software components in cloud computing networks using a tabu search algorithm
US20150089203A1 (en) 2013-09-23 2015-03-26 Mitch Kline Latency reduction in distributed computing environments
US9471350B2 (en) * 2013-09-26 2016-10-18 Intel Corporation Live migration of virtualized systems
KR20150080183A (ko) 2013-12-30 2015-07-09 주식회사 케이티 데이터 센터 네트워크의 동적 트래픽 분배 방법 및 장치
US20150319081A1 (en) 2014-03-14 2015-11-05 Avni Networks Inc. Method and apparatus for optimized network and service processing
CN103885829A (zh) 2014-04-16 2014-06-25 中国科学院软件研究所 一种基于统计的虚拟机跨数据中心动态迁移优化方法
CN104158879B (zh) 2014-08-18 2018-02-23 浪潮(北京)电子信息产业有限公司 一种分布式数据中心云管理平台架构系统及方法
CN104239141B (zh) 2014-09-05 2017-07-28 北京邮电大学 数据中心中基于工作流关键路径的任务优化调度方法

Also Published As

Publication number Publication date
US10691692B2 (en) 2020-06-23
JP2017199356A (ja) 2017-11-02
EP3242209A1 (en) 2017-11-08
US20170329824A1 (en) 2017-11-16

Similar Documents

Publication Publication Date Title
US11269819B1 (en) Managing consistency models in a distributed database
US11403297B2 (en) Selecting resource configurations for query execution
TWI620075B (zh) 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法
Amjad et al. A survey of dynamic replication strategies for improving data availability in data grids
JP6117378B2 (ja) 分散型データベースクエリ・エンジン用のシステムおよび方法
US11429609B2 (en) Geo-scale analytics with bandwidth and regulatory constraints
Mahgoub et al. {OPTIMUSCLOUD}: Heterogeneous configuration optimization for distributed databases in the cloud
JP6953738B2 (ja) データセンターのネットワークにおいてクエリを実行する、コンピュータにより実施される方法
CN111263938A (zh) 基于规则的自主数据库云服务框架
US11055352B1 (en) Engine independent query plan optimization
US11468369B1 (en) Automated processing of multiple prediction generation including model tuning
CN104050042A (zh) Etl作业的资源分配方法及装置
CN105940636B (zh) 用于为数据中心的工作负荷生成分析模型的方法及服务器
Ji et al. Wide area analytics for geographically distributed datacenters
Chen et al. Cost-effective resource provisioning for spark workloads
CN116057518A (zh) 使用机器学习模型的自动查询谓词选择性预测
WO2018022395A1 (en) Artificial intelligence-based caching mechanism
US20230124100A1 (en) Low-Latency Data Management And Query Processing Cross-Optimizations
US20230205664A1 (en) Anomaly detection using forecasting computational workloads
Zhang et al. An optimal container update method for edge‐cloud collaboration
Kumar et al. Cost model for pregel on graphx
Nardelli QoS-aware deployment and adaptation of data stream processing applications in geo-distributed environments
Cano Optimizing distributed systems using machine learning
US20230244982A1 (en) Optimization of tuning for models used for multiple prediction generation
US20230244720A1 (en) Access of data and models associated with multiple prediction generation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210402

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210913

R150 Certificate of patent or registration of utility model

Ref document number: 6953738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150