(57)【要約】  本明細書において説明する例は、複数の第１の機械と、複数の第１の機械の各々がサブスクライブするパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルとを有する第１のスーパークラスタを含むスーパークラスタ内での、またはスーパークラスタにわたる通信を管理するための装置および方法に関する。第２のスーパークラスタは、複数の第２の機械と、第１のスーパークラスタと第２のスーパークラスタとの間のブリッジとを有する。第１の機械は、ブリッジを介して、各第２の機械の可用性ステータスおよびリソース割り当て情報を受信し、第１のスーパークラスタのＰｕｂ−Ｓｕｂチャネル上で、可用性ステータスおよびリソース割り当て情報をパブリッシュするように構成される。
2021526268.tif 000002
【特許請求の範囲】
【請求項１】
第１の機械と、第２の機械と、第３の機械とを有する複数の機械と、
前記複数の機械の各々がサブスクライブするように構成可能であるパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルと
を備え、
前記複数の機械の各々は、
可用性ステータスおよびリソース割り当て情報を前記Ｐｕｂ−Ｓｕｂチャネルにパブリッシュし、
前記Ｐｕｂ−Ｓｕｂチャネルを介して、前記複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信し、かつ、
前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を前記複数の機械のうちの前記少なくとも別の１つへ転送するように構成され、
前記第１の機械は、前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、かつ、前記第１の機械が前記コンテンツデータを所有するのを前記第２の機械が許可したことに基づいて、前記第２の機械により所有されている前記コンテンツデータを所有するように構成され、前記第１の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第３の機械に提供するように構成される、
スーパークラスタ。
【請求項２】
前記可用性ステータスは、コンテンツデータを格納するために前記複数の機械の各々が利用可能であるかどうかを示し、
前記リソース割り当て情報は、前記複数の機械の各々により格納される前記コンテンツデータを特定する、
請求項１に記載のスーパークラスタ。
【請求項３】
前記Ｐｕｂ−Ｓｕｂチャネルは、マルチキャストアドレスを有する、請求項１または２に記載のスーパークラスタ。
【請求項４】
前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記クライアントから受信した、前記コンテンツデータの前記要求を前記複数の機械のうちの前記少なくとも別の１つへ転送することは、
前記複数の機械のうちの第１の機械が前記コンテンツデータの前記要求を前記クライアントから受信することと、
前記第１の機械が、前記第１の機械は前記コンテンツデータを格納していない、と判断することと、
前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記コンテンツデータは前記複数の機械のうちの第２の機械に格納されている、と判断することと、
前記要求を前記第２の機械へ転送することと
を含む、
請求項１から３のいずれか一項に記載のスーパークラスタ。
【請求項５】
前記第１の機械は、前記第２の機械により現在所有されている前記コンテンツデータを所有するために、
前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記第２の機械により所有されている前記コンテンツデータを特定し、
前記第２の機械により所有されている前記コンテンツデータを所有するための可用性を前記Ｐｕｂ−Ｓｕｂチャネルにパブリッシュし、かつ、
前記第２の機械により所有されている前記コンテンツデータを所有する
ように構成される、
請求項１から４のいずれか一項に記載のスーパークラスタ。
【請求項６】
前記第１の機械は、前記第２の機械により現在所有されている前記コンテンツデータを所有するために、
前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記コンテンツデータを現在格納している第２の機械の数は閾値未満である、と判断し、
前記コンテンツデータを所有するための可用性を前記Ｐｕｂ−Ｓｕｂチャネルにパブリッシュし、
前記Ｐｕｂ−Ｓｕｂチャネルを介して、前記コンテンツデータを現在格納している前記第２の機械から許可を受信し、
前記コンテンツデータを所有し、
前記コンテンツデータの中継された要求を前記複数の機械のうちの第３の機械から受信し、かつ、
前記中継された要求に応答して、前記コンテンツデータを提供する
ように構成される、
請求項１から５のいずれか一項に記載のスーパークラスタ。
【請求項７】
前記複数の機械のうちの第１の機械は、別のスーパークラスタ内の第２の機械へのブリッジを確立するように構成され、
前記別のスーパークラスタは、前記スーパークラスタに近接し、
前記ブリッジは、前記別のスーパークラスタの少なくともいくつかの機械の各々の可用性ステータスおよびリソース割り当て情報を前記第１の機械へ中継するように構成される、
請求項１から６のいずれか一項に記載のスーパークラスタ。
【請求項８】
前記第１の機械は、前記Ｐｕｂ−Ｓｕｂチャネル上の前記複数の機械の前記可用性ステータスに基づいて、前記複数の機械のうちの利用不可能な機械の数は閾値を超えている、と判断するように構成され、
前記スーパークラスタは、前記利用不可能な機械の数は前記閾値を超えているという判断に応答して、前記ブリッジを確立するように構成される、
請求項７に記載のスーパークラスタ。
【請求項９】
前記ブリッジは、伝送制御プロトコル（ＴＣＰ）接続を含む、請求項７または８に記載のスーパークラスタ。
【請求項１０】
前記第１の機械は、前記スーパークラスタに対する地理的な近接度に基づいて、前記別のスーパークラスタを特定するように構成される、請求項７から９のいずれか一項に記載のスーパークラスタ。
【請求項１１】
前記第１の機械は、ドメインネームシステム（ＤＮＳ）要求を行うことにより、前記別のスーパークラスタが前記スーパークラスタに隣接していることを特定するように構成される、請求項７から１０のいずれか一項に記載のスーパークラスタ。
【請求項１２】
前記第１の機械は、前記Ｐｕｂ−Ｓｕｂチャネル上の前記別のスーパークラスタの前記少なくともいくつかの機械の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュするように構成される、請求項７から１１のいずれか一項に記載のスーパークラスタ。
【請求項１３】
前記スーパークラスタの第３の機械は、
前記コンテンツデータの前記要求を前記クライアントから受信し、
前記Ｐｕｂ−Ｓｕｂチャネル上の前記別のスーパークラスタの前記少なくともいくつかの機械の前記リソース割り当て情報に基づいて、前記コンテンツデータは前記別のスーパークラスタの第４の機械により格納されている、と判断し、かつ、
前記要求を前記第４の機械へ転送する
ように構成される、
請求項１２に記載のスーパークラスタ。
【請求項１４】
スーパークラスタの複数の機械にわたって負荷を分散するための方法であって、前記複数の機械は、第１の機械と、第２の機械と、第３の機械とを含み、前記方法は、
前記スーパークラスタの前記複数の機械の各々が、可用性ステータスおよびリソース割り当て情報をパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルにパブリッシュする段階であって、前記複数の機械の各々は、前記Ｐｕｂ−Ｓｕｂチャネルをサブスクライブする、パブリッシュする段階と、
前記Ｐｕｂ−Ｓｕｂチャネルを介して、前記複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信する段階と、
前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を前記複数の機械のうちの前記少なくとも別の１つへ転送する段階であって、前記第２の機械により所有されている前記コンテンツデータの前記第１の機械による所有は、前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第１の機械が前記コンテンツデータを所有するのを前記第２の機械が許可したことに基づいており、前記第１の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第３の機械に提供する、転送する段階と
を備える方法。
【請求項１５】
実行された場合、スーパークラスタの複数の機械であって、第１の機械と、第２の機械と、第３の機械とを含む、複数の機械の各々のプロセッサに、
可用性ステータスおよびリソース割り当て情報をパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルにパブリッシュする手順であって、前記複数の機械の各々は、前記Ｐｕｂ−Ｓｕｂチャネルをサブスクライブする、パブリッシュする手順と、
前記Ｐｕｂ−Ｓｕｂチャネルを介して、前記複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信する手順と、
前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を前記複数の機械のうちの前記少なくとも別の１つへ転送する手順であって、前記第２の機械により所有されている前記コンテンツデータの前記第１の機械による所有は、前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第１の機械が前記コンテンツデータを所有するのを前記第２の機械が許可したことに基づいており、前記第１の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第３の機械に提供する、転送する手順と
を実行させるようなコンピュータ可読命令を備えるコンピュータプログラム。
【請求項１６】
スーパークラスタにわたって負荷を分散するための方法であって、
第１のスーパークラスタの第１の機械が、前記第１のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する段階と、
前記第１の機械が第２のスーパークラスタ内の第２の機械とのブリッジを確立する段階であって、前記第２のスーパークラスタは、前記第１のスーパークラスタに隣接する、確立する段階と、
前記第１の機械が、前記ブリッジを介して、前記第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する段階と、
前記第１の機械が、前記第１のスーパークラスタのパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネル上で、前記第２のスーパークラスタの前記複数の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュする段階であって、前記第２のスーパークラスタの前記第２の機械により所有されているコンテンツデータの前記第１の機械による所有は、前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第１の機械が前記コンテンツデータを所有するのを前記第２の機械が許可したことに基づいており、前記第１の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第１のスーパークラスタの第３の機械に提供する、パブリッシュする段階と
を備える方法。
【請求項１７】
前記可用性ステータスは、コンテンツデータを格納するために前記第２のスーパークラスタの前記複数の機械の各々が利用可能であるかどうかを示し、
前記リソース割り当て情報は、前記第２のスーパークラスタの前記複数の機械の各々が担う前記コンテンツデータを特定する、
請求項１６に記載の方法。
【請求項１８】
前記第１のスーパークラスタの前記Ｐｕｂ−Ｓｕｂチャネル上の前記第１のスーパークラスタの複数の機械が前記第１のスーパークラスタの前記機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階をさらに備える、請求項１６または１７に記載の方法。
【請求項１９】
前記第１のスーパークラスタ内の前記利用不可能な機械の数は、前記第１のスーパークラスタの前記Ｐｕｂ−Ｓｕｂチャネル上で提供される前記可用性ステータスに基づいて決定される、請求項１６から１８のいずれか一項に記載の方法。
【請求項２０】
前記第１のスーパークラスタの前記Ｐｕｂ−Ｓｕｂチャネルは、マルチキャストアドレスを含む、請求項１６から１９のいずれか一項に記載の方法。
【請求項２１】
前記第３の機械がコンテンツデータの要求をクライアントから受信する段階と、
前記第３の機械が、前記Ｐｕｂ−Ｓｕｂチャネル上の前記第２のスーパークラスタの前記複数の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、前記コンテンツデータは前記第２のスーパークラスタの第４の機械により格納されている、と判断する段階と、
前記要求を前記第２のスーパークラスタ内の前記第４の機械へ転送する段階と
をさらに備える、請求項１６から２０のいずれか一項に記載の方法。
【請求項２２】
前記ブリッジは、伝送制御プロトコル（ＴＣＰ）接続を含む、請求項１６から２１のいずれか一項に記載の方法。
【請求項２３】
前記第１の機械が、前記第１のスーパークラスタに対する地理的な近接度に基づいて、前記第２のスーパークラスタを特定する段階をさらに備える、請求項１６から２２のいずれか一項に記載の方法。
【請求項２４】
前記第１の機械は、ドメインネームシステム（ＤＮＳ）要求を行うことにより、前記第２のスーパークラスタが前記第１のスーパークラスタに隣接していることを特定する、請求項１６から２３のいずれか一項に記載の方法。
【請求項２５】
実行された場合、第１のスーパークラスタの第１の機械のプロセッサに、
前記第１のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する手順と、
第２のスーパークラスタ内の第２の機械とのブリッジを確立する段階であって、前記第２のスーパークラスタは、前記第１のスーパークラスタに隣接する、確立する手順と、
前記ブリッジを介して、前記第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する手順と、
前記第１のスーパークラスタのパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネル上で、前記第２のスーパークラスタの前記複数の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュする手順であって、前記第２の機械により所有されているコンテンツデータの前記第１の機械による所有は、前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいており、かつ、前記第１の機械が前記コンテンツデータを所有するのを前記第２の機械が許可したことに基づいており、前記第１の機械は、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを第３の機械に提供する、パブリッシュする手順と
を実行させるようなコンピュータ可読命令を備えるコンピュータプログラム。
【請求項２６】
複数の第１の機械と、
前記複数の第１の機械の各々がサブスクライブするように構成可能であるパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルと
を有する第１のスーパークラスタと、
複数の第２の機械
を有する第２のスーパークラスタと、
前記第１のスーパークラスタと前記第２のスーパークラスタとの間のブリッジと
を備え、
前記複数の第１の機械のうちの１つは、
前記ブリッジを介して、前記複数の第２の機械の各々の可用性ステータスおよびリソース割り当て情報を前記複数の第２の機械のうちの１つから受信し、かつ、
前記第１のスーパークラスタの前記Ｐｕｂ−Ｓｕｂチャネル上で、前記複数の第２の機械の各々の前記可用性ステータスおよび前記リソース割り当て情報をパブリッシュする
ように構成され、
前記複数の第１の機械のうちの前記１つは、前記Ｐｕｂ−Ｓｕｂチャネル上の前記可用性ステータスおよび前記リソース割り当て情報に基づいて、かつ、前記複数の第１の機械のうちの前記１つがコンテンツデータを所有するのを前記複数の第２の機械のうちの前記１つが許可したことに基づいて、前記複数の第２の機械のうちの前記１つにより所有されている前記コンテンツデータを所有するように構成され、前記複数の第１の機械のうちの前記１つは、前記コンテンツデータの中継された要求を受信したことに基づいて、前記コンテンツデータを前記第１のスーパークラスタの第３の機械に提供する、
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［著作権表示］
本特許文献は、著作権保護の対象となる資料を含む。著作権者は、本特許文献または米国特許商標庁のファイルにおけるあらゆる関連資料の複製に対して異議を唱えるものではないが、そうでなければ、いかなる理由があろうとも全ての著作権を留保する。
［関連出願の相互参照］
【０００２】
本特許協働条約（ＰＣＴ）特許出願は、２０１８年６月７日出願された、「スーパークラスタにわたる負荷分散」と題する米国出願第１６／００２，９１９号の優先権を主張する。当該米国出願は、参照により、全ての内容が本明細書に組み込まれる。
【０００３】
本技術は概して、コンテンツ配信ネットワーク（ＣＤＮ）などのネットワーク内のスーパークラスタ内および当該スーパークラスタにわたるコンテンツの分散に関する。
【背景技術】
【０００４】
データセンタは、データ格納およびデータ処理が可能な機械を各々が含み得る１または複数のスーパークラスタを含み得る。典型的には、各スーパークラスタは、データセンタ内の多数のラック（または物理クラスタ）に及ぶ。いくつかの実装において、１または複数のスーパークラスタがコンテンツ配信ネットワーク（ＣＤＮ）内で用いられ得る。
【０００５】
ＣＤＮは、サーバ（各々がＣＤＮノードと称される）の地理的に分散されたネットワークであり、オリジンサーバがオリジンサーバのコンテンツデータを、当該コンテンツデータを消費するクライアントへ配信するのを容易にするためのものである。オリジンサーバから遠く離れているクライアントへ配信するために、クライアントに地理的に近接するＣＤＮノードは、オリジンサーバに代わって、コンテンツデータをそれらのクライアントに提供できる。特に、ＣＤＮノードは、オリジンサーバのコンテンツデータを複製およびキャッシュし、複製およびキャッシュしたコンテンツデータをクライアントに提供できる。いくつかのＣＤＮノードは、それらのＣＤＮノードがクライアントに近接していることから、「エッジノード」と称される。
【０００６】
スーパークラスタは、ＣＤＮの１または複数のノードを実装するために用いられ得る。例えば、ノードは、スーパークラスタの機械により実装され得る。スーパークラスタは、ＣＤＮのエッジノードを実装するために用いられ得る。それに関連して、スーパークラスタ内の各機械は、コンテンツデータの総ライブラリの少なくともいくつかの部分（例えば、少なくとも１つのスライス）を担うキャッシュである。総ライブラリは、１または複数のスーパークラスタに結び付けられるプロパティのセットにより定義される。そのため、総ライブラリを構成するスライスは、１または複数のスーパークラスタ内の機械に割り当てられる。
【０００７】
スーパークラスタ内の機械は、予め定められた／スケジューリングされた非可用性（例えば、メンテナンス等）および予期しない／突然の非可用性（例えば、非応答性、処理遅延、電源遮断等）を含む様々な理由で利用不可能になり得る。所与のスライスを格納する一次機械が利用不可能である場合、当該スライスを格納する二次機械が、当該スライスをクライアントに提供するよう選択され得る。所与のリソース／機械が割り当てられるスライスを選択するために、一貫したハッシュアルゴリズムが用いられる。この一貫したハッシュアルゴリズムは、機械のリストにわたって反復する。リスト上での機械の順序は、ソースキー（ＣＤＮ内の要求されるユニフォームリソースロケータ（ＵＲＬ）の正規化バージョンなど）に基づいて決定され得る。本方式では、機械が利用不可能であると判断されたことに応答して、利用不可能な機械が担うコンテンツデータは、スーパークラスタ内の多数の（理想的には全ての）他の機械に拡散され得るので、ホットスポットが回避される。ホットスポットは、スーパークラスタの所与の機械により、当該機械がかなりの量のトラフィックおよび処理を負担するように格納および提供されている１または複数の一般的なスライスを指す。所与のスーパークラスタ内の十分な数の機械がオフラインになった場合、残りの機械は、リソースが利用不可能であることに起因して、追加の負荷に圧倒されてしまい得る。従来のデータセンタが機械ステータスと可用性情報との伝達に関連して提供する機械間または機械グループ間の通信は、不十分である。
【発明の概要】
【０００８】
複数の機械と、複数の機械の各々がサブスクライブするパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルとを含むスーパークラスタの実施形態が提供される。複数の機械の各々は、可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネルにパブリッシュし、Ｐｕｂ−Ｓｕｂチャネルを介して、複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信し、かつ、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の１つへ転送するように構成される。
【０００９】
可用性ステータスは、コンテンツデータを格納するために複数の機械の各々が利用可能であるかどうかを示す。リソース割り当て情報は、複数の機械の各々により格納されているコンテンツデータを特定する。Ｐｕｂ−Ｓｕｂチャネルは、好ましくは、マルチキャストアドレスを含む。
【００１０】
一態様によれば、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の１つへ転送することは、複数の機械のうちの第１の機械が、コンテンツデータの要求をクライアントから受信することと、第１の機械が、第１の機械はコンテンツデータを格納していない、と判断することと、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータは複数の機械のうちの第２の機械に格納されている、と判断することと、要求を第２の機械へ転送することとを含む。
【００１１】
複数の機械のうちの第１の機械は、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、複数の機械のうちの第２の機械により所有されているコンテンツデータを所有し得る。
【００１２】
第２の機械により現在所有されているコンテンツデータを所有するために、第１の機械は、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、第２の機械により所有されているコンテンツデータを特定し、第２の機械により所有されているコンテンツデータを所有するための可用性をＰｕｂ−Ｓｕｂチャネルにパブリッシュし、Ｐｕｂ−Ｓｕｂチャネルを介して、第２の機械からの許可を第２の機械から受信し、第２の機械により所有されているコンテンツデータを所有し、コンテンツデータの中継された要求を複数の機械のうちの第３の機械から受信し、かつ、中継された要求に応答して、コンテンツデータを提供し得る。
【００１３】
第２の機械により現在所有されているコンテンツデータを所有するために、第１の機械は、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータを現在格納している第２の機械の数は閾値未満である、と判断し、コンテンツデータを所有するための可用性をＰｕｂ−Ｓｕｂチャネルにパブリッシュし、Ｐｕｂ−Ｓｕｂチャネルを介して、コンテンツデータを現在格納している第２の機械から許可を受信し、コンテンツデータを所有し、コンテンツデータの中継された要求を複数の機械のうちの第３の機械から受信し、かつ、中継された要求に応答して、コンテンツデータを提供し得る。
【００１４】
複数の機械のうちの第１の機械は、別のスーパークラスタ内の第２の機械へのブリッジを確立するように構成され得る。別のスーパークラスタは、好ましくは、スーパークラスタに近接しており、地理的に最も近いスーパークラスタであり得る。ブリッジは、別のスーパークラスタの少なくともいくつかの機械の各々の可用性ステータスおよびリソース割り当て情報を第１の機械へ中継するように構成される。
【００１５】
第１の機械は、Ｐｕｂ−Ｓｕｂチャネル上の複数の機械の可用性ステータスに基づいて、複数の機械のうちの利用不可能な機械の数は閾値を超えている、と判断し得る。ブリッジは、利用不可能な機械の数は閾値を超えているという判断に応答して確立され得る。ブリッジは、伝送制御プロトコル（ＴＣＰ）接続を含み得る。
【００１６】
第１の機械は、スーパークラスタに対する地理的な近接度に基づいて、他のスーパークラスタを特定し得る。第１の機械は、ドメインネームシステム（ＤＮＳ）要求を行うことにより、他のスーパークラスタが当該スーパークラスタに隣接していることを特定し得る。第１の機械は、Ｐｕｂ−Ｓｕｂチャネル上の他のスーパークラスタの少なくともいくつかの機械の可用性ステータスおよびリソース割り当て情報をパブリッシュし得る。
【００１７】
スーパークラスタの第３の機械は、コンテンツデータの要求をクライアントから受信し、Ｐｕｂ−Ｓｕｂチャネル上の別のスーパークラスタの少なくともいくつかの機械のリソース割り当て情報に基づいて、コンテンツデータは別のスーパークラスタの第４の機械により格納されている、と判断し、かつ、要求を第４の機械へ転送し得る。
【００１８】
一態様によれば、スーパークラスタの複数の機械にわたって負荷を分散するための方法は、スーパークラスタの複数の機械の各々が可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネルにパブリッシュする段階であって、複数の機械の各々は、Ｐｕｂ−Ｓｕｂチャネルをサブスクライブする、パブリッシュする段階と、Ｐｕｂ−Ｓｕｂチャネルを介して、複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信する段階と、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の１つへ転送する段階とを備える。
【００１９】
別の態様によれば、非一時的コンピュータ可読媒体は、実行された場合、スーパークラスタの複数の機械の各々のプロセッサに、可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネルにパブリッシュする手順であって、複数の機械の各々は、Ｐｕｂ−Ｓｕｂチャネルをサブスクライブする、パブリッシュする手順と、Ｐｕｂ−Ｓｕｂチャネルを介して、複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信する手順と、Ｐｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を複数の機械のうちの別の１つへ転送する手順とを実行させるようなコンピュータ可読命令を備える。
【００２０】
別の態様によれば、スーパークラスタにわたって負荷を分散するための方法は、第１のスーパークラスタの第１の機械が、第１のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する段階と、第１の機械が第２のスーパークラスタ内の第２の機械とのブリッジを確立する段階であって、第２のスーパークラスタは、第１のスーパークラスタに隣接する、確立する段階と、第１の機械が、ブリッジを介して、第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する段階と、第１の機械が、第１のスーパークラスタのＰｕｂ−Ｓｕｂチャネル上で、第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階とを備える。
【００２１】
可用性ステータスは、コンテンツデータを格納するために第２のスーパークラスタの複数の機械の各々が利用可能であるかどうかを示し得る。リソース割り当て情報は、第２のスーパークラスタの複数の機械の各々が担うコンテンツデータを特定し得る。
【００２２】
方法は、第１のスーパークラスタのＰｕｂ−Ｓｕｂチャネル上の第１のスーパークラスタの複数の機械が第１のスーパークラスタの機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階をさらに許可する。第１のスーパークラスタ内の利用不可能な機械の数は、第１のスーパークラスタのＰｕｂ−Ｓｕｂチャネル上で提供される可用性ステータスに基づいて決定され得る。第１のスーパークラスタのＰｕｂ−Ｓｕｂチャネルは、マルチキャストアドレスを含み得る。
【００２３】
方法は、第１のスーパークラスタの第３の機械がコンテンツデータの要求をクライアントから受信する段階と、第３の機械が、Ｐｕｂ−Ｓｕｂチャネル上の第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータは第２のスーパークラスタの第４の機械により格納されている、と判断する段階と、要求を第２のスーパークラスタ内の第４の機械へ転送する段階とをさらに備え得る。このブリッジは、ＴＣＰ接続を含み得る。方法は、第１の機械が、第１のスーパークラスタに対する地理的な近接度に基づいて、第２のスーパークラスタを特定する段階を備えることをさらに許可する。第１の機械は、ＤＮＳ要求を行うことにより、第２のスーパークラスタが第１のスーパークラスタに隣接していることを特定し得る。
【００２４】
別の態様によれば、非一時的コンピュータ可読媒体は、実行された場合、第１のスーパークラスタの第１の機械のプロセッサに、第１のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する手順と、第２のスーパークラスタ内の第２の機械とのブリッジを確立する段階であって、第２のスーパークラスタは、第１のスーパークラスタに隣接する、確立する手順と、ブリッジを介して、第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する手順と、第１のスーパークラスタのＰｕｂ−Ｓｕｂチャネル上で、第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする手順とを実行させるようなコンピュータ可読命令を備える。
【００２５】
別の態様によれば、システムは、複数の第１の機械を有する第１のスーパークラスタと、複数の第１の機械の各々がサブスクライブするＰｕｂ−Ｓｕｂチャネルと、複数の第２の機械を有する第２のスーパークラスタと、第１のスーパークラスタと第２のスーパークラスタとの間のブリッジとを備える。複数の第１の機械のうちの１つは、ブリッジを介して、複数の第２の機械の各々の可用性ステータスおよびリソース割り当て情報を複数の第２の機械のうちの１つから受信し、かつ、第１のスーパークラスタのＰｕｂ−Ｓｕｂチャネル上で、複数の第２の機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュするように構成される。
【００２６】
これらの特徴および他の特徴ならびにそれらのオペレーションの編成および方式は、添付図面と共に解釈された場合、以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００２７】
【図１】本開示による、スーパークラスタ内および複数のスーパークラスタ間での通信を提供するためのシステムの例を示す図である。
【００２８】
【図２】スーパークラスタの機械の例を示すブロック図である。
【００２９】
【図３】スーパークラスタ内での通信を提供するための例示的な方法を示すフロー図である。
【００３０】
【図４】スーパークラスタ内での通信を提供するための例示的な方法を示す別のフロー図である。
【００３１】
【図５】スーパークラスタ内での通信を提供するための例示的な方法を示すさらに別のフロー図である。
【００３２】
【図６】複数のスーパークラスタ間での通信を提供するための例示的な方法を示すフロー図である。
【発明を実施するための形態】
【００３３】
本明細書において説明する構成は、所与のスーパークラスタの機械にわたる、または２つまたはそれよりも多くのスーパークラスタの機械にわたるコンテンツ（例えば、コンテンツデータの総ライブラリ）の共有またはそうでなければ分散に関連してハイブアウェアネス（ｈｉｖｅ−ａｗａｒｅｎｅｓｓ）を提供するためのシステム、装置、方法および非一時的コンピュータ可読媒体に関する。各機械は、コンテンツの一部分（例えば、総ライブラリのスライスまたはスロット）を格納し得る。各機械は、同じスーパークラスタ内の他の機械および／または別のスーパークラスタ内の他の機械と通信して、機械により格納された一部分を特定し得る。
【００３４】
データセンタは、２つまたはそれよりも多くのスーパークラスタを含み得る。本明細書において説明する構成により、スーパークラスタ内の機械は、リソースの割り当ておよび提供に関し、説明する方式で互いに通信できるようになる。さらなる構成により、２つのスーパークラスタの機械は、リソースの割り当ておよび提供に関し、互いに通信できるようになる。そのため、所与のスーパークラスタ内のかなりの数の機械がオフラインになったことに応答して１つから別のものへロールオーバーする当該スーパークラスタの機械ではなく、代わりに、当該スーパークラスタの機械により処理されるいくつかのスライスが、少なくとも１つの他のスーパークラスタ内の機械により提供されるサービスを受け得る。この少なくとも１つの他のスーパークラスタは、隣接するスーパークラスタであり得る。いくつかの例において、所与のデータセンタが、単一のスーパークラスタを含み得る。その場合、最も近いスーパークラスタが、別のデータセンタにおいてホスティングされ得る。
【００３５】
したがって、本明細書において説明する構成は、（例えば、ＣＤＮの文脈において）コンテンツをクライアントに提供し（第１のスーパークラスタ内の機械（ノード）間でリソース割り当てデータを伝達することを含む）、１または複数の適切な近接するスーパークラスタ（本明細書において、第２のスーパークラスタと称される）を決定し、かつ、第１のスーパークラスタ内の失敗または劣化したノードの数は閾値を超えているという判断に応答して第１のスーパークラスタおよび第２のスーパークラスタを統合するデータセンタに関連する様々な技術的問題に対処する。
【００３６】
従来、総ライブラリの各スライスにＤＮＳ名が提供されている。各機械は、ＤＮＳ名に対応するスライスの格納を担う。ＤＮＳ解決は、要求されたスライスを格納する特定の機械へとクライアントを誘導できる。多数のスライスを有し得る大きい総ライブラリの場合、そのような従来の実装が管理不能になってしまう。本明細書において説明する構成は、総ライブラリ内の各スロットに割り当てられるＤＮＳ名を必要としない。代わりに、スーパークラスタ内の機械は、可用性ステータスおよびリソース割り当てに関して互いに通信して、要求されたスライスにどの機械がサービスを提供できるかを判断し得る。同じスーパークラスタ内の機械が、要求されたスライスを提供できない場合、当該要求は、スーパークラスタ間で共有される可用性ステータスまたはリソース割り当て情報に基づいて、別のスーパークラスタ内の機械へ転送され得る。
【００３７】
図１は、本開示のいくつかの構成によるスーパークラスタ内および複数のスーパークラスタ間での通信を提供するための例示的なシステム１００の図である。図１を参照すると、ＣＤＮが、システム１００を用いて実装され得る。ＣＤＮは、（各々がＣＤＮノードである）サーバまたは機械の地理的に分散されたネットワークであり、オリジンサーバ（不図示）がオリジンサーバのコンテンツデータを、当該コンテンツデータを消費するクライアント（例えば、クライアント１０５）へ配信するのを容易にするためのものである。オリジンサーバから遠く離れているクライアントへオリジンサーバからコンテンツデータを配信するために、クライアントに地理的に近接するＣＤＮノードが、オリジンサーバに代わって、コンテンツデータをクライアントに提供できる。特に、当該ＣＤＮノードは、オリジンサーバのコンテンツデータ（またはその少なくとも一部分）を複製およびキャッシュし、複製およびキャッシュしたコンテンツデータをクライアントへ提供できる。ＣＤＮの顧客は、オリジンサーバに関連し得る。
【００３８】
システム１００は少なくとも、第１のスーパークラスタ１１０および第２のスーパークラスタ１４０を含む。各スーパークラスタは、複数の機械を含み得る。例えば、第１のスーパークラスタ１１０は、機械１１４ａ−１１４ｅと機械１１６−１２６とを含む。第２のスーパークラスタ１４０は、機械１４２−１５０を含む。同じスーパークラスタの機械は、同じ地理的位置にあり、および／または同じ物理位置に配置される。例えば、第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６とは、第１の位置にあるが、第２のスーパークラスタ１４０の機械１４２−１５０は、第１の位置とは異なる第２の位置にある。他の例において、第１の位置および第２の位置は、同じ位置であり得る（例えば、スーパークラスタ１１０および１４０は、ない交ぜになったラックがあるかまたはない同じデータセンタに配置される）。第１のスーパークラスタ１１０および第２のスーパークラスタ１４０は、ＣＤＮの文脈において、互いに近接または隣接する。したがって、第１のスーパークラスタ１１０の機械（例えば、機械１２０）と第２のスーパークラスタ１４０の機械（例えば、機械１４２）との間の通信は、同じＣＤＮの第１のスーパークラスタ１１０の機械と別のスーパークラスタの機械との間の通信よりも速い。第１のスーパークラスタ１１０および第２のスーパークラスタ１４０は、同じデータセンタに属する。代替的に、第１のスーパークラスタ１１０および第２のスーパークラスタ１４０は、異なるデータセンタに属する。
【００３９】
さらに、各スーパークラスタ内の機械は、機械のラックであり得る。例えば、第１のスーパークラスタ１１０は、機械１１４ａ−１１４ｅのラック１１２を含む。機械１１４ａ−１１４ｅは、バーチャルＩＰアドレスを介して共に境界が定められる。機械１１４ａ−１１４ｅは、同じコンテンツデータを格納し得る。代替的に、機械１１４ａ−１１４ｅのうちの少なくとも１つは、機械１１４ａ−１１４ｅのうちの他のものにより格納されるコンテンツデータとは異なるコンテンツデータを格納する。ラック１１２は、機械１１４ａ−１１４ｅのスタック内の負荷均衡機能を提供し得る。例えば、クライアントの要求に応答して、ラック１１２内のスイッチが、機械１１４ａ−１１４ｅのうちの１つを選択することで、クライアントの要求に対してサービスを提供できる。図１における第１のスーパークラスタ１１０について１つのラック１１２のみが示されているが、第１のスーパークラスタ１１０および第２のスーパークラスタ１４０は、任意の数の機械ラックを有し得る。第１のスーパークラスタ１１０および／または第２のスーパークラスタ１４０内のラック構成の各々は、ラック１１２と同様の方式で構造化され得る。機械１１６−１２６と機械１４２−１５０との各々は、好ましくは、物理ＩＰアドレスと個別にアドレス指定される。
【００４０】
各スーパークラスタは、それらと関連する機械の結び付けにより定義される。一例において、ホスト名と機械との間のマッピングが、スーパークラスタの定義またはそうでなければ形成のために用いられ得る。ＣＤＮの文脈において、ホスト名および機械は、ＣＤＮの少なくとも１つの顧客の同じセットにサービスを提供するように構成される。各顧客は、オリジンサーバに関連し得る。機械１１４ａ−１１４ｅと機械１１６−１２６とは、（ホスト名と機械１１４ａ−１１４ｅおよび機械１１６−１２６との間の適切なマッピングを通じて）共に結び付けられ、第１のスーパークラスタ１１０を形成する。同様に、機械１４２−１５０は、（ホスト名と機械１４２−１５０との間の適切なマッピングを通じて）共に結び付けられ、第２のスーパークラスタ１４０を形成する。加えて、スーパークラスタが異なる位置に配置され得ると仮定すると、スーパークラスタは、ＣＤＮが必要とする任意の地理的制限（例えば、特定のコンテンツが特定の地理的位置においてサービスを受けることができるかまたはできない）および／または地理ベースセキュリティプロトコルを実装するために用いられ得る。
【００４１】
クライアント（例えば、クライアント１０５）は、ＣＤＮのノードをサポートする機械のうちの１つに接続できるエンドユーザである。ＣＤＮの各ノードは、機械１１４ａ−１１４ｅと、機械１１６−１２６と、機械１４２−１５０とのうちの１つに対応する。ＣＤＮは、不図示の追加のスーパークラスタおよび機械を用いて実装され得る。第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６とは、クライアント１０５を含む近くのクライアントにサービスを提供する、ＣＤＮのエッジノードである。同様に、機械１４２−１５０も、第２のスーパークラスタ１４０に地理的に近接するクライアントにサービスを提供する、ＣＤＮのエッジノードであり得る。クライアント１０５は、限定されるものではないがＤＮＳルックアップまたはドメイン名解決などのＤＮＳオペレーションを用いてラック１１２または機械１１６−１２６のうちの１つに接続するよう誘導され得る。示されるように、クライアント１０５による要求に基づくＤＮＳルックアップの結果により、クライアント１０５は、要求されたコンテンツデータを機械１２２から受信するよう誘導される。クライアント１０５がＣＤＮの別のスーパークラスタの別の位置よりも第１のスーパークラスタ１１０の位置により近いと仮定すると、クライアント１０５による要求に基づくＤＮＳルックアップは、ＣＤＮの第２のスーパークラスタ１４０または別のスーパークラスタ内の機械へ解決しない。当該要求は、少なくともＵＲＬを含む。
【００４２】
スーパークラスタ内の各機械は、関連するＣＤＮの少なくとも１つの顧客のセット用のコンテンツの総ライブラリの一部分を格納する。例えば、第１のスーパークラスタ１１０内の機械１１４ａ−１１４ｅと機械１１６−１２６との各々は、総ライブラリの少なくとも１つのスライスを担うキャッシュである。第２のスーパークラスタ１４０内の機械１４２−１５０の各々は、総ライブラリの少なくとも１つのスライスを担うキャッシュである。総ライブラリは、１または複数のスーパークラスタに結び付けられるプロパティのセットにより定義される。ライブラリは概して、１または複数のスーパークラスタにより格納される、ライブラリのワーキングセットを指す。そのため、スーパークラスタ１１０または１４０の各々は、総ライブラリを格納し、総ライブラリは、（例えば、部分で、またはスライスで）スーパークラスタ１１０または１４０の各々における機械に割り当てられる。言い換えると、総ライブラリは、スーパークラスタ１１０および１４０の両方により格納される。総ライブラリの同じスライスは、冗長性のために、同じスーパークラスタの複数の機械により格納され得る。他の構成では、スーパークラスタの１または複数のノードまたは機械は、格納機能を有さないことがあるが、依然としてスーパークラスタの一部である。
【００４３】
ライブラリの「ワーキングセット」は、アクティブに用いられているのでキャッシュに充填済みであろうサブスクライバの総ライブラリの一部分を指す。第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６との各々は、２つの格納部を含み得る。第１の格納部は、総ライブラリの割り当てられた部分またはスライス（ワーキングセットのスライスと称される）を格納する。第２の格納部は、総ライブラリの一般的なコンテンツデータを格納する。第１のスーパークラスタ１１０に接続するクライアントにより総ライブラリの所与のスライスが頻繁に要求された場合、頻繁に要求されたスライスは、一般的なコンテンツデータになり、第１のスーパークラスタ１１０内の他の機械の第２の格納部に格納される。第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６との各々は、要求を受信した機械が要求されたスライスを格納しているかどうかにかかわらず、総ライブラリの任意のスライスの要求（例えば、クライアント１０５からの要求）を受信できる。
【００４４】
一例において、第１のスーパークラスタ１１０内の機械１２２がオブジェクトの要求をクライアント１０５から受信したことに応答して、機械１２２は、当該スライスを格納している場合、オブジェクトをクライアントに提供する。本明細書において称される場合、「要求されたスライス」は、クライアント１０５により要求された、オブジェクトに関連するスライスを指す。要求されたスライスは、第１の格納部（ワーキングセット）または第２の格納部（一般的なコンテンツ）のいずれかに格納され得る。一方、要求されたオブジェクトに関連する要求されたスライスを機械１２２が格納していない場合、機械１２２は、要求されたスライスを格納している、第１のスーパークラスタ１１０内の別の１つの機械から要求されたスライスを要求する。言い換えると、機械１２２は、要求を第１のスーパークラスタ１１０内の別の機械へ転送する。
【００４５】
要求を第１のスーパークラスタ１１０内の別の機械へ転送すべく、機械１１４ａ−１１４ｅと機械１１６−１２６とが可用性ステータスおよびリソース割り当て情報を互いに通信することを可能にするために、第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６とのための通信チャネルが提供され得る。可用性ステータスは、コンテンツデータ（例えば、少なくとも１つのスライス）を格納および／または提供するために関連する機械が利用可能であるかどうかを示す。リソース割り当て情報により、関連する機械により格納されているコンテンツデータ（例えば、少なくとも１つのスライス）が特定される。
【００４６】
説明したように、クライアント（例えば、クライアント１０５）からの要求は、ＤＮＳオペレーションに基づいて、第１のスーパークラスタ１１０内の機械１１４ａ−１１４ｅと機械１１６−１２６とのいずれかに解決され得る。第１のスーパークラスタ１１０が多数の機械を有する場合、要求されたスライスが、要求をクライアントから最初に受信した機械（例えば、機械１２２）により格納されていない可能性が高い。
【００４７】
従来のスーパークラスタに伴う問題は、スーパークラスタの機械が様々な理由でオンラインになってはオフラインになることに関連している。例えば、スーパークラスタ内の機械は、限定されるものではないがメンテナンスなどの予め定められた／スケジューリングされた非可用性が原因でオフラインになり得る。スーパークラスタ内の機械は、限定されるものではないが非応答性、処理遅延および電源遮断などの予期しない／突然の非可用性が原因でオフラインになり得る。
【００４８】
要求されたスライスを格納していることが認識されている機械がオフラインである場合、要求を最初に受信する機械１２２は、第１のスーパークラスタ１１０内でチェックし、要求されたスライスを第１のスーパークラスタ１１０内の別の機械が提供できるかどうかを確かめる。例えば、機械１２２が、要求されたスライスを格納していることが認識されている機械１１６はオフラインである、と判断した場合、機械１２２は、第１のスーパークラスタ１１０内でチェックして、機械１１８は要求されたスライスも格納している、と判断する。
【００４９】
それに関連して、機械１１４ａ−１１４ｅと機械１１６−１２６とは、Ｐｕｂ−Ｓｕｂチャネル１３０をサブスクライブする。一例において、Ｐｕｂ−Ｓｕｂチャネル１３０は、機械１１４ａ−１１４ｅと機械１１６−１２６とがサブスクライブできるデータストリームである。機械１１４ａ−１１４ｅと機械１１６−１２６との各々は、その独自の可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１３０上でパブリッシュできる。また、機械１１４ａ−１１４ｅと機械１１６−１２６との各々は、第１のスーパークラスタ１１０の他の機械の可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１３０から取得できる。そのため、機械１１４ａ−１１４ｅと機械１１６−１２６とのいずれも、要求されたスライスを提供するために利用可能である、第１のスーパークラスタ１１０内の機械をいつでも特定できる。Ｐｕｂ−Ｓｕｂチャネル１３０の例がマルチキャストアドレスである。第２のスーパークラスタ１４０に関連するＰｕｂ−Ｓｕｂチャネル１６０は、Ｐｕｂ−Ｓｕｂチャネル１３０と同じ方式で構成され得るデータストリームである。例えば、機械１４２−１５０の各々は、その独自の可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１６０上でパブリッシュできる。また、機械１４２−１５０の各々は、第２のスーパークラスタ１４０の他の機械の可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１６０から取得できる。そのため、Ｐｕｂ−Ｓｕｂチャネル１３０およびＰｕｂ−Ｓｕｂチャネル１６０はそれぞれ、第１のスーパークラスタ１１０内および第２のスーパークラスタ１４０内のハイブアウェアネスを提供する。
【００５０】
いくつかの例において、スーパークラスタの単一の機械が、所与のスライスを担うキャッシュである。当該機械がオフラインである場合、スーパークラスタの第２の機械は、構成情報に基づいて決定される。同じ第２の機械が、当該スライスのスーパークラスタの全てのメンバにより選択される。いくつかの例において、スーパークラスタが、例えば、機械１１６がオフラインであることを検出したとき、第１のスーパークラスタ１１０の別の機械（例えば、機械１１８）は、当該スライスを担う（例えば、当該スライスの所有を引き継ぐ）キャッシュになる。機械１１８は、機械１１８が当該スライスを担うキャッシュであることをＰｕｂ−Ｓｕｂチャネル１３０上でアナウンスし得る。その時まで、いくつかの例において、第１のスーパークラスタ１１０の各機械は、第１のスーパークラスタ１１０内でのスライスの再割り当てが完了するまで、または、要求されたオブジェクトのスライスを特定するために用いられるハッシュアルゴリズムが第１のスーパークラスタ１１０内の一連の機械を戻すまで、ＣＤＮ階層を上げてＣＤＮの次のティアへ移行することで、当該スライスを取得し得る。例えば、要求されたオブジェクトに対応するスライスを特定する際、ハッシュアルゴリズムは、スライス番号（１、２、３...ｘ）のリストを戻すことができる。リストの最初の要素（例えば、１）は、要求されたオブジェクトの好ましいスライスである。すなわち、スライス１は、機械１１６により現在「所有されて」いる。機械１１６はオフラインであるという判断に応答して、要求は、スライス２を「所有して」いる機械１１８へ送信される。
【００５１】
第１のスーパークラスタ１１０内でオフラインの機械の数が閾値を超えている場合、第１のスーパークラスタ１１０内の機械の残りには、過負荷がかかり得る。したがって、第１のスーパークラスタ１１０内の機械は、近くのまたは近接するスーパークラスタ（例えば、第２のスーパークラスタ１４０）内の機械と通信でき、その近くのまたは近接するスーパークラスタ内の機械へ要求を転送できる。スーパークラスタ１１０とスーパークラスタ１４０との間の通信は、ブリッジ１７０により実現され得る。ブリッジ１７０の例がＴＣＰ接続である。
【００５２】
ブリッジ１７０は、第１のスーパークラスタ１１０の機械（例えば、機械１２０）と第２のスーパークラスタ１４０の機械（例えば、機械１４２）と間に確立され得る。機械１２０は、地理的な近接度に基づいて、第２のスーパークラスタ１４０または機械１４２を特定できる。例えば、機械１２０は、近接度要求（例えば、ＤＮＳ要求）を行うことにより、第２のスーパークラスタ１４０および／または機械１４２が第１のスーパークラスタ１１０に隣接していることを特定できる。いくつかの構成において、ＣＤＮのクライアントがランデブーシステムを用いて、第２のスーパークラスタ１４０および／または機械１４２は第１のスーパークラスタ１１０に隣接している、と判断できるように、近接要求は、ＤＮＳ要求のランデブーシステムと同じまたは同様のランデブーシステムを用い得る。第１のスーパークラスタ１１０および第２のスーパークラスタ１４０の両方の機械の可用性ステータスおよびリソース割り当て情報は、ブリッジ１７０を介して共有され得る。例えば、機械１２０は、第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６との可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１３０から抽出し、ブリッジ１７０を介して、可用性ステータスおよびリソース割り当て情報を機械１４２へ送信できる。機械１４２は、機械１１４ａ−１１４ｅと機械１１６−１２６との可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１６０にパブリッシュすることにより、第２のスーパークラスタ１４０の機械１４４−１５０が当該データを利用可能になるようにできる。同様に、機械１４２は、第２のスーパークラスタ１４０の機械１４２−１５０の可用性ステータスおよびリソース割り当て情報を抽出し、ブリッジ１７０を介して、可用性ステータスおよびリソース割り当て情報を機械１２０へ送信できる。機械１２０は、機械１４２−１５０の可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１３０にパブリッシュすることにより、第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６とが当該データを利用可能になるようにできる。いくつかの例において、本明細書において説明する近接度の選択は、最も近いスーパークラスタ（例えば、第２のスーパークラスタ１４０）を判断する際に、第１のスーパークラスタ１１０は損なわれ、第２のスーパークラスタ１４０は損なわれない状況を考慮に入れている。その意味では、ブリッジ１７０は、負荷およびスライス割り当て情報を１つの方向に（例えば、機械１４２から機械１２０へ）伝達するだけでよいことがある。そのため、第１のスーパークラスタ１１０内の機械１１４ａ−１１４ｅと機械１１６−１２６とは、コンテンツを機械１１４ａ−１１４ｅと機械１１６−１２６とに提供するために第２のスーパークラスタ１４０のどの機械が利用可能であるかを知る必要があるが、第２のスーパークラスタ１４０内の機械１４２−１５０は、第２のスーパークラスタ１４０内の機械１４２−１５０からスライスを取得し続ける。
【００５３】
図２は、いくつかの構成による機械２００を示すブロック図である。図１および図２を参照すると、機械２００は、機械１１４ａ−１１４ｅと、機械１１６−１２６と、機械１４２−１５０とのいずれかの例である。示されるように、機械２００は、処理回路２１０、Ｐｕｂ−Ｓｕｂ回路２２０、ブリッジ回路２３０、ステータスデータベース２４０およびコンテンツデータベース２５０のうちの１つまたは複数を含む。
【００５４】
処理回路２１０は、本明細書において説明する様々な機能を機械２００に対して実行するように構成される。処理回路２１０は、プロセッサ２１２およびメモリ２１４を含む。プロセッサ２１２は、汎用プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、１または複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、処理コンポーネントのグループ、または他の適切な電子処理コンポーネントを用いて実装され得る。メモリ２１４は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、不揮発性ＲＡＭ（ＮＶＲＡＭ）、フラッシュメモリ、ハードディスクストレージまたは別の適切なデータストレージユニットを用いて実装され得る。メモリ２１４は、プロセッサ２１２により実行される様々な処理を容易にするためのデータおよび／またはコンピュータコードを格納する。さらに、メモリ２１４は、有形の非一時的揮発性メモリまたは不揮発性メモリであるか、または有形の非一時的揮発性メモリまたは不揮発性メモリを含む。したがって、メモリ２１４は、データベースコンポーネント、オブジェクトコードコンポーネント、スクリプトコンポーネント、または本明細書において説明する様々な機能をサポートするための任意の他の種類の情報構造を含む。
【００５５】
Ｐｕｂ−Ｓｕｂ回路２２０は、Ｐｕｂ−Ｓｕｂチャネル（例えば、Ｐｕｂ−Ｓｕｂチャネル１３０または１６０）を介して通信し、当該チャネルを確立し、および／または当該チャネルに接続するように構成された適切なハードウェアおよびソフトウェアを含む。例えば、Ｐｕｂ−Ｓｕｂ回路２２０は、（セルラー規格用に構成された）セルラートランシーバ、（８０２．１１Ｘ、ＺｉｇＢｅｅ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはＷｉ−Ｆｉ（登録商標）等用の）ローカル無線ネットワークトランシーバ、有線ネットワーク（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＳＯＮＥＴ、ＤＷＤＭ、ＯＴＮなどの光ネットワーク）インタフェース、それらの組み合わせ（例えば、セルラートランシーバおよびＢｌｕｅｔｏｏｔｈトランシーバの両方）および／またはこれらと同様のものを含む適切なネットワークインタフェースであり得る。Ｐｕｂ−Ｓｕｂ回路２２０は、無線ネットワークマルチキャスト、データリンクレイヤマルチキャスト（例えば、Ｅｔｈｅｒｎｅｔマルチキャスト）、インターネットレイヤマルチキャスト（例えば、インターネットプロトコル（ＩＰ）マルチキャスト、アプリケーションレイヤマルチキャストおよび別の適切な種類のマルチキャストのうちの１つまたは複数を有効にし得る。それに関連して、Ｐｕｂ−Ｓｕｂチャネル１３０または１６０は、スーパークラスタの機械が接続する１または複数の適切なネットワーク（例えば、セルラーネットワーク、ローカル無線ネットワーク、有線ネットワーク、それらの組み合わせおよび／またはこれらと同様のもの）をさらに含み得る。Ｐｕｂ−Ｓｕｂ回路２２０は、処理回路２１０および／または別の適切な処理回路により提供される処理機能を含み得る。
【００５６】
Ｐｕｂ−Ｓｕｂ回路２２０は、機械２００の可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１３０または１６０にパブリッシュできる。機械２００がオンラインになり、オフラインになりそうであることに応答して、Ｐｕｂ−Ｓｕｂ回路２２０は、オンライン通知およびオフライン通知のうちのそれぞれをＰｕｂ−Ｓｕｂチャネル１３０または１６０にパブリッシュする。例えば、機械２００が良好にかつ順序正しくシャットダウンされている場合、機械２００は、オフライン通知を送信でき、機械２００が現在担っているスライスの順序正しい遷移が同じスーパークラスタの他の機械に対して行われ得るように「排出」状態に移る。しかしながら、機械２００は、良好にかつ順序正しくシャットダウンされるのではなく急に終了されることが頻繁にある。機械２００が急に終了される状況において、機械２００からのメッセージが、予め定められた期間（例えば、１０秒、３０秒、１分、５分等）にわたってないと、同じスーパークラスタの別の機械、または管理デバイスは、スーパークラスタの他の機械が通知されるようにスーパークラスタのＰｕｂ−Ｓｕｂチャネルを介してオフライン通知を生成および送信するようトリガされ得る。さらに、Ｐｕｂ−Ｓｕｂ回路２２０は、機械２００のうちの１つまたは複数がオンラインになり、少なくとも１つのスライスが機械２００に割り当てられたことに応答して、リソース割り当て情報、割り当てられたスライスに対するあらゆる修正（例えば、スライスの除去または変更）等をパブリッシュする。送信されたリソース割り当て情報は、機械２００によりコンテンツデータベース２５０に格納されている現在のスライスに対応する。Ｐｕｂ−Ｓｕｂ回路２２０は、オンライン通知、オフライン通知およびリソース割り当て情報を、Ｐｕｂ−Ｓｕｂチャネル１３０または１６０に対応するマルチキャストアドレスへ送信し得る。次に、送信された情報のコピーが、限定されるものではないが、例えばルータ、スイッチ、セルラーネットワーク基地局等の関連するネットワーク要素により自動的に、生成され、マルチキャストアドレスによりカバーされる受信者（例えば、同じスーパークラスタ内の機械）へ送信され得る。それに関連して、Ｐｕｂ−Ｓｕｂチャネル１３０または１６０は、関連するネットワーク要素をさらに含む。
【００５７】
加えて、Ｐｕｂ−Ｓｕｂ回路２２０は、機械２００と同じスーパークラスタ内の他の機械のオンライン通知、オフライン通知およびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１３０または１６０から受信できる。Ｐｕｂ−Ｓｕｂチャネル１３０または１６０に関連するマルチキャストアドレスが機械２００の適切なアドレスも特定することにより、Ｐｕｂ−Ｓｕｂ回路２２０は、同じスーパークラスタ内の他の機械のオンライン通知、オフライン通知およびリソース割り当て情報を受信できる。
【００５８】
ブリッジ回路２３０は、ブリッジ（例えば、ブリッジ１７０）を介して通信し、当該ブリッジを確立し、および／または当該ブリッジに接続するように構成された適切なハードウェアおよびソフトウェアを含む。例えば、ブリッジ回路２３０は、（セルラー規格用に構成された）セルラートランシーバ、（８０２．１１Ｘ、ＺｉｇＢｅｅ（登録商標）、ＢｌｕｅｔｏｏｔｈまたはＷｉ−Ｆｉ（登録商標）等用の）ローカル無線ネットワークトランシーバ、有線ネットワーク（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、ＳＯＮＥＴ、ＤＷＤＭ、ＯＴＮなどの光ネットワーク）インタフェース、それらの組み合わせ（例えば、セルラートランシーバおよびＢｌｕｅｔｏｏｔｈトランシーバの両方）および／またはこれらと同様のものを含む適切なネットワークインタフェースであり得る。ブリッジ回路２３０およびＰｕｂ−Ｓｕｂ回路２２０は、セルラートランシーバ、ローカル無線ネットワークトランシーバおよび／または有線ネットワークインタフェースのうちの１つまたは複数を共有し得る。ブリッジ回路２３０は、例えば、別のスーパークラスタの別の機械（限定されるものではないが機械２００など）とのＴＣＰ接続を可能にし得る。それに関連して、ブリッジ回路２３０は、ＩＰ規格をサポートする。ブリッジ回路２３０は、処理回路２１０および／または別の適切な処理回路により提供される処理機能を含み得る。
【００５９】
ブリッジ回路２３０は、機械２００と同じスーパークラスタ内の機械の可用性ステータスおよびリソース割り当て情報をステータスデータベース２４０から受信し、ブリッジ１７０を介して（例えば、ＴＣＰ接続を介して）、そのような可用性ステータスおよびリソース割り当て情報を別のスーパークラスタの機械へ送信できる。
【００６０】
ステータスデータベース２４０は、（スーパークラスタのＰｕｂ−Ｓｕｂチャネルを介して受信される）機械２００と同じスーパークラスタ内の各機械の可用性ステータスおよびリソース割り当て情報ならびに（ブリッジを介して受信される）機械２００のスーパークラスタとは異なる少なくとも別のスーパークラスタの１または複数の機械の可用性ステータスおよびリソース割り当て情報を編成および格納するために実装されたデータ構造を有するメモリデバイスである。Ｐｕｂ−Ｓｕｂ回路２２０およびブリッジ回路２３０が可用性ステータスおよびリソース割り当て情報を受信したことに応答して、可用性ステータスおよびリソース割り当て情報は、ステータスデータベース２４０に格納される。そのため、可用性ステータスおよびリソース割り当て情報のリアルタイムでの更新がステータスデータベース２４０に格納され得ることにより、ハイブアウェアネスが可能になる。
【００６１】
コンテンツデータベース２５０は、機械２００に割り当てられるコンテンツデータの部分またはスライスを編成および格納するために実装されたデータ構造を有するメモリデバイスである。いくつかの例において、コンテンツデータベース２５０は、２つの別個の格納部を含む。第１の格納部は、総ライブラリの割り当てられた部分またはスライス（「ワーキングセット」と称される）を格納する。第２の格納部は、総ライブラリの一般的なコンテンツデータを格納する。総ライブラリの所与のスライスがクライアントにより頻繁に要求された場合、頻繁に要求されたスライスは、一般的なコンテンツデータになり、コンテンツデータベース２５０の第２の格納部に格納される。
【００６２】
図３は、様々な構成による、スーパークラスタ１１０内での通信を提供するための方法３００の例を示すフロー図である。図１から図３を参照すると、方法３００は、Ｐｕｂ−Ｓｕｂチャネル１３０を用いた、スーパークラスタ１１０内でのハイブアウェアネスの提供に関する。さらに、Ｐｕｂ−Ｓｕｂチャネル１３０およびブリッジ１７０により、２つの近接するスーパークラスタ１１０および１４０にわたるハイブアウェアネスが可能になる。当業者であれば、第１のスーパークラスタ１１０および第２のスーパークラスタ１４０の各機械が、方法３００に関連して特定の機械について説明した機能を実行できることを理解し得る。
【００６３】
３１０において、機械（例えば、機械２００に関して説明した方式で実装され得る機械１２２）が、Ｐｕｂ−Ｓｕｂチャネル１３０をサブスクライブする。いくつかの例において、機械１２２のＰｕｂ−Ｓｕｂ回路２２０は、Ｐｕｂ−Ｓｕｂチャネル１３０に対応するマルチキャストアドレスを介してデータの送信および受信を構成することにより、Ｐｕｂ−Ｓｕｂチャネル１３０をサブスクライブする。
【００６４】
３２０において、機械１２２が、機械１２２の可用性ステータスおよびリソース割り当て情報をＰｕｂ−Ｓｕｂチャネル１３０にパブリッシュする。機械１２２のＰｕｂ−Ｓｕｂ回路２２０は、機械１２２の可用性ステータスおよびリソース割り当て情報をマルチキャストアドレスへ送信する。そのような情報は、複製され、第１のスーパークラスタ１１０内の他の機械に対応するアドレスへ配信され得る。第１のスーパークラスタ１１０内の他の機械に対応するアドレスは、マルチキャストアドレスに対応する。同様に、機械１２２は、Ｐｕｂ−Ｓｕｂチャネル１３０を介して、第１のスーパークラスタ１１０内の他の機械の可用性ステータスおよびリソース割り当て情報を受信できる。
【００６５】
３３０において、機械１２２が、Ｐｕｂ−Ｓｕｂチャネル１３０上の可用性ステータスおよびリソース割り当て情報に基づいて、クライアント１０５から受信した、コンテンツデータの要求を第１のスーパークラスタ１１０の別の機械へ転送する。例えば、機械１２２の処理回路２１０は、クライアント１０５により要求されたスライスがコンテンツデータベース２５０に格納されているかどうかをチェックする。当該スライスは機械１２２のコンテンツデータベース２５０に格納されていないという判断に応答して、機械１２２は、Ｐｕｂ−Ｓｕｂチャネル１３０を介して受信した第１のスーパークラスタ１１０内の他の機械の可用性ステータスおよびリソース割り当て情報に基づいて、要求されたスライスは第１のスーパークラスタ１１０の別の機械（例えば、機械１２６）に格納されている、と判断する。例えば、処理回路２１０は、要求されたスライスを基準として用いてステータスデータベース２４０を検索することで、要求されたスライスを格納している機械１２６を特定する。機械１２２の処理回路２１０は、機械１２６を特定すると、当該要求を機械１２６へ転送する。機械１２６は、任意の適切な方式で、要求されたスライス（例えば、当該スライスに関連するオブジェクト）をクライアント１０５に提供する。いくつかの例において、当該要求を転送する段階は、機械１２２が機械１２６のプロキシとしてサービスを提供しているように、機械１２２が当該要求を機械１２６へプロキシする段階を含む（例えば、当該要求は機械１２６へ転送され、応答が機械１２２を通る）。いくつかの例において、当該要求を転送する段階は、接続が機械１２６へ移行されることにより、機械１２６が応答（例えば、オブジェクト）をクライアント１０５に直接提供できる段階を含む。いくつかの例において、当該要求を転送する段階は、機械１２６がＤｉｒｅｃｔ  Ｓｅｒｖｅｒ  Ｒｅｔｕｒｎを用いて応答（例えば、オブジェクト）をクライアント１０５へ配信する段階を含む。いくつかの例において、当該要求を転送する段階は、機械１２２がリダイレクトメッセージをクライアント１０５へ戻すことにより、クライアント１０５が機械１２６にリダイレクトされ得る段階を含む。
【００６６】
図４は、いくつかの構成による、第１のスーパークラスタ１１０内での通信を提供するための方法４００の例を示すフロー図である。図１から図４を参照すると、スーパークラスタの機械は、当該スーパークラスタのＰｕｂ−Ｓｕｂチャネル上の可用性ステータスおよびリソース割り当て情報に基づいて、スーパークラスタの別の機械により格納されているコンテンツデータ（例えば、１または複数のスライス）を格納できる。例えば、第１の機械（例えば、機械１１６）は、方法４００を用いて、同じスーパークラスタ１１０内の少なくとも第２の機械（例えば、機械１１８）をオフロードし得る。
【００６７】
４０５において、機械１１６がオンラインになる。例えば、機械１１６は、スケジューリングされた、または予期しないシャットダウンの後にオンラインになり得る。この時点で、機械１１６のコンテンツデータベース２５０は、いかなるコンテンツデータも格納していない。機械１１６のＰｕｂ−Ｓｕｂ回路２２０は、説明した方式で、Ｐｕｂ−Ｓｕｂチャネル１３０をセットアップする。機械１１６は、第１のスーパークラスタ１１０内の他の機械の可用性ステータスおよびリソース割り当て情報のＰｕｂ−Ｓｕｂチャネル１３０からの受信を開始する。機械１１６は、第１のスーパークラスタ１１０内の他の機械の可用性ステータスおよびリソース割り当て情報の機械１１６のステータスデータベース２４０への格納を開始できる。
【００６８】
４１０において、機械１１６の処理回路２１０が、Ｐｕｂ−Ｓｕｂチャネル１３０上の可用性ステータスおよびリソース割り当て情報に基づいて、第１のスーパークラスタ１１０の第２の機械（例えば、機械１１８）により格納されているコンテンツデータを特定する。特定されたコンテンツデータは、機械１１６へオフロードされ得る。一例において、機械１１６の処理回路２１０が、機械１１８は第１のスーパークラスタ１１０の機械の間で最も多くの数のスライスまたは一般的なスライスを現在格納していると判断したこと、または、機械１１８は予め定められた閾値を超える数のスライスを格納していると判断したことに応答して、機械１１８のコンテンツデータは特定される。さらに別の例において、機械１１６の処理回路２１０が、機械１１８は第１のスーパークラスタ１１０の機械の間で最も長くオンラインになっていると判断したこと、または、機械１１８は予め定められた閾値を超える期間にわたってオンラインになっていると判断したことに応答して、機械１１８のコンテンツデータは特定される。さらに別の例において、機械１１６の処理回路２１０が、機械１１８はホットスポットであると判断したことに応答して、機械１１８のコンテンツデータは特定される。それに関連して、機械１１８は、クライアントからの要求で機械１１８が過負荷になっていることをＰｕｂ−Ｓｕｂチャネル１３０上でパブリッシュし得る。さらに別の例において、機械１１６の処理回路２１０が、機械１１８はオフラインになりそうであると判断したことに応答して、機械１１８のコンテンツデータは特定される。それに関連して、機械１１８は、機械１１８がオフラインにされているか、または速やかにオフラインになることをＰｕｂ−Ｓｕｂチャネル１３０上でパブリッシュし得る。さらに別の例において、機械１１６の処理回路２１０は、第１のスーパークラスタ１１０の利用可能な機械のうちの１つをランダムまたは擬似ランダムで選択する。いくつか場合において、オフロードされるコンテンツデータ（例えば、スライス）は、ランダムまたは擬似ランダムで選択され得る。他の場合において、オフロードされるコンテンツデータは、コンテンツデータベース２５０の第２の格納部に格納されている一般的なコンテンツデータであってもよく、第２の格納部に格納されていないが機械１１８にホットスポットを生じさせているコンテンツデータであってもよい。
【００６９】
４１５において、機械１１６のＰｕｂ−Ｓｕｂ回路２２０が、機械１１８により格納されているコンテンツデータを格納またはオフロードするために機械１１６は利用可能であることをＰｕｂ−Ｓｕｂチャネル１３０上でパブリッシュする。例えば、機械１１６のＰｕｂ−Ｓｕｂ回路２２０は、Ｐｕｂ−Ｓｕｂチャネル１３０に関連するマルチキャストアドレスへ可用性通知を送信し得る。当該通知は、機械１１８により格納されているコンテンツデータを格納するために機械１１６が利用可能であることを示す。
【００７０】
代替的に、ブロック４１０が省略されてよく、機械１１６のＰｕｂ−Ｓｕｂ回路２２０は、第１のスーパークラスタ１１０のあらゆる利用可能な機械のあらゆるコンテンツデータを格納するために機械１１６が利用可能であることをＰｕｂ−Ｓｕｂチャネル１３０上でパブリッシュする。減速問題またはホットスポットを経験している機械は、許可を付与し得る。
【００７１】
４２０において、機械１１６の処理回路２１０が、機械１１６のＰｕｂ−Ｓｕｂ回路２２０は機械１１８から許可を受信したかどうかを判断する。許可は、Ｐｕｂ−Ｓｕｂチャネル１３０上で受信される任意の適切なメッセージであり得る。言い換えると、機械１１８は、Ｐｕｂ−Ｓｕｂチャネル１３０上で許可をパブリッシュすることにより応答する。許可は受信されていない（４２０：いいえ）という判断に応答して、機械１１６の処理回路２１０は、４２５において、第１のスーパークラスタ１１０の別の機械をオフロードに設定し、４１０において、別の機械が特定される。一方、許可は受信されている（４２０：はい）という判断に応答して、機械１１６の処理回路２１０は、４３０において、機械１１８のコンテンツデータを格納する。機械１１８により格納されているコンテンツデータの全てのうちのいくつかは、機械１１６のコンテンツデータベース２５０に格納され得る。
【００７２】
機械１１８は、オフロードされたコンテンツデータの格納を続け得る。コンテンツデータまたはスライスに関連するＵＲＬはここで、機械１１６および１１８の両方に関連している。代替的に、機械１１８は、オフロードされたコンテンツデータをもはや格納しなくてもよく、当該コンテンツデータが機械１１６へオフロードされた後はオフラインであってもよい。そのような場合、当該コンテンツデータは、機械１１６へ移行されたものとみなされる。当該コンテンツデータまたはスライスに関連するＵＲＬは、機械１１６へ迂回される。
【００７３】
４３５において、機械１１６が、機械１１６により格納されている、中継または転送されたコンテンツデータ要求を第３の機械（例えば、機械１２２）から受信し得る。要求されたコンテンツデータは、機械１１６が機械１１８からオフロードしたコンテンツデータである。機械１１６が機械１１８をオフロードしていると仮定すると、機械１２２は、当該要求をクライアント１０５から受信し、当該要求を機械１１６へ中継する。機械１２２は、機械１２２がＰｕｂ−Ｓｕｂチャネル１３０上のデータストリームのモニタリングおよび格納もしているので機械１１６が機械１１８をオフロードしているという認識を有する。Ｐｕｂ−Ｓｕｂチャネル１３０をサブスクライブする第１のスーパークラスタ１１０内の全ての機械が、Ｐｕｂ−Ｓｕｂチャネル１３０上のデータストリームを利用可能である。
【００７４】
４４０において、機械１１６が、中継または転送された要求毎にコンテンツデータを提供する。４４５において、機械１１６の処理回路２１０が、配信閾値は満たされているかどうかを判断する。配信閾値は、機械１１６が格納および配信できるコンテンツデータの限度を指す。配信閾値は、予め定められてもよく、動的に設定されてもよい。配信閾値は、コンテンツデータベース２５０のサイズ、処理回路２１０の処理機能、ネットワークレイテンシ、スーパークラスタ内の利用可能な機械の数等に基づいて、決定または設定され得る。
【００７５】
機械１１６の処理回路２１０が、配信閾値は満たされている（４４５：はい）と判断したことに応答して、機械１１６は、４３５において、コンテンツデータベース２５０に格納されているコンテンツデータの追加の中継された要求を第１のスーパークラスタ１１０の機械から受信し得る（または要求をクライアントから直接受信し得る）。機械１１６は、第１のスーパークラスタ１１０の他の機械からの追加のコンテンツデータをもはやオフロードしなくてもよく、総ライブラリの追加のコンテンツデータを格納してもよい。
【００７６】
一方、機械１１６の処理回路２１０が、配信閾値は満たされていない（４４５：いいえ）と判断したことに応答して、機械１１６は、４１５において、機械１１８（または第１のスーパークラスタ１１０の別の機械）により格納されている追加のコンテンツデータを格納するための可用性をＰｕｂ−Ｓｕｂチャネル１３０にパブリッシュし得る。
【００７７】
さらに、スーパークラスタ内の利用可能な機械は、スーパークラスタ内の利用可能な過負荷になっている機械をオフロードできる。図５は、いくつかの構成による、第１のスーパークラスタ１１０内での通信を提供するための方法５００の例を示すフロー図である。図１から図５を参照すると、５０５において、第１の機械（例えば、機械１１６）の処理回路２１０は、Ｐｕｂ−Ｓｕｂチャネル１３０上の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータ（例えば、１または複数のスライス）を現在格納している第１のスーパークラスタ１１０内の機械の数は閾値未満である、と判断する。第１のスーパークラスタ１１０は、冗長性のために、同じスライスを格納する２つまたはそれよりも多くの機械を有し得る。あるスライスを格納する機械が無いと、当該スライスを格納する機械にホットスポットが生じ得る。これに応答して、機械１１６は、方法５００の残りを用いて、当該スライスを格納している残りの機械をオフロードする。ブロック５１０−５４５の各々は、ブロック４１０−４４５のうちの１つに対応する。いくつかの構成において、スライスは典型的には、単一の機械によりキャッシュされる。大量のピアトラフィックに起因してある機械がホットスポットになった場合、当該機械は、同じスーパークラスタ上のいくつかの他の機械上へ特定のスライスを放出し得る。その意味では、わずかなトラフィックを受信しているか、またはトラフィックを受信していないスライスを移動させても、状況が改善されないことがあり、最も頻繁に要求されたスライスを移動させると、ホットスポットを同じスーパークラスタ内の別の機械へ移動させてしまう虞があり得る。したがって、いくつかの例において、最も頻繁に要求されたスライス、または要求されることが最も少なかったスライスのいずれでもないスライスが、本明細書において説明するように移行され得る。
【００７８】
図６は、本開示のいくつかの構成による、複数のスーパークラスタ（例えば、図１のスーパークラスタ１１０および１４０）間での通信を提供するための方法６００の例を示すフロー図である。図１から図６を参照すると、Ｐｕｂ−Ｓｕｂチャネル１３０およびＰｕｂ−Ｓｕｂチャネル１６０により保持される可用性ステータスおよびリソース割り当て情報は、ブリッジ１７０を介して共有され得る。機械１２０および１４２はブリッジ１７０をサポートする機械であるが、当業者であれば、ブリッジ（限定されるものではないがブリッジ１７０など）が第１のスーパークラスタ１１０の任意の機械と第２のスーパークラスタ１４０の任意の機械との間で確立され得ることを理解できる。
【００７９】
６１０において、第１の機械（例えば、第１のスーパークラスタ１２０の機械１２０）が、第１のスーパークラスタ１１０内の利用不可能な機械の数は閾値を超えている、と判断する。第１のスーパークラスタ１１０内の利用不可能な機械の数は、第１のスーパークラスタ１１０のＰｕｂ−Ｓｕｂチャネル１３０上で提供される可用性ステータスに基づいて決定される。
【００８０】
６２０において、機械１２０が、第１のスーパークラスタ１１０内の利用不可能な機械の数は閾値を超えているという判断に応答して、第２のスーパークラスタ１４０内の第２の機械（例えば、機械１４２）とのブリッジ１７０を確立する。ブリッジ１７０の例がＴＣＰ接続である。機械１２０は、第１のスーパークラスタ１１０に対するネットワーク近接度に基づいて、第２のスーパークラスタ１４０および／または機械１４２を特定する。ネットワーク近接度は、パケットが機械１２０（または第１のスーパークラスタ１１０）と機械１４２（または第２のスーパークラスタ１４０）との間を移動する距離に対応する。第２のスーパークラスタ１４０は、第１のスーパークラスタ１１０に隣接する。例えば、機械１２０は、近接度要求（例えば、ＤＮＳ要求、またはＤＮＳ要求のランデブーシステムと同じまたは同様のランデブーシステムを用いる要求）を行うことにより、第２のスーパークラスタ１４０および／または機械１４２が第１のスーパークラスタ１１０に隣接していることを特定する。機械１２０は、ＤＮＳ要求への（例えば、ＩＰアドレスを含む）応答を適切なＤＮＳサーバから受信し、当該応答に関連する位置情報（例えば、ＩＰアドレス）を分析して、第２のスーパークラスタ１４０を最も近い近接物と特定できる。いくつかの構成において、機械１２０は、最も近い近接するスーパークラスタの数（例えば、２、３、５または１０）を特定すると共に、最も少ないホットスポット、最も高い処理機能、最も多い利用可能な機械、最も少ないレイテンシ等を有する１つを選択する。いくつかの例において、第２のスーパークラスタ１４０（例えば、機械１４２または別の適切な機械）は、第２のスーパークラスタ１４０がブリッジ１７０を確立する前に第１のスーパークラスタ１１０をオフロードすることが可能である、と判断する。例えば、第２のスーパークラスタ１４０（例えば、機械１４２または別の適切な機械）は、Ｐｕｂ−Ｓｕｂチャネル１６０上で伝達される情報を用いた、第２のスーパークラスタ１４０内の利用不可能な機械の数は予め定められた閾値（例えば、３０％、５０％、６０％等）を超えているという判断に応答してブリッジ１７０が確立されることを可能にする。別の例において、第２のスーパークラスタ１４０（例えば、機械１４２または別の適切な機械）は、第２のスーパークラスタ１４０の追加のブリッジの数は予め定められた閾値（例えば、０、１、２等）を超えていないという判断に応答してブリッジ１７０が確立されることを可能にする。
【００８１】
６３０において、機械１２０が、ブリッジ１７０を介して、第２のスーパークラスタ１４０の機械１４２−１５０の各々の可用性ステータスおよびリソース割り当て情報を受信する。
【００８２】
６４０において、機械１２０が、第２のスーパークラスタ１４０の機械１４２−１５０の各々の可用性ステータスおよびリソース割り当て情報を第１のスーパークラスタ１１０のＰｕｂ−Ｓｕｂチャネル１３０上でパブリッシュする。例えば、機械１２０は、第２のスーパークラスタ１４０の機械１４２−１５０の各々の可用性ステータスおよびリソース割り当て情報を、Ｐｕｂ−Ｓｕｂチャネル１３０に関連するマルチキャストアドレスへ送信する。そのため、機械１１４ａ−１１４ｅと機械１１６−１２６とは、マルチキャストアドレスに基づく第２のスーパークラスタ１４０の機械１４２−１５０の各々の可用性ステータスおよびリソース割り当て情報を受信および格納できる。
【００８３】
いくつかの構成において、第１のスーパークラスタ１１０内のブリッジ１７０の端部を形成する機械１２０は、第１のスーパークラスタ１１０内の利用可能な機械がサポートできないそれらのスライスのみがＰｕｂ−Ｓｕｂチャネル１３０に対して利用可能になるように、第２のスーパークラスタ１４０から受信するデータをフィルタリングできる。そのような処理は移り変わり得る。なぜなら、スライスを第２のスーパークラスタ１４０へとオフロードするために必要なことが原因で第１のスーパークラスタ１１０がまず閾値に近づくが、全てのスライスが依然として第１のスーパークラスタ１１０内の機械からサービスを受けていると思われるからである。ブリッジ１７０が確立されているので、第１のスーパークラスタ１１０の機械がさらに劣化しても、第１のスーパークラスタ１１０の残りの機械の間で追加のスライスが割り当てられることは一切ない。代わりに、第２のスーパークラスタ１４０の適切な機械から追加のスライスが充填される。ブリッジ１７０が確立される時点で、または当該時点よりも前に、最近再割り当てされたスライスのうちのいくつかをロールバックすることにより、したがって、それらのスライスが第２のスーパークラスタ１４０から充填されるようにすることにより、第１のスーパークラスタ１１０の残りの機械のある程度の軽減を（第１のスーパークラスタ１１０内の追加の機械の喪失なしでも）実現させることが可能である。例を用いて示すと、機械１がスライス１、１１、２１、３１等を有し、機械２がスライス２、１２、２２等を有するように、１００個のスライスおよび１０個の機械がスーパークラスタ内に存在する。機械１がオフラインになり、次に、スライス１が機械２に再割り当てされ得る場合、例えば、スライス１１は、機械２に再割り当てされてよく、スライス２１は、機械３に再割り当てされてよい。オフラインになっている機械２、３、４および５に対してそのような処理が繰り返されている場合、残りの機械の各々は、通常の２倍の数のスライスにサービスを提供している。ブリッジに接続するための閾値に到達した場合、これは、機械４および５からのスライス、例えば、スライス４、１４、２４および３４ならびにスライス５、１５、２５および３５がスーパークラスタにおいて「利用不可能」とみなされ得るということであり得る。代わりに、それらのスライスは、別のスーパークラスタから処理される。すなわち、本明細書において説明したシステムは、５個の機械がスーパークラスタ内でオフラインになるまでブリッジ１７０が実際に生成されなくても、ブリッジを生成するための閾値がスーパークラスタ外の３個の機械であるかのように挙動し得る。
【００８４】
第１のスーパークラスタ１１０の機械１１４ａ−１１４ｅと機械１１６−１２６とは、ブリッジ１７０を介して受信した第２のスーパークラスタ１４０の機械１４２−１５０の各々の可用性ステータスおよびリソース割り当て情報に基づいて、クライアントから受信した要求を第２のスーパークラスタ１４０の機械へ転送できる。例えば、機械１２２は、コンテンツデータ（例えば、スライス）の要求をクライアント１０５から受信する。機械１２２は、機械１２２のコンテンツデータベース２５０内のＰｕｂ−Ｓｕｂチャネル１３０を介して受信した第２のスーパークラスタ１４０の機械１４２−１５０の各々の可用性ステータスおよびリソース割り当て情報を保存する。
【００８５】
機械１２２は、Ｐｕｂ−Ｓｕｂチャネル１３０上の機械１４２−１５０の各々の可用性ステータスおよびリソース割り当て情報に基づいて、コンテンツデータ（例えば、要求されたスライス）は第２のスーパークラスタ１４０の機械（例えば、機械１４６）により格納されている、と判断する。例えば、機械１２２の処理回路２１０は、要求されたスライスを基準として用いて機械１２２のステータスデータベース２４０を検索することで、要求されたスライスを格納している機械１４６を特定する。これに応答して、機械１２２は、要求を機械１４６へ転送する。
【００８６】
本明細書において説明した構成は、図面を参照して説明されている。図面は、本明細書において説明したシステム、方法およびプログラムを実装する特定の構成の特定の詳細を示す。しかしながら、図面を用いた構成の説明は、図面に存在し得るいかなる限定も本開示に課すものと解釈されるべきではない。
【００８７】
本明細書における特許請求の範囲のいかなる要素も、当該要素が「ための手段」という文言を用いて明示的に記載されていない限り、米国特許法第２１２（ｆ）条の規定に基づいて解釈されるべきではないことを理解されたい。
【００８８】
本明細書において用いられる場合、「回路」という用語は、本明細書において説明した機能を実行するように構造化されたハードウェアを含み得る。いくつかの構成において、対応する「回路」の各々は、本明細書において説明した機能を実行するようにハードウェアを構成するための機械可読媒体を含み得る。回路は、処理回路、ネットワークインタフェース、周辺デバイス、入力デバイス、出力デバイス、センサ等を含むがこれらに限定されない１または複数の回路コンポーネントとして具現化され得る。いくつかの構成において、回路は、１または複数のアナログ回路、電子回路（例えば、集積回路（ＩＣ）、ディスクリート回路、システムオンチップ（ＳＯＣ）回路等）、電気通信回路、ハイブリッド回路および任意の他の種類の「回路」の形態を取り得る。これに関連して、「回路」は、本明細書において説明したオペレーションの実現を達成するか、または容易にするための任意の種類のコンポーネントを含み得る。例えば、本明細書において説明した回路は、１または複数のトランジスタ、論理ゲート（例えば、ＮＡＮＤ、ＡＮＤ、ＮＯＲ、ＯＲ、ＸＯＲ、ＮＯＴ、ＸＮＯＲ等）、抵抗器、マルチプレクサ、レジスタ、コンデンサ、インダクタ、ダイオード、ワイヤ等を含み得る。
【００８９】
「回路」は、１または複数のメモリまたはメモリデバイスに通信可能に結合された１または複数のプロセッサも含み得る。これに関連して、１または複数のプロセッサは、メモリに格納された命令を実行し得るか、または、本来であれば１または複数のプロセッサにアクセス可能な命令を実行し得る。いくつかの構成において、１または複数のプロセッサは、様々な態様で具現化され得る。１または複数のプロセッサは、少なくとも本明細書において説明したオペレーションを実行するのに十分であるように解釈され得る。いくつかの構成において、１または複数のプロセッサは、複数の回路により共有され得る（例えば、回路Ａおよび回路Ｂが、いくつかの例示的な構成においてメモリの異なるエリアを介して格納されるか、またはそうでなければアクセスされる命令を実行し得る同じプロセッサを備え得るか、またはそうでなければ共有し得る）。代替的に、または追加的に、１または複数のプロセッサは、１または複数のコプロセッサとは無関係に特定のオペレーションを行うように、またはそうでなければ実行するように構造化され得る。他の例示的な構成において、２つまたはそれよりも多くのプロセッサがバスを介して結合されることで、独立した、並行の、パイプライン化またはマルチスレッド化された命令の実行が可能になり得る。各プロセッサは、１または複数の汎用プロセッサ、ＡＳＩＣ、ＦＰＧＡ、ＤＳＰ、またはメモリにより提供されされる命令を実行するように構造化された他の適切な電子データ処理コンポーネントとして実装され得る。１または複数のプロセッサは、シングルコアプロセッサ、マルチコアプロセッサ（例えば、デュアルコアプロセッサ、トリプルコアプロセッサ、クアッドコアプロセッサ等）、マイクロプロセッサ等の形態を取り得る。いくつかの構成において、１または複数のプロセッサは、装置の外部にあってよく、例えば、１または複数のプロセッサは、リモートプロセッサ（例えば、クラウドベースプロセッサ）であってよい。代替的に、または追加的に、１または複数のプロセッサは、装置の内部および／またはローカルであってよい。これに関連して、所与の回路またはそのコンポーネントが、ローカルに（例えば、ローカルサーバ、ローカルコンピューティングシステム等の一部として）、またはリモートで（例えば、クラウドベースサーバなどのリモートサーバの一部として）配置され得る。そのために、本明細書において説明した「回路」は、１または複数の位置にわたって分散されたコンポーネントを含み得る。
【００９０】
当該構成のシステム全体または部分を実装するための例示的なシステムは、処理ユニットと、システムメモリと、システムメモリを含む様々なシステムコンポーネントを処理ユニットに結合させるシステムバスとを含むコンピュータの形態の汎用コンピューティングコンピュータを含み得る。各メモリデバイスは、非一時的揮発性記憶媒体、不揮発性記憶媒体、非一時的記憶媒体（例えば、１または複数の揮発性メモリおよび／または不揮発性メモリ）等を含み得る。いくつかの構成において、不揮発性媒体は、ＲＯＭ、フラッシュメモリ（例えば、ＮＡＮＤ、３Ｄ  ＮＡＮＤ、ＮＯＲ、３Ｄ  ＮＯＲ等のフラッシュメモリ）、ＥＥＰＲＯＭ、ＭＲＡＭ、磁気ストレージ、ハードディスク、光ディスク等の形態を取り得る。他の構成において、揮発性記憶媒体は、ＲＡＭ、ＴＲＡＭ、ＺＲＡＭ等の形態を取り得る。上述のものの組み合わせも、機械可読媒体の範囲内に含まれる。これに関連して、機械実行可能命令は、例えば、汎用コンピュータ、専用コンピュータまたは専用処理機械に特定の機能または機能のグループを実行させる命令およびデータを含む。対応するメモリデバイスの各々は、プロセッサ命令および関連データを含む、１または複数の関連する回路により実行されるオペレーションに関する情報（例えば、データベースコンポーネント、オブジェクトコードコンポーネント、スクリプトコンポーネント等）を本明細書において説明した例示的な構成に従って維持するように、またはそうでなければ格納するように動作可能であってよい。
【００９１】
本明細書において説明した「入力デバイス」という用語は、キーボード、キーパッド、マウス、ジョイスティックまたは同様の機能を実行する他の入力デバイスを含むがこれらに限定されない任意の種類の入力デバイスを含み得ることにも留意されたい。比較的に、本明細書において説明した「出力デバイス」という用語は、コンピュータモニタ、プリンタ、ファクシミリ機または同様の機能を実行する他の出力デバイスを含むがこれらに限定されない任意の種類の出力デバイスを含み得る。
【００９２】
本明細書における図は方法の段階の特定の順序および構成を示し得るが、これらの段階の順序は示されているものとは異なり得ると理解されることに留意されたい。例えば、２つまたはそれよりも多くの段階が、同時に、または部分的に同時に実行され得る。また、別個の段階として実行されるいくつかの方法の段階が組み合わてよく、組み合わされた段階として実行されている段階が別個の段階に分離されてよく、一連の特定の処理が逆にされるか、またはそうでなければ変更されてよく、別個の処理の性質または数は変更されたり変化させられたりしてよい。任意の要素または装置の順序または順番は、代替的な構成に従って変更されたり置き換えられたりしてよい。したがって、全てのそのような修正は、添付の特許請求の範囲において定義される本開示の範囲内に含まれるよう意図されている。そのような変更は、選択される機械可読媒体およびハードウェアシステムと、設計者の選択とに依存する。全てのそのような変更は本開示の範囲内であることが理解される。同様に、本開示のソフトウェアおよびウェブの実装は、ルールベースロジックと様々なデータベース検索段階、相関付け段階、比較段階および決定段階を実現する他のロジックとを伴う標準的なプログラミング技術を用いて実現され得る。
【００９３】
構成についての前述の説明を例示および説明の目的で提示した。包括的なものとすることも、本開示を開示された正確な形式に限定することも意図されておらず、修正および変更が、上述の教示に照らして可能であるか、または本開示から取得され得る。当該構成は、本開示の原理およびその実際の用途を説明することで、様々な構成を当業者が利用することを可能にすべく、かつ、様々な修正が、意図された特定の用途に適合するよう、選択および説明されている。添付の特許請求の範囲において表される本開示の範囲から逸脱することなく、他の置き換え、修正、変更および省略が、当該構成の設計、動作条件および配置で行われ得る。
［項目１］
複数の機械と、
上記複数の機械の各々がサブスクライブするパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルと
を備え、
上記複数の機械の各々は、
可用性ステータスおよびリソース割り当て情報を上記Ｐｕｂ−Ｓｕｂチャネルにパブリッシュし、
上記Ｐｕｂ−Ｓｕｂチャネルを介して、上記複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信し、
上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を上記複数の機械のうちの上記別の１つへ転送する
ように構成される、
スーパークラスタ。
［項目２］
上記可用性ステータスは、コンテンツデータを格納するために上記複数の機械の各々が利用可能であるかどうかを示し、
上記リソース割り当て情報は、上記複数の機械の各々により格納される上記コンテンツデータを特定する、
項目１に記載のスーパークラスタ。
［項目３］
上記Ｐｕｂ−Ｓｕｂチャネルは、マルチキャストアドレスを有する、項目１に記載のスーパークラスタ。
［項目４］
上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記クライアントから受信した、上記コンテンツデータの上記要求を上記複数の機械のうちの上記別の１つへ転送することは、
上記複数の機械のうちの第１の機械が上記コンテンツデータの上記要求を上記クライアントから受信することと、
上記第１の機械が、上記第１の機械は上記コンテンツデータを格納していない、と判断することと、
上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記コンテンツデータは上記複数の機械のうちの第２の機械に格納されている、と判断することと、
上記要求を上記第２の機械へ転送することと
を含む、
項目１に記載のスーパークラスタ。
［項目５］
上記複数の機械のうちの第１の機械は、上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記複数の機械のうちの第２の機械により所有されているコンテンツデータを所有する、項目１に記載のスーパークラスタ。
［項目６］
上記第１の機械は、上記第２の機械により現在所有されている上記コンテンツデータを所有するために、
上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記第２の機械により所有されている上記コンテンツデータを特定し、
上記第２の機械により所有されている上記コンテンツデータを所有するための可用性を上記Ｐｕｂ−Ｓｕｂチャネルにパブリッシュし、
上記Ｐｕｂ−Ｓｕｂチャネルを介して、上記第２の機械からの許可を上記第２の機械から受信し、
上記第２の機械により所有されている上記コンテンツデータを所有し、
上記コンテンツデータの中継された要求を上記複数の機械のうちの第３の機械から受信し、かつ、
上記中継された要求に応答して、上記コンテンツデータを提供する、
項目５に記載のスーパークラスタ。
［項目７］
上記第１の機械は、上記第２の機械により現在所有されている上記コンテンツデータを所有するために、
上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記コンテンツデータを現在格納している第２の機械の数は閾値未満である、と判断し、
上記コンテンツデータを所有するための可用性を上記Ｐｕｂ−Ｓｕｂチャネルにパブリッシュし、
上記Ｐｕｂ−Ｓｕｂチャネルを介して、上記コンテンツデータを現在格納している上記第２の機械から許可を受信し、
上記コンテンツデータを所有し、
上記コンテンツデータの中継された要求を上記複数の機械のうちの第３の機械から受信し、かつ、
上記中継された要求に応答して、上記コンテンツデータを提供する、
項目５に記載のスーパークラスタ。
［項目８］
上記複数の機械のうちの第１の機械は、別のスーパークラスタ内の第２の機械へのブリッジを確立するように構成され、
上記別のスーパークラスタは、上記スーパークラスタに近接し、
上記ブリッジは、上記別のスーパークラスタの少なくともいくつかの機械の各々の可用性ステータスおよびリソース割り当て情報を上記第１の機械へ中継するように構成される、
項目１に記載のスーパークラスタ。
［項目９］
上記第１の機械は、上記Ｐｕｂ−Ｓｕｂチャネル上の上記複数の機械の上記可用性ステータスに基づいて、上記複数の機械のうちの利用不可能な機械の数は閾値を超えている、と判断するように構成され、
上記利用不可能な機械の数は上記閾値を超えているという判断に応答して、上記ブリッジは、確立される、
項目８に記載のスーパークラスタ。
［項目１０］
上記ブリッジは、伝送制御プロトコル（ＴＣＰ）接続を含む、項目８に記載のスーパークラスタ。
［項目１１］
上記第１の機械は、上記スーパークラスタに対する地理的な近接度に基づいて、上記別のスーパークラスタを特定するように構成される、項目８に記載のスーパークラスタ。
［項目１２］
上記第１の機械は、ドメインネームシステム（ＤＮＳ）要求を行うことにより、上記別のスーパークラスタが上記スーパークラスタに隣接していることを特定する、項目１１に記載のスーパークラスタ。
［項目１３］
上記第１の機械は、上記Ｐｕｂ−Ｓｕｂチャネル上の上記別のスーパークラスタの上記少なくともいくつかの機械の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュするように構成される、項目８に記載のスーパークラスタ。
［項目１４］
上記スーパークラスタの第３の機械は、
上記コンテンツデータの上記要求を上記クライアントから受信し、
上記Ｐｕｂ−Ｓｕｂチャネル上の上記別のスーパークラスタの上記少なくともいくつかの機械の上記リソース割り当て情報に基づいて、上記コンテンツデータは上記別のスーパークラスタの第４の機械により格納されている、と判断し、かつ、
上記要求を上記第４の機械へ転送する
ように構成される、
項目１３に記載のスーパークラスタ。
［項目１５］
スーパークラスタの複数の機械にわたって負荷を分散するための方法であって、
上記スーパークラスタの上記複数の機械の各々が、可用性ステータスおよびリソース割り当て情報をパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルにパブリッシュする段階であって、上記複数の機械の各々は、上記Ｐｕｂ−Ｓｕｂチャネルをサブスクライブする、パブリッシュする段階と、
上記Ｐｕｂ−Ｓｕｂチャネルを介して、上記複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信する段階と、
上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を上記複数の機械のうちの上記別の１つへ転送する段階と
を備える方法。
［項目１６］
実行された場合、スーパークラスタの複数の機械の各々のプロセッサに、
可用性ステータスおよびリソース割り当て情報をパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルにパブリッシュする手順であって、上記複数の機械の各々は、上記Ｐｕｂ−Ｓｕｂチャネルをサブスクライブする、パブリッシュする手順と、
上記Ｐｕｂ−Ｓｕｂチャネルを介して、上記複数の機械のうちの少なくとも別の１つの可用性ステータスおよびリソース割り当て情報を受信する手順と、
上記Ｐｕｂ−Ｓｕｂチャネル上の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、クライアントから受信した、コンテンツデータの要求を上記複数の機械のうちの上記別の１つへ転送する手順と
を実行させるようなコンピュータ可読命令を備える非一時的コンピュータ可読媒体。
［項目１７］
スーパークラスタにわたって負荷を分散するための方法であって、
第１のスーパークラスタの第１の機械が、上記第１のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する段階と、
上記第１の機械が第２のスーパークラスタ内の第２の機械とのブリッジを確立する段階であって、上記第２のスーパークラスタは、上記第１のスーパークラスタに隣接する、確立する段階と、
上記第１の機械が、上記ブリッジを介して、上記第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する段階と、
上記第１の機械が、上記第１のスーパークラスタのパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネル上で、上記第２のスーパークラスタの上記複数の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュする段階と
を備える方法。
［項目１８］
上記可用性ステータスは、コンテンツデータを格納するために上記第２のスーパークラスタの上記複数の機械の各々が利用可能であるかどうかを示し、
上記リソース割り当て情報は、上記第２のスーパークラスタの上記複数の機械の各々が担う上記コンテンツデータを特定する、
項目１７に記載の方法。
［項目１９］
上記第１のスーパークラスタの上記Ｐｕｂ−Ｓｕｂチャネル上の上記第１のスーパークラスタの複数の機械が上記第１のスーパークラスタの上記機械の各々の可用性ステータスおよびリソース割り当て情報をパブリッシュする段階をさらに備える、項目１７に記載の方法。
［項目２０］
上記第１のスーパークラスタ内の上記利用不可能な機械の数は、上記第１のスーパークラスタの上記Ｐｕｂ−Ｓｕｂチャネル上で提供される上記可用性ステータスに基づいて決定される、項目１９に記載の方法。
［項目２１］
上記第１のスーパークラスタの上記Ｐｕｂ−Ｓｕｂチャネルは、マルチキャストアドレスを含む、項目１７に記載の方法。
［項目２２］
上記第１のスーパークラスタの第３の機械がコンテンツデータの要求をクライアントから受信する段階と、
上記第３の機械が、上記Ｐｕｂ−Ｓｕｂチャネル上の上記第２のスーパークラスタの上記複数の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報に基づいて、上記コンテンツデータは上記第２のスーパークラスタの第４の機械により格納されている、と判断する段階と、
上記要求を上記第２のスーパークラスタ内の上記第４の機械へ転送する段階と
をさらに備える、項目１７に記載の方法。
［項目２３］
上記ブリッジは、伝送制御プロトコル（ＴＣＰ）接続を含む、項目１７に記載の方法。
［項目２４］
上記第１の機械が、上記第１のスーパークラスタに対する地理的な近接度に基づいて、上記第２のスーパークラスタを特定する段階をさらに備える、項目１７に記載の方法。
［項目２５］
上記第１の機械は、ドメインネームシステム（ＤＮＳ）要求を行うことにより、上記第２のスーパークラスタが上記第１のスーパークラスタに隣接していることを特定する、項目２４に記載の方法。
［項目２６］
実行された場合、第１のスーパークラスタの第１の機械のプロセッサに、
上記第１のスーパークラスタ内の利用不可能な機械の数は閾値を超えている、と判断する手順と、
第２のスーパークラスタ内の第２の機械とのブリッジを確立する段階であって、上記第２のスーパークラスタは、上記第１のスーパークラスタに隣接する、確立する手順と、
上記ブリッジを介して、上記第２のスーパークラスタの複数の機械の各々の可用性ステータスおよびリソース割り当て情報を受信する手順と、
上記第１のスーパークラスタのパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネル上で、上記第２のスーパークラスタの上記複数の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュする手順と
を実行させるようなコンピュータ可読命令を備える非一時的コンピュータ可読媒体。
［項目２７］
複数の第１の機械と、
上記複数の第１の機械の各々がサブスクライブするパブリッシュ−サブスクライブ（Ｐｕｂ−Ｓｕｂ）チャネルと
を有する第１のスーパークラスタと、
複数の第２の機械
を有する第２のスーパークラスタと、
上記第１のスーパークラスタと上記第２のスーパークラスタとの間のブリッジと
を備え、
上記複数の第１の機械のうちの１つは、
上記ブリッジを介して、上記複数の第２の機械の各々の可用性ステータスおよびリソース割り当て情報を上記複数の第２の機械のうちの１つから受信し、かつ、
上記第１のスーパークラスタの上記Ｐｕｂ−Ｓｕｂチャネル上で、上記複数の第２の機械の各々の上記可用性ステータスおよび上記リソース割り当て情報をパブリッシュする
ように構成される、
システム。
【図１】
2021526268.tif 000003
【図２】
2021526268.tif 000004
【図３】
2021526268.tif 000005
【図４】
2021526268.tif 000006
【図５】
2021526268.tif 000007
【図６】
2021526268.tif 000008
【国際調査報告】
2021526268.tif 000009
2021526268.tif 000010
2021526268.tif 000011
2021526268.tif 000012