JP6139432B2 - Slot group generation device, slot group generation method, and load distribution system - Google Patents
Slot group generation device, slot group generation method, and load distribution system Download PDFInfo
- Publication number
- JP6139432B2 JP6139432B2 JP2014027442A JP2014027442A JP6139432B2 JP 6139432 B2 JP6139432 B2 JP 6139432B2 JP 2014027442 A JP2014027442 A JP 2014027442A JP 2014027442 A JP2014027442 A JP 2014027442A JP 6139432 B2 JP6139432 B2 JP 6139432B2
- Authority
- JP
- Japan
- Prior art keywords
- slot
- permutation
- servers
- generation unit
- slot group
- 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.)
- Expired - Fee Related
Links
- 238000009826 distribution Methods 0.000 title claims description 49
- 238000000034 method Methods 0.000 title claims description 36
- 239000000284 extract Substances 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、スロット群生成装置、スロット群生成方法、および、負荷分散システムに関する。 The present invention relates to a slot group generation device, a slot group generation method, and a load distribution system.
ネットワーク越しにサービス要求を受け付けるシステムでは、膨大なサービス要求にも応答し、かつサービス要求量に応じて割り当てるハードウェア量を柔軟に変更する必要があるため、複数のサーバを並列動作させる分散システムでの実現が主流となっている。 In a system that accepts service requests over a network, it is necessary to flexibly change the amount of hardware to be allocated according to the amount of service requests in response to an enormous amount of service requests. Realization of has become the mainstream.
分散システムの実現には、サービス要求を適切にいずれかのサーバへ振り分け、サーバ負荷をサーバ間で均一化する負荷分散装置が必要となる。多くのWebサービスにおいては個々のサービス要求は独立に処理することが可能なため、サービス要求を順番やランダムなどサービス要求の内容と無関係に振り分ける負荷分散装置が用いられている。しかし、SIP(Session Initiation Protocol)アプリケーションをはじめとする、複数のサービス要求間で同じ情報を共有する必要があるステートフルなWebサービスにおいては、それら関係があるサービス要求を同一サーバに振り分ける負荷分散装置を実現する必要がある。 In order to realize a distributed system, a load distribution apparatus that appropriately distributes service requests to one of the servers and equalizes the server load among the servers is required. In many Web services, since each service request can be processed independently, a load balancer that distributes the service requests regardless of the contents of the service requests such as order and randomness is used. However, in a stateful Web service that needs to share the same information among a plurality of service requests such as a SIP (Session Initiation Protocol) application, a load balancer that distributes the related service requests to the same server is provided. It needs to be realized.
この必要性に関して、非特許文献1では、キーのハッシュ値に応じてデータの格納サーバを決定するコンシステント・ハッシュ法を負荷分散装置に応用し、サービス要求内に同一のキーがある限り同じサーバに振り分ける手法、特にハッシュ値と振り分け先サーバの対応付けを定義するスロット群のスロット数を抑制しながら負荷を均一に分散する手法が記されている。 Regarding this necessity, Non-Patent Document 1 applies a consistent hash method in which a data storage server is determined according to a hash value of a key to a load balancer, and the same server as long as the same key exists in a service request. In particular, there is a technique for distributing the load uniformly while suppressing the number of slots in the slot group that defines the association between the hash value and the distribution destination server.
また、非特許文献2にはスロット数を増加させることで、コンシステント・ハッシュ法の負荷の偏りを低減させる手法が記されている。
Non-Patent
非特許文献1の手法では、スロット群の数を抑制できる一方で負荷の均一化は完全ではなく、サーバ間で大きな負荷の偏りが生じる可能性がある。また、非特許文献2の手法でも、スロット数の増加によって負荷の偏りが低減することは示されているが、どの程度のスロット数で所望の均一化が図れるかは定かではない。
In the method of Non-Patent Document 1, the number of slot groups can be suppressed, but load equalization is not perfect, and there is a possibility that a large load deviation occurs between servers. The technique of Non-Patent
実際にシステムを構築する場合、負荷の均一化が十分になされず、かつどのサーバの負荷が高くなるかも分からない状況では、サーバ等のハードウェアの調達時に十分な性能を持った機器を選定せざるを得ない。その結果、システム構築のための調達コストを押し上げる結果となってしまう。したがって、システム構築において、システム内のサーバ間の負荷の均一化は非常に重要な課題である。 When actually building a system, in a situation where the load is not evenly distributed and it is not clear which server load will be high, select a device with sufficient performance when procuring server hardware. I must. As a result, the procurement cost for system construction will be increased. Therefore, in system construction, equalizing the load among servers in the system is a very important issue.
そこで、本発明は、サーバ間の負荷の偏りがない負荷分散システムを提供することを目的とする。 Therefore, an object of the present invention is to provide a load distribution system in which there is no load bias among servers.
上述した課題を解決し、目的を達成するために、本発明は、複数のサーバ間で負荷分散を行う負荷分散システムにおいて、受信パケットの振り分けに用いるスロット群を生成するスロット群生成装置であって、前記負荷分散システムにおける所定数のサーバの順列組合せを生成するスロット列生成部と、前記生成した順列組合せをノードとして接続した順列接続グラフを生成する接続グラフ生成部と、前記生成した順列接続グラフから、各ノードの通過回数が全ノード間で同じになる順列閉路を抽出する順列閉路抽出部と、前記抽出した順列閉路を構成するノードそれぞれの先頭のサーバを閉路の順に並べてスロット列を生成するスロット列生成部と、所定のハッシュ空間を、前記生成したスロット列の長さのスロットに分割し、前記分割したスロットそれぞれに、前記スロット列に示される順で前記サーバを割り当てたスロット群を生成するスロット群生成部とを備えることを特徴とする。 In order to solve the above-described problems and achieve the object, the present invention provides a slot group generation device that generates a slot group used for distribution of received packets in a load distribution system that distributes load among a plurality of servers. A slot sequence generation unit that generates a permutation combination of a predetermined number of servers in the load distribution system, a connection graph generation unit that generates a permutation connection graph in which the generated permutation combinations are connected as nodes, and the generated permutation connection graph To generate a slot sequence by arranging a permutation cycle extraction unit for extracting a permutation cycle in which the number of times each node passes is the same among all nodes, and arranging the first servers of the nodes constituting the extracted permutation cycle in the order of the cycles. The slot sequence generation unit and a predetermined hash space are divided into slots having the length of the generated slot sequence, and the division is performed. The slot respectively, characterized in that it comprises a slot group generation unit that generates a slot group allocated to the server in the order indicated in the slot column.
本発明によれば、サーバ間の負荷の偏りがない負荷分散システムを提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the load distribution system without the bias | biasing of the load between servers can be provided.
以下、本発明の実施形態について、第1の実施形態および第2の実施形態に分けて説明する。なお、各実施形態により本発明が限定されるものではない。 Hereinafter, embodiments of the present invention will be described by being divided into a first embodiment and a second embodiment. In addition, this invention is not limited by each embodiment.
(第1の実施形態)
各実施形態の負荷分散システムは、図1に示すように、クライアント100と、負荷分散装置200と、サーバ300とがネットワーク(図示省略)で接続されて構成される。
(First embodiment)
As shown in FIG. 1, the load distribution system of each embodiment is configured by connecting a
負荷分散装置200は、クライアント100からのサービス要求パケットを受信するパケット受信部210と、受信したパケットから所定のキーを抽出し、そのハッシュ値とスロット群との比較からパケットの転送先のサーバ300を決定する振分部220と、振分部220の決定に基づきパケットの転送を実施するパケット転送部230と、負荷の均一化を実現するスロット群を生成するスロット群管理部240と、スロット群管理部240を多くの負荷分散装置で流用できるようにサーバ名称等の抽象化を制御するスロット群汎用化部250とを備える。
The load balancer 200 extracts a predetermined key from the packet reception unit 210 that receives a service request packet from the
振分部220は、パケット受信部210が受信したパケットから、コンシステント・ハッシュ法でキーとする情報を抽出するキー抽出部221と、抽出したキーからハッシュ値を生成し、スロット群汎用化部250から取得されるスロット群の中からそのハッシュ値に対応するスロットを検索し、そのスロットに割り当てられたサーバをパケットの転送先として決定するパケット送信先決定部222とを備える。
The
スロット群管理部240は、サーバのリストやサーバが何台故障した場合まで負荷の均一化をするかを示す耐障害度等の各種パラメータを受信し、スロット群を生成するスロット群生成部(スロット群生成装置)241と、スロット群生成部241が生成したスロット群を保持するスロット群保持部242とを備える。
The slot
スロット群汎用化部250は、システム保守者400等から事前に設定された、負荷分散システムサーバリストをもとに、各サーバに汎用的なサーバ名を割り当て、スロット群管理部240へスロット群の生成を要求するサーバ群抽象化部251と、スロット群管理部240が生成したスロット群において、各スロットに割り当てられたサーバ名称を汎用的な名称からシステム固有の名称に変換するサーバ群個別化部252と、サーバリストの汎用化に係る対応表を保持するサーバリスト保持テーブル253とで構成される。また、図1の負荷分散装置200は、図1に例示する台数に限定されず、サーバ300の集合に対し、任意の台数としてもよい。
The slot
以下の説明では、負荷分散装置200の適用サービスが、セッション処理が必要な電話サービスである場合を例に説明するが、適用サービスはこれに限られるものではない。
In the following description, a case where the application service of the
クライアント100は、例えば、電話端末のようなSIP(Session Initiation Protocol)クライアントであり、セッション管理に係る要求パケットを送出する装置である。
The
この場合、負荷分散装置200とサーバ300の集合とは一体のシステムとしてSIPサーバであるように振る舞い、クライアント100からのSIPパケットは専ら負荷分散装置200が受信・振り分けし、セッション制御そのものはサーバ300が実施する。これにより、クライアント100はサーバ300の増設等を意識することなく、負荷分散装置200と対向すればよい。ただし、同一クライアント100に関するセッション処理は同一のサーバ300が一貫して実施する必要があるため、負荷分散装置200の振り分けロジックは、同一クライアント100からのSIPパケットを同一サーバ300に振り分けるものである必要がある。この点について、負荷分散装置200は以下で説明するコンシステント・ハッシュ法を用いる。
In this case, the load balancer 200 and the set of
コンシステント・ハッシュ法において、クライアント100からのSIPパケットを受信した負荷分散装置200のパケット受信部210は、受信したSIPパケットを振分部220のキー抽出部221に受け渡す。キー抽出部221では、クライアント100を識別するため、SIPヘッダからFromやCall-ID等のクライアント識別情報を抽出し、パケット送信先決定部222に送る。クライアント識別情報を受信したパケット送信先決定部222では、クライアント識別情報のハッシュ値を生成し、スロット群汎用化部250から取得した、各サーバ300が担当するハッシュ値の範囲を記したスロット群にクライアント識別情報のハッシュ値を照らし合わせることで、受信パケットの転送先とするサーバ300を決定する。このように振り分け先を決定することで、クライアント識別情報が同一である限りにおいて同一のサーバ300にパケットを転送することができる。
In the consistent hash method, the packet reception unit 210 of the
パケットの転送先の決定の後は、パケット転送部230がその情報をもとにパケットの送信先IPアドレス等を書き換え、該当するサーバ300へパケットを転送する。
After the packet transfer destination is determined, the
負荷分散装置200が上記の処理によってパケットを振り分けた場合に、サーバ300間での負荷の均一化をはかるためには、各サーバ300が担当するハッシュ値の範囲が均一化されたスロット群を生成する必要がある。以下では、いくつかのサーバ300が故障した場合を含め、各サーバ300が担当するハッシュ値の範囲が均一化されたスロット群を生成する方法について説明する。
When the
今回の例では、負荷分散システムを構成するサーバ300が5台であり、それぞれサーバ名称が、SIPserver1、SIPserver2、SIPserver3、SIPserver4、SIPserver5であるものとする。また、サーバ300の故障時の対応については、サーバ300のうちランダムに1台が故障した場合であっても残るサーバ300で負荷を均一化する。
In this example, it is assumed that there are five
スロット群汎用化部250は、スロット群管理部240が個別のサーバ名SIPserver1等を意識することなくスロット群を生成することができるよう、名称の変換を担う。
The slot
具体的には、サーバリスト保持テーブル253には、システム保守者400が事前にSIPserver1等システム固有のサーバ名称と、AやBといったスロット群管理部240が用いるサーバ名称の対応付け、例えば、SIPserver1:A、SIPserver2:B、SIPserver3:C、SIPserver4:D、SIPserver5:Eを保持させる。この状況でサーバ群抽象化部251がシステム保守者400から、サーバ5台に関して1台故障まで耐性のあるスロット群を生成するよう要請を受けた場合、サーバ群抽象化部251では、サーバリスト保持テーブル253の情報をもとにA、B、C、D、Eに関するスロット群を生成するよう、スロット群管理部240のスロット群生成部241に要求する。この際には、例えば、「故障耐性を求められる台数(想定する故障サーバの台数)+1」、すなわちここでは「1+1=2」を、スロット群生成に係るパラメータとして送信する(以下、本パラメータを基本順列長と呼ぶ)。なお、この「1」を加える処理については、必ずしもサーバ群抽象化部251で行う必要はなく、スロット群生成部241で行ってもよい。
Specifically, in the server list holding table 253, the
今回の場合、例えば、サーバ群抽象化部251から、サーバリスト「A、B、C、D、E」、基本順列長「2」という情報がスロット群生成部241に送信されると、スロット群管理部240からは、例えば、後記する図16に示すようなスロット群が返送される。つまり、環状のハッシュ空間に対し、各サーバの担当範囲を割り当てたスロット群が返送される。そして、サーバ群個別化部252が、返送されたスロット群に対し、サーバリスト保持テーブル253の情報をもとに、A,B等の汎用的な名称からSIPserver1等の個別の名称に変換することで、SIPserver1等の個別の名称に対応したスロット群が生成される。
In this case, for example, when the server
なお、このスロット群は、負荷分散システムのいずれかのサーバが故障したとき、この故障サーバの処理を引き継ぐサーバを選択するときにも用いられる。例えば、振分部220が受信パケットの振り分け先としてSIPserver1を選択した後、このSIPserver1が故障したとき、処理の引き継ぎ先のサーバとして、当該スロット群において故障サーバ(SIPserver1(A))の右隣り(時計回りの向きで隣り)に配置されるサーバ(例えば、SIPserver5(E))を選択する。
This slot group is also used when a server that takes over the processing of the failed server is selected when any server in the load balancing system fails. For example, after SIP server 1 has been selected as the distribution destination of the received packet by
次に、スロット群生成部241を詳細に説明する。このスロット群生成部241は、図2に示すように、スロット列生成部243と、接続グラフ生成部244と、順列閉路抽出部245と、スロット列生成部246と、スロット割り当て部247とを備える。拡張基礎順列生成部248と、拡張スロット列生成部249とは、スロット群生成部241が装備する場合と装備しない場合とがあり、装備する場合については第2の実施形態で述べる。なお、各部の処理の詳細は、具体例を交えながら後記する。
Next, the slot group generation unit 241 will be described in detail. As shown in FIG. 2, the slot group generation unit 241 includes a slot
スロット列生成部243は、負荷分散システムから、(想定する故障サーバの台数+1)の台数のサーバの順列組合せを生成する。
The slot
接続グラフ生成部244は、スロット列生成部243により生成された順列組合せ同士をノードとして接続した順列接続グラフを生成する。
The connection
順列閉路抽出部245は、接続グラフ生成部244により生成された順列接続グラフから、各ノードを同じ回数通る順列閉路を抽出する。
The permutation
スロット列生成部246は、順列閉路抽出部245により抽出された順列閉路を構成するノードそれぞれの先頭のサーバを閉路の順に並べてスロット列(基本スロット列)を生成する。
The slot
スロット割り当て部247は、スロット列生成部246により生成されたスロット列を用いてスロット群を生成する。具体的には、スロット割り当て部247は、受信パケットの振り分けに用いるハッシュ空間を、スロット列生成部246により生成されたスロット列の長さのスロットに分割する。そして、スロット割り当て部247は、この分割したスロットそれぞれに、スロット列に示される順でサーバを割り当てたスロット群を生成する。
The
次にスロット群生成部241の処理手順について説明する。 Next, a processing procedure of the slot group generation unit 241 will be described.
スロット群生成部241は、図3に示すように、スロット群生成の対象となるサーバを示したサーバリストを取得し(S10)、サーバリストに示されるサーバの基本スロット列を生成し(S20)、生成したスロット列に基づきスロット群を生成する(S30)。 As shown in FIG. 3, the slot group generation unit 241 obtains a server list indicating the servers that are the target of slot group generation (S10), and generates a basic slot sequence of the servers indicated in the server list (S20). Then, a slot group is generated based on the generated slot string (S30).
例えば、サーバリストにA、B、Cが記載され、スロット群生成部241が基本スロット列生成処理により、ABCBACというスロット列を生成した場合、このABCBACというスロット列に基づきスロット群を生成する。例えば、スロット群生成部241は、後記する図9に示すように、ハッシュ空間を6等分(スロット列の長さで等分)し、スロット列と同じ順番でスロットにサーバを割り当てる。つまり、スロット群生成部241は、A→B→C→B→A→C(→Aに戻る)というスロット群を生成する。このように、スロット群生成部241が各サーバの登場回数が同じで、かつ各サーバの次に他のサーバが登場する回数が均一になるようなスロット群を生成し、振分部220が当該スロット群により受信パケットの振り分けを行うことで、各サーバ間で負荷を均一化し、かつ、故障時の負荷についても均一化することができる。 For example, when A, B, and C are described in the server list and the slot group generation unit 241 generates a slot string called ABCBAC by the basic slot string generation processing, a slot group is generated based on the slot string called ABCBAC. For example, as shown in FIG. 9 to be described later, the slot group generation unit 241 divides the hash space into six equal parts (equally divided by the length of the slot string), and assigns servers to the slots in the same order as the slot string. That is, the slot group generation unit 241 generates a slot group of A → B → C → B → A → C (→ returns to A). As described above, the slot group generation unit 241 generates a slot group in which the number of appearances of each server is the same and the number of times other servers appear next to each server is uniform. By distributing received packets according to the slot group, the load can be made uniform among the servers, and the load at the time of failure can also be made uniform.
図3の基本スロット列生成処理(S20)は、図4に示す手順により行われる。まず、スロット群生成部241のスロット列生成部243は、図3のS10で取得されたサーバリストに基づき基本順列を生成する(S21)。具体的には、スロット列生成部243は、サーバリストに示されるサーバ群について、(想定する故障サーバの台数+1)、すなわち基本順列長の台数のサーバの順列組合せをすべて抽出する。
The basic slot sequence generation process (S20) in FIG. 3 is performed according to the procedure shown in FIG. First, the slot
例えば、想定する故障サーバの台数を「1」とし、サーバリストにA、B、Cが記載されていた場合を考える。この場合、スロット列生成部243は、図5に示すように、3つのサーバについて「2(基本順列長)」の長さの全順列を列挙すると、AB、AC、BC、BA、CA、CBとなる。つまり、例えば、Aが故障したときはBが処理を引き継ぐ、Aが故障したときにはCが引き継ぐ、Bが故障したときはCが処理を引き継ぐ、…というように、故障サーバとその故障サーバの処理を引き継ぐサーバとの順列組合せをすべて列挙する。なお、このようにして列挙した順列を基本順列とする。サーバが3台の場合の基本順列の数は3P2=3!、つまり6個となる。
For example, let us consider a case where the assumed number of failed servers is “1” and A, B, and C are described in the server list. In this case, as shown in FIG. 5, the slot
図4の説明に戻る。S21の後、接続グラフ生成部244は、基本順列接続グラフを生成する(S22)。具体的には、接続グラフ生成部244は、S1で抽出した順列組合せ(基本順列)同士をノードとして接続した基本順列接続グラフを生成する。
Returning to the description of FIG. After S21, the connection
例えば、図6に示すように、基本順列がAB、AC、BC、BA、CA、CBである場合、接続グラフ生成部244は、各基本順列について、後ろ2−1=1の長さの部分順列で始まる基本順列と接続する。つまり、接続グラフ生成部244は、各基本順列をラベルに持つノードを生成し、各基本順列についてはじめの1サーバを除く部分順列を抽出する。例えば、AB、AC、BC、BA、CA、CBという基本順列をラベルに持つノードを生成し、ABについてはBという部分順列を抽出し、ACについてはCという部分順列を抽出する。このような処理をすべての基本順列に対し行う。そして、接続グラフ生成部244は、その抽出した部分順列からはじまる基本順列を抽出する。例えば、Bという部分順列から始まる基本順列としてBC、BAを抽出し、Cという部分順列から始まる基本順列としてCA、CBを抽出する(図6の「基本順列接続グラフのリンク」参照)。このように、接続グラフ生成部244は、基本順列の最後尾と同じサーバを先頭に持つ基本順列をグラフのリンク先として抽出する。そして、接続グラフ生成部244は、各基本順列を示すノードを、前記した処理により抽出したリンク先のノードと有向リンクにより接続し、図6の右側に示すような基本順列接続グラフを生成する。
For example, as illustrated in FIG. 6, when the basic permutation is AB, AC, BC, BA, CA, CB, the connection
図4の説明に戻る。S22の後、順列閉路抽出部245は、S22で生成された基本順列接続グラフから、各ノードを同じ回数通る基本順列閉路を抽出する(S23)。
Returning to the description of FIG. After S22, the permutation
例えば、順列閉路抽出部245は、図7に示すような基本順列接続グラフから、各ノードを同回数通る閉路を抽出し、図7の右側に示す基本順列閉路を得る。このような閉路が生成されれば、スロット群生成部241が、この閉路に沿ってスロット列上のサーバの順番を決定することで、各基本順列が同回数出現するスロット列を生成することができる。当該閉路の抽出方法は問わないが、少なくとも当該グラフはオイラー閉路を持つ条件を満たしているため、Fleuryのアルゴリズムを用いることでオイラー閉路を抽出することが可能である。
For example, the permutation
なお、図7に例示した基本順列接続グラフは、各ノードが入次数、出次数ともに2次の有向グラフとなっているため、抽出されたオイラー閉路は各ノードを丁度2回ずつ通る閉路となる。より一般的なサーバリスト等に対応するには、このオイラー閉路を抽出する手法を想定するが、本例では各ノードを1回ずつ通る閉路が抽出可能であることが明らかなため、以降の説明では図7に示すような基本順列閉路は「AB→BC→CB→BA→AC→CA→(ABに戻る)」を用いるものとする。 In the basic permutation connection graph illustrated in FIG. 7, each node is a second-order directed graph for both the incoming order and the outgoing order. Therefore, the extracted Euler circuit is a circuit that passes through each node exactly twice. In order to deal with a more general server list or the like, a method of extracting the Euler cycle is assumed. However, in this example, it is clear that a cycle that passes through each node once can be extracted. Then, the basic permutation circuit as shown in FIG. 7 uses “AB → BC → CB → BA → AC → CA → (return to AB)”.
図4の説明に戻る。S23の後、スロット列生成部246は、S23で抽出された基本順列閉路を構成するノードそれぞれの先頭のサーバを閉路の順に並べてスロット列を生成する(S24)。例えば、スロット列生成部246は、図8に示すように基本順列閉路をAB→BC→CB→BA→AC→CAの順に走査し、それぞれのラベルのはじめのサーバを閉路に沿って並べ、スロット列としてABCBACを生成する。
Returning to the description of FIG. After S23, the slot
その後、スロット割り当て部247は、例えば、図9に示すように、図4のS24で生成されたスロット列の長さでハッシュ空間を等分(空間を6等分)し、スロット列(ABCBAC)と同じ順で各スロットにサーバを割り当てたスロット群を生成する。つまり、スロット割り当て部247は、A→B→C→B→A→C(→Aに戻る)というスロット群を生成する。
Thereafter, for example, as shown in FIG. 9, the
このようにして生成されたスロット群には、前記した基本順列が全て同じ回数含まれる。したがって、振分部220が、受信パケットの振り分けにこのようなスロット群を用いることで、負荷分散システム内のサーバの故障時を含め、各サーバ間の負荷を均一化させることができる。すなわち、前記したスロット群には、サーバもサーバの順列も同じ数だけ登場するため、平常時の割り当てスロット数が均一となる。さらに、例えばスロットの割り当てとしてA→Bの順で割り当てている部分があった場合、Aが故障時にはコンシステント・ハッシュ法に従うと、次のBが割り当てを受ける形となる結果、全ての基本順列の登場回数が同じであった場合、各サーバの次に他のサーバが登場する回数が均一となり、故障時も負荷を均一化させることができる。
In the slot group generated in this way, all the basic permutations described above are included the same number of times. Therefore, by using such a slot group for distribution of received packets, the
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。第2の実施形態は、スロット群生成部241aが、サーバリストの一部のサーバのスロット列を生成し(基本スロット列生成)、そのスロット列をサーバリストの残りのサーバ分まで拡張する(スロット列拡張を行う)ことを特徴とする。このようにスロット群生成部241aが基本スロット列生成とスロット列拡張とを組み合わせてスロット列を生成することで、サーバリストに示されるサーバの台数が多い場合でも、全サーバのスロット列の生成にかかる計算量とスロット長を低減することができる。
(Second Embodiment)
Next, a second embodiment of the present invention will be described. In the second embodiment, the slot group generation unit 241a generates a slot sequence of some servers in the server list (basic slot sequence generation), and extends the slot sequence to the remaining servers in the server list (slots). Column expansion). As described above, the slot group generation unit 241a generates the slot string by combining the basic slot string generation and the slot string expansion, so that even when the number of servers indicated in the server list is large, the slot string of all servers can be generated. Such calculation amount and slot length can be reduced.
なお、以下、スロット群生成部241aは、まずサーバリストのサーバのうち、(基本順列長+1)台のサーバのスロット列を生成し、その後、このスロット列を残りのサーバ分まで拡張する場合を例に説明する。前記した第1の実施形態と同じ構成は、同じ符号を付して説明を省略する。 Hereinafter, the slot group generation unit 241a first generates a slot sequence of (basic permutation length + 1) servers among the servers in the server list, and then expands the slot sequence to the remaining servers. Explained as an example. The same configurations as those of the first embodiment described above are denoted by the same reference numerals and description thereof is omitted.
このスロット群生成部241aは、図2に示すように、破線で示す拡張基礎順列生成部248と、拡張スロット列生成部249とをさらに備える。 As shown in FIG. 2, the slot group generation unit 241a further includes an extended basic permutation generation unit 248 and an expansion slot sequence generation unit 249 indicated by broken lines.
まず、スロット群生成部241aは、スロット列生成部243、接続グラフ生成部244、順列閉路抽出部245、および、スロット列生成部246により、サーバリストに示されるサーバ(例えば、A〜E)のうち、(基本順列長+1)台のサーバ、例えば、A、B、Cの3台のサーバのスロット列を生成する。
First, the slot group generation unit 241a uses the slot
拡張基礎順列生成部248は、スロット列生成部243により生成された基本順列に示されるサーバ(例えば、A、B、C)から、(基本順列長−1)台のサーバの順列組合せである拡張基礎順列をすべて抽出する。例えば、拡張基礎順列生成部248は、拡張基礎順列として、A、B、Cを抽出する。
The extended basic permutation generation unit 248 is an extension that is a permutation combination of (basic permutation length-1) servers from the servers (for example, A, B, and C) indicated in the basic permutation generated by the slot
拡張スロット列生成部249は、サーバリストに示されるサーバ(例えば、A〜E)のうち、スロット列生成部246がスロット列(基本スロット列)の対象としなかったサーバを1つ選択する。
The expansion slot string generation unit 249 selects one of the servers (for example, A to E) indicated in the server list, which is not targeted by the slot
例えば、拡張スロット列生成部249は、D、Eのいずれかを選択する、そして、拡張スロット列生成部249は、スロット列生成部246により生成されたスロット列(例えば、ABCBAC)から、拡張基礎順列に示されるサーバ(例えば、A、B、C)を1つずつ抽出し、それぞれ拡張対象サーバ(例えば、D)を拡張基礎順列(例えば、A、B、C)で挟んだ順列で置換する。これにより、基本スロット列に、拡張対象サーバが挿入された新たなスロット列が生成される。つまり、基本スロット列が拡張対象サーバの分まで拡張される。その後、拡張スロット列生成部249は、上記と同様の処理により、拡張サーバ(例えば、D)が挿入されたスロット列に、さらに拡張対象サーバ(例えば、E)を挿入する。これにより、サーバリストに示される全サーバ(A、B、C、D、E)のスロット列が生成される。
For example, the expansion slot sequence generation unit 249 selects either D or E, and the expansion slot sequence generation unit 249 uses the expansion basis from the slot sequence (for example, ABCBAC) generated by the slot
この拡張基礎順列生成部248と、拡張スロット列生成部249の詳細は、具体例を用いて後記する。 Details of the extended basic permutation generation unit 248 and the expansion slot sequence generation unit 249 will be described later using a specific example.
次に、第2の実施形態のスロット群生成部241aにおけるスロット群生成の処理手順について説明する。 Next, a slot group generation processing procedure in the slot group generation unit 241a of the second embodiment will be described.
図10に示すように、スロット群生成部241aは、サーバリストおよび基本順列長を示した基礎情報を取得し(S40)、この基礎情報をもとに基本スロット列生成用のサーバリストを抽出する(S50)。そして、スロット群生成部241aは、S50で抽出されたサーバリストをもとに、図3のS20と同様の手順により基本スロット列生成を行う(S20)。そして、スロット群生成部241aは、拡張情報を生成する(S60)。この拡張情報は、スロット列を拡張するために用いられる情報であり、基本スロット列生成用のサーバリスト(拡張前サーバリスト)と、S20で生成した基本スロット列(拡張前のスロット列)と、基本順列長と、サーバリストのうち基本スロット列の対象外としたサーバのリスト(拡張サーバリスト)とを示した情報である。 As shown in FIG. 10, the slot group generation unit 241a acquires basic information indicating the server list and the basic permutation length (S40), and extracts a server list for basic slot sequence generation based on the basic information. (S50). Then, the slot group generation unit 241a generates a basic slot sequence based on the server list extracted in S50 by the same procedure as S20 in FIG. 3 (S20). Then, the slot group generation unit 241a generates extended information (S60). This extension information is information used to extend the slot sequence, and includes a server list for generating a basic slot sequence (pre-expansion server list), a basic slot sequence (slot sequence before expansion) generated in S20, This is information indicating the basic permutation length and a list of servers (extended server list) excluded from the basic slot sequence in the server list.
例えば、図12に示すように、基礎情報に示されるサーバリストが「A、B、C、D、E」であり、基本順列長が「2」である場合、スロット群生成部241aは、基本順列長+1=3台のサーバを任意に抽出し、基本スロット列生成のためのサーバリスト(例えば、A、B、C)を抽出する。なお、ここで抽出対象外のサーバ(例えば、D、E)は拡張サーバリストにのせる。その後、スロット群生成部241aは基本スロット列生成処理(図3のS20と同様の処理)によってスロット列を生成する。このスロット列を基本スロット列とする。そして、スロット群生成部241aは、拡張前サーバリスト(基本スロット列生成用のサーバリスト)が「A、B、C」であり、拡張前のスロット列(基本スロット列)が「ABCBAC」であり、基本順列長が「2」であり、拡張サーバリストが「D、E」であることを示した拡張情報を生成する。 For example, as shown in FIG. 12, when the server list indicated in the basic information is “A, B, C, D, E” and the basic permutation length is “2”, the slot group generation unit 241a Permutation length + 1 = 3 servers are arbitrarily extracted, and a server list (for example, A, B, C) for basic slot sequence generation is extracted. Here, servers that are not subject to extraction (for example, D and E) are put on the extended server list. Thereafter, the slot group generation unit 241a generates a slot sequence by a basic slot sequence generation process (a process similar to S20 in FIG. 3). This slot row is a basic slot row. Then, in the slot group generation unit 241a, the pre-expansion server list (server list for basic slot sequence generation) is “A, B, C”, and the slot sequence before expansion (basic slot sequence) is “ABCBAC”. The extended information indicating that the basic permutation length is “2” and the extended server list is “D, E” is generated.
図10の説明に戻る。S60の後、スロット群生成部241aは、S60で生成された拡張情報をもとにスロット列拡張処理を実行し(S70)、S70で生成された拡張スロット列を用いて、図3のS30と同様の処理によりスロット群を生成する(S30)。 Returning to the description of FIG. After S60, the slot group generation unit 241a executes a slot string expansion process based on the extension information generated in S60 (S70), and uses the expansion slot string generated in S70 to perform S30 in FIG. A slot group is generated by the same processing (S30).
ここで、図11を用いて、図10のS70のスロット列拡張処理を説明する。拡張基礎順列生成部248は、S60で生成された拡張情報を取得すると(S71)、拡張対象サーバを抽出し(S72)、拡張基礎順列を生成する(S73)。 Here, the slot string expansion process in S70 of FIG. 10 will be described with reference to FIG. When the extended basic permutation generation unit 248 acquires the extended information generated in S60 (S71), the extended basic permutation generation unit 248 extracts an expansion target server (S72) and generates an extended basic permutation (S73).
例えば、拡張基礎順列生成部248は、図12に示す拡張情報の拡張サーバリスト「D、E」から、Dを抽出する。そして、拡張基礎順列生成部248は、図13に示すように、拡張前サーバリストは「A、B、C」、基本順列長は「2」という情報から、A、B、Cの3つのサーバについて、基本順列長2−1=1の長さの全順列を生成する。ここで抽出する順列を拡張基礎順列と呼ぶ。例えば、拡張基礎順列生成部248は、拡張基礎順列として「A、B、C」を生成する。ここで抽出する拡張基礎順列の個数はサーバがA、B、Cの3台の場合、3P1=3個となる。 For example, the extended basic permutation generation unit 248 extracts D from the extended server list “D, E” of the extended information shown in FIG. Then, as shown in FIG. 13, the extended basic permutation generation unit 248 uses three servers A, B, and C from the information that the pre-extension server list is “A, B, C” and the basic permutation length is “2”. For all permutations with a basic permutation length 2-1 = 1. The permutation extracted here is called an extended basic permutation. For example, the extended basic permutation generation unit 248 generates “A, B, C” as the extended basic permutation. The number of extended basic permutations extracted here is 3 P 1 = 3 when there are three servers A, B, and C.
図11の説明に戻る。S73の後、拡張スロット列生成部249は、S73で生成された拡張基礎順列をスロット列へ挿入する(S74)。 Returning to the description of FIG. After S73, the expansion slot string generation unit 249 inserts the expansion basic permutation generated in S73 into the slot string (S74).
例えば、拡張スロット列生成部249は、S73で生成された拡張基礎順列(例えば、A、B、C)について、拡張前のスロット列(例えば、ABCBAC)から1つずつ、その位置を検索していく。いくつずつ検索していくかについては、当該スロット列の基本順列閉路(図7参照)において各ノードを通過した回数に等しく、拡張前のスロット列長を基本順列の数で除することで求められる。例えば、前記した例でいうと拡張前のスロット列(ABCBAC)の長さは「6」で、基本順列の数は「3P2=6」なので、「6÷6=1」となる。 For example, the expansion slot string generation unit 249 searches for the position of the expansion basic permutation (for example, A, B, C) generated in S73 one by one from the slot string (for example, ABCBAC) before the expansion. Go. The number of times of searching is determined by dividing the slot sequence length before expansion by the number of basic permutations, which is equal to the number of times each node has been passed in the basic permutation cycle of the slot sequence (see FIG. 7). . For example, in the example described above, the length of the slot sequence (ABCBAC) before expansion is “6” and the number of basic permutations is “ 3 P 2 = 6”, so “6 ÷ 6 = 1”.
そして、拡張スロット列生成部249は、拡張前のスロット列から検索した拡張基礎順列のそれぞれについて、その拡張基礎順列で拡張対象サーバを挟んだ順列で置換していく。例えば、拡張対象サーバが「D」である場合を考える。この場合、図14に示すように、拡張スロット列生成部249は、拡張基礎順列「A」については、拡張前のスロット列で「A」となっている箇所1つについて、「ADA」で置換する。また、同様に、拡張前のスロット列で「B」となっている箇所1つについて、「BDB」で置換する。さらに、拡張前のスロット列で「C」となっている箇所1つについて、「CDC」で置換する。その結果、拡張後のスロット列として「ADABCBDBACDC」が得られる。 Then, the expansion slot string generation unit 249 replaces each expansion basic permutation searched from the slot string before expansion with a permutation sandwiching the expansion target server in the expansion basic permutation. For example, consider a case where the expansion target server is “D”. In this case, as illustrated in FIG. 14, the expansion slot sequence generation unit 249 replaces the extension basic permutation “A” with “ADA” for one location that is “A” in the slot sequence before expansion. To do. Similarly, one location “B” in the slot row before expansion is replaced with “BDB”. Further, “CDC” is substituted for one location that is “C” in the slot row before expansion. As a result, “ADABCBDDBACDC” is obtained as the expanded slot string.
このように、拡張スロット列生成部249は、拡張前のスロット列から、拡張基礎順列を各1抽出し、それぞれ拡張対象サーバを当該拡張基礎順列で挟んだ順列で置換する。なお、前記した例では、拡張基礎順列の長さが「1」である場合について説明したが、長さが「2」である場合、例えば、拡張基礎順列が「AB」である場合、拡張対象サーバが「D」なら、拡張前のスロット列で「AB」となっている箇所について「ABDAB」に置換する。 In this way, the expansion slot sequence generation unit 249 extracts one each of the expansion basic permutation from the slot sequence before expansion, and replaces each expansion target server with a permutation sandwiched between the expansion basic permutations. In the above example, the case where the length of the extended basic permutation is “1” has been described. However, when the length is “2”, for example, when the extended basic permutation is “AB”, the extension target If the server is “D”, the place “AB” in the slot string before expansion is replaced with “ABDAB”.
図11の説明に戻る。このようにして拡張基礎順列をスロット列に挿入した(S74)後、拡張スロット列生成部249は、処理済みの拡張対象サーバを拡張前サーバリストに加える等して拡張情報を更新する(S75)。例えば、拡張スロット列生成部249は、拡張前のスロット列「ABCBAC」に、サーバ「D」を挿入した後、図15の左側の拡張情報を、右側の拡張情報へ更新する。 Returning to the description of FIG. After inserting the expansion basic permutation into the slot string in this way (S74), the expansion slot string generating unit 249 updates the extension information by adding the processed expansion target server to the server list before expansion (S75). . For example, after inserting the server “D” into the slot string “ABCBAC” before expansion, the expansion slot string generation unit 249 updates the left extension information in FIG. 15 to the right extension information.
図11の説明に戻る。S76で拡張対象サーバが残存していれば(S76でYes)、スロット群生成部241aは、更新した拡張情報を用いて、再度S71以降の処理を実行する。一方、拡張対象サーバが残存していなければ(S76でNo)、スロット列拡張処理を終了し、図10のS30へ進む。 Returning to the description of FIG. If the extension target server remains in S76 (Yes in S76), the slot group generation unit 241a executes the processing subsequent to S71 again using the updated extension information. On the other hand, if the expansion target server does not remain (No in S76), the slot string expansion process is terminated, and the process proceeds to S30 in FIG.
なお、拡張スロット列生成部249は、図14に示す処理により、拡張対象サーバ「D」をスロット列へ挿入した後、上記と同様の処理により拡張対象サーバ「E」をスロット列へ挿入する。つまり、拡張スロット列生成部249は、「ADABCBDBACDC」というスロット列を生成した後、このスロット列の「A、B、C、D」が登場する箇所を1つずつ抽出し、それぞれについて、拡張対象サーバ「E」を挟んだ順列で置換していく。その結果、拡張スロット列生成部249は、「AEADABEBCBDEDBACDCEC」というスロット列を生成する。 The expansion slot string generation unit 249 inserts the expansion target server “D” into the slot string by the process shown in FIG. 14, and then inserts the expansion target server “E” into the slot string by the same process as described above. That is, the expansion slot string generation unit 249 generates a slot string “ADABCBDDBACDC”, and then extracts one place where “A, B, C, D” of this slot string appears one by one. Replacement is performed with a permutation sandwiching the server “E”. As a result, the expansion slot string generation unit 249 generates a slot string “AEADABEBBCBDDBDACDCEC”.
以上の処理によってサーバリストに示される全てのサーバ(A、B、C、D、E)が組み込まれたスロット列が完成すると、スロット群生成部241aのスロット割り当て部247はこれをもとにスロット群を生成する。
When the slot sequence incorporating all the servers (A, B, C, D, E) shown in the server list is completed by the above processing, the
例えば、スロット群生成部241aのスロット群割り当て部247は、図16に示すとおりハッシュ値の空間を、スロット列「AEADABEBCBDEDBACDCEC」の長さ20個に分割したスロットを生成し、それぞれのスロットに、スロット列「AEADABEBCBDEDBACDCEC」に登場する順番で担当サーバを割り当てる。
For example, the slot
以上の処理によって、サーバリストに示される全てのサーバが含まれ、かつ、それらの間で担当範囲が均一なスロット群が生成されたため、当該スロット群を用いた負荷分散システムでは、負荷をサーバ間で均一に分散することが可能となる。 As a result of the above processing, a slot group including all the servers shown in the server list and having a uniform assigned range among them is generated. Therefore, in the load balancing system using the slot group, the load is distributed between the servers. It becomes possible to disperse uniformly.
また、スロット群生成部241aが、スロット列の生成を(基本順列長+1)台までとし、(基本順列長+1)台を超えた分のサーバについてはスロット列拡張処理によりスロット列に挿入することで、サーバリストに示される全サーバについてのスロット列を生成する際の計算量とスロット長を低減できる。 In addition, the slot group generation unit 241a generates up to (basic permutation length + 1) slots in the slot train, and inserts the servers that exceed (basic permutation length + 1) into the slot train by the slot train expansion process. Thus, it is possible to reduce the calculation amount and the slot length when generating the slot train for all the servers shown in the server list.
(その他の実施形態)
なお、図1のスロット群管理部240は、負荷分散装置200の中に1つであるように例示しているが、図17のように負荷分散装置200から切り出し、スロット群提供装置500のような構成にしてもよく、またこの場合、1つのスロット群提供装置500が複数の負荷分散装置200の処理を行うことも可能である。
(Other embodiments)
The slot
(プログラム)
また、上記実施形態に係る負荷分散装置200が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、負荷分散装置200と同様の部を実現する負荷分散プログラムを実行するコンピュータの一例を説明する。
(program)
It is also possible to create a program in which the processing executed by the
図18は、負荷分散プログラムを実行するコンピュータを示す図である。図18に示すように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
FIG. 18 is a diagram illustrating a computer that executes a load distribution program. As illustrated in FIG. 18, the
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。ディスクドライブ1100には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1110およびキーボード1120が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1130が接続される。
The
ここで、図18に示すように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1090やメモリ1010に記憶される。
Here, as shown in FIG. 18, the hard disk drive 1090 stores, for example, an
また、負荷分散プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ1090に記憶される。具体的には、上記実施形態で説明した負荷分散装置200が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1090に記憶される。
Further, the load distribution program is stored in the hard disk drive 1090 as a program module in which a command executed by the
また、負荷分散プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ1090に記憶される。そして、CPU1020が、ハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
Further, data used for information processing by the load balancing program is stored as program data in, for example, the hard disk drive 1090. Then, the
なお、負荷分散プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、負荷分散プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
Note that the
200 負荷分散装置
210 パケット受信部
220 振分部
221 キー抽出部
222 パケット送信先決定部
230 パケット転送部
240 スロット群管理部
241、241a スロット群生成部
242 スロット群保持部
243 スロット列生成部
244 接続グラフ生成部
245 順列閉路抽出部
246 スロット列生成部
247 スロット割り当て部
248 拡張基礎順列生成部
249 拡張スロット列生成部
250 スロット群汎用化部
251 サーバ群抽象化部
252 サーバ群個別化部
253 サーバリスト保持テーブル
DESCRIPTION OF
Claims (5)
前記負荷分散システムを構成するサーバから、前記負荷分散システムにおいて想定する1以上の故障サーバの台数に1を加算した基本順列長のサーバの順列組合せを生成する第1のスロット列生成部と、
前記生成した順列組合せをノードとして接続した順列接続グラフを生成する接続グラフ生成部と、
前記生成した順列接続グラフから、各ノードの通過回数が全ノード間で同じになる順列閉路を抽出する順列閉路抽出部と、
前記抽出した順列閉路を構成するノードそれぞれの先頭のサーバを閉路の順に並べてスロット列を生成する第2のスロット列生成部と、
所定のハッシュ空間を、前記生成したスロット列の長さのスロットに分割し、前記分割したスロットそれぞれに、前記スロット列に示される順で前記サーバを割り当てたスロット群を生成するスロット群生成部とを備えることを特徴とするスロット群生成装置。 In a load distribution system that distributes load among a plurality of servers, a slot group generation device that generates a slot group used for distributing received packets,
A first slot sequence generation unit that generates a permutation combination of servers having a basic permutation length obtained by adding 1 to the number of one or more failed servers assumed in the load distribution system from the servers constituting the load distribution system ;
A connection graph generation unit for generating a permutation connection graph in which the generated permutation combinations are connected as nodes;
From the generated permutation connection graph, a permutation cycle extraction unit that extracts a permutation cycle in which the number of times each node passes is the same between all nodes;
A second slot string generation unit that generates a slot string by arranging the leading servers of the nodes constituting the extracted permutation cycle in the order of the cycles;
A slot group generation unit that divides a predetermined hash space into slots having a length of the generated slot string, and generates a slot group in which the servers are assigned to each of the divided slots in the order indicated by the slot string; A slot group generation device comprising:
前記スロット列の対象外としたサーバを、前記スロット列に組み込むとき、前記スロット列に示されるサーバについて、前記基本順列長から1を減じた数のサーバの順列組合せである拡張基礎順列を生成する拡張基礎順列生成部と、
前記スロット列の対象外としたサーバを、前記拡張基礎順列で挟んだ順列を生成し、前記生成した順列で、前記スロット列における当該拡張基礎順列の箇所を置換したスロット列を生成する拡張スロット列生成部とをさらに備えることを特徴とする請求項1に記載のスロット群生成装置。 The slot group generation device includes:
When a server that is excluded from the slot column is incorporated into the slot column, an extended basic permutation that is a permutation combination of the number of servers obtained by subtracting 1 from the basic permutation length is generated for the server indicated in the slot column. An extended basic permutation generator;
An expansion slot sequence that generates a permutation in which the servers excluded from the slot sequence are sandwiched by the extended basic permutation, and generates a slot sequence that replaces the location of the extended basic permutation in the slot sequence with the generated permutation The slot group generation device according to claim 1 , further comprising a generation unit.
前記負荷分散システムを構成するサーバから、前記負荷分散システムにおいて想定する1以上の故障サーバの台数に1を加算した基本順列長のサーバの順列組合せを生成するステップと、
前記生成した順列組合せをノードとして接続した順列接続グラフを生成するステップと、
前記生成した順列接続グラフから、各ノードの通過回数が全ノード間で同じになる順列閉路を抽出するステップと、
前記抽出した順列閉路を構成するノードそれぞれの先頭のサーバを閉路の順に並べてスロット列を生成するステップと、
所定のハッシュ空間を、前記生成したスロット列の長さのスロットに分割し、前記分割したスロットそれぞれに、前記スロット列に示される順で前記サーバを割り当てたスロット群を生成するステップとを実行することを特徴とするスロット群生成方法。 In a load distribution system that distributes load among a plurality of servers, a slot group generation device that generates a slot group used for distribution of received packets includes:
Generating a permutation combination of servers having a basic permutation length obtained by adding 1 to the number of one or more failed servers assumed in the load distribution system from the servers constituting the load distribution system ;
Generating a permutation connection graph connecting the generated permutation combinations as nodes;
Extracting a permutation cycle in which the number of passes of each node is the same between all nodes from the generated permutation connection graph;
Arranging the first servers of the nodes constituting the extracted permutation cycle in the order of the cycles to generate a slot sequence;
Performing a step of dividing a predetermined hash space into slots having the length of the generated slot sequence, and generating a slot group in which the servers are assigned to the divided slots in the order indicated by the slot sequence. A slot group generation method characterized by the above.
前記スロット列の対象外としたサーバを、前記スロット列に組み込むとき、前記スロット列に示されるサーバについて、前記基本順列長から1を減じた数のサーバの順列組合せである拡張基礎順列を生成するステップと、
前記スロット列の対象外としたサーバを、前記拡張基礎順列で挟んだ順列を生成し、前記生成した順列で、前記スロット列における当該拡張基礎順列の箇所を置換したスロット列を生成するステップとをさらに実行することを特徴とする請求項3に記載のスロット群生成方法。 The slot group generation device comprises:
When a server that is excluded from the slot column is incorporated into the slot column, an extended basic permutation that is a permutation combination of the number of servers obtained by subtracting 1 from the basic permutation length is generated for the server indicated in the slot column. Steps,
Generating a permutation in which the servers excluded from the slot sequence are sandwiched by the extended basic permutation, and generating a slot sequence by replacing the location of the extended basic permutation in the slot sequence with the generated permutation. The slot group generation method according to claim 3 , further executing.
前記スロット群生成装置は、
前記負荷分散システムを構成するサーバから、前記負荷分散システムにおいて想定する1以上の故障サーバの台数に1を加算した基本順列長のサーバの順列組合せを生成する第1のスロット列生成部と、
前記生成した順列組合せをノードとして接続した順列接続グラフを生成する接続グラフ生成部と、
前記生成した順列接続グラフから、各ノードの通過回数が全ノード間で同じになる順列閉路を抽出する順列閉路抽出部と、
前記抽出した順列閉路を構成するノードそれぞれの先頭のサーバを閉路の順に並べてスロット列を生成する第2のスロット列生成部と、
所定のハッシュ空間を、前記生成したスロット列の長さのスロットに分割し、前記分割したスロットそれぞれに、前記スロット列に示される順で前記サーバを割り当てたスロット群を生成するスロット群生成部とを備えることを特徴とする負荷分散システム。 In a load distribution system that distributes load among a plurality of servers, a slot group generation device that generates a slot group used for distribution of received packets, and distribution that distributes the received packets using the generated slot groups A load balancing system comprising a device,
The slot group generation device includes:
A first slot sequence generation unit that generates a permutation combination of servers having a basic permutation length obtained by adding 1 to the number of one or more failed servers assumed in the load distribution system from the servers constituting the load distribution system ;
A connection graph generation unit for generating a permutation connection graph in which the generated permutation combinations are connected as nodes;
From the generated permutation connection graph, a permutation cycle extraction unit that extracts a permutation cycle in which the number of times each node passes is the same between all nodes;
A second slot string generation unit that generates a slot string by arranging the leading servers of the nodes constituting the extracted permutation cycle in the order of the cycles;
A slot group generation unit that divides a predetermined hash space into slots having a length of the generated slot string, and generates a slot group in which the servers are assigned to each of the divided slots in the order indicated by the slot string; A load distribution system comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014027442A JP6139432B2 (en) | 2014-02-17 | 2014-02-17 | Slot group generation device, slot group generation method, and load distribution system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014027442A JP6139432B2 (en) | 2014-02-17 | 2014-02-17 | Slot group generation device, slot group generation method, and load distribution system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015154319A JP2015154319A (en) | 2015-08-24 |
JP6139432B2 true JP6139432B2 (en) | 2017-05-31 |
Family
ID=53896153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014027442A Expired - Fee Related JP6139432B2 (en) | 2014-02-17 | 2014-02-17 | Slot group generation device, slot group generation method, and load distribution system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6139432B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11902363B2 (en) | 2020-07-20 | 2024-02-13 | Nippon Telegraph And Telephone Corporation | Load distribution method, load distribution device, load distribution system and program |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5759881B2 (en) * | 2011-12-08 | 2015-08-05 | 株式会社日立ソリューションズ | Information processing system |
-
2014
- 2014-02-17 JP JP2014027442A patent/JP6139432B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015154319A (en) | 2015-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6355759B2 (en) | Method, system, and computer program for load balancing anycast data traffic | |
US8175103B2 (en) | Dynamic networking of virtual machines | |
CN106664298A (en) | Representational state transfer operations using information centric networking | |
JP5813872B2 (en) | COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM | |
Ferdousi et al. | Joint progressive network and datacenter recovery after large-scale disasters | |
WO2014114097A1 (en) | Load sharing method and apparatus | |
Rak et al. | Reliable anycast and unicast routing: protection against attacks | |
JP5526015B2 (en) | Gateway system, gateway device, and load balancing method | |
US10924454B2 (en) | Computing device and method for generating a fabric-wide IPV6 address | |
US10785103B2 (en) | Method and system for managing control connections with a distributed control plane | |
Ferdousi et al. | Joint progressive recovery of optical network and datacenters after large-scale disasters | |
JP6029936B2 (en) | COMMUNICATION CONTROL DEVICE, COMMUNICATION DEVICE, AND PROGRAM | |
US20190280922A1 (en) | Computing device and method for generating a link ipv6 address | |
JP6139432B2 (en) | Slot group generation device, slot group generation method, and load distribution system | |
JP6058576B2 (en) | Slot group generation device, slot group generation method, and load distribution system | |
US10904327B2 (en) | Method, electronic device and computer program product for searching for node | |
CN109981437B (en) | Multi-data center intercommunication method based on VPC and related equipment | |
JP7485046B2 (en) | LOAD DISTRIBUTING METHOD, LOAD DISTRIBUTING DEVICE, LOAD DISTRIBUTING SYSTEM, AND PROGRAM | |
CN102647424A (en) | Data transmission method and data transmission device | |
CN106131129A (en) | The method and apparatus of the data syn-chronization time management of GSLB | |
CN106470230A (en) | Distributed DNS node data consistency synchronization method and apparatus | |
US10084890B2 (en) | Sysplexport allocation across a z/OS sysplex | |
CN114513490B (en) | View library cluster | |
WO2024127639A1 (en) | Network management device, network management method, and network management program | |
US20240111785A1 (en) | Method and apparatus of adding additional chain to blockchain, and method and apparatus of generating shard for the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20151001 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20151005 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160113 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170111 |
|
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: 20170425 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170427 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6139432 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |