KR100907946B1 - Dynamic Hashing Based Load Balancing System and Its Method - Google Patents

Dynamic Hashing Based Load Balancing System and Its Method Download PDF

Info

Publication number
KR100907946B1
KR100907946B1 KR1020070076426A KR20070076426A KR100907946B1 KR 100907946 B1 KR100907946 B1 KR 100907946B1 KR 1020070076426 A KR1020070076426 A KR 1020070076426A KR 20070076426 A KR20070076426 A KR 20070076426A KR 100907946 B1 KR100907946 B1 KR 100907946B1
Authority
KR
South Korea
Prior art keywords
server
hashing
value
user
load balancing
Prior art date
Application number
KR1020070076426A
Other languages
Korean (ko)
Other versions
KR20090012523A (en
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
Application filed by 펌킨네트웍스코리아 (주) filed Critical 펌킨네트웍스코리아 (주)
Priority to KR1020070076426A priority Critical patent/KR100907946B1/en
Publication of KR20090012523A publication Critical patent/KR20090012523A/en
Application granted granted Critical
Publication of KR100907946B1 publication Critical patent/KR100907946B1/en

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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Abstract

본 발명은 종래 부하분산기의 해싱알고리즘의 기술상의 문제점을 해결하기 위해서 안출된 것으로서, 해싱 알고리즘의 장점인 지정된 소량의 메모리만으로 무한대의 세션 처리 능력과 고속의 처리속도를 그대로 취하면서, 세션 기반의 알고리즘들의 장점인 부하분산의 정교함과 서버의 추가/삭제 또는 서버 과부하시의 재분배로 해싱값이 변화하게 됨에 따라 사용자와 서버간의 연결성을 보장하지 못하는 문제점과 캐싱 효과가 저하되는 문제점을 해결하며, 이를 통하여 낮은 사양의 소형 시스템에서도 고성능의 기능을 제공하는 동적 해싱 기반의 부하 분산 시스템 및 그 방법에 관한 것이다. The present invention has been made to solve the technical problem of the hashing algorithm of the conventional load balancer, and it is a session-based algorithm while taking infinite session processing capacity and high-speed processing speed with only a small amount of memory designated as an advantage of the hashing algorithm. As the hashing value is changed due to the sophistication of load balancing and the redistribution when the server is added / deleted or the server is overloaded, the problem of not guaranteeing the connectivity between the user and the server and the problem of degrading the caching effect are solved. The present invention relates to a load balancing system based on dynamic hashing that provides high performance even in a small system having a low specification.

본 발명은 부하분산을 위하여 서버들 앞단에 설치되어 서버로 향하는 사용자(101)의 요청을 수신하여 서버에 전달하며; 상기 시스템은 서버의 수보다 많은 해싱값을 가지며; 해싱값은 각각의 서버에게 적절하게 분배가 되며; 사용자(101)의 요청 중 일부 정보를 사용하여 해싱값을 계산하며; 해당 해싱값을 가지고 있는 서버에게 사용자(101)의 요청을 전달하며; 서버의 추가 시에 각각의 서버가 가지고 있는 해싱값의 일부를 추가된 서버에 할당하여 부하분산을 수행하며; 서버의 삭제/장애 시에 해당 서버가 가지고 있는 해싱값을 타 서버에 분배하며; 특정 서버에 과도한 요청이 집중한 경우에 해싱값의 일부를 다른 서버로 이동하여 부하를 적절히 분산하며; 특정 해싱값에 과도한 부하가 집중한 경우 이를 다수의 서버로 부하분산하며; 상기와 같은 일련의 작업이 스케줄링에 의해 시간 간격을 두고 처리함으로써 사용자(101)의 요청이 해싱값을 가지고 있는 서버에서 타 서버로 자연스럽게 넘어가도록 하며; 사용자(101)의 요청과 서버간의 연결성 보장(stickiness)을 위하여 타 서버로 넘기는 해싱값에 대해서 사용자(101)의 세션을 파악하여 일정시간동안 사용자(101) 요청과 서버간의 연결 관계를 유지하며 그 외의 신규 세션들에 대해서만 해싱 기반의 부하분산을 적용하는 것을 포함하는 시스템이다. The present invention is installed in front of the servers for load balancing to receive the request of the user 101 to the server and delivers to the server; The system has more hashing values than the number of servers; The hashing value is properly distributed to each server; Calculates a hashing value using some information of the user 101's request; Sends a request of the user 101 to a server having the corresponding hashing value; Load balancing is performed by allocating a portion of the hashing value of each server to the added server when the server is added; Distributes the hashing value of the server to other servers when the server is deleted / failed; If excessive requests are concentrated on one server, some of the hashing values are moved to other servers to balance the load appropriately; If excessive load is concentrated on a particular hashing value, it is then distributed among multiple servers; Such a series of tasks are processed at a time interval by scheduling so that the request of the user 101 is naturally passed from the server having the hashing value to the other server; For the purpose of sticking between the request of the user 101 and the server, the session of the user 101 is identified for the hashing value passed to another server, and the connection between the user 101 request and the server is maintained for a predetermined time. A system that includes applying hashing based load balancing only for new sessions.

Description

동적 해싱 기반의 부하 분산 시스템 및 그 방법 {A Dynamic Hashing based Load Balancing System and Its Method}Dynamic Hashing based Load Balancing System and Its Method

본 발명은 해싱 기반의 부하 분산기에 관한 것으로서, 보다 상세하게는 해싱 알고리즘의 장점인 낮은 메모리 사용률과 무한대의 세션 처리 능력 그리고 고속의 처리속도를 그대로 유지하면서 세션 기반의 알고리즘들의 장점인 부하분산의 정교함과 서버의 추가/삭제/과부하시 해싱함수의 변화로 인하여 사용자와 서버간의 연결성을 보장하며 캐싱 효과를 향상시키며, 그에 따라 단순한 부하분산 알고리즘을 통하여 효율적인 부하분산기를 제공하며 이를 통해 소형 시스템에도 고성능의 기능을 제공하는 동적 해싱 기반의 부하 분산 시스템 및 그 방법에 관한 것이다.The present invention relates to a hashing-based load balancer, and more particularly, to fine-tune load balancing, which is an advantage of session-based algorithms, while maintaining low memory utilization, infinite session processing capacity, and high throughput. When adding / deleting / overloading servers and servers, changes in hashing function ensures connectivity between users and servers and improves caching effects. Therefore, it provides an efficient load balancer through a simple load balancing algorithm. A dynamic hashing based load balancing system and method thereof are provided.

일반적으로 부하분산기는 IP 주소와 포트를 기반으로 부하분산을 하는 Layer 4 방식과 HTTP의 URL, Cookie 등의 어플리케이션 내의 식별자를 주소로 부하분산을 하는 Layer 7방식이 존재한다. 부하분산기들은 어느 정보를 주소로 활용하느냐에 상관없이 모두 동일한 부하분산 알고리즘을 사용하는데 대표적인 기술로는 Round-Robin, Least Connection, 응답시간에 기반한 부하분산기법, 서버의 상태나 부하 정보를 이용한 부하분산 기법들을 사용한다. In general, there are Layer 4 methods for load balancing based on IP addresses and ports, and Layer 7 methods for load balancing addresses using identifiers in applications such as HTTP URLs and cookies. Regardless of which information is used as the address, all the load balancers use the same load balancing algorithm. Representative techniques include round-robin, least connection, load balancing based on response time, load balancing using server status or load information. Use them.

도 1은 종래의 부하 분산기가 사용되는 일반적인 상황을 나타내는 블록도이다. 일반적인 부하분산 기술들은 대부분 사용자(101) 혹은 사용자(101)의 요청과 서버1,2,3,(104,105,106)간의 연결을 서버에 적절하게 분산하는 기법으로서, 이러한 연결들을 각각 관리하기 위해서 사용하는 최소 단위로 세션(session) 혹은 커넥션(connection)이라는 단위를 사용한다. 이러한 알고리즘들은 부하분산기내에 세션 당 일정크기의 메모리를 할당하여 사용하므로 사용자(101) 또는 사용자(101)의 요청이 증가하는 경우 세션수가 늘어나 부하분산기의 메모리 사용량이 비례적으로 증가하는 문제를 가지며 수많은 세션을 고속으로 찾기 위하여 해싱 기법을 도입하여 세션을 찾는 방법을 사용한다. 1 is a block diagram illustrating a general situation in which a conventional load balancer is used. In general, load balancing techniques are a technique for properly distributing connections between a request of a user 101 or a user 101 and servers 1, 2, 3, (104, 105, and 106) to a server. Units are called sessions or connections. Since these algorithms allocate and use a certain amount of memory per session in the load balancer, the number of sessions increases when the request of the user 101 or the user 101 increases, and the memory usage of the load balancer increases proportionally. In order to find a session at high speed, we introduce a hashing technique to find a session.

그러나 이러한 세션기반 부하분산 방식은 유한한 해싱 테이블 내에서 무한한 세션을 찾는 방식으로 많은 사용자(101)로 인하여 세션의 수가 늘어날 경우 이에 비례하여 검색시간이 늘어나 부하분산기 처리속도에 영향을 주며, 세션의 한계치가 유한한 메모리의 크기에 비례한다는 단점을 가진다. However, this session-based load balancing method finds infinite sessions within a finite hashing table. When the number of sessions increases due to many users 101, the search time increases in proportion to the load balancer processing speed. The disadvantage is that the limit is proportional to the size of the finite memory.

또한, 부하분산기(103)들은 어플리케이션 서버1,2,3(104,105,106)들 간에 사용자(101)의 접속이나 식별정보를 공유할 수 없는 경우 서버1,2,3(104,105,106)들 간의 부하분산과 함께 사용자(101)와 서버1,2,3(104,105,106)간의 연결보장성(stickiness)을 유지해야한다. 이 경우에는 주로 사용자(101) 측에서 서버에 접속을 시도하거나 정보를 요청할 때 자신의 식별 정보를 첨부하여 보내야 하며, 부하분산기(103)는 상기 식별정보를 일정시간 동안 보관하여야 하며, 일정 시간 내에 상기 식별정보를 가진 요청이 들어오는 경우 이를 동일한 서버로 전달하여야 한다. 만일 이러한 상황에서 연결성을 보장하지 못하는 경우에는 정상적으로 어플리케이션을 사용하지 못하는 문제가 발생한다. 이것이 세션기반 부하분산 알고리즘이 주로 사용되는 이유 중의 하나이다. In addition, the load balancers 103 together with the load distribution between the servers 1, 2, 3 (104, 105, 106) if the user 101 connection or identification information cannot be shared between the application servers 1, 2, 3 (104, 105, 106). The stickiness between the user 101 and the servers 1, 2, 3 (104, 105, 106) must be maintained. In this case, when the user 101 attempts to access the server or requests information from the user 101 side, his identification information should be attached and sent, and the load balancer 103 should keep the identification information for a certain time, and within a certain time. When a request with the identification information comes in, it must be delivered to the same server. If connectivity is not guaranteed in such a situation, a problem arises in that the application cannot be used normally. This is one of the reasons why session-based load balancing algorithms are often used.

세션기반 부하분산 알고리즘에 속하지 않는 해싱 알고리즘은 부하분산 대상 서버 수에 기반한 해싱함수를 사용하며 세션을 기록하지 않고 단지 해싱함수에서 나오는 값을 부하분산 결과로 판단하고 해당 서버로 사용자(101)의 요청을 전달한다. 또한, 상기 방식에 있어서 사용자(101)와 사용자(101)의 요청을 출발지 IP주소, 출발지 IP주소와 포트(port), HTTP의 Cookie, URL, URI 등의 정보를 해싱함수를 통하여 해싱값으로 변환하여 서버를 선택한다. The hashing algorithm, which does not belong to the session-based load balancing algorithm, uses a hashing function based on the number of load balancing target servers. Instead of recording a session, the hashing algorithm judges the value from the hashing function as the load balancing result and requests the user 101 to the server. To pass. In the above method, the request of the user 101 and the user 101 is converted into a hashing value through a hashing function of information such as a source IP address, a source IP address and a port, an HTTP cookie, a URL, and a URI. To select the server.

해싱 알고리즘을 이용하는 종래 서버 부하 분산방식을 예를 들어 들어 설명하면 다음과 같다. For example, a conventional server load balancing method using a hashing algorithm will be described.

서버 그룹내 서버 대수가 6대, 서버 0, 서버1, .. 서버 5가 있다고 가정하자. 사용자의 요청 패킷내 출발지 IP 주소값에 모듈로 6을 적용하여 그 결과값 (0~5)으로 해당 서버를 결정한다. Suppose there are six servers in a server group, server 0, server 1, .. server 5. Modulo 6 is applied to the source IP address value in the user's request packet, and the corresponding server is determined by the result value (0 ~ 5).

해싱기반 부하분산 알고리즘은 세션기반 부하분산 알고리즘과 달리 해싱함수를 이용하기 때문에 서버의 부하정보를 전혀 고려하지 않으며 사용자(101) 및 사용자(101)의 요청 각각에 대해서 세션을 할당하지 않기 때문에 외부의 사용자(101)나 사용자(101)의 요청수가 늘어나도 부하분산기내 메모리의 증가가 없어 무한대의 사용자(101) 또는 사용자(101)의 요청을 처리할 수 있는 장점이 있다. Since the hashing-based load balancing algorithm uses a hashing function unlike the session-based load balancing algorithm, it does not consider the load information of the server at all and does not allocate a session for each of the user 101 and the request of the user 101. Even if the number of requests of the user 101 or the user 101 increases, there is no increase in the memory in the load balancer, and thus there is an advantage that the user 101 or the user 101 may process requests indefinitely.

또한, 사용자(101) 또는 사용자(101)의 요청이 특정 서버로만 전달되는 점에 있어서 연결보장성(stickiness)과 서버의 캐싱 효과가 증가 하는 효과를 얻을 수 있다. In addition, since the request of the user 101 or the user 101 is transmitted only to a specific server, the connection security and the caching effect of the server may be increased.

하지만 해싱값으로 해당 서버(104)(105)(106)가 결정되기 때문에 부하분산이 정교하게 되지 않으며, 그리고 해싱함수의 입력 값을 출발지 IP 주소만을 사용하는 경우 프락시나 SNAT(Source Network Address Translation)을 통해 들어온 사용자(101)들의 요청은 하나의 사용자(101)로 보여 특정 서버로 부하가 집중되는 현상을 보인다. 또한 서버의 추가/삭제/장애 현상이 발생하였을 때, 서버수에 기반한 해싱함수를 사용하는 알고리즘은 사용가능한 서버수 변경으로 인해 해싱함수가 변경되어 사용자의 요청과 서버와의 연결관계가 바뀌게 되어 결과적으로 사용자(101) 또는 사용자(101)와 서버간의 연결보장성(stickiness)을 보장하지 못하는 문제점이 있으며 이는 서버 어플리케이션의 특성에 따라서 접속이 끊기거나 어플리케이션이 오동작하는 문제점을 가질 수 있다. However, since the servers 104, 105, and 106 are determined by the hashing value, the load distribution is not sophisticated, and when the input value of the hashing function uses only the source IP address, the proxy or source network address translation (SNAT) is used. The requests of the users 101 who came through are seen as one user 101 and the load is concentrated on a specific server. In addition, when a server add / delete / failure occurs, the algorithm using the hashing function based on the number of servers changes the hashing function due to the change in the number of available servers, resulting in a change in the connection between the user's request and the server. As a result, there is a problem in that it does not guarantee the stickiness between the user 101 or the user 101 and the server, which may have a problem that the connection is disconnected or the application malfunctions according to the characteristics of the server application.

해싱기반 알고리즘을 사용하는 경우 서버그룹중 임의의 서버가 과부하 상태가 되어 그 서버가 담당하던 세션중의 일부를 다른 서버로 재배치해야 하는 경우에도 위에서 설명하는 사용자(101) 또는 사용자(101)의 요청과 서버간의 연결보장성(stickiness)을 보장하지 못하는 문제점이 있다.When using a hashing-based algorithm, even if any server in the server group becomes overloaded and needs to relocate some of the sessions that the server was in charge to another server, the request of the user 101 or the user 101 described above. There is a problem that does not guarantee the stickiness between the server and the server.

기존 해싱기반 부하분산 알고리즘에서 서버그룹내 사용가능한 서버 대수가 변경되면 해싱함수가 변경되어 사용자와 서버간의 연결보장성(stickness)이 깨진다. 이러한 서버 대수가 변경되는 상황들은 크게 3가지로 나눌 수 있다. 임의의 서버에서 장애가 발생한 상황, 서버 그룹내 서버 평균부하가 너무 낮거나 유지서버 목적으로 특정서버를 down하고자 하는 경우에 서버 삭제하는 상황, 서버그룹내 서버 평균 부하가 너무 높아 서버를 추가하는 상황이다. 서버 대수는 변경은 없으나 연결보장성(stickness)가 깨지는 또 다른 상황은 서버 그룹내 특정 서버의 부하가 너무 높아 그 서버가 담당하던 사용자요청들을 다른 서버들에게 재분배하는 상황이 발생하는 경우 발생할 수 있다. 위 상황 중들에서 임의의 서버에서 장애가 발생하는 경우에는 세션기반 부하분산 알고리즘을 사용하는 경우에도 연결보장성은 유지될 수 없다. In the existing hashing-based load balancing algorithm, if the number of available servers in the server group is changed, the hashing function is changed to break the stickness between the user and the server. The situation in which the number of servers changes is largely divided into three. A situation where a failure occurs in a server, the average server load in the server group is too low, or the server is deleted when the server is down for maintenance server purposes, and the server load in the server group is too high. . Another situation where the number of servers remains unchanged, but stickiness is broken, can occur when a particular server in a server group is too heavy to redistribute user requests to other servers. In any of the above situations, if any server fails, connection security cannot be maintained even if a session-based load balancing algorithm is used.

해싱 기반 부하 분산 기법에 관한 내용은 이 기술 분야에서 알려진 기술이다. 예를 들어, 2007년 4월 25일에 등록된 특허 제0713625호의 부하 분산 시스템의 과부하 제어 방법 및 그 장치에 관한 특허 명세서에도 기재되어 있으므로 여기서는 해싱 기반 부하 분산 기법에 대한 구체적인 설명은 생략한다.Hashing based load balancing techniques are known in the art. For example, since the patent specification relating to the overload control method and apparatus of the load balancing system of Patent No. 0713625 registered on April 25, 2007 is also described, a detailed description of the hashing-based load balancing technique is omitted here.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위해서 안출된 것으로서, 본 발명의 목적은 해싱 알고리즘의 장점인 낮은 메모리 사용률과 무한대의 세션 처리 능력 그리고 고속의 처리속도를 그대로 유지하면서 세션 기반의 알고리즘들의 장점인 부하분산의 정교함과 서버의 추가/삭제/과부하시 해싱함수의 변화로 인하여 사용자와 서버간의 연결성을 보장하며 캐싱 효과를 향상시키는 동적 해싱 기반의 부하 분산 시스템을 제공하는데 있다. SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems of the prior art, and an object of the present invention is to provide a method of session-based algorithms while maintaining low memory utilization, infinite session processing capability, and high processing speed. It is a dynamic hashing-based load balancing system that guarantees connectivity between users and servers and improves caching effect due to the sophistication of load balancing and changes in the hashing function during server addition / deletion / overload.

본 발명의 다른 목적은 단순한 부하분산 알고리즘을 통하여 효율적인 부하분 산기를 제공하며 이를 통해 소형 시스템에도 고성능의 기능을 제공하는 동적 해싱 기반의 부하 분산 시스템을 제공하는데 있다. Another object of the present invention is to provide a load balancing system based on a dynamic hashing that provides an efficient load balancer through a simple load balancing algorithm, thereby providing a high performance function even in a small system.

본 발명의 또 다른 목적은 해싱 알고리즘의 장점인 낮은 메모리 사용률과 무한대의 세션 처리 능력 그리고 고속의 처리속도를 그대로 유지하면서 세션 기반의 알고리즘들의 장점인 부하분산의 정교함과 서버의 추가/삭제/과부하시 해싱함수의 변화로 인하여 사용자와 서버간의 연결성을 보장하며 캐싱 효과를 향상시키는 동적 해싱 기반의 부하 분산 방법을 제공하는데 있다. It is still another object of the present invention to maintain the low memory utilization, infinite session processing capability, and high processing speed of the hashing algorithm, while the load balancing sophistication and server addition / deletion / overload are advantages of the session-based algorithm. It is to provide a load balancing method based on dynamic hashing that guarantees connectivity between user and server and improves caching effect by changing hashing function.

본 발명의 또 다른 목적은 단순한 부하분산 알고리즘을 통하여 효율적인 부하분산기를 제공하며 이를 통해 소형 시스템에도 고성능의 기능을 제공하는 동적 해싱 기반의 부하 분산 방법을 제공하는데 있다. It is still another object of the present invention to provide an efficient load balancer through a simple load balancing algorithm, thereby providing a load balancing method based on dynamic hashing that provides high performance to a small system.

상기 목적을 달성하기 위한 본 발명의 동적 해싱 기반의 부하 분산 시스템은 사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서, 사용자의 요청에서 임의의 정보를 해싱값으로 계산하는 해싱값 추출기; 계산된 해싱값을 이용하여 처리가능한 서버그룹중 어느 하나의 서버를 선택하게 하며, 서버의 추가/삭제/장애/과부하시 상기 선택된 어느 하나의 서버를 변경하기 위해 해싱값을 이동하는 해싱테이블; 서버그룹의 어느 하나의 서버의 추가/삭제 또는 어느 하나의 서버 과부하시 사용자의 요청과 서버그룹의 서버들 간의 연결성을 보장하면서 해싱값과 서버와의 연결관계를 동적으로 바꾸기 위해 해싱값 이동시간, 세션기록시간 그리고 해싱값에 대한 과부하 상태 정보와 같은 해싱값이 이동할 수 있는 상황 정보를 포함하는 해싱값이동정보테이블; 서버의 추가/삭제 또는 과부하시 해싱값 이동을 원활하게 하기 위하여 일정시간 동안 사용자 요청에 대한 세션 정보를 기록할 수 있는 세션테이블; 상기 테이블들의 정보를 이용하거나 또는 테이블들의 정보를 갱신하면서 사용자 요청을 전달할 대상서버를 서버그룹 중에서 하나를 선택하면서, 주기적으로 서버들의 상태를 확인하여 장애가 발생하면 그 선택된 서버를 후보에서 제외하는 기능을 포함하는 부하분산제어 및 장애감시부로 구성되어 있는 것을 특징으로 한다.Dynamic hashing-based load balancing system of the present invention for achieving the above object is a hashing-based load balancer that distributes the user's request to the server groups, and calculates any information in the user's request as a hashing value Hashing value extractor; A hashing table for selecting one of the server groups that can be processed using the calculated hashing value, and moving the hashing value to change the selected one server upon addition / deletion / fault / overload of the server; When adding / deleting one server in a server group or when one server is overloaded, the hashing value movement time is changed to dynamically change the connection relationship between the hashing value and the server while ensuring the connectivity between the user request and the servers in the server group. A hashing value movement information table including information on a state in which a hashing value can be moved, such as a session recording time and an overload state information on the hashing value; A session table capable of recording session information on a user request for a predetermined time in order to smoothly move a hashing value when adding / deleting or overloading a server; By selecting one of the server groups to which the user's request will be delivered while using the information of the tables or updating the information of the tables, periodically checking the status of the servers and removing the selected server from the candidate when a failure occurs. It is characterized by comprising a load distribution control and fault monitoring unit.

본 발명의 동적 해싱기반의 부하분산시스템은 상기 해싱값 추출기가 해싱값 계산을 위해 사용자 요청 정보내 임의의 일부 정보가 사용될 수 있으며; 이러한 정보는 IP 주소, TCP/UDP 포트, HTTP에 포함된 Cookie, URL, 또는 URI 인 것을 특징으로 한다.In the dynamic hashing-based load balancing system of the present invention, the hashing value extractor may use any part of information in the user request information for the hashing value calculation; This information is characterized in that the IP address, TCP / UDP port, Cookie, URL, or URI included in HTTP.

본 발명의 동적 해싱기반의 부하분산 시스템은 상기 부하분산제어 및 장애감시부는 부하분산 서버그룹내 하나의 임의 서버에 장애가 발생한 경우에 상기 서버가 처리했던 해싱값이 나머지 부하분산대상 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 한다.In the dynamic hashing-based load balancing system of the present invention, the load balancing control and fault monitoring unit distributes the hashing value processed by the server evenly to the remaining load balancing target server when one server in the load balancing server group fails. To this end, the hashing value may be evenly distributed or the number of hashing values may be evenly distributed by using the load information average value for each hashing value.

본 발명의 동적 해싱기반의 부하분산 시스템은 상기 부하분산제어 및 장애감시부가 서버 그룹내 하나의 임의 서버가 삭제된 경우에 상기 서버가 처리했던 해싱값이 나머지 부하분산대상 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 한다.In the dynamic hashing-based load balancing system of the present invention, in order to distribute the hashing value processed by the server evenly to the remaining load balancing target servers when one load server in the load balancing control and fault monitoring unit is deleted, The hashing value may be evenly distributed or the number of hashing values may be evenly distributed by using an average value of load information for each hashing value.

본 발명의 동적 해싱기반의 부하분산 시스템은 상기 부하분산제어 및 장애감시부가 부하분산 서버그룹내 새로운 서버4가 추가되는 경우에 서버들이 처리했던 해싱값이 새로 추가된 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 한다.In the load balancing system based on the dynamic hashing of the present invention, the load balancing control and fault monitoring unit distributes the hashing values processed by the servers evenly to the newly added server when the new server 4 is added in the load balancing server group. The hashing value may be evenly distributed or the number of hashing values may be evenly distributed by using the load information average value for the hashing value.

본 발명의 동적 해싱기반의 부하분산 시스템은 상기 부하분산제어 및 장애감시부가 서버그룹내 특정 서버가 계속 처리할 수 있으나 부하가 해싱값 이동정보테이블에 지정된 1차 과부하 임계치를 넘었을 때, 상기 특정서버의 해싱값의 부하정보를 이용하여, 이들 중 부하가 작은 해싱값들을 상기 서버보다 부하가 작은 서버들로 분배하는 것을 특징으로 한다.In the dynamic hashing-based load balancing system of the present invention, the load balancing control and fault monitoring unit can continue to process the specific server in the server group, but when the load exceeds the primary overload threshold specified in the hashing value movement information table, The load information of the hashing value of the server may be used to distribute hashing values having a smaller load among them to servers having a smaller load than the server.

본 발명의 동적 해싱기반의 부하분산 시스템은 또한 상기 부하분산제어 및 장애감시부가 부하분산 서버그룹내 특정 서버가 계속 처리 할 수 없는 상태가 되는, 해싱값 이동정보테이블에 지정된 2차 과부하 임계치를 넘었을 때, 상기 특정서버에서 과부하를 유발하는 해싱값을 찾아내어, 해당 해싱값으로 들어오는 사용자 요청을 모든 또는 부하가 작은 서버들에게 순차 분배하는 것을 특징으로 한다.The dynamic hashing-based load balancing system of the present invention also has exceeded the secondary overload threshold specified in the hashing value movement information table, in which the load balancing control and fault monitoring unit cannot be processed by a specific server in the load balancing server group. In this case, the specific server finds a hashing value causing an overload and sequentially distributes a user request coming into the hashing value to all or small load servers.

본 발명의 동적 해싱기반의 부하분산 시스템은 또한 해싱테이블에서 서버그룹의 서버 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 어느 하나의 서버의 장애/삭제/추가로 인하여 동작하는 서버그룹의 서버 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 해싱값 크기는 변경하지 않고 해싱테이블내 해싱값들이 서버그룹 중의 배정된 어느 하나의 서버들을 동적으로 변경함으로써, 해싱값 이동을 통하여 서버 재배정하는 것을 특징으로 한다.The dynamic hashing-based load balancing system of the present invention also has more hashing values than the number of servers in the server group in the hashing table, and the servers in the server group operating due to the failure / deletion / addition of any one server in the server group. In a server reassignment situation that involves changing the number or redistributing load to another server when one server is overloaded, the hashing values in the hashing table are assigned to one of the server groups without changing the size of the hashing value. By dynamically changing, the server is reassigned by moving the hash value.

본 발명의 동적 해싱기반의 부하분산 시스템은 또한 해싱테이블에서 서버그룹의 서버 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 어느 하나의 서버 삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 모든 해싱값을 임의의 지정된 시간 없이 타 서버로 이동시키지 않고, 사용자의 요청과 서버와의 기존 연결성이 끊어지지 않도록 임의의 지정된 시간을 기준으로 이동하는 것을 특징으로 한다.The dynamic hashing-based load balancing system of the present invention also has more hashing values than the number of servers in the server group in the hashing table, and the number of servers operating due to the deletion / addition of any one server in the server group is changed or either. Do not move all hashing values to other server without any specified time in server reassignment situation including load redistribution to other server in case of overload of server, and user's request and server are not disconnected. It is characterized in that the movement based on any specified time.

본 발명의 동적 해싱기반의 부하분산시스템은 또한 해싱테이블에서 서버그룹의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 어느 하나의 서버 삭제/추가로 인하여 동작하는 서버들의 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서, 서버 재배정 상황이 발생한 시점부터 사용자의 요청과 서버와의 연결성이 끊이지 않게 해싱값 이동들이 끝날 때 까지 사용자의 요청과 서버와의 연결 정보 저장 및 참조를 위하여 세션테이블을 운영하는 것을 특징으로 한다.The dynamic hashing-based load balancing system of the present invention also has more hashing values than the number of server groups in the hashing table, and the number of servers operating due to the deletion / addition of any one server in the server group is changed or In server reassignment, including the case where the server redistribution is to be redistributed to other servers in case of overload, the user's request from the time when the server reassignment occurs until the end of hashing value movements is maintained. It operates a session table for storing and referencing connection information with the server.

본 발명의 동적 해싱기반의 부하분산방법은 또한 해싱테이블에서 서버그룹의 서버 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 어느 하나의 서버 삭제/추가로 인하여 동작하는 서버의 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서, 사용자의 연결성을 보장하기 위하여 타 서버로 이동이 결정된 해싱값에 대하여 지정된 시간동안 상기 해싱값으로 들어온 사용자의 요청에 대한 세션정보를 생성하며; 상기 생성된 세션 정보는 일정시간동안 유지하며; 일정 시간 내에 기존 세션에 대한 사용자의 요청이 들어오면 지정된 시간만큼 세션을 더 유지시키며; 상기 유지 되고 있는 세션에 대해서는 서버와의 접속을 지정된 시간동안 유지하며; 기존 세션이 서버와의 접속을 유지하는 상기 지정된 시간 내에 세션에 등록되지 않은 사용자의 요청에 대해서는 사용자의 요청에서 임의의 정보를 해싱값으로 계산하고, 계산된 해싱값을 이용하여 처리가능한 서버를 선택하는 해싱방법에 의하여 사용자의 요청을 전달하며; 세션이 기록된 사용자의 요청은 일정 시간이 지난 이후에 사용자의 요청에서 임의의 정보를 해싱값으로 계산하고, 계산된 해싱값을 이용하여 처리가능한 서버를 선택하는 해싱방법에 의하여 새로운 서버 또는 다른 서버에 전달하는 것을 특징으로 한다.The dynamic hashing-based load balancing method of the present invention also has more hashing values than the number of servers in the server group in the hashing table, and the number of servers operating due to the deletion / addition of any one server in the server group is changed or In a server reassignment situation including load redistribution to another server in the event of an overload in one server, the user who has entered the hashing value for a specified time with respect to the hashing value decided to move to another server to ensure user connectivity. Generate session information for the request; The generated session information is maintained for a predetermined time; If the user's request for an existing session comes within a certain time, the session is further maintained for a specified time; Maintain a connection with a server for a specified time for the session being held; For a request of a user who is not registered to the session within the specified time for which the existing session maintains the connection with the server, any information in the user's request is calculated as a hashing value and the server can select a processable server using the calculated hashing value. Forwarding the user's request by a hashing method; The user's request in which the session is recorded is calculated as a hashing value of the user's request after a certain period of time, and a new server or another server by a hashing method of selecting a server that can be processed using the calculated hashing value. Characterized in that delivered to.

삭제delete

본 발명의 동적 해싱 기반의 부하 분산 시스템 및 그 방법은 서버 추가/삭제/장애/과부하 상황에서 사용자의 요청이 서버들 사이로 불균등하게 분포되는 기존 방법(부하의 불균등)과는 달리 상황에 무관하게 사용자의 요청을 서버들 사이로 균등하게 분포시킨다(부하의 균등). 또한 동적 해싱 기반의 부하 분산 시스템 및 그 방법은 서버 추가/삭제/장애/과부하 상황에서 사용자의 요청과 서버간에 지속적인 연결 관계가 성립되지 못하는 기존 방법과 달리 상황에 무관하게 사용자의 요청과 서버간에 지속적인 연결 관계가 성립한다. The dynamic hashing-based load balancing system and method thereof of the present invention are different from the conventional method (unbalance of load) in which user requests are distributed unevenly among servers in server addition / deletion / failure / overload situations. Evenly distributes requests between servers (evenly load). In addition, dynamic hashing-based load balancing system and its method are continuously connected between user request and server regardless of the situation, unlike the existing method in which a continuous connection relationship between a user request and a server cannot be established in a server add / delete / fault / overload situation. The connection is established.

이하 첨부도면을 참조하여 본 발명을 보다 상세히 설명하면 다음과 같다. Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings.

도 1은 종래의 부하분산기(103)가 사용되는 일반적인 상황을 나타낸다. 사용자(101)는 인터넷 망(102)을 통해 웹 서비스 등을 요청하면 서버1(104), 서버2(105), 서버3(106)들 앞단에 설치된 부하분산기(103)가 해당 요청을 가장 빠르게 처리할 수 있는 서버로 사용자(101)의 요청을 보낸다. 이때, 부하 분산 정책에서 해싱을 사용하게 되면 동일한 사용자(101)의 요청을 동일한 서버로 1:1로 매핑할 수 있다. 예를 들어, 사용자(101) 요청 1을 서버 1(104)이 처리하였다면 이후의 사용자(101) 요청 1이 다시 요청되면 이를 처리하던 서버 1(104)이 다시 처리하게 된다.1 shows a general situation in which a conventional load balancer 103 is used. When the user 101 requests a web service through the Internet network 102, the load balancer 103 installed in front of the server 1 104, the server 2 105, and the server 3 106 makes the request most quickly. The request of the user 101 is sent to the server capable of processing. In this case, when hashing is used in the load balancing policy, requests of the same user 101 may be mapped 1: 1 to the same server. For example, if the server 1 104 processes the user 101 request 1, the server 1 104, which has processed this, is processed again when the user 101 request 1 is requested again.

도2는 종래의 해싱 기반 부하분산기(200)의 구조를 나타내는 블록도이다. 종래의 부하분산기(200)는 해싱값 추출기(220), 해싱테이블(230), 부하분산제어 및 장애감시부(210)로 구성되어 있다. 2 is a block diagram illustrating a structure of a conventional hashing-based load balancer 200. The conventional load balancer 200 includes a hashing value extractor 220, a hashing table 230, a load balancing control and a fault monitoring unit 210.

해싱값 추출기(220)는 사용자의 요청에서 임의의 정보를 해싱값으로 계산하는 기능을 담당하고, 해싱테이블(230)은 계산된 해싱값을 이용하여 처리 가능한 서버를 선택할 수 있도록 하는 기능을 담당한다. 부하분산제어 및 장애감시부(210)는 해싱테이블 정보를 이용하여 사용자 요청을 전달할 대상 서버를 여러 서버중에서 하나를 선택하면서, 주기적으로 서버들의 상태를 확인하여 장애가 발생하면 해당 서버를 후보에서 제외하는 기능을 담당한다.The hashing value extractor 220 is responsible for calculating arbitrary information as a hashing value in a user's request, and the hashing table 230 is responsible for selecting a server that can be processed using the calculated hashing value. . The load balancing control and fault monitoring unit 210 selects a target server to which a user request is delivered from among several servers using hashing table information, and periodically checks the state of the servers to exclude the server from candidates when a failure occurs. In charge of the function.

도 3은 종래의 해싱 기반 부하분산기(320)가 사용자의 요청(310)을 처리하는 과정을 나타내는 블록도이다. 부하분산기(320)는 사용자 요청(310) 정보에서 해싱값추출기(321)를 통해 1이라는 해싱값을 추출하고, 해싱테이블(322)에서 해싱값 1에 할당된 서버(330) 2를 찾아 사용자의 요청을 서버(330) 2로 보내는 역할을 수행한다.3 is a block diagram illustrating a conventional hashing-based load balancer 320 to process a user's request 310. The load balancer 320 extracts a hashing value of 1 from the user request 310 information through the hashing value extractor 321, and finds the server 330 2 assigned to the hashing value 1 in the hashing table 322. It sends a request to the server (330) 2.

도 4는 본 발명의 동적 해싱 기반의 부하분산기(400)의 구조를 나타내는 블 록도이다. 4 is a block diagram showing the structure of the load balancer 400 based on the dynamic hashing of the present invention.

본 발명에 따른 동적 해싱 기반의 부하분산기(400)는 해싱값 추출기(420), 해싱테이블(430), 해싱값 이동정보테이블(440), 세션테이블(450), 부하분산제어 및 장애감시부(410)로 구성되어있다.The dynamic hashing-based load balancer 400 according to the present invention includes a hashing value extractor 420, a hashing table 430, a hashing value movement information table 440, a session table 450, a load balancing control and a fault monitoring unit ( 410).

해싱값 추출기(420)는 사용자의 요청에서 임의의 정보를 해싱값으로 계산하는 기능을 담당하고, 해싱테이블(430)은 계산된 해싱값을 이용하여 처리 가능한 서버를 선택할 수 있도록 하는 기능을 담당한다.  The hashing value extractor 420 is responsible for calculating arbitrary information as a hashing value in a user's request, and the hashing table 430 is responsible for selecting a server that can be processed using the calculated hashing value. .

해싱값 이동정보테이블(440)은 서버 추가/삭제 또는 특정 서버의 과부하시 사용자의 요청과 서버간의 연결성을 보장하면서 해싱값과 서버와의 연결관계를 동적으로 바꾸기 위해 해싱값 이동시간, 세션기록시간 그리고 해싱값에 대한 과부하 상태 정보 등 해싱값이 이동할 수 있는 상황 정보를 포함한다. The hashing value movement information table 440 is a hashing value movement time and a session recording time to dynamically change the connection relationship between the hashing value and the server while ensuring connectivity between the user request and the server when a server is added / deleted or overloaded. And situation information in which the hashing value can move, such as overload state information for the hashing value.

세션테이블(450)은 서버의 추가/삭제 또는 과부하시 해싱값 이동을 원활하게 하기 위하여 일정 시간 동안 사용자 요청에 대한 세션 정보를 기록하는 역할을 수행한다. 부하분산제어 및 장애감시부(410)는 상기테이블 정보를 이용하거나 또는 테이블 정보를 갱신하면서 사용자 요청을 전달할 대상 서버를 여러 서버 중에서 하나를 선택하면서, 주기적으로 서버들의 상태를 확인하여 장애가 발생하면 해당 서버를 후보에서 제외하는 기능을 담당한다.The session table 450 records session information on a user request for a predetermined time in order to smoothly move a hashing value when a server is added / deleted or overloaded. The load balancing control and failure monitoring unit 410 checks the status of the servers periodically by selecting one of a plurality of servers to which the user request is to be delivered while using the table information or updating the table information. Responsible for removing the server from the candidate.

도 5는 본 발명의 동적 해싱 기반의 부하분산기가 사용자의 요청(510)을 처리하는 과정을 나타내는 블록도이다.5 is a block diagram illustrating a process of processing a user's request 510 by the dynamic hashing-based load balancer.

서버 삭제/장애/추가/과부하와 같은 상황이 발생하지 않는 일반적인 상황에서 본 발명인 동적 해싱 기반의 부하분산기(400)가 사용자의 요청(510)을 처리하는 과정은 종래의 부하분산기(320)가 사용자의 요청(310)을 처리하는 과정과 동일하다. 부하분산기(400)는 사용자 요청(510) 정보에서 해싱값추출기(420)를 통해 5라는 해싱값을 추출하고, 해싱테이블(430)에서 해싱값 5에 할당된 서버그룹(530)의 서버2를 찾아 사용자의 요청(510)을 서버 2로 보내는 역할을 수행한다.In the general situation in which the situation such as server deletion / failure / addition / overload does not occur, the process of processing the user's request 510 by the dynamic hashing-based load balancer 400 of the present invention is performed by the conventional load balancer 320. Same as the process of processing the request 310. The load balancer 400 extracts a hashing value of 5 through the hashing value extractor 420 from the user request 510 information, and extracts the server 2 of the server group 530 assigned to the hashing value 5 from the hashing table 430. Finds and sends the user's request (510) to server 2.

그러나 서버그룹(530)의 서버 삭제/장애/추가/과부하와 같은 특수한 상황에서는 본 발명의 실시 예를 나타내는 도 7, 8, 9, 10을 따른다.However, in special situations such as server deletion / fault / addition / overload of the server group 530, FIG. 7, 8, 9, and 10 illustrating an embodiment of the present invention will be followed.

도 6a 및 도 6b는 본 발명의 동적 해싱 기반의 부하분산기 내 해싱값 이동정보테이블(440)과 세션테이블(450)의 구조를 나타내는 블록도이다. 6A and 6B are block diagrams illustrating the structure of the hashing value movement information table 440 and the session table 450 in the load balancer based on the dynamic hashing of the present invention.

해싱값 이동정보테이블(440)은 이동시간, 세션기록시간, 과부하 1단계의 임계값, 과부하 2단계의 임계값으로 구성된다. 이동시간은 스케줄링에 의해 실제 해싱값이 이동하는데 걸리는 시간을 나타내고, 세션기록시간은 이동할 해싱값의 세션을 기록하는 시간을 나타낸다. 서버의 상황에 따라 이동이 결정된 해싱값은 스케줄링에 의해 이동시간 60초 안에 다른 서버로 이동이 수행되어야 한다. 세션기록시간은 해당 해싱값을 이동해도 되는지를 판단하는 기준으로 사용된다. 부하분산기는 세션기록시간을 기반으로 60초 동안 더 이상의 요청이 없는 세션일 경우 세션을 더 이상 유지할 필요가없다고 판단하여 해당 해싱값만을 이동한다. 과부하의 임계값은 서버의 부하와 비교되는 값으로 서버의 부하가 과부하 1단계의 임계값 80과 과부하 2단계의 임계값 100 사이라면 부하분산기는 서버가 과부하 1단계 상황이라고 판단한다. 또한 서버의 부하가 과부하 2단계의 임계값 100과 같다면 부하분산기는 서버 가 과부하 2단계 상황이라고 판단한다. 세션테이블(450)은 출발지 주소 및 포트, 목적지 주소 및 포트, 실제 서버 주소 및 포트, 해싱값으로 구성된다.The hashing value movement information table 440 includes a movement time, a session recording time, a threshold value of one overload level, and a threshold value of two overload levels. The movement time represents the time taken for the actual hashing value to move by scheduling, and the session recording time represents the time for recording the session of the hashing value to be moved. The hashing value whose movement is determined according to the situation of the server should be moved to another server within 60 seconds by the scheduling time. The session recording time is used as a criterion for determining whether or not the corresponding hashing value may be moved. The load balancer determines that the session does not need to be maintained any longer when there is no request for 60 seconds based on the session recording time and moves only the hashing value. The overload threshold is a value that is compared with the load of the server. If the load of the server is between the threshold 80 of the first stage of overload and the threshold 100 of the second stage of overload, the load balancer determines that the server is in the first stage of overload. In addition, if the load of the server is equal to the threshold value 100 of the second stage of overload, the load balancer determines that the server is in the second stage of overload. The session table 450 is composed of a source address and port, a destination address and port, a real server address and port, and a hashing value.

일반적인 해싱 기반의 부하 분산 방법은 서버 삭제/장애 및 추가의 경우 사용가능한 서버의 수를 이용하여 해싱값을 재계산하기 때문에 이전의 사용자와 서버의 연결 상태가 보전되지 않고 재계산된 형태로 연결이 변경된다. 이러한 경우, 웹 어플리케이션의 경우 사용자의 접속이 종료되고, 캐싱 서버의 경우 히트율이 급격이 저하된다. 도 7과 도 8은 이러한 문제를 해결하기 위해 서버의 삭제/장애 및 추가의 경우에 해싱값의 재계산을 최소화하는 방법에 대한 것이다.The general hashing-based load balancing method recalculates the hashing value by using the number of available servers in case of server deletion / failure and addition, so that the connection state of the previous user and server is not preserved but recalculated. Is changed. In this case, in the case of a web application, the user's connection is terminated, and in the case of a caching server, the hit rate decreases rapidly. 7 and 8 illustrate a method of minimizing recalculation of hashing values in case of deletion / failure and addition of a server to solve this problem.

도 7은 본 발명의 동적 해싱 기반의 부하분산기(400)를 이용하여 서버의 삭제/장애 시에 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 서버 3이 삭제 혹은 장애가 발생하면 서버 3이 처리하던 해싱값이 서버1과 2로 옮겨진다. 이 예에서는 서버 3이 처리하던 해싱 값 6과 7이 서버 1로 옮겨지며(화살표 721, 722), 서버 3이 처리하던 해싱 값 8이 서버 2로 옮겨진다(화살표 723). 서버 장애시에는 사용자 요청과 서버와의 연결성보장이 깨질 수밖에 없으므로 위의 해싱값 이동이 바로 일어나게 된다. 반면에 서버 삭제의 경우 사용자 요청과 서버와의 연결성보장을 위해서 해싱값 이동을 점진적으로 수행할 수 있다. 서버 삭제가 필요한 상황이 되면 일정시간동안 들어오는 세션에 대한 정보들을 세션테이블에 기록하게 된다. 그 후에 사용자 요청이 들어오게 되면 일단 세션테이블을 검색하여 기존 세션인지 여부를 판단한다.FIG. 7 is a block diagram illustrating an operation process of processing a deletion / failure of a server using the dynamic hashing-based load balancer 400 of the present invention. For example, if server 3 is deleted or fails, the hashing values that server 3 handled are transferred to servers 1 and 2. In this example, the hashing values 6 and 7 handled by server 3 are moved to server 1 (arrows 721 and 722), and the hashing values 8 handled by server 3 are transferred to server 2 (arrows 723). In case of server failure, the guarantee of connectivity between the user request and the server is broken, so the above hashing value movement occurs. On the other hand, in the case of server deletion, the hashing value movement can be gradually performed to guarantee user request and connectivity with the server. When the server needs to be deleted, information about the incoming session for a certain period of time is recorded in the session table. After that, when a user request comes in, the session table is searched to determine whether or not it is an existing session.

만일 신규 세션이라면 위에서 정한 재배정 원칙에 따라 예를 들어 해싱값이 8이면 서버 2로 배정한다. 만일 기존 세션이라면 일정시간안에 들어온 요청여부를 판단한다. 만일 일정 시간동안에 다시 들어온 사용자 요청이라면 기존 서버 3에 배정하며(이는 도 11 F123 단계에 의하여 결정된다. 서버 3이라는 정보는 해당 세션에 등록되어 있는데 도 6b의 세션테이블(450)내 해당 세션에서 실제서버 주소/port 필드에 서버 3에 관한 정보가 들어 있다고 할 수 있다),If the session is new, for example, if the hashing value is 8, the server 2 is allocated according to the reassignment principle. If it is an existing session, it is determined whether a request comes in within a certain time. If the user request comes in again for a certain time, it is assigned to the existing server 3 (this is determined by the step F123 of FIG. 11). The information of the server 3 is registered in the corresponding session, and the actual session is registered in the session table 450 of FIG. 6B. The server address / port field contains information about server 3),

일정 시간후에 들어온 요청이라면 세션을 계속 유지하지 않아도 된다고 판단하여 위에서 정한 재배정 원칙에 따라 예를 들어 해싱값이 8이면 서버 2로 배정한다. 기존 서버 3에서 처리되는 요청들이 다 끝나서 더 이상 서버 3이 담당하는 일이 없게 될 경우 서버 3을 삭제하게 된다. 서버 삭제시 해싱값을 이동하는 과정에 있어서 해싱값 이동정보테이블(440)에 있는 해싱 이동시간, 세션기록 시간 정보들을 이용하여 점진적으로 해싱값을 이동한다. 세션테이블은 해싱값 이동을 위해 한시적으로만 운영한다. If the request comes in after a certain period of time, it is determined that the session does not need to be maintained. For example, if the hashing value is 8, the server 2 is allocated according to the reassignment principle. If all the requests processed by the existing server 3 are finished and the server 3 is no longer responsible, the server 3 is deleted. In the process of moving a hashing value when deleting a server, the hashing value is gradually moved by using hashing movement time and session recording time information in the hashing value movement information table 440. The session table runs only temporarily for hashing value movement.

도 8은 본 발명의 동적 해싱 기반의 부하분산기(400)를 이용하여 서버의 추가 시에 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 서버 4가 새로이 추가되면 기존 서버들이 가지던 해싱값들이 새로운 서버 4로 옮겨진다. 예에서는 서버 2가 처리하던 해싱값 5가 서버 4(832)로 옮겨지며(화살표 821), 서버 3이 처리하던 해싱값 8이 서버 4(832)로 옮겨진다(화살표 822). 여기에서 해싱값 이동도 사용자 요청과 서버와의 연결보장성을 보장하기 위해 도 7의 서버 삭제과정에서 설명한, 해싱값 이동정보테이블(440) 정보를 이용한 점진적인 이동방식과 동일한 방법으로 처리된다.8 is a block diagram illustrating an operation process of processing the addition of a server using the dynamic hashing-based load balancer 400 of the present invention. For example, when Server 4 is added, the hashing values of the existing servers are transferred to the new Server 4. In the example, the hashing value 5 processed by server 2 is transferred to server 4 (832) (arrow 821), and the hashing value 8 processed by server 3 is transferred to server 4 (832) (arrow 822). Here, the hashing value movement is also processed in the same manner as the gradual movement method using the hashing value movement information table 440 information described in the server deletion process of FIG. 7 to ensure the connection security between the user request and the server.

일반적인 해싱 기반의 부하 분산 방법은 사용자의 요청이 하나 혹은 일부의 서버로 과부하됨으로써 전체적인 서버들의 성능이 요청이 과부하되는 서버에 의존하는 경향이 존재한다. 도 9와 도 10은 이러한 문제를 해결하기 위해 요청 과부하가 발생하는 상황에서 사용자의 요청을 서버들이 균일하게 처리하는 방법에 관한 것이다.In general hashing-based load balancing, a user's request is overloaded with one or some servers, so the performance of the overall servers tends to depend on the server to which the request is overloaded. 9 and 10 relate to a method in which servers uniformly handle a user's request in a situation where request overload occurs to solve this problem.

도 9는 본 발명인 동적 해싱 기반의 부하분산기(400)를 이용하여 서버가 계속 처리할 수 는 있으나 과부하 상태인 1차 과부하가 걸렸을 때 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 사용자의 요청(921)이 들어와 서버 2(941)에 1차 과부하가 걸린 경우 서버 2가 처리하고 있는 해싱 값 중 다른 서버로 옮기는 방법으로 동작한다. 1차 과부하의 임계값은 도 6의 해싱값 이동정보테이블(440)에 명시되어 있다. 이 예에서는 서버 2(941)가 처리하고 있는 해싱 값 3이 서버 1로 이동하고(화살표 931), 해싱 값 5가 서버 3으로 이동하여(화살표 932) 사용자의 요청들을 서버들에게 균등하게 분산(해싱값의 이동 후 모든 서버들이 100인 부하를 가짐)됨을 볼 수 있다. 여기에서 해싱값 이동도 사용자 요청과 서버와의 연결보장성을 보장하기 위해서 도 7의 서버 삭제과정에서 설명한, 해싱값 이동정보테이블(440) 정보를 이용한 점진적인 이동방식과 동일한 방법으로 처리된다.9 is a block diagram illustrating an operation process of processing a server when a primary overload, which is an overload state, may be processed by the server using the dynamic hashing-based load balancer 400. For example, when a user's request 921 is entered and server 2 941 receives a primary overload, the server 942 moves to another server among the hashing values that server 2 processes. The threshold of primary overload is specified in the hashing value movement information table 440 of FIG. In this example, the hashing value 3 being processed by server 2941 moves to server 1 (arrow 931), and the hashing value 5 moves to server 3 (arrow 932) to distribute the user's requests evenly to the servers. After moving the hashing value, all servers have a load of 100). Here, the hashing value movement is also processed in the same manner as the progressive movement method using the hashing value movement information table 440 information described in the server deletion process of FIG. 7 in order to guarantee the connection security between the user request and the server.

도 10은 본 발명인 동적 해싱 기반의 부하분산기(400)를 이용하여 서버가 더 이상 계속 처리할 수 없는 과부하 상태인 2차 과부하가 걸렸을 때 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 서버 2(941)가 2차 과부하에 걸린 경우 서버 2가 이를 혼자서 처리할 수 없기 때문에 다른 서버들과 함께 라운드 로빈의 형태로 재 분산 처리한다. 2차 과부하의 임계값은 도 6의 해싱값 이동정보테이블(440)에 명시되어 있는데 예를 들면 100이다. 서버 2에서 혼자서 처리할 수 없는 해싱 값 4를 가지는 요청(1021)이 들어와 2차 과부하라고 판단하면 그 다음부터 해싱값 4로 오는 사용자 요청은 스케줄링 방식(라운드 로빈)으로 서버를 결정한다 (이는 도 11 F140 단계에 의해 처리된다).FIG. 10 is a block diagram illustrating an operation process of processing a secondary overload, which is an overload state in which a server can no longer be processed using the dynamic hashing-based load balancer 400. For example, if server 2 941 is subjected to secondary overload, server 2 cannot handle it by itself and redistributes it in the form of round robin with other servers. The threshold of secondary overload is specified in the hashing value movement information table 440 of FIG. 6, for example 100. If server 2 receives a request 1021 with a hashing value of 4 that cannot be handled by itself and determines that it is a secondary overload, then the user request coming to hashing value 4 determines the server in a scheduling manner (round robin). 11 F140 step).

예를 들면, 첫 번째 요청은 서버 1이 처리하고(화살표 1031), 두 번째 요청은 서버 2가 처리하고(화살표 1032), 세 번째 요청은 서버 3이 처리하고(화살표 1033), 네 번째 요청은 서버 1이 다시 처리하는(화살표 1031) 방법으로 분산 처리된다.For example, the first request is handled by server 1 (arrow 1031), the second request is handled by server 2 (arrow 1032), the third request is handled by server 3 (arrow 1033), and the fourth request is Server 1 is distributed by processing again (arrow 1031).

본 발명의 동적 해싱 기반의 부하 분산 기법을 도 11, 도 12, 도 13을 참조하여 구체적으로 설명한다. The dynamic hashing-based load balancing technique of the present invention will be described in detail with reference to FIGS. 11, 12, and 13.

도 11은 본 발명의 실시 예에 따른 사용자 요청에 대한 전체적인 세션 처리 과정을 나타내는 흐름도이다.11 is a flowchart illustrating an overall session processing process for a user request according to an embodiment of the present invention.

F101: 전체적인 동작을 시작한다.F101: Start the whole operation.

F110: 세션을 수신한다.F110: Receive a session.

F120: 세션 테이블에 해당 세션이 있는지 확인한다.F120: Check whether there is a corresponding session in the session table.

F121: 세션 테이블에 해당 세션이 존재하면 세션이 만료되었는지 확인한다.F121: If the session exists in the session table, check if the session has expired.

F122: 세션이 만료되었다면 세션 정보를 파기한다.F122: Discard the session information if the session has expired.

F123: 세션이 만료되지 않았다면 세션 테이블에 기록된 서버를 선택한다.F123: If the session has not expired, select the server recorded in the session table.

F130: 세션 테이블에 해당 세션이 없다면 해싱값을 계산하고 서버를 선택한다.F130: If there is no session in the session table, the hashing value is calculated and the server is selected.

F140: 해싱값에 대한 부하 분산이 라운드 로빈인가를 확인한다.F140: Verify that load balancing for hashing values is round robin.

F141: 해싱값에 대한 부하 분산이 라운드 로빈이라면 라운드 로빈으로 서버를 선택한다.F141: If the load balancing for hashing value is round robin, choose server as round robin.

F150: 해싱값에 대한 부하 분산이 라운드 로빈이 아니라면 해싱값에 대한 세션 기록이 활성화되어 있는지 확인한다.F150: If the load balancing for hashing value is not round robin, check if session recording for hashing value is enabled.

F151: 해싱값에 대한 세션 기록이 활성화되어 있다면 세션 기록을 종료한다.F151: End session recording if session recording for hashing value is activated.

F152: 세션을 기록한다.F152: Record the session.

F160: 세션을 전송한다.F160: Send a session.

F170: 전체적인 동작을 종료한다.F170: End the whole operation.

도 12는 본 발명의 실시 예에 따른 도 11의 해싱값 계산 및 서버를 선택(F130)하기 전에 서버의 상태 변화를 관리하는 흐름도를 나타낸다.FIG. 12 is a flowchart illustrating managing a state change of a server before calculating the hashing value of FIG. 11 and selecting a server (F130) according to an exemplary embodiment of the present invention.

F201: 전체적인 동작을 시작한다.F201: Start overall operation.

F210: 서버가 삭제되었는지 확인한다.F210: Check if the server has been deleted.

F211: 서버가 삭제되었다면 삭제된 서버의 해싱값을 남아 있는 서버로 분산한다. 구체적인 예는 도 7을 따른다.F211: If the server is deleted, distribute the deleted server's hashing value to the remaining servers. A specific example follows FIG. 7.

F220: 서버가 삭제되지 않았다면 장애가 발생한 서버가 있는지 확인한다.F220: If the server has not been deleted, check if there is a failed server.

F221: 장애가 발생한 서버가 존재한다면 장애 서버의 해싱값을 남아 있는 서버로 분산한다. 구체적인 예는 도 7을 따른다.F221: If there is a failed server, distribute the failed server's hashing value to the remaining servers. A specific example follows FIG. 7.

F230: 장애가 발생한 서버가 존재하지 않는다면 서버가 추가되었는지 확인한다.F230: If the failed server does not exist, check if the server has been added.

F231: 서버가 추가되었다면 기존 서버에서 추가된 서버로 이동할 해싱값에 대한 세션을 기록하도록 설정한다. 구체적인 예는 도 8을 따른다.F231: If a server has been added, set the session to record the hashing value to move from the existing server to the added server. A specific example follows FIG. 8.

F232: 추가된 서버로 보낼 해싱값을 기존 서버들의 부하율 및 상태에 따라 선정한다.F232: Select hashing value to send to added server according to load rate and condition of existing server.

F240: 추가된 서버가 없다면 서버의 상태가 서버가 처리할 수 있는 과부하 1의 상태인지 확인한다.F240: If no server has been added, verify that the server's status is Overload 1, which the server can handle.

F241: 서버의 상태가 서버가 처리할 수 있는 과부하 상태 1이라면 서버들의 부하율 및 상태에 따라 이동할 해싱값을 선정한다. 구체적인 예는 도 9를 따른다.F241: If the server state is overload state 1 that the server can handle, select a hashing value to move according to the load rate and state of the servers. A specific example follows FIG. 9.

F242: 이동할 해싱값은 스케줄링 정책에 따라 서서히 이동한다.F242: The hashing value to move gradually moves according to the scheduling policy.

F250: 서버의 상태가 서버가 처리할 수 있는 과부하 상태 1이 아니라면 서버의 상태가 서버가 처리할 수 없는 과부하 상태 2인지를 확인한다.F250: If the server's state is not overload state 1 that the server can handle, check whether the server's state is overload state 2, which the server cannot handle.

F251: 서버의 상태가 서버가 처리할 수 없는 과부하 상태 2라면 과부하 상태의 해싱값을 라운드 로빈으로 변경하여 스케줄링을 수행한다. 구체적인 예는 도 10을 따른다.F251: If the state of the server is an overload state 2 that the server cannot handle, the scheduling is performed by changing the hashing value of the overload state to round robin. A specific example follows FIG. 10.

도 13은 본 발명의 실시 예에 따른 도 12의 스케줄링 정책에 의하여 해싱값을 이동(F242)하는 동작 과정을 나타내는 흐름도이다.13 is a flowchart illustrating an operation of moving a hashing value (F242) according to the scheduling policy of FIG. 12 according to an embodiment of the present invention.

F301: 전체적인 동작을 시작한다.F301: Start overall operation.

F310: 세션 기록을 시작한 해싱값이 있는지 확인한다.F310: Check if there is a hashing value that started recording the session.

F311: 세션 기록을 시작한 해싱값이 있다면 해싱값에 대한 세션 기록 시간이 만료되었는지 확인한다.F311: If there is a hashing value that started recording the session, check whether the session recording time for the hashing value has expired.

F312: 해싱값에 대한 세션 기록 시간이 만료되었다면 해싱값에 대한 세션 기록을 중지한다.F312: If the session recording time for the hashing value has expired, stop recording the session for the hashing value.

F320: 세션 기록을 시작한 해싱값이 없다면 타 서버로 이동할 해싱값이 있는지 확인한다.F320: If no hashing value starts the session recording, check if there is a hashing value to move to another server.

F321: 타 서버로 이동할 해싱값이 있다면 지정된 스케줄링 방식에 의하여 해싱값을 이동한다.F321: If there is a hashing value to move to another server, the hashing value is moved according to a specified scheduling method.

본 발명의 동적 해싱 기반의 부하 분산 기법은 서버의 추가/삭제/장애/과부하 상황에서 사용자의 요청을 서버들 사이로 균등하게 분산하고(부하의 균등분산) 사용자의 요청과 서버간에 지속적인 연결 관계가 성립되도록 한다. 이러한 분산 및 연결은 해당 서버들을 사용하는 모든 사용자에게 서버 추가/삭제/장애/과부하로 인한 지연 시간 없는 안정적인 서비스를 보장한다.The load balancing scheme based on dynamic hashing of the present invention distributes the user's request evenly among the servers in the addition / deletion / failure / overload of the server (even load balancing) and establishes a continuous connection relationship between the user's request and the server. Be sure to This distribution and connection guarantees stable service without delays due to server addition / deletion / failure / overload to all users who use the server.

본 발명은 기재된 구체 예에 대해서만 상세히 설명되었지만 본 발명의 사상과 범위 내에서 다양하게 변경 또는 변형할 수 있음은 본 발명이 속하는 기술 분야의 담당자에게는 명백한 것이며, 따라서 그러한 변경 또는 변형은 첨부된 특허청구의 범위에 속한다 해야 할 것이다. Although the invention has been described in detail only with respect to the described embodiments, it will be apparent to those skilled in the art that various changes or modifications can be made within the spirit and scope of the invention, and such changes or modifications are consequently attached to the appended claims. It will have to belong to the scope of.

도 1은 종래의 부하 분산기가 사용되는 일반적인 상황을 나타내는 블록도이다.1 is a block diagram illustrating a general situation in which a conventional load balancer is used.

도 2는 종래의 해싱 기반 부하분산기의 구조를 나타내는 블록도이다.2 is a block diagram showing the structure of a conventional hashing-based load balancer.

도 3은 종래의 해싱 기반 부하분산기가 사용자의 요청을 처리하는 과정을 나타내는 블록도이다.3 is a block diagram illustrating a conventional hashing-based load balancer processing a user request.

