JP6670274B2 - 分散計算システムにおける計算クラスタのスケーリング - Google Patents

分散計算システムにおける計算クラスタのスケーリング Download PDF

Info

Publication number
JP6670274B2
JP6670274B2 JP2017137897A JP2017137897A JP6670274B2 JP 6670274 B2 JP6670274 B2 JP 6670274B2 JP 2017137897 A JP2017137897 A JP 2017137897A JP 2017137897 A JP2017137897 A JP 2017137897A JP 6670274 B2 JP6670274 B2 JP 6670274B2
Authority
JP
Japan
Prior art keywords
cluster
data
nodes
current
new
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
JP2017137897A
Other languages
English (en)
Other versions
JP2017188165A (ja
Inventor
マリペディ,ヴェンカタ・ハリシュ
スルナ,アレクサンドラス
Original Assignee
アマゾン・テクノロジーズ・インコーポレーテッド
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
Application filed by アマゾン・テクノロジーズ・インコーポレーテッド filed Critical アマゾン・テクノロジーズ・インコーポレーテッド
Publication of JP2017188165A publication Critical patent/JP2017188165A/ja
Application granted granted Critical
Publication of JP6670274B2 publication Critical patent/JP6670274B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)

Description

クラスタベースの計算ソリューションは、あらゆる種類のサービスの提供において普及
するようになったが、これは一部には、計算クラスタは、同等な性能を有する単一のコン
ピュータを上回る、より高い処理力および信頼性を達成するための費用対効果が高い手段
を提供するためである。異なる数または種類(例えば、機能、記憶容量等)の計算ノード
を使用して、特定の計算タスクのために、適切なスケールで、クラスタベースの計算ソリ
ューションを設計することは、クラスタオペレータが、計算リソースをタスクに効率的に
配分することを可能にする。しかしながら、幾つかの計算タスクは、変動的または限定的
な期間リソース要件を要する。例えば、ある特定のウェブベースのサービスは、一日のう
ちの特定の時間にのみ頻繁に利用される場合があり、残りの時間は、計算リソースは十分
に活用されない場合がある。そのような場合、クラスタベースの計算ソリューションは、
計算タスクの最大リソース要件に応えるのに十分な計算リソースを有して設計することが
できる。しかしながら、このソリューションは、リソース配分の効率を低減させ、したが
って費用対効果を低減させる。別法として、クラスタ計算ソリューションは、計算タスク
のための計算リソースの効率的な利用を維持するようにスケーリングされることもある。
計算クラスタのスケーリングには、データ転送およびサービスダウンタイム等、独自の困
難が伴う、クラスタ計算ソリューションの費用対効果を低減もさせる。
幾つかの実施形態による、分散計算システムにおける計算クラスタのスケーリングのタイムラインを例証する。 幾つかの実施形態による、計算クラスタのための動作環境例を例証するブロック図である。 幾つかの実施形態による、ネットワークベースのクラスタホストサービス例を例証するブロック図である。 幾つかの実施形態による、計算クラスタ例を例証するブロック図である。 幾つかの実施形態による、計算クラスタをスケーリングするための方法を例証する高レベル流れ図である。 幾つかの実施形態による、現行クラスタと新しいクラスタとの間に割り当てられたデータスライスコピー位置を例証するブロック図である。 幾つかの実施形態による、現行クラスタと新しいクラスタとの間に割り当てられたデータスライスコピー位置を例証するブロック図である。 幾つかの実施形態による、現行クラスタと新しいクラスタとの間に割り当てられたデータスライスコピー位置を例証するブロック図である。 幾つかの実施形態による、システム例を例証する。
実施形態は、幾つかの実施形態および例証的な図に関して例示の目的のために本明細書
に説明されるが、当業者であれば、実施形態は、説明される実施形態または図に限定され
ないことを認識するであろう。図およびそれに対する詳細な説明は、実施形態を開示され
る特定の形態に限定することを意図するものではなく、対照的に、その意図は、添付の特
許請求の範囲によって定義される精神および範囲内の全ての修正、等価物、および代替物
を網羅することであることが理解されるべきである。本明細書で使用される見出しは、単
に構成の目的のためであり、説明または特許請求の範囲の範囲を限定するために使用され
ることを意味しない。本出願全体を通して使用するとき、「〜することができる・〜して
もよい」という語は、義的な意味(即ち、しなければならないことを意味する)よりむし
ろ、許可的な意味(即ち、可能性を有することを意味する)にて使用される。同様に、「
含む(include)」、「含む(including)」、および「含む(incl
udes)」という語は、含むが、限定されないことを意味する。
以下の詳細な説明では、多数の特定の詳細が、特許請求される主題の十分な理解を提供
するために記載される。しかしながら、特許請求される主題は、これらの特定の詳細を伴
わずに実践されてもよいことが、当業者によって理解されるであろう。他の例では、当業
者に既知であろう方法、装置、またはシステムは、特許請求される主題を曖昧にしないた
めに本明細書に詳細には説明されていない。
同様に、第1の、第2の等の用語は、本明細書にて種々の要素を説明するために使用さ
れ得るが、これらの要素は、これらの用語によって限定されるべきではないことも理解さ
れるであろう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。
例えば、本発明から逸脱することなく、第1の接触は、第2の接触と称されることが可能
であり、また同様に、第2の接触は、第1の接触と称されることが可能である。第1の接
触および第2の接触は、いずれも接触であるが、それらは同一の接触ではない。
本明細書において本発明の説明に使用される専門用語は、特定の実施形態を説明する目
的のためだけのものであり、本発明を限定することを意図されない。本発明の説明および
添付の特許請求の範囲にて使用するとき、単数形「a」、「an」、および「the」は
、文脈によって別段に明確に示されない限り、複数形も含むことを意図される。同様に、
本明細書で使用するとき、用語「および/または」は、関連する列挙される項目の1つ以
上の任意のおよび全ての可能な組み合わせを指す、および包含することも理解されるであ
ろう。本明細書で使用するとき、用語「含む(includes)」、「含む(incl
uding)、「備える(comprises)」およびまたは「備える(compri
sing)」は、規定される特徴、完全体、ステップ、動作、要素、および/または構成
要素の存在を明確に記述するが、1つ以上の他の特徴、完全体、ステップ、動作、要素、
構成要素、および/またはこれらの群の存在または追加を除外しないことがさらに理解さ
れるであろう。
本明細書で使用するとき、「〜である場合」という用語は、文脈に応じて、「〜のとき
」または「〜の際」または「決定に応答して」または「検出に応答して」を意味するよう
に解釈することができる。同様に、「それは決定される場合」または「[規定される条件
またはイベント]が検出される場合」表現は、文脈に応じて、「決定する際」または「決
定に応答して」または「[規定される条件またはイベント]の検出に際して」または「[
規定される条件またはイベント]の検出に応答して」を意味するように解釈することがで
きる。
分散システムにおける計算クラスタのスケーリングの種々の実施形態が、本明細書に説
明される。クラスタデータを記憶するため、およびクラスタデータへのアクセス要求を処
理するための複数のノードを有する計算クラスタのユーザは、異なるクラスタ構成が、計
算クラスタによって実施されるタスクにより好適であることを決定することができる。例
えば、計算クラスタのノードが、過度に負担がかかっているか、または未活用である場合
、異なる数のノードまたは異なる種類のノードが、計算クラスタの効率を増加させるため
追加または除去されてもよい。ユーザは、これらの変更を行い、適切で効率的な構成にコ
ンピュータクラスタをスケーリングすることを望み得る。典型的には、計算クラスタのス
ケーリングは、複雑なデータ転送、ネットワークの変更、および場合により、費用のかか
る機器購入を伴う場合がある。その代りに、幾つかの実施形態では、ユーザは、クラスタ
スケーリング要求をクラスタ制御インターフェースに送信することができ、該クラスタ制
御インターフェースは次に、要求された構成に従って計算クラスタのスケーリングを実行
することができる。少なくとも幾つかの実施形態では、計算クラスタは、下記に述べるよ
うに、分散計算システムにおいて計算クラスタをスケーリングするための種々のシステム
および技術を実装および実施することができる、ネットワークベースのクラスタホストサ
ービスによってホストされることができる。
概して、計算クラスタは、種々の計算タスクを達成するように1つ以上のノードをグル
ープ化して、一緒に作動させる、分散計算システムによって実現することができる。計算
ノード(「ノード」とも称される)は、図7に関して下に説明される計算システム100
0等の計算装置上に実現することができる。単一のノードが単一の計算装置上に実現され
得るが、ノードは、そのように限定されない。例えば、複数のノードが、単一の計算装置
上の異なる論理(例えば、仮想の)マシン上に実現されてもよい。同様に、計算装置は、
例えば、その各々が計算ノードを実現するように構成されることができる複数のプロセッ
サ等の、異なるハードウェア構成を実現してもよい。
クラスタのノードは、種々のタスクを、個別に、例えば、一連でもしくは順番に、また
は一緒にもしくは同時に、例えば、平行して実施してもよい。これらの種々のタスクの実
施に加えて、ノードはまた、データ記憶装置へのアクセスを記憶するか、または有しても
よい。典型的には、各ノードは、例えば、ディスク等の特定の記憶装置の組のみにアクセ
スを有することによって、クラスタデータの特定の部分にのみアクセスすることができる
が、ただし、全てのクラスタがかかる構成に限定されるわけではない。私的ネットワーク
等の一般的な通信基盤は、しばしば、メッセージの交換を通して、クラスタのノード間で
の通信を促進することができる。メッセージおよび/または他の通信形式は、計算クラス
タのノード間でデータを共有するために使用されてもよい。計算クラスタの構成は、クラ
スタ内のノードの数またはノードの種類(例えば、ノードの計算能力、ノードの処理容量
、オペレーティングシステム等の特定のソフトウェアまたはハードウェア構成)を含むこ
とができる。計算クラスタ内の計算ノードは、当業者に周知であるため、上の考察は、限
定的であることを意図されないことに留意されたい。
幾つかの実施形態では、計算クラスタのためのクラスタ制御インターフェースが、提供
され、ユーザ、オペレータ、所有者、管理者、または計算クラスタを制御する許可を有す
る他の関係者が、例えば、計算クラスタ内のノードの数または種類を変化させることによ
って、計算クラスタをスケーリングすることを、または他のクラスタ制御動作を実施する
ことを可能にすることができる。クラスタ制御インターフェースは、ユーザからのクラス
タスケーリング要求を受信してもよい。クラスタスケーリング要求は、現在動作中のクラ
スタ内のノードの数または種類の変化を示してもよい。例えば、現行クラスタが2つのノ
ードを動作させる場合、クラスタスケーリング要求は、5つのノードを動作させるような
変化を示してもよい。クラスタスケーリング要求の受信に応答して、制御インターフェー
スは、要求メッセージに示される数および/または種類のノードを有する新しいクラスタ
を作成してもよい。クラスタ制御インターフェースは次に、スケーリングされている現行
クラスタ内に記憶されるクラスタデータのコピーを開始してもよい。コピー動作は、現行
クラスタ内のノードから新しいクラスタ内のノードへクラスタデータを直接送信すること
ができる新しいクラスタおよび現行クラスタによって、実施されてもよい。現行および新
しいクラスタ内のノードの各々は、クラスタデータを並行して送信および受信してもよい
。幾つかの実施形態では、コピーが実施されている間、現行クラスタは、現行クラスタか
らクラスタデータを読み取ろうとするアクセス要求に、継続して応答してもよい。しかし
ながら、少なくとも幾つかの実施形態では、現行クラスタは、クラスタ制御インターフェ
ースによって読み取り専用モードに置かれることができ、書き込みアクセス要求にエラー
で応答する。制御クラスタは次に、アクセス要求を受信するネットワークエンドポイント
を、現行クラスタから新しいクラスタへ移動させてもよい。少なくとも幾つかの実施形態
では、クラスタ制御インターフェースは次に、現行クラスタの動作を無効にするか、また
は終了してもよい。
少なくとも幾つかの実施形態では、図2および3に関して下に説明されるネットワーク
ベースのクラスタホストサービス等のネットワークベースのクラスタホストサービスは、
分散計算環境においてデータクラスタのスケーリングを実施してもよい。ネットワークベ
ースのクラスタホストサービスは、ユーザが、計算クラスタを作成、管理、修正、または
終了することを可能にしてもよい。これらの計算クラスタは、ネットワークベースのクラ
スタホストサービスによってホストされる論理/仮想マシン上で実現されるノード等の仮
想の計算ノードで構成されてもよい。ユーザは、ネットワークベースのクラスタホストサ
ービス上にホストされる計算クラスタを管理して、ユーザシステムまたは装置のための計
算サービスを提供することができる。
例えば、幾つかの実施形態では、ネットワークベースのクラスタホストサービスは、ク
ラウド計算環境においてデータウェアハウスを設置し、動作させ、およびスケーリングす
るために、ユーザ(例えば、加入者)にとってそれを迅速であり、容易であり、また費用
対効果が高いものにするウェブサービスを実施してもよい。ウェブサービスによってホス
トされる計算クラスタは、例えば、クラスタスケーリング要求をウェブサービスによって
実施されるクラスタ制御インターフェースに送信することによって、ユーザがクラスタを
スケーリングすることを可能にする、企業規模のデータベースクエリおよび管理システム
を提供してもよい。クラスタのスケーリングは、ウェブサービスのユーザが、例えば、構
造化データにわたる高速な照会性能、種々のデータローディングおよびETL(抽出・変
換・挿入)ツールによる統合、ベスト・イン・クラス・ビジネスインテリジェンス(BI
)レポートによるクライアント接続、データマイニング、ならびに解析ツール、ならびに
複雑な解析クエリの超高速実行のための最適化、例えば、マルチテーブルジョイン、サブ
クエリ、および集成化を含むもの等の、そのデータウェアハウス機能をより効率的に実施
することを可能にしてもよい。
分散計算システムにおけるコンピュータクラスタのスケーリングの種々の実施形態が、
実現され得る。図1は、幾つかの実施形態による、分散計算システムにおける計算クラス
タのスケーリングのタイムラインを例証する。第1の段階110において、現行クラスタ
112は、現行クラスタ112のノード内に記憶されるクラスタデータ上で、アクセス要
求および他のタスク/動作を現在処理している3つのノードを有するように例証される。
クラスタスケーリングイベントが、検出される(例えば、特定の利用閾値を上回るまたは
下回る1つ以上のノード、クラスタスケーリング要求の受信等)。検出されたイベントに
基づいて、現行クラスタ112のノードの変更が決定される(例えば、リソースのみ活用
は、ノードの除去を示してもよく、クラスタスケーリング要求は、1つ以上の異なる種類
のノードへの変更を示してもよい)。120に例証される通り、新しいクラスタ114が
、作成される。新しいクラスタ114は、例えば、ノードの数を除去または追加する等、
決定された変化に従って作成されてよい。図4に例証される通り、決定された変化は、新
しいクラスタ114のノードを4つのノードに増加させることであった。
現行クラスタ112内に記憶されるクラスタデータは、116に示される通り、現行ク
ラスタ112から新しいクラスタ114へコピーされる。コピーを実施するための種々の
方法および技術は、図5〜6Cに関して下に述べられる。例えば、幾つかの実施形態では
、現行クラスタ112内のデータスライス等の記憶位置におけるクラスタデータは、旧お
よび新しいクラスタ内のノード間でのコピー作業負荷の均等な分散を確実にする割り当て
スキーマに従って割り当てられ、新しいクラスタ114のノードに送信される。コピー動
作が実施されている間、現行クラスタ112は、依然、読み取りアクセス要求を実施して
もよい。130に例証される通り、コピー動作の完了に際して、現行クラスタ112のネ
ットワークエンドポイントは、118に示される通り、新しいクラスタ114に移動され
る。ネットワークエンドポイントの移動は、ネットワークエンドポイントの移動の前およ
び後に送信されるアクセス要求が、ユーザの観点から見て、同一のネットワークアドレス
に送信されるというものである。次に、新しいクラスタ114は、140に例証される通
り、新しいクラスタ114内に記憶されるクラスタデータ上で読み取りおよび書き込みア
クセス要求を実施してもよい。幾つかの実施形態では、現行クラスタ112は、終了され
てもよい。
計算クラスタ動作環境
上に述べられる通り、計算クラスタは、複数のユーザからアクセスおよび他の要求を受
信してもよい。計算クラスタは、これらの要求に応答するか、またはメッセージもしくは
データを複数のユーザに送り出してもよい。図2は、幾つかの実施形態による、計算クラ
スタのための動作環境例を例証する。この例証では、ユーザ212、222、および23
2等の1人以上のユーザは、例えば、広域ネットワーク(WAN)200(例えば、イン
ターネット)等を通じて、種々の異なる通信方法を使用してネットワークベースのクラス
タホストサービス300によってホストされるクラスタ214、224、および234等
の1つ以上のクラスタと通信することができる。私的ネットワーク、イントラネット、お
よび他の通信ネットワークの形態もまた、ユーザと計算クラスタとの間の通信を促進する
ことができる。
ユーザ212、222、および232等のユーザは、クラスタ214、224、および
234等の1つ以上の計算クラスタに要求を送信し、および/またはクラスタ214、2
24、および234等の1つ以上の計算クラスタから応答を受信するように構成される、
デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯
情報端末、携帯機器、サーバ、または任意の他の計算システムもしくは他の装置、例えば
、図7に関して下に説明されるコンピュータシステム1000等を介して、クラスタと通
信してもよい。例えば、要求は、計算クラスタによってもたらされる特定の機能またはサ
ービスに関連付けられるパラメータおよび/またはデータを含むメッセージとして、フォ
ーマットされてもよい。かかるメッセージは、拡張マークアップ言語(XML)等の特定
のマークアップ言語に従ってフォーマットされてもよく、および/または、シンプルオブ
ジェクトアクセスプロトコル(SOAP)等のプロトコルを使用してカプセル化されても
よい。アプリケーションプログラマインターフェース(API)が、例えば、ユーザがネ
ットワークベースのクラスタホストサービス300と通信しているとき等に、ユーザに標
準化されたメッセージ形式を提供するように実施されてもよい。
ユーザは、要求を含むメッセージを組み立て、メッセージをネットワークエンドポイン
ト(例えば、クラスタに相当する統一資源位置指定子(URL)))に伝達してもよい。
例えば、ユーザ212は、例えば、ウェブ・クライアント等の、WAN200を通じてハ
イパーテキスト転送プロトコル(HTTP)要求をクラスタ214に送信するように構成
される、ローカルソフトウェアアプリケーションを実行するデスクトップコンピュータを
介して通信してもよい。応答またはユーザに送信される他のデータは、同様の方式でフォ
ーマットされてもよい。ユーザ222は、例えば、XMLを使用してフォーマットされる
WAN200を通じてクラスタ234からのプッシュデータメッセージを受信する携帯機
器を介して、通信してもよい。ユーザはまた、別のより大きいシステムの構成要素または
モジュールを介して通信してもよい。例えば、ウェブベースのソフトウェア・アズ・ア・
サービス(software−as−a−service)(SaaS)システムは、W
AN200を通じて1つ以上のクラスタと通信するウェブベースのサービスを支持する構
成要素を有してもよい。
少なくとも幾つかの実施形態では、300に示される通り、ネットワークベースのクラスタホストサービスは、クラスタ214、224、および234等のクラスタをホストしてもよい。ネットワークベースのクラスタホストサービスは、クラスタのユーザにネットワークエンドポイントを提供してもよく、これは、ユーザが、要求および他のメッセージを特定のクラスタに直接送信することを可能にする。上述の通り、ネットワークエンドポイントは、例えば、特定のクラスタを指すURL等の特定のネットワークアドレスであってもよい。例えば、ユーザ232は、種々の要求メッセージを送信するために、ネットワークエンドポイント「http://mycluster.com」を付与されてもよい。複数のユーザが、特定のクラスタのネットワークエンドポイントを付与されてもよい。種々のセキュリティ特徴が、権限を有さないユーザがクラスタにアクセスするのを防止するために実施されてもよい。逆に、単一のユーザが、複数のクラスタのネットワークエンドポイントを付与されてもよい。
上に述べる通り、クラスタは、1つ以上のノードで構成されてもよい。図2に例証され
る通り、これらのクラスタは、例えば、クラスタ214に例証される3つのノード、クラ
スタ224に例証される5つのノード、およびクラスタ234に例証される2つのノード
等、異なる数のノードを含んでもよい。幾つかの実施形態では、ノードは、クラスタデー
タを記憶するための1つ以上のデータスライスを実装してもよい。これらのデータスライ
スは、図4に関して下に述べられるディスク記憶装置等、記憶装置の一部であってもよい
。クラスタは、WAN200を通じてユーザから要求および他の通信を受信するように構
成されてもよい。クラスタは、クラスタのネットワークエンドポイントを介して複数のユ
ーザから要求を受信するように構成されてもよい。この図には例証されていないが(さら
なる例に関しては、下の図6Aおよび6Cを参照されたい)、クラスタ内のノードは、例
えば、クラスタスケーリング要求メッセージ等のクラスタスケーリングイベントの検出に
応答して、コピー動作を実施するとき等に、他のクラスタのノードと通信するように構成
されてもよい。
先に述べた通り、分散計算システムにおける計算クラスタのスケーリングの種々の実施
形態は、ネットワークベースのクラスタホストサービスによって実現されてもよい。図3
は、幾つかの実施形態による、ネットワークベースのクラスタホストサービス例を例証す
るブロック図である。ネットワークベースのクラスタホストサービス300は、クラスタ
310、320、330、および340等、ネットワークベースのクラスタホストサービ
ス300によってホストされる種々のクラスタと通信する、ネットワークベースのクラス
タホストサービスマネージャ302を含んでもよい。ユーザ312、322、および33
2等のユーザは、ネットワークベースのクラスタホストサービスマネージャ302と通信
してもよく、またクラスタと直接通信してもよい。
ネットワークベースのクラスタホストサービス300は、ユーザ(例えば、加入者)に
、ユーザからの要求に応答して作成、構成、管理、スケーリング、および終了されること
ができる、クラスタ計算リソースを提供してもよい。例えば、幾つかの実施形態では、ネ
ットワークベースのクラスタホストサービス300は、サービスのユーザに、仮想の計算
ノードから成るクラスタを提供してもよい。これらの仮想の計算ノードは、ハードウェア
仮想マシン等の仮想のマシン、またはハードウェア構成をシミュレーションするように実
施されるソフトウェアの他の形態によって実現される、ノードであってもよい。仮想のノ
ードは、物理的ハードウェア上に実装されるノードと同一のタスク、機能、および/また
はサービスを実施するように構成されてもよい。
幾つかの実施形態では、ネットワークベースのクラスタホストサービス300は、利用
単位または加入料金単位ベースで、クラスタホストサービスを提供してもよい。ユーザに
よって使用される種々のクラスタの履歴が、記憶され、利用料金を算出するために使用さ
れてよい。少なくとも幾つかの実施形態では、この利用履歴はまた、ユーザのために以前
使用されたクラスタを回復または再生させるために使用されることもできる。
ネットワークベースのクラスタホストサービス300は、例えば、特注または既製の計
算システム、サーバ、または例えば、図7に関して下に説明される種々の種類の装置等の
計算システムもしくは装置の任意の他の組み合わせ等の、より大きい計算装置の集合体に
よって実現されてもよい。これらの計算装置の異なるサブセットが、異なるネットワーク
ベースのクラスタホストサービスマネージャ302によって制御されてもよい。ネットワ
ークベースのクラスタホストサービスマネージャ302は、例えば、ユーザ312、32
2、および332等のユーザ、または、ネットワークベースのクラスタホストサービスマ
ネージャ302によって管理されるクラスタ、この例証例では、クラスタ310、320
、330、および340と相互に作用することを望む任意の他のユーザに、クラスタ制御
インターフェースを提供してもよい。例えば、ネットワークベースのクラスタホストサー
ビスマネージャ302は、ユーザがその後、クラスタベースのホストサービス300上に
ホストされるクラスタのための制御インターフェースによってもたらされる種々の制御機
能を選択するために利用することができる、ユーザのための1つ以上のグラフィカルユー
ザインターフェース(GUI)を発生させてもよい。
ネットワークベースのクラスタホストサービスマネージャ302は、幾つかの実施形態
では、図5に関して下に述べられる計算クラスタのスケーリングの方法を実施するように
構成されてもよい。したがって、幾つかの実施形態では、ネットワークベースのクラスタ
ホストサービスマンジャー302は、クラスタスケーリングイベントを検出してもよい。
ネットワークベースのクラスタホストサービス302は、イベント等を検出するために異
なるクラスタをポーリングまたは照会するように構成されてもよい。図3に例証されるリ
ーダーノード等のリーダーノードは、幾つかの実施形態では、ネットワークベースのクラ
スタホストサービス300に対する性能データおよび/または他のメトリックを含む更新
された状態またはメッセージに応答するか、またはそれらを提供してもよい。同様に、ネ
ットワークベースのクラスタホストサービスマンジャー302が、現行クラスタのスケー
リングの一部としてクラスタデータのコピーを開始していた場合、ネットワークベースの
クラスタホストサービスマンジャー302は、現行クラスタかもしくは新しいクラスタか
のいずれか、またはその双方をポーリングして、コピー動作の状態を決定してもよい。幾
つかの実施形態では、ネットワークベースのクラスタホストサービスマネージャ302が
、コピー動作が完了されたことを検出すると、ネットワークベースのクラスタホストサー
ビスマンジャー302は、ネットワークエンドポイントを現行クラスタから新しいクラス
タへ移動させてもよい。
幾つかの実施形態では、ネットワークベースのクラスタホストサービス300は、特定
の計算サービスを提供するクラスタをホストするように構成されてもよい。例えば、ネッ
トワークベースのクラスタホストサービス300は、ユーザが、クラウド計算環境におい
てデータウェアハウスを設置し、動作させ、およびスケーリングすることを可能にするウ
ェブサービスの一部として実施されてもよい。ウェブサービスによってホストされる計算
クラスタは、例えば、クラスタスケーリング要求をウェブサービスによって実施されるク
ラスタ制御インターフェースに送信することによって、ユーザがクラスタをスケーリング
することを可能にする、企業規模のデータベースクエリおよび管理システムを提供しても
よい。クラスタのスケーリングは、ウェブサービスのユーザが、例えば、構造化データに
わたる高速照会性能、種々のデータローディングおよびETL(抽出・変換・挿入)ツー
ルによる統合、ベスト・イン・クラス・ビジネスインテリジェンス(BI)レポートによ
るクライアント接続、データマイニング、ならびに解析ツール、ならびに複雑な解析クエ
リの超高速実行のための最適化、例えば、マルチテーブルジョイン、サブクエリ、および
集成化を含むもの等の、そのデータウェアハウス機能をより効率的に実施することを可能
にしてもよい。図4は、幾つかの実施形態による、データウェアハウジングクラスタの例
を例証するブロック図である。
データウェアハウジングクラスタ400は、ウェブベースのデータウェアハウジングサ
ービスの一部として実施され、リーダーノード420、およびデータ計算ノード430、
440、および450等の複数のデータ計算ノードを含む。リーダーノード420は、ユ
ーザ312、322、および332等のユーザとの通信、ならびにデータウェアハウジン
グクラスタ400内に記憶されるデータのためのデータベース動作を実行するように命令
される計算ノードとの全ての通信を管理してもよく、例えば、データベース動作(例えば
、複雑なクエリおよびジョインの結果を獲得するために必要な一連のステップ)を実行す
るための実行計画を解析および開発し、次に、コードまたは他の命令形式等で、データベ
ースの中間動作を実施するために必要なステップを実行するために、データ計算ノード4
30、440、および450にステップを通信する。リーダーノード420は、データ計
算ノード430、440、および450から結果を受信してもよい。データベーススキー
マおよび/またはクラスタデータに関する他のメタデータ情報、例えば、クラスタ内に記
憶されるデータテーブルが、リーダーノード420によって管理および記憶されてもよい
データウェアハウジングクラスタ400はまた、データ計算ノード430、440、お
よび450等のデータ計算ノードを含んでもよい。データ計算ノードは、リーダーノード
420からデータベース計算ノード430、440、および450に送信される命令に基
づいて、クエリ等のデータベース動作の処理を実施してもよい。命令は、例えば、それが
送信される特定のデータ計算ノードによって実行可能である、実行計画セグメントおよび
ステップからのコンパイル済みコードであってもよい。データ計算ノードは、最終集成の
ために、クエリからリーダーノードに中間結果を送信して戻してもよい。各データ計算ノ
ードは、図4に例証されるような特定のメモリにアクセスするように構成されてもよい。
データ計算ノード430は、例えば、ディスク431、432〜ディスク438にアクセ
スしてもよい。
図4に例証されるディスク等のディスクは、データ計算ノードにアクセス可能なクラス
タデータを記憶するのに好適な任意の種類の記憶装置および/または記憶システムのうち
の1つ以上として、実現されてよくされてよく、例えば、レイド(RAID)装置、ディ
スクドライブ、もしくは単純ディスク束(JBOD)(RAIDに従っては構成されない
ディスクを指すために使用される)等のディスクドライブの配列、光記憶装置、テープド
ライブ、RAMディスク、ストレージエリアネットワーク(SAN)、ネットワークアク
セスストレージ(NAS)、またはこれらの組み合わせが挙げられるが、これらに限定さ
れない。異なるデータ記憶スキーマが、記憶装置上にデータウェアハウスサービスによっ
て実施されてよく、例えば、列指向型、行指向型、または相関スキーム等である。
リーダーノード420ならびに種々のデータ計算ノード、430、440、および45
0は、相互接続460を介して通信してもよい。相互接続460は、種々の異なるメッセ
ージングまたはデータ形式およびプロトコル(例えば、カスタムUDPプロトコル)を使
用して、異なる種類のネットワーク(例えば、私的ネットワーク)等の、上に述べられる
ものと同様の通信機構を提供してもよい。
図4は、データウェアハウジングクラスタの文脈において説明および例証されているが
、図4に例証および説明される種々の構成要素は、特定の機能を実施することに専念する
か、またはより一般的および/もしくは多様な計算サービスを提供するかに関わらず、他
の計算クラスタに容易に適用することができる。したがって、図4は、データウェアハウ
スクラスタに限定されることを意図せず、またデータウェアハウスクラスタの説明を限定
するものでもない。同様に、図2および3は、動作環境計算クラスタ、および分散システ
ムにおける計算クラスタのスケーリングを実施するネットワークベースのクラスタホスト
サービスの例として、例証の目的のために提供される。かかるシステムの多数の異なる代
替的な構成もまた、想定され、したがって、図2および3は、分散システムにおける計算
クラスタのスケーリングの他の可能な構成または実現に関して限定的であることを意図さ
れない。
計算クラスタのスケーリングのワークフロー
上に述べられた通り、計算クラスタは、種々の計算タスクおよびサービス、例えば、デ
ータウェアハウジング等を実施するように構成することができる1つ以上の計算ノードを
含むことができる。これらのタスクおよびサービスをより効率的に実施するために、計算
クラスタは、計算リソースを効率的に配分するようにスケーリングされてもよい。図5は
、幾つかの実施形態による、計算クラスタをスケーリングする方法を例証する高レベル流
れ図である。種々の異なるシステムおよび装置は、下に説明される種々の方法および技術
を実装してもよい。例えば、図3に関して上に説明されるネットワークベースのクラスタ
ホストサービスマネージャ302等の、クラスタ制御インターフェースは、説明される方
法を実現してもよい。別法として、異なるシステムおよび装置の組み合わせ、例えば、ネ
ットワークベースのクラスタホストサービスマネージャ302等の制御インターフェース
と組み合わせて作動する、図3および4に例証されるリーダーノードも、同様に下の方法
および技術を実施してもよい。したがって、上の例および、例証される方法の実施として
参照される任意の他のシステムまたは装置は、システムおよび装置の他の異なる個体また
は構成に関して限定的であることを意図されない。
幾つかの実施形態では、図1〜4に関して上に述べられるクラスタのうちの1つ等、複
数のノードを含む現行クラスタは、現行クラスタのネットワークエンドポイントで、動作
し、データ記憶内にクラスタデータを記憶し、受信されるアクセス要求に応答していても
よい。クラスタスケーリングイベントは次に、500に示される通り、現行クラスタに関
して検出されてもよい。クラスタスケーリングイベントとしては、限定されないが、性能
メトリックもしくはデータの変更(例えば、増加した数の要求、増加した量のノード利用
等)によってトリガされるイベント、クラスタスケーリング要求(例えば、クラスタ制御
インターフェースにおいて受信されるクラスタスケーリング要求等)、または、任意の他
のユーザ定義パラメータもしくはトリガを挙げることができる。例えば、ユーザは、超過
したときにクラスタスケーリングイベントをトリガするような、現行クラスタのための種
々の利用閾値を定義することができる。クラスタ利用がユーザの定義した閾値を下回って
いることを、利用メトリックが示す場合、クラスタスケーリングイベントが検出されるこ
とができる。種々の異なるトリガが、複数の異なる関係者によって定義されてもよい。例
えば、ネットワークベースのクラスタホストサービスマネージャも、利用閾値を定義して
、閾値を超過したときに、異なる種類のノード間で切り替えることができる。幾つかの実
施形態では、クラスタスケーリングイベントの検出に従って作動する前に、ユーザ確認が
要求されてもよい。
クラスタスケーリングイベントの検出に際して、幾つかの実施形態では、510に示す
通り、現行クラスタのノードの変更が、クラスタスケーリングイベントに基づいて決定さ
れてもよい。引き続き上の例では、クラスタスケーリングイベントのためのトリガを定義
したユーザはまた、現行クラスタのための変更も定義している場合がある、例えば、クラ
スタ利用が定義された閾値を下回っていることを利用メトリックが示す場合、現行クラス
タ内のノードの数を1ずつ下げる等である。定義され得る多数の異なるトリガイベントと
同様に、現行クラスタ内のノードのための多数の異なる変更を定義することができ、現行
クラスタ内のノードの数もしくはノードの種類、またはその双方を変更させる。
少なくとも幾つかの実施形態では、クラスタスケーリングイベントは、現行クラスタと
数または種類において異なる複数のノードを示すクラスタスケーリング要求を受信するこ
とであってよく、現行クラスタのノードの変更の決定は、クラスタスケーリング要求内に
示されるノードであってもよい。
クラスタスケーリングイベントの検出に応答して、530に示される通り、決定された
変更によって示されるノード(例えば、数および/または種類)を含む新しいクラスタが
、作成されてもよい。幾つかの実施形態では、ノードの新しいクラスタは、仮想の計算ノ
ードを初期化することによって作成されてもよい。別法として、別の例では、ノードの新
しいクラスタは、計算装置を併せてネットワーク化して、新しいクラスタを作成すること
によって、作成されてもよい。
少なくとも幾つかの実施形態では、クラスタスケーリングイベントの検出に応答して、
現行クラスタは、読み取り専用モードで動作するように設定または指図されてもよい。読
み取り専用モードでは、クラスタデータ上での書き込み動作を含むアクセス要求は、無視
されるか、またはエラーコードもしくはメッセージと共に返されてもよい。
現行クラスタから新しいクラスタ内のノードへのクラスタデータのコピーは、530に
示される通り、開始されてもよい。クラスタ制御インターフェース、例えば、図3に関し
て上に述べられるネットワークベースのクラスタホストサービスマネージャ302は、新
しいクラスタのノードのうちの1つ、例えば、リーダーノードに、コピー動作の実施を開
始して、現行クラスタからデータ組を取得するように指図することによって、クラスタデ
ータのコピーを開始してもよい。リーダーノードは、例えば、コピーするべきデータのリ
ストを作り、現行クラスタのノードからデータを取得するために、新しいクラスタ内のノ
ードへの命令を発生させ、現行クラスタ内のノードから新しいクラスタへデータを送信す
るために、現行クラスタ内のノードへ命令を発生させてもよい。別法として、現行クラス
タ上のリーダーノードまたは別のノードが、コピー動作を発生させるように指図されても
よい。これらのコピー動作は、現行クラスタのノードおよび新しいクラスタのノードによ
って並行して実施されてもよい。クラスタデータはそれ自身、例えば、図3および4に関
して上に述べられるもの等の種々の異なる通信技術、媒体、および形式を使用して、例え
ば、ストリーミングメッセージまたは他のストリーミング形式で、現行クラスタのノード
から新しいクラスタ内のノードへ送信されてもよい。それに加えて、コピーが実施される
間、現行クラスタは、依然、読み取りアクセス要求に応答してもよい。
クラスタデータの転送の進行に関する状態データは、リーダーノードのうちの一方また
は双方、およびクラスタ制御インターフェースまたはコピー動作を開始した他の構成要素
上に保存されてもよい。この状態データは、コピーされるクラスタデータの現在の位置お
よび状態を含んでもよい(例えば、既に転送されたデータの量)。通信エラー、ノード故
障、または他のコピー動作の中断の場合において、状態データは、中断付近の時点でコピ
ー動作を再開または再始動するために使用することができる。
幾つかの実施形態では、上に述べられる通り、各ノードは、クラスタデータを記憶する
ための1つ以上のデータスライスを有するか、またはそれへのアクセスを有してもよい。
コピー動作は、割り当てスキーマに従って、現行クラスタのノード内の各データスライス
から新しいクラスタのノード内の1つ以上のデータスライスへクラスタデータを送信して
もよい。この割り当てスキーマは、旧および新しいクラスタ内のノード間での、コピー作
業負荷の均衡された、または均等に近い分散を確実にすることができる。幾つかの実施形
態では、この割り当てスキーマは、データスライスの無作為および/または均一な割り当
てを提供することができるハッシュ機能技術に基づいて実現されてもよい。例えば、デー
タスライスからのデータの割り当てを決定するために、ハッシュ機能は、データスライス
内のデータのテーブル名および現在のスライス位置の数を入力として取得してもよく、ま
た、新しいクラスタ内のデータスライスの数によって出力を修正する。割り当てスキーマ
の別の例では、ノードは、ラウンドロビン技術によって、新しいクラスタ内の計算ノード
にわたって割り当てられてもよい。現行クラスタから新しいクラスタへのデータスライス
の割り当てを実施することによって、クラスタデータの送信の作業負荷は、現行および新
しいクラスタのノードにわたって、均等に、または均等に近く分散することができる。
図6A〜6Cは、幾つかの実施形態による、現行クラスタと新しいクラスタとの間の、
割り当てられたデータスライスコピー位置を例証するブロック図である。図6Aでは、例
えば、現行クラスタ600は、2つのノード、602および604を有し、各々は、4つ
のデータスライスを含有する。上述の要素510にて決定されるもの等の現行クラスタの
ノード内の変更は、3つのノード、612、614、および616を含む新しいクラスタ
610を作成した。602および604のデータスライスからのデータは、例えば、ハッ
シュ技術を使用して、割り当てスキームに従って新しいクラスタ610内のデータスライ
スに割り当てられる。例えば、ノード602内のスライス1は、ノード612内のスライ
ス1に割り当てられる。602内のスライス2は、ノード614内のスライス1に割り当
てられる。ノード602内のスライス3は、ノード612内のスライス3に割り当てられ
、ノード602内のスライス4は、ノード612内のスライス4に割り当てられる。ノー
ド604内のスライスは、同様に、ノード614および616内のスライスに割り当てら
れる。したがって、ノード602、604、612、614、および616がコピー動作
を実施しているとき、作業負荷は、ノード間で均衡されることができる。均衡された作業
負荷は次に、ノードがコピー動作を並行して実施するときに、より高いコピー効率を提供
することができる。
示されてはいないが、データスライス、例えば、ノード603内のスライス1等からの
データは、最終的に、複数のノード上、例えば、ノード612、ノード614、およびノ
ード616上の複数のデータスライス上に記憶されてもよい。例えば、一度ノードにコピ
ーされたクラスタデータは、分散スキームに従って(例えば、データテーブル内の主キー
または他の種類のキー上でハッシュ技術を実施することによって)、新しいクラスタ内の
ノードにわたって分散されてもよい。別法として、割り当てスキーマはそれ自身、下にさ
らに詳細に述べられる分散スキーム等の、新しいクラスタ上で実装されるための分散スキ
ームを構成してもよく、したがって、コピー動作を実施するノード間で作業負荷を均衡さ
せることに加えて、クラスタデータを分散された位置に送信するデータスライス割り当て
を提供してもよい。
図6Bは、類似の例を提供するが、ただし、上述の要素510にて決定されるもの等の
現行クラスタのノード内の変化が、1つ少ないノード、632および634を含む新しい
クラスタ620を作成したことを除く。上に述べられる例証例の通り、ノード622、6
24、および626内のデータスライスは、ノード632および634内のスライスに割
り当てられる。しかしながら、場合により、2つのスライスが、現行クラスタ620から
新しいクラスタ630内の単一のスライスに割り当てられる場合があることに留意された
い。上に述べる通り、割り当てスキーマは、新しいクラスタのノードのためのクラスタデ
ータの分散スキームを構成してもよく、またしたがって、例えば、ノード632内のスラ
イス4に割り当てられる2つのスライスは、クラスタデータのための分散スキームを構成
するように割り当てられてもよい。別法として、クラスタデータはその後、クラスタデー
タのための分散スキームに従って、ノード632および634にわたって分散されてもよ
い。
図6Cは、別の例を提供するが、しかし、上述の要素510にて決定されるもの等の現
行クラスタのノードの変化は、現行クラスタ640と同じ数、3つのノードを含む新しい
クラスタ650を作成した。しかしながら、これらのノードは、異なる種類のもの、この
場合、異なる記憶容量のものである。上に述べられる例証例の通り、ノード642、64
4、および646内のデータスライスは、ノード652、654、および656内のスラ
イスに割り当てられる。ここでも、2つのスライスが、現行ノード640から新しいノー
ド650内の単一のスライスに割り当てられる場合があることに留意されたい。
上に述べられた通り、幾つかの実施形態では、クラスタデータは、分散スキームに従っ
て、現行クラスタ内のノードのデータスライス内に分散されてもよい。例えば、分散スキ
ームは、データテーブル内の主キーに従って、クラスタデータをデータスライスにわたっ
て分散してもよい。別法として、分散スキームは、均等分散スキームに従って、データを
データスライスにわたって均等に分散してもよい。少なくとも幾つかの実施形態では、別
の分散スキームは、クラスタ内の他のノード間にデータをさらに分散することなく、単一
のノード上にデータを単純に記憶してもよい。クラスタデータが、新しいノード内のデー
タスライスにおいて受信されている間、またはクラスタデータの全てが、新しいノード内
のデータスライスにおいて受信された後、新しいクラスタは、分散スキームに従って、ノ
ード上のデータスライス内にデータを分散してもよい。少なくとも幾つかの実施形態では
、新しいクラスタのノードのデータスライス上のクラスタデータは、現行クラスタ上にク
ラスタデータを分散するために使用されるスキームとは異なる分散スキームに基づいて、
分散されてもよい。例えば、現行クラスタ上のクラスタデータは、単一のノード上にデー
タを記憶する分散スキームを使用して記憶されてもよい、クラスタデータのコピー動作が
完了したときに、新しいクラスタは、均等分散スキームに従ってクラスタデータを分散し
てもよい。
幾つかの実施形態では、現行クラスタは、現在のデータクラスタ上に記憶されるクラス
タデータに加えて、一組の複製クラスタデータを含有してもよい。この複製クラスタデー
タは、現行クラスタのクラスタデータと併せて、新しいクラスタのノードに送信されても
よい。しかしながら、少なくとも幾つかの実施形態では、クラスタデータのコピーは、新
しいクラスタのノードに複製クラスタデータを送信することなく実施される。コピー動作
の完了に応答して、新しいクラスタは、新しいクラスタ内のノードにわたって、受信した
クラスタデータを複製してもよい。
幾つかの実施形態では、ネットワークエンドポイントは、540に示される通り、現行
クラスタから新しいクラスタへ移動されてもよい。ユーザの観点から見ると、ネットワー
クエンドポイントのネットワークアドレスは、エンドポイントが移動される前および後で
同じままである。ネットワークエンドポイントは、ドメイン名システム(DNS)情報を
修正することによって、例えば、新しいクラスタ用の異なるインターネットプロトコル(
IP)アドレスを指すように正規名(CNAME)を修正することによって、移動されて
もよい。
幾つかの実施形態では、現行クラスタは、550にて示される通り、終了されてもよい
。少なくとも幾つかの実施形態では、この終了は、530にて示されるようなコピー動作
の完了、および540に示されるようなエンドポイントの移動の完了に応答して、実施さ
れてもよい。
システム例
本明細書に説明されるような分散システムにおける計算クラスタのスケーリングの実施
形態は、種々の他の装置とやりとりすることができる1つ以上のコンピュータシステム上
で実施されてもよい。1つのかかるコンピュータシステムは、図7によって例証される。
異なる実施形態では、コンピュータシステム1000は、種々の種類の装置のいずれかで
あってよく、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトッ
プ、ノートブック、もしくはネットブックコンピュータ、メインフレームコンピュータシ
ステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、
カメラ、セットトップボックス、携帯機器、消費者装置、ビデオゲーム機、ハンドヘルド
ビデオゲーム装置、アプリケーションサーバ、記憶装置、周辺機器、例えば、スイッチ、
モデム、ルータ等、または一般的な任意の種類の計算または電子装置が挙げられるが、こ
れらに限定されない。
例証される実施形態では、コンピュータシステム1000は、入力/出力(I/O)イ
ンターフェース1030を介してシステムメモリ1020に連結される1つ以上のプロセ
ッサ1010を含む。コンピュータシステム1000は、I/Oインターフェース103
0に連結されるネットワークインターフェース1040と、カーソル制御装置1060、
キーボード1070、およびディスプレイ(複数可)1080等の1つ以上の入力/出力
装置1050とをさらに含む。ディスプレイ(複数可)1080は、標準コンピュータモ
ニタ(複数可)および/または他のディスプレイシステム、技術、もしくは装置を含んで
もよい。少なくとも幾つかの実現形態では、入力/出力装置1050はまた、それを介し
て、ユーザが、スタイラスペン式機器および/または1本以上の指を介して入力を入力す
る、パッドまたはタブレット等のタッチまたはマルチタッチ式装置を含んでもよい。幾つ
かの実施形態では、実施形態は、単一のコンピュータシステム1000例を使用して実現
されてもよく、一方、他の実施形態では、複数のかかるシステム、またはコンピュータシ
ステム1000を成す複数のノードが、実施形態の異なる部分または過程をホストするよ
うに構成されてもよいことが企図される。例えば、一実施形態では、幾つかの要素は、他
の要素を実現するノードとは異なるコンピュータシステム1000の1つ以上のノードを
介して実装されてもよい。
種々の実施形態では、コンピュータシステム1000は、1つのプロセッサ1010を
含む単一プロセッサシステムであってもよく、または複数(例えば、2、4、8、または
別の任意の好適な数)のプロセッサ1010を含む多重プロセッサシステムであってもよ
い。プロセッサ1010は、命令を実行することが可能な任意の好適なプロセッサであっ
てよい。例えば、種々の実施形態では、プロセッサ1010は、x86、PowerPC
、SPARC、もしくはMIPS ISA、または任意の他の好適なISA等の種々のイ
ンストラクション・セット・アーキテクチャ(ISA)のいずれかを実現する汎用または
内蔵プロセッサであってもよい。多重プロセッサシステムにおいては、プロセッサ101
0の各々は、必ずしもではないが、一般的には同一のISAを実現する。
幾つかの実施形態では、少なくとも1つのプロセッサ1010は、グラフィックス・プ
ロセッシング・ユニットであってもよい。グラフィックス・プロセッシング・ユニットま
たはGPUは、パーソナルコンピュータ、ワークステーション、ゲーム機、または他の計
算もしくは電子装置のための専用のグラフィック描画装置と考えることができる。現代の
GPUは、コンピュータグラフィックスの操作および表示において非常に効率的であり得
、その高度に並行の構造は、幅広い複雑なグラフィカルアルゴリズムに関して、それらを
典型的なCPUよりも効果的にすることができる。例えば、グラフィックプロセッサは、
多数のグラフィックプリミティブ動作を、ホスト中央処理装置(CPU)を用いてスクリ
ーンに直接描画するよりも、それらの実行を遥かに高速にする方法で、実施することがで
きる。種々の実施形態では、グラフィック描画は、少なくとも部分的に、かかるGPUの
うちの1つにおける実行、またはかかるGPUのうちの2つ以上における並列実行のため
に構成されるプログラム命令によって、実現されてもよい。GPU(複数可)は、プログ
ラマがGPU(複数可)の機能性を呼び出すことを許可する1つ以上のアプリケーション
プログラマインターフェース(API)を実装してもよい。好適なGPUは、NVIDI
A Corporation,ATI Technologies(AMD)およびその
他等の販売者から市販されることができる。
システムメモリ1020は、プロセッサ1010によってアクセス可能なプログラム命
令および/またはデータを記憶するように構成されてもよい。種々の実施形態では、シス
テムメモリ1020は、静的ランダムアクセスメモリ(SRAM)、同期式動的RAM(
SDRAM)、不揮発性/フラッシュ型メモリ、または任意の他の種類のメモリ等の、任
意の好適なメモリ技術を使用して実現されてもよい。例証される実施形態では、所望の機
能、例えば、本明細書に説明される分散システムにおける計算クラスタのスケーリングの
ための上述のもの等を実現するプログラム命令およびデータは、それぞれ、プログラム命
令1025およびデータ記憶1035としてシステムメモリ1020内に記憶されるよう
に示される。他の実施形態では、プログラム命令および/またはデータは、システムメモ
リ1020またはコンピュータシステム1000とは分離した異なる種類のコンピュータ
アクセス可能媒体または類似の媒体上に受信、送信、または記憶されてもよい。一般的に
述べると、コンピュータアクセス可能媒体は、記憶媒体またはメモリ媒体、例えば、磁気
または光媒体、例えば、I/Oインターフェース1030を介してコンピュータシステム
1000に連結されるディスクまたはCD/DVD−ROM等を含んでもよい。コンピュ
ータアクセス可能媒体を介して記憶されるプログラム命令およびデータは、ネットワーク
インターフェース1040を介して実現され得るネットワークおよび/または無線リンク
等の通信媒体を介して伝達され得る、電気信号、電磁信号、またはデジタル信号等の伝送
媒体または信号によって伝送されてもよい。
一実施形態では、I/Oインターフェース1030は、プロセッサ1010と、システ
ムメモリ1020と、ネットワークインターフェース1040、または入力/出力装置1
050等の他の周辺インターフェースを含む装置内の任意の周辺機器との間のI/O通信
量を調整するように構成されてもよい。幾つかの実施形態では、I/Oインターフェース
1030は、ある構成要素(例えば、システムメモリ1020)からのデータ信号を別の
構成要素(例えば、プロセッサ1010)による使用に好適な形式に変換するための、任
意の必要なプロトコル、適時選択、または他のデータ変換を実施してもよい。幾つかの実
施形態では、I/Oインターフェース1030は、種々の種類の周辺バス、例えば、周辺
構成要素相互接続(PCI)バス標準またはユニバーサルシリアルバス(USB)標準等
の変形を通じて取り付けられる装置のための支持を含んでもよい。幾つかの実施形態では
、I/Oインターフェース1030の機能は、2つ以上の分離した構成要素、例えば、ノ
ースブリッジおよびサウスブリッジ等に分割されてもよい。それに加えて、幾つかの実施
形態では、システムメモリ1020に対するインターフェース等の、I/Oインターフェ
ース1030の機能性のうちの幾つかまたは全ては、プロセッサ1010内に直接組み込
まれてもよい。
ネットワークインターフェース1040は、コンピュータシステム1000とネットワ
ークに取り付けられた他の装置、例えば、他のコンピュータシステムとの間、またはコン
ピュータシステム1000のノード間で、データが交換されることを可能にするように構
成されてもよい。種々の実施形態では、ネットワークインターフェース1040は、例え
ば、任意の好適な種類のイーサネット(登録商標)ネットワーク等の有線または無線の一
般データネットワークを介して、例えば、アナログ音声ネットワークもしくはデジタルフ
ァイバー通信ネットワーク等の電気通信/電話技術ネットワークを介して、ファイバーチ
ャンネルSAN等のストレージエリアネットワークを介して、または任意の他の好適な種
類のネットワークおよび/もしくはプロトコルを介して、通信を支持してもよい。
入力/出力装置1050は、幾つかの実施形態では、1つ以上のディスプレイ端末、キ
ーボード、キーパッド、タッチパッド、スキャン装置、音声もしくは光学認識装置、また
は、1つ以上のコンピュータシステム1000によってデータを入力もしくは取得するの
に好適な任意の他の装置を含んでもよい。複数の入力/出力装置1050が、コンピュー
タシステム1000内に存在してもよく、またはコンピュータシステム1000の種々の
ノード上に分散されてもよい。幾つかの実施形態では、類似の入力/出力装置は、コンピ
ュータシステム1000から分離していてもよく、また例えば、ネットワークインターフ
ェース1040上で、有線または無線接続を通じてコンピュータシステム1000の1つ
以上のノードと相互に作用してもよい。
図7に示される通り、メモリ1020は、本明細書に説明される通り、予定された送達
順序のための時間ベースの項目推奨を提供するように構成されるプログラム命令1025
と、プログラム命令1025によってアクセス可能な種々のデータを含むデータ記憶10
35とを含んでもよい。一実施形態では、プログラム命令1025は、本明細書に説明さ
れる、および図に示される実施形態のソフトウェア要素を含んでもよい。データ記憶10
35は、実施形態にて使用することができるデータを含んでもよい。他の実施形態では、
他のまたは異なるソフトウェア要素およびデータが、含まれてもよい。
当業者であれば、コンピュータシステム1000は、単に例証的であり、本明細書に説
明される立体図技術の範囲を限定することを意図されないことを理解するであろう。具体
的には、コンピュータシステムおよび装置は、コンピュータ、パーソナルコンピュータシ
ステム、デスクトップコンピュータ、ラップトップ、ノートブック、もしくはネットブッ
クコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワ
ークステーション、ネットワークコンピュータ、カメラ、セットトップボックス、携帯機
器、ネットワーク機器、インターネット家電、PDA、無線電話、ページャー、消費者装
置、ビデオゲーム機、ハンドヘルドビデオゲーム装置、アプリケーションサーバ、記憶装
置、例えば、スイッチ、モデム、ルータ等の周辺機器、または一般的な任意の種類の計算
もしくは電子装置を含む、指示される機能を実施することが可能なハードウェアまたはソ
フトウェアの任意の組み合わせを含んでもよい。コンピュータシステム1000はまた、
例証されていない他の装置に接続されてもよく、または代わりに、独立型システムとして
動作してもよい。それに加えて、例証される構成要素によって提供される機能は、幾つか
の実施形態では、より少ない構成要素に組み合わされてもよく、または追加の構成要素内
に分散されてもよい。同様に、幾つかの実施形態では、例証される構成要素のうちの幾つ
かのものの機能性は、提供されなくてもよく、および/または追加の機能性が利用可能で
あってもよい。
また、当業者であれば、種々の項目は、使用中、メモリ内または記憶上に記憶されるよ
うに示されるが、そのこれらの項目または部分は、メモリ管理およびデータの整合性の目
的のために、メモリと他の記憶装置との間で転送されてもよいことも理解するであろう。
別法として、他の実施形態では、ソフトウェア構成要素のうちの幾つかまたは全ては、別
の装置上のメモリ内で実行し、コンピュータ間の通信を介して、例証されるコンピュータ
システムと通信してもよい。また、システム構成要素またはデータ構造のうちの幾つかま
たは全ては、コンピュータアクセス可能媒体、または適切なドライブによって読み取られ
る携帯用文書上に、(例えば、命令または構造化データとして)記憶されてもよく、その
種々の例は、上に説明される。幾つかの実施形態では、コンピュータシステム1000と
分離したコンピュータアクセス可能媒体上に記憶される命令は、伝送媒体、またはネット
ワークおよび/もしくは無線リンク等の通信媒体を介して伝達される電気信号、電磁信号
、もしくはデジタル信号等の信号を介して、コンピュータシステム1000に伝送されて
もよい。種々の実施形態は、コンピュータアクセス可能媒体上で、前述の説明に従って実
現される命令および/またはデータを受信、送信、または記憶することをさらに含んでも
よい。したがって、本発明は、他のコンピュータシステム構成を用いて実践されてもよい
結論
前述の種々の実施形態は、以下の付記を考慮すれば、より良く理解することができる。
1.クラスタデータを記憶する複数のノードを有する現行クラスタであって、該現行ク
ラスタのネットワークエンドポイントで、クラスタデータへのアクセス要求を受信する、
現行クラスタと、現行クラスタへのクラスタスケーリング要求であって、現行クラスタ内
のノードの数または種類の変化を示す、クラスタスケーリング要求を受信することと、ク
ラスタスケーリング要求に応答して、クラスタスケーリング要求に示される通り、複数の
ノードを有する新しいクラスタを作成することと、現行クラスタから新しいクラスタ内の
複数のノードへのクラスタデータのコピーを開始することであって、該コピーが実施され
ている間、現行クラスタは、クラスタデータへの読み取り要求に継続して応答する、開始
することと、現行クラスタのネットワークエンドポイントを、新しいクラスタに移動させ
ることと、現行クラスタを無効にすることと、を行うように構成される、クラスタ制御イ
ンターフェースと、を実現するように構成される、複数の計算装置を備える、システム。
2.クラスタスケーリング要求の受信に応答して、クラスタ制御インターフェースは、
現行クラスタを読み取り専用モードで動作するように設定するようにさらに構成される、
付記1に記載のシステム。
3.現行クラスタの各ノードは、クラスタデータの1つ以上のデータスライスを記憶し
、クラスタデータから新しいクラスタ内の複数のノードへのコピーは、現行クラスタのノ
ード内の各データスライスに関して、データスライスを、割り当てスキームに従って、新
しいクラスタ内の複数のノード内の1つ以上のデータスライスに割り当てることと、クラ
スタデータを、現行クラスタのノード内の各データスライスから、新しいクラスタ内の複
数のノード内の割り当てられた1つ以上のデータスライスに転送することと、を含む、付
記1に記載のシステム。
4.複数の計算装置は、ネットワークベースのクラスタホストサービスを実現するより
大きい計算装置の集合体の一部であり、現行ノードクラスタのノードおよび新しいクラス
タ内の複数のノードの各々は、ネットワークベースのクラスタホストサービスによってホ
ストされる仮想計算ノードである、付記1に記載のシステム。
5.複数の計算装置によって、クラスタデータを記憶する複数のノードを有する現行ク
ラスタであって、該現行クラスタのネットワークエンドポイントで、クラスタデータへの
アクセス要求を受信する、現行クラスタへのクラスタスケーリングイベントを検出するこ
とと、クラスタスケーリングイベントに基づいて、現行クラスタのノードの変更を決定す
ることと、変更によって示される通り、複数のノードを有する新しいクラスタを作成する
ことと、現行クラスタから新しいクラスタ内の複数のノードへのクラスタデータのコピー
を開始することであって、該コピーが実施されている間、現行クラスタは、クラスタデー
タへの読み取り要求に継続して応答する、開始することと、現行クラスタのネットワーク
エンドポイントを、新しいクラスタに移動させることと、を実施することを含む、方法。
6.変更は、現行クラスタ内のノードの異なる数または種類へのものである、付記5に
記載の方法。
7.ノードの種類の変更は、ノードの異なる記憶容量またはノードの異なる計算能力で
ある、付記6に記載の方法。
8.複数の計算装置は、ネットワークベースのクラスタホストサービスを実現するより
大きい計算装置の集合体の一部であり、計算装置の集合体のうちの少なくとも1つ以上は
、ネットワークベースのクラスタホストサービスのためのクラスタ制御インターフェース
を実現し、該方法は、少なくとも1つ以上の計算装置上のネットワークベースのクラスタ
ホストサービスのためのクラスタ制御インターフェースによって、ラスタデータを記憶す
る複数のノードを有する現行クラスタへのクラスタスケーリングイベントの検出が、現行
クラスタへのクラスタスケーリング要求を受信することを含み、クラスタスケーリング要
求が、現行クラスタと数または種類が異なる複数のノードを示すことと、クラスタスケー
リングイベントに基づく、現行クラスタのノードの変化の決定が、クラスタスケーリング
要求によって示される通り、現行クラスタと数または種類が異なる複数のノードを変化と
して決定することを含むことと、クラスタスケーリング要求の受信に応答して、該作成、
該開始、および該移動が実施されるように指図することと、を実施することをさらに含む
、付記5に記載の方法。
9.クラスタスケーリング要求の受信に応答して、制御インターフェースによって、現
行クラスタに読み取り専用モードで動作するように指図することをさらに含む、付記8に
記載の方法。
10.現行ノードクラスタのノードおよび新しいクラスタ内の複数のノードの各々は、
ネットワークベースのクラスタホストサービスによってホストされる仮想計算ノードであ
る、付記8に記載の方法。
11.各ノードは、クラスタデータを記憶する1つ以上のデータスライスを含み、コピ
ーは、割り当てスキームに従って、現行クラスタのノード内の各データスライスから、新
しいクラスタ内の複数のノード内の1つ以上のデータスライスへクラスタデータを送信す
ることを含む、付記5に記載の方法。
12.各ノードは、クラスタデータを記憶する1つ以上のデータスライスを含み、該方
法は、現行クラスタのノード上のデータスライス上にクラスタデータを分散するために使
用される別の分散スキームとは異なる分散スキームに基づいて、新しいクラスタのノード
上のデータスライス上にクラスタデータを分散することをさらに含む、付記5に記載の方
法。
13.ユーザが、ネットワークエンドポイントの移動の前および後に、アクセス要求を
同一のネットワークアドレスに送信する、付記5に記載の方法。
14.現行クラスタは、クラスタデータに加えて、複製クラスタデータを記憶し、現行
クラスタから新しいクラスタ内の複数のノードのクラスタデータのコピーは、複製クラス
タデータを現行クラスタから新しいクラスタへ送信することなく実施され、コピーの完了
に応答して、新しいクラスタ内の複数のノード間でクラスタデータを複製することをさら
に含む、付記5に記載の方法。
15.該コピーおよび該移動の完了に応答して、現行クラスタを終了することをさらに
含む、付記5に記載の方法。
16.非一時的コンピュータ可読記憶媒体であって、複数の計算装置によって実行され
るときに、複数の計算装置に、クラスタデータを記憶する複数のノードを有する現行クラ
スタであって、現行クラスタのネットワークエンドポイントで、クラスタデータへのアク
セス要求を受信する、現行クラスタへのクラスタスケーリングイベントを検出することと
、クラスタスケーリングイベントの検出に応答して、現行クラスタに読み取り専用モード
で動作するように指図することと、クラスタスケーリングイベントに基づいて、現行クラ
スタのノードの変化を決定することと、変化によって示される通り、複数のノードを有す
る新しいクラスタを作成することと、現行クラスタから新しいクラスタ内の複数のノード
へのクラスタデータのコピーを開始することと、現行クラスタのネットワークエンドポイ
ントを、新しいクラスタに移動させることと、を実現させるプログラム命令を記憶する、
非一時的コンピュータ可読記憶媒体。
17.プログラム命令はさらに、複数の計算装置によって実行されるときに、複数の計
算装置に、該コピーおよび該移動の完了に応答して、現行クラスタを終了することを実現
させる、付記16に記載の非一時的コンピュータ可読記憶媒体。
18.現行クラスタおよび新しいクラスタは、分散されたデータウェアハウスシステム
のためのデータ処理クラスタである、付記16に記載の非一時的コンピュータ可読記憶媒
体。
19.クラスタデータは、現行クラスタのためのデータベーススキーマを含む、付記1
8に記載の非一時的コンピュータ可読記憶媒体。
20.変更は、現行クラスタのノードより大きい記憶容量を有するノードへのものであ
る、付記16に記載の非一時的コンピュータ可読記憶媒体。
種々の実施形態は、コンピュータアクセス可能媒体上に前述の説明に従って実現される
命令および/またはデータを、受信、送信、または記憶することをさらに含んでもよい。
一般的に述べると、コンピュータアクセス可能媒体としては、磁気または光媒体等の記憶
媒体またはメモリ媒体、例えば、ディスクまたはDVD/CD−ROM、不揮発性媒体、
例えば、RAM(例えば、SDRAM、DDR、RDRAM、SRAM等)、ROM等、
ならびに、ネットワークおよび/または無線リンク等の通信媒体を介して伝達される電気
、電磁、またはデジタル信号等の伝送媒体または信号を挙げることができる。
図中に例証される、および本明細書に説明される種々の方法は、本方法の実施形態例を
表す。方法は、ソフトウェア、ハードウェア、またはこれらの組み合わせにおいて実現さ
れてもよい。方法の順序は、変更されてもよく、種々の要素は、追加、並べ替え、組み合
わせ、省略、修正等されてもよい。
種々の修正および変更が、本開示の利益を有する当業者に明らかであるようになされて
もよい。本発明は、全てのかかる修正および変更を包含し、またしたがって、限定的では
なくむしろ例証的であると見なされるように上記の説明を包含することが意図される。

Claims (9)

  1. 複数の計算装置であって、
    クラスタデータを記憶する複数のノードを有する現行クラスタであって、各ノードはそれぞれ少なくとも1つの、前記クラスタデータのそれぞれの部分を記憶する記憶装置を備え、前記複数のノードを含む前記現行クラスタの1つのネットワークエンドポイントで、前記クラスタデータへのアクセス要求を受信する、現行クラスタと、
    クラスタ制御インターフェースであって、
    クラスタスケーリングイベントに応答して前記現行クラスタのノードから新しいクラスタ内の複数のノードへデータをコピーし
    前記コピーが実行されている間に、前記データに対する読み取り要求に、前記現行クラスタによって応答し、前記読み取り要求は、前記新しいクラスタに既にコピーされたデータに対する読み取り要求を含み、前記読み取り要求はクライアントから前記現行クラスタの前記複数のノードに対する同じ1つのネットワークエンドポイントに送信され、
    前記コピーが完了した後に、前記新しいクラスタの前記複数のノードによって前記1つのネットワークエンドポイントに対する要求が取り扱われるように、前記現行クラスタの前記1つのネットワークエンドポイントが前記新しいクラスタに移動し、前記クライアントの観点から見て、前記1つのネットワークエンドポイントのネットワークアドレスは、前記1つのネットワークエンドポイントが移動される前及び後で同じままであ
    前記現行クラスタの前記ノード内の各データスライスに関して、前記データスライスを、割り当てスキームに従って、前記新しいクラスタ内の前記複数のノード内の1つ以上のデータスライスに割り当て、
    前記クラスタデータを、前記現行クラスタの前記ノード内の各データスライスから、前記新しいクラスタ内の前記複数のノード内の前記割り当てられた1つ以上のデータスライスに転送し、
    前記割り当てスキームは、前記新しいクラスタ内の前記複数のノードの間における前記コピーの作業負荷の均等な分散を確実にする
    ように構成される前記クラスタ制御インターフェース、
    とを実現するように構成される、複数の計算装置を備える、システム。
  2. クラスタスケーリングイベントに応答して現行クラスタのノードから新しいクラスタ内の複数のノードへデータをコピーすることと、
    前記コピーが実行されている間に、前記データに対する読み取り要求に、前記現行クラスタによって応答することであって、前記読み取り要求は、前記新しいクラスタに既にコピーされたデータに対する読み取り要求を含み、前記読み取り要求はクライアントから前記現行クラスタの前記複数のノードに対する同じ1つのネットワークエンドポイントに送信される、前記応答することと、
    前記コピーが完了した後に、前記新しいクラスタの前記複数のノードによって前記1つのネットワークエンドポイントに対する要求が取り扱われるように、前記現行クラスタの前記1つのネットワークエンドポイントが前記新しいクラスタに移動することであって、前記クライアントの観点から見て、前記1つのネットワークエンドポイントのネットワークアドレスは、前記1つのネットワークエンドポイントが移動される前及び後で同じままである、前記移動することと、を含む方法であって、
    前記現行クラスタの各ノードは、前記クラスタデータの1つ以上のデータスライスを記憶し、前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記コピーは、
    前記現行クラスタの前記ノード内の各データスライスに関して、前記データスライスを、割り当てスキームに従って、前記新しいクラスタ内の前記複数のノード内の1つ以上のデータスライスに割り当てることと、
    前記クラスタデータを、前記現行クラスタの前記ノード内の各データスライスから、前記新しいクラスタ内の前記複数のノード内の前記割り当てられた1つ以上のデータスライスに転送することと、
    を含み、
    前記割り当てスキームは、前記新しいクラスタ内の前記複数のノードの間における前記コピーの作業負荷の均等な分散を確実にする、方法。
  3. 前記新しいクラスタは前記現行クラスタと異なる数のノードまたは異なる種類のノードを有する、請求項に記載の方法。
  4. 前記新しいクラスタの前記ノードの前記種類は、前記現行クラスタの前記ノードの前記種類とは異なる記憶容量、または、前記現行クラスタの前記ノードの計算能力とは異なる計算能力を有する、請求項に記載の方法。
  5. 現行ノードクラスタの前記ノードおよび前記新しいクラスタ内の前記複数のノードの各々は、前記ネットワークベースのクラスタホストサービスによってホストされる仮想計算ノードである、請求項に記載の方法。
  6. 各ノードは、クラスタデータを記憶するための1つ以上のデータスライスを含み、前記方法は、前記現行クラスタの前記ノード上の前記データスライス上に前記クラスタデータを分散するために使用されるスキームとは異なる分散スキームに基づいて、前記新しいクラスタの前記ノード上の前記データスライス上に前記クラスタデータを分散することをさらに含む、請求項に記載の方法。
  7. 前記現行クラスタは、前記クラスタデータに加えて、複製クラスタデータを記憶し、
    前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記クラスタデータの前記コピーは、前記複製クラスタデータを前記現行クラスタから前記新しいクラスタへ送信することなく実施され、
    前記コピーの完了に応答して、前記新しいクラスタ内の前記複数のノード間で前記クラスタデータを複製することをさらに含む、請求項に記載の方法。
  8. 非一時的コンピュータ可読記憶媒体であって、複数の計算装置によって実行されるときに、前記複数の計算装置に、
    クラスタスケーリングイベントに応答して現行クラスタのノードから新しいクラスタのノードへデータをコピーし、
    前記コピーが実行されている間に、前記データに対する読み取り要求に、前記現行クラスタによって応答し、前記読み取り要求は、前記新しいクラスタに既にコピーされたデータに対する読み取り要求を含み、前記読み取り要求はクライアントから前記現行クラスタの前記複数のノードに対する同じ1つのネットワークエンドポイントに送信され、
    前記コピーが完了した後に、前記新しいクラスタの前記複数のノードによって前記1つのネットワークエンドポイントに対する要求が取り扱われるように、前記現行クラスタの前記1つのネットワークエンドポイントが前記新しいクラスタに移動し、前記クライアントの観点から見て、前記1つのネットワークエンドポイントのネットワークアドレスは、前記1つのネットワークエンドポイントが移動される前及び後で同じままである、ことを実現させるプログラム命令を記憶する、非一時的コンピュータ可読記憶媒体であって、
    前記現行クラスタの各ノードは、前記クラスタデータの1つ以上のデータスライスを記憶し、前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記コピーは、
    前記現行クラスタの前記ノード内の各データスライスに関して、前記データスライスを、割り当てスキームに従って、前記新しいクラスタ内の前記複数のノード内の1つ以上のデータスライスに割り当てることと、
    前記クラスタデータを、前記現行クラスタの前記ノード内の各データスライスから、前記新しいクラスタ内の前記複数のノード内の前記割り当てられた1つ以上のデータスライスに転送することと、
    を含み、
    前記割り当てスキームは、前記新しいクラスタ内の前記複数のノードの間における前記コピーの作業負荷の均等な分散を確実にする、非一時的コンピュータ可読記憶媒体
  9. 前記現行クラスタは、前記クラスタデータに加えて、複製クラスタデータを記憶し、
    前記現行クラスタから前記新しいクラスタ内の前記複数のノードへの前記クラスタデータの前記コピーは、前記複製クラスタデータを前記現行クラスタから前記新しいクラスタへ送信することなく実施され、
    前記非一時的コンピュータ可読記憶媒体は、複数の計算装置によって実行されるときに、前記複数の計算装置に、
    前記コピーの完了に応答して、前記新しいクラスタ内の前記複数のノード間で前記クラスタデータを複製する
    ことを実現させる追加のプログラム命令を記憶する、請求項に記載の非一時的コンピュータ可読記憶媒体。
JP2017137897A 2012-11-26 2017-07-14 分散計算システムにおける計算クラスタのスケーリング Active JP6670274B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/685,649 US10394611B2 (en) 2012-11-26 2012-11-26 Scaling computing clusters in a distributed computing system
US13/685,649 2012-11-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015544180A Division JP6227001B2 (ja) 2012-11-26 2013-11-26 分散計算システムにおける計算クラスタのスケーリング

Publications (2)

Publication Number Publication Date
JP2017188165A JP2017188165A (ja) 2017-10-12
JP6670274B2 true JP6670274B2 (ja) 2020-03-18

Family

ID=50774297

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015544180A Active JP6227001B2 (ja) 2012-11-26 2013-11-26 分散計算システムにおける計算クラスタのスケーリング
JP2017137897A Active JP6670274B2 (ja) 2012-11-26 2017-07-14 分散計算システムにおける計算クラスタのスケーリング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015544180A Active JP6227001B2 (ja) 2012-11-26 2013-11-26 分散計算システムにおける計算クラスタのスケーリング

Country Status (8)

Country Link
US (1) US10394611B2 (ja)
EP (1) EP2923271A4 (ja)
JP (2) JP6227001B2 (ja)
CN (2) CN110442458A (ja)
AU (1) AU2013347807B2 (ja)
CA (1) CA2892889C (ja)
SG (2) SG10201704262QA (ja)
WO (1) WO2014082052A2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032078B2 (en) * 2013-01-02 2015-05-12 International Business Machines Corporation Predictive scaling for clusters
US10303663B1 (en) * 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
US11474874B2 (en) 2014-08-14 2022-10-18 Qubole, Inc. Systems and methods for auto-scaling a big data system
US10355942B1 (en) * 2014-09-29 2019-07-16 Amazon Technologies, Inc. Scaling of remote network directory management resources
US20160105323A1 (en) * 2014-10-14 2016-04-14 Microsoft Corporation Node identification using clusters
US9628350B2 (en) 2014-11-05 2017-04-18 Amazon Technologies, Inc. Dynamic scaling of storage volumes for storage client file systems
US9848041B2 (en) 2015-05-01 2017-12-19 Amazon Technologies, Inc. Automatic scaling of resource instance groups within compute clusters
US10701037B2 (en) 2015-05-27 2020-06-30 Ping Identity Corporation Scalable proxy clusters
US11436667B2 (en) 2015-06-08 2022-09-06 Qubole, Inc. Pure-spot and dynamically rebalanced auto-scaling clusters
US10929417B2 (en) 2015-09-11 2021-02-23 International Business Machines Corporation Transforming and loading data utilizing in-memory processing
US10852998B2 (en) 2016-02-25 2020-12-01 Rubrik, Inc. Sub-cluster recovery using a partition group index
EP3449363A4 (en) 2016-04-28 2019-10-02 Snowflake Inc. MULTIPLE CLUSTER WAREHOUSE
US11080207B2 (en) 2016-06-07 2021-08-03 Qubole, Inc. Caching framework for big-data engines in the cloud
KR101700108B1 (ko) * 2016-08-10 2017-01-31 한국과학기술정보연구원 네트워크 클러스터링 방법 및 장치
US10606664B2 (en) 2016-09-07 2020-03-31 Qubole Inc. Heterogeneous auto-scaling big-data clusters in the cloud
US10587580B2 (en) 2016-10-26 2020-03-10 Ping Identity Corporation Methods and systems for API deception environment and API traffic control and security
US10147103B2 (en) 2017-03-24 2018-12-04 International Business Machines Corproation System and method for a scalable recommender system using massively parallel processors
US10666714B2 (en) 2017-04-04 2020-05-26 International Business Machines Corporation Data integration application execution management
US10733024B2 (en) 2017-05-24 2020-08-04 Qubole Inc. Task packing scheduling process for long running applications
US11962467B2 (en) * 2017-08-14 2024-04-16 International Business Machines Corporation Managing heterogeneous cluster environment
EP4020282A1 (en) 2017-10-13 2022-06-29 Ping Identity Corporation Methods and apparatus for analyzing sequences of application programming interface traffic to identify potential malicious actions
US11228489B2 (en) 2018-01-23 2022-01-18 Qubole, Inc. System and methods for auto-tuning big data workloads on cloud platforms
US10230683B1 (en) * 2018-02-09 2019-03-12 Capital One Services, Llc Routing for large server deployments
US10824623B2 (en) * 2018-02-28 2020-11-03 Vmware, Inc. Efficient time-range queries on databases in distributed computing systems
US10733029B2 (en) * 2018-07-31 2020-08-04 Hewlett Packard Enterprise Development Lp Movement of services across clusters
US10915455B2 (en) * 2018-12-04 2021-02-09 Netflix, Inc. Cache warming: agility for a stateful service
US11496475B2 (en) 2019-01-04 2022-11-08 Ping Identity Corporation Methods and systems for data traffic based adaptive security
US11042416B2 (en) 2019-03-06 2021-06-22 Google Llc Reconfigurable computing pods using optical networks
US11704316B2 (en) 2019-05-31 2023-07-18 Qubole, Inc. Systems and methods for determining peak memory requirements in SQL processing engines with concurrent subtasks
US11144360B2 (en) 2019-05-31 2021-10-12 Qubole, Inc. System and method for scheduling and running interactive database queries with service level agreements in a multi-tenant processing system
US11194632B2 (en) 2019-06-18 2021-12-07 Nutanix, Inc. Deploying microservices into virtualized computing systems
US11122347B2 (en) 2019-07-01 2021-09-14 Google Llc Reconfigurable computing pods using optical networks with one-to-many optical switches
WO2021119676A2 (en) * 2020-04-21 2021-06-17 Zeku, Inc. Data plane scalable architecture for wireless communication
US11550633B2 (en) * 2020-10-31 2023-01-10 Nutanix, Inc. Intra-footprint computing cluster bring-up
CN112905719A (zh) * 2021-03-09 2021-06-04 广州虎牙科技有限公司 数据处理方法、装置、设备和介质
US11900172B2 (en) 2021-07-30 2024-02-13 Nutanix, Inc. Computing cluster bring-up on public cloud infrastructure using expressed intents
US11372820B1 (en) * 2021-08-19 2022-06-28 Snowflake Inc. Zone balancing in a multi cluster database system
US11842085B1 (en) 2022-03-31 2023-12-12 Amazon Technologies, Inc. Up-sized cluster performance modeling for a tiered data processing service

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835954A (en) 1996-09-12 1998-11-10 International Business Machines Corporation Target DASD controlled data migration move
US6748429B1 (en) 2000-01-10 2004-06-08 Sun Microsystems, Inc. Method to dynamically change cluster or distributed system configuration
WO2005043323A2 (en) * 2003-10-27 2005-05-12 Archivas, Inc. Policy-based management of a redundant array of independent nodes
US7305418B2 (en) 2003-11-05 2007-12-04 International Business Machines Corporation Selecting and showing copy pairs in a storage subsystem copy services graphical user interface
US8356098B2 (en) 2003-11-10 2013-01-15 Hewlett-Packard Development Company, L.P. Dynamic management of workloads in clusters
US8281152B2 (en) * 2004-06-18 2012-10-02 Emc Corporation Storage data encryption
JP4728717B2 (ja) 2004-12-03 2011-07-20 国立大学法人東京工業大学 自律ストレージ装置、自律ストレージシステム、分散ストレージシステム、負荷分散プログラム及び負荷分散方法
US8880799B2 (en) 2005-09-30 2014-11-04 Cleversafe, Inc. Rebuilding data on a dispersed storage network
DE602005014992D1 (de) 2005-10-31 2009-07-30 Packetfront Systems Ab Hochverfügbarkeitsnetzwerksystem
US7702947B2 (en) * 2005-11-29 2010-04-20 Bea Systems, Inc. System and method for enabling site failover in an application server environment
US7484059B1 (en) 2006-06-29 2009-01-27 Emc Corporation Full array non-disruptive migration of extended storage functionality
US7917469B2 (en) * 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US8341459B2 (en) * 2007-08-01 2012-12-25 Brocade Communications Systems, Inc. Data migration without interrupting host access and with data lock for write access requests such that held write access requests do not expire
US8887158B2 (en) 2008-03-07 2014-11-11 Sap Se Dynamic cluster expansion through virtualization-based live cloning
US8234377B2 (en) 2009-07-22 2012-07-31 Amazon Technologies, Inc. Dynamically migrating computer networks
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
JP5190084B2 (ja) 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US9459926B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US8260840B1 (en) * 2010-06-28 2012-09-04 Amazon Technologies, Inc. Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US8832130B2 (en) * 2010-08-19 2014-09-09 Infosys Limited System and method for implementing on demand cloud database
US20120078846A1 (en) * 2010-09-24 2012-03-29 Stephen Gold Systems and methods of managing virtual storage resources
US8515915B2 (en) * 2010-09-24 2013-08-20 Hitachi Data Systems Corporation System and method for enhancing availability of a distributed object storage system during a partial database outage
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8886609B2 (en) * 2010-12-17 2014-11-11 Microsoft Corporation Backup and restore of data from any cluster node
US8966486B2 (en) * 2011-05-03 2015-02-24 Microsoft Corporation Distributed multi-phase batch job processing
US8954787B2 (en) * 2011-05-09 2015-02-10 Cleversafe, Inc. Establishing trust in a maintenance free storage container
US9703610B2 (en) 2011-05-16 2017-07-11 Oracle International Corporation Extensible centralized dynamic resource distribution in a clustered data grid
US10585766B2 (en) * 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US8965921B2 (en) * 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
US9258266B2 (en) * 2012-08-30 2016-02-09 Cisco Technology, Inc. Host detection by top of rack switch devices in data center environments

Also Published As

Publication number Publication date
EP2923271A4 (en) 2016-04-20
JP6227001B2 (ja) 2017-11-08
WO2014082052A4 (en) 2014-09-04
SG11201504111WA (en) 2015-07-30
CA2892889C (en) 2020-11-10
WO2014082052A3 (en) 2014-07-17
CN110442458A (zh) 2019-11-12
AU2013347807A1 (en) 2015-06-18
AU2013347807B2 (en) 2017-06-15
CN104813292A (zh) 2015-07-29
SG10201704262QA (en) 2017-06-29
US10394611B2 (en) 2019-08-27
WO2014082052A2 (en) 2014-05-30
JP2017188165A (ja) 2017-10-12
EP2923271A2 (en) 2015-09-30
CA2892889A1 (en) 2014-05-30
US20140149590A1 (en) 2014-05-29
JP2016503550A (ja) 2016-02-04

Similar Documents

Publication Publication Date Title
JP6670274B2 (ja) 分散計算システムにおける計算クラスタのスケーリング
US9983825B2 (en) Efficient data volume replication for block-based storage
US10489422B2 (en) Reducing data volume durability state for block-based storage
US9747179B2 (en) Data management agent for selective storage re-caching
JP6254152B2 (ja) 仮想ストレージ装置ゲートウェイ
US8832234B1 (en) Distributed data storage controller
JP6607783B2 (ja) 分散キャッシュクラスタ管理
US20080126834A1 (en) On-demand provisioning of computer resources in physical/virtual cluster environments
WO2017189133A1 (en) Location-based resource availability management in a partitioned distributed storage environment
WO2012125144A1 (en) Systems and methods for sizing resources in a cloud-based environment
US10505862B1 (en) Optimizing for infrastructure diversity constraints in resource placement
US10326826B1 (en) Migrating an on premises workload to a web services platform
Ford et al. Plugging {Side-Channel} Leaks with Timing Information Flow Control
US9231957B2 (en) Monitoring and controlling a storage environment and devices thereof
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
Yan Cloud Storage Services
US20200319989A1 (en) Collecting performance metrics of a device
US11853317B1 (en) Creating replicas using queries to a time series database
Wang et al. Rio: a personal storage system in multi-device and cloud
Aashabegum et al. Formation of Single and Multinode Clusters in Hadoop Distributed File System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190109

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191105

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20191114

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: 20200204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200228

R150 Certificate of patent or registration of utility model

Ref document number: 6670274

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250