JP2009516279A - コンピュータ・システムのクラスタにおいてルーティング情報を調整するための方法およびシステム(サーバがクラスタに加入した時刻に基づいたルーティング・データの送信) - Google Patents

コンピュータ・システムのクラスタにおいてルーティング情報を調整するための方法およびシステム(サーバがクラスタに加入した時刻に基づいたルーティング・データの送信) Download PDF

Info

Publication number
JP2009516279A
JP2009516279A JP2008540558A JP2008540558A JP2009516279A JP 2009516279 A JP2009516279 A JP 2009516279A JP 2008540558 A JP2008540558 A JP 2008540558A JP 2008540558 A JP2008540558 A JP 2008540558A JP 2009516279 A JP2009516279 A JP 2009516279A
Authority
JP
Japan
Prior art keywords
cluster
server
servers
point
routing data
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.)
Granted
Application number
JP2008540558A
Other languages
English (en)
Other versions
JP4653225B2 (ja
Inventor
ダイクス、パーネル、ジェイムズ
ニューポート、ウィリアム
シェン、ジンメイ
スター、ケヴィン、ウィリアム
ワン、ハオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009516279A publication Critical patent/JP2009516279A/ja
Application granted granted Critical
Publication of JP4653225B2 publication Critical patent/JP4653225B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Abstract

【課題】 ルーティング情報を調整するための優れた方法、装置、システムを提供する。
【解決手段】 方法、装置、システム、および信号担持媒体であって、一実施形態において、サーバのクラスタにブロードキャスト・メッセージを送信し、クラスタの調整サーバからポイント・ツー・ポイント・メッセージを受信する。調整サーバは、クラスタ内の他の全てのサーバよりも前にクラスタに加入したサーバである。ポイント・ツー・ポイント・メッセージは、クラスタ内のサーバの全てに関するルーティング・データを含む。一実施形態において、ブロードキャスト・メッセージは、新しいサーバの識別と、新しいサーバに関するリソース・データと、新しいサーバがクラスタに加入する時刻とを含む。クラスタ内のサーバは、ルーティング・データにレコードを追加し、レコードによって新しいサーバに要求を送信する。別の実施形態において、ブロードキャスト・メッセージは、第2のクラスタ内の全てのサーバについてのレコードを含み、新しいサーバは第2のクラスタ内のサーバにルーティング・データを送信する。サーバがクラスタを脱退した場合、そのレコードは除去される。このようにして、ネットワーク・トラヒックを軽減しながら、クラスタは、サーバが動的にクラスタに加入および脱退することに応答することができる。
【選択図】 図1

Description

本発明の一実施形態は、コンピュータに関する。具体的には、本発明の一実施形態は、一般に、ネットワークを介して接続されるコンピュータ・システムのクラスタに関する。
1948年のEDVACコンピュータ・システムの開発は、コンピュータ時代の幕開けと言われることが多い。それ以来、コンピュータ・システムは極めて洗練されたデバイスへと進化しており、コンピュータ・システムは多くの異なる環境において見出すことができる。コンピュータ・システムは通常、半導体および回路基板等のハードウェアと、コンピュータ・プログラムとしても知られるソフトウェアとの組み合わせを含む。半導体処理およびコンピュータ・アーキテクチャの向上によってコンピュータ・ハードウェアの性能がいっそう高度になるにつれて、このハードウェアの高性能を利用するようなもっと洗練された複雑なコンピュータ・ソフトウェアが現れ、結果として、今日のコンピュータ・システムはわずか数年前のものよりもずっと強力となっている。
何年か前には、コンピュータは相互に通信を行わないスタンドアローンのデバイスであったが、今日、コンピュータはネットワーク内での接続がますます行われるようになっており、クライアントと呼ばれる1つのコンピュータが、サーバと呼ばれる別のコンピュータに対して動作を実行するように要求することができる。インターネットの発展に伴って、このクライアント/サーバ・モデルは、オンライン・オークション会社、株取引、銀行業務、商取引、ならびに情報ストレージおよび検索等のオンラインでのビジネスおよびサービスにおいていっそう用いられるようになっている。
クライアントからの要求を処理するサーバは、ネットワークを介して接続されたクラスタの形に組織化されていることが多い。クラスタ内の安定したサーバ状態が理想的であり、この状態では、クラスタ内に存在するサーバならびにこれらのサーバ上で利用可能なデータおよびサービスが、既知であると共に一定している。安定したサーバ状態によって、サーバが利用可能になった直後にクライアント要求はサーバを用いることができるので、クライアント要求はエラーを経験しない。
安定したサーバ状態とは対照的に、サーバのクラスタは、乱れた(turbulent)サーバ状態で存在する場合がある。乱れたサーバ状態は、以下の要因によって起こり得る。すなわち、クラスタに対するサーバの動的な追加および削除、サーバに対するデータ・アイテムおよびサーバの動的な追加および削除、クラスタ内のサーバの起動、およびサーバの故障である。乱れたサーバ状態によって、クラスタ内の正しいサーバを見出してクライアントからの要求を処理する際に問題が生じる。なぜなら、サーバならびにそれらのデータおよびサービスを識別するルーティング情報が失効する(stale)からである。失効したルーティング情報により、クライアント要求はエラーを経験する恐れがある。例えば、失効したルーティング情報によって、クライアント要求が、データまたはサービスがもはや利用可能でないサーバにルーティングされる(遅すぎる)ことがあったり、クライアント要求が、新しいデータまたは新しいサービスがまだ要求を処理する準備ができていないサーバにルーティングされる(早すぎる)ことがあったりする。従って、一般的に乱れたサーバ状態によって生じる失効ルーティング情報は、クライアントにおけるカスタマの満足度に影響を与える。
乱れたサーバ状態およびその結果として生じる失効ルーティング情報に対処しようとする1つの現在の手法は、公示アプローチ(bulletin approach)と呼ばれるものである。公示アプローチにおいては、クラスタ内の1つのサーバをコーディネータに指定し、クラスタ内の全サーバがそれらのルーティング情報をコーディネータに送信し、全クライアントがコーディネータからクラスタ内のサーバのルーティング情報を検索する。コーディネータがクラスタから除去されるか、またはエラーを経験すると、新しいコーディネータが選択され、全サーバがそのルーティング情報を新しいコーディネータに再記入する。従って、公示アプローチでは追加のネットワーク・トラヒックが生じ、これは性能およびカスタマ満足度に悪い影響を与える。
従って、ルーティング情報を調整するためのもっと優れた技法が必要とされている。
本発明は、請求項1に記載したように、受信サーバにおいて実行される方法を提供する。
また、本発明は、請求項9に記載したように、新しいサーバにおいて実行される対応する方法を提供する。
また、対応するシステムおよびコンピュータ・プログラムも提供する。
このように、ネットワーク・トラヒックを低減しつつ、クラスタは、このクラスタに動的に加入したり脱退したりするサーバに応答することができる。
添付図面に関連付けて、本発明の様々な実施形態について以下に説明する。
しかしながら、添付図面は本発明の例示的な実施形態を表すだけであり、従ってその範囲を限定するとは見なされないことに留意すべきである。本発明は、他の等しく効果的な実施形態を認めることができるからである。
図面を参照すると、いくつかの図面を通して、同様の番号は同様の部分を示している。図1は、本発明の一実施形態に従った、ネットワーク130に接続されたサーバ・コンピュータ・システム100の高レベルのブロック図を示す。「コンピュータ・システム」および「サーバ」という言葉は便宜上用いるだけであり、様々な実施形態においてあらゆる適切な電子デバイスを使用可能である。様々な実施形態においては、コンピュータ・システム100はクライアントまたはサーバのいずれかとして動作することができ、ある状況においてクライアントとして動作するコンピュータ・システムまたは電子デバイスが、別の状況ではサーバとして動作する場合もある。サーバ・コンピュータ・システム100の主要コンポーネントは、1つ以上のプロセッサ101、主メモリ102、端末インタフェース111、ストレージ・インタフェース112、I/O(入出力)デバイス・インタフェース113、および通信/ネットワーク・インタフェース114を含み、これらは全て、メモリ・バス103、I/Oバス104、およびI/Oバス・インタフェース・ユニット105を介してコンポーネント間の通信を行うように結合されている。
サーバ・コンピュータ・システム100は、1つ以上の汎用プログラマブル中央演算処理装置(CPU)101A、101B、101C、および101Dを含み、本発明においてはこれらを総称してプロセッサ101と呼ぶ。一実施形態において、コンピュータ・システム100は、比較的大きいシステムに特有の多数のプロセッサを含む。しかしながら、別の実施形態においては、コンピュータ・システム100を単一CPUシステムとすることも可能である。各プロセッサ101は、主メモリ102にストアされた命令を実行し、1つ以上のレベルのオンボード・キャッシュを含む場合がある。
主メモリ102は、データおよびプログラムをストアするためのランダム・アクセス半導体メモリである。主メモリ102は、概念的には単一のモノリシック・エンティティであるが、他の実施形態においては、主メモリ102は、階層キャッシュおよび他のメモリ・デバイス等のもっと複雑な構成である。例えば、メモリは、多レベルのキャッシュで存在することができ、これらのキャッシュを更に機能によって分割して、1つのキャッシュが命令を保持する一方で、他のキャッシュは、プロセッサまたは複数のプロセッサが用いる非命令データを保持するようにすることができる。メモリは、更に、異なるCPUまたは複数組のCPUに分散させて関連付けることも可能である。これは、様々ないわゆる不均等メモリ・アクセス(NUMA:non-uniform memory access)・コンピュータ・アーキテクチャのいずれにおいても既知である。
主メモリ102は、コントローラ158およびサービス159を含む。コントローラ158およびサービス159は、コンピュータ・システム100においてメモリ102内に含まれるものとして図示しているが、他の実施形態では、それらの一部または全てが異なるコンピュータ・システム上にあって、例えばネットワーク130を介してリモート・アクセスされる場合がある。コンピュータ・システム100は、仮想アドレッシング機構を用いることができる。これによって、コンピュータ・システム100のプログラムは、多数の小さいストレージ・エンティティにアクセスする代わりに、単一の大きいストレージ・エンティティにのみアクセスを有するかのように動作することができる。従って、コントローラ158およびサービス159は主メモリ102内に含まれるように図示しているが、これらの要素は必ずしも全て同時に同一の物理的ストレージ・デバイス内に完全に含まれるわけではない。更に、コントローラ158およびサービス159は別個のエンティティとして図示しているが、他の実施形態においては、それらのいくつかまたはそれらのいくつかの一部をひとまとめにすることも可能である。
一実施形態において、コントローラ158は、プロセッサ101上で実行可能なメモリ102にストアされた命令、または、プロセッサ101上で実行する命令によって解釈可能なステートメントを含み、以下で図6、図7、図8、および図9を参照して更に詳細に述べるような機能を実行する。別の実施形態では、コントローラ158は、マイクロコードまたはファームウェアにおいて実現することができる。別の実施形態では、コントローラ158は、論理ゲートによるハードウェアにおいて、あるいは他の適切なハードウェア技法において、またはそれら両方で実現することができる。
コントローラ158は、ルーティング・データ160、時間ベース管理部162、健康状態聴取部164、情報合成部166、情報配信部167、およびポイント・ツー・ポイント送信部168を含む。時間ベース管理部162は、あるサーバがサーバ・クラスタに加入した時からの経過時間を算出する。健康状態聴取部164は、サーバ100またはネットワーク130に関連したエラーを監視する。情報合成部166は、情報をルーティング・データ160にマージする。情報配信部167は、ブロードキャスト・メッセージをネットワーク130に送信する。ポイント・ツー・ポイント送信部168は、ポイント・ツー・ポイント・メッセージをネットワーク130に接続されたサーバに送信する。ルーティング・データ160は、ネットワーク130に接続されたサーバ100を記述する。ルーティング・データ160については、以下で図5を参照して更に詳細に説明する。
サービス159は、サーバ100において利用可能なサービス、機能、または方法であり、様々な実施形態においては、アプリケーション、ユーザ・アプリケーション、サードパーティ・アプリケーション、アプリケーション・サーバ、オペレーティング・システム、他のいずれかのサービス、またはそれらの一部もしくは組み合わせとすることができる。
メモリ・バス103は、プロセッサ101、主メモリ102、およびI/Oバス・インタフェース・ユニット105間でデータを転送するためのデータ通信経路を提供する。I/Oバス・インタフェース・ユニット105は、更に、様々なI/Oユニットとの間でデータを転送するために、システムI/Oバス104に結合されている。I/Oバス・インタフェース・ユニット105は、システムI/Oバス104を介して、多数のI/Oインタフェース・ユニット111、112、113、および114と通信を行う。これらは、I/Oプロセッサ(IOP)またはI/Oアダプタ(IOA)としても既知である。システムI/Oバス104は、例えば、業界標準のPCIバスまたは他のいずれかの適切なバス技術とすることができる。
I/Oインタフェース・ユニットは、様々なストレージおよびI/Oデバイスとの通信をサポートする。例えば、端末インタフェース・ユニット111は、1つ以上のユーザ端末121、122、123、および124の接続をサポートする。ストレージ・インタフェース・ユニット112は、1つ以上のダイレクト・アクセス・ストレージ・デバイス(DASD:direct access storage device)125、126、および127(これらは典型的には回転磁気ディスク・ドライブ・ストレージ・デバイスであるが、これ以外に、ホストに対して単一の大きいストレージ・デバイスに見えるように構成されたディスク・ドライブ・アレイを含む他のデバイスとすることも可能である)の接続をサポートする。主メモリ102の内容は、ダイレクト・アクセス・ストレージ・デバイス125、126、および128にストアし、これらから検索することができる。
I/Oデバイス・インタフェース113は、様々な他の入出力デバイスまたは他のタイプのデバイスのいずれかに対するインタフェースを提供する。図1の例示的な実施形態では、かかるデバイスの2つすなわちプリンタ128およびファックス機械129を図示するが、他の実施形態においては、他の多くのそのようなデバイスが存在する場合があり、これらは異なるタイプである場合もある。ネットワーク・インタフェース114は、コンピュータ・システム100から他のデジタル・デバイスおよびコンピュータ・システムへの1つ以上の通信経路を提供する。かかる経路は、例えば1つ以上のネットワーク130を含むことができる。
図1において、メモリ・バス103は、比較的単純な単一のバス構造として図示し、プロセッサ101、主メモリ102、およびI/Oバス・インタフェース105間の直接通信経路を与えるが、実際には、メモリ・バス103は、多数の異なるバスまたは通信経路を含む場合があり、これらは、階層的、星型、またはウェブ構成におけるポイント・ツー・ポイント・リンク、多階層バス、並列および冗長経路等、様々な形態のいずれかに構成することができる。更に、I/Oバス・インタフェース105およびI/Oバス104はそれぞれ単一のユニットとして示すが、実際にはコンピュータ・システム100は、多数のI/Oバス・インタフェース・ユニット105あるいは多数のI/Oバス104またはそれら両方を含むことができる。多数のI/Oインタフェース・ユニット図示し、これらはシステムI/Oバス104を様々なI/Oデバイスへと至る様々な通信経路から分離するが、他の実施形態では、I/Oデバイスの一部または全てが、1つ以上のシステムI/Oバスに直接接続される。
図1に示すコンピュータ・システム100は、多数の端末121、122、123、および124が接続されており、これはマルチ・ユーザ「メインフレーム」コンピュータ・システムに特有である場合があるもの等である。通常、かかる場合、接続されたデバイスの実際の数は図1に示すものよりも多いが、本発明はいずれかの特定サイズのシステムには限定されない。あるいは、コンピュータ・システム100は、典型的に一つのみのユーザ・ディスプレイおよびキーボード入力を含む単一ユーザ・システムとすることも可能であり、または、直接ユーザ・インタフェースをほとんどまたは全く有しないが他のコンピュータ・システム(クライアント)から要求を受信するサーバまたは同様のデバイスとすることも可能である。他の実施形態においては、コンピュータ・システム100は、パーソナル・コンピュータ、ポータブル・コンピュータ、ラップトップまたはノードブック・コンピュータ、PDA(パーソナル・デジタル・アシスタント)、タブレット・コンピュータ、ポケット・コンピュータ、電話、ページャ、自動車、遠隔会議システム、器具、または他のいずれかの適切なタイプの電子デバイスとして実現することができる。
ネットワーク130は、いずれかの適切なネットワークまたはネットワークの組み合わせとすることができ、コンピュータ・システム100との間のデータあるいはコードまたはそれら両方の通信に適したいずれかの適切なプロトコルをサポートすれば良い。様々な実施形態において、ネットワーク130は、コンピュータ・システム100に対して直接的または間接的のいずれかで接続されたストレージ・デバイスまたはストレージ・デバイスの組み合わせを表すことができる。ある実施形態において、ネットワーク103はインフィニバンド(Infiniband)をサポートすることができる。別の実施形態では、ネットワーク130は無線通信をサポートすることができる。別の実施形態では、ネットワーク130は、電話線またはケーブル等のハードワイヤード通信をサポートすることができる。別の実施形態においては、ネットワーク130は、イーサネット(登録商標)IEEE(Institute of Electrical and Electronics Engineers)802.3x仕様をサポートすることができる。別の実施形態では、ネットワーク130は、インターネットとすることができ、IP(インターネット・プロトコル)をサポートすることができる。別の実施形態では、ネットワーク130は、ロカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)とすることができる。別の実施形態では、ネットワーク130は、ホットスポット・サービス・プロバイダ・ネットワークとすることができる。別の実施形態では、ネットワーク130はイントラネットとすることができる。別の実施形態では、ネットワーク130は、GPRS(General Packet Radio Service)ネットワークとすることができる。別の実施形態では、ネットワーク130は、FRS(Family Radio Service)ネットワークとすることができる。別の実施形態では、ネットワーク130は、いずれかの適切なセル式データ・ネットワークまたはセル・ベースの無線ネットワーク技術とすることができる。別の実施形態では、ネットワーク130は、IEEE802.11B無線ネットワークとすることができる。更に別の実施形態では、ネットワーク130は、いずれかの適切なネットワークまたはネットワークの組み合わせとすることができる。1つのネットワーク130を図示するが、他の実施形態では、(同一または異なるタイプの)いかなる数のネットワークも存在することができる。
図1は、コンピュータ・システム100およびネットワーク130の代表的な主要コンポーネントを高レベルで示すように意図されており、個々のコンポーネントは図1に示すよりも複雑である場合があり、図1に示すもの以外のコンポーネントまたは図1に示すものに追加されたコンポーネントが存在することがあり、かかるコンポーネントの数、種類、および構成は様々である場合があることは理解されよう。かかる付加的な複雑さまたは付加的な変形のいくつかの具体例を本発明において開示するが、これらは一例に過ぎず、必ずしもかかる変形のみでないことは理解されよう。
図1に示した様々なソフトウェア・コンポーネントおよび本発明の様々な実施形態の実現は、様々なコンピュータ・ソフトウェア・アプリケーション、ルーチン、コンポーネント、プログラム、オブジェクト、モジュール、データ構造等の使用を含む多数の方法で実現可能であり、これらを以下では「コンピュータ・プログラム」、または単に「プログラム」と称する。コンピュータ・プログラムは通常、1つ以上の命令またはステートメントを含み、これらは様々な時点でコンピュータ・システム100内の様々なメモリおよびストレージ・デバイスに常駐し、コンピュータ・システム100内の1つ以上のプロセッサによって読み出されて実行されると、本発明の実施形態の様々な態様を含むステップまたは要素を実行するために必要なステップをコンピュータ・システム100に実行させる。
更に、本発明の実施形態について、完全に機能するコンピュータ・システムの状況において、これまでもこれ以降も説明を行うが、本発明の様々な実施形態は、様々な形態でプログラムとして分散させることができ、本発明は、この分散を実際に実行するために用いられる特定のタイプの信号担持媒体には無関係に、等しく適用される。この実施形態の機能を規定するプログラムは、様々な有形のコンピュータ記録可能および読み取り可能信号担持媒体を介してコンピュータ・システム100に送出することができる。この媒体は以下のものを含むがこれらには限定されない。
(1)例えば、CD−ROM、DVD−R、またはDVD+R等、コンピュータ・システムに接続されているかまたはコンピュータ・システム内のリード・オンリ・メモリ・デバイスのような、書き換え不可能なストレージ媒体上に永久的にストアされた情報、
(2)例えば、ハード・ディスク・ドライブ(例えばDASD125、126、または12)、CD−RW、DVD−RW、DVD+RW、DVD−RAM、またはディスケットのような、書き換え可能ストレージ媒体上にストアされた変更可能情報、または、
(3)コンピュータまたは例えばネットワーク130のような電話ネットワークを介して等、通信媒体によって伝達される情報。
かかる有形の信号担持媒体は、本発明の機能を指示する機械読み取り可能命令を担持し、本発明の実施形態を表す。
また、本発明の実施形態は、クライアント企業、非営利組織、政府の組織体、内部組織構造等とのサービス契約の一部として配信することも可能である。これらの実施形態の態様は、本発明に記載する方法の一部または全てを実行するようにコンピュータ・システムを構成すること、ならびに本発明に記載する方法の一部または全てを実施するソフトウェア・システムおよびウェブ・サービスを展開することを含むことができる。また、これらの実施形態の態様は、クライアント企業を分析すること、この分析に応答して提案を作成すること、提案の部分を実現するようにソフトウェアを発生させること、そのソフトウェアを既存のプロセスおよびインフラストラクチャに統合すること、本発明に記載された方法およびシステムの使用を計測すること、ユーザに費用を配分すること、これらの方法およびシステムの使用についてユーザに課金することを含む場合がある。更に、以下に記載する様々なプログラムは、それらを本発明の特定の実施形態において実現する用途に基づいて識別することができる。しかしながら、以下のいかなる具体的なプログラム専門用語も便宜のために用いるだけであり、従って、本発明の実施形態は、かかる専門用語が識別あるいは示唆するまたはそれら両方であるいずれかの特定の用途においてのみ用いることに限定されるものではない。
図1に示す例示的な環境は、本発明を限定することを意図していない。実際、本発明の範囲から逸脱することなく、他の代替的なハードウェア環境あるいはソフトウェア環境またはそれら両方を用いることができる。
図2は、本発明の一実施形態に従った、例示的なサーバ100のクラスタ202のブロック図を示す。クラスタ202は、パーティションまたはグループとしても知られている場合がある。いかなる数のサーバ100もクラスタ202にまとめることができ、いかなる数のクラスタも存在することができる。クラスタ202内のサーバ100は、サービス159を用いる要求を相互に(図1のネットワーク130を介して)送信することができる。サーバ100のいずれもクライアントとして機能することができる。
図3は、本発明の一実施形態に従った、サーバ100−1、100−2、100−3、100−4、および100−5を含むクラスタ202−1に新しいサーバ100−6が加入する例を示すブロック図である。サーバ100(図1)は、サーバ100−1、100−2、100−3、100−4、100−5、および100−6を総称したものである。クラスタ202(図2)は、クラスタ202−1を一般的に呼ぶものである。サーバ100−1、100−2、100−3、100−4、100−5、および100−6は、ネットワーク130を介して接続されている。
サーバ100−1は、クラスタ202−1内の最も古いサーバである。これは、サーバ100−1がクラスタ202−1内に最も長く存在し、クラスタ202−1の最初のメンバであり、従って、サーバ100−2、100−3、100−4、100−5、および100−6がクラスタ202−1に加入する前の時点でクラスタ202−1に加入したことを意味する。サーバ100がクラスタ202−1を脱退したり加入したりすると、最も古いサーバ100−1の指定は変化する場合がある。サーバ100−1、100−2、100−3、100−4、および100−5は、クラスタ202−1の既存のメンバである。これは、これらがネットワーク130にすでに接続され、最も古いサーバ100−1からクラスタ202−1内の様々なサーバおよび利用可能サービス150を識別するルーティング・データ160を以前に受信したことを意味する。
サーバ100−6は、クラスタ202−1内の新しいサーバであり、これは、他のサーバ100−1、100−2、100−3、100−4、および100−5の後にクラスタ202−1に加入していることを意味する。新しいサーバ100−6がネットワーク130に接続したことに応答して、新しいサーバ100−6は、ネットワーク130を介してクラスタ202−1にブロードキャスト・メッセージ205を送信する。このメッセージは、新しいサーバ100−6を識別するレコードを含み、新しいサーバ100−6および新しいサーバ100−6において利用可能なサービス159に関する情報を含む。ブロードキャスト・メッセージングにおいて、クラスタ202−1内のサーバ全てに同一のメッセージ205を送信し、新しいサーバ100−6は、受信側のサーバ100−1、100−2、100−3、100−4、および100−5のネットワーク・アドレスを知る必要はない。代わりに、新しいサーバ100−6は、ブロードキャスト・メッセージ205をクラスタ202−1のアドレスに送信し、ネットワーク130は、このブロードキャスト・メッセージ205を、クラスタ202−1内のサーバ100−1、100−2、100−3、100−4、および100−5の各々に送信する。ブロードキャスト・メッセージングは、マルチキャスティングとも呼ばれる。
ブロードキャスト・メッセージ205は、ネットワーク130に接続されているサーバ100−1、100−2、100−3、100−4、および100−5の全てによって受信される。ブロードキャスト・メッセージ205の受信に応答して、最も古いサーバ100−1は、受信したレコードをそのルーティング・データ160のコピーに追加し、ポイント・ツー・ポイント・メッセージ210を新しいサーバ100−6に送信する。このメッセージは、クラスタ202−1内のサーバ100−1、100−2、100−3、100−4、および100−5の全てを表すグローバル・リソース・データ160を含む。最も古いサーバ100−1は、ポイント・ツー・ポイント・メッセージ210を排他的に新しいサーバ100−6に送信する。これは、最も古いサーバ100−1が、ポイント・ツー・ポイント・メッセージ210を、他のサーバ100−2、100−3、100−4、および100−5には送信しないことを意味する。ポイント・ツー・ポイント・メッセージは、ユニキャスト(unicast)・メッセージとも呼ばれる。ブロードキャスト・メッセージ205の受信に応答して、サーバ100−2、100−3、100−4、および100−5は、受信したレコードをそれらのルーティング・データ160の各コピーに追加するが、各ルーティング・データを新しいサーバ100−6に送信する必要はない。なぜなら、最も古いサーバ100−1が単一のポイント・ツー・ポイント・メッセージ210によって応答しており、これがクラスタ202−1内のサーバ全てを表すルーティング・データ160を含むからである。
図4は、本発明の一実施形態に従った、クラスタ202−2および202−3の統合の一例を示すブロック図である。クラスタ202−2は、サーバ100−7、100−8、および100−9を含む。クラスタ202−3は、サーバ100−10、100−11、および100−12を含む。サーバ100(図1)は、サーバ100−7、100−8、100−9、100−10、100−11、および100−12を総称したものである。クラスタ202(図2)は、クラスタ202−2および202−3を総称したものである。一実施形態において、クラスタ202−2および202−3は、以前に1つのクラスタ202として接続されていたが、相互の接続を失い、別々に分かれ、この時点で再び接続されている。切断されたことの結果として、失われたクラスタ内のサーバのレコードはルーティング・データ160から削除された。これについては、以下で図9を参照して更に詳しく述べる。別の実施形態においては、クラスタ202−2および20203は以前に接続されていないが、この時点で接続されている。
クラスタ202−2内の最も古いサーバ100−7がクラスタ202−3に対する接続(または再接続)を検出したことに応答して、最も古いサーバ100−7は、ブロードキャスト・メッセージ305をクラスタ202−3内のサーバ100−10、100−11、および100−12全てに送信する。クラスタ202−2内のサーバ100−8および100−9はクラスタ202−3に対する接続を検出することができるが、それらはブロードキャスト・メッセージ305を送信しない。なぜなら、それらはクラスタ202−2内で最も古いサーバでないからである。ブロードキャスト・メッセージ305は、クラスタ202−2内の全てのサーバ100−7、100−8、および100−9についてのルーティング・データ160−2内の全てのレコードを含む。
ブロードキャスト・メッセージ305の受信に応答して、受信側のサーバ100−11および100−12は、ブロードキャスト・メッセージ305からそれらのルーティング・データ160−3の各コピーにルーティング・データ160−2のレコードを追加するが、それらは応答は行わない。なぜなら、それらはクラスタ202−3内の最も古いサーバでないからである。ブロードキャスト・メッセージ305の受信に応答して、受信側のサーバ100−10は、そのルーティング・データ160−3のコピーを調べることによって、それがクラスタ202−3内の最も古いサーバであることを判定し、ポイント・ツー・ポイント・メッセージ310をクラスタ202−2内の最も古いサーバ100−7に送信する。ポイント・ツー・ポイント・メッセージ310は、クラスタ202−3内の全てのサーバ100−10、100−11、および100−12についてのルーティング・データ160−3内の全てのレコードを含む。
ポイント・ツー・ポイント・メッセージ310の受信に応答して、最も古いサーバ100−7は次いで、クラスタ202−2内のサーバ100−8および100−9にブロードキャスト・メッセージ315を送信する。このメッセージは、受信したルーティング・データ160−3からのレコードを含む。クラスタ202−2内の受信側サーバ100−8および100−9は、受信したルーティング・データ160−3からのレコードをそれらのルーティング・データ160−2のコピーに追加する。次いで、クラスタ202−2内の最も古いサーバ100−7は、受信したルーティング・データ160−3からそのルーティング・データ160−2のコピーにレコードを追加する。クラスタ202−2および202−3はここで単一のクラスタにマージされ、新しい単一のクラスタ内の最も古いサーバは、マージされたルーティング・データ160−2および160−3に示される通り、サーバ100−7および100−11のうち古い方である。
図5は、本発明の一実施形態に従った、ルーティング・データ160の例示的なデータ構造のブロック図を示す。ルーティング・データ160はレコード405、410、および415を含むが、他の実施形態において、いかなる適切なデータによるいかなる数のレコードも存在することができる。レコード405、410、および415の各々は、サーバ識別フィールド420、リソース・データ・フィールド425、およびタイムスタンプ・フィールド430を含むが、他の実施形態では、存在するフィールドがもっと多いかまたは少ない場合もある。
サーバ識別フィールド420は、レコードに関連付けられたサーバ100を識別する。様々な実施形態において、サーバ識別フィールド420は、ネットワーク・アドレス、IP(インターネット・プロトコル)・アドレス、MAC(Media Access Control)アドレス、または、サーバ100にアクセスするかメッセージ、要求、もしくはデータを送信するために用いることができる他のいずれかのタイプの識別子を含むことができる。
様々な実施形態において、リソース・データ425は、サーバ100におけるリソースまたはサービス159のリソース識別子、サーバ100におけるリソースまたはサービス159のステータス、サービス159の内容、サービス159における待ち状態の要求の数または種類、サーバ100におけるプロセッサ101のCPU利用、サーバ100のメモリ使用、および終点を含むことができる。しかしながら、他の実施形態において、リソース・データ425は、他のサーバが受信したいと望み得るいかなる適切なデータも含むことができる。
タイムスタンプ・フィールド430は、関連するサーバ420がクラスタに加入した時点を識別する。サーバ420がクラスタに加入した時点は、サーバ420がネットワークに接続した時点、またはサーバ420がブロードキャスト・メッセージ205を送信した時点とすれば良い。従って、図5の例では、レコード405は最も早いタイムスタンプ430を有するので、これはクラスタ内の最も古いサーバを識別する。
図6は、本発明の一実施形態に従って、新しいサーバがクラスタに加入するための例示的な処理のフローチャートを示す。制御はブロック500において開始する。次いで制御はブロック505に移り、新しいサーバ100−6がネットワーク130に接続し、クラスタ202−1のアドレスを求める。次いで制御はブロック510に移り、新しいサーバ100−6におけるコントローラ158は、新しいサーバ100−6を識別するサーバ識別420、新しいサーバ100−6において利用可能なサービス159に関するリソース・データ425、および現在の時刻(日付を含む場合がある)を識別するタイムスタンプ430を有するレコードを作成する。
次いで制御はブロック515に移り、新しいサーバ100−6におけるコントローラ158は、ネットワーク130において求めたクラスタ202−1のアドレスによって、作成したレコードを含むブロードキャスト・メッセージ205をクラスタ202−1内の全てのサーバ100に送信する。次いで制御はブロック520に移り、クラスタ202−1内のサーバ100はブロードキャスト・メッセージ205を受信して処理する。これについては、以下で図9を参照して更に詳しく述べる。
次いで制御はブロック525に移り、新しいサーバ100−6におけるコントローラ158は、クラスタ202−1内の全てのサーバ100についてのレコードを含むルーティング・データ160を有するポイント・ツー・ポイント・メッセージ210を受信する。ポイント・ツー・ポイント・メッセージは、クラスタ202−1内の最も古いサーバ100−1によって送信され、排他的に新しいサーバ100−6に送信されるが、クラスタ202−1内の他のサーバ100−2、100−3、100−4、および100−5には送信されない。
次いで制御はブロック530に移り、新しいサーバ100−6におけるコントローラ158は、ルーティング・データ160によって、ネットワーク130のクラスタ202−1内の他のサーバにおけるサービス159に対する要求を送信する。コントローラ158は、ルーティング・データ160を用いて、リソース・データ425内で適切なサービスを見出し、所望の適切なサーバに関連したサーバ識別子420を求め、次いで求めたサーバ識別子420に要求を送信することができる。従って、コントローラ158は、受信したルーティング・データ160によって、クラスタ202内のサーバ100の1つ以上から1つ以上のサービス159を要求する。
次いで制御はブロック599に移り、図6の論理に戻る。
図7は、本発明の一実施形態に従った、サーバのクラスタを接続するための例示的な処理のフローチャートを示す。制御はブロック600において開始する。次いで制御はブロック605に移り、クラスタ202−2内のサーバ100におけるコントローラ158がクラスタ202−3に接続する。次いで制御はブロック610に移り、サーバ100におけるコントローラ158は、サーバ100がクラスタ202−2内で最も古いサーバ100−7であるか否かを判定する。すなわち、コントローラ158は、クラスタ202−3にサーバ100が接続した時刻430がルーティング・データ160−2における他の全てのサーバの時刻430よりも前すなわち早いか否かを判定することによって、クラスタ202−2内の他の全てのサーバよりも前にサーバ100がクラスタ202−2に加入したか否かを判定する。
ブロック610における判定が真である場合、クラスタ202−3に接続したサーバ100は、クラスタ202−2内の他の全てのサーバよりも前にクラスタ202−2に加入しており、クラスタ202−2内の最も古いサーバ100−7であるので、制御はブロック615に移り、最も古いサーバ100−7におけるコントローラ158はブロードキャスト・メッセージ305をクラスタ202−3に送信する。ブロードキャスト・メッセージ305は、クラスタ202−2内の全てのサーバ100−7、100−8、および100−9についてのルーティング・データ160−2内の全レコードを含む。
次いで制御はブロック620に移り、クラスタ202−3内のサーバがブロードキャスト・メッセージ305を処理する。これについては図8を参照して以下で更に詳細に述べる。次いで制御はブロック625に移り、クラスタ202−2内の最も古いサーバ100−7におけるコントローラ158はクラスタ202−3内の最も古いサーバ100−10からポイント・ツー・ポイント・メッセージ310を受信する。これは、クラスタ202−3内の全てのサーバ100−10、100−11、および100−12についてのルーティング・データ160−3内の全レコードを含む。
次いで制御はブロック630に移り、クラスタ202−2内の最も古いサーバ100−7におけるコントローラ158は、ブロードキャスト・メッセージ315をクラスタ202−2内の全てのサーバ100−8および100−9に送信する。ブロードキャスト・メッセージ315は、クラスタ202−3内の全てのサーバ100−10、100−11、および100−12についてのルーティング・データ160−3内の全レコードを含む。制御は次いでブロック635に移り、クラスタ202−2内のサーバはブロードキャスト・メッセージを受信し、それらのルーティング・データ160−3および160−2のコピーをマージし、マージしたルーティング・データを介してクラスタ202−2および202−3内のサーバに要求を送信する。これについては図8を参照して以下で更に詳細に述べる。制御は次いでブロック640に移り、クラスタ202−2内の最も古いサーバ100−7におけるコントローラ158はそのルーティング・データ160−3および160−2のコピーをマージし、マージしたルーティング・データを介してクラスタ202−2および202−3におけるサーバに要求を送信する。次いで制御はブロック699に移り、図7の論理が戻る。
ブロック610における判定が偽である場合、クラスタ202−3に接続したクラスタ202−2内のサーバ100は、クラスタ202−2内の他の全てのサーバの前にクラスタ202−2に加入しておらず、このため、クラスタ202−3に接続したサーバ100はサーバ100−8または100−9であるので、制御はブロック699に移り、図7の論理が戻る。
図8は、本発明の一実施形態に従った、ブロードキャスト・メッセージの受信を処理するためのサーバにおける例示的な処理のフローチャートを示す。制御はブロック700において開始する。制御は次いでブロック705に移り、受信側サーバにおけるコントローラ158は、発信側サーバ(ブロードキャスト・メッセージを送信したサーバ)からブロードキャスト・メッセージを受信する(例えばブロードキャスト・メッセージ205、305、または315)。受信されたブロードキャスト・メッセージは、1つ以上のレコード405、410、または415を含み、これらは発信側サーバに関連付けられているか、またはクラスタ202内の全てのサーバに関連付けられている。
次いで制御はブロック710に移り、コントローラ158は、受信側サーバがルーティング・データ160のローカル・コピーにおいて最も古いサーバであるか否かを判定する。コントローラ158は、この判定を行うために、受信側サーバに関連付けられたルーティング・データ160のレコード内のタイムスタンプ430を、ルーティング・データ160内の他のレコードのタイムスタンプ430と比較し、更に、受信側サーバがクラスタ202に加入した時刻430が、他のサーバがクラスタ202に加入した時刻430よりも早いか否かを判定する。
受信側サーバのタイムスタンプ430がクラスタ202のルーティング・データ160における最も早い時刻(他の全ての時刻よりも前)である場合、受信側サーバはクラスタ202内の最も古いサーバ(例えばサーバ100−1、100−7、または100−10)であるので、制御は続いてブロック715に移り、受信側サーバにおけるコントローラ158は、クラスタ202内の全サーバについてルーティング・データ160のそのローカル・コピーからレコードを検索し、受信したレコードをポイント・ツー・ポイント・メッセージに追加し、ポイント・ツー・ポイント・メッセージ(例えばポイント・ツー・ポイント・メッセージ210または310)を、ブロードキャスト・メッセージを発信したサーバ(例えばサーバ100−6または100−7)に送信する。
次いで制御はブロック720に移り、受信側サーバにおけるコントローラ158は、デルタ=(t1+t3)/2−t2を計算する。ここで、
t2=ブロードキャスト・メッセージの到着時刻である。
t1=発信側サーバに関連付けられたブロードキャスト・メッセージにおける受信レコード内のタイムスタンプ430である、これは、ブロードキャスト・メッセージの発信側サーバがクラスタ202に加入した時刻である。
t3=受信側サーバがポイント・ツー・ポイント・メッセージを発信側サーバに送信した時刻である(ブロック715を参照して前述した)。
次いで制御はブロック725に移り、受信側サーバにおけるコントローラ158は、計算したデルタを、ブロードキャスト・メッセージを発信したサーバに関連付けられた受信レコード内のタイムスタンプ430に追加する。従って、受信側サーバにおけるコントローラ158は、算出したデルタによって発信側サーバがクラスタ202に加入した時刻を調節して、発信側サーバがクラスタに加入することを決定した時刻とクラスタ202内の最も古いサーバが発信側サーバのクラスタ202への加入を認識した時刻との間の遅延を考慮に入れる。
次いで制御はブロック730に移り、受信側サーバにおけるコントローラ158は、往復のタイミング・データを蓄積し、計算したデータをもっと多くの動作によって調節する。
次いで制御はブロック735に移り、受信側サーバにおけるコントローラ158は、ブロードキャスト・メッセージにおいて受信したレコードをルーティング・データ160に追加し、タイムスタンプ430に基づいてルーティング・データ160内のレコードをソートする。
次いで制御はブロック740に移り、受信側サーバにおけるコントローラ158は、リソース・データ425において識別された適切なサービス159を見つけ、関連するサーバ識別子420を介してクラスタ202内のサーバ100におけるサービス159に要求を送信する。
ブロック710における判定が偽である場合、受信側サーバはルーティング・データ160のローカル・コピーにおける最も古いサーバでないので(すなわち、受信側サーバはクラスタ202内の他のサーバ100よりも早い時刻にクラスタ202に加入していない)、制御はブロック735に移る。これについてはすでに述べた。
図9は、本発明の一実施形態に従った、サーバがネットワーク130を脱退することに応答した例示的な処理のフローチャートを示す。制御はブロック800において開始する。次いで制御はブロック805に移り、コントローラ158は、サーバ100がクラスタ202を脱退したか否か、例えば、サーバ100がネットワーク130を脱退したか、エラーを経験したか、または到達不可能になったか否かを判定する。ブロック805における判定が真である場合、サーバ100はクラスタ202を脱退したか、サーバ100はネットワーク130を脱退したか、サーバ100はエラーを経験したか、またはサーバは到達不可能であるので、制御はブロック810に移って、コントローラ158は、ブロック805において判定されたサーバ100に関連付けたルーティング・データ160からサーバ識別子フィールド420を介してレコードを見つけ、このレコードをルーティング・データ160から除去する。次いで制御はブロック899に移り、図9の論理は戻る。
ブロック805における判定が偽である場合、制御は続いてブロック899に移り、図9の論理が戻る。
これまでの本発明の例示的な実施形態の詳細な説明において、添付図面(同様の番号は同様の要素を表す)を参照したが、図面はその一部を形成し、図面において、本発明を実施可能な具体的かつ例示的な実施形態を一例としてのみ示した。これらの実施形態を充分に詳しく記載して、当業者が本発明を実施することを可能としたが、他の実施形態も利用可能であり、本発明の範囲から逸脱することなく、論理的、機械的、電気的、および他の変更を行うことも可能である。本明細書内で用いたような「実施形態」という言葉の異なる例は、必ずしも同一の実施形態を指さないが、そうである場合もある。本発明において図示されたかまたは記載されたいかなるデータおよびデータ構造も一例であり、他の実施形態においては、異なる量のデータ、データ・タイプ、フィールド、フィールドの数およびタイプ、フィールド名、レコードの数およびタイプ、エントリ、またはデータの組織を用いることができる。更に、いかなるデータも論理と組み合わせることができるので、別個のデータ構造は必要でない。従って、前述の詳細な説明は限定の意味にとられるのではなく、本発明の範囲は特許請求の範囲によってのみ規定されるものとする。
前述の記載において、多数の具体的な詳細事項を述べて本発明の完全な理解を与えた。しかしながら、本発明はこれらの具体的な詳細事項がなくても実施可能である。他の例において、本発明を不明瞭にしないために、周知の回路、構造、および技法については詳細に示していない。
本発明の一実施形態を実現するための例示的なシステムのブロック図を示す。 本発明の一実施形態に従った例示的なサーバのクラスタのブロック図を示す。 本発明の一実施形態に従った、新しいサーバがサーバのクラスタに加入する一例のブロック図を示す。 本発明の一実施形態に従ったサーバ・クラスタの統合の一例のブロック図を示す。 本発明の一実施形態に従ったルーティング・データの一例のブロック図を示す。 本発明の一実施形態に従った、新しいサーバがサーバのクラスタに加入する処理の一例のフローチャートを示す。 本発明の一実施形態に従った、サーバのクラスタを接続する処理の一例のフローチャートを示す。 本発明の一実施形態に従ったブロードキャスト・メッセージの処理の一例のフローチャートを示す。 本発明の一実施形態に従った、サーバがネットワークを脱退することに応答した処理の一例のフローチャートを示す。

Claims (15)

  1. 複数のサーバのクラスタにおいて受信側サーバで実行される方法であって、
    新しいサーバからブロードキャスト・メッセージを受信するステップであって、前記新しいサーバが前記複数のサーバの前記クラスタに前記ブロードキャスト・メッセージを送信した、前記受信するステップと、
    前記受信側サーバが、前記クラスタにおける前記複数のサーバの他の全てよりも前に前記クラスタに加入したか否かを判定するステップと、
    前記判定が真である場合、前記新しいサーバにポイント・ツー・ポイント・メッセージを送信するステップであって、前記ポイント・ツー・ポイント・メッセージが前記クラスタ内の前記複数のサーバの全てに関連したルーティング・データを含む、前記送信するステップと、
    を含む、方法。
  2. 前記ブロードキャスト・メッセージが、前記新しいサーバの識別、前記新しいサーバに関連したリソース・データ、および前記新しいサーバが前記クラスタに加入する時刻を含むレコードを含む、請求項1に記載の方法。
  3. 前記レコードを前記ルーティング・データに追加するステップを更に含む、請求項2に記載の方法。
  4. 前記レコードによって前記新しいサーバに要求を送信するステップを更に含む、請求項3に記載の方法。
  5. 前記ルーティング・データが前記複数のサーバに関連した複数のレコードを含み、前記複数のレコードの各々が、前記各サーバの識別、前記各サーバが提供するリソース、および前記各サーバが前記クラスタに加入した時刻を含むレコードを含み、前記受信側サーバが前記複数のレコードにおける前記時刻に基づいて前記判定を行う、請求項1に記載の方法。
  6. 前記複数のサーバの1つが前記クラスタを脱退した場合、前記クラスタを脱退した前記1つのサーバに関連した前記レコードを前記ルーティング・データから除去するステップを更に含む、請求項5に記載の方法。
  7. 前記ポイント・ツー・ポイント・メッセージを送信する前記ステップが、前記ポイント・ツー・ポイント・メッセージを排他的に前記新しいサーバに送信するステップを更に含む、請求項1に記載の方法。
  8. 前記判定が偽である場合、前記レコードを前記ルーティング・データに追加するステップを更に含む、請求項2に記載の方法。
  9. サーバのクラスタに加入することを望む新しいサーバにおいて実行される方法であって、
    ネットワークを介して接続された前記サーバのクラスタにブロードキャスト・メッセージを送信するステップと、
    第1の複数のサーバの第1のクラスタの調整サーバからポイント・ツー・ポイント・メッセージを受信するステップであって、前記調整サーバが前記第1の複数のサーバの他の全てよりも前に前記第1のクラスタに加入し、前記ポイント・ツー・ポイント・メッセージが前記第1のクラスタにおける前記第1の複数のサーバの全てに関連したルーティング・データを含み、前記ポイント・ツー・ポイント・メッセージが排他的に前記新しいサーバによって受信される、前記受信するステップと、
    を含む、方法。
  10. 前記ルーティング・データが、前記クラスタにおける前記サーバの全ての識別、前記クラスタにおける前記サーバの全てが提供するリソース、および前記サーバの各々が前記クラスタに加入した時刻を含む、請求項9に記載の方法。
  11. 前記ルーティング・データによって、前記サーバの1つにおける前記リソースの少なくとも1つに対する要求を送信するステップを更に含む、請求項10に記載の方法。
  12. 前記ブロードキャスト・メッセージにおいて、前記新しいサーバが前記クラスタに加入する時刻をストアするステップを更に含む、請求項9に記載の方法。
  13. 前記ブロードキャスト・メッセージに前記新しいサーバの識別およびリソース・データをストアするステップを更に含み、前記リソース・データが前記新しいサーバにおいて利用可能な少なくとも1つのサービスを記述する、請求項9に記載の方法。
  14. 前出の方法の請求項のいずれかによる方法の全てのステップを実行するために適合された手段を含むシステム。
  15. コンピュータ・システム上で実行された場合に前出の方法の請求項のいずれかによる方法の全てのステップを実行するための命令を含むコンピュータ・プログラム。
JP2008540558A 2005-11-17 2006-10-26 複数のサーバのクラスタにおけるコーディネータ・サーバにおいて実行される方法、複数のサーバのクラスタに加入することを望む新しいサーバにおいて実行される方法およびコンピュータ・プログラム Expired - Fee Related JP4653225B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/282,029 US20070112963A1 (en) 2005-11-17 2005-11-17 Sending routing data based on times that servers joined a cluster
PCT/EP2006/067819 WO2007057284A1 (en) 2005-11-17 2006-10-26 Sending routing data based on times that servers joined a cluster

Publications (2)

Publication Number Publication Date
JP2009516279A true JP2009516279A (ja) 2009-04-16
JP4653225B2 JP4653225B2 (ja) 2011-03-16

Family

ID=37714486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008540558A Expired - Fee Related JP4653225B2 (ja) 2005-11-17 2006-10-26 複数のサーバのクラスタにおけるコーディネータ・サーバにおいて実行される方法、複数のサーバのクラスタに加入することを望む新しいサーバにおいて実行される方法およびコンピュータ・プログラム

Country Status (9)

Country Link
US (1) US20070112963A1 (ja)
EP (1) EP1952589B1 (ja)
JP (1) JP4653225B2 (ja)
CN (1) CN101300796B (ja)
AT (1) ATE445276T1 (ja)
BR (1) BRPI0618776A2 (ja)
DE (1) DE602006009697D1 (ja)
IL (1) IL191329A (ja)
WO (1) WO2007057284A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264384B1 (en) 2004-07-22 2016-02-16 Oracle International Corporation Resource virtualization mechanism including virtual host bus adapters
US9813283B2 (en) 2005-08-09 2017-11-07 Oracle International Corporation Efficient data transfer between servers and remote peripherals
EP2587736A3 (en) * 2007-09-26 2013-08-28 Nicira, Inc. Network operating system for managing and securing networks
EP2273727A1 (fr) * 2009-06-25 2011-01-12 France Telecom Procede d'obtention d'une information representative d'une disponibilité d'un réseau de communication, dispositif et programme d'ordinateur correspondant
US9973446B2 (en) 2009-08-20 2018-05-15 Oracle International Corporation Remote shared server peripherals over an Ethernet network for resource virtualization
CN101841884B (zh) * 2010-04-30 2012-05-02 北京航空航天大学 一种基于能量的无线传感网络簇头继承分簇方法
CN102404191B (zh) * 2010-09-10 2014-12-24 腾讯科技(深圳)有限公司 路由方法和装置
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US9313641B2 (en) * 2012-09-17 2016-04-12 Qualcomm Incorporated System and method for advertising and communicating within a neighborhood aware network
US9083550B2 (en) * 2012-10-29 2015-07-14 Oracle International Corporation Network virtualization over infiniband
US8879718B2 (en) 2012-12-04 2014-11-04 Genesys Telecommunications Laboratories, Inc. Distributed event delivery
CN103441918A (zh) * 2013-08-29 2013-12-11 哈尔滨工程大学 一种自组织集群服务器系统及其自组织方法
CN109286507B (zh) * 2017-07-21 2022-11-11 伊姆西Ip控股有限责任公司 发现方法、计算系统以及计算机可读介质
CN113037700B (zh) * 2019-12-25 2024-02-09 拓尔思天行网安信息技术有限责任公司 一种边界视频服务的负载方法、装置、设备及存储介质
US11687376B2 (en) * 2020-06-12 2023-06-27 Baidu Usa Llc Method for data protection in a data processing cluster with dynamic partition
US11019023B1 (en) * 2020-08-13 2021-05-25 Salesforce.Com, Inc. Container orchestration system (COS) services discovery across multiple COS clusters based on COS cluster domain name system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764926A (ja) * 1993-08-25 1995-03-10 Nippon Telegr & Teleph Corp <Ntt> 分散サーバ装置
JPH09114722A (ja) * 1995-10-20 1997-05-02 Nippon Telegr & Teleph Corp <Ntt> 分散システムにおける共有情報管理方法
JPH09135262A (ja) * 1995-11-10 1997-05-20 Hitachi Ltd 情報フィルタリング処理を行うデータ伝送方法
JPH1097482A (ja) * 1996-09-19 1998-04-14 Fuji Electric Co Ltd 計算機システム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572582A (en) * 1995-02-24 1996-11-05 Apple Computer, Inc. Method and apparatus for establishing communication between two teleconferencing endpoints
US5737328A (en) * 1995-10-04 1998-04-07 Aironet Wireless Communications, Inc. Network communication system with information rerouting capabilities
US5787250A (en) * 1996-04-30 1998-07-28 International Business Machines Corporation Program product for managing membership of a group of processors in a distributed computing environment
US5699501A (en) * 1996-04-30 1997-12-16 International Business Machines Corporation System for group leader recovery in a distributed computing environment
US5787249A (en) * 1996-04-30 1998-07-28 International Business Machines Coporation Method for managing membership of a group of processors in a distributed computing environment
US6507863B2 (en) * 1999-01-27 2003-01-14 International Business Machines Corporation Dynamic multicast routing facility for a distributed computing environment
US7349343B2 (en) 2000-03-31 2008-03-25 British Telecommunications Public Limited Company Network routing and congestion control
WO2001082678A2 (en) * 2000-05-02 2001-11-08 Sun Microsystems, Inc. Cluster membership monitor
US7617292B2 (en) * 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
CN1213567C (zh) * 2002-02-27 2005-08-03 华为技术有限公司 一种网络设备的集群管理方法
CN1190042C (zh) * 2002-11-15 2005-02-16 烽火通信科技股份有限公司 基于以太网技术的网络设备管理方法
WO2004077280A2 (en) 2003-02-27 2004-09-10 Bea Systems, Inc. System and method for communications between servers in a cluster
US7257731B2 (en) * 2003-12-23 2007-08-14 Nokia Inc. System and method for managing protocol network failures in a cluster system
US7606187B2 (en) * 2004-10-28 2009-10-20 Meshnetworks, Inc. System and method to support multicast routing in large scale wireless mesh networks
US7729350B2 (en) * 2004-12-30 2010-06-01 Nokia, Inc. Virtual multicast routing for a cluster having state synchronization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764926A (ja) * 1993-08-25 1995-03-10 Nippon Telegr & Teleph Corp <Ntt> 分散サーバ装置
JPH09114722A (ja) * 1995-10-20 1997-05-02 Nippon Telegr & Teleph Corp <Ntt> 分散システムにおける共有情報管理方法
JPH09135262A (ja) * 1995-11-10 1997-05-20 Hitachi Ltd 情報フィルタリング処理を行うデータ伝送方法
JPH1097482A (ja) * 1996-09-19 1998-04-14 Fuji Electric Co Ltd 計算機システム

