Nova Patents
EP0903901B1

Network service server load balancing

Abstract

This record has no abstract on file.

EP0903901B1, drawing sheet 1
Sheet 1 of 30

Term

Term ended

Expired 30 March 2018, 8.5 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

23 claims: 4 independent, 19 dependent

  1. 1
    A network load balancing device for receiving packets of data sent via a network from a first control unit (1-1) acting as a client towards a plurality of second control units (5-1, 5-2, ..., 5-n) acting as servers, each packet having a header including a client address (cip) that represents the first control unit and a group address (vip) that represents the second control units, said network load balancing device comprising:conversion information storing means (4-a) for storing conversion information for use in determining which of the second control units (5-1, 5-2, ..., 5-n) is to provide services for the first control unit, said conversion information storing means (4-a) being arranged to store a conversion table composed of a plurality of slots, each slot accessible by a respective index and containing server information;distributed ratio adjusting means (7) for adjusting the information contained in the conversion table (4-a);and load measuring means (6) for measuring loads on each of the second control units (5-1, 5-2, ..., 5-n) and notifying the distribution ratio adjusting means (7) of load conditions of the second control units (5-1, 5-2, ..., 5-n) to thereby allow the distribution ratio adjusting means (7) to adjust the information stored in the conversion table(4-a);said network load balancing device being arranged to receive a packet from said first control unit (1-1), to extract the header and derive therefrom an index to identify a slot in the conversion table (4-a), and to determine a second control unit (5-1, 5-2, ..., 5-n) which is to provide services to the first control unit from the server information in the slot;characterised in that said network load balancing device is for distributing the received packets among the second control units, said conversion information being for use in transferring said packets to each of the second control units, the device further comprising distributive relay means (4) for relaying the packets sent by the first control unit (1-1) to one or more of the second control units (5-1, 5-2, ... 5-n) according to the header of each packet and the conversion information stored in the conversion information storing means (4-a), said load measuring means (6) being arranged to measure loads on each of the second control units (5-1, 5-2... 5-n) by monitoring the packets relayed by the distributive relay means (4);and in that the conversion table (4-a) is a pattern hash table, the distributive relay means (4) for obtaining the index of a slot in the pattern hash table by applying a hash function to a pattern obtained by masking the packet header, for identifying structured data having the same pattern in the conversion table by means of pattern matching, for converting the pattern to an index to identify a slot, for determining one of said second control units (5-1, 5-2, ..., 5-n) to which the packet is to be directed from the server information that the slot holds, and for sending the packet to that one of the second control units (5-1, 5-2, ..., 5-n).
  2. 19
    A computer network comprising the network load balancing device (3) of any preceding claim, the first control unit (1-1, 1-2,...,1-m), and a group of the second control units (5-1, 5-2, ..., 5-n) in a configuration to which another network is connected.
  3. 22
    A network load balancing method for use with a system in which packets of data are transferred between a first control unit (1-1) acting as a client and a plurality of second control units (5-1, 5-2, ..., 5-n) acting as servers, said network load balancing method comprising the steps of, in a network load balancing device:storing conversion information, in the form of a conversion table (4-a) composed of a plurality of slots, each slot accessible by a respective index and containing server information, for use in determining which of the second control units (5-1, 5-2, ..., 5-n) is to provide services to the first control unit;receiving a packet from said first control unit, extracting a header and deriving therefrom an index to identify a slot in the conversion table (4-a), and determining a second control unit which is to provide services to the first control unit from the server information in the slot;and measuring the load on each of the second control units (5-1, 5-2, ..., 5-n) and adjusting the conversion information according to the load conditions of each of the second control units;characterised by : relaying the packets of data sent by the first control unit (1-1) to the second control unit (5-1, 5-2, ..., 5-n) thus determined according to the conversion information stored by the storing conversion information step;said relaying step including providing a conversion table (4-a) in the form of a pattern hash table, obtaining the index of a slot in the pattern hash table by applying a hash function to a pattern obtained by masking the packet header, identifying structured data having the same pattern in the conversion table by means of pattern matching, converting the pattern to an index to identify a slot, determining one of said second control units (5-1, 5-2, ..., 5-n) to which the packet is to be directed from the server information that the slot holds, and sending the packet to that one of the second control units (5-1, 5-2, ..., 5-n);and said measuring step including monitoring the packets relayed in said relaying step.
  4. 23
    A network load balancing program for use with a system in which packets of data are transferred via a network (2) between a first control unit (1-1) acting as a client and a plurality of second control units (5-1, 5-2, ..., 5-n) acting as servers, the network load balancing program allowing a computer to provide a network load balancing device performing the steps of:storing conversion information, in the form of a conversion table (4-a) composed of a plurality of slots, each slot accessible by a respective index and containing server information, for use in determining which of the second control units (5-1, 5-2, ..., 5-n) is to provide services to the first control unit;receiving a packet from said first control unit, extracting a header and deriving therefrom an index to identify a slot in the conversion table (4-a), and determining a second control unit which is to provide services to the first control unit from the server information in the slot;and measuring the load on each of the second control units (5-1, 5-2, ..., 5-n) and adjusting the conversion information according to the load conditions of each of the second control units;characterised by : relaying the packets of data sent by the first control unit (1-1) to the second control unit (5-1, 5-2, ..., 5-n) thus determined according to the conversion information stored by the storing conversion information step, said relaying step including providing a conversion table (4-a) in the form of a pattern hash table, obtaining the index of a slot in the pattern hash table by applying a hash function to a pattern obtained by masking the packet header, identifying structured data having the same pattern in the conversion table by means of pattern matching, converting the pattern to an index to identify a slot, determining one of said second control units (5-1, 5-2, ..., 5-n) to which the packet is to be directed from the server information that the slot holds, and sending the packet to that one of the second control units (5-1, 5-2, ..., 5-n);and said measuring step including monitoring the packets relayed in said relaying step.