도 4는 본 발명의 동적 해싱 기반의 부하분산기의 구조를 나타내는 블록도이다.4 is a block diagram showing the structure of a load balancer based on dynamic hashing according to the present invention.

도 5는 본 발명의 동적 해싱 기반의 부하분산기가 사용자의 요청을 처리하는 과정을 나타내는 블록도이다.5 is a block diagram illustrating a process of processing a user's request by the load balancing based on the dynamic hashing according to the present invention.

도 6a 및 도 6b는 본 발명의 동적 해싱 기반의 부하분산기 내 해싱값 이동정보테이블과 세션테이블의 구조를 나타내는 블록도이다.6A and 6B are block diagrams illustrating the structure of the hashing value movement information table and the session table in the load balancing based on the dynamic hashing of the present invention.

도 7은 본 발명의 동적 해싱 기반의 부하분산기를 이용하여 서버의 삭제/장애 시에 이를 처리하는 동작 과정을 나타내는 블록도이다.7 is a block diagram illustrating an operation process of processing a deletion / failure of a server using a dynamic hashing-based load balancer according to the present invention.

도 8은 본 발명의 동적 해싱 기반의 부하분산기를 이용하여 서버의 추가 시에 이를 처리하는 동작 과정을 나타내는 블록도이다.FIG. 8 is a block diagram illustrating an operation process of adding a server using a dynamic hashing-based load balancer according to the present invention.

도 9는 본 발명의 동적 해싱 기반의 부하분산기를 이용하여 서버가 계속 처리할 수 는 있으나 과부하 상태인 1차 과부하가 걸렸을 때 이를 처리하는 동작 과정을 나타내는 블록도이다.FIG. 9 is a block diagram illustrating an operation process of processing a server when the first overload, which is an overload state, may be processed by the server using the dynamic hashing-based load balancer.

도 10은 본 발명의 동적 해싱 기반의 부하분산기를 이용하여 서버가 더 이상 계속 처리할 수 없는 과부하 상태인 2차 과부하가 걸렸을 때 이를 처리하는 동작 과정을 나타내는 블록도이다.FIG. 10 is a block diagram illustrating an operation process of processing a secondary overload, which is an overload state in which a server can no longer continue using the dynamic hashing-based load balancer of the present invention.

도 11은 본 발명의 실시 예에 따른 사용자 요청에 대한 전체적인 세션 처리 과정을 나타내는 흐름도이다.11 is a flowchart illustrating an overall session processing process for a user request according to an embodiment of the present invention.

도 12는 본 발명의 실시 예에 따른 도 11의 해싱값 계산 및 서버를 선택하기 전에 서버의 상태 변화를 관리하는 흐름도를 나타낸다.FIG. 12 illustrates a flowchart of managing a state change of a server before calculating the hashing value of FIG. 11 and selecting a server according to an exemplary embodiment of the present invention.

도 13은 본 발명의 실시 예에 따른 도 12의 스케줄링 정책에 의하여 해싱값을 이동하는 동작 과정을 나타내는 흐름도이다.13 is a flowchart illustrating an operation of moving a hashing value according to the scheduling policy of FIG. 12 according to an exemplary embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명> <Description of the symbols for the main parts of the drawings>

400: 부하분산기400: load balancer

410: 부하분산제어 및 장애감시부410: load distribution control and fault monitoring unit

420: 해싱값 추출기420: hashing value extractor

430: 해싱테이블430 hashing table

440: 해싱값 이동정보테이블440: hashing value movement information table

450: 세션테이블도 450: session table

Claims (11)

사용자의 요청을 서버그룹(530)들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서,In the hashing-based load balancer for distributing the user's request to the server groups 530, 사용자의 요청에서 임의의 정보를 해싱값으로 계산하는 해싱값 추출기(420);A hashing value extractor 420 that calculates arbitrary information as a hashing value in a user's request; 계산된 해싱값을 이용하여 처리가능한 서버그룹(530)중 어느 하나의 서버를 선택하게 하며, 서버의 추가/삭제/장애/과부하시 상기 선택된 어느 하나의 서버를 변경하기 위해 해싱값을 이동하는 해싱테이블(430); A hashing that selects one server among the server groups 530 that can be processed using the calculated hashing value, and moves the hashing value to change the selected one server upon addition / deletion / fault / overload of the server. Table 430; 서버그룹(530)의 어느 하나의 서버의 추가/삭제 또는 어느 하나의 서버 과부하시 사용자의 요청과 서버그룹(530)의 서버들 간의 연결성을 보장하면서 해싱값과 서버와의 연결관계를 동적으로 바꾸기 위해 해싱값 이동시간, 세션기록시간 그리고 해싱값에 대한 과부하 상태 정보와 같은 해싱값이 이동할 수 있는 상황 정보를 포함하는 해싱값이동정보테이블(440);Dynamically changing the connection between the hashing value and the server while ensuring connectivity between the user's request and the servers in the server group 530 when adding / deleting one server in the server group 530 or when one server is overloaded A hashing value movement information table 440 including information on a situation in which a hashing value can be moved, such as a hashing value movement time, a session recording time, and an overload state information on the hashing value; 서버의 추가/삭제 또는 과부하시 해싱값 이동을 원활하게 하기 위하여 일정시간 동안 사용자 요청에 대한 세션 정보를 기록할 수 있는 세션테이블(450);A session table 450 capable of recording session information on a user request for a predetermined time in order to smoothly move the hashing value when the server is added / deleted or overloaded; 상기 테이블(430, 440, 450)들의 정보를 이용하거나 또는 테이블(430, 440, 450)들의 정보를 갱신하면서 사용자 요청을 전달할 대상서버를 서버그룹(530) 중에서 하나를 선택하면서, 주기적으로 서버들의 상태를 확인하여 장애가 발생하면 그 선택된 서버를 후보에서 제외하는 기능을 포함하는 부하분산제어 및 장애감시부(410)로 구성되어 있는 것을 특징으로 하는 동적 해싱기반의 부하분산시스템.By selecting one of the server groups 530 as a target server to which a user request is to be delivered while using the information of the tables 430, 440, 450 or updating the information of the tables 430, 440, 450, Dynamic hashing-based load balancing system, characterized in that the load balancing control and failure monitoring unit comprising a function to exclude the selected server when the failure occurs by checking the status. 제 1항에 있어서, 상기 해싱값 추출기(420)는 해싱값 계산을 위해 사용자 요청 정보내 임의의 일부 정보가 사용될 수 있으며; 이러한 정보는 IP 주소, TCP/UDP 포트, HTTP에 포함된 Cookie, URL, 또는 URI 인 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템.2. The hashing value extractor (420) of claim 1, wherein the hashing value extractor (420) may use any part of the information in the user request information to calculate the hashing value; This information may be an IP address, a TCP / UDP port, a cookie, a URL, or a URI included in HTTP. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹(530)내 하나의 임의 서버3(741)이 장애가 발생한 경우에 상기 서버3(741)이 처리했던 해싱값이 나머지 부하분산대상 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템.2. The load balancing control and failure monitoring unit 410 of claim 1, wherein the server 3 741 processes a hashing value when one server 3 741 in the load balancing server group 530 fails. A dynamic hashing-based load balancing system, characterized in that the hashing values are evenly distributed or the number of hashing values are evenly distributed using the load information average value for each hashing value in order to distribute the remaining load balancing target servers evenly. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버 그룹(530)내 하나의 임의 서버3(741)이 삭제된 경우에 상기 서버3(741)이 처리했던 해싱값이 나머지 부하분산대상 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템.2. The load balancing control and fault monitoring unit 410 is configured to perform a hashing value processed by the server 3 741 when one random server 3 741 in the load balancing server group 530 is deleted. A dynamic hashing-based load balancing system, characterized in that the hashing values are evenly distributed or the number of hashing values are evenly distributed using the load information average value for each hashing value in order to distribute the remaining load balancing target servers evenly. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹(530)내 새로운 서버4(832)가 추가되는 경우에 서버들이 처리했던 해싱값이 새로 추가된 서버4(832)에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템.2. The load balancing control and fault monitoring unit 410 of claim 1, wherein the new server 4 (832) in the load balancing server group 530 is added to the server 4 (the new hashing value processed) And evenly distribute the hashing value or evenly distribute the number of hashing values by using the load information average value for each hashing value. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹(530)내 특정 서버2(941)가 계속 처리할 수 있으나 부하가 해싱값 이동정보테이블(440)에 지정된 1차 과부하 임계치를 넘었을 때, 상기 서버2(941)의 해싱값의 부하정보를 이용하여, 이들 중 부하가 작은 해싱값들을 상기 서버2(941)보다 부하가 작은 서버들로 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템.2. The load balancing control and fault monitoring unit 410 is configured to perform processing by a specific server 2 941 in the load balancing server group 530, but the load is assigned to the hashing value movement information table 440. When the first overload threshold is exceeded, the load information of the hashing value of the server 2941 is used to distribute hashing values having the smaller load among the servers having the less load than the server 2941. Dynamic hashing based load balancing system. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹(530)내 특정 서버2(941)가 계속 처리 할 수 없는 상태가 되는, 해싱값 이동정보테이블(440)에 지정된 2차 과부하 임계치를 넘었을 때, 상기 서버2(941)에서 과부하를 유발하는 해싱값을 찾아내어, 해당 해싱값으로 들어오는 사용자 요청을 모든 또는 부하가 작은 서버들에게 순차 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템.2. The hashing value movement information table 440 of claim 1, wherein the load balancing control and fault monitoring unit 410 is in a state in which the specific server 2941 in the load balancing server group 530 cannot continue processing. When the second overload threshold specified in the above is exceeded, the server 2941 finds a hashing value causing the overload, and sequentially distributes user requests coming to the hashing value to all or lightly loaded servers. Dynamic hashing based load balancing system. 제1항에 있어서, 해싱테이블(430)에서 서버그룹(530)의 서버 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹(530)에서 어느 하나의 서버의 장애/삭제/추가로 인하여 동작하는 서버그룹(530)의 서버 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 해싱값 크기는 변경하지 않고 해싱테이블(430)내 해싱값들이 서버그룹(530) 중의 배정된 어느 하나의 서버들을 동적으로 변경함으로써, 해싱값 이동을 통하여 서버 재배정하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템.The server of claim 1, wherein the hashing table 430 has more hashing values than the number of servers in the server group 530, and the server operates due to the failure / deletion / addition of any one server in the server group 530. In the server reassignment situation including the case where the number of servers in the group 530 is changed or when one server is overloaded, the hashing values in the hash table 430 are not changed. Dynamic hashing-based load balancing system, characterized in that by dynamically changing any of the assigned server in the group (530), by relocating the server through the hashing value movement. 제1항에 있어서, 해싱테이블(430)에서 서버그룹(530)의 서버 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹(530)에서 어느 하나의 서버 삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 모든 해싱값을 임의의 지정된 시간 없이 타 서버로 이동시키지 않고, 사용자의 요청과 서버와의 기존 연결성이 끊어지지 않도록 임의의 지정된 시간을 기준으로 이동하는 것을 특징으로 하는 동적 해싱기반의 부하분산시스템. The method of claim 1, wherein the hashing table 430 has more hashing values than the number of servers in the server group 530, and the number of servers operated by deleting / adding any one server in the server group 530 is changed. In the server reassignment situation, including when a server is overloaded or redistributing the load to another server, all the hashing values are not moved to another server without any specified time, Dynamic hashing-based load balancing system, characterized in that moving based on a predetermined time so as not to break. 제1항에 있어서, 해싱테이블(430)에서 서버그룹(530)의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹(530)에서 어느 하나의 서버 삭제/추가로 인하여 동작하는 서버들의 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서, 서버 재배정 상황이 발생한 시점부터 사용자의 요청과 서버와의 연결성이 끊이지 않게 해싱값 이동들이 끝날 때 까지 사용자의 요청과 서버와의 연결 정보 저장 및 참조를 위하여 세션테이블(450)을 운영하는 것을 특징으로 하는 동적 해싱기반의 부하분산방법.The method according to claim 1, wherein the hashing table 430 has more hashing values than the number of server groups 530, and the number of servers operating due to the deletion / addition of any one server in the server group 530 is changed. Server relocation, including when you want to redistribute load to another server when one server is overloaded Dynamic hashing-based load balancing method characterized by operating a session table (450) for storing and referencing the user's request and connection information with the server. 제1항에 있어서, 해싱테이블(430)에서 서버그룹(530)의 서버 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹(530)에서 어느 하나의 서버 삭제/추가로 인하여 동작하는 서버의 대수가 변경되거나 어느 하나의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서, 사용자의 연결성을 보장하기 위하여 타 서버로 이동이 결정된 해싱값에 대하여 지정된 시간동안 상기 해싱값으로 들어온 사용자의 요청에 대한 세션정보를 생성하며; The method of claim 1, wherein the hashing table 430 has more hashing values than the number of servers in the server group 530, and the number of servers operating due to the deletion / addition of any one server in the server group 530. In a server reassignment situation, including a case where a load is to be redistributed to another server when a change is made or when one server is overloaded, the hashing value is determined for the time specified for the hashing value determined to be moved to another server to ensure user connectivity. Generate session information about a request of an incoming user; 상기 생성된 세션 정보는 일정시간동안 유지하며; The generated session information is maintained for a predetermined time; 일정 시간 내에 기존 세션에 대한 사용자의 요청이 들어오면 지정된 시간만큼 세션을 더 유지시키며; If the user's request for an existing session comes within a certain time, the session is further maintained for a specified time; 상기 유지 되고 있는 세션에 대해서는 서버와의 접속을 지정된 시간동안 유지하며; Maintain a connection with a server for a specified time for the session being held; 기존 세션이 서버와의 접속을 유지하는 상기 지정된 시간 내에 세션에 등록되지 않은 사용자의 요청에 대해서는 사용자의 요청에서 임의의 정보를 해싱값으로 계산하고, 계산된 해싱값을 이용하여 처리가능한 서버를 선택하는 해싱방법에 의하여 사용자의 요청을 전달하며; For a request of a user who is not registered to the session within the specified time for which the existing session maintains the connection with the server, any information in the user's request is calculated as a hashing value and the server can select a processable server using the calculated hashing value. Forwarding the user's request by a hashing method; 세션이 기록된 사용자의 요청은 일정 시간이 지난 이후에 사용자의 요청에서 임의의 정보를 해싱값으로 계산하고, 계산된 해싱값을 이용하여 처리가능한 서버를 선택하는 해싱방법에 의하여 새로운 서버 또는 다른 서버에 전달하는 것을 특징으로 하는 동적 해싱기반의 부하분산시스템.The user's request in which the session is recorded is calculated as a hashing value of the user's request after a certain period of time, and a new server or another server by a hashing method of selecting a server that can be processed using the calculated hashing value. Dynamic hashing-based load balancing system, characterized in that the transfer to.
KR1020070076426A 2007-07-30 2007-07-30 Dynamic Hashing Based Load Balancing System and Its Method KR100907946B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070076426A KR100907946B1 (en) 2007-07-30 2007-07-30 Dynamic Hashing Based Load Balancing System and Its Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070076426A KR100907946B1 (en) 2007-07-30 2007-07-30 Dynamic Hashing Based Load Balancing System and Its Method