Also Published As

Publication number Publication date
CN101300796B (zh) 2011-05-18
US20070112963A1 (en) 2007-05-17
IL191329A (en) 2013-10-31
BRPI0618776A2 (pt) 2011-03-15
EP1952589A1 (en) 2008-08-06
DE602006009697D1 (de) 2009-11-19
CN101300796A (zh) 2008-11-05
ATE445276T1 (de) 2009-10-15
JP4653225B2 (ja) 2011-03-16
WO2007057284A1 (en) 2007-05-24
EP1952589B1 (en) 2009-10-07

Similar Documents

Publication Publication Date Title
JP4653225B2 (ja) 複数のサーバのクラスタにおけるコーディネータ・サーバにおいて実行される方法、複数のサーバのクラスタに加入することを望む新しいサーバにおいて実行される方法およびコンピュータ・プログラム
US9176784B2 (en) Load balancing
US7519730B2 (en) Copying chat data from a chat session already active
US6236658B1 (en) Method and apparatus for message routing, including a content addressable memory
US7793140B2 (en) Method and system for handling failover in a distributed environment that uses session affinity
US20130159487A1 (en) Migration of Virtual IP Addresses in a Failover Cluster
US20070041328A1 (en) Devices and methods of using link status to determine node availability
US20130262681A1 (en) Apparatus and method for providing service availability to a user via selection of data centers for the user
JP2004524602A (ja) ピアツーピア環境においてキャッシュされた資源間における資源の相同性
CN111064804B (zh) 网络访问方法和装置
US8825877B2 (en) Session persistence
CN109981768B (zh) 分布式网络存储系统中的io多路径规划方法及设备
US10153986B2 (en) Port monitoring system
US8832215B2 (en) Load-balancing in replication engine of directory server
CN106936662A (zh) 一种实现心跳机制的方法、装置及系统
CN112367257B (zh) 路由通告方法及装置
US6553421B1 (en) Method and system for broadcast management in a data communication network that permits namesharing
RU2008121872A (ru) Ближайший узел для соединений распределенных служб
US11405325B2 (en) In-band-telemetry-based path MTU size determination system
CN115190062B (zh) 业务处理方法及装置、电子设备和计算机可读存储介质
US20110145374A1 (en) Communication system for supporting communication between distributed modules in distributed communication network and communication method using the same
WO2019214208A1 (zh) 即时通讯系统中的数据处理方法、装置、介质和计算设备
WO2021258861A1 (zh) 一种作业处理方法以及相关设备
US10862849B2 (en) Address resolution system
US8412817B1 (en) Load balancing voicemail server system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090821

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20100721

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20100803

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101112

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101216

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees