JP7148033B2 - スーパークラスタにわたる負荷分散 - Google Patents

スーパークラスタにわたる負荷分散 Download PDF

Info

Publication number
JP7148033B2
JP7148033B2 JP2020567564A JP2020567564A JP7148033B2 JP 7148033 B2 JP7148033 B2 JP 7148033B2 JP 2020567564 A JP2020567564 A JP 2020567564A JP 2020567564 A JP2020567564 A JP 2020567564A JP 7148033 B2 JP7148033 B2 JP 7148033B2
Authority
JP
Japan
Prior art keywords
machine
supercluster
machines
content data
pub
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
JP2020567564A
Other languages
English (en)
Other versions
JP2021526268A (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 JP2021526268A publication Critical patent/JP2021526268A/ja
Application granted granted Critical
Publication of JP7148033B2 publication Critical patent/JP7148033B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • H04L47/745Reaction in network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

[著作権表示]
本特許文献は、著作権保護の対象となる資料を含む。著作権者は、本特許文献または米国特許商標庁のファイルにおけるあらゆる関連資料の複製に対して異議を唱えるものではないが、そうでなければ、いかなる理由があろうとも全ての著作権を留保する。
[関連出願の相互参照]
本特許協働条約(PCT)特許出願は、2018年6月7日出願された、「スーパークラスタにわたる負荷分散」と題する米国出願第16/002,919号の優先権を主張する。当該米国出願は、参照により、全ての内容が本明細書に組み込まれる。
本技術は概して、コンテンツ配信ネットワーク(CDN)などのネットワーク内のスーパークラスタ内および当該スーパークラスタにわたるコンテンツの分散に関する。
データセンタは、データ格納およびデータ処理が可能な機械を各々が含み得る1または複数のスーパークラスタを含み得る。典型的には、各スーパークラスタは、データセンタ内の多数のラック(または物理クラスタ)に及ぶ。いくつかの実装において、1または複数のスーパークラスタがコンテンツ配信ネットワーク(CDN)内で用いられ得る。
CDNは、サーバ(各々がCDNノードと称される)の地理的に分散されたネットワークであり、オリジンサーバがオリジンサーバのコンテンツデータを、当該コンテンツデータを消費するクライアントへ配信するのを容易にするためのものである。オリジンサーバから遠く離れているクライアントへ配信するために、クライアントに地理的に近接するCDNノードは、オリジンサーバに代わって、コンテンツデータをそれらのクライアントに提供できる。特に、CDNノードは、オリジンサーバのコンテンツデータを複製およびキャッシュし、複製およびキャッシュしたコンテンツデータをクライアントに提供できる。いくつかのCDNノードは、それらのCDNノードがクライアントに近接していることから、「エッジノード」と称される。
スーパークラスタは、CDNの1または複数のノードを実装するために用いられ得る。例えば、ノードは、スーパークラスタの機械により実装され得る。スーパークラスタは、CDNのエッジノードを実装するために用いられ得る。それに関連して、スーパークラスタ内の各機械は、コンテンツデータの総ライブラリの少なくともいくつかの部分(例えば、少なくとも1つのスライス)を担うキャッシュである。総ライブラリは、1または複数のスーパークラスタに結び付けられるプロパティのセットにより定義される。そのため、総ライブラリを構成するスライスは、1または複数のスーパークラスタ内の機械に割り当てられる。
スーパークラスタ内の機械は、予め定められた/スケジューリングされた非可用性(例えば、メンテナンス等)および予期しない/突然の非可用性(例えば、非応答性、処理遅延、電源遮断等)を含む様々な理由で利用不可能になり得る。所与のスライスを格納する一次機械が利用不可能である場合、当該スライスを格納する二次機械が、当該スライスをクライアントに提供するよう選択され得る。所与のリソース/機械が割り当てられるスライスを選択するために、一貫したハッシュアルゴリズムが用いられる。この一貫したハッシュアルゴリズムは、機械のリストにわたって反復する。リスト上での機械の順序は、ソースキー(CDN内の要求されるユニフォームリソースロケータ(URL)の正規化バージョンなど)に基づいて決定され得る。本方式では、機械が利用不可能であると判断されたことに応答して、利用不可能な機械が担うコンテンツデータは、スーパークラスタ内の多数の(理想的には全ての)他の機械に拡散され得るので、ホットスポットが回避される。ホットスポットは、スーパークラスタの所与の機械により、当該機械がかなりの量のトラフィックおよび処理を負担するように格納および提供されている1または複数の一般的なスライスを指す。所与のスーパークラスタ内の十分な数の機械がオフラインになった場合、残りの機械は、リソースが利用不可能であることに起因して、追加の負荷に圧倒されてしまい得る。従来のデータセンタが機械ステータスと可用性情報との伝達に関連して提供する機械間または機械グループ間の通信は、不十分である。
複数の機械と、複数の機械の各々がサブスクライブするパブリッシュ-サブスクライブ(Pub-Sub)チャネルとを含むスーパークラスタの実施形態が提供される。複数の機械の各々は、可用性ステータスおよびリソース割り当て情報をPub-Subチャネルにパブリッシュし、Pub-Subチャネルを介して、複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信し、かつ、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の1つへ転送するように構成される。
可用性ステータスは、コンテンツデータを格納するために複数の機械の各々が利用可能であるかどうかを示す。リソース割り当て情報は、複数の機械の各々により格納されているコンテンツデータを特定する。Pub-Subチャネルは、好ましくは、マルチキャストアドレスを含む。
一態様によれば、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の1つへ転送することは、複数の機械のうちの第1の機械が、コンテンツデータの要求をクライアントから受信することと、第1の機械が、第1の機械はコンテンツデータを格納していない、と判断することと、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータは複数の機械のうちの第2の機械に格納されている、と判断することと、要求を第2の機械へ転送することとを含む。
複数の機械のうちの第1の機械は、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、複数の機械のうちの第2の機械により所有されているコンテンツデータを所有し得る。
第2の機械により現在所有されているコンテンツデータを所有するために、第1の機械は、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、第2の機械により所有されているコンテンツデータを特定し、第2の機械により所有されているコンテンツデータを所有するための可用性をPub-Subチャネルにパブリッシュし、Pub-Subチャネルを介して、第2の機械からの許可を第2の機械から受信し、第2の機械により所有されているコンテンツデータを所有し、コンテンツデータの中継された要求を複数の機械のうちの第3の機械から受信し、かつ、中継された要求に応答して、コンテンツデータを提供し得る。
第2の機械により現在所有されているコンテンツデータを所有するために、第1の機械は、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータを現在格納している第2の機械の数は閾値未満である、と判断し、コンテンツデータを所有するための可用性をPub-Subチャネルにパブリッシュし、Pub-Subチャネルを介して、コンテンツデータを現在格納している第2の機械から許可を受信し、コンテンツデータを所有し、コンテンツデータの中継された要求を複数の機械のうちの第3の機械から受信し、かつ、中継された要求に応答して、コンテンツデータを提供し得る。
複数の機械のうちの第1の機械は、別のスーパークラスタ内の第2の機械へのブリッジを確立するように構成され得る。別のスーパークラスタは、好ましくは、スーパークラスタに近接しており、地理的に最も近いスーパークラスタであり得る。ブリッジは、別のスーパークラスタの少なくともいくつかの機械の各々の可用性ステータスおよびリソース割り当て情報を第1の機械へ中継するように構成される。
第1の機械は、Pub-Subチャネル上の複数の機械の可用性ステータスに基づいて、複数の機械のうちの利用不可能な機械の数は閾値を超えている、と判断し得る。ブリッジは、利用不可能な機械の数は閾値を超えているという判断に応答して確立され得る。ブリッジは、伝送制御プロトコル(TCP)接続を含み得る。
第1の機械は、スーパークラスタに対する地理的な近接度に基づいて、他のスーパークラスタを特定し得る。第1の機械は、ドメインネームシステム(DNS)要求を行うことにより、他のスーパークラスタが当該スーパークラスタに隣接していることを特定し得る。第1の機械は、Pub-Subチャネル上の他のスーパークラスタの少なくともいくつかの機械の可用性ステータスおよびリソース割り当て情報をパブリッシュし得る。
スーパークラスタの第3の機械は、コンテンツデータの要求をクライアントから受信し、Pub-Subチャネル上の別のスーパークラスタの少なくともいくつかの機械のリソース割り当て情報に基づいて、コンテンツデータは別のスーパークラスタの第4の機械により格納されている、と判断し、かつ、要求を第4の機械へ転送し得る。
一態様によれば、スーパークラスタの複数の機械にわたって負荷を分散するための方法は、スーパークラスタの複数の機械の各々が可用性ステータスおよびリソース割り当て情報をPub-Subチャネルにパブリッシュする段階であって、複数の機械の各々は、Pub-Subチャネルをサブスクライブする、パブリッシュする段階と、Pub-Subチャネルを介して、複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信する段階と、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の1つへ転送する段階とを備える。
別の態様によれば、非一時的コンピュータ可読媒体は、実行された場合、スーパークラスタの複数の機械の各々のプロセッサに、可用性ステータスおよびリソース割り当て情報をPub-Subチャネルにパブリッシュする手順であって、複数の機械の各々は、Pub-Subチャネルをサブスクライブする、パブリッシュする手順と、Pub-Subチャネルを介して、複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信する手順と、Pub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の1つへ転送する手順とを実行させるようなコンピュータ可読命令を備える。
別の態様によれば、スーパークラスタにわたって負荷を分散するための方法は、第1のスーパークラスタの第1の機械が、第1のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する段階と、第1の機械が第2のスーパークラスタ内の第2の機械とのブリッジを確立する段階であって、第2のスーパークラスタは、第1のスーパークラスタに隣接する、確立する段階と、第1の機械が、ブリッジを介して、第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する段階と、第1の機械が、第1のスーパークラスタのPub-Subチャネル上で、第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階とを備える。
可用性ステータスは、コンテンツデータを格納するために第2のスーパークラスタの複数の機械の各々が利用可能であるかどうかを示し得る。リソース割り当て情報は、第2のスーパークラスタの複数の機械の各々が担うコンテンツデータを特定し得る。
方法は、第1のスーパークラスタのPub-Subチャネル上の第1のスーパークラスタの複数の機械が第1のスーパークラスタの機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階をさらに許可する。第1のスーパークラスタ内の利用不可能な機械の数は、第1のスーパークラスタのPub-Subチャネル上で提供される可用性ステータスに基づいて決定され得る。第1のスーパークラスタのPub-Subチャネルは、マルチキャストアドレスを含み得る。
方法は、第1のスーパークラスタの第3の機械がコンテンツデータの要求をクライアントから受信する段階と、第3の機械が、Pub-Subチャネル上の第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータは第2のスーパークラスタの第4の機械により格納されている、と判断する段階と、要求を第2のスーパークラスタ内の第4の機械へ転送する段階とをさらに備え得る。このブリッジは、TCP接続を含み得る。方法は、第1の機械が、第1のスーパークラスタに対する地理的な近接度に基づいて、第2のスーパークラスタを特定する段階を備えることをさらに許可する。第1の機械は、DNS要求を行うことにより、第2のスーパークラスタが第1のスーパークラスタに隣接していることを特定し得る。
別の態様によれば、非一時的コンピュータ可読媒体は、実行された場合、第1のスーパークラスタの第1の機械のプロセッサに、第1のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する手順と、第2のスーパークラスタ内の第2の機械とのブリッジを確立する段階であって、第2のスーパークラスタは、第1のスーパークラスタに隣接する、確立する手順と、ブリッジを介して、第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する手順と、第1のスーパークラスタのPub-Subチャネル上で、第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする手順とを実行させるようなコンピュータ可読命令を備える。
別の態様によれば、システムは、複数の第1の機械を有する第1のスーパークラスタと、複数の第1の機械の各々がサブスクライブするPub-Subチャネルと、複数の第2の機械を有する第2のスーパークラスタと、第1のスーパークラスタと第2のスーパークラスタとの間のブリッジとを備える。複数の第1の機械のうちの1つは、ブリッジを介して、複数の第2の機械の各々の可用性ステータスおよびリソース割り当て情報を複数の第2の機械のうちの1つから受信し、かつ、第1のスーパークラスタのPub-Subチャネル上で、複数の第2の機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュするように構成される。
これらの特徴および他の特徴ならびにそれらのオペレーションの編成および方式は、添付図面と共に解釈された場合、以下の詳細な説明から明らかになるであろう。
本開示による、スーパークラスタ内および複数のスーパークラスタ間での通信を提供するためのシステムの例を示す図である。
スーパークラスタの機械の例を示すブロック図である。
スーパークラスタ内での通信を提供するための例示的な方法を示すフロー図である。
スーパークラスタ内での通信を提供するための例示的な方法を示す別のフロー図である。
スーパークラスタ内での通信を提供するための例示的な方法を示すさらに別のフロー図である。
複数のスーパークラスタ間での通信を提供するための例示的な方法を示すフロー図である。
本明細書において説明する構成は、所与のスーパークラスタの機械にわたる、または2つまたはそれよりも多くのスーパークラスタの機械にわたるコンテンツ(例えば、コンテンツデータの総ライブラリ)の共有またはそうでなければ分散に関連してハイブアウェアネス(hive-awareness)を提供するためのシステム、装置、方法および非一時的コンピュータ可読媒体に関する。各機械は、コンテンツの一部分(例えば、総ライブラリのスライスまたはスロット)を格納し得る。各機械は、同じスーパークラスタ内の他の機械および/または別のスーパークラスタ内の他の機械と通信して、機械により格納された一部分を特定し得る。
データセンタは、2つまたはそれよりも多くのスーパークラスタを含み得る。本明細書において説明する構成により、スーパークラスタ内の機械は、リソースの割り当ておよび提供に関し、説明する方式で互いに通信できるようになる。さらなる構成により、2つのスーパークラスタの機械は、リソースの割り当ておよび提供に関し、互いに通信できるようになる。そのため、所与のスーパークラスタ内のかなりの数の機械がオフラインになったことに応答して1つから別のものへロールオーバーする当該スーパークラスタの機械ではなく、代わりに、当該スーパークラスタの機械により処理されるいくつかのスライスが、少なくとも1つの他のスーパークラスタ内の機械により提供されるサービスを受け得る。この少なくとも1つの他のスーパークラスタは、隣接するスーパークラスタであり得る。いくつかの例において、所与のデータセンタが、単一のスーパークラスタを含み得る。その場合、最も近いスーパークラスタが、別のデータセンタにおいてホスティングされ得る。
したがって、本明細書において説明する構成は、(例えば、CDNの文脈において)コンテンツをクライアントに提供し(第1のスーパークラスタ内の機械(ノード)間でリソース割り当てデータを伝達することを含む)、1または複数の適切な近接するスーパークラスタ(本明細書において、第2のスーパークラスタと称される)を決定し、かつ、第1のスーパークラスタ内の失敗または劣化したノードの数は閾値を超えているという判断に応答して第1のスーパークラスタおよび第2のスーパークラスタを統合するデータセンタに関連する様々な技術的問題に対処する。
従来、総ライブラリの各スライスにDNS名が提供されている。各機械は、DNS名に対応するスライスの格納を担う。DNS解決は、要求されたスライスを格納する特定の機械へとクライアントを誘導できる。多数のスライスを有し得る大きい総ライブラリの場合、そのような従来の実装が管理不能になってしまう。本明細書において説明する構成は、総ライブラリ内の各スロットに割り当てられるDNS名を必要としない。代わりに、スーパークラスタ内の機械は、可用性ステータスおよびリソース割り当てに関して互いに通信して、要求されたスライスにどの機械がサービスを提供できるかを判断し得る。同じスーパークラスタ内の機械が、要求されたスライスを提供できない場合、当該要求は、スーパークラスタ間で共有される可用性ステータスまたはリソース割り当て情報に基づいて、別のスーパークラスタ内の機械へ転送され得る。
図1は、本開示のいくつかの構成によるスーパークラスタ内および複数のスーパークラスタ間での通信を提供するための例示的なシステム100の図である。図1を参照すると、CDNが、システム100を用いて実装され得る。CDNは、(各々がCDNノードである)サーバまたは機械の地理的に分散されたネットワークであり、オリジンサーバ(不図示)がオリジンサーバのコンテンツデータを、当該コンテンツデータを消費するクライアント(例えば、クライアント105)へ配信するのを容易にするためのものである。オリジンサーバから遠く離れているクライアントへオリジンサーバからコンテンツデータを配信するために、クライアントに地理的に近接するCDNノードが、オリジンサーバに代わって、コンテンツデータをクライアントに提供できる。特に、当該CDNノードは、オリジンサーバのコンテンツデータ(またはその少なくとも一部分)を複製およびキャッシュし、複製およびキャッシュしたコンテンツデータをクライアントへ提供できる。CDNの顧客は、オリジンサーバに関連し得る。
システム100は少なくとも、第1のスーパークラスタ110および第2のスーパークラスタ140を含む。各スーパークラスタは、複数の機械を含み得る。例えば、第1のスーパークラスタ110は、機械114a-114eと機械116-126とを含む。第2のスーパークラスタ140は、機械142-150を含む。同じスーパークラスタの機械は、同じ地理的位置にあり、および/または同じ物理位置に配置される。例えば、第1のスーパークラスタ110の機械114a-114eと機械116-126とは、第1の位置にあるが、第2のスーパークラスタ140の機械142-150は、第1の位置とは異なる第2の位置にある。他の例において、第1の位置および第2の位置は、同じ位置であり得る(例えば、スーパークラスタ110および140は、ない交ぜになったラックがあるかまたはない同じデータセンタに配置される)。第1のスーパークラスタ110および第2のスーパークラスタ140は、CDNの文脈において、互いに近接または隣接する。したがって、第1のスーパークラスタ110の機械(例えば、機械120)と第2のスーパークラスタ140の機械(例えば、機械142)との間の通信は、同じCDNの第1のスーパークラスタ110の機械と別のスーパークラスタの機械との間の通信よりも速い。第1のスーパークラスタ110および第2のスーパークラスタ140は、同じデータセンタに属する。代替的に、第1のスーパークラスタ110および第2のスーパークラスタ140は、異なるデータセンタに属する。
さらに、各スーパークラスタ内の機械は、機械のラックであり得る。例えば、第1のスーパークラスタ110は、機械114a-114eのラック112を含む。機械114a-114eは、バーチャルIPアドレスを介して共に境界が定められる。機械114a-114eは、同じコンテンツデータを格納し得る。代替的に、機械114a-114eのうちの少なくとも1つは、機械114a-114eのうちの他のものにより格納されるコンテンツデータとは異なるコンテンツデータを格納する。ラック112は、機械114a-114eのスタック内の負荷均衡機能を提供し得る。例えば、クライアントの要求に応答して、ラック112内のスイッチが、機械114a-114eのうちの1つを選択することで、クライアントの要求に対してサービスを提供できる。図1における第1のスーパークラスタ110について1つのラック112のみが示されているが、第1のスーパークラスタ110および第2のスーパークラスタ140は、任意の数の機械ラックを有し得る。第1のスーパークラスタ110および/または第2のスーパークラスタ140内のラック構成の各々は、ラック112と同様の方式で構造化され得る。機械116-126と機械142-150との各々は、好ましくは、物理IPアドレスと個別にアドレス指定される。
各スーパークラスタは、それらと関連する機械の結び付けにより定義される。一例において、ホスト名と機械との間のマッピングが、スーパークラスタの定義またはそうでなければ形成のために用いられ得る。CDNの文脈において、ホスト名および機械は、CDNの少なくとも1つの顧客の同じセットにサービスを提供するように構成される。各顧客は、オリジンサーバに関連し得る。機械114a-114eと機械116-126とは、(ホスト名と機械114a-114eおよび機械116-126との間の適切なマッピングを通じて)共に結び付けられ、第1のスーパークラスタ110を形成する。同様に、機械142-150は、(ホスト名と機械142-150との間の適切なマッピングを通じて)共に結び付けられ、第2のスーパークラスタ140を形成する。加えて、スーパークラスタが異なる位置に配置され得ると仮定すると、スーパークラスタは、CDNが必要とする任意の地理的制限(例えば、特定のコンテンツが特定の地理的位置においてサービスを受けることができるかまたはできない)および/または地理ベースセキュリティプロトコルを実装するために用いられ得る。
クライアント(例えば、クライアント105)は、CDNのノードをサポートする機械のうちの1つに接続できるエンドユーザである。CDNの各ノードは、機械114a-114eと、機械116-126と、機械142-150とのうちの1つに対応する。CDNは、不図示の追加のスーパークラスタおよび機械を用いて実装され得る。第1のスーパークラスタ110の機械114a-114eと機械116-126とは、クライアント105を含む近くのクライアントにサービスを提供する、CDNのエッジノードである。同様に、機械142-150も、第2のスーパークラスタ140に地理的に近接するクライアントにサービスを提供する、CDNのエッジノードであり得る。クライアント105は、限定されるものではないがDNSルックアップまたはドメイン名解決などのDNSオペレーションを用いてラック112または機械116-126のうちの1つに接続するよう誘導され得る。示されるように、クライアント105による要求に基づくDNSルックアップの結果により、クライアント105は、要求されたコンテンツデータを機械122から受信するよう誘導される。クライアント105がCDNの別のスーパークラスタの別の位置よりも第1のスーパークラスタ110の位置により近いと仮定すると、クライアント105による要求に基づくDNSルックアップは、CDNの第2のスーパークラスタ140または別のスーパークラスタ内の機械へ解決しない。当該要求は、少なくともURLを含む。
スーパークラスタ内の各機械は、関連するCDNの少なくとも1つの顧客のセット用のコンテンツの総ライブラリの一部分を格納する。例えば、第1のスーパークラスタ110内の機械114a-114eと機械116-126との各々は、総ライブラリの少なくとも1つのスライスを担うキャッシュである。第2のスーパークラスタ140内の機械142-150の各々は、総ライブラリの少なくとも1つのスライスを担うキャッシュである。総ライブラリは、1または複数のスーパークラスタに結び付けられるプロパティのセットにより定義される。ライブラリは概して、1または複数のスーパークラスタにより格納される、ライブラリのワーキングセットを指す。そのため、スーパークラスタ110または140の各々は、総ライブラリを格納し、総ライブラリは、(例えば、部分で、またはスライスで)スーパークラスタ110または140の各々における機械に割り当てられる。言い換えると、総ライブラリは、スーパークラスタ110および140の両方により格納される。総ライブラリの同じスライスは、冗長性のために、同じスーパークラスタの複数の機械により格納され得る。他の構成では、スーパークラスタの1または複数のノードまたは機械は、格納機能を有さないことがあるが、依然としてスーパークラスタの一部である。
ライブラリの「ワーキングセット」は、アクティブに用いられているのでキャッシュに充填済みであろうサブスクライバの総ライブラリの一部分を指す。第1のスーパークラスタ110の機械114a-114eと機械116-126との各々は、2つの格納部を含み得る。第1の格納部は、総ライブラリの割り当てられた部分またはスライス(ワーキングセットのスライスと称される)を格納する。第2の格納部は、総ライブラリの一般的なコンテンツデータを格納する。第1のスーパークラスタ110に接続するクライアントにより総ライブラリの所与のスライスが頻繁に要求された場合、頻繁に要求されたスライスは、一般的なコンテンツデータになり、第1のスーパークラスタ110内の他の機械の第2の格納部に格納される。第1のスーパークラスタ110の機械114a-114eと機械116-126との各々は、要求を受信した機械が要求されたスライスを格納しているかどうかにかかわらず、総ライブラリの任意のスライスの要求(例えば、クライアント105からの要求)を受信できる。
一例において、第1のスーパークラスタ110内の機械122がオブジェクトの要求をクライアント105から受信したことに応答して、機械122は、当該スライスを格納している場合、オブジェクトをクライアントに提供する。本明細書において称される場合、「要求されたスライス」は、クライアント105により要求された、オブジェクトに関連するスライスを指す。要求されたスライスは、第1の格納部(ワーキングセット)または第2の格納部(一般的なコンテンツ)のいずれかに格納され得る。一方、要求されたオブジェクトに関連する要求されたスライスを機械122が格納していない場合、機械122は、要求されたスライスを格納している、第1のスーパークラスタ110内の別の1つの機械から要求されたスライスを要求する。言い換えると、機械122は、要求を第1のスーパークラスタ110内の別の機械へ転送する。
要求を第1のスーパークラスタ110内の別の機械へ転送すべく、機械114a-114eと機械116-126とが可用性ステータスおよびリソース割り当て情報を互いに通信することを可能にするために、第1のスーパークラスタ110の機械114a-114eと機械116-126とのための通信チャネルが提供され得る。可用性ステータスは、コンテンツデータ(例えば、少なくとも1つのスライス)を格納および/または提供するために関連する機械が利用可能であるかどうかを示す。リソース割り当て情報により、関連する機械により格納されているコンテンツデータ(例えば、少なくとも1つのスライス)が特定される。
説明したように、クライアント(例えば、クライアント105)からの要求は、DNSオペレーションに基づいて、第1のスーパークラスタ110内の機械114a-114eと機械116-126とのいずれかに解決され得る。第1のスーパークラスタ110が多数の機械を有する場合、要求されたスライスが、要求をクライアントから最初に受信した機械(例えば、機械122)により格納されていない可能性が高い。
従来のスーパークラスタに伴う問題は、スーパークラスタの機械が様々な理由でオンラインになってはオフラインになることに関連している。例えば、スーパークラスタ内の機械は、限定されるものではないがメンテナンスなどの予め定められた/スケジューリングされた非可用性が原因でオフラインになり得る。スーパークラスタ内の機械は、限定されるものではないが非応答性、処理遅延および電源遮断などの予期しない/突然の非可用性が原因でオフラインになり得る。
要求されたスライスを格納していることが認識されている機械がオフラインである場合、要求を最初に受信する機械122は、第1のスーパークラスタ110内でチェックし、要求されたスライスを第1のスーパークラスタ110内の別の機械が提供できるかどうかを確かめる。例えば、機械122が、要求されたスライスを格納していることが認識されている機械116はオフラインである、と判断した場合、機械122は、第1のスーパークラスタ110内でチェックして、機械118は要求されたスライスも格納している、と判断する。
それに関連して、機械114a-114eと機械116-126とは、Pub-Subチャネル130をサブスクライブする。一例において、Pub-Subチャネル130は、機械114a-114eと機械116-126とがサブスクライブできるデータストリームである。機械114a-114eと機械116-126との各々は、その独自の可用性ステータスおよびリソース割り当て情報をPub-Subチャネル130上でパブリッシュできる。また、機械114a-114eと機械116-126との各々は、第1のスーパークラスタ110の他の機械の可用性ステータスおよびリソース割り当て情報をPub-Subチャネル130から取得できる。そのため、機械114a-114eと機械116-126とのいずれも、要求されたスライスを提供するために利用可能である、第1のスーパークラスタ110内の機械をいつでも特定できる。Pub-Subチャネル130の例がマルチキャストアドレスである。第2のスーパークラスタ140に関連するPub-Subチャネル160は、Pub-Subチャネル130と同じ方式で構成され得るデータストリームである。例えば、機械142-150の各々は、その独自の可用性ステータスおよびリソース割り当て情報をPub-Subチャネル160上でパブリッシュできる。また、機械142-150の各々は、第2のスーパークラスタ140の他の機械の可用性ステータスおよびリソース割り当て情報をPub-Subチャネル160から取得できる。そのため、Pub-Subチャネル130およびPub-Subチャネル160はそれぞれ、第1のスーパークラスタ110内および第2のスーパークラスタ140内のハイブアウェアネスを提供する。
いくつかの例において、スーパークラスタの単一の機械が、所与のスライスを担うキャッシュである。当該機械がオフラインである場合、スーパークラスタの第2の機械は、構成情報に基づいて決定される。同じ第2の機械が、当該スライスのスーパークラスタの全てのメンバにより選択される。いくつかの例において、スーパークラスタが、例えば、機械116がオフラインであることを検出したとき、第1のスーパークラスタ110の別の機械(例えば、機械118)は、当該スライスを担う(例えば、当該スライスの所有を引き継ぐ)キャッシュになる。機械118は、機械118が当該スライスを担うキャッシュであることをPub-Subチャネル130上でアナウンスし得る。その時まで、いくつかの例において、第1のスーパークラスタ110の各機械は、第1のスーパークラスタ110内でのスライスの再割り当てが完了するまで、または、要求されたオブジェクトのスライスを特定するために用いられるハッシュアルゴリズムが第1のスーパークラスタ110内の一連の機械を戻すまで、CDN階層を上げてCDNの次のティアへ移行することで、当該スライスを取得し得る。例えば、要求されたオブジェクトに対応するスライスを特定する際、ハッシュアルゴリズムは、スライス番号(1、2、3...x)のリストを戻すことができる。リストの最初の要素(例えば、1)は、要求されたオブジェクトの好ましいスライスである。すなわち、スライス1は、機械116により現在「所有されて」いる。機械116はオフラインであるという判断に応答して、要求は、スライス2を「所有して」いる機械118へ送信される。
第1のスーパークラスタ110内でオフラインの機械の数が閾値を超えている場合、第1のスーパークラスタ110内の機械の残りには、過負荷がかかり得る。したがって、第1のスーパークラスタ110内の機械は、近くのまたは近接するスーパークラスタ(例えば、第2のスーパークラスタ140)内の機械と通信でき、その近くのまたは近接するスーパークラスタ内の機械へ要求を転送できる。スーパークラスタ110とスーパークラスタ140との間の通信は、ブリッジ170により実現され得る。ブリッジ170の例がTCP接続である。
ブリッジ170は、第1のスーパークラスタ110の機械(例えば、機械120)と第2のスーパークラスタ140の機械(例えば、機械142)と間に確立され得る。機械120は、地理的な近接度に基づいて、第2のスーパークラスタ140または機械142を特定できる。例えば、機械120は、近接度要求(例えば、DNS要求)を行うことにより、第2のスーパークラスタ140および/または機械142が第1のスーパークラスタ110に隣接していることを特定できる。いくつかの構成において、CDNのクライアントがランデブーシステムを用いて、第2のスーパークラスタ140および/または機械142は第1のスーパークラスタ110に隣接している、と判断できるように、近接要求は、DNS要求のランデブーシステムと同じまたは同様のランデブーシステムを用い得る。第1のスーパークラスタ110および第2のスーパークラスタ140の両方の機械の可用性ステータスおよびリソース割り当て情報は、ブリッジ170を介して共有され得る。例えば、機械120は、第1のスーパークラスタ110の機械114a-114eと機械116-126との可用性ステータスおよびリソース割り当て情報をPub-Subチャネル130から抽出し、ブリッジ170を介して、可用性ステータスおよびリソース割り当て情報を機械142へ送信できる。機械142は、機械114a-114eと機械116-126との可用性ステータスおよびリソース割り当て情報をPub-Subチャネル160にパブリッシュすることにより、第2のスーパークラスタ140の機械144-150が当該データを利用可能になるようにできる。同様に、機械142は、第2のスーパークラスタ140の機械142-150の可用性ステータスおよびリソース割り当て情報を抽出し、ブリッジ170を介して、可用性ステータスおよびリソース割り当て情報を機械120へ送信できる。機械120は、機械142-150の可用性ステータスおよびリソース割り当て情報をPub-Subチャネル130にパブリッシュすることにより、第1のスーパークラスタ110の機械114a-114eと機械116-126とが当該データを利用可能になるようにできる。いくつかの例において、本明細書において説明する近接度の選択は、最も近いスーパークラスタ(例えば、第2のスーパークラスタ140)を判断する際に、第1のスーパークラスタ110は損なわれ、第2のスーパークラスタ140は損なわれない状況を考慮に入れている。その意味では、ブリッジ170は、負荷およびスライス割り当て情報を1つの方向に(例えば、機械142から機械120へ)伝達するだけでよいことがある。そのため、第1のスーパークラスタ110内の機械114a-114eと機械116-126とは、コンテンツを機械114a-114eと機械116-126とに提供するために第2のスーパークラスタ140のどの機械が利用可能であるかを知る必要があるが、第2のスーパークラスタ140内の機械142-150は、第2のスーパークラスタ140内の機械142-150からスライスを取得し続ける。
図2は、いくつかの構成による機械200を示すブロック図である。図1および図2を参照すると、機械200は、機械114a-114eと、機械116-126と、機械142-150とのいずれかの例である。示されるように、機械200は、処理回路210、Pub-Sub回路220、ブリッジ回路230、ステータスデータベース240およびコンテンツデータベース250のうちの1つまたは複数を含む。
処理回路210は、本明細書において説明する様々な機能を機械200に対して実行するように構成される。処理回路210は、プロセッサ212およびメモリ214を含む。プロセッサ212は、汎用プロセッサ、特定用途向け集積回路(ASIC)、1または複数のフィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、処理コンポーネントのグループ、または他の適切な電子処理コンポーネントを用いて実装され得る。メモリ214は、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、不揮発性RAM(NVRAM)、フラッシュメモリ、ハードディスクストレージまたは別の適切なデータストレージユニットを用いて実装され得る。メモリ214は、プロセッサ212により実行される様々な処理を容易にするためのデータおよび/またはコンピュータコードを格納する。さらに、メモリ214は、有形の非一時的揮発性メモリまたは不揮発性メモリであるか、または有形の非一時的揮発性メモリまたは不揮発性メモリを含む。したがって、メモリ214は、データベースコンポーネント、オブジェクトコードコンポーネント、スクリプトコンポーネント、または本明細書において説明する様々な機能をサポートするための任意の他の種類の情報構造を含む。
Pub-Sub回路220は、Pub-Subチャネル(例えば、Pub-Subチャネル130または160)を介して通信し、当該チャネルを確立し、および/または当該チャネルに接続するように構成された適切なハードウェアおよびソフトウェアを含む。例えば、Pub-Sub回路220は、(セルラー規格用に構成された)セルラートランシーバ、(802.11X、ZigBee(登録商標)、Bluetooth(登録商標)またはWi-Fi(登録商標)等用の)ローカル無線ネットワークトランシーバ、有線ネットワーク(例えば、Ethernet(登録商標)、SONET、DWDM、OTNなどの光ネットワーク)インタフェース、それらの組み合わせ(例えば、セルラートランシーバおよびBluetoothトランシーバの両方)および/またはこれらと同様のものを含む適切なネットワークインタフェースであり得る。Pub-Sub回路220は、無線ネットワークマルチキャスト、データリンクレイヤマルチキャスト(例えば、Ethernetマルチキャスト)、インターネットレイヤマルチキャスト(例えば、インターネットプロトコル(IP)マルチキャスト、アプリケーションレイヤマルチキャストおよび別の適切な種類のマルチキャストのうちの1つまたは複数を有効にし得る。それに関連して、Pub-Subチャネル130または160は、スーパークラスタの機械が接続する1または複数の適切なネットワーク(例えば、セルラーネットワーク、ローカル無線ネットワーク、有線ネットワーク、それらの組み合わせおよび/またはこれらと同様のもの)をさらに含み得る。Pub-Sub回路220は、処理回路210および/または別の適切な処理回路により提供される処理機能を含み得る。
Pub-Sub回路220は、機械200の可用性ステータスおよびリソース割り当て情報をPub-Subチャネル130または160にパブリッシュできる。機械200がオンラインになり、オフラインになりそうであることに応答して、Pub-Sub回路220は、オンライン通知およびオフライン通知のうちのそれぞれをPub-Subチャネル130または160にパブリッシュする。例えば、機械200が良好にかつ順序正しくシャットダウンされている場合、機械200は、オフライン通知を送信でき、機械200が現在担っているスライスの順序正しい遷移が同じスーパークラスタの他の機械に対して行われ得るように「排出」状態に移る。しかしながら、機械200は、良好にかつ順序正しくシャットダウンされるのではなく急に終了されることが頻繁にある。機械200が急に終了される状況において、機械200からのメッセージが、予め定められた期間(例えば、10秒、30秒、1分、5分等)にわたってないと、同じスーパークラスタの別の機械、または管理デバイスは、スーパークラスタの他の機械が通知されるようにスーパークラスタのPub-Subチャネルを介してオフライン通知を生成および送信するようトリガされ得る。さらに、Pub-Sub回路220は、機械200のうちの1つまたは複数がオンラインになり、少なくとも1つのスライスが機械200に割り当てられたことに応答して、リソース割り当て情報、割り当てられたスライスに対するあらゆる修正(例えば、スライスの除去または変更)等をパブリッシュする。送信されたリソース割り当て情報は、機械200によりコンテンツデータベース250に格納されている現在のスライスに対応する。Pub-Sub回路220は、オンライン通知、オフライン通知およびリソース割り当て情報を、Pub-Subチャネル130または160に対応するマルチキャストアドレスへ送信し得る。次に、送信された情報のコピーが、限定されるものではないが、例えばルータ、スイッチ、セルラーネットワーク基地局等の関連するネットワーク要素により自動的に、生成され、マルチキャストアドレスによりカバーされる受信者(例えば、同じスーパークラスタ内の機械)へ送信され得る。それに関連して、Pub-Subチャネル130または160は、関連するネットワーク要素をさらに含む。
加えて、Pub-Sub回路220は、機械200と同じスーパークラスタ内の他の機械のオンライン通知、オフライン通知およびリソース割り当て情報をPub-Subチャネル130または160から受信できる。Pub-Subチャネル130または160に関連するマルチキャストアドレスが機械200の適切なアドレスも特定することにより、Pub-Sub回路220は、同じスーパークラスタ内の他の機械のオンライン通知、オフライン通知およびリソース割り当て情報を受信できる。
ブリッジ回路230は、ブリッジ(例えば、ブリッジ170)を介して通信し、当該ブリッジを確立し、および/または当該ブリッジに接続するように構成された適切なハードウェアおよびソフトウェアを含む。例えば、ブリッジ回路230は、(セルラー規格用に構成された)セルラートランシーバ、(802.11X、ZigBee(登録商標)、BluetoothまたはWi-Fi(登録商標)等用の)ローカル無線ネットワークトランシーバ、有線ネットワーク(例えば、Ethernet(登録商標)、SONET、DWDM、OTNなどの光ネットワーク)インタフェース、それらの組み合わせ(例えば、セルラートランシーバおよびBluetoothトランシーバの両方)および/またはこれらと同様のものを含む適切なネットワークインタフェースであり得る。ブリッジ回路230およびPub-Sub回路220は、セルラートランシーバ、ローカル無線ネットワークトランシーバおよび/または有線ネットワークインタフェースのうちの1つまたは複数を共有し得る。ブリッジ回路230は、例えば、別のスーパークラスタの別の機械(限定されるものではないが機械200など)とのTCP接続を可能にし得る。それに関連して、ブリッジ回路230は、IP規格をサポートする。ブリッジ回路230は、処理回路210および/または別の適切な処理回路により提供される処理機能を含み得る。
ブリッジ回路230は、機械200と同じスーパークラスタ内の機械の可用性ステータスおよびリソース割り当て情報をステータスデータベース240から受信し、ブリッジ170を介して(例えば、TCP接続を介して)、そのような可用性ステータスおよびリソース割り当て情報を別のスーパークラスタの機械へ送信できる。
ステータスデータベース240は、(スーパークラスタのPub-Subチャネルを介して受信される)機械200と同じスーパークラスタ内の各機械の可用性ステータスおよびリソース割り当て情報ならびに(ブリッジを介して受信される)機械200のスーパークラスタとは異なる少なくとも別のスーパークラスタの1または複数の機械の可用性ステータスおよびリソース割り当て情報を編成および格納するために実装されたデータ構造を有するメモリデバイスである。Pub-Sub回路220およびブリッジ回路230が可用性ステータスおよびリソース割り当て情報を受信したことに応答して、可用性ステータスおよびリソース割り当て情報は、ステータスデータベース240に格納される。そのため、可用性ステータスおよびリソース割り当て情報のリアルタイムでの更新がステータスデータベース240に格納され得ることにより、ハイブアウェアネスが可能になる。
コンテンツデータベース250は、機械200に割り当てられるコンテンツデータの部分またはスライスを編成および格納するために実装されたデータ構造を有するメモリデバイスである。いくつかの例において、コンテンツデータベース250は、2つの別個の格納部を含む。第1の格納部は、総ライブラリの割り当てられた部分またはスライス(「ワーキングセット」と称される)を格納する。第2の格納部は、総ライブラリの一般的なコンテンツデータを格納する。総ライブラリの所与のスライスがクライアントにより頻繁に要求された場合、頻繁に要求されたスライスは、一般的なコンテンツデータになり、コンテンツデータベース250の第2の格納部に格納される。
図3は、様々な構成による、スーパークラスタ110内での通信を提供するための方法300の例を示すフロー図である。図1から図3を参照すると、方法300は、Pub-Subチャネル130を用いた、スーパークラスタ110内でのハイブアウェアネスの提供に関する。さらに、Pub-Subチャネル130およびブリッジ170により、2つの近接するスーパークラスタ110および140にわたるハイブアウェアネスが可能になる。当業者であれば、第1のスーパークラスタ110および第2のスーパークラスタ140の各機械が、方法300に関連して特定の機械について説明した機能を実行できることを理解し得る。
310において、機械(例えば、機械200に関して説明した方式で実装され得る機械122)が、Pub-Subチャネル130をサブスクライブする。いくつかの例において、機械122のPub-Sub回路220は、Pub-Subチャネル130に対応するマルチキャストアドレスを介してデータの送信および受信を構成することにより、Pub-Subチャネル130をサブスクライブする。
320において、機械122が、機械122の可用性ステータスおよびリソース割り当て情報をPub-Subチャネル130にパブリッシュする。機械122のPub-Sub回路220は、機械122の可用性ステータスおよびリソース割り当て情報をマルチキャストアドレスへ送信する。そのような情報は、複製され、第1のスーパークラスタ110内の他の機械に対応するアドレスへ配信され得る。第1のスーパークラスタ110内の他の機械に対応するアドレスは、マルチキャストアドレスに対応する。同様に、機械122は、Pub-Subチャネル130を介して、第1のスーパークラスタ110内の他の機械の可用性ステータスおよびリソース割り当て情報を受信できる。
330において、機械122が、Pub-Subチャネル130上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアント105から受信した、コンテンツデータの要求を第1のスーパークラスタ110の別の機械へ転送する。例えば、機械122の処理回路210は、クライアント105により要求されたスライスがコンテンツデータベース250に格納されているかどうかをチェックする。当該スライスは機械122のコンテンツデータベース250に格納されていないという判断に応答して、機械122は、Pub-Subチャネル130を介して受信した第1のスーパークラスタ110内の他の機械の可用性ステータスおよびリソース割り当て情報に基づいて、要求されたスライスは第1のスーパークラスタ110の別の機械(例えば、機械126)に格納されている、と判断する。例えば、処理回路210は、要求されたスライスを基準として用いてステータスデータベース240を検索することで、要求されたスライスを格納している機械126を特定する。機械122の処理回路210は、機械126を特定すると、当該要求を機械126へ転送する。機械126は、任意の適切な方式で、要求されたスライス(例えば、当該スライスに関連するオブジェクト)をクライアント105に提供する。いくつかの例において、当該要求を転送する段階は、機械122が機械126のプロキシとしてサービスを提供しているように、機械122が当該要求を機械126へプロキシする段階を含む(例えば、当該要求は機械126へ転送され、応答が機械122を通る)。いくつかの例において、当該要求を転送する段階は、接続が機械126へ移行されることにより、機械126が応答(例えば、オブジェクト)をクライアント105に直接提供できる段階を含む。いくつかの例において、当該要求を転送する段階は、機械126がDirect Server Returnを用いて応答(例えば、オブジェクト)をクライアント105へ配信する段階を含む。いくつかの例において、当該要求を転送する段階は、機械122がリダイレクトメッセージをクライアント105へ戻すことにより、クライアント105が機械126にリダイレクトされ得る段階を含む。
図4は、いくつかの構成による、第1のスーパークラスタ110内での通信を提供するための方法400の例を示すフロー図である。図1から図4を参照すると、スーパークラスタの機械は、当該スーパークラスタのPub-Subチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、スーパークラスタの別の機械により格納されているコンテンツデータ(例えば、1または複数のスライス)を格納できる。例えば、第1の機械(例えば、機械116)は、方法400を用いて、同じスーパークラスタ110内の少なくとも第2の機械(例えば、機械118)をオフロードし得る。
405において、機械116がオンラインになる。例えば、機械116は、スケジューリングされた、または予期しないシャットダウンの後にオンラインになり得る。この時点で、機械116のコンテンツデータベース250は、いかなるコンテンツデータも格納していない。機械116のPub-Sub回路220は、説明した方式で、Pub-Subチャネル130をセットアップする。機械116は、第1のスーパークラスタ110内の他の機械の可用性ステータスおよびリソース割り当て情報のPub-Subチャネル130からの受信を開始する。機械116は、第1のスーパークラスタ110内の他の機械の可用性ステータスおよびリソース割り当て情報の機械116のステータスデータベース240への格納を開始できる。
410において、機械116の処理回路210が、Pub-Subチャネル130上の可用性ステータスおよびリソース割り当て情報に基づいて、第1のスーパークラスタ110の第2の機械(例えば、機械118)により格納されているコンテンツデータを特定する。特定されたコンテンツデータは、機械116へオフロードされ得る。一例において、機械116の処理回路210が、機械118は第1のスーパークラスタ110の機械の間で最も多くの数のスライスまたは一般的なスライスを現在格納していると判断したこと、または、機械118は予め定められた閾値を超える数のスライスを格納していると判断したことに応答して、機械118のコンテンツデータは特定される。さらに別の例において、機械116の処理回路210が、機械118は第1のスーパークラスタ110の機械の間で最も長くオンラインになっていると判断したこと、または、機械118は予め定められた閾値を超える期間にわたってオンラインになっていると判断したことに応答して、機械118のコンテンツデータは特定される。さらに別の例において、機械116の処理回路210が、機械118はホットスポットであると判断したことに応答して、機械118のコンテンツデータは特定される。それに関連して、機械118は、クライアントからの要求で機械118が過負荷になっていることをPub-Subチャネル130上でパブリッシュし得る。さらに別の例において、機械116の処理回路210が、機械118はオフラインになりそうであると判断したことに応答して、機械118のコンテンツデータは特定される。それに関連して、機械118は、機械118がオフラインにされているか、または速やかにオフラインになることをPub-Subチャネル130上でパブリッシュし得る。さらに別の例において、機械116の処理回路210は、第1のスーパークラスタ110の利用可能な機械のうちの1つをランダムまたは擬似ランダムで選択する。いくつか場合において、オフロードされるコンテンツデータ(例えば、スライス)は、ランダムまたは擬似ランダムで選択され得る。他の場合において、オフロードされるコンテンツデータは、コンテンツデータベース250の第2の格納部に格納されている一般的なコンテンツデータであってもよく、第2の格納部に格納されていないが機械118にホットスポットを生じさせているコンテンツデータであってもよい。
415において、機械116のPub-Sub回路220が、機械118により格納されているコンテンツデータを格納またはオフロードするために機械116は利用可能であることをPub-Subチャネル130上でパブリッシュする。例えば、機械116のPub-Sub回路220は、Pub-Subチャネル130に関連するマルチキャストアドレスへ可用性通知を送信し得る。当該通知は、機械118により格納されているコンテンツデータを格納するために機械116が利用可能であることを示す。
代替的に、ブロック410が省略されてよく、機械116のPub-Sub回路220は、第1のスーパークラスタ110のあらゆる利用可能な機械のあらゆるコンテンツデータを格納するために機械116が利用可能であることをPub-Subチャネル130上でパブリッシュする。減速問題またはホットスポットを経験している機械は、許可を付与し得る。
420において、機械116の処理回路210が、機械116のPub-Sub回路220は機械118から許可を受信したかどうかを判断する。許可は、Pub-Subチャネル130上で受信される任意の適切なメッセージであり得る。言い換えると、機械118は、Pub-Subチャネル130上で許可をパブリッシュすることにより応答する。許可は受信されていない(420:いいえ)という判断に応答して、機械116の処理回路210は、425において、第1のスーパークラスタ110の別の機械をオフロードに設定し、410において、別の機械が特定される。一方、許可は受信されている(420:はい)という判断に応答して、機械116の処理回路210は、430において、機械118のコンテンツデータを格納する。機械118により格納されているコンテンツデータの全てのうちのいくつかは、機械116のコンテンツデータベース250に格納され得る。
機械118は、オフロードされたコンテンツデータの格納を続け得る。コンテンツデータまたはスライスに関連するURLはここで、機械116および118の両方に関連している。代替的に、機械118は、オフロードされたコンテンツデータをもはや格納しなくてもよく、当該コンテンツデータが機械116へオフロードされた後はオフラインであってもよい。そのような場合、当該コンテンツデータは、機械116へ移行されたものとみなされる。当該コンテンツデータまたはスライスに関連するURLは、機械116へ迂回される。
435において、機械116が、機械116により格納されている、中継または転送されたコンテンツデータ要求を第3の機械(例えば、機械122)から受信し得る。要求されたコンテンツデータは、機械116が機械118からオフロードしたコンテンツデータである。機械116が機械118をオフロードしていると仮定すると、機械122は、当該要求をクライアント105から受信し、当該要求を機械116へ中継する。機械122は、機械122がPub-Subチャネル130上のデータストリームのモニタリングおよび格納もしているので機械116が機械118をオフロードしているという認識を有する。Pub-Subチャネル130をサブスクライブする第1のスーパークラスタ110内の全ての機械が、Pub-Subチャネル130上のデータストリームを利用可能である。
440において、機械116が、中継または転送された要求毎にコンテンツデータを提供する。445において、機械116の処理回路210が、配信閾値は満たされているかどうかを判断する。配信閾値は、機械116が格納および配信できるコンテンツデータの限度を指す。配信閾値は、予め定められてもよく、動的に設定されてもよい。配信閾値は、コンテンツデータベース250のサイズ、処理回路210の処理機能、ネットワークレイテンシ、スーパークラスタ内の利用可能な機械の数等に基づいて、決定または設定され得る。
機械116の処理回路210が、配信閾値は満たされている(445:はい)と判断したことに応答して、機械116は、435において、コンテンツデータベース250に格納されているコンテンツデータの追加の中継された要求を第1のスーパークラスタ110の機械から受信し得る(または要求をクライアントから直接受信し得る)。機械116は、第1のスーパークラスタ110の他の機械からの追加のコンテンツデータをもはやオフロードしなくてもよく、総ライブラリの追加のコンテンツデータを格納してもよい。
一方、機械116の処理回路210が、配信閾値は満たされていない(445:いいえ)と判断したことに応答して、機械116は、415において、機械118(または第1のスーパークラスタ110の別の機械)により格納されている追加のコンテンツデータを格納するための可用性をPub-Subチャネル130にパブリッシュし得る。
さらに、スーパークラスタ内の利用可能な機械は、スーパークラスタ内の利用可能な過負荷になっている機械をオフロードできる。図5は、いくつかの構成による、第1のスーパークラスタ110内での通信を提供するための方法500の例を示すフロー図である。図1から図5を参照すると、505において、第1の機械(例えば、機械116)の処理回路210は、Pub-Subチャネル130上の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータ(例えば、1または複数のスライス)を現在格納している第1のスーパークラスタ110内の機械の数は閾値未満である、と判断する。第1のスーパークラスタ110は、冗長性のために、同じスライスを格納する2つまたはそれよりも多くの機械を有し得る。あるスライスを格納する機械が無いと、当該スライスを格納する機械にホットスポットが生じ得る。これに応答して、機械116は、方法500の残りを用いて、当該スライスを格納している残りの機械をオフロードする。ブロック510-545の各々は、ブロック410-445のうちの1つに対応する。いくつかの構成において、スライスは典型的には、単一の機械によりキャッシュされる。大量のピアトラフィックに起因してある機械がホットスポットになった場合、当該機械は、同じスーパークラスタ上のいくつかの他の機械上へ特定のスライスを放出し得る。その意味では、わずかなトラフィックを受信しているか、またはトラフィックを受信していないスライスを移動させても、状況が改善されないことがあり、最も頻繁に要求されたスライスを移動させると、ホットスポットを同じスーパークラスタ内の別の機械へ移動させてしまう虞があり得る。したがって、いくつかの例において、最も頻繁に要求されたスライス、または要求されることが最も少なかったスライスのいずれでもないスライスが、本明細書において説明するように移行され得る。
図6は、本開示のいくつかの構成による、複数のスーパークラスタ(例えば、図1のスーパークラスタ110および140)間での通信を提供するための方法600の例を示すフロー図である。図1から図6を参照すると、Pub-Subチャネル130およびPub-Subチャネル160により保持される可用性ステータスおよびリソース割り当て情報は、ブリッジ170を介して共有され得る。機械120および142はブリッジ170をサポートする機械であるが、当業者であれば、ブリッジ(限定されるものではないがブリッジ170など)が第1のスーパークラスタ110の任意の機械と第2のスーパークラスタ140の任意の機械との間で確立され得ることを理解できる。
610において、第1の機械(例えば、第1のスーパークラスタ120の機械120)が、第1のスーパークラスタ110内の利用不可能な機械の数は閾値を超えている、と判断する。第1のスーパークラスタ110内の利用不可能な機械の数は、第1のスーパークラスタ110のPub-Subチャネル130上で提供される可用性ステータスに基づいて決定される。
620において、機械120が、第1のスーパークラスタ110内の利用不可能な機械の数は閾値を超えているという判断に応答して、第2のスーパークラスタ140内の第2の機械(例えば、機械142)とのブリッジ170を確立する。ブリッジ170の例がTCP接続である。機械120は、第1のスーパークラスタ110に対するネットワーク近接度に基づいて、第2のスーパークラスタ140および/または機械142を特定する。ネットワーク近接度は、パケットが機械120(または第1のスーパークラスタ110)と機械142(または第2のスーパークラスタ140)との間を移動する距離に対応する。第2のスーパークラスタ140は、第1のスーパークラスタ110に隣接する。例えば、機械120は、近接度要求(例えば、DNS要求、またはDNS要求のランデブーシステムと同じまたは同様のランデブーシステムを用いる要求)を行うことにより、第2のスーパークラスタ140および/または機械142が第1のスーパークラスタ110に隣接していることを特定する。機械120は、DNS要求への(例えば、IPアドレスを含む)応答を適切なDNSサーバから受信し、当該応答に関連する位置情報(例えば、IPアドレス)を分析して、第2のスーパークラスタ140を最も近い近接物と特定できる。いくつかの構成において、機械120は、最も近い近接するスーパークラスタの数(例えば、2、3、5または10)を特定すると共に、最も少ないホットスポット、最も高い処理機能、最も多い利用可能な機械、最も少ないレイテンシ等を有する1つを選択する。いくつかの例において、第2のスーパークラスタ140(例えば、機械142または別の適切な機械)は、第2のスーパークラスタ140がブリッジ170を確立する前に第1のスーパークラスタ110をオフロードすることが可能である、と判断する。例えば、第2のスーパークラスタ140(例えば、機械142または別の適切な機械)は、Pub-Subチャネル160上で伝達される情報を用いた、第2のスーパークラスタ140内の利用不可能な機械の数は予め定められた閾値(例えば、30%、50%、60%等)を超えているという判断に応答してブリッジ170が確立されることを可能にする。別の例において、第2のスーパークラスタ140(例えば、機械142または別の適切な機械)は、第2のスーパークラスタ140の追加のブリッジの数は予め定められた閾値(例えば、0、1、2等)を超えていないという判断に応答してブリッジ170が確立されることを可能にする。
630において、機械120が、ブリッジ170を介して、第2のスーパークラスタ140の機械142-150の各々の可用性ステータスおよびリソース割り当て情報を受信する。
640において、機械120が、第2のスーパークラスタ140の機械142-150の各々の可用性ステータスおよびリソース割り当て情報を第1のスーパークラスタ110のPub-Subチャネル130上でパブリッシュする。例えば、機械120は、第2のスーパークラスタ140の機械142-150の各々の可用性ステータスおよびリソース割り当て情報を、Pub-Subチャネル130に関連するマルチキャストアドレスへ送信する。そのため、機械114a-114eと機械116-126とは、マルチキャストアドレスに基づく第2のスーパークラスタ140の機械142-150の各々の可用性ステータスおよびリソース割り当て情報を受信および格納できる。
いくつかの構成において、第1のスーパークラスタ110内のブリッジ170の端部を形成する機械120は、第1のスーパークラスタ110内の利用可能な機械がサポートできないそれらのスライスのみがPub-Subチャネル130に対して利用可能になるように、第2のスーパークラスタ140から受信するデータをフィルタリングできる。そのような処理は移り変わり得る。なぜなら、スライスを第2のスーパークラスタ140へとオフロードするために必要なことが原因で第1のスーパークラスタ110がまず閾値に近づくが、全てのスライスが依然として第1のスーパークラスタ110内の機械からサービスを受けていると思われるからである。ブリッジ170が確立されているので、第1のスーパークラスタ110の機械がさらに劣化しても、第1のスーパークラスタ110の残りの機械の間で追加のスライスが割り当てられることは一切ない。代わりに、第2のスーパークラスタ140の適切な機械から追加のスライスが充填される。ブリッジ170が確立される時点で、または当該時点よりも前に、最近再割り当てされたスライスのうちのいくつかをロールバックすることにより、したがって、それらのスライスが第2のスーパークラスタ140から充填されるようにすることにより、第1のスーパークラスタ110の残りの機械のある程度の軽減を(第1のスーパークラスタ110内の追加の機械の喪失なしでも)実現させることが可能である。例を用いて示すと、機械1がスライス1、11、21、31等を有し、機械2がスライス2、12、22等を有するように、100個のスライスおよび10個の機械がスーパークラスタ内に存在する。機械1がオフラインになり、次に、スライス1が機械2に再割り当てされ得る場合、例えば、スライス11は、機械2に再割り当てされてよく、スライス21は、機械3に再割り当てされてよい。オフラインになっている機械2、3、4および5に対してそのような処理が繰り返されている場合、残りの機械の各々は、通常の2倍の数のスライスにサービスを提供している。ブリッジに接続するための閾値に到達した場合、これは、機械4および5からのスライス、例えば、スライス4、14、24および34ならびにスライス5、15、25および35がスーパークラスタにおいて「利用不可能」とみなされ得るということであり得る。代わりに、それらのスライスは、別のスーパークラスタから処理される。すなわち、本明細書において説明したシステムは、5個の機械がスーパークラスタ内でオフラインになるまでブリッジ170が実際に生成されなくても、ブリッジを生成するための閾値がスーパークラスタ外の3個の機械であるかのように挙動し得る。
第1のスーパークラスタ110の機械114a-114eと機械116-126とは、ブリッジ170を介して受信した第2のスーパークラスタ140の機械142-150の各々の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した要求を第2のスーパークラスタ140の機械へ転送できる。例えば、機械122は、コンテンツデータ(例えば、スライス)の要求をクライアント105から受信する。機械122は、機械122のコンテンツデータベース250内のPub-Subチャネル130を介して受信した第2のスーパークラスタ140の機械142-150の各々の可用性ステータスおよびリソース割り当て情報を保存する。
機械122は、Pub-Subチャネル130上の機械142-150の各々の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータ(例えば、要求されたスライス)は第2のスーパークラスタ140の機械(例えば、機械146)により格納されている、と判断する。例えば、機械122の処理回路210は、要求されたスライスを基準として用いて機械122のステータスデータベース240を検索することで、要求されたスライスを格納している機械146を特定する。これに応答して、機械122は、要求を機械146へ転送する。
本明細書において説明した構成は、図面を参照して説明されている。図面は、本明細書において説明したシステム、方法およびプログラムを実装する特定の構成の特定の詳細を示す。しかしながら、図面を用いた構成の説明は、図面に存在し得るいかなる限定も本開示に課すものと解釈されるべきではない。
本明細書における特許請求の範囲のいかなる要素も、当該要素が「ための手段」という文言を用いて明示的に記載されていない限り、米国特許法第212(f)条の規定に基づいて解釈されるべきではないことを理解されたい。
本明細書において用いられる場合、「回路」という用語は、本明細書において説明した機能を実行するように構造化されたハードウェアを含み得る。いくつかの構成において、対応する「回路」の各々は、本明細書において説明した機能を実行するようにハードウェアを構成するための機械可読媒体を含み得る。回路は、処理回路、ネットワークインタフェース、周辺デバイス、入力デバイス、出力デバイス、センサ等を含むがこれらに限定されない1または複数の回路コンポーネントとして具現化され得る。いくつかの構成において、回路は、1または複数のアナログ回路、電子回路(例えば、集積回路(IC)、ディスクリート回路、システムオンチップ(SOC)回路等)、電気通信回路、ハイブリッド回路および任意の他の種類の「回路」の形態を取り得る。これに関連して、「回路」は、本明細書において説明したオペレーションの実現を達成するか、または容易にするための任意の種類のコンポーネントを含み得る。例えば、本明細書において説明した回路は、1または複数のトランジスタ、論理ゲート(例えば、NAND、AND、NOR、OR、XOR、NOT、XNOR等)、抵抗器、マルチプレクサ、レジスタ、コンデンサ、インダクタ、ダイオード、ワイヤ等を含み得る。
「回路」は、1または複数のメモリまたはメモリデバイスに通信可能に結合された1または複数のプロセッサも含み得る。これに関連して、1または複数のプロセッサは、メモリに格納された命令を実行し得るか、または、本来であれば1または複数のプロセッサにアクセス可能な命令を実行し得る。いくつかの構成において、1または複数のプロセッサは、様々な態様で具現化され得る。1または複数のプロセッサは、少なくとも本明細書において説明したオペレーションを実行するのに十分であるように解釈され得る。いくつかの構成において、1または複数のプロセッサは、複数の回路により共有され得る(例えば、回路Aおよび回路Bが、いくつかの例示的な構成においてメモリの異なるエリアを介して格納されるか、またはそうでなければアクセスされる命令を実行し得る同じプロセッサを備え得るか、またはそうでなければ共有し得る)。代替的に、または追加的に、1または複数のプロセッサは、1または複数のコプロセッサとは無関係に特定のオペレーションを行うように、またはそうでなければ実行するように構造化され得る。他の例示的な構成において、2つまたはそれよりも多くのプロセッサがバスを介して結合されることで、独立した、並行の、パイプライン化またはマルチスレッド化された命令の実行が可能になり得る。各プロセッサは、1または複数の汎用プロセッサ、ASIC、FPGA、DSP、またはメモリにより提供されされる命令を実行するように構造化された他の適切な電子データ処理コンポーネントとして実装され得る。1または複数のプロセッサは、シングルコアプロセッサ、マルチコアプロセッサ(例えば、デュアルコアプロセッサ、トリプルコアプロセッサ、クアッドコアプロセッサ等)、マイクロプロセッサ等の形態を取り得る。いくつかの構成において、1または複数のプロセッサは、装置の外部にあってよく、例えば、1または複数のプロセッサは、リモートプロセッサ(例えば、クラウドベースプロセッサ)であってよい。代替的に、または追加的に、1または複数のプロセッサは、装置の内部および/またはローカルであってよい。これに関連して、所与の回路またはそのコンポーネントが、ローカルに(例えば、ローカルサーバ、ローカルコンピューティングシステム等の一部として)、またはリモートで(例えば、クラウドベースサーバなどのリモートサーバの一部として)配置され得る。そのために、本明細書において説明した「回路」は、1または複数の位置にわたって分散されたコンポーネントを含み得る。
当該構成のシステム全体または部分を実装するための例示的なシステムは、処理ユニットと、システムメモリと、システムメモリを含む様々なシステムコンポーネントを処理ユニットに結合させるシステムバスとを含むコンピュータの形態の汎用コンピューティングコンピュータを含み得る。各メモリデバイスは、非一時的揮発性記憶媒体、不揮発性記憶媒体、非一時的記憶媒体(例えば、1または複数の揮発性メモリおよび/または不揮発性メモリ)等を含み得る。いくつかの構成において、不揮発性媒体は、ROM、フラッシュメモリ(例えば、NAND、3D NAND、NOR、3D NOR等のフラッシュメモリ)、EEPROM、MRAM、磁気ストレージ、ハードディスク、光ディスク等の形態を取り得る。他の構成において、揮発性記憶媒体は、RAM、TRAM、ZRAM等の形態を取り得る。上述のものの組み合わせも、機械可読媒体の範囲内に含まれる。これに関連して、機械実行可能命令は、例えば、汎用コンピュータ、専用コンピュータまたは専用処理機械に特定の機能または機能のグループを実行させる命令およびデータを含む。対応するメモリデバイスの各々は、プロセッサ命令および関連データを含む、1または複数の関連する回路により実行されるオペレーションに関する情報(例えば、データベースコンポーネント、オブジェクトコードコンポーネント、スクリプトコンポーネント等)を本明細書において説明した例示的な構成に従って維持するように、またはそうでなければ格納するように動作可能であってよい。
本明細書において説明した「入力デバイス」という用語は、キーボード、キーパッド、マウス、ジョイスティックまたは同様の機能を実行する他の入力デバイスを含むがこれらに限定されない任意の種類の入力デバイスを含み得ることにも留意されたい。比較的に、本明細書において説明した「出力デバイス」という用語は、コンピュータモニタ、プリンタ、ファクシミリ機または同様の機能を実行する他の出力デバイスを含むがこれらに限定されない任意の種類の出力デバイスを含み得る。
本明細書における図は方法の段階の特定の順序および構成を示し得るが、これらの段階の順序は示されているものとは異なり得ると理解されることに留意されたい。例えば、2つまたはそれよりも多くの段階が、同時に、または部分的に同時に実行され得る。また、別個の段階として実行されるいくつかの方法の段階が組み合わてよく、組み合わされた段階として実行されている段階が別個の段階に分離されてよく、一連の特定の処理が逆にされるか、またはそうでなければ変更されてよく、別個の処理の性質または数は変更されたり変化させられたりしてよい。任意の要素または装置の順序または順番は、代替的な構成に従って変更されたり置き換えられたりしてよい。したがって、全てのそのような修正は、添付の特許請求の範囲において定義される本開示の範囲内に含まれるよう意図されている。そのような変更は、選択される機械可読媒体およびハードウェアシステムと、設計者の選択とに依存する。全てのそのような変更は本開示の範囲内であることが理解される。同様に、本開示のソフトウェアおよびウェブの実装は、ルールベースロジックと様々なデータベース検索段階、相関付け段階、比較段階および決定段階を実現する他のロジックとを伴う標準的なプログラミング技術を用いて実現され得る。
構成についての前述の説明を例示および説明の目的で提示した。包括的なものとすることも、本開示を開示された正確な形式に限定することも意図されておらず、修正および変更が、上述の教示に照らして可能であるか、または本開示から取得され得る。当該構成は、本開示の原理およびその実際の用途を説明することで、様々な構成を当業者が利用することを可能にすべく、かつ、様々な修正が、意図された特定の用途に適合するよう、選択および説明されている。添付の特許請求の範囲において表される本開示の範囲から逸脱することなく、他の置き換え、修正、変更および省略が、当該構成の設計、動作条件および配置で行われ得る。
[項目1]
複数の機械と、
上記複数の機械の各々がサブスクライブするパブリッシュ-サブスクライブ(Pub-Sub)チャネルと
を備え、
上記複数の機械の各々は、
可用性ステータスおよびリソース割り当て情報を上記Pub-Subチャネルにパブリッシュし、
上記Pub-Subチャネルを介して、上記複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信し、
上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を上記複数の機械のうちの上記別の1つへ転送する
ように構成される、
スーパークラスタ。
[項目2]
上記可用性ステータスは、コンテンツデータを格納するために上記複数の機械の各々が利用可能であるかどうかを示し、
上記リソース割り当て情報は、上記複数の機械の各々により格納される上記コンテンツデータを特定する、
項目1に記載のスーパークラスタ。
[項目3]
上記Pub-Subチャネルは、マルチキャストアドレスを有する、項目1に記載のスーパークラスタ。
[項目4]
上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記クライアントから受信した、上記コンテンツデータの上記要求を上記複数の機械のうちの上記別の1つへ転送することは、
上記複数の機械のうちの第1の機械が上記コンテンツデータの上記要求を上記クライアントから受信することと、
上記第1の機械が、上記第1の機械は上記コンテンツデータを格納していない、と判断することと、
上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記コンテンツデータは上記複数の機械のうちの第2の機械に格納されている、と判断することと、
上記要求を上記第2の機械へ転送することと
を含む、
項目1に記載のスーパークラスタ。
[項目5]
上記複数の機械のうちの第1の機械は、上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記複数の機械のうちの第2の機械により所有されているコンテンツデータを所有する、項目1に記載のスーパークラスタ。
[項目6]
上記第1の機械は、上記第2の機械により現在所有されている上記コンテンツデータを所有するために、
上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記第2の機械により所有されている上記コンテンツデータを特定し、
上記第2の機械により所有されている上記コンテンツデータを所有するための可用性を上記Pub-Subチャネルにパブリッシュし、
上記Pub-Subチャネルを介して、上記第2の機械からの許可を上記第2の機械から受信し、
上記第2の機械により所有されている上記コンテンツデータを所有し、
上記コンテンツデータの中継された要求を上記複数の機械のうちの第3の機械から受信し、かつ、
上記中継された要求に応答して、上記コンテンツデータを提供する、
項目5に記載のスーパークラスタ。
[項目7]
上記第1の機械は、上記第2の機械により現在所有されている上記コンテンツデータを所有するために、
上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記コンテンツデータを現在格納している第2の機械の数は閾値未満である、と判断し、
上記コンテンツデータを所有するための可用性を上記Pub-Subチャネルにパブリッシュし、
上記Pub-Subチャネルを介して、上記コンテンツデータを現在格納している上記第2の機械から許可を受信し、
上記コンテンツデータを所有し、
上記コンテンツデータの中継された要求を上記複数の機械のうちの第3の機械から受信し、かつ、
上記中継された要求に応答して、上記コンテンツデータを提供する、
項目5に記載のスーパークラスタ。
[項目8]
上記複数の機械のうちの第1の機械は、別のスーパークラスタ内の第2の機械へのブリッジを確立するように構成され、
上記別のスーパークラスタは、上記スーパークラスタに近接し、
上記ブリッジは、上記別のスーパークラスタの少なくともいくつかの機械の各々の可用性ステータスおよびリソース割り当て情報を上記第1の機械へ中継するように構成される、
項目1に記載のスーパークラスタ。
[項目9]
上記第1の機械は、上記Pub-Subチャネル上の上記複数の機械の上記可用性ステータスに基づいて、上記複数の機械のうちの利用不可能な機械の数は閾値を超えている、と判断するように構成され、
上記利用不可能な機械の数は上記閾値を超えているという判断に応答して、上記ブリッジは、確立される、
項目8に記載のスーパークラスタ。
[項目10]
上記ブリッジは、伝送制御プロトコル(TCP)接続を含む、項目8に記載のスーパークラスタ。
[項目11]
上記第1の機械は、上記スーパークラスタに対する地理的な近接度に基づいて、上記別のスーパークラスタを特定するように構成される、項目8に記載のスーパークラスタ。
[項目12]
上記第1の機械は、ドメインネームシステム(DNS)要求を行うことにより、上記別のスーパークラスタが上記スーパークラスタに隣接していることを特定する、項目11に記載のスーパークラスタ。
[項目13]
上記第1の機械は、上記Pub-Subチャネル上の上記別のスーパークラスタの上記少なくともいくつかの機械の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュするように構成される、項目8に記載のスーパークラスタ。
[項目14]
上記スーパークラスタの第3の機械は、
上記コンテンツデータの上記要求を上記クライアントから受信し、
上記Pub-Subチャネル上の上記別のスーパークラスタの上記少なくともいくつかの機械の上記リソース割り当て情報に基づいて、上記コンテンツデータは上記別のスーパークラスタの第4の機械により格納されている、と判断し、かつ、
上記要求を上記第4の機械へ転送する
ように構成される、
項目13に記載のスーパークラスタ。
[項目15]
スーパークラスタの複数の機械にわたって負荷を分散するための方法であって、
上記スーパークラスタの上記複数の機械の各々が、可用性ステータスおよびリソース割り当て情報をパブリッシュ-サブスクライブ(Pub-Sub)チャネルにパブリッシュする段階であって、上記複数の機械の各々は、上記Pub-Subチャネルをサブスクライブする、パブリッシュする段階と、
上記Pub-Subチャネルを介して、上記複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信する段階と、
上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を上記複数の機械のうちの上記別の1つへ転送する段階と
を備える方法。
[項目16]
実行された場合、スーパークラスタの複数の機械の各々のプロセッサに、
可用性ステータスおよびリソース割り当て情報をパブリッシュ-サブスクライブ(Pub-Sub)チャネルにパブリッシュする手順であって、上記複数の機械の各々は、上記Pub-Subチャネルをサブスクライブする、パブリッシュする手順と、
上記Pub-Subチャネルを介して、上記複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信する手順と、
上記Pub-Subチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を上記複数の機械のうちの上記別の1つへ転送する手順と
を実行させるようなコンピュータ可読命令を備える非一時的コンピュータ可読媒体。
[項目17]
スーパークラスタにわたって負荷を分散するための方法であって、
第1のスーパークラスタの第1の機械が、上記第1のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する段階と、
上記第1の機械が第2のスーパークラスタ内の第2の機械とのブリッジを確立する段階であって、上記第2のスーパークラスタは、上記第1のスーパークラスタに隣接する、確立する段階と、
上記第1の機械が、上記ブリッジを介して、上記第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する段階と、
上記第1の機械が、上記第1のスーパークラスタのパブリッシュ-サブスクライブ(Pub-Sub)チャネル上で、上記第2のスーパークラスタの上記複数の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュする段階と
を備える方法。
[項目18]
上記可用性ステータスは、コンテンツデータを格納するために上記第2のスーパークラスタの上記複数の機械の各々が利用可能であるかどうかを示し、
上記リソース割り当て情報は、上記第2のスーパークラスタの上記複数の機械の各々が担う上記コンテンツデータを特定する、
項目17に記載の方法。
[項目19]
上記第1のスーパークラスタの上記Pub-Subチャネル上の上記第1のスーパークラスタの複数の機械が上記第1のスーパークラスタの上記機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階をさらに備える、項目17に記載の方法。
[項目20]
上記第1のスーパークラスタ内の上記利用不可能な機械の数は、上記第1のスーパークラスタの上記Pub-Subチャネル上で提供される上記可用性ステータスに基づいて決定される、項目19に記載の方法。
[項目21]
上記第1のスーパークラスタの上記Pub-Subチャネルは、マルチキャストアドレスを含む、項目17に記載の方法。
[項目22]
上記第1のスーパークラスタの第3の機械がコンテンツデータの要求をクライアントから受信する段階と、
上記第3の機械が、上記Pub-Subチャネル上の上記第2のスーパークラスタの上記複数の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記コンテンツデータは上記第2のスーパークラスタの第4の機械により格納されている、と判断する段階と、
上記要求を上記第2のスーパークラスタ内の上記第4の機械へ転送する段階と
をさらに備える、項目17に記載の方法。
[項目23]
上記ブリッジは、伝送制御プロトコル(TCP)接続を含む、項目17に記載の方法。
[項目24]
上記第1の機械が、上記第1のスーパークラスタに対する地理的な近接度に基づいて、上記第2のスーパークラスタを特定する段階をさらに備える、項目17に記載の方法。
[項目25]
上記第1の機械は、ドメインネームシステム(DNS)要求を行うことにより、上記第2のスーパークラスタが上記第1のスーパークラスタに隣接していることを特定する、項目24に記載の方法。
[項目26]
実行された場合、第1のスーパークラスタの第1の機械のプロセッサに、
上記第1のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する手順と、
第2のスーパークラスタ内の第2の機械とのブリッジを確立する段階であって、上記第2のスーパークラスタは、上記第1のスーパークラスタに隣接する、確立する手順と、
上記ブリッジを介して、上記第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する手順と、
上記第1のスーパークラスタのパブリッシュ-サブスクライブ(Pub-Sub)チャネル上で、上記第2のスーパークラスタの上記複数の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュする手順と
を実行させるようなコンピュータ可読命令を備える非一時的コンピュータ可読媒体。
[項目27]
複数の第1の機械と、
上記複数の第1の機械の各々がサブスクライブするパブリッシュ-サブスクライブ(Pub-Sub)チャネルと
を有する第1のスーパークラスタと、
複数の第2の機械
を有する第2のスーパークラスタと、
上記第1のスーパークラスタと上記第2のスーパークラスタとの間のブリッジと
を備え、
上記複数の第1の機械のうちの1つは、
上記ブリッジを介して、上記複数の第2の機械の各々の可用性ステータスおよびリソース割り当て情報を上記複数の第2の機械のうちの1つから受信し、かつ、
上記第1のスーパークラスタの上記Pub-Subチャネル上で、上記複数の第2の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュする
ように構成される、
システム。

Claims (24)

  1. 第1の機械と、第2の機械と、第3の機械とを有する複数の機械と、
    前記複数の機械の各々がサブスクライブするように構成可能であるパブリッシュ-サブスクライブ(Pub-Sub)チャネルと
    を備え、
    前記複数の機械の各々は、
    可用性ステータスおよびリソース割り当て情報を前記Pub-Subチャネルにパブリッシュすること、
    前記Pub-Subチャネルを介して、前記複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信することであって、前記可用性ステータスは、コンテンツデータを格納するために前記複数の機械の各々が利用可能であるかどうかを示し、前記リソース割り当て情報は、前記複数の機械の各々により格納される前記コンテンツデータを特定する、受信すること、および、
    前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を前記複数の機械のうちの前記少なくとも別の1つへ転送することを行うように構成され、
    前記第1の機械は、前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、かつ、前記第1の機械が前記コンテンツデータを所有するのを前記第2の機械が許可したことに基づいて、前記第2の機械により所有されている前記コンテンツデータを所有するように構成され、前記第1の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第3の機械に提供するように構成される、
    スーパークラスタ。
  2. 前記Pub-Subチャネルは、マルチキャストアドレスを有する、請求項1に記載のスーパークラスタ。
  3. 前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記クライアントから受信した、前記コンテンツデータの前記要求を前記複数の機械のうちの前記少なくとも別の1つへ転送することは、
    前記複数の機械のうちの第1の機械が前記コンテンツデータの前記要求を前記クライアントから受信することと、
    前記第1の機械が、前記第1の機械は前記コンテンツデータを格納していない、と判断することと、
    前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記コンテンツデータは前記複数の機械のうちの第2の機械に格納されている、と判断することと、
    前記要求を前記第2の機械へ転送することと
    を含む、
    請求項1または2に記載のスーパークラスタ。
  4. 前記第1の機械は、前記第2の機械により現在所有されている前記コンテンツデータを所有するために、
    前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記第2の機械により所有されている前記コンテンツデータを特定し、
    前記第2の機械により所有されている前記コンテンツデータを所有するための可用性を前記Pub-Subチャネルにパブリッシュし、かつ、
    前記第2の機械により所有されている前記コンテンツデータを所有する
    ように構成される、
    請求項1から3のいずれか一項に記載のスーパークラスタ。
  5. 前記第1の機械は、前記第2の機械により現在所有されている前記コンテンツデータを所有するために、
    前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記コンテンツデータを現在格納している第2の機械の数は閾値未満である、と判断し、
    前記コンテンツデータを所有するための可用性を前記Pub-Subチャネルにパブリッシュし、
    前記Pub-Subチャネルを介して、前記コンテンツデータを現在格納している前記第2の機械から許可を受信し、
    前記コンテンツデータを所有し、
    前記コンテンツデータの中継された要求を前記複数の機械のうちの第3の機械から受信し、かつ、
    前記中継された要求に応答して、前記コンテンツデータを提供する
    ように構成される、
    請求項1から4のいずれか一項に記載のスーパークラスタ。
  6. 前記複数の機械のうちの第1の機械は、別のスーパークラスタ内の第2の機械へのブリッジを確立するように構成され、
    前記別のスーパークラスタは、前記スーパークラスタに近接し、
    前記ブリッジは、前記別のスーパークラスタの少なくともいくつかの機械の各々の可用性ステータスおよびリソース割り当て情報を前記第1の機械へ中継するように構成される、
    請求項1から5のいずれか一項に記載のスーパークラスタ。
  7. 前記第1の機械は、前記Pub-Subチャネル上の前記複数の機械の前記可用性ステータスに基づいて、前記複数の機械のうちの利用不可能な機械の数は閾値を超えている、と判断するように構成され、
    前記スーパークラスタは、前記利用不可能な機械の数は前記閾値を超えているという判断に応答して、前記ブリッジを確立するように構成される、
    請求項6に記載のスーパークラスタ。
  8. 前記ブリッジは、伝送制御プロトコル(TCP)接続を含む、請求項6まは7に記載のスーパークラスタ。
  9. 前記第1の機械は、前記スーパークラスタに対する地理的な近接度に基づいて、前記別のスーパークラスタを特定するように構成される、請求項6から8のいずれか一項に記載のスーパークラスタ。
  10. 前記第1の機械は、ドメインネームシステム(DNS)要求を行うことにより、前記別のスーパークラスタが前記スーパークラスタに隣接していることを特定するように構成される、請求項6から9のいずれか一項に記載のスーパークラスタ。
  11. 前記第1の機械は、前記Pub-Subチャネル上の前記別のスーパークラスタの前記少なくともいくつかの機械の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュするように構成される、請求項6から10のいずれか一項に記載のスーパークラスタ。
  12. 前記スーパークラスタの第3の機械は、
    前記コンテンツデータの前記要求を前記クライアントから受信し、
    前記Pub-Subチャネル上の前記別のスーパークラスタの前記少なくともいくつかの機械の前記リソース割り当て情報に基づいて、前記コンテンツデータは前記別のスーパークラスタの第4の機械により格納されている、と判断し、かつ、
    前記要求を前記第4の機械へ転送する
    ように構成される、
    請求項11に記載のスーパークラスタ。
  13. スーパークラスタの複数の機械にわたって負荷を分散するための方法であって、前記複数の機械は、第1の機械と、第2の機械と、第3の機械とを含み、前記方法は、
    前記スーパークラスタの前記複数の機械の各々が、可用性ステータスおよびリソース割り当て情報をパブリッシュ-サブスクライブ(Pub-Sub)チャネルにパブリッシュする段階であって、前記複数の機械の各々は、前記Pub-Subチャネルをサブスクライブする、パブリッシュする段階と、
    前記Pub-Subチャネルを介して、前記複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信する段階であって、前記可用性ステータスは、コンテンツデータを格納するために前記複数の機械の各々が利用可能であるかどうかを示し、前記リソース割り当て情報は、前記複数の機械の各々により格納される前記コンテンツデータを特定する、段階と
    前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を前記複数の機械のうちの前記少なくとも別の1つへ転送する段階であって、前記第2の機械により所有されている前記コンテンツデータの前記第1の機械による所有は、前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第1の機械が前記コンテンツデータを所有するのを前記第2の機械が許可したことに基づいており、前記第1の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第3の機械に提供する、転送する段階と
    を備える方法。
  14. 実行された場合、スーパークラスタの複数の機械であって、第1の機械と、第2の機械と、第3の機械とを含む、複数の機械の各々のプロセッサに、
    可用性ステータスおよびリソース割り当て情報をパブリッシュ-サブスクライブ(Pub-Sub)チャネルにパブリッシュする手順であって、前記複数の機械の各々は、前記Pub-Subチャネルをサブスクライブする、パブリッシュする手順と、
    前記Pub-Subチャネルを介して、前記複数の機械のうちの少なくとも別の1つの可用性ステータスおよびリソース割り当て情報を受信する手順であって、前記可用性ステータスは、コンテンツデータを格納するために前記複数の機械の各々が利用可能であるかどうかを示し、前記リソース割り当て情報は、前記複数の機械の各々により格納される前記コンテンツデータを特定する、手順と
    前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を前記複数の機械のうちの前記少なくとも別の1つへ転送する手順であって、前記第2の機械により所有されている前記コンテンツデータの前記第1の機械による所有は、前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第1の機械が前記コンテンツデータを所有するのを前記第2の機械が許可したことに基づいており、前記第1の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第3の機械に提供する、転送する手順と
    を実行させるようなコンピュータ可読命令を備えるコンピュータプログラム。
  15. スーパークラスタにわたって負荷を分散するための方法であって、
    第1のスーパークラスタの第1の機械が、前記第1のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する段階と、
    前記第1の機械が第2のスーパークラスタ内の第2の機械とのブリッジを確立する段階であって、前記第2のスーパークラスタは、前記第1のスーパークラスタに隣接する、確立する段階と、
    前記第1の機械が、前記ブリッジを介して、前記第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する段階であって、前記可用性ステータスは、コンテンツデータを格納するために前記第2のスーパークラスタの前記複数の機械の各々が利用可能であるかどうかを示し、前記リソース割り当て情報は、前記第2のスーパークラスタの前記複数の機械の各々が担う前記コンテンツデータを特定する、段階と
    前記第1の機械が、前記第1のスーパークラスタのパブリッシュ-サブスクライブ(Pub-Sub)チャネル上で、前記第2のスーパークラスタの前記複数の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュする段階であって、前記第2のスーパークラスタの前記第2の機械により所有されているコンテンツデータの前記第1の機械による所有は、前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第1の機械が前記コンテンツデータを所有するのを前記第2の機械が許可したことに基づいており、前記第1の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第1のスーパークラスタの第3の機械に提供する、パブリッシュする段階と
    を備える方法。
  16. 前記第1のスーパークラスタの前記Pub-Subチャネル上の前記第1のスーパークラスタの複数の機械が前記第1のスーパークラスタの前記機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階をさらに備える、請求項15に記載の方法。
  17. 前記第1のスーパークラスタ内の前記利用不可能な機械の数は、前記第1のスーパークラスタの前記Pub-Subチャネル上で提供される前記可用性ステータスに基づいて決定される、請求項15または16に記載の方法。
  18. 前記第1のスーパークラスタの前記Pub-Subチャネルは、マルチキャストアドレスを含む、請求項15から17のいずれか一項に記載の方法。
  19. 前記第3の機械がコンテンツデータの要求をクライアントから受信する段階と、
    前記第3の機械が、前記Pub-Subチャネル上の前記第2のスーパークラスタの前記複数の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記コンテンツデータは前記第2のスーパークラスタの第4の機械により格納されている、と判断する段階と、
    前記要求を前記第2のスーパークラスタ内の前記第4の機械へ転送する段階と
    をさらに備える、請求項15から18のいずれか一項に記載の方法。
  20. 前記ブリッジは、伝送制御プロトコル(TCP)接続を含む、請求項15から19のいずれか一項に記載の方法。
  21. 前記第1の機械が、前記第1のスーパークラスタに対する地理的な近接度に基づいて、前記第2のスーパークラスタを特定する段階をさらに備える、請求項15から20のいずれか一項に記載の方法。
  22. 前記第1の機械は、ドメインネームシステム(DNS)要求を行うことにより、前記第2のスーパークラスタが前記第1のスーパークラスタに隣接していることを特定する、請求項15から21のいずれか一項に記載の方法。
  23. 実行された場合、第1のスーパークラスタの第1の機械のプロセッサに、
    前記第1のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する手順と、
    第2のスーパークラスタ内の第2の機械とのブリッジを確立する段階であって、前記第2のスーパークラスタは、前記第1のスーパークラスタに隣接する、確立する手順と、
    前記ブリッジを介して、前記第2のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する手順であって、前記可用性ステータスは、コンテンツデータを格納するために前記第2のスーパークラスタの前記複数の機械の各々が利用可能であるかどうかを示し、前記リソース割り当て情報は、前記第2のスーパークラスタの前記複数の機械の各々が担う前記コンテンツデータを特定する、手順と
    前記第1のスーパークラスタのパブリッシュ-サブスクライブ(Pub-Sub)チャネル上で、前記第2のスーパークラスタの前記複数の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュする手順であって、前記第2の機械により所有されているコンテンツデータの前記第1の機械による所有は、前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第1の機械が前記コンテンツデータを所有するのを前記第2の機械が許可したことに基づいており、前記第1の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを第3の機械に提供する、パブリッシュする手順と
    を実行させるようなコンピュータ可読命令を備えるコンピュータプログラム。
  24. 複数の第1の機械と、
    前記複数の第1の機械の各々がサブスクライブするように構成可能であるパブリッシュ-サブスクライブ(Pub-Sub)チャネルと
    を有する第1のスーパークラスタと、
    複数の第2の機械
    を有する第2のスーパークラスタと、
    前記第1のスーパークラスタと前記第2のスーパークラスタとの間のブリッジと
    を備え、
    前記複数の第1の機械のうちの1つは、
    前記ブリッジを介して、前記複数の第2の機械の各々の可用性ステータスおよびリソース割り当て情報を前記複数の第2の機械のうちの1つから受信することであって、前記可用性ステータスは、コンテンツデータを格納するために前記第2のスーパークラスタの前記複数の第2の機械の各々が利用可能であるかどうかを示し、前記リソース割り当て情報は、前記第2のスーパークラスタの前記複数の第2の機械の各々が担う前記コンテンツデータを特定する、受信すること、および、
    前記第1のスーパークラスタの前記Pub-Subチャネル上で、前記複数の第2の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュすること
    を行うように構成され、
    前記複数の第1の機械のうちの前記1つは、前記Pub-Subチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、かつ、前記複数の第1の機械のうちの前記1つがコンテンツデータを所有するのを前記複数の第2の機械のうちの前記1つが許可したことに基づいて、前記複数の第2の機械のうちの前記1つにより所有されている前記コンテンツデータを所有するように構成され、前記複数の第1の機械のうちの前記1つは、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第1のスーパークラスタの第3の機械に提供する、
    システム。
JP2020567564A 2018-06-07 2018-06-22 スーパークラスタにわたる負荷分散 Active JP7148033B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/002,919 2018-06-07
US16/002,919 US10594782B2 (en) 2018-06-07 2018-06-07 Load distribution across superclusters
PCT/US2018/039032 WO2019236113A1 (en) 2018-06-07 2018-06-22 Load distribution across superclusters

Publications (2)

Publication Number Publication Date
JP2021526268A JP2021526268A (ja) 2021-09-30
JP7148033B2 true JP7148033B2 (ja) 2022-10-05

Family

ID=68764441

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020567564A Active JP7148033B2 (ja) 2018-06-07 2018-06-22 スーパークラスタにわたる負荷分散

Country Status (7)

Country Link
US (3) US10594782B2 (ja)
EP (1) EP3804278B1 (ja)
JP (1) JP7148033B2 (ja)
AU (1) AU2018427212A1 (ja)
CA (1) CA3103126A1 (ja)
SG (1) SG11202012018TA (ja)
WO (1) WO2019236113A1 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005537687A (ja) 2001-09-28 2005-12-08 サヴィス インコーポレイテッド 構成可能な適応型広域トラフィック制御および管理
JP2006171822A (ja) 2004-12-13 2006-06-29 Nippon Telegr & Teleph Corp <Ntt> コンテンツ配信方法
JP2006301769A (ja) 2005-04-18 2006-11-02 Hitachi Information Technology Co Ltd サーバ装置
JP2011118593A (ja) 2009-12-02 2011-06-16 Nec Corp データ転送サーバ、データ転送システム、データ転送方法およびプログラム
JP2012169789A (ja) 2011-02-10 2012-09-06 Nippon Telegr & Teleph Corp <Ntt> 負荷分散サーバ及びサーバ選択方法及びサーバ選択プログラム
US20120317307A1 (en) 2011-06-07 2012-12-13 Futurewei Technologies, Inc. Method and Apparatus for Content Identifier Based Radius Constrained Cache Flooding to Enable Efficient Content Routing
JP2013058056A (ja) 2011-09-08 2013-03-28 Fujitsu Ltd 配信システム、配信方法、及び配信プログラム
US20130173806A1 (en) 2011-12-31 2013-07-04 Level 3 Communications, Llc Load-balancing cluster

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389448B1 (en) 1999-12-06 2002-05-14 Warp Solutions, Inc. System and method for load balancing
GB0622551D0 (en) * 2006-11-11 2006-12-20 Ibm A method, apparatus and computer program for a first device to determine the status of a second device
US20100322236A1 (en) * 2009-06-18 2010-12-23 Nokia Corporation Method and apparatus for message routing between clusters using proxy channels
US20150029851A1 (en) * 2013-07-26 2015-01-29 Telefonaktiebolaget L M Ericsson (Publ) Managing the traffic load of a delivery node
KR101773716B1 (ko) * 2016-06-30 2017-09-12 이화여자대학교 산학협력단 콘텐츠 중심 네트워크에서 콘텐츠를 공유하는 방법 및 콘텐츠를 공유하는 콘텐츠 중심 네트워크의 라우터
US10686625B2 (en) * 2017-10-02 2020-06-16 Vmware, Inc. Defining and distributing routes for a virtual network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005537687A (ja) 2001-09-28 2005-12-08 サヴィス インコーポレイテッド 構成可能な適応型広域トラフィック制御および管理
JP2006171822A (ja) 2004-12-13 2006-06-29 Nippon Telegr & Teleph Corp <Ntt> コンテンツ配信方法
JP2006301769A (ja) 2005-04-18 2006-11-02 Hitachi Information Technology Co Ltd サーバ装置
JP2011118593A (ja) 2009-12-02 2011-06-16 Nec Corp データ転送サーバ、データ転送システム、データ転送方法およびプログラム
JP2012169789A (ja) 2011-02-10 2012-09-06 Nippon Telegr & Teleph Corp <Ntt> 負荷分散サーバ及びサーバ選択方法及びサーバ選択プログラム
US20120317307A1 (en) 2011-06-07 2012-12-13 Futurewei Technologies, Inc. Method and Apparatus for Content Identifier Based Radius Constrained Cache Flooding to Enable Efficient Content Routing
JP2013058056A (ja) 2011-09-08 2013-03-28 Fujitsu Ltd 配信システム、配信方法、及び配信プログラム
US20130173806A1 (en) 2011-12-31 2013-07-04 Level 3 Communications, Llc Load-balancing cluster

Also Published As

Publication number Publication date
EP3804278B1 (en) 2022-10-12
US10594782B2 (en) 2020-03-17
EP3804278A1 (en) 2021-04-14
AU2018427212A1 (en) 2021-01-07
SG11202012018TA (en) 2021-01-28
US20230254366A1 (en) 2023-08-10
WO2019236113A1 (en) 2019-12-12
US20190379730A1 (en) 2019-12-12
CA3103126A1 (en) 2019-12-12
US11637893B2 (en) 2023-04-25
JP2021526268A (ja) 2021-09-30
US20200213388A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
CN107078969B (zh) 实现负载均衡的计算机设备、***和方法
US8380851B2 (en) Domain name resolution resource allocation
AU771353B2 (en) A proximity-based redirection system for robust and scalable service-node location in an internetwork
JP4594422B2 (ja) クラスター化ノードを権限のあるドメインネームサーバーとして使用してアクティブ負荷のバランスをとるためのシステム、ネットワーク装置、方法、及びコンピュータプログラム製品
US20210226916A1 (en) Systems and methods for utilization of anycast techniques in a dns architecture
EP2066101B1 (en) System and method for an improved high availability component implementation
JP5381998B2 (ja) クラスタ制御システム、クラスタ制御方法、及びプログラム
KR20090069312A (ko) 리소스 공급을 위한 방법, 시스템, 및 에지 서버
US20040205219A1 (en) Virtual active network for live streaming media
CN102025630A (zh) 负载均衡方法及负载均衡***
CN102934412B (zh) 服务器集群
US9760370B2 (en) Load balancing using predictable state partitioning
JP7148033B2 (ja) スーパークラスタにわたる負荷分散
CN114900526A (zh) 负载均衡方法及***、计算机存储介质、电子设备
CN114079636A (zh) 一种流量处理方法及交换机、软负载设备、存储介质
CN110958182B (zh) 一种通信方法及相关设备
Bhinder DpsrcN AND EvaluaTroN op RBQuEST DrsrRreurroN

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220907

R150 Certificate of patent or registration of utility model

Ref document number: 7148033

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150