Publications (2)

Publication Number Publication Date
KR20090012523A KR20090012523A (en) 2009-02-04
KR100907946B1 true KR100907946B1 (en) 2009-07-16

Family

ID=40683278

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070076426A KR100907946B1 (en) 2007-07-30 2007-07-30 Dynamic Hashing Based Load Balancing System and Its Method

Country Status (1)

Country Link
KR (1) KR100907946B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11574372B2 (en) 2017-02-08 2023-02-07 Upstream Data Inc. Blockchain mine at oil or gas facility
US11907029B2 (en) 2019-05-15 2024-02-20 Upstream Data Inc. Portable blockchain mining system and methods of use

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101294268B1 (en) * 2012-03-07 2013-08-09 주식회사 시큐아이 Log distributing method using a plurality of log servers and log distributing system
US10097628B2 (en) 2014-01-29 2018-10-09 Microsoft Technology Licensing, Llc Resource affinity in a dynamic resource pool
US11678615B2 (en) 2018-01-11 2023-06-20 Lancium Llc Method and system for dynamic power delivery to a flexible growcenter using unutilized energy sources
US11031787B2 (en) 2018-09-14 2021-06-08 Lancium Llc System of critical datacenters and behind-the-meter flexible datacenters
US10873211B2 (en) 2018-09-14 2020-12-22 Lancium Llc Systems and methods for dynamic power routing with behind-the-meter energy storage
US11016553B2 (en) 2018-09-14 2021-05-25 Lancium Llc Methods and systems for distributed power control of flexible datacenters
US11025060B2 (en) 2018-09-14 2021-06-01 Lancium Llc Providing computational resource availability based on power-generation signals
US10367353B1 (en) 2018-10-30 2019-07-30 Lancium Llc Managing queue distribution between critical datacenter and flexible datacenter
US11031813B2 (en) 2018-10-30 2021-06-08 Lancium Llc Systems and methods for auxiliary power management of behind-the-meter power loads
US10452127B1 (en) 2019-01-11 2019-10-22 Lancium Llc Redundant flexible datacenter workload scheduling
US11128165B2 (en) 2019-02-25 2021-09-21 Lancium Llc Behind-the-meter charging station with availability notification
US11868106B2 (en) * 2019-08-01 2024-01-09 Lancium Llc Granular power ramping
US11397999B2 (en) 2019-08-01 2022-07-26 Lancium Llc Modifying computing system operations based on cost and power conditions
US10618427B1 (en) 2019-10-08 2020-04-14 Lancium Llc Behind-the-meter branch loads for electrical vehicle charging
US10608433B1 (en) 2019-10-28 2020-03-31 Lancium Llc Methods and systems for adjusting power consumption based on a fixed-duration power option agreement
US11042948B1 (en) 2020-02-27 2021-06-22 Lancium Llc Computing component arrangement based on ramping capabilities
CN112817752B (en) * 2021-01-21 2023-12-19 西安交通大学 Dynamic load balancing method for distributed database

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030021114A (en) * 2001-09-05 2003-03-12 주식회사 미리텍 Load sharing system
KR20040034741A (en) * 2002-10-15 2004-04-29 엘지전자 주식회사 Method of allotting base station frame offset using hashing
KR20060066603A (en) * 2004-12-13 2006-06-16 한국전자통신연구원 System and method for load balancing
KR20070025535A (en) * 2005-09-02 2007-03-08 삼성전자주식회사 Method and apparatus for controlling over-load of load-valancing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030021114A (en) * 2001-09-05 2003-03-12 주식회사 미리텍 Load sharing system
KR20040034741A (en) * 2002-10-15 2004-04-29 엘지전자 주식회사 Method of allotting base station frame offset using hashing
KR20060066603A (en) * 2004-12-13 2006-06-16 한국전자통신연구원 System and method for load balancing
KR20070025535A (en) * 2005-09-02 2007-03-08 삼성전자주식회사 Method and apparatus for controlling over-load of load-valancing system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11574372B2 (en) 2017-02-08 2023-02-07 Upstream Data Inc. Blockchain mine at oil or gas facility
US11907029B2 (en) 2019-05-15 2024-02-20 Upstream Data Inc. Portable blockchain mining system and methods of use

Also Published As

Publication number Publication date
KR20090012523A (en) 2009-02-04

Similar Documents

Publication Publication Date Title
KR100907946B1 (en) Dynamic Hashing Based Load Balancing System and Its Method
US10778801B2 (en) Content delivery network architecture with edge proxy
US10116737B2 (en) Optimized consistent request distribution for balanced load distribution in a content delivery network
US7680938B2 (en) Video on demand digital server load balancing
JP5654022B2 (en) Dynamic load balancing and scaling of allocated cloud resources within the corporate network
JP5901024B2 (en) Dynamic binding used for content delivery
US9116752B1 (en) Systems, methods, devices and arrangements for server load distribution
JP2009501373A (en) Method and system for dynamic rebalancing of client sessions in a server cluster connected to a network
KR20010088742A (en) Parallel Information Delievery Method Based on Peer-to-Peer Enabled Distributed Computing Technology
KR20140088172A (en) Methods to combine stateless and stateful server load balancing
CN107800768A (en) Open platform control method and system
KR20130070500A (en) Method and apparatus for processing server load balancing with the result of hash function
US9736236B2 (en) System and method for managing buffering in peer-to-peer (P2P) based streaming service and system for distributing application for processing buffering in client
CN103701916A (en) Dynamic load balancing method of distributed storage system
US11025710B1 (en) Systems and methods for dynamic load balancing based on server utilization and content popularity
JP5620881B2 (en) Transaction processing system, transaction processing method, and transaction processing program
Xu et al. Effective load balancing in p2p systems
JP5951888B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
KR20230132398A (en) Device For Managing QoS Of Storage System And Method Thereof
US8583819B2 (en) System and method for controlling server usage in peer-to-peer (P2P) based streaming service
EP4115580B1 (en) Hostname pre-localization
Jayabal et al. Design and Implementation of Locally Distributed Web Server Systems using Load Balancer
Pandey Capacity/Context Aware Load Balancing
Ramana et al. NDLB: Nearest Dispatcher Load Balancing approach for Web Server Cluster
Tamilarasi et al. A Survey on a Content Based Dynamic Load Balancing Algorithm for Heterogeneous Web Server Cluster

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130625

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140707

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150703

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160704

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180704

Year of fee payment: 10