JP5015965B2 - サーバ管理システムおよび方法 - Google Patents

サーバ管理システムおよび方法 Download PDF

Info

Publication number
JP5015965B2
JP5015965B2 JP2008555276A JP2008555276A JP5015965B2 JP 5015965 B2 JP5015965 B2 JP 5015965B2 JP 2008555276 A JP2008555276 A JP 2008555276A JP 2008555276 A JP2008555276 A JP 2008555276A JP 5015965 B2 JP5015965 B2 JP 5015965B2
Authority
JP
Japan
Prior art keywords
server
query
processing
servers
user
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
JP2008555276A
Other languages
English (en)
Other versions
JP2009527056A (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
Priority claimed from US11/355,327 external-priority patent/US7979460B2/en
Application filed by ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー filed Critical ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー
Publication of JP2009527056A publication Critical patent/JP2009527056A/ja
Application granted granted Critical
Publication of JP5015965B2 publication Critical patent/JP5015965B2/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
    • 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
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers 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/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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/964Database arrangement
    • Y10S707/966Distributed

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、概してコンピュータネットワークに関し、特に、ネットワークサーバの平衡(balancing)と冗長性(redundancy)に関する。
[従来技術の説明]
図1は、従来技術によるネットワークサーバ管理に対するアプローチのための単純化されたアーキテクチャ100を示す。三つのサーバが示されている。サーバ110は、データベースの第1のセグメントを含み、サーバ120は、そのデータベースの第2のセグメントを含み、サーバ130は、その同じデータベースの第3のセグメントを含む。図1にはまた、ユーザ150〜170と、三つのサーバのうち特定のクエリに対して応答する責任のある一のサーバとの間で、情報を転送する責任を負う通信ネットワーク140も示されている。
図1に示される従来技術におけるサーバ管理に対するアプローチは、いくつかの欠点を有している。
第1に、図1のデータベース全体は、三つの別々のサーバ間で分割されている。どの一のサーバもデータベース全体を含んでおらず、また、サーバ間で、データベースのセグメントが重複することもない。例えば電話帳データベースの場合、サーバA(110)は、AからHまでのエントリを含み、サーバB(120)は、IからQまでのエントリを含み、サーバC(130)は、RからZまでのエントリを含んでもよい。その結果、図1に示される三つのサーバのうちの一つに遅延または障害が起きた場合、ネットワーク内の他のサーバは要求されたデータを有していないため、その障害が起きたサーバの代わりに応答することができない。これにより、クエリ群に対するいくつかの応答が遅延したり、処理されなかったりする。
第2に、たとえ図1に描かれるネットワーク内の全てのサーバが要求されるデータを格納しており、また全てのクエリを受信するとしても、一のサーバが、あるクエリを処理する責任を有する他のサーバが実際にそのクエリを処理しているのか、モニタするメカニズムがない。この結果、ある一のサーバが、他のサーバにおいてクエリが処理されていると誤認したために、その一のサーバに用可能な処理機能があっても利用されないかもしれない。
第3に、図1に説明されている従来のアーキテクチャは、拡大縮小可能(スケーラブル)ではない。サーバについての制限(例えば、プロセッサのスピードや、記憶装置の容量など)が、一のサーバが処理することのできるクエリの数を決定づける。さらなる情報を格納するために、また、さらなるクエリを処理して格納するために、追加サーバを導入する際には、ネットワーク全体をシャットダウンしなければならない。しばしば、既存サーバ間でデータを再配置するために、さらなる休止時間(ダウンタイム)が課せられる。よって、図1に示される従来技術のアーキテクチャによって証明されるように、サーバ管理のための、より改良されたシステムおよび方法に対する需要が存在する。
[発明の概要]
本発明は、サーバ管理のためのシステムまたは方法例を提供する。このシステムのある例は、複数のサーバを備え、各サーバは、データベースにアクセスする機能を有する。通信ネットワーク例によって、そのネットワーク内で、全てのサーバをクエリが受信することが可能となる。ルックアップテーブルは、そのネットワーク内で、ある特定のクエリを処理するサーバを特定する。一方、このシステムの別の実施形態は、そのネットワークサーバの作業量負荷を監視し、再平衡化(rebalancing)するためのプログラムロジックコントローラを備えることを特徴とする。
サーバ管理方法の一例は、データベースの複製(あるいはその一部)を各ネットワークサーバにインストールするステップと、全てのサーバで全てのクエリを受け取るステップと、ルックアップテーブルの指示に従ってクエリを処理するステップとを備える。
クエリ処理方法の一例は、クエリをネットワークに送出するステップと、そのネットワーク内のそれぞれのサーバにそのクエリを送信するステップと、各サーバが、ネットワーク内の、その特定のクエリを処理する第1の責任を有するサーバを、ルックアップテーブルで検索するステップとを備える。ネットワーク内のクエリの処理は、全てのネットワークサーバによって、モニタされる。クエリ結果はユーザに送信されてもよく、それにより、処理が完了する。
サーバの作業負荷を再平衡化する方法の一例は、ネットワークの全体のクエリ応答率を決定するステップと、そのネットワークの全体のクエリ応答率を、目標とする(target)全体のクエリ応答率と比較するステップと、そのネットワーク内の各サーバについて、クエリ応答率を決定するステップと、そのネットワーク内の全てのサーバについて、クエリ応答率を比較するステップと、を含む。この方法に基づいて、一以上のデータセグメントに対する第1の責任を、そのネットワーク内で比較的低いクエリ応答率を有するサーバから、そのネットワーク内で比較的速いネットワーク応答率を有するサーバへと、移動することが可能となる。この方法は、マニュアルで、または任意の(オプショナル)プログラムロジックコントローラの支援によって、実行可能である。サーバの作業量が再平衡化されなかった場合のために、本発明のさらなる実施例は、ネットワークに追加サーバを導入する方法を含む。
追加サーバをネットワーク内に導入する方法の一例は、ネットワーク内に存在するサーバによって用いられているデータベースの複製(またはその一部)を、追加サーバにインストールするステップと、追加サーバが全てのクエリを受信するように追加サーバを構成するステップと、追加サーバ内に常駐する、あるいは追加サーバによってアクセス可能なルックアップテーブルをそのネットワークにインストールするステップと、を備える。また別の実施形態は、追加サーバがネットワーク内におけるクエリの処理をモニタするように、追加サーバを構成するステップを含む。
従来技術による、非スケーラブルで、重複がなく、障害が起こりやすいネットワークサーバ管理手法の単純化されたアーキテクチャを示す図である。
スケーラブルで、重複があり、信頼性のあるサーバネットワークを実装可能なネットワークアーキテクチャの一例を示す図である。
本発明の一実施形態にかかるルックアップテーブルの例を示す図である。
サーバ間の作業負荷を平衡化するシナリオの一例にかかるルックアップテーブルの例である。
ネットワークにサーバを追加することによって、サーバ間の作業負荷を再平衡化するシナリオの一例にかかるルックアップテーブルの例である。
本発明の様々な実施形態にかかる方法であって、スケーラブルで、重複があり、信頼性のあるサーバネットークを構築するための方法の一例を示すフローチャートである。
本発明の様々な実施形態にかかる方法であって、スケーラブルで、重複があり、信頼性のあるサーバネットワークにおいてクエリを処理するための方法の一例を示すフローチャートである。
本発明の様々な実施形態にかかる方法であって、マニュアルで、またはプログラムロジックコントローラの使用によって、ネットワークサーバの作業負荷を再平衡化する方法の一例を示すフローチャートである。
本発明の様々な実施形態にかかる方法であって、追加サーバを導入することによって、ネットワークサーバ作業負荷を再平衡化する方法の一例を示すフローチャートである。
[詳細な説明]
図2を参照して、本発明の様々な実施形態を実装可能なネットワークアーキテクチャ例200について説明する。ネットワークアーキテクチャ例200は、オプショナルプログラムロジックコントローラ202と、オプショナルマスタデータベース204と、ルックアップテーブル300(図3)とを含む。オプショナル通信リンケージ206、サーバ208〜218、通信ネットワーク220もまた、図2に示されるネットワークアーキテクチャ例を構成する。本発明のいくつかの実施形態においては、サーバ208〜218はそれぞれ、一以上のクロック、かつ/または、その他のタイミング装置を含む。これらは、互いに同期を保ち、または、原始時計のような、定期的に通信ネットワーク220を通して共有標準時計を参照するクロックやタイミング装置に基づいて、同期を保つ。結局の所、以下で詳しく説明するように、クエリを処理(例えば、応答)のために第2のサーバに受け渡す前に、そのクエリを第1のサーバでタイミングよく処理するためには、ある種のタイミング手段(例えばクロック、タイマなど)は必要である。
ある種のタイミング装置は、他のものよりも、特定の構成によりよく適合するかもしれない(必ずしも、その他のタイミング装置が、その特定の構成に実装されることを防止する必要はないとしても)。例えば、あるクロックは、(以下で述べるように)共有クエリ資源(リソース)によりよく適合するかもしれない。これに対して、ネットワークアーキテクチャ例200に配信される個々のクエリに応答するためには、ある単純なタイマが、最適かもしれない。
図2に置いて、クエリは、ユーザ150〜170によって生成され、(以下で詳しく説明されるように)通信ネットワーク220を通じてサーバ208〜218に通信される。ある一の実施例においては、通信ネットワーク220は、マルチキャストまたはブロードキャストの手法を用いて、クエリをサーバに通信する。この実施例においては、すべてのサーバが、全てのクエリを受け取る。クエリは、特に、計算の要求や演算の要求、特定の値や他の情報の決定の要求を含んでもよい。クエリはまた、情報の報告(リターン)要求を含んでもよい。ここで報告すべき情報は、前述の値や他の情報をも含んでもよい。この他の実施例においては、他の有線または無線メカニズムにより、全てのクエリが全てのサーバに送信される。さらに別の実施形態においては、クエリまたはクエリの通知が、ネットワークを構成するサーバの一部(サブセット)に通信される。この実施形態においては、ある特定のクエリの処理やバックアップについて責任を有さないサーバは、そのクエリを受信しない。さらに本発明の他の実施形態においては、クエリは共有資源(リソース)に保持されてもよい。その共有リソースは、未処理(outstanding)クエリのリストを備え、前述のサーバのネットワークにより、モニタかつ/またはアクセスされうる。この共有リソースは、中間(intermediate)サーバ、ある種の待ち行列メカニズム(例えば、ルータなど)、メモリバッファ、その他のクエリリストまたは実際のクエリそのものを保持する手段であってよい。
通信ネットワーク220によって、ネットワークアーキテクチャ例200の各サーバは、そのネットワーク内における他のサーバによるクエリの処理をモニタすることができる。例えば、クエリへの返信は、ネットワーク200を介してマルチキャストまたはブロードキャストされてもよい。別の実施形態においては、例えば、オプショナル通信リンケージ206などの、他の形のサーバピアモニタリング(server peer monitoring)が用いられる。またさらに他の実施形態においては、ネットワークを構成するサーバの一部(サブセット)が、ピアサーバによってモニタされる。ここでは、ある特定のクエリを処理する責任を負わないサーバは、モニタされない。
ある実施形態においては、サーバ208〜218はそれぞれ、データベース全体またはデータベースの複製を含む。各データベースまたはデータベースの複製の内容は、実質的に同一であってもよく、あるいは、幾つかのデータのセグメントが除かれていてもよい。本発明の別の実施形態は、ネットワーク内の全てのサーバによってアクセス可能であるオプショナルマスタデータベース204を含む。オプショナルマスタデータベース204は、各サーバにインストールされるデータベース全体またはデータベースの複製を代替するものであってもよく、またはこれらに追加されるものであってもよい。ネットワークアーキテクチャ例200においては、データベースまたはデータベースの複製は、全体として、ユーザ150〜170によって問い合わせられる情報を含む。データベースの例には例えば、電話帳、顧客データベース、製品あるいはサービスのカタログなどが含まれる。その他の内容のデータベースのカテゴリもまた、本発明の範囲に含まれる。本発明の他の実施形態においては、サーバ208〜218は、前述のクエリを処理し、かつ/または応答するように構成されてもよい(例えば、ある特定の計算要求に応答するために、必要なロジックを用いてプログラムされてもよい)。この構成は、前述のデータベースまたはデータベースの複製に追加されてもよく、またこれらを置き換えるものであってもよい。
各データベースまたはデータベースの複製は、一またはそれ以上の、データのセグメントであるデータセグメントを備える。幾つかの実施例においては、データのセグメントは、その基礎であるデータベースの特質に基づいて決定される。電話帳データベースを形成する26個のデータのセグメントは、例えば26個の英語のアルファベットによって表されてもよい。26個のサーバがそれぞれ、アルファベットの特定の文字に対応するクエリの処理に責任を持つ。例えば一のサーバは、文字「A」で始まる姓に対応するクエリを処理する第1の責任を割り当てられる。これに対して第2のサーバは、文字「B」で始まる姓に対応するクエリを処理する第1の責任を割り当てられる。同様にして、第3のサーバは、文字「C」で始まる姓に対応するクエリを処理する第1の責任を割り当てられる、などである。
別の実施形態においては、任意のデータセグメントの指定に基づいて、ネットワークの内の各サーバの責任が決定されてもよい。例えば幾つかの実施形態においては、データベースは、ネットワークを形成するサーバの数と同じ数の、同じサイズ(メガバイト)のデータにセグメント化されてもよい。また、データの特定のセグメントに対するクエリ頻度の平均または予測によって、あるいはデータの特定のセグメントに関する特定の処理の必要性に基づいて、セグメントの重み付けを決定するために、様々な方式が用いられてもよい。
ある実施例においては、データベース中のデータのセグメントは、マニュアルで、または自動で、ルックアップテーブル(図3)によって目録化(catalogued)される。別の実施形態においては、オプショナルプログラムロジックコントローラ202が、データベースを、最適化したデータのセグメントに分割してもよい。最適化したデータのセグメントは、自動で更新され、ルックアップテーブル300に反映される。サーバネットワークのある実施形態においては、オプショナルプログラムロジックコントローラ202は、サーバの利用率(usage)の変化、サーバの記憶装置(storage)の容量、クエリの頻度などのファクタに基づいて、サーバの作業負荷をモニタし、平衡化(balance)させ、かつ/または再平衡化(rebalance)させる。
図3には、ルックアップテーブル300の例が示される。本発明のいくつかの実施形態においては、ルックアップテーブル300のようなルックアップテーブルが、ネットワークサーバによるクエリの処理を指示する。ルックアップテーブル300内の列やヘッダは、説明の目的のために示されており、特定のデータ構造や形式に関して制限を課すことを意図するものではない。
ルックアップテーブル300においては、サーバ208〜218(図2)が列310において特定されている。本発明の幾つかの実施形態においては、これらのサーバのそれぞれが、ルックアップテーブル300の複製を含む。また別の実施形態においては、サーバは、集中化された(centralized)ルックアップテーブルにアクセス可能である。
ルックアップテーブル300の列320において、それぞれのサーバにインストールされているデータのセグメントが指定されている。図2において説明されているネットワークアーキテクチャにおいては、ルックアップテーブル300は、データセグメント1〜6を含むデータベース全体が、サーバ208〜218にインストールされていることを示す。
実施例においては、ネットワーク内の各サーバは、1以上のユニークなデータセグメントに割り当てられる。ネットワーク内の各サーバに割り振られたそれぞれのユニークなデータセグメントは、まとめると(collectively)、データベース全体を含む。データベースのユニークな部分、すなわちユニークなデータセグメントは、その特定のサーバが処理すべき責任(responsibility)を表す。すなわち、そのサーバのユニークなデータセグメントに置かれている(located)情報に対する問い合わせ(クエリ)が、ネットワーク内の全てのサーバに通信されたとき、その特定のサーバが処理をする責任を有する。ネットワークの全てのサーバに通信されたクエリに応えて、その要求された情報を含むデータセグメントについて責任を有する特定のサーバは、そのクエリを処理するための所定量の時間を割り当てられる。その間、他のサーバはその処理をモニタする。従って、あるクエリの処理について第1に責任を有するサーバは、そのサーバのユニークなデータセグメント内に置かれた情報に対するクエリを処理する第1の責任を有するものと見なされる。
ネットワーク内の各サーバについての第1の責任は、ルックアップテーブル300の列330に特定されている。図3に示されるように、サーバ208は、データセグメント1に対する第1の責任を割り当てられている。サーバ210は、データセグメント2に対する第1の責任を割り当てられている。サーバ212は、データセグメント3に対する第1の責任を割り当てられている。サーバ214は、データセグメント4に対する第1の責任を割り当てられている。サーバ216は、データセグメント5に対する第1の責任を割り当てられている。サーバ218は、データセグメント6に対する第1の責任を割り当てられている。
ルックアップテーブル300において、列340に示されるように、各サーバは、割り当てられた第1の責任(例えば、クエリに対する応答)を完了するために100ミリ秒を割り当てられている。ルックアップテーブル300はまた、列370に反映されているように、第2のクエリの始動のために割り振られた時間をも含む。第1の責任を割り当てられたある特定のサーバが、その割り当てられた時間内に、特定のクエリを処理し、または応答をすることができなかった場合、第2の責任を有するサーバに対して、そのクエリを始動するためのある特別の時間が割り当てられる。例えば、サーバ208が、データセグメント1(このデータセグメントに対して、サーバ208は、第1の責任を割り当てられている)についてのクエリに対して、100ミリ秒以内に応答することができなかった場合、サーバ208に割り当てられた第1の応答時間の満了の後に(例えば、列360に反映されるように、101ミリ秒に)、サーバ210は、その同じクエリの処理を始動する。本発明の幾つかの実施形態においては、第2のクエリ始動時間(列370)を必然的に割り当てなくともよい。それによると、クエリに対する応答がなかった場合、第2のサーバは、単純に、割り当てられた第1のクエリ応答時間(列340)の満了と共に、処理の責任を引き受ける。
ルックアップテーブル300においては、列360に反映されているように、サーバ208は、データセグメント6に対する第2の責任を割り当てられており、サーバ210は、データセグメント1に対する第2の責任を割り当てられており、サーバ212は、データセグメント2に対する第2の責任を割り当てられており、サーバ214は、データセグメント3に対する第2の責任を割り当てられており、サーバ216は、データセグメント4に対する第2の責任を割り当てられており、サーバ218は、データセグメント5に対する第2の責任を割り当てられている。実施例においては、データの特定のセグメントに対するクエリについての第2の責任は、データの同じセグメントに対して第1の責任を有するサーバと同じサーバには割り当てられていない。サーバの遅延や障害が起きた際のネットワークの信頼性を高めるためである。すなわち、一のサーバの遅延または障害によって、第2のサーバの、介入(step−in)し、ある特定のクエリに応答する機能が、反対に損なわれてはならない。
ルックアップテーブル300において列350に反映されるように、サーバネットワーク例は、2重の冗長性(redundancy)を持って動作(operate)している。望ましい冗長性レベルによって、そのサーバネットワークが2重の冗長性を持って動作していることが示される場合、第3の責任を有する第3のサーバが、第1のサーバおよび第2のサーバによって処理し損われたクエリの処理を試みるだろう。
ルックアップテーブル例300に示されるように、2重の冗長性で作動しているサーバネットワークには、第3の責任とそれぞれのクエリ始動時間が割り当てられる。実施例においては、データの特定のセグメントに対するクエリについての第3の責任は、そのデータの同じセグメントに対する第2の責任を有するサーバと同じサーバには割り当てられていない。2重の冗長性は、2つのサーバに障害が発生している場合に、ネットワークの信頼性とパフォーマンスを高める。その理由は、第3のサーバが、そのサーバが第3の責任を有するデータセグメントに対するクエリに介入し、処理することが可能であるからである。
本発明の幾つかの実施例においては、ネットワークアーキテクチャ例200に示されるように、サーバ208〜218のそれぞれに格納されたデータベースまたはデータベースの複製に加えて、オプショナルマスタデータベース204が存在することにより、さらなるフェールセーフメカニズムが提供される。特定のクエリに対して割り当てられた責任を有する各サーバ(すなわち、第1、第2、第3などの)が、その割り当てられた責任を、割り当てられた時間内に処理できなかった場合に、このデータベースはアクセスされうる。オプショナルマスタデータベース204を含むサーバが機能し続けることを前提とすると、そのようなネットワークにおいては、未処理クエリは存在しない。なぜなら、オプショナルマスタデータベース204を含むサーバが介入し、クエリを処理するためである。これに代えて、ネットワーク内の他の機能しているサーバが、必要なデータを獲得し、処理し、配信するために、オプショナルマスタデータベース204にアクセスしてもよい。
図4には、サーバ負荷の平衡化のシナリオの一例によるルックアップテーブルの例が示される。サーバの責任について、かつ/または、格納されるデータベースについて、平衡化、かつ/または再平衡化が必要である理由をほんの幾つかを並べると、クエリ応答時間、サーバ利用率、格納されるデータ量、クエリ頻度などがある。クエリ応答時間、サーバ利用率、格納されるデータ量、かつ/またはクエリ頻度をモニタし、また、サーバネットワークを自動的に再平衡化するために、オプショナルプログラムロジックコントローラ202(図2)を用いることもできる。いくつかの実施形態においては、これらの調整はマニュアルで行われる。どちらの場合においても、クエリ応答時間の増加が、サーバネットワークが再平衡化を必要としていることの、最初の兆候であるかもしれない。サーバネットワークを平衡化、かつ/または再平衡化させるための一の方法は、ルックアップテーブル例400によって説明される。ルックアップテーブル例400においては、各サーバのデータベースを構成するデータセグメントを選択的にインストールすることによって、余分なサーバの記憶容量が作り出される。
ルックアップテーブル400に含まれる情報のカテゴリは、ルックアップテーブル例
300(図3)に含まれる情報のカテゴリと同様である。ただし、列420は、ネットワーク内の各サーバが、そのデータベース全体の複製は有していないことを反映している。ルックアップテーブル例300に示される説明的なネットワークとは異なり、列420に示される、サーバにインストールされたデータセグメントは、数セグメントのデータが除かれたものである。
ルックアップテーブル例400の列420に示されているように、データセグメント1−2と4−6は、サーバ208にインストールされる。データセグメント3は、サーバ208のデータベースからは除かれる。列330に示されるように、サーバ208は、データセグメント1に対する第1の責任を割り当てられる。サーバ208はまた、データセグメント6に対する第2の責任を割り当てられ(列360)、データセグメント5に対する第3の責任を割り当てられる(列380)。
これらに加えて、列420に示されるように、データセグメント1−3と5−6が、サーバ210にインストールされる。データセグメント1−4と6は、サーバ212にインストールされる。データセグメント1−5は、サーバ214にインストールされる。データセグメント2−6は、サーバ216にインストールされる。データセグメント1と3−6は、サーバ218にインストールされる。
ルックアップテーブル400例に示されるサーバ負荷の平衡化または再平衡化のシナリオ例は、図2および図3に示されるネットワーク例に適用することができる。その結果、サーバ1つの記憶容量に等しい6個のデータセグメントを節減することができる。図4の列350に示されるように、サーバ負荷の平衡化、かつ/または再平衡化のシナリオ例においては、ネットワークの冗長性率は、2重に保たれる。以下で、図7に関連して述べるように、応答時間が遅くなっているサーバから転送されたデータセグメントを格納するために、余分なサーバの記憶容量を使うことができる。
図5は、ネットワークにサーバを追加することによって、サーバの作業負荷を再平衡させるシナリオ例にかかるルックアップテーブルの例を示す。ルックアップテーブル500に含まれる情報のカテゴリは、ルックアップテーブル例300に含まれる情報のカテゴリのと同様であるが、サーバの導入前(列530及び列570)とサーバの導入後(列540及び列580)との比較が示されていることのみ異なる。
図5に示されるように、追加サーバ導入のプロセス全体に渡って、各サーバにインストールされているデータベースは、同じであり続ける。これに対して、ネットワークサーバの数と、その責任(すなわち、第1、第2、第3、など)は、変更される。ルックアップテーブル例500の列520には、サーバ208〜218がそれぞれ、データセグメント1−50を備えるデータベースを包含することが示されている。サーバの導入を開始する前に、データセグメント1−50は、(「新」と称される)追加のサーバに、インストールされている。各サーバが、同じデータセグメントを備えるデータベースを含むため、「新」サーバが、ネットワークに付け加えられている間も、ネットワークは動作しつづけることができる。すなわち、ネットワークの動作の継続性は、どの一のサーバにも依存することはない。「新」サーバがネットワークに接続されるとき、サーバ導入前の設定(列530および570)は、サーバ導入後の設定(列540及び580)によって置き換えられ、ネットワークは、中断されることなく動作し続ける。
追加サーバの導入により、サーバ負荷再平衡化を実行する例として、ルックアップテーブル例500において、「新」サーバの導入前には、サーバ208と、サーバ210と、サーバ212と、サーバ214とは、それぞれ、受け入れがたいほど遅いスピードでクエリを処理していたと仮定されたい。さらに、サーバ216は、許容可能なスピードでクエリを処理しており、サーバ218は、最大のスピードでクエリを処理していたと仮定されたい。列560に示されるように、ネットワークは、1重(single)の冗長性の率すなわち冗長性レベルにおいて動作している。
図8に関連して述べる方法例に基づいてサーバ負荷を再平衡化することにより、サーバ208は、データセグメント7−8(列530)に対する第1の責任をサーバ210(列540)に移動せしめ、サーバ210は、データセグメント14−17(列530)に対する第1の責任をサーバ212(列540)に移動せしめ、サーバ212は、データセグメント21−26(列530)に対する第1の責任を「新」サーバ(列540)に移動せしめる。同様に、サーバの負荷の再平衡化によって、サーバ214の、データセグメント27(列530)に対する第1の責任が「新」サーバ(列540)に移動され、データセグメント35−36(列530)に対する第1の責任が、サーバ216(列540)に移動される。最後に、サーバ216は、データセグメント42−43(列530)に対する第1の責任をサーバ218(列540)に移動せしめる。
導入前(列530)と導入後(列540)の各ネットワークサーバに対するデータセグメントの数を比較することにより、以下のことが証明される。サーバ208に対する第1の責任は、2データセグメント分減少し、サーバ210に対する第1の責任は、2データセグメント分減少し、サーバ212に対する第1の責任は、2データセグメント分減少し、サーバ214に対する第1の責任は、3データセグメント分減少する。合計して、これらの四つのサーバの作業負荷は、9データセグメント分減少する。「新」サーバの導入後、サーバ216に対する第1の責任は変化せず、サーバ218に対する第1の責任は、2データセグメント分増加する。最後に、「新」サーバに対する第1の責任は、初期値として7データセグメントとされる(列540)。列560に示されるように、このネットワークは、1重の冗長性率で、動作しつづける。
図6には、本発明の様々なある実施形態にかかる、スケーラブルで、重複があり、耐障害性のあるサーバネットークを構築するための、ある方法のフローチャートの例が示されている。
ステップ602において、オプショナルプログラムロジックコントローラ202(図2)が、任意で、ネットワークアーキテクチャ例200(図2)の一部として、インストールされる。本サーバネットワークの実施例において、オプショナルプログラムロジックコントローラ202は、サーバの利用率と、サーバの記憶容量と、クエリの頻度とに一部もとづいて、サーバの作業負荷をモニタし、再平衡化する。オプショナルプログラムロジックコントローラ202により、例えば前述のような機能を自動化されることを通じて、ネットワークにおいてマニュアルでサーバをメンテナンスしたり、関連する装置をアップグレードしたり、購入したりする必要性が減少する。
ステップ604において、ネットワークアーキテクチャ例200の各サーバにデータベースがインストールされる。インストールされた各データベース、またはインストールされたデータベースの複製の内容は、実質的に同様であってもよく、または、幾つかのデータのセグメントが除かれていてもよい。データベースは例えば、電話帳、顧客データベース、製品かつ/またはサービスのカタログを含むが、これらに限定されるものではない。
ステップ606において、オプショナルマスタデータベース204(図2)が、サーバネットワークに任意でインストールされる。オプショナルマスタデータベース204へのアクセスが必要であると判明した場合には、オプショナルマスタデータベース204は、ネットワーク内の全てのサーバによって、アクセス可能である。
ステップ608において、ネットワークアーキテクチャ例200内のネットワークサーバは、全てのクエリを受信するように構成される。実施例において、通信ネットワーク220は、全てのサーバに全てのクエリを通信するために、マルチキャストまたはブロードキャストを用いる。これらの実施形態においては、全てのサーバが、全てのクエリを受ける。別の実施例においては、その他の、有線、かつ/または無線のメカニズムによって、全てのサーバに全てのクエリを通信される。さらに別の実施形態においては、クエリ、かつ/またはクエリの通知(notice of queries)は、ネットワークを構成するサーバのサブセットに通信される。ここでは、ある特定のクエリを処理する責任を負わないサーバは、そのクエリを受信しない。
ステップ610において、ルックアップテーブル300(図3)が、ネットワークアーキテクチャ例200を構成する各サーバ208〜218用にインストールされる。実施例においては、ルックアップテーブル300が、サーバのクエリ処理を指示する。ルックアップテーブル300は、サーバ208〜218に対して、局所的(local)に存在してもよく、また、遠隔(remote)に存在してもよい。
ステップ612において、ネットワークアーキテクチャ例200上のサーバ冗長レベルが構築されてもよい。サーバ冗長レベルは、サーバネットワークの障害に対する寛容性の関数である。サーバネットワーク障害に対する寛容性が少ないほど、サーバ冗長レベルは高くなる。例えば、時折のネットワーク障害を許容できるユーザは、図5に示されるように、一重の冗長レベルを構築するかもしれない。これに対して、時折のネットワーク障害をも許容できないユーザは、図4に示されるように、二重の冗長レベルを構築するかもしれない。1重の冗長レベルとは、ルックアップテーブル例300に示されるように、第1の責任を割り当てられたサーバが、割り当てられた時間内に割り当てられたクエリを処理することに失敗した場合に、同じデータのセグメントについて、第2の責任を負うその他のサーバが、そのクエリの処理を試みるということを意味する。2重の冗長レベルとは、第3の責任を割り当てられた第3のサーバが、第1および第2の責任を有するサーバによって処理されなかったクエリの処理を試みることを意味する。図2、図3および図5に示されるように、各ネットワークサーバにデータベース全体がインストールされると仮定すると、サーバネットワークの冗長レベルは、そのネットワーク上のサーバ(例えばサーバ208〜218)の数によってのみ、制限される。
ステップ614において、ネットワークアーキテクチャ例200を構成するサーバは、各クエリを受信した際に、ステップ610でインストールされたルックアップテーブルをチェックするように、構成される。実施例においては、ルックアップテーブル300が、各サーバにインストールされたデータセグメントを指定する。
ステップ616において、ネットワークアーキテクチャ例200を構成するサーバは、ルックアップテーブル300によってクエリを処理するように、構成される。本実施例において、ルックアップテーブル300は、各サーバに、その割り当てられた第1の責任を完了するために、100ミリ秒を割り当てる。
ステップ618において、ネットワークアーキテクチャ例200を構成するサーバは、そのネットワーク内の他のサーバによるクエリの処理をモニタするように、構成される。実施例においては、通信ネットワーク220により、ネットワークアーキテクチャ例200内の各サーバが、そのネットワーク内の他のサーバによるクエリ処理をモニタすることが可能となる。例えば、そのクエリに対する返答がブロードキャストまたはマルチキャストされるのを、「聞く」事により、モニタすることが可能である。この他の実施形態においては、オプショナル通信リンケージ206のような、サーバピアモニタリングの他の形式が用いられる。さらに別の実施形態においては、ネットワークを構成するサーバのサブセットが、各ピアサーバ(peer server)により、モニタされる。ここでは、特定のクエリを処理する責任のないサーバは、モニタされない。
ステップ620において、ネットワークアーキテクチャ例200を構成するサーバは、クエリ結果をユーザに送信するように、構成される。
ステップ622において、ネットワークアーキテクチャ例200を構成するサーバは、ユーザへのクエリ結果の送信の際に、リセットするように構成される。すなわち、現在(present)の応答時間は、”0”にリセットされる。
図7には、ネットワークアーキテクチャ例200(図2)におけるクエリ処理方法の例のためのフローチャートが示されている。
ステップ710において、クエリがネットワークアーキテクチャ例200に送出される。電話帳データベースのためのサーバネットワークの場合、ユーザ150(図2)が、例えば、ジョーンズという姓の人物に対応する住所を問い合わせるクエリを送出する。
ステップ720において、送出されたクエリは、ネットワークサーバへと通信される。ここでは、ジョーンズという姓の人物に対応する住所に関するクエリは、通信ネットワーク220(図2)を介して、ネットワークアーキテクチャ例200内のすべてのサーバに、マルチキャストされる。
ステップ730において、ルックアップテーブルの参照結果に基づいて、送出されたクエリを処理する第1の責任を有するサーバのIDが、決定される。ここで、電話帳データベースのクエリ用のルックアップテーブルには、(それぞれがアルファベットの文字に対応する)26個のサーバのうちの10番目のサーバには、文字Jで始まる姓に対応するクエリの処理について第1の責任が割り当てられていることが反映されている。従って、サーバ10が、ジョーンズの住所のために、そのデータセグメントへ問い合わせる(querying)第1の責任を有する。
ステップ740において、送出されたクエリが、第1の責任を有するサーバによって処理される(または、処理しようと試みられる)。この特定の場合においては、サーバ10が、ジョーンズに対応する住所についてのクエリを処理する。
ステップ750において、送出されたクエリの、第1の責任を有するサーバによる処理が、そのネットワーク内の他のサーバによって、モニタされる。実施例においては、通信ネットワーク220によって、ネットワークアーキテクチャ例200内の各サーバによるモニタが可能となる。例えば、クエリへの応答であるマルチキャストまたはブロードキャストを、ネットワークアーキテクチャ例200内の各サーバが聞くことによって、ネットワーク内の他のサーバのクエリ処理をモニタすることができる。別の実施形態においては、例えばオプショナル通信リンケージ206を用いる形式のような、その他のサーバモニタピアリングの形式が用いられる。さらに別の実施形態においては、ネットワークを構成するサーバのサブセットが、ピアサーバによってモニタされる。ここでは、特定のクエリを処理する責任を有さないサーバはモニタされない。この特定の例においては、電話帳データベースのためのサーバネットワークを構成する26個のサーバのうちの25個のサーバが、サーバ10による、ジョーンズに対応する住所についての処理をモニタする。
ステップ760において、割り当てられた時間内に、送出されたクエリが処理されたか否か決定される。ルックアップテーブル300(図3)を参照すると、各サーバは、そのサーバに割り当てられた第1の責任を実行し終えるために、100ミリ秒を割り当てられている。この特定の例において、サーバ10は、100ミリ秒以内に、ジョーンズに対応する住所は、「カルフォルニア パロ・アルト ゲングロード2200」であることを決定した。
ステップ770において、あるクエリについて第1の責任を有するサーバによって、(例えばサーバの遅延や障害によって)そのサーバに割り当てられた時間内に割り当てられたクエリが処理されなかった場合、ステップ730に関連して述べた方法に基づいて、第2の責任を有するサーバが決定される。それから、第2の責任を有するサーバが、ステップ740から750において説明されたように、クエリを処理する。その他の予備(バックアップ)の、かつ/または補助的(secondary)なサーバは、クエリがステップ760に置いて適時に処理されたことを示す徴候(indication)を待ちつづける。
ステップ780において、例えばマルチキャストやブロードキャストの手法によって、そのクエリを送出したユーザに、クエリ結果が転送される。この特定の例においては、ユーザ150(図2)は、通信ネットワーク220を介したマルチキャスト送信を通して、ジョーンズの住所を受信することになる。
ステップ790において、ネットワークサーバは、次のクエリに備えてリセットする。この特定の例においては、電話帳データベースを構成する26個のサーバは、次のクエリがユーザによって送出されるだろうことを予想して、現在の処理時間を0にリセットする。すなわち、ネットワークサーバは、新たなクエリの到着を待つ。ここで、特定のクエリに関する全体の処理時間は、その特定のクエリと、クエリ自身のタイムスタンプに対して相対的に開始する(すなわち、クエリが生成され、またはネットワークサーバによって受信されてからの全体の時間)。
図8を参照する。図8には、本発明の様々な実施形態にかかる、ネットワークサーバの作業負荷を評価し、再平衡化する方法の一例を示すフローチャートが示される。図8のすべてのステップは、マニュアルで、またはオプショナルプログラムロジックコントローラ202(図2)の支援によって、実行することができる。
ステップ810において、ネットワーク全体のクエリ応答率が決定される。例えば、ネットワークアーキテクチャ例200(図2)に送出された各クエリを処理するために要する時間の、24時間に渡る平均が、マニュアルで、またはオプショナルプログラムロジックコントローラ202(図2)によって、決定されてもよい。他の様々な時間または応答時間の尺度(measures)が用いられてもよい。
ステップ820において、ステップ810で決定されたネットワーク全体のクエリ応答率は、目標(ターゲット)とするネットワーク全体のクエリ応答率と比較される。例えば図7に関連して述べた電話帳データベースについて、その電話帳データベースに対して責任を有する特定の電話会社は、全てのクエリが平均して100秒以内に処理されるように要求することを決定するかもしれない。この比較は、サーバネットワークを、その構成要素であるサーバのパフォーマンスとは別個に評価することのできる手法の代表例である。
ステップ830において、個々のサーバのクエリ応答率が決定される。例えば、図2のサーバ208〜218がそれぞれ、ネットワークアーキテクチャ例200(図2)内に送出された各クエリを処理するために要する、24時間に渡る平均の時間が、マニュアルで、またはオプショナルプログラムロジックコントローラ202(図2)により、決定される。各クエリを処理するために要する平均の時間は、他の様々な時間または応答時間の尺度(measures)によって決定されてもよい。
ステップ840において、すべてのサーバの応答率が比較される。例えば図5に示され、ここで説明されている実施例においては、サーバ208、サーバ210、サーバ212、サーバ214の応答率は、サーバ216とサーバ218の応答率よりも遅かった。これは、サーバ208〜214がクエリの処理について第1の責任を有していたデータセグメントの数を、削減すべき理由があることを示していた。
ステップ850において、特定のデータセグメントについての第1の責任が、クエリ応答率が遅いサーバから、応答率が速いサーバへと受け渡される。例えば図5に関連して述べたように、サーバ208は、データセグメント7〜8(2個のデータセグメント)に関する第1の責任を、サーバ210に受け渡す。サーバ210は、データセグメント14〜17(4個のデータセグメント)に関する第1の責任を、サーバ212に受け渡す。
ステップ860において、ネットワーク全体のクエリ応答率が、ステップ810に関して述べたのと同様の方法で再決定される。
ステップ870において、ステップ860で決定されたネットワーク全体のクエリ応答率を、目標とするネットワーク全体の応答率と、再び比較する。
ステップ880において、再平衡化されたサーバネットワークのパフォーマンスが、目標とするネットワーク応答率に対して、好適であるか否か、決定される。再平衡化されたサーバネットワークのパフォーマンスが、要求を満たすものである場合、ステップ810に関して述べたように、ネットワーク全体のクエリ応答率は、定期的に再決定されてもよい。再平衡化されたサーバネットワークのパフォーマンスが、要求を満たさないときには、ステップ890への着手が必要とされる場合がある。
ステップ890において、図9に示す方法例に関して述べるように、サーバネットワークに追加サーバが導入される。
図9は、追加サーバの導入によって、ネットワークサーバ負荷を再平衡化する方法の例のフローチャートを示す。
ステップ902において、既存のサーバネットワーク内において用いられているデータベースに対応するデータベースまたはデータベースの複製が、追加サーバにインストールされる。
ステップ904において、オプショナルマスタデータベース204(図2)を、ネットワークに加えられた新たなサーバによってアクセス可能であるように設定する。このオプショナルマスタデータベース204は、前もって、ネットワーク内の全てのサーバに関して、利用可能であるように設定されていてもよい。
ステップ906において、サーバネットワークに送出された全てのクエリを受信するように、追加サーバが構成される。図2に示される例において、ユーザのクエリは、通信ネットワーク220(図2)を通じて、ネットワーク内の全てのサーバに宛てられる。また別の実施形態においては、クエリ、かつ/またはクエリの通知は、そのネットワークを構成するサーバのサブセットへと通信される。
ステップ908において、ルックアップテーブル例500(図5)のような、ルックアップテーブルが、追加サーバにインストールされるか、または追加サーバによってアクセス可能であるように設定される。ルックアップテーブル例500の列510に示されるように、ルックアップテーブルには、追加サーバの存在が反映されている。
ステップ910において、サーバネットワークへの追加サーバは、ステップ908で述べた修正ルックアップテーブルをチェックするように、構成される。
ステップ912において、ネットワークへの追加サーバは、クエリを処理するように、構成される。
ステップ914において、ネットワークへの追加サーバは、ネットワーク内の他のサーバによるクエリの処理をモニタするように構成される。
ステップ916において、ネットワークへの追加サーバは、ユーザに、クエリ結果を送信するように構成される。
ステップ918において、そのネットワークへの追加サーバは、ネットワークを通じて送出される次のクエリに備えて、現在の(present)応答時間をリセットするように、構成される。
以上、実施例を参照して本発明を説明した。本発明のより広い範囲を逸脱することなく、様々な修正が可能であること、また他の実施形態を用いることが可能であることは、当業者には理解されるところである。したがって、実施形態に関するこれらの、またこの他の変形例も、本発明の範囲に含まれることが意図されている。

Claims (13)

  1. 冗長サーバネットワークであって、
    複数のサーバを備え、該複数のサーバはそれぞれ、
    サーバにおけるクエリ処理中にアクセスされる一以上のセグメントを格納するデータベースの複製を含み、
    少なくとも前記データベースの一部について責任を割り当てられており、
    通信ネットワークに接続され、ユーザにより作成されたクエリを受信し、
    前記ユーザにより作成されたクエリをルックアップテーブルの記述に従って処理し、
    クエリ結果を前記ユーザによって作成されたクエリを出したユーザに送信し、
    前記複数のサーバはそれぞれ、前記クエリが正常に終了すると、次のユーザ作成クエリを処理するためにリセットされ、
    本冗長サーバネットワークはさらに、
    メモリに格納されるルックアップテーブルであって、ユーザによって作成され、前記複数のサーバの各々に通信されるクエリを受信した際のサーバにおけるクエリ処理を定義するためのルックアップテーブルを備え、該ルックアップテーブルは前記複数のサーバの各々からアクセス可能であり、該ルックアップテーブルは各サーバにユーザにより作成されたクエリを処理するための割当時間を割り当て、該ルックアップテーブルは前記複数のサーバに対して1重の冗長レベルを構築し、
    前記1重の冗長レベルは、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する主要な責任を割り当てられた第1のサーバであって、該ユーザにより作成されたクエリ処理について1番目の責任を負う第1のサーバと、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する二次的な責任を割り当てられた第2のサーバであって、前記第1のサーバをモニタする他のサーバが、割り当てられた時間内に前記クエリが処理されたことを検出しなかった場合に、前記ユーザにより作成されたクエリを処理するための2番目のサーバである第2のサーバと、を含む冗長サーバネットワーク。
  2. 前記ユーザにより作成されたクエリは、マルチキャスト送信によって前記複数のサーバの各々において受信される請求項1に記載の冗長サーバネットワーク。
  3. 前記ユーザにより作成されたクエリは、ブロードキャスト送信によって前記複数のサーバの各々において受信される請求項1に記載の冗長サーバネットワーク。
  4. 前記ユーザにより作成されたクエリの処理の終了をモニタするプログラムロジックコントローラをさらに備える請求項に記載の冗長サーバネットワーク。
  5. 前記第1のサーバに割り当てられた、前記ユーザにより作成されたクエリの処理に対する主要な責任と前記第2のサーバに割り当てられた、前記ユーザにより作成されたクエリの処理に対する二次的な責任とは異なる請求項に記載の冗長サーバネットワーク。
  6. 前記クエリは、クエリ結果の前記ユーザへの送信を要求する請求項1に記載の冗長サーバネットワーク。
  7. 前記クエリは、計算による特定の値の決定を要求する請求項1に記載の冗長サーバネットワーク。
  8. 前記クエリは、該通信ネットワークに接続された中間サーバを介して前記複数のサーバのそれぞれによって受信され、
    前記中間サーバは、前記ユーザにより作成されたクエリを処理する責任を負わない請求項1に記載の冗長サーバネットワーク。
  9. 前記中間サーバは、前記複数のサーバに分配するクエリの待ち行列を保持する請求項に記載の冗長サーバネットワーク。
  10. 複数のサーバーを含むサーバネットワークに、ユーザにより作成されたクエリの処理方法を提供させるプログラムであって、
    サーバネットワークが、前記複数のサーバのそれぞれによってアクセス可能なルックアップテーブルに基づいて、第1のサーバに、ユーザにより作成されたクエリの処理に対する主要な責任を割り当てるステップと、
    サーバネットワークが、前記複数のサーバのそれぞれによってアクセス可能なルックアップテーブルに基づいて、第2のサーバに、ユーザにより作成されたクエリの処理に対する二次的な責任を割り当てるステップと、
    サーバネットワークが、第1のサーバに、前記複数のサーバに接続された通信ネットワーク経由でユーザにより作成されたクエリを受信した際に該クエリの処理を実行するための時間を割り当てるステップと、
    記第1のサーバに前記ユーザにより作成されたクエリを処理するために割り当てられた時間が、該クエリが前記第1のサーバによって処理されることなく満了した場合、サーバネットワークが、ユーザにより作成されたクエリの処理に対する二次的な責任を有する第2のサーバに、ユーザにより作成されたクエリの処理を指示するステップと、
    を備え
    前記ユーザにより作成されたクエリの処理に対する主要な責任を割り当てられた第1のサーバは、ユーザにより作成されたクエリの処理に対して、1番目の責任を負うサーバであり、
    前記ユーザにより作成されたクエリを処理する二次的な責任を割り当てられた第2のサーバは、前記第1のサーバをモニタする他のサーバが前記割り当てられた時間内に前記クエリが処理されたことを検出しなかった場合に、前記ユーザにより作成されたクエリを処理するための2番目のサーバである方法を提供するプログラム。
  11. サーバの冗長ネットワークに新たなサーバを導入する方法であって、
    前記冗長ネットワーク内の既存の各サーバにインストールされているデータベースと同じデータベースであって、サーバにおけるクエリ処理中にアクセスされる一以上のセグメントを格納するデータベースを、前記新たなサーバにインストールするステップと、
    前記サーバの冗長ネットワークに送出されたユーザにより作成されたクエリの全てを受信するように、前記新たなサーバを構成するステップと、
    メモリに格納されるルックアップテーブルを介して、主要なおよび二次的な処理責任を前記新たなサーバに割り当てるステップとを備え
    前記ルックアップテーブルは、前記サーバの冗長ネットワーク内の各サーバからアクセス可能であり、各サーバにユーザにより作成されたクエリを処理するための割当時間を割り当て、該ルックアップテーブルは前記複数のサーバに対して1重の冗長レベルを構築し、
    前記1重の冗長レベルは、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する主要な責任を割り当てられた第1のサーバであって、該ユーザにより作成されたクエリ処理について1番目の責任を負う第1のサーバと、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する二次的な責任を割り当てられた第2のサーバであって、前記第1のサーバをモニタする他のサーバが前記割り当てられた時間内に前記クエリが処理されたことを検出しなかった場合に、前記ユーザにより作成されたクエリを処理するための2番目のサーバである第2のサーバと、を含む方法。
  12. ネットワーク内の複数のサーバ間の冗長性を構築する方法であって、
    前記複数のサーバそれぞれに、サーバにおけるクエリ処理中にアクセスされる一以上のセグメントを格納するデータベースの複製をインストールするステップと、
    前記複数のサーバの各々が、該複数のサーバの各々に通信されるユーザにより作成されたクエリを受信した際のサーバにおけるクエリ処理を定義するためのルックアップテーブルにアクセスするように構成するステップと、
    前記ルックアップテーブルの記述に従って、前記クエリを処理するステップとを備え、
    前記ルックアップテーブルは、メモリに格納され、前記複数のサーバの各々からアクセス可能であり、該ルックアップテーブルは各サーバにユーザにより作成されたクエリを処理するための割当時間を割り当て、該ルックアップテーブルは前記複数のサーバに対して1重の冗長レベルを構築し、
    前記1重の冗長レベルは、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する主要な責任を割り当てられた第1のサーバであって、該ユーザにより作成されたクエリ処理について1番目の責任を負う第1のサーバと、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する二次的な責任を割り当てられた第2のサーバであって、前記第1のサーバをモニタする他のサーバが前記割り当てられた時間内に前記クエリが処理されたことを検出しなかった場合に、前記ユーザにより作成されたクエリを処理するための2番目のサーバである第2のサーバと、を含む方法。
  13. ユーザにより作成されたクエリの処理方法であって、
    ネットワーク内の複数のサーバのそれぞれにおいてユーザにより作成されたクエリを受信するステップと、
    前記複数のサーバのそれぞれによりアクセス可能なルックアップテーブルによって定される通りに、前記複数のサーバのうちから、前記ユーザにより作成されたクエリを処理する主要な責任を有するサーバを特定するステップと、
    前記複数のサーバのうち、前記ルックアップテーブルによって、前記ユーザにより作成されたクエリを処理する主要な責任を有すると指定されたサーバにおいて、該クエリを処理するステップと、
    前期ルックアップテーブルによって、前記ユーザにより作成されたクエリを処理する主要な責任を有すると決定されたサーバにおける該ユーザにより作成されたクエリの処理を、モニタするステップとを備え
    前記ルックアップテーブルはメモリに格納され、該ルックアップテーブルは
    前記複数のサーバの各々にユーザにより作成されたクエリを処理するための割当時間を割り当て、該ルックアップテーブルは前記複数のサーバに対して1重の冗長レベルを構築し、
    前記1重の冗長レベルは、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する主要な責任を割り当てられた第1のサーバであって、該ユーザにより作成されたクエリ処理について1番目の責任を負う第1のサーバと、
    前記複数のサーバのうち、前記ユーザにより作成されたクエリを処理する二次的な責任を割り当てられた第2のサーバであって、前記第1のサーバをモニタする他のサーバが前記割り当てられた時間内に前記クエリが処理されたことを検出しなかった場合に、前記ユーザにより作成されたクエリを処理するための2番目のサーバである第2のサーバと、を含むクエリ処理方法。
JP2008555276A 2006-02-15 2007-02-05 サーバ管理システムおよび方法 Active JP5015965B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/355,327 2006-02-15
US11/355,327 US7979460B2 (en) 2006-02-15 2006-02-15 Systems and methods for server management
US11/367,174 2006-03-03
US11/367,174 US7716238B2 (en) 2006-02-15 2006-03-03 Systems and methods for server management
PCT/US2007/003258 WO2007097915A2 (en) 2006-02-15 2007-02-05 Systems and methods for server management

Publications (2)

Publication Number Publication Date
JP2009527056A JP2009527056A (ja) 2009-07-23
JP5015965B2 true JP5015965B2 (ja) 2012-09-05

Family

ID=38314133

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008555276A Active JP5015965B2 (ja) 2006-02-15 2007-02-05 サーバ管理システムおよび方法

Country Status (6)

Country Link
US (1) US7716238B2 (ja)
EP (1) EP1987454B1 (ja)
JP (1) JP5015965B2 (ja)
AT (1) ATE453898T1 (ja)
DE (1) DE602007004076D1 (ja)
WO (1) WO2007097915A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020198996A1 (en) 2000-03-16 2002-12-26 Padmanabhan Sreenivasan Flexible failover policies in high availability computing systems
US8458754B2 (en) 2001-01-22 2013-06-04 Sony Computer Entertainment Inc. Method and system for providing instant start multimedia content
US7979460B2 (en) 2006-02-15 2011-07-12 Sony Computer Entainment America Inc. Systems and methods for server management
US9483405B2 (en) 2007-09-20 2016-11-01 Sony Interactive Entertainment Inc. Simplified run-time program translation for emulating complex processor pipelines
US8126987B2 (en) 2009-11-16 2012-02-28 Sony Computer Entertainment Inc. Mediation of content-related services
US8433759B2 (en) 2010-05-24 2013-04-30 Sony Computer Entertainment America Llc Direction-conscious information sharing
US8641545B2 (en) * 2012-03-06 2014-02-04 Brunswick Bowling & Billiards Corporation Distributed scoring system
US9069833B2 (en) 2013-01-09 2015-06-30 International Business Machines Corporation Detecting data omissions for an intermittently-connected application
US10325032B2 (en) 2014-02-19 2019-06-18 Snowflake Inc. Resource provisioning systems and methods
JP6325995B2 (ja) * 2015-02-20 2018-05-16 日本電信電話株式会社 分散システム、負荷分散方法及びプログラム
CN106559822A (zh) * 2015-09-29 2017-04-05 中兴通讯股份有限公司 一种网络管理方法及应急系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187787B1 (en) * 1989-07-27 1996-05-07 Teknekron Software Systems Inc Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5339392A (en) * 1989-07-27 1994-08-16 Risberg Jeffrey S Apparatus and method for creation of a user definable video displayed document showing changes in real time data
JPH04271454A (ja) * 1991-02-27 1992-09-28 Toshiba Corp 疎結合計算機システム
JPH05128077A (ja) * 1991-11-06 1993-05-25 Hitachi Ltd 複数計算機システムの分散処理方法
US5504894A (en) * 1992-04-30 1996-04-02 International Business Machines Corporation Workload manager for achieving transaction class response time goals in a multiprocessing system
US6003030A (en) * 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US5864854A (en) * 1996-01-05 1999-01-26 Lsi Logic Corporation System and method for maintaining a shared cache look-up table
US5778187A (en) * 1996-05-09 1998-07-07 Netcast Communications Corp. Multicasting method and apparatus
US5867494A (en) * 1996-11-18 1999-02-02 Mci Communication Corporation System, method and article of manufacture with integrated video conferencing billing in a communication system architecture
US6421726B1 (en) 1997-03-14 2002-07-16 Akamai Technologies, Inc. System and method for selection and retrieval of diverse types of video data on a computer network
AU7149498A (en) 1997-04-25 1998-11-24 Symbios, Inc. Redundant server failover in networked environment
US6199110B1 (en) 1997-05-30 2001-03-06 Oracle Corporation Planned session termination for clients accessing a resource through a server
JP3901806B2 (ja) * 1997-09-25 2007-04-04 富士通株式会社 情報管理システム及び二次サーバ
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6263433B1 (en) * 1998-09-30 2001-07-17 Ncr Corporation Provision of continuous database service and scalable query performance using active redundant copies
US6625152B1 (en) * 1999-10-13 2003-09-23 Cisco Technology, Inc. Methods and apparatus for transferring data using a filter index
US6564336B1 (en) * 1999-12-29 2003-05-13 General Electric Company Fault tolerant database for picture archiving and communication systems
JP2004062603A (ja) * 2002-07-30 2004-02-26 Dainippon Printing Co Ltd 並列処理システム、サーバ、並列処理方法、プログラム、及び、記録媒体
JP3928505B2 (ja) * 2002-07-05 2007-06-13 株式会社デンソー 車両用通信システム

Also Published As

Publication number Publication date
EP1987454A2 (en) 2008-11-05
WO2007097915A3 (en) 2007-12-06
US20070198528A1 (en) 2007-08-23
US7716238B2 (en) 2010-05-11
WO2007097915A2 (en) 2007-08-30
JP2009527056A (ja) 2009-07-23
DE602007004076D1 (de) 2010-02-11
ATE453898T1 (de) 2010-01-15
EP1987454B1 (en) 2009-12-30

Similar Documents

Publication Publication Date Title
JP5015965B2 (ja) サーバ管理システムおよび方法
US8732162B2 (en) Systems and methods for server management
EP2171593B1 (en) Shared data center disaster recovery systems and methods
US9888062B2 (en) Distributed storage system including a plurality of proxy servers and method for managing objects
EP2904763B1 (en) Load-balancing access to replicated databases
US6938031B1 (en) System and method for accessing information in a replicated database
EP1776639B1 (en) Disk mirror architecture for database appliance with locally balanced regeneration
KR101585146B1 (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US20070061379A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
US9201747B2 (en) Real time database system
US20090049054A1 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
CN102253869A (zh) 可缩放的容错元数据服务
EP1399836A2 (en) Continuous availability updating of multiple memories
WO2012127526A1 (en) File server system and storage control method
US7000016B1 (en) System and method for multi-site clustering in a network
CN113268472B (zh) 一种分布式数据存储系统及方法
WO2002063484A1 (en) Network-based disk redundancy storage system and method
US7694012B1 (en) System and method for routing data
CN115102961A (zh) 一种高并发网络访问分流方法及装置
CN117149885B (zh) 一种基于数据库主节点转发的读写分离实现方法
CN116483904A (zh) 数据处理系统
CN116684261A (zh) 集群架构的控制方法及装置、存储介质及电子设备
CN116069860A (zh) 数据同步方法和多活系统
CN117909136A (zh) 分布式日志存储备份方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111102

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111202

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120202

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

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

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5015965

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250