(57)【特許請求の範囲】
【請求項１】
複数の計算装置であって、
クラスタデータを記憶する複数のノードを有する現行クラスタであって、各ノードはそれぞれ少なくとも１つの、前記クラスタデータのそれぞれの部分を記憶する記憶装置を備え、前記複数のノードを含む前記現行クラスタの１つのネットワークエンドポイントで、前記クラスタデータへのアクセス要求を受信する、現行クラスタと、
クラスタ制御インターフェースであって、
クラスタスケーリングイベントに応答して前記現行クラスタのノードから新しいクラスタ内の複数のノードへデータをコピーし
前記コピーが実行されている間に、前記データに対する読み取り要求に、前記現行クラスタによって応答し、前記読み取り要求は、前記新しいクラスタに既にコピーされたデータに対する読み取り要求を含み、前記読み取り要求はクライアントから前記現行クラスタの前記複数のノードに対する同じ１つのネットワークエンドポイントに送信され、
前記コピーが完了した後に、前記新しいクラスタの前記複数のノードによって前記１つのネットワークエンドポイントに対する要求が取り扱われるように、前記現行クラスタの前記１つのネットワークエンドポイントが前記新しいクラスタに移動し、前記クライアントの観点から見て、前記１つのネットワークエンドポイントのネットワークアドレスは、前記１つのネットワークエンドポイントが移動される前及び後で同じままであり、
前記現行クラスタの前記ノード内の各データスライスに関して、前記データスライスを、割り当てスキームに従って、前記新しいクラスタ内の前記複数のノード内の１つ以上のデータスライスに割り当て、
前記クラスタデータを、前記現行クラスタの前記ノード内の各データスライスから、前記新しいクラスタ内の前記複数のノード内の前記割り当てられた１つ以上のデータスライスに転送し、
前記割り当てスキームは、前記新しいクラスタ内の前記複数のノードの間における前記コピーの作業負荷の均等な分散を確実にする、
ように構成される前記クラスタ制御インターフェース、
とを実現するように構成される、複数の計算装置を備える、システム。
【請求項２】
クラスタスケーリングイベントに応答して現行クラスタのノードから新しいクラスタ内の複数のノードへデータをコピーすることと、
前記コピーが実行されている間に、前記データに対する読み取り要求に、前記現行クラスタによって応答することであって、前記読み取り要求は、前記新しいクラスタに既にコピーされたデータに対する読み取り要求を含み、前記読み取り要求はクライアントから前記現行クラスタの前記複数のノードに対する同じ１つのネットワークエンドポイントに送信される、前記応答することと、
前記コピーが完了した後に、前記新しいクラスタの前記複数のノードによって前記１つのネットワークエンドポイントに対する要求が取り扱われるように、前記現行クラスタの前記１つのネットワークエンドポイントが前記新しいクラスタに移動することであって、前記クライアントの観点から見て、前記１つのネットワークエンドポイントのネットワークアドレスは、前記１つのネットワークエンドポイントが移動される前及び後で同じままである、前記移動することと、を含む方法であって、
前記現行クラスタの各ノードは、前記クラスタデータの１つ以上のデータスライスを記憶し、前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記コピーは、
前記現行クラスタの前記ノード内の各データスライスに関して、前記データスライスを、割り当てスキームに従って、前記新しいクラスタ内の前記複数のノード内の１つ以上のデータスライスに割り当てることと、
前記クラスタデータを、前記現行クラスタの前記ノード内の各データスライスから、前記新しいクラスタ内の前記複数のノード内の前記割り当てられた１つ以上のデータスライスに転送することと、
を含み、
前記割り当てスキームは、前記新しいクラスタ内の前記複数のノードの間における前記コピーの作業負荷の均等な分散を確実にする、方法。
【請求項３】
前記新しいクラスタは前記現行クラスタと異なる数のノードまたは異なる種類のノードを有する、請求項２に記載の方法。
【請求項４】
前記新しいクラスタの前記ノードの前記種類は、前記現行クラスタの前記ノードの前記種類とは異なる記憶容量、または、前記現行クラスタの前記ノードの計算能力とは異なる計算能力を有する、請求項３に記載の方法。
【請求項５】
現行ノードクラスタの前記ノードおよび前記新しいクラスタ内の前記複数のノードの各々は、前記ネットワークベースのクラスタホストサービスによってホストされる仮想計算ノードである、請求項２に記載の方法。
【請求項６】
各ノードは、クラスタデータを記憶するための１つ以上のデータスライスを含み、前記方法は、前記現行クラスタの前記ノード上の前記データスライス上に前記クラスタデータを分散するために使用されるスキームとは異なる分散スキームに基づいて、前記新しいクラスタの前記ノード上の前記データスライス上に前記クラスタデータを分散することをさらに含む、請求項２に記載の方法。
【請求項７】
前記現行クラスタは、前記クラスタデータに加えて、複製クラスタデータを記憶し、
前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記クラスタデータの前記コピーは、前記複製クラスタデータを前記現行クラスタから前記新しいクラスタへ送信することなく実施され、
前記コピーの完了に応答して、前記新しいクラスタ内の前記複数のノード間で前記クラスタデータを複製することをさらに含む、請求項２に記載の方法。
【請求項８】
非一時的コンピュータ可読記憶媒体であって、複数の計算装置によって実行されるときに、前記複数の計算装置に、
クラスタスケーリングイベントに応答して現行クラスタのノードから新しいクラスタのノードへデータをコピーし、
前記コピーが実行されている間に、前記データに対する読み取り要求に、前記現行クラスタによって応答し、前記読み取り要求は、前記新しいクラスタに既にコピーされたデータに対する読み取り要求を含み、前記読み取り要求はクライアントから前記現行クラスタの前記複数のノードに対する同じ１つのネットワークエンドポイントに送信され、
前記コピーが完了した後に、前記新しいクラスタの前記複数のノードによって前記１つのネットワークエンドポイントに対する要求が取り扱われるように、前記現行クラスタの前記１つのネットワークエンドポイントが前記新しいクラスタに移動し、前記クライアントの観点から見て、前記１つのネットワークエンドポイントのネットワークアドレスは、前記１つのネットワークエンドポイントが移動される前及び後で同じままである、ことを実現させるプログラム命令を記憶する、非一時的コンピュータ可読記憶媒体であって、
前記現行クラスタの各ノードは、前記クラスタデータの１つ以上のデータスライスを記憶し、前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記コピーは、
前記現行クラスタの前記ノード内の各データスライスに関して、前記データスライスを、割り当てスキームに従って、前記新しいクラスタ内の前記複数のノード内の１つ以上のデータスライスに割り当てることと、
前記クラスタデータを、前記現行クラスタの前記ノード内の各データスライスから、前記新しいクラスタ内の前記複数のノード内の前記割り当てられた１つ以上のデータスライスに転送することと、
を含み、
前記割り当てスキームは、前記新しいクラスタ内の前記複数のノードの間における前記コピーの作業負荷の均等な分散を確実にする、非一時的コンピュータ可読記憶媒体。
【請求項９】
前記現行クラスタは、前記クラスタデータに加えて、複製クラスタデータを記憶し、
前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記クラスタデータの前記コピーは、前記複製クラスタデータを前記現行クラスタから前記新しいクラスタへ送信することなく実施され、
前記非一時的コンピュータ可読記憶媒体は、複数の計算装置によって実行されるときに、前記複数の計算装置に、
前記コピーの完了に応答して、前記新しいクラスタ内の前記複数のノード間で前記クラスタデータを複製する
ことを実現させる追加のプログラム命令を記憶する、請求項８に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
クラスタベースの計算ソリューションは、あらゆる種類のサービスの提供において普及
するようになったが、これは一部には、計算クラスタは、同等な性能を有する単一のコン
ピュータを上回る、より高い処理力および信頼性を達成するための費用対効果が高い手段
を提供するためである。異なる数または種類（例えば、機能、記憶容量等）の計算ノード
を使用して、特定の計算タスクのために、適切なスケールで、クラスタベースの計算ソリ
ューションを設計することは、クラスタオペレータが、計算リソースをタスクに効率的に
配分することを可能にする。しかしながら、幾つかの計算タスクは、変動的または限定的
な期間リソース要件を要する。例えば、ある特定のウェブベースのサービスは、一日のう
ちの特定の時間にのみ頻繁に利用される場合があり、残りの時間は、計算リソースは十分
に活用されない場合がある。そのような場合、クラスタベースの計算ソリューションは、
計算タスクの最大リソース要件に応えるのに十分な計算リソースを有して設計することが
できる。しかしながら、このソリューションは、リソース配分の効率を低減させ、したが
って費用対効果を低減させる。別法として、クラスタ計算ソリューションは、計算タスク
のための計算リソースの効率的な利用を維持するようにスケーリングされることもある。
計算クラスタのスケーリングには、データ転送およびサービスダウンタイム等、独自の困
難が伴う、クラスタ計算ソリューションの費用対効果を低減もさせる。
【図面の簡単な説明】
【０００２】
【図１】幾つかの実施形態による、分散計算システムにおける計算クラスタのスケーリングのタイムラインを例証する。
【図２】幾つかの実施形態による、計算クラスタのための動作環境例を例証するブロック図である。
【図３】幾つかの実施形態による、ネットワークベースのクラスタホストサービス例を例証するブロック図である。
【図４】幾つかの実施形態による、計算クラスタ例を例証するブロック図である。
【図５】幾つかの実施形態による、計算クラスタをスケーリングするための方法を例証する高レベル流れ図である。
【図６Ａ】幾つかの実施形態による、現行クラスタと新しいクラスタとの間に割り当てられたデータスライスコピー位置を例証するブロック図である。
【図６Ｂ】幾つかの実施形態による、現行クラスタと新しいクラスタとの間に割り当てられたデータスライスコピー位置を例証するブロック図である。
【図６Ｃ】幾つかの実施形態による、現行クラスタと新しいクラスタとの間に割り当てられたデータスライスコピー位置を例証するブロック図である。
【図７】幾つかの実施形態による、システム例を例証する。
【発明を実施するための形態】
【０００３】
実施形態は、幾つかの実施形態および例証的な図に関して例示の目的のために本明細書
に説明されるが、当業者であれば、実施形態は、説明される実施形態または図に限定され
ないことを認識するであろう。図およびそれに対する詳細な説明は、実施形態を開示され
る特定の形態に限定することを意図するものではなく、対照的に、その意図は、添付の特
許請求の範囲によって定義される精神および範囲内の全ての修正、等価物、および代替物
を網羅することであることが理解されるべきである。本明細書で使用される見出しは、単
に構成の目的のためであり、説明または特許請求の範囲の範囲を限定するために使用され
ることを意味しない。本出願全体を通して使用するとき、「〜することができる・〜して
もよい」という語は、義的な意味（即ち、しなければならないことを意味する）よりむし
ろ、許可的な意味（即ち、可能性を有することを意味する）にて使用される。同様に、「
含む（ｉｎｃｌｕｄｅ）」、「含む（ｉｎｃｌｕｄｉｎｇ）」、および「含む（ｉｎｃｌ
ｕｄｅｓ）」という語は、含むが、限定されないことを意味する。
【０００４】
以下の詳細な説明では、多数の特定の詳細が、特許請求される主題の十分な理解を提供
するために記載される。しかしながら、特許請求される主題は、これらの特定の詳細を伴
わずに実践されてもよいことが、当業者によって理解されるであろう。他の例では、当業
者に既知であろう方法、装置、またはシステムは、特許請求される主題を曖昧にしないた
めに本明細書に詳細には説明されていない。
【０００５】
同様に、第１の、第２の等の用語は、本明細書にて種々の要素を説明するために使用さ
れ得るが、これらの要素は、これらの用語によって限定されるべきではないことも理解さ
れるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。
例えば、本発明から逸脱することなく、第１の接触は、第２の接触と称されることが可能
であり、また同様に、第２の接触は、第１の接触と称されることが可能である。第１の接
触および第２の接触は、いずれも接触であるが、それらは同一の接触ではない。
【０００６】
本明細書において本発明の説明に使用される専門用語は、特定の実施形態を説明する目
的のためだけのものであり、本発明を限定することを意図されない。本発明の説明および
添付の特許請求の範囲にて使用するとき、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は
、文脈によって別段に明確に示されない限り、複数形も含むことを意図される。同様に、
本明細書で使用するとき、用語「および／または」は、関連する列挙される項目の１つ以
上の任意のおよび全ての可能な組み合わせを指す、および包含することも理解されるであ
ろう。本明細書で使用するとき、用語「含む（ｉｎｃｌｕｄｅｓ）」、「含む（ｉｎｃｌ
ｕｄｉｎｇ）、「備える（ｃｏｍｐｒｉｓｅｓ）」およびまたは「備える（ｃｏｍｐｒｉ
ｓｉｎｇ）」は、規定される特徴、完全体、ステップ、動作、要素、および／または構成
要素の存在を明確に記述するが、１つ以上の他の特徴、完全体、ステップ、動作、要素、
構成要素、および／またはこれらの群の存在または追加を除外しないことがさらに理解さ
れるであろう。
【０００７】
本明細書で使用するとき、「〜である場合」という用語は、文脈に応じて、「〜のとき
」または「〜の際」または「決定に応答して」または「検出に応答して」を意味するよう
に解釈することができる。同様に、「それは決定される場合」または「［規定される条件
またはイベント］が検出される場合」表現は、文脈に応じて、「決定する際」または「決
定に応答して」または「［規定される条件またはイベント］の検出に際して」または「［
規定される条件またはイベント］の検出に応答して」を意味するように解釈することがで
きる。
【０００８】
分散システムにおける計算クラスタのスケーリングの種々の実施形態が、本明細書に説
明される。クラスタデータを記憶するため、およびクラスタデータへのアクセス要求を処
理するための複数のノードを有する計算クラスタのユーザは、異なるクラスタ構成が、計
算クラスタによって実施されるタスクにより好適であることを決定することができる。例
えば、計算クラスタのノードが、過度に負担がかかっているか、または未活用である場合
、異なる数のノードまたは異なる種類のノードが、計算クラスタの効率を増加させるため
追加または除去されてもよい。ユーザは、これらの変更を行い、適切で効率的な構成にコ
ンピュータクラスタをスケーリングすることを望み得る。典型的には、計算クラスタのス
ケーリングは、複雑なデータ転送、ネットワークの変更、および場合により、費用のかか
る機器購入を伴う場合がある。その代りに、幾つかの実施形態では、ユーザは、クラスタ
スケーリング要求をクラスタ制御インターフェースに送信することができ、該クラスタ制
御インターフェースは次に、要求された構成に従って計算クラスタのスケーリングを実行
することができる。少なくとも幾つかの実施形態では、計算クラスタは、下記に述べるよ
うに、分散計算システムにおいて計算クラスタをスケーリングするための種々のシステム
および技術を実装および実施することができる、ネットワークベースのクラスタホストサ
ービスによってホストされることができる。
【０００９】
概して、計算クラスタは、種々の計算タスクを達成するように１つ以上のノードをグル
ープ化して、一緒に作動させる、分散計算システムによって実現することができる。計算
ノード（「ノード」とも称される）は、図７に関して下に説明される計算システム１００
０等の計算装置上に実現することができる。単一のノードが単一の計算装置上に実現され
得るが、ノードは、そのように限定されない。例えば、複数のノードが、単一の計算装置
上の異なる論理（例えば、仮想の）マシン上に実現されてもよい。同様に、計算装置は、
例えば、その各々が計算ノードを実現するように構成されることができる複数のプロセッ
サ等の、異なるハードウェア構成を実現してもよい。
【００１０】
クラスタのノードは、種々のタスクを、個別に、例えば、一連でもしくは順番に、また
は一緒にもしくは同時に、例えば、平行して実施してもよい。これらの種々のタスクの実
施に加えて、ノードはまた、データ記憶装置へのアクセスを記憶するか、または有しても
よい。典型的には、各ノードは、例えば、ディスク等の特定の記憶装置の組のみにアクセ
スを有することによって、クラスタデータの特定の部分にのみアクセスすることができる
が、ただし、全てのクラスタがかかる構成に限定されるわけではない。私的ネットワーク
等の一般的な通信基盤は、しばしば、メッセージの交換を通して、クラスタのノード間で
の通信を促進することができる。メッセージおよび／または他の通信形式は、計算クラス
タのノード間でデータを共有するために使用されてもよい。計算クラスタの構成は、クラ
スタ内のノードの数またはノードの種類（例えば、ノードの計算能力、ノードの処理容量
、オペレーティングシステム等の特定のソフトウェアまたはハードウェア構成）を含むこ
とができる。計算クラスタ内の計算ノードは、当業者に周知であるため、上の考察は、限
定的であることを意図されないことに留意されたい。
【００１１】
幾つかの実施形態では、計算クラスタのためのクラスタ制御インターフェースが、提供
され、ユーザ、オペレータ、所有者、管理者、または計算クラスタを制御する許可を有す
る他の関係者が、例えば、計算クラスタ内のノードの数または種類を変化させることによ
って、計算クラスタをスケーリングすることを、または他のクラスタ制御動作を実施する
ことを可能にすることができる。クラスタ制御インターフェースは、ユーザからのクラス
タスケーリング要求を受信してもよい。クラスタスケーリング要求は、現在動作中のクラ
スタ内のノードの数または種類の変化を示してもよい。例えば、現行クラスタが２つのノ
ードを動作させる場合、クラスタスケーリング要求は、５つのノードを動作させるような
変化を示してもよい。クラスタスケーリング要求の受信に応答して、制御インターフェー
スは、要求メッセージに示される数および／または種類のノードを有する新しいクラスタ
を作成してもよい。クラスタ制御インターフェースは次に、スケーリングされている現行
クラスタ内に記憶されるクラスタデータのコピーを開始してもよい。コピー動作は、現行
クラスタ内のノードから新しいクラスタ内のノードへクラスタデータを直接送信すること
ができる新しいクラスタおよび現行クラスタによって、実施されてもよい。現行および新
しいクラスタ内のノードの各々は、クラスタデータを並行して送信および受信してもよい
。幾つかの実施形態では、コピーが実施されている間、現行クラスタは、現行クラスタか
らクラスタデータを読み取ろうとするアクセス要求に、継続して応答してもよい。しかし
ながら、少なくとも幾つかの実施形態では、現行クラスタは、クラスタ制御インターフェ
ースによって読み取り専用モードに置かれることができ、書き込みアクセス要求にエラー
で応答する。制御クラスタは次に、アクセス要求を受信するネットワークエンドポイント
を、現行クラスタから新しいクラスタへ移動させてもよい。少なくとも幾つかの実施形態
では、クラスタ制御インターフェースは次に、現行クラスタの動作を無効にするか、また
は終了してもよい。
【００１２】
少なくとも幾つかの実施形態では、図２および３に関して下に説明されるネットワーク
ベースのクラスタホストサービス等のネットワークベースのクラスタホストサービスは、
分散計算環境においてデータクラスタのスケーリングを実施してもよい。ネットワークベ
ースのクラスタホストサービスは、ユーザが、計算クラスタを作成、管理、修正、または
終了することを可能にしてもよい。これらの計算クラスタは、ネットワークベースのクラ
スタホストサービスによってホストされる論理／仮想マシン上で実現されるノード等の仮
想の計算ノードで構成されてもよい。ユーザは、ネットワークベースのクラスタホストサ
ービス上にホストされる計算クラスタを管理して、ユーザシステムまたは装置のための計
算サービスを提供することができる。
【００１３】
例えば、幾つかの実施形態では、ネットワークベースのクラスタホストサービスは、ク
ラウド計算環境においてデータウェアハウスを設置し、動作させ、およびスケーリングす
るために、ユーザ（例えば、加入者）にとってそれを迅速であり、容易であり、また費用
対効果が高いものにするウェブサービスを実施してもよい。ウェブサービスによってホス
トされる計算クラスタは、例えば、クラスタスケーリング要求をウェブサービスによって
実施されるクラスタ制御インターフェースに送信することによって、ユーザがクラスタを
スケーリングすることを可能にする、企業規模のデータベースクエリおよび管理システム
を提供してもよい。クラスタのスケーリングは、ウェブサービスのユーザが、例えば、構
造化データにわたる高速な照会性能、種々のデータローディングおよびＥＴＬ（抽出・変
換・挿入）ツールによる統合、ベスト・イン・クラス・ビジネスインテリジェンス（ＢＩ
）レポートによるクライアント接続、データマイニング、ならびに解析ツール、ならびに
複雑な解析クエリの超高速実行のための最適化、例えば、マルチテーブルジョイン、サブ
クエリ、および集成化を含むもの等の、そのデータウェアハウス機能をより効率的に実施
することを可能にしてもよい。
【００１４】
分散計算システムにおけるコンピュータクラスタのスケーリングの種々の実施形態が、
実現され得る。図１は、幾つかの実施形態による、分散計算システムにおける計算クラス
タのスケーリングのタイムラインを例証する。第１の段階１１０において、現行クラスタ
１１２は、現行クラスタ１１２のノード内に記憶されるクラスタデータ上で、アクセス要
求および他のタスク／動作を現在処理している３つのノードを有するように例証される。
クラスタスケーリングイベントが、検出される（例えば、特定の利用閾値を上回るまたは
下回る１つ以上のノード、クラスタスケーリング要求の受信等）。検出されたイベントに
基づいて、現行クラスタ１１２のノードの変更が決定される（例えば、リソースのみ活用
は、ノードの除去を示してもよく、クラスタスケーリング要求は、１つ以上の異なる種類
のノードへの変更を示してもよい）。１２０に例証される通り、新しいクラスタ１１４が
、作成される。新しいクラスタ１１４は、例えば、ノードの数を除去または追加する等、
決定された変化に従って作成されてよい。図４に例証される通り、決定された変化は、新
しいクラスタ１１４のノードを４つのノードに増加させることであった。
【００１５】
現行クラスタ１１２内に記憶されるクラスタデータは、１１６に示される通り、現行ク
ラスタ１１２から新しいクラスタ１１４へコピーされる。コピーを実施するための種々の
方法および技術は、図５〜６Ｃに関して下に述べられる。例えば、幾つかの実施形態では
、現行クラスタ１１２内のデータスライス等の記憶位置におけるクラスタデータは、旧お
よび新しいクラスタ内のノード間でのコピー作業負荷の均等な分散を確実にする割り当て
スキーマに従って割り当てられ、新しいクラスタ１１４のノードに送信される。コピー動
作が実施されている間、現行クラスタ１１２は、依然、読み取りアクセス要求を実施して
もよい。１３０に例証される通り、コピー動作の完了に際して、現行クラスタ１１２のネ
ットワークエンドポイントは、１１８に示される通り、新しいクラスタ１１４に移動され
る。ネットワークエンドポイントの移動は、ネットワークエンドポイントの移動の前およ
び後に送信されるアクセス要求が、ユーザの観点から見て、同一のネットワークアドレス
に送信されるというものである。次に、新しいクラスタ１１４は、１４０に例証される通
り、新しいクラスタ１１４内に記憶されるクラスタデータ上で読み取りおよび書き込みア
クセス要求を実施してもよい。幾つかの実施形態では、現行クラスタ１１２は、終了され
てもよい。
【００１６】
計算クラスタ動作環境
上に述べられる通り、計算クラスタは、複数のユーザからアクセスおよび他の要求を受
信してもよい。計算クラスタは、これらの要求に応答するか、またはメッセージもしくは
データを複数のユーザに送り出してもよい。図２は、幾つかの実施形態による、計算クラ
スタのための動作環境例を例証する。この例証では、ユーザ２１２、２２２、および２３
２等の１人以上のユーザは、例えば、広域ネットワーク（ＷＡＮ）２００（例えば、イン
ターネット）等を通じて、種々の異なる通信方法を使用してネットワークベースのクラス
タホストサービス３００によってホストされるクラスタ２１４、２２４、および２３４等
の１つ以上のクラスタと通信することができる。私的ネットワーク、イントラネット、お
よび他の通信ネットワークの形態もまた、ユーザと計算クラスタとの間の通信を促進する
ことができる。
【００１７】
ユーザ２１２、２２２、および２３２等のユーザは、クラスタ２１４、２２４、および
２３４等の１つ以上の計算クラスタに要求を送信し、および／またはクラスタ２１４、２
２４、および２３４等の１つ以上の計算クラスタから応答を受信するように構成される、
デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯
情報端末、携帯機器、サーバ、または任意の他の計算システムもしくは他の装置、例えば
、図７に関して下に説明されるコンピュータシステム１０００等を介して、クラスタと通
信してもよい。例えば、要求は、計算クラスタによってもたらされる特定の機能またはサ
ービスに関連付けられるパラメータおよび／またはデータを含むメッセージとして、フォ
ーマットされてもよい。かかるメッセージは、拡張マークアップ言語（ＸＭＬ）等の特定
のマークアップ言語に従ってフォーマットされてもよく、および／または、シンプルオブ
ジェクトアクセスプロトコル（ＳＯＡＰ）等のプロトコルを使用してカプセル化されても
よい。アプリケーションプログラマインターフェース（ＡＰＩ）が、例えば、ユーザがネ
ットワークベースのクラスタホストサービス３００と通信しているとき等に、ユーザに標
準化されたメッセージ形式を提供するように実施されてもよい。
【００１８】
ユーザは、要求を含むメッセージを組み立て、メッセージをネットワークエンドポイン
ト（例えば、クラスタに相当する統一資源位置指定子（ＵＲＬ）））に伝達してもよい。
例えば、ユーザ２１２は、例えば、ウェブ・クライアント等の、ＷＡＮ２００を通じてハ
イパーテキスト転送プロトコル（ＨＴＴＰ）要求をクラスタ２１４に送信するように構成
される、ローカルソフトウェアアプリケーションを実行するデスクトップコンピュータを
介して通信してもよい。応答またはユーザに送信される他のデータは、同様の方式でフォ
ーマットされてもよい。ユーザ２２２は、例えば、ＸＭＬを使用してフォーマットされる
ＷＡＮ２００を通じてクラスタ２３４からのプッシュデータメッセージを受信する携帯機
器を介して、通信してもよい。ユーザはまた、別のより大きいシステムの構成要素または
モジュールを介して通信してもよい。例えば、ウェブベースのソフトウェア・アズ・ア・
サービス（ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ）（ＳａａＳ）システムは、Ｗ
ＡＮ２００を通じて１つ以上のクラスタと通信するウェブベースのサービスを支持する構
成要素を有してもよい。
【００１９】
少なくとも幾つかの実施形態では、３００に示される通り、ネットワークベースのクラスタホストサービスは、クラスタ２１４、２２４、および２３４等のクラスタをホストしてもよい。ネットワークベースのクラスタホストサービスは、クラスタのユーザにネットワークエンドポイントを提供してもよく、これは、ユーザが、要求および他のメッセージを特定のクラスタに直接送信することを可能にする。上述の通り、ネットワークエンドポイントは、例えば、特定のクラスタを指すＵＲＬ等の特定のネットワークアドレスであってもよい。例えば、ユーザ２３２は、種々の要求メッセージを送信するために、ネットワークエンドポイント「ｈｔｔｐ：／／ｍｙｃｌｕｓｔｅｒ．ｃｏｍ」を付与されてもよい。複数のユーザが、特定のクラスタのネットワークエンドポイントを付与されてもよい。種々のセキュリティ特徴が、権限を有さないユーザがクラスタにアクセスするのを防止するために実施されてもよい。逆に、単一のユーザが、複数のクラスタのネットワークエンドポイントを付与されてもよい。
【００２０】
上に述べる通り、クラスタは、１つ以上のノードで構成されてもよい。図２に例証され
る通り、これらのクラスタは、例えば、クラスタ２１４に例証される３つのノード、クラ
スタ２２４に例証される５つのノード、およびクラスタ２３４に例証される２つのノード
等、異なる数のノードを含んでもよい。幾つかの実施形態では、ノードは、クラスタデー
タを記憶するための１つ以上のデータスライスを実装してもよい。これらのデータスライ
スは、図４に関して下に述べられるディスク記憶装置等、記憶装置の一部であってもよい
。クラスタは、ＷＡＮ２００を通じてユーザから要求および他の通信を受信するように構
成されてもよい。クラスタは、クラスタのネットワークエンドポイントを介して複数のユ
ーザから要求を受信するように構成されてもよい。この図には例証されていないが（さら
なる例に関しては、下の図６Ａおよび６Ｃを参照されたい）、クラスタ内のノードは、例
えば、クラスタスケーリング要求メッセージ等のクラスタスケーリングイベントの検出に
応答して、コピー動作を実施するとき等に、他のクラスタのノードと通信するように構成
されてもよい。
【００２１】
先に述べた通り、分散計算システムにおける計算クラスタのスケーリングの種々の実施
形態は、ネットワークベースのクラスタホストサービスによって実現されてもよい。図３
は、幾つかの実施形態による、ネットワークベースのクラスタホストサービス例を例証す
るブロック図である。ネットワークベースのクラスタホストサービス３００は、クラスタ
３１０、３２０、３３０、および３４０等、ネットワークベースのクラスタホストサービ
ス３００によってホストされる種々のクラスタと通信する、ネットワークベースのクラス
タホストサービスマネージャ３０２を含んでもよい。ユーザ３１２、３２２、および３３
２等のユーザは、ネットワークベースのクラスタホストサービスマネージャ３０２と通信
してもよく、またクラスタと直接通信してもよい。
【００２２】
ネットワークベースのクラスタホストサービス３００は、ユーザ（例えば、加入者）に
、ユーザからの要求に応答して作成、構成、管理、スケーリング、および終了されること
ができる、クラスタ計算リソースを提供してもよい。例えば、幾つかの実施形態では、ネ
ットワークベースのクラスタホストサービス３００は、サービスのユーザに、仮想の計算
ノードから成るクラスタを提供してもよい。これらの仮想の計算ノードは、ハードウェア
仮想マシン等の仮想のマシン、またはハードウェア構成をシミュレーションするように実
施されるソフトウェアの他の形態によって実現される、ノードであってもよい。仮想のノ
ードは、物理的ハードウェア上に実装されるノードと同一のタスク、機能、および／また
はサービスを実施するように構成されてもよい。
【００２３】
幾つかの実施形態では、ネットワークベースのクラスタホストサービス３００は、利用
単位または加入料金単位ベースで、クラスタホストサービスを提供してもよい。ユーザに
よって使用される種々のクラスタの履歴が、記憶され、利用料金を算出するために使用さ
れてよい。少なくとも幾つかの実施形態では、この利用履歴はまた、ユーザのために以前
使用されたクラスタを回復または再生させるために使用されることもできる。
【００２４】
ネットワークベースのクラスタホストサービス３００は、例えば、特注または既製の計
算システム、サーバ、または例えば、図７に関して下に説明される種々の種類の装置等の
計算システムもしくは装置の任意の他の組み合わせ等の、より大きい計算装置の集合体に
よって実現されてもよい。これらの計算装置の異なるサブセットが、異なるネットワーク
ベースのクラスタホストサービスマネージャ３０２によって制御されてもよい。ネットワ
ークベースのクラスタホストサービスマネージャ３０２は、例えば、ユーザ３１２、３２
２、および３３２等のユーザ、または、ネットワークベースのクラスタホストサービスマ
ネージャ３０２によって管理されるクラスタ、この例証例では、クラスタ３１０、３２０
、３３０、および３４０と相互に作用することを望む任意の他のユーザに、クラスタ制御
インターフェースを提供してもよい。例えば、ネットワークベースのクラスタホストサー
ビスマネージャ３０２は、ユーザがその後、クラスタベースのホストサービス３００上に
ホストされるクラスタのための制御インターフェースによってもたらされる種々の制御機
能を選択するために利用することができる、ユーザのための１つ以上のグラフィカルユー
ザインターフェース（ＧＵＩ）を発生させてもよい。
【００２５】
ネットワークベースのクラスタホストサービスマネージャ３０２は、幾つかの実施形態
では、図５に関して下に述べられる計算クラスタのスケーリングの方法を実施するように
構成されてもよい。したがって、幾つかの実施形態では、ネットワークベースのクラスタ
ホストサービスマンジャー３０２は、クラスタスケーリングイベントを検出してもよい。
ネットワークベースのクラスタホストサービス３０２は、イベント等を検出するために異
なるクラスタをポーリングまたは照会するように構成されてもよい。図３に例証されるリ
ーダーノード等のリーダーノードは、幾つかの実施形態では、ネットワークベースのクラ
スタホストサービス３００に対する性能データおよび／または他のメトリックを含む更新
された状態またはメッセージに応答するか、またはそれらを提供してもよい。同様に、ネ
ットワークベースのクラスタホストサービスマンジャー３０２が、現行クラスタのスケー
リングの一部としてクラスタデータのコピーを開始していた場合、ネットワークベースの
クラスタホストサービスマンジャー３０２は、現行クラスタかもしくは新しいクラスタか
のいずれか、またはその双方をポーリングして、コピー動作の状態を決定してもよい。幾
つかの実施形態では、ネットワークベースのクラスタホストサービスマネージャ３０２が
、コピー動作が完了されたことを検出すると、ネットワークベースのクラスタホストサー
ビスマンジャー３０２は、ネットワークエンドポイントを現行クラスタから新しいクラス
タへ移動させてもよい。
【００２６】
幾つかの実施形態では、ネットワークベースのクラスタホストサービス３００は、特定
の計算サービスを提供するクラスタをホストするように構成されてもよい。例えば、ネッ
トワークベースのクラスタホストサービス３００は、ユーザが、クラウド計算環境におい
てデータウェアハウスを設置し、動作させ、およびスケーリングすることを可能にするウ
ェブサービスの一部として実施されてもよい。ウェブサービスによってホストされる計算
クラスタは、例えば、クラスタスケーリング要求をウェブサービスによって実施されるク
ラスタ制御インターフェースに送信することによって、ユーザがクラスタをスケーリング
することを可能にする、企業規模のデータベースクエリおよび管理システムを提供しても
よい。クラスタのスケーリングは、ウェブサービスのユーザが、例えば、構造化データに
わたる高速照会性能、種々のデータローディングおよびＥＴＬ（抽出・変換・挿入）ツー
ルによる統合、ベスト・イン・クラス・ビジネスインテリジェンス（ＢＩ）レポートによ
るクライアント接続、データマイニング、ならびに解析ツール、ならびに複雑な解析クエ
リの超高速実行のための最適化、例えば、マルチテーブルジョイン、サブクエリ、および
集成化を含むもの等の、そのデータウェアハウス機能をより効率的に実施することを可能
にしてもよい。図４は、幾つかの実施形態による、データウェアハウジングクラスタの例
を例証するブロック図である。
【００２７】
データウェアハウジングクラスタ４００は、ウェブベースのデータウェアハウジングサ
ービスの一部として実施され、リーダーノード４２０、およびデータ計算ノード４３０、
４４０、および４５０等の複数のデータ計算ノードを含む。リーダーノード４２０は、ユ
ーザ３１２、３２２、および３３２等のユーザとの通信、ならびにデータウェアハウジン
グクラスタ４００内に記憶されるデータのためのデータベース動作を実行するように命令
される計算ノードとの全ての通信を管理してもよく、例えば、データベース動作（例えば
、複雑なクエリおよびジョインの結果を獲得するために必要な一連のステップ）を実行す
るための実行計画を解析および開発し、次に、コードまたは他の命令形式等で、データベ
ースの中間動作を実施するために必要なステップを実行するために、データ計算ノード４
３０、４４０、および４５０にステップを通信する。リーダーノード４２０は、データ計
算ノード４３０、４４０、および４５０から結果を受信してもよい。データベーススキー
マおよび／またはクラスタデータに関する他のメタデータ情報、例えば、クラスタ内に記
憶されるデータテーブルが、リーダーノード４２０によって管理および記憶されてもよい
。
【００２８】
データウェアハウジングクラスタ４００はまた、データ計算ノード４３０、４４０、お
よび４５０等のデータ計算ノードを含んでもよい。データ計算ノードは、リーダーノード
４２０からデータベース計算ノード４３０、４４０、および４５０に送信される命令に基
づいて、クエリ等のデータベース動作の処理を実施してもよい。命令は、例えば、それが
送信される特定のデータ計算ノードによって実行可能である、実行計画セグメントおよび
ステップからのコンパイル済みコードであってもよい。データ計算ノードは、最終集成の
ために、クエリからリーダーノードに中間結果を送信して戻してもよい。各データ計算ノ
ードは、図４に例証されるような特定のメモリにアクセスするように構成されてもよい。
データ計算ノード４３０は、例えば、ディスク４３１、４３２〜ディスク４３８にアクセ
スしてもよい。
【００２９】
図４に例証されるディスク等のディスクは、データ計算ノードにアクセス可能なクラス
タデータを記憶するのに好適な任意の種類の記憶装置および／または記憶システムのうち
の１つ以上として、実現されてよくされてよく、例えば、レイド（ＲＡＩＤ）装置、ディ
スクドライブ、もしくは単純ディスク束（ＪＢＯＤ）（ＲＡＩＤに従っては構成されない
ディスクを指すために使用される）等のディスクドライブの配列、光記憶装置、テープド
ライブ、ＲＡＭディスク、ストレージエリアネットワーク（ＳＡＮ）、ネットワークアク
セスストレージ（ＮＡＳ）、またはこれらの組み合わせが挙げられるが、これらに限定さ
れない。異なるデータ記憶スキーマが、記憶装置上にデータウェアハウスサービスによっ
て実施されてよく、例えば、列指向型、行指向型、または相関スキーム等である。
【００３０】
リーダーノード４２０ならびに種々のデータ計算ノード、４３０、４４０、および４５
０は、相互接続４６０を介して通信してもよい。相互接続４６０は、種々の異なるメッセ
ージングまたはデータ形式およびプロトコル（例えば、カスタムＵＤＰプロトコル）を使
用して、異なる種類のネットワーク（例えば、私的ネットワーク）等の、上に述べられる
ものと同様の通信機構を提供してもよい。
【００３１】
図４は、データウェアハウジングクラスタの文脈において説明および例証されているが
、図４に例証および説明される種々の構成要素は、特定の機能を実施することに専念する
か、またはより一般的および／もしくは多様な計算サービスを提供するかに関わらず、他
の計算クラスタに容易に適用することができる。したがって、図４は、データウェアハウ
スクラスタに限定されることを意図せず、またデータウェアハウスクラスタの説明を限定
するものでもない。同様に、図２および３は、動作環境計算クラスタ、および分散システ
ムにおける計算クラスタのスケーリングを実施するネットワークベースのクラスタホスト
サービスの例として、例証の目的のために提供される。かかるシステムの多数の異なる代
替的な構成もまた、想定され、したがって、図２および３は、分散システムにおける計算
クラスタのスケーリングの他の可能な構成または実現に関して限定的であることを意図さ
れない。
【００３２】
計算クラスタのスケーリングのワークフロー
上に述べられた通り、計算クラスタは、種々の計算タスクおよびサービス、例えば、デ
ータウェアハウジング等を実施するように構成することができる１つ以上の計算ノードを
含むことができる。これらのタスクおよびサービスをより効率的に実施するために、計算
クラスタは、計算リソースを効率的に配分するようにスケーリングされてもよい。図５は
、幾つかの実施形態による、計算クラスタをスケーリングする方法を例証する高レベル流
れ図である。種々の異なるシステムおよび装置は、下に説明される種々の方法および技術
を実装してもよい。例えば、図３に関して上に説明されるネットワークベースのクラスタ
ホストサービスマネージャ３０２等の、クラスタ制御インターフェースは、説明される方
法を実現してもよい。別法として、異なるシステムおよび装置の組み合わせ、例えば、ネ
ットワークベースのクラスタホストサービスマネージャ３０２等の制御インターフェース
と組み合わせて作動する、図３および４に例証されるリーダーノードも、同様に下の方法
および技術を実施してもよい。したがって、上の例および、例証される方法の実施として
参照される任意の他のシステムまたは装置は、システムおよび装置の他の異なる個体また
は構成に関して限定的であることを意図されない。
【００３３】
幾つかの実施形態では、図１〜４に関して上に述べられるクラスタのうちの１つ等、複
数のノードを含む現行クラスタは、現行クラスタのネットワークエンドポイントで、動作
し、データ記憶内にクラスタデータを記憶し、受信されるアクセス要求に応答していても
よい。クラスタスケーリングイベントは次に、５００に示される通り、現行クラスタに関
して検出されてもよい。クラスタスケーリングイベントとしては、限定されないが、性能
メトリックもしくはデータの変更（例えば、増加した数の要求、増加した量のノード利用
等）によってトリガされるイベント、クラスタスケーリング要求（例えば、クラスタ制御
インターフェースにおいて受信されるクラスタスケーリング要求等）、または、任意の他
のユーザ定義パラメータもしくはトリガを挙げることができる。例えば、ユーザは、超過
したときにクラスタスケーリングイベントをトリガするような、現行クラスタのための種
々の利用閾値を定義することができる。クラスタ利用がユーザの定義した閾値を下回って
いることを、利用メトリックが示す場合、クラスタスケーリングイベントが検出されるこ
とができる。種々の異なるトリガが、複数の異なる関係者によって定義されてもよい。例
えば、ネットワークベースのクラスタホストサービスマネージャも、利用閾値を定義して
、閾値を超過したときに、異なる種類のノード間で切り替えることができる。幾つかの実
施形態では、クラスタスケーリングイベントの検出に従って作動する前に、ユーザ確認が
要求されてもよい。
【００３４】
クラスタスケーリングイベントの検出に際して、幾つかの実施形態では、５１０に示す
通り、現行クラスタのノードの変更が、クラスタスケーリングイベントに基づいて決定さ
れてもよい。引き続き上の例では、クラスタスケーリングイベントのためのトリガを定義
したユーザはまた、現行クラスタのための変更も定義している場合がある、例えば、クラ
スタ利用が定義された閾値を下回っていることを利用メトリックが示す場合、現行クラス
タ内のノードの数を１ずつ下げる等である。定義され得る多数の異なるトリガイベントと
同様に、現行クラスタ内のノードのための多数の異なる変更を定義することができ、現行
クラスタ内のノードの数もしくはノードの種類、またはその双方を変更させる。
【００３５】
少なくとも幾つかの実施形態では、クラスタスケーリングイベントは、現行クラスタと
数または種類において異なる複数のノードを示すクラスタスケーリング要求を受信するこ
とであってよく、現行クラスタのノードの変更の決定は、クラスタスケーリング要求内に
示されるノードであってもよい。
【００３６】
クラスタスケーリングイベントの検出に応答して、５３０に示される通り、決定された
変更によって示されるノード（例えば、数および／または種類）を含む新しいクラスタが
、作成されてもよい。幾つかの実施形態では、ノードの新しいクラスタは、仮想の計算ノ
ードを初期化することによって作成されてもよい。別法として、別の例では、ノードの新
しいクラスタは、計算装置を併せてネットワーク化して、新しいクラスタを作成すること
によって、作成されてもよい。
【００３７】
少なくとも幾つかの実施形態では、クラスタスケーリングイベントの検出に応答して、
現行クラスタは、読み取り専用モードで動作するように設定または指図されてもよい。読
み取り専用モードでは、クラスタデータ上での書き込み動作を含むアクセス要求は、無視
されるか、またはエラーコードもしくはメッセージと共に返されてもよい。
【００３８】
現行クラスタから新しいクラスタ内のノードへのクラスタデータのコピーは、５３０に
示される通り、開始されてもよい。クラスタ制御インターフェース、例えば、図３に関し
て上に述べられるネットワークベースのクラスタホストサービスマネージャ３０２は、新
しいクラスタのノードのうちの１つ、例えば、リーダーノードに、コピー動作の実施を開
始して、現行クラスタからデータ組を取得するように指図することによって、クラスタデ
ータのコピーを開始してもよい。リーダーノードは、例えば、コピーするべきデータのリ
ストを作り、現行クラスタのノードからデータを取得するために、新しいクラスタ内のノ
ードへの命令を発生させ、現行クラスタ内のノードから新しいクラスタへデータを送信す
るために、現行クラスタ内のノードへ命令を発生させてもよい。別法として、現行クラス
タ上のリーダーノードまたは別のノードが、コピー動作を発生させるように指図されても
よい。これらのコピー動作は、現行クラスタのノードおよび新しいクラスタのノードによ
って並行して実施されてもよい。クラスタデータはそれ自身、例えば、図３および４に関
して上に述べられるもの等の種々の異なる通信技術、媒体、および形式を使用して、例え
ば、ストリーミングメッセージまたは他のストリーミング形式で、現行クラスタのノード
から新しいクラスタ内のノードへ送信されてもよい。それに加えて、コピーが実施される
間、現行クラスタは、依然、読み取りアクセス要求に応答してもよい。
【００３９】
クラスタデータの転送の進行に関する状態データは、リーダーノードのうちの一方また
は双方、およびクラスタ制御インターフェースまたはコピー動作を開始した他の構成要素
上に保存されてもよい。この状態データは、コピーされるクラスタデータの現在の位置お
よび状態を含んでもよい（例えば、既に転送されたデータの量）。通信エラー、ノード故
障、または他のコピー動作の中断の場合において、状態データは、中断付近の時点でコピ
ー動作を再開または再始動するために使用することができる。
【００４０】
幾つかの実施形態では、上に述べられる通り、各ノードは、クラスタデータを記憶する
ための１つ以上のデータスライスを有するか、またはそれへのアクセスを有してもよい。
コピー動作は、割り当てスキーマに従って、現行クラスタのノード内の各データスライス
から新しいクラスタのノード内の１つ以上のデータスライスへクラスタデータを送信して
もよい。この割り当てスキーマは、旧および新しいクラスタ内のノード間での、コピー作
業負荷の均衡された、または均等に近い分散を確実にすることができる。幾つかの実施形
態では、この割り当てスキーマは、データスライスの無作為および／または均一な割り当
てを提供することができるハッシュ機能技術に基づいて実現されてもよい。例えば、デー
タスライスからのデータの割り当てを決定するために、ハッシュ機能は、データスライス
内のデータのテーブル名および現在のスライス位置の数を入力として取得してもよく、ま
た、新しいクラスタ内のデータスライスの数によって出力を修正する。割り当てスキーマ
の別の例では、ノードは、ラウンドロビン技術によって、新しいクラスタ内の計算ノード
にわたって割り当てられてもよい。現行クラスタから新しいクラスタへのデータスライス
の割り当てを実施することによって、クラスタデータの送信の作業負荷は、現行および新
しいクラスタのノードにわたって、均等に、または均等に近く分散することができる。
【００４１】
図６Ａ〜６Ｃは、幾つかの実施形態による、現行クラスタと新しいクラスタとの間の、
割り当てられたデータスライスコピー位置を例証するブロック図である。図６Ａでは、例
えば、現行クラスタ６００は、２つのノード、６０２および６０４を有し、各々は、４つ
のデータスライスを含有する。上述の要素５１０にて決定されるもの等の現行クラスタの
ノード内の変更は、３つのノード、６１２、６１４、および６１６を含む新しいクラスタ
６１０を作成した。６０２および６０４のデータスライスからのデータは、例えば、ハッ
シュ技術を使用して、割り当てスキームに従って新しいクラスタ６１０内のデータスライ
スに割り当てられる。例えば、ノード６０２内のスライス１は、ノード６１２内のスライ
ス１に割り当てられる。６０２内のスライス２は、ノード６１４内のスライス１に割り当
てられる。ノード６０２内のスライス３は、ノード６１２内のスライス３に割り当てられ
、ノード６０２内のスライス４は、ノード６１２内のスライス４に割り当てられる。ノー
ド６０４内のスライスは、同様に、ノード６１４および６１６内のスライスに割り当てら
れる。したがって、ノード６０２、６０４、６１２、６１４、および６１６がコピー動作
を実施しているとき、作業負荷は、ノード間で均衡されることができる。均衡された作業
負荷は次に、ノードがコピー動作を並行して実施するときに、より高いコピー効率を提供
することができる。
【００４２】
示されてはいないが、データスライス、例えば、ノード６０３内のスライス１等からの
データは、最終的に、複数のノード上、例えば、ノード６１２、ノード６１４、およびノ
ード６１６上の複数のデータスライス上に記憶されてもよい。例えば、一度ノードにコピ
ーされたクラスタデータは、分散スキームに従って（例えば、データテーブル内の主キー
または他の種類のキー上でハッシュ技術を実施することによって）、新しいクラスタ内の
ノードにわたって分散されてもよい。別法として、割り当てスキーマはそれ自身、下にさ
らに詳細に述べられる分散スキーム等の、新しいクラスタ上で実装されるための分散スキ
ームを構成してもよく、したがって、コピー動作を実施するノード間で作業負荷を均衡さ
せることに加えて、クラスタデータを分散された位置に送信するデータスライス割り当て
を提供してもよい。
【００４３】
図６Ｂは、類似の例を提供するが、ただし、上述の要素５１０にて決定されるもの等の
現行クラスタのノード内の変化が、１つ少ないノード、６３２および６３４を含む新しい
クラスタ６２０を作成したことを除く。上に述べられる例証例の通り、ノード６２２、６
２４、および６２６内のデータスライスは、ノード６３２および６３４内のスライスに割
り当てられる。しかしながら、場合により、２つのスライスが、現行クラスタ６２０から
新しいクラスタ６３０内の単一のスライスに割り当てられる場合があることに留意された
い。上に述べる通り、割り当てスキーマは、新しいクラスタのノードのためのクラスタデ
ータの分散スキームを構成してもよく、またしたがって、例えば、ノード６３２内のスラ
イス４に割り当てられる２つのスライスは、クラスタデータのための分散スキームを構成
するように割り当てられてもよい。別法として、クラスタデータはその後、クラスタデー
タのための分散スキームに従って、ノード６３２および６３４にわたって分散されてもよ
い。
【００４４】
図６Ｃは、別の例を提供するが、しかし、上述の要素５１０にて決定されるもの等の現
行クラスタのノードの変化は、現行クラスタ６４０と同じ数、３つのノードを含む新しい
クラスタ６５０を作成した。しかしながら、これらのノードは、異なる種類のもの、この
場合、異なる記憶容量のものである。上に述べられる例証例の通り、ノード６４２、６４
４、および６４６内のデータスライスは、ノード６５２、６５４、および６５６内のスラ
イスに割り当てられる。ここでも、２つのスライスが、現行ノード６４０から新しいノー
ド６５０内の単一のスライスに割り当てられる場合があることに留意されたい。
【００４５】
上に述べられた通り、幾つかの実施形態では、クラスタデータは、分散スキームに従っ
て、現行クラスタ内のノードのデータスライス内に分散されてもよい。例えば、分散スキ
ームは、データテーブル内の主キーに従って、クラスタデータをデータスライスにわたっ
て分散してもよい。別法として、分散スキームは、均等分散スキームに従って、データを
データスライスにわたって均等に分散してもよい。少なくとも幾つかの実施形態では、別
の分散スキームは、クラスタ内の他のノード間にデータをさらに分散することなく、単一
のノード上にデータを単純に記憶してもよい。クラスタデータが、新しいノード内のデー
タスライスにおいて受信されている間、またはクラスタデータの全てが、新しいノード内
のデータスライスにおいて受信された後、新しいクラスタは、分散スキームに従って、ノ
ード上のデータスライス内にデータを分散してもよい。少なくとも幾つかの実施形態では
、新しいクラスタのノードのデータスライス上のクラスタデータは、現行クラスタ上にク
ラスタデータを分散するために使用されるスキームとは異なる分散スキームに基づいて、
分散されてもよい。例えば、現行クラスタ上のクラスタデータは、単一のノード上にデー
タを記憶する分散スキームを使用して記憶されてもよい、クラスタデータのコピー動作が
完了したときに、新しいクラスタは、均等分散スキームに従ってクラスタデータを分散し
てもよい。
【００４６】
幾つかの実施形態では、現行クラスタは、現在のデータクラスタ上に記憶されるクラス
タデータに加えて、一組の複製クラスタデータを含有してもよい。この複製クラスタデー
タは、現行クラスタのクラスタデータと併せて、新しいクラスタのノードに送信されても
よい。しかしながら、少なくとも幾つかの実施形態では、クラスタデータのコピーは、新
しいクラスタのノードに複製クラスタデータを送信することなく実施される。コピー動作
の完了に応答して、新しいクラスタは、新しいクラスタ内のノードにわたって、受信した
クラスタデータを複製してもよい。
【００４７】
幾つかの実施形態では、ネットワークエンドポイントは、５４０に示される通り、現行
クラスタから新しいクラスタへ移動されてもよい。ユーザの観点から見ると、ネットワー
クエンドポイントのネットワークアドレスは、エンドポイントが移動される前および後で
同じままである。ネットワークエンドポイントは、ドメイン名システム（ＤＮＳ）情報を
修正することによって、例えば、新しいクラスタ用の異なるインターネットプロトコル（
ＩＰ）アドレスを指すように正規名（ＣＮＡＭＥ）を修正することによって、移動されて
もよい。
【００４８】
幾つかの実施形態では、現行クラスタは、５５０にて示される通り、終了されてもよい
。少なくとも幾つかの実施形態では、この終了は、５３０にて示されるようなコピー動作
の完了、および５４０に示されるようなエンドポイントの移動の完了に応答して、実施さ
れてもよい。
【００４９】
システム例
本明細書に説明されるような分散システムにおける計算クラスタのスケーリングの実施
形態は、種々の他の装置とやりとりすることができる１つ以上のコンピュータシステム上
で実施されてもよい。１つのかかるコンピュータシステムは、図７によって例証される。
異なる実施形態では、コンピュータシステム１０００は、種々の種類の装置のいずれかで
あってよく、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトッ
プ、ノートブック、もしくはネットブックコンピュータ、メインフレームコンピュータシ
ステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、
カメラ、セットトップボックス、携帯機器、消費者装置、ビデオゲーム機、ハンドヘルド
ビデオゲーム装置、アプリケーションサーバ、記憶装置、周辺機器、例えば、スイッチ、
モデム、ルータ等、または一般的な任意の種類の計算または電子装置が挙げられるが、こ
れらに限定されない。
【００５０】
例証される実施形態では、コンピュータシステム１０００は、入力／出力（Ｉ／Ｏ）イ
ンターフェース１０３０を介してシステムメモリ１０２０に連結される１つ以上のプロセ
ッサ１０１０を含む。コンピュータシステム１０００は、Ｉ／Ｏインターフェース１０３
０に連結されるネットワークインターフェース１０４０と、カーソル制御装置１０６０、
キーボード１０７０、およびディスプレイ（複数可）１０８０等の１つ以上の入力／出力
装置１０５０とをさらに含む。ディスプレイ（複数可）１０８０は、標準コンピュータモ
ニタ（複数可）および／または他のディスプレイシステム、技術、もしくは装置を含んで
もよい。少なくとも幾つかの実現形態では、入力／出力装置１０５０はまた、それを介し
て、ユーザが、スタイラスペン式機器および／または１本以上の指を介して入力を入力す
る、パッドまたはタブレット等のタッチまたはマルチタッチ式装置を含んでもよい。幾つ
かの実施形態では、実施形態は、単一のコンピュータシステム１０００例を使用して実現
されてもよく、一方、他の実施形態では、複数のかかるシステム、またはコンピュータシ
ステム１０００を成す複数のノードが、実施形態の異なる部分または過程をホストするよ
うに構成されてもよいことが企図される。例えば、一実施形態では、幾つかの要素は、他
の要素を実現するノードとは異なるコンピュータシステム１０００の１つ以上のノードを
介して実装されてもよい。
【００５１】
種々の実施形態では、コンピュータシステム１０００は、１つのプロセッサ１０１０を
含む単一プロセッサシステムであってもよく、または複数（例えば、２、４、８、または
別の任意の好適な数）のプロセッサ１０１０を含む多重プロセッサシステムであってもよ
い。プロセッサ１０１０は、命令を実行することが可能な任意の好適なプロセッサであっ
てよい。例えば、種々の実施形態では、プロセッサ１０１０は、ｘ８６、ＰｏｗｅｒＰＣ
、ＳＰＡＲＣ、もしくはＭＩＰＳ  ＩＳＡ、または任意の他の好適なＩＳＡ等の種々のイ
ンストラクション・セット・アーキテクチャ（ＩＳＡ）のいずれかを実現する汎用または
内蔵プロセッサであってもよい。多重プロセッサシステムにおいては、プロセッサ１０１
０の各々は、必ずしもではないが、一般的には同一のＩＳＡを実現する。
【００５２】
幾つかの実施形態では、少なくとも１つのプロセッサ１０１０は、グラフィックス・プ
ロセッシング・ユニットであってもよい。グラフィックス・プロセッシング・ユニットま
たはＧＰＵは、パーソナルコンピュータ、ワークステーション、ゲーム機、または他の計
算もしくは電子装置のための専用のグラフィック描画装置と考えることができる。現代の
ＧＰＵは、コンピュータグラフィックスの操作および表示において非常に効率的であり得
、その高度に並行の構造は、幅広い複雑なグラフィカルアルゴリズムに関して、それらを
典型的なＣＰＵよりも効果的にすることができる。例えば、グラフィックプロセッサは、
多数のグラフィックプリミティブ動作を、ホスト中央処理装置（ＣＰＵ）を用いてスクリ
ーンに直接描画するよりも、それらの実行を遥かに高速にする方法で、実施することがで
きる。種々の実施形態では、グラフィック描画は、少なくとも部分的に、かかるＧＰＵの
うちの１つにおける実行、またはかかるＧＰＵのうちの２つ以上における並列実行のため
に構成されるプログラム命令によって、実現されてもよい。ＧＰＵ（複数可）は、プログ
ラマがＧＰＵ（複数可）の機能性を呼び出すことを許可する１つ以上のアプリケーション
プログラマインターフェース（ＡＰＩ）を実装してもよい。好適なＧＰＵは、ＮＶＩＤＩ
Ａ  Ｃｏｒｐｏｒａｔｉｏｎ，ＡＴＩ  Ｔｅｃｈｎｏｌｏｇｉｅｓ（ＡＭＤ）およびその
他等の販売者から市販されることができる。
【００５３】
システムメモリ１０２０は、プロセッサ１０１０によってアクセス可能なプログラム命
令および／またはデータを記憶するように構成されてもよい。種々の実施形態では、シス
テムメモリ１０２０は、静的ランダムアクセスメモリ（ＳＲＡＭ）、同期式動的ＲＡＭ（
ＳＤＲＡＭ）、不揮発性／フラッシュ型メモリ、または任意の他の種類のメモリ等の、任
意の好適なメモリ技術を使用して実現されてもよい。例証される実施形態では、所望の機
能、例えば、本明細書に説明される分散システムにおける計算クラスタのスケーリングの
ための上述のもの等を実現するプログラム命令およびデータは、それぞれ、プログラム命
令１０２５およびデータ記憶１０３５としてシステムメモリ１０２０内に記憶されるよう
に示される。他の実施形態では、プログラム命令および／またはデータは、システムメモ
リ１０２０またはコンピュータシステム１０００とは分離した異なる種類のコンピュータ
アクセス可能媒体または類似の媒体上に受信、送信、または記憶されてもよい。一般的に
述べると、コンピュータアクセス可能媒体は、記憶媒体またはメモリ媒体、例えば、磁気
または光媒体、例えば、Ｉ／Ｏインターフェース１０３０を介してコンピュータシステム
１０００に連結されるディスクまたはＣＤ／ＤＶＤ−ＲＯＭ等を含んでもよい。コンピュ
ータアクセス可能媒体を介して記憶されるプログラム命令およびデータは、ネットワーク
インターフェース１０４０を介して実現され得るネットワークおよび／または無線リンク
等の通信媒体を介して伝達され得る、電気信号、電磁信号、またはデジタル信号等の伝送
媒体または信号によって伝送されてもよい。
【００５４】
一実施形態では、Ｉ／Ｏインターフェース１０３０は、プロセッサ１０１０と、システ
ムメモリ１０２０と、ネットワークインターフェース１０４０、または入力／出力装置１
０５０等の他の周辺インターフェースを含む装置内の任意の周辺機器との間のＩ／Ｏ通信
量を調整するように構成されてもよい。幾つかの実施形態では、Ｉ／Ｏインターフェース
１０３０は、ある構成要素（例えば、システムメモリ１０２０）からのデータ信号を別の
構成要素（例えば、プロセッサ１０１０）による使用に好適な形式に変換するための、任
意の必要なプロトコル、適時選択、または他のデータ変換を実施してもよい。幾つかの実
施形態では、Ｉ／Ｏインターフェース１０３０は、種々の種類の周辺バス、例えば、周辺
構成要素相互接続（ＰＣＩ）バス標準またはユニバーサルシリアルバス（ＵＳＢ）標準等
の変形を通じて取り付けられる装置のための支持を含んでもよい。幾つかの実施形態では
、Ｉ／Ｏインターフェース１０３０の機能は、２つ以上の分離した構成要素、例えば、ノ
ースブリッジおよびサウスブリッジ等に分割されてもよい。それに加えて、幾つかの実施
形態では、システムメモリ１０２０に対するインターフェース等の、Ｉ／Ｏインターフェ
ース１０３０の機能性のうちの幾つかまたは全ては、プロセッサ１０１０内に直接組み込
まれてもよい。
【００５５】
ネットワークインターフェース１０４０は、コンピュータシステム１０００とネットワ
ークに取り付けられた他の装置、例えば、他のコンピュータシステムとの間、またはコン
ピュータシステム１０００のノード間で、データが交換されることを可能にするように構
成されてもよい。種々の実施形態では、ネットワークインターフェース１０４０は、例え
ば、任意の好適な種類のイーサネット（登録商標）ネットワーク等の有線または無線の一
般データネットワークを介して、例えば、アナログ音声ネットワークもしくはデジタルフ
ァイバー通信ネットワーク等の電気通信／電話技術ネットワークを介して、ファイバーチ
ャンネルＳＡＮ等のストレージエリアネットワークを介して、または任意の他の好適な種
類のネットワークおよび／もしくはプロトコルを介して、通信を支持してもよい。
【００５６】
入力／出力装置１０５０は、幾つかの実施形態では、１つ以上のディスプレイ端末、キ
ーボード、キーパッド、タッチパッド、スキャン装置、音声もしくは光学認識装置、また
は、１つ以上のコンピュータシステム１０００によってデータを入力もしくは取得するの
に好適な任意の他の装置を含んでもよい。複数の入力／出力装置１０５０が、コンピュー
タシステム１０００内に存在してもよく、またはコンピュータシステム１０００の種々の
ノード上に分散されてもよい。幾つかの実施形態では、類似の入力／出力装置は、コンピ
ュータシステム１０００から分離していてもよく、また例えば、ネットワークインターフ
ェース１０４０上で、有線または無線接続を通じてコンピュータシステム１０００の１つ
以上のノードと相互に作用してもよい。
【００５７】
図７に示される通り、メモリ１０２０は、本明細書に説明される通り、予定された送達
順序のための時間ベースの項目推奨を提供するように構成されるプログラム命令１０２５
と、プログラム命令１０２５によってアクセス可能な種々のデータを含むデータ記憶１０
３５とを含んでもよい。一実施形態では、プログラム命令１０２５は、本明細書に説明さ
れる、および図に示される実施形態のソフトウェア要素を含んでもよい。データ記憶１０
３５は、実施形態にて使用することができるデータを含んでもよい。他の実施形態では、
他のまたは異なるソフトウェア要素およびデータが、含まれてもよい。
【００５８】
当業者であれば、コンピュータシステム１０００は、単に例証的であり、本明細書に説
明される立体図技術の範囲を限定することを意図されないことを理解するであろう。具体
的には、コンピュータシステムおよび装置は、コンピュータ、パーソナルコンピュータシ
ステム、デスクトップコンピュータ、ラップトップ、ノートブック、もしくはネットブッ
クコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワ
ークステーション、ネットワークコンピュータ、カメラ、セットトップボックス、携帯機
器、ネットワーク機器、インターネット家電、ＰＤＡ、無線電話、ページャー、消費者装
置、ビデオゲーム機、ハンドヘルドビデオゲーム装置、アプリケーションサーバ、記憶装
置、例えば、スイッチ、モデム、ルータ等の周辺機器、または一般的な任意の種類の計算
もしくは電子装置を含む、指示される機能を実施することが可能なハードウェアまたはソ
フトウェアの任意の組み合わせを含んでもよい。コンピュータシステム１０００はまた、
例証されていない他の装置に接続されてもよく、または代わりに、独立型システムとして
動作してもよい。それに加えて、例証される構成要素によって提供される機能は、幾つか
の実施形態では、より少ない構成要素に組み合わされてもよく、または追加の構成要素内
に分散されてもよい。同様に、幾つかの実施形態では、例証される構成要素のうちの幾つ
かのものの機能性は、提供されなくてもよく、および／または追加の機能性が利用可能で
あってもよい。
【００５９】
また、当業者であれば、種々の項目は、使用中、メモリ内または記憶上に記憶されるよ
うに示されるが、そのこれらの項目または部分は、メモリ管理およびデータの整合性の目
的のために、メモリと他の記憶装置との間で転送されてもよいことも理解するであろう。
別法として、他の実施形態では、ソフトウェア構成要素のうちの幾つかまたは全ては、別
の装置上のメモリ内で実行し、コンピュータ間の通信を介して、例証されるコンピュータ
システムと通信してもよい。また、システム構成要素またはデータ構造のうちの幾つかま
たは全ては、コンピュータアクセス可能媒体、または適切なドライブによって読み取られ
る携帯用文書上に、（例えば、命令または構造化データとして）記憶されてもよく、その
種々の例は、上に説明される。幾つかの実施形態では、コンピュータシステム１０００と
分離したコンピュータアクセス可能媒体上に記憶される命令は、伝送媒体、またはネット
ワークおよび／もしくは無線リンク等の通信媒体を介して伝達される電気信号、電磁信号
、もしくはデジタル信号等の信号を介して、コンピュータシステム１０００に伝送されて
もよい。種々の実施形態は、コンピュータアクセス可能媒体上で、前述の説明に従って実
現される命令および／またはデータを受信、送信、または記憶することをさらに含んでも
よい。したがって、本発明は、他のコンピュータシステム構成を用いて実践されてもよい
。
【００６０】
結論
前述の種々の実施形態は、以下の付記を考慮すれば、より良く理解することができる。
【００６１】
１．クラスタデータを記憶する複数のノードを有する現行クラスタであって、該現行ク
ラスタのネットワークエンドポイントで、クラスタデータへのアクセス要求を受信する、
現行クラスタと、現行クラスタへのクラスタスケーリング要求であって、現行クラスタ内
のノードの数または種類の変化を示す、クラスタスケーリング要求を受信することと、ク
ラスタスケーリング要求に応答して、クラスタスケーリング要求に示される通り、複数の
ノードを有する新しいクラスタを作成することと、現行クラスタから新しいクラスタ内の
複数のノードへのクラスタデータのコピーを開始することであって、該コピーが実施され
ている間、現行クラスタは、クラスタデータへの読み取り要求に継続して応答する、開始
することと、現行クラスタのネットワークエンドポイントを、新しいクラスタに移動させ
ることと、現行クラスタを無効にすることと、を行うように構成される、クラスタ制御イ
ンターフェースと、を実現するように構成される、複数の計算装置を備える、システム。
【００６２】
２．クラスタスケーリング要求の受信に応答して、クラスタ制御インターフェースは、
現行クラスタを読み取り専用モードで動作するように設定するようにさらに構成される、
付記１に記載のシステム。
【００６３】
３．現行クラスタの各ノードは、クラスタデータの１つ以上のデータスライスを記憶し
、クラスタデータから新しいクラスタ内の複数のノードへのコピーは、現行クラスタのノ
ード内の各データスライスに関して、データスライスを、割り当てスキームに従って、新
しいクラスタ内の複数のノード内の１つ以上のデータスライスに割り当てることと、クラ
スタデータを、現行クラスタのノード内の各データスライスから、新しいクラスタ内の複
数のノード内の割り当てられた１つ以上のデータスライスに転送することと、を含む、付
記１に記載のシステム。
【００６４】
４．複数の計算装置は、ネットワークベースのクラスタホストサービスを実現するより
大きい計算装置の集合体の一部であり、現行ノードクラスタのノードおよび新しいクラス
タ内の複数のノードの各々は、ネットワークベースのクラスタホストサービスによってホ
ストされる仮想計算ノードである、付記１に記載のシステム。
【００６５】
５．複数の計算装置によって、クラスタデータを記憶する複数のノードを有する現行ク
ラスタであって、該現行クラスタのネットワークエンドポイントで、クラスタデータへの
アクセス要求を受信する、現行クラスタへのクラスタスケーリングイベントを検出するこ
とと、クラスタスケーリングイベントに基づいて、現行クラスタのノードの変更を決定す
ることと、変更によって示される通り、複数のノードを有する新しいクラスタを作成する
ことと、現行クラスタから新しいクラスタ内の複数のノードへのクラスタデータのコピー
を開始することであって、該コピーが実施されている間、現行クラスタは、クラスタデー
タへの読み取り要求に継続して応答する、開始することと、現行クラスタのネットワーク
エンドポイントを、新しいクラスタに移動させることと、を実施することを含む、方法。
【００６６】
６．変更は、現行クラスタ内のノードの異なる数または種類へのものである、付記５に
記載の方法。
【００６７】
７．ノードの種類の変更は、ノードの異なる記憶容量またはノードの異なる計算能力で
ある、付記６に記載の方法。
【００６８】
８．複数の計算装置は、ネットワークベースのクラスタホストサービスを実現するより
大きい計算装置の集合体の一部であり、計算装置の集合体のうちの少なくとも１つ以上は
、ネットワークベースのクラスタホストサービスのためのクラスタ制御インターフェース
を実現し、該方法は、少なくとも１つ以上の計算装置上のネットワークベースのクラスタ
ホストサービスのためのクラスタ制御インターフェースによって、ラスタデータを記憶す
る複数のノードを有する現行クラスタへのクラスタスケーリングイベントの検出が、現行
クラスタへのクラスタスケーリング要求を受信することを含み、クラスタスケーリング要
求が、現行クラスタと数または種類が異なる複数のノードを示すことと、クラスタスケー
リングイベントに基づく、現行クラスタのノードの変化の決定が、クラスタスケーリング
要求によって示される通り、現行クラスタと数または種類が異なる複数のノードを変化と
して決定することを含むことと、クラスタスケーリング要求の受信に応答して、該作成、
該開始、および該移動が実施されるように指図することと、を実施することをさらに含む
、付記５に記載の方法。
【００６９】
９．クラスタスケーリング要求の受信に応答して、制御インターフェースによって、現
行クラスタに読み取り専用モードで動作するように指図することをさらに含む、付記８に
記載の方法。
【００７０】
１０．現行ノードクラスタのノードおよび新しいクラスタ内の複数のノードの各々は、
ネットワークベースのクラスタホストサービスによってホストされる仮想計算ノードであ
る、付記８に記載の方法。
【００７１】
１１．各ノードは、クラスタデータを記憶する１つ以上のデータスライスを含み、コピ
ーは、割り当てスキームに従って、現行クラスタのノード内の各データスライスから、新
しいクラスタ内の複数のノード内の１つ以上のデータスライスへクラスタデータを送信す
ることを含む、付記５に記載の方法。
【００７２】
１２．各ノードは、クラスタデータを記憶する１つ以上のデータスライスを含み、該方
法は、現行クラスタのノード上のデータスライス上にクラスタデータを分散するために使
用される別の分散スキームとは異なる分散スキームに基づいて、新しいクラスタのノード
上のデータスライス上にクラスタデータを分散することをさらに含む、付記５に記載の方
法。
【００７３】
１３．ユーザが、ネットワークエンドポイントの移動の前および後に、アクセス要求を
同一のネットワークアドレスに送信する、付記５に記載の方法。
【００７４】
１４．現行クラスタは、クラスタデータに加えて、複製クラスタデータを記憶し、現行
クラスタから新しいクラスタ内の複数のノードのクラスタデータのコピーは、複製クラス
タデータを現行クラスタから新しいクラスタへ送信することなく実施され、コピーの完了
に応答して、新しいクラスタ内の複数のノード間でクラスタデータを複製することをさら
に含む、付記５に記載の方法。
【００７５】
１５．該コピーおよび該移動の完了に応答して、現行クラスタを終了することをさらに
含む、付記５に記載の方法。
【００７６】
１６．非一時的コンピュータ可読記憶媒体であって、複数の計算装置によって実行され
るときに、複数の計算装置に、クラスタデータを記憶する複数のノードを有する現行クラ
スタであって、現行クラスタのネットワークエンドポイントで、クラスタデータへのアク
セス要求を受信する、現行クラスタへのクラスタスケーリングイベントを検出することと
、クラスタスケーリングイベントの検出に応答して、現行クラスタに読み取り専用モード
で動作するように指図することと、クラスタスケーリングイベントに基づいて、現行クラ
スタのノードの変化を決定することと、変化によって示される通り、複数のノードを有す
る新しいクラスタを作成することと、現行クラスタから新しいクラスタ内の複数のノード
へのクラスタデータのコピーを開始することと、現行クラスタのネットワークエンドポイ
ントを、新しいクラスタに移動させることと、を実現させるプログラム命令を記憶する、
非一時的コンピュータ可読記憶媒体。
【００７７】
１７．プログラム命令はさらに、複数の計算装置によって実行されるときに、複数の計
算装置に、該コピーおよび該移動の完了に応答して、現行クラスタを終了することを実現
させる、付記１６に記載の非一時的コンピュータ可読記憶媒体。
【００７８】
１８．現行クラスタおよび新しいクラスタは、分散されたデータウェアハウスシステム
のためのデータ処理クラスタである、付記１６に記載の非一時的コンピュータ可読記憶媒
体。
【００７９】
１９．クラスタデータは、現行クラスタのためのデータベーススキーマを含む、付記１
８に記載の非一時的コンピュータ可読記憶媒体。
【００８０】
２０．変更は、現行クラスタのノードより大きい記憶容量を有するノードへのものであ
る、付記１６に記載の非一時的コンピュータ可読記憶媒体。
【００８１】
種々の実施形態は、コンピュータアクセス可能媒体上に前述の説明に従って実現される
命令および／またはデータを、受信、送信、または記憶することをさらに含んでもよい。
一般的に述べると、コンピュータアクセス可能媒体としては、磁気または光媒体等の記憶
媒体またはメモリ媒体、例えば、ディスクまたはＤＶＤ／ＣＤ−ＲＯＭ、不揮発性媒体、
例えば、ＲＡＭ（例えば、ＳＤＲＡＭ、ＤＤＲ、ＲＤＲＡＭ、ＳＲＡＭ等）、ＲＯＭ等、
ならびに、ネットワークおよび／または無線リンク等の通信媒体を介して伝達される電気
、電磁、またはデジタル信号等の伝送媒体または信号を挙げることができる。
【００８２】
図中に例証される、および本明細書に説明される種々の方法は、本方法の実施形態例を
表す。方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせにおいて実現さ
れてもよい。方法の順序は、変更されてもよく、種々の要素は、追加、並べ替え、組み合
わせ、省略、修正等されてもよい。
【００８３】
種々の修正および変更が、本開示の利益を有する当業者に明らかであるようになされて
もよい。本発明は、全てのかかる修正および変更を包含し、またしたがって、限定的では
なくむしろ例証的であると見なされるように上記の説明を包含することが意図される。
【図１】
0006670274.tif 000002
【図２】
0006670274.tif 000003
【図３】
0006670274.tif 000004
【図４】
0006670274.tif 000005
【図５】
0006670274.tif 000006
【図６Ａ】
0006670274.tif 000007
【図６Ｂ】
0006670274.tif 000008
【図６Ｃ】
0006670274.tif 000009
【図７】
0006670274.tif 000010