KR20090012523A - A dynamic hashing based load balancing system and its method - Google Patents

A dynamic hashing based load balancing system and its method Download PDF

Info

Publication number
KR20090012523A
KR20090012523A KR1020070076426A KR20070076426A KR20090012523A KR 20090012523 A KR20090012523 A KR 20090012523A KR 1020070076426 A KR1020070076426 A KR 1020070076426A KR 20070076426 A KR20070076426 A KR 20070076426A KR 20090012523 A KR20090012523 A KR 20090012523A
Authority
KR
South Korea
Prior art keywords
server
hashing
value
user
servers
Prior art date
Application number
KR1020070076426A
Other languages
Korean (ko)
Other versions
KR100907946B1 (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

A system and a method for distributing load based on dynamic hashing to improve caching effect are provided to guarantee connectivity between a user and a server, and improve the caching effect by using ingenious load distribution, and changing a hashing function in addition, removal, and overload of the server. A hashing value extractor(420) calculates a hash value from information by a user request. A hashing table(430) moves the hashing value to change a server allocated when the server is added, removed, failed, or overloaded. A hashing value movement information table(440) stores contextual information, such as hashing value moving time, session recording time, and overload state information for the hashing value, capable of moving the hashing value. A session table(450) stores session information for the user request for a predetermined time. A load distribution controlling and failure monitoring unit(410) includes a function for excluding the server from candidates when a failure occurs in the server by periodically checking the state of the servers.

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 a processable server using the calculated hashing value, and moving the hashing value to change a server assigned at the time of addition / deletion / fault / overload of the server; In order to dynamically change the connection between hashing value and server while guaranteeing connectivity between user request and server when adding / deleting server or specific server overload, hashing time movement time, session recording time and overload status information about hashing value A hashing value movement information table containing situation information in which the hashing value can move; A session table capable of recording session information about a user request for a predetermined time in order to smoothly move the hashing value when the server is added / deleted or overloaded; A load that includes a function of excluding a server from candidates when a failure occurs by periodically checking the status of the servers while selecting one of a plurality of target servers to which a user request is delivered while using the table information or updating the table information. It is characterized by consisting of distributed 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 also use any part of the information in the user request information to calculate the hashing value; This information is characterized by the use of IP addresses, TCP / UDP ports, cookies included in HTTP, URLs, URIs, and any other information in packets.

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

본 발명의 동적 해싱기반의 부하분산 시스템은 또한 부하분산제어 및 장애감시부는 부하분산 서버 그룹내 하나의 임의 서버가 삭제된 경우에 상기 서버가 처리했던 해싱값이 나머지 부하분산대상 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 한다. 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 server evenly to the remaining load balancing target servers when one server in the load balancing server group is deleted. 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.

본 발명의 동적 해싱기반의 부하분산 시스템은 또한 상기 부하분산제어 및 장애감시부는 부하분산 서버그룹내 새로운 서버가 추가되는 경우에 서버들이 처리했던 해싱값이 새로 추가된 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 한다.The load balancing system based on the dynamic hashing of the present invention may further include the load balancing control and fault monitoring unit to distribute the hashing values processed by the servers evenly to the newly added server when a new server 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 may continue processing by a specific server in the load balancing server group, but the load balancing system may be in a state exceeding a normal load. When the first overload threshold is exceeded, the load information of the hashing value of the server is used to distribute hashing values among the smaller loads among the servers having a smaller load than the server.

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

본 발명의 동적 해싱기반의 부하분산 방법은 사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서, 해싱테이블에서 서버의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 임의의 서버의 장애/삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 임의의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 해싱값 크기는 변경하지 않고 해싱테이블내 해싱값들이 배정된 서버들을 동적으로 변경함으로써, 해싱값 이동을 통하여 서버 재배정하는 것을 특징으로 한다. In the dynamic hashing-based load balancing method of the present invention, in a hashing-based load balancer that distributes and distributes user requests to server groups, the hashing table has more hashing values than the number of servers in the hashing table, Hashing in the hashing table without changing the size of the hashing value in the server reassignment situation, including the case where the number of servers to be changed due to the failure / deletion / addition of the server or the load redistribution to another server occurs when an arbitrary server is overloaded. By dynamically changing servers to which values are assigned, the server may be reassigned through hashing.

본 발명의 동적 해싱기반의 부하분산방법은 또한 사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서, 해싱테이블에서 서버의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 임의의 서버 삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 임의의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 모든 해싱값을 곧바로 타 서버로 이동시키지 않고, 사용자의 요청과 서버와의 기존 연결성이 끊어지지 않도록 임의의 지정된 시간을 기준으로 점진적으로 이동함으로써 해싱기반 부하분산기에서 사용자의 요청과 서버와의 연결성이 끊기는 것을 방지하는 것을 특징으로 한다. The dynamic hashing-based load balancing method of the present invention also has a hashing-based load balancer that distributes and distributes user requests to server groups, and has more hashing values than the number of servers in the hashing table. In case of server relocation including the case where the number of servers operating due to the deletion / addition of arbitrary server is changed or the load is over-loaded from one server to another server, all hashing values are not moved to another server immediately. It is characterized in that the hashing-based load balancer prevents the user's request from being disconnected from the server by gradually moving the request based on a predetermined time so that the existing connection between the request and the server is not broken.

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

본 발명의 동적 해싱기반의 부하분산방법은 또한 사용자의 요청을 서버그룹 들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서, 해싱테이블에서 서버의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 임의의 서버 삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 임의의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서, 사용자의 연결성을 보장하기 위하여 타 서버로 이동이 결정된 해싱값에 대하여 지정된 시간동안 상기 해싱값으로 들어온 사용자의 요청에 대한 세션정보를 생성하며; 상기 생성된 세션 정보는 일정시간동안 유지하며; 일정 시간 내에 기존 세션에 대한 사용자(101)의 요청이 들어오면 지정된 시간만큼 세션을 더 유지시키며; 상기 유지 되고 있는 세션에 대해서는 서버와의 접속을 지정된 시간동안 유지하며; 상기 지정된 시간 내에 세션에 등록되지 않은 사용자의 요청에 대해서는 해싱방법에 의하여 사용자의 요청을 전달하며; 세션이 기록된 사용자의 요청은 일정 시간이 지난 이후에 해싱방법에 의하여 새로운 서버 또는 다른 서버에 전달하는 것을 특징으로 한다. The dynamic hashing-based load balancing method of the present invention also has a hashing-based load balancer that distributes and distributes user requests to server groups, and has more hashing values than the number of servers in the hashing table. In the case of server relocation including the case where the number of servers operating due to the deletion / addition of any server is changed or the load redistribution to another server is overwhelmed by an overload in a certain server, the movement to another server is required to ensure the user's connectivity. Generate session information on a request of a user who has entered the hashing value for a specified time with respect to the determined hashing value; The generated session information is maintained for a predetermined time; If the user 101's request for an existing session is received 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; Forwarding the user's request by a hashing method to the user's request not registered in the session within the designated time; The user's request in which the session is recorded may be delivered to a new server or another server by a hashing method after a certain time.

본 발명의 동적 해싱기반의 부하분산방법은 또한 부하분산을 위하여 서버들 앞단에 설치되어 서버로 향하는 사용자의 요청을 수신하여 서버에 전달하며; 상기 시스템은 서버의 수보다 많은 해싱값을 가지며; 해싱값은 각각의 서버에게 적절하게 분배가 되며; 사용자의 요청 중 일부 정보를 사용하여 해싱값을 계산하며; 해당 해싱값을 가지고 있는 서버에게 사용자의 요청을 전달하며; 서버의 추가시에 각각의 서버가 가지고 있는 해싱값의 일부를 추가된 서버에 할당하여 부하분산을 수행하며; 서버의 삭제/장애 시에 해당 서버가 가지고 있는 해싱값을 타 서버에 분배하며; 특정 서버에 과도한 요청이 집중한 경우에 해싱값의 일부를 다른 서버로 이동 하여 부하를 적절히 분산하며; 특정 해싱값에 과도한 부하가 집중한 경우 이를 다수의 서버로 부하분산하며; 상기와 같은 일련의 작업이 스케줄링에 의해 시간 간격을 두고 처리함으로써 사용자의 요청이 해싱값을 가지고 있는 서버에서 타 서버로 자연스럽게 넘어가도록 하며; 사용자의 요청과 서버간의 연결성 보장(stickiness)을 위하여 타 서버로 넘기는 해싱값에 대해서 사용자의 세션을 파악하여 일정시간동안 사용자 요청과 서버간의 연결 관계를 유지하며 그 외의 신규 세션들에 대해서만 해싱 기반의 부하분산을 적용하는 것을 특징으로 한다. The dynamic hashing-based load balancing method of the present invention is also installed in front of the servers for load balancing to receive a user's request to the server and deliver it 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's request; Forward the user's request to the server with 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 a user's request naturally passes from a server having a hashing value to another server; It checks the user's session for the hashing value passed to other server for the stickiness between the user's request and the server and maintains the connection relationship between the user's request and the server for a certain period of time. It is characterized by applying load balancing.

본 발명의 동적 해싱 기반의 부하 분산 시스템 및 그 방법은 서버 추가/삭제/장애/과부하 상황에서 사용자의 요청이 서버들 사이로 불균등하게 분포되는 기존 방법(부하의 불균등)과는 달리 상황에 무관하게 사용자의 요청을 서버들 사이로 균등하게 분포시킨다(부하의 균등). 또한 동적 해싱 기반의 부하 분산 시스템 및 그 방법은 서버 추가/삭제/장애/과부하 상황에서 사용자의 요청과 서버간에 지속적인 연결 관계가 성립되지 못하는 기존 방법과 달리 상황에 무관하게 사용자의 요청과 서버간에 지속적인 연결 관계가 성립한다. 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는 본 발명의 동적 해싱 기반의 부하분산기(520)가 사용자의 요청(510)을 처리하는 과정을 나타내는 블록도이다. 5 is a block diagram illustrating a process of processing the user's request 510 by the dynamic hashing-based load balancer 520 of the present invention.

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

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

도 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.

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

도 7은 본 발명의 동적 해싱 기반의 부하분산기(520)를 이용하여 서버의 삭제/장애 시에 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 서버 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 520 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이라는 정보는 해당 세션에 등록되어 있는데 도 6-b 세션테이블내 해당 세션에서 실제서버 주소/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 back for a certain period of time, it is assigned to the existing server 3 (this is determined by step F123 of FIG. 11). The information of server 3 is registered in the corresponding session and the actual server address in the corresponding session in the session table of FIG. 6-b. the / 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은 본 발명의 동적 해싱 기반의 부하분산기(520)를 이용하여 서버의 추가 시에 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 서버 4가 새로이 추가되면 기존 서버들이 가지던 해싱값들이 새로운 서버 4로 옮겨진다. 예에서는 서버 2가 처리하던 해싱값 5가 서버 4로 옮겨지며(화살표 821), 서버 3이 처리하던 해싱값 8이 서버 4로 옮겨진다(화살표 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 520 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 moved to server 4 (arrow 821), and the hashing value 8 processed by server 3 is transferred to server 4 (arrow 822). 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 ensure the connection security between the user request and the server.

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

도 9는 본 발명인 동적 해싱 기반의 부하분산기(520)를 이용하여 서버가 계속 처리할 수 는 있으나 과부하 상태인 1차 과부하가 걸렸을 때 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 서버 2(941)에 1차 과부하가 걸린 경우 서버 2가 처리하고 있는 해싱 값 중 다른 서버로 옮기는 방법으로 동작한다. 1차 과부하의 임계값은 도 6의 해싱값 이동정보테이블(440)에 명시되어 있다. 이 예에서는 서버 2(941)가 처리하고 있는 해싱 값 3이 서버 1로 이동하고(화살표 931), 해싱 값 5가 서버 3으로 이동하여(화살표 932) 사용자(101)의 요청들을 서버들에게 균등하게 분산(해싱값의 이동 후 모든 서버들이 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 520. For example, if the server 2941 has a primary overload, the server 2941 moves to another server among hashing values processed by the server 294. 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), so that requests from user 101 are equalized to the servers. We can see that it is distributed (all servers have a load of 100 after moving the hashing value). 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은 본 발명인 동적 해싱 기반의 부하분산기(520)를 이용하여 서버가 더 이상 계속 처리할 수 없는 과부하 상태인 2차 과부하가 걸렸을 때 이를 처리하는 동작 과정을 나타내는 블록도이다. 예를 들어, 서버 2(1041)가 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 the server can no longer continue using the dynamic hashing-based load balancer 520. For example, if server 2 1041 has a secondary overload, since server 2 cannot handle this alone, it redistributes 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.

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

본 발명은 기재된 구체 예에 대해서만 상세히 설명되었지만 본 발명의 사상과 범위 내에서 다양하게 변경 또는 변형할 수 있음은 본 발명이 속하는 기술 분야의 담당자에게는 명백한 것이며, 따라서 그러한 변경 또는 변형은 첨부된 특허청구의 범위에 속한다 해야 할 것이다. 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)

사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서,In the hashing-based load balancer that distributes user requests to server groups, 사용자(101)의 요청에서 임의의 정보를 해싱값으로 계산하는 해싱값 추출기(420);A hashing value extractor 420 that calculates arbitrary information as a hashing value in a request of the user 101; 계산된 해싱값을 이용하여 처리가능한 서버를 선택하게 하며, 서버의 추가/삭제/장애/과부하시 배정된 서버를 변경하기 위해 해싱값을 이동하는 해싱테이블(430); A hashing table 430 for selecting a processable server by using the calculated hashing value, and moving the hashing value to change the assigned server upon adding / deleting / faulting / loading the server; 서버의 추가/삭제 또는 특정 서버 과부하시 사용자의 요청과 서버간의 연결성을 보장하면서 해싱값과 서버와의 연결관계를 동적으로 바꾸기 위해 해싱값 이동시간, 세션기록시간 그리고 해싱값에 대한 과부하 상태 정보등 해싱값이 이동할 수 있는 상황 정보를 포함하는 해싱값이동정보테이블(440);In order to dynamically change the connection between hashing value and server while guaranteeing connectivity between user request and server when adding / deleting server or specific server overload, hashing time movement time, session recording time and overload status information about hashing value A hashing value movement information table 440 including situation information in which the hashing value can move; 서버의 추가/삭제 또는 과부하시 해싱값 이동을 원활하게 하기 위하여 일정시간 동안 사용자(101) 요청에 대한 세션 정보를 기록할 수 있는 세션테이불(450);A session table 450 capable of recording session information for a user 101 request for a predetermined time in order to smoothly move a hashing value when adding / deleting or overloading a server; 상기 테이블 정보를 이용하거나 또는 테이블 정보를 갱신하면서 사용자 요청을 전달할 대상서버를 여러 서버 중에서 하나를 선택하면서, 주기적으로 서버들의 상태를 확인하여 장애가 발생하면 해당 서버를 후보에서 제외하는 기능을 포함하는 부하분산제어 및 장애감시부(410)로 구성되어 있는 것을 특징으로 하는 동적 해싱기반의 부하분산시스템.A load that includes a function of excluding a server from candidates when a failure occurs by periodically checking the status of the servers while selecting one of a plurality of target servers to which a user request is delivered while using the table information or updating the table information. Dynamic hashing-based load balancing system, characterized in that composed of a distributed control and fault monitoring unit (410). 제 1항에 있어서, 상기 해싱값 추출기(420)는 해싱값 계산을 위해 사용자(101) 요청 정보내 임의의 일부 정보가 사용될 수 있으며; 이러한 정보는 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 (101) request information for hashing value calculation; This information uses an IP address, a TCP / UDP port, a cookie included in HTTP, a URL, a URI, and any other information in a packet other than the dynamic hashing-based load balancing system. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹내 하나의 임의 서버(741)가 장애가 발생한 경우에 상기 서버가 처리했던 해싱값이 나머지 부하분산대상 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템. 2. The load balancing control and failure monitoring unit 410 of claim 1, wherein when one server 741 in the load balancing server group fails, the hashing value processed by the server is evenly distributed to the remaining load balancing target server. To distribute, the hashing value is distributed evenly or the number of hashing values is evenly distributed using the load information average value for each hashing value. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버 그룹내 하나의 임의 서버(741)가 삭제된 경우에 상기 서버가 처리했던 해싱값이 나머지 부하분산대상 서버에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템. 2. The load balancing control and failure monitoring unit 410 of claim 1, wherein the hashing value processed by the server is uniformly distributed to the remaining load balancing target servers when one server 741 in the load balancing server group is deleted. To distribute, the hashing value is distributed evenly or the number of hashing values is evenly distributed using the load information average value for each hashing value. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹내 새로운 서버(832)가 추가되는 경우에 서버들이 처리했던 해싱값이 새로 추가 된 서버(832)에게 고르게 분배하기 위해, 각 해싱값에 대한 부하정보 평균값을 이용하여 해싱값을 고르게 분산하거나 또는 해싱값의 개수를 고르게 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템. The load balancing control and failure monitoring unit 410 distributes the hashing values processed by the servers evenly to the newly added server 832 when the new server 832 in the load balancing server group is added. In order to uniformly distribute the hashing value or evenly distribute the number of hashing values using the load information average value for each hashing value. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹내 특정 서버(941)가 계속 처리할 수 있으나 평상 부하를 많이 초과하는 상태가 되는, 해싱값 이동정보테이블(440)에 지정된 1차 과부하 임계치를 넘었을 때, 상기 서버(941)의 해싱값의 부하정보를 이용하여, 이들 중 부하가 작은 해싱값들을 상기 서버(941)보다 부하가 작은 서버들로 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템. The hashing value movement information table according to claim 1, wherein the load balancing control and fault monitoring unit 410 is able to continue processing by a specific server 941 in the load balancing server group but exceeds a normal load. When the first overload threshold specified in 440 is exceeded, the load information of the hashing value of the server 941 is used to distribute hashing values having a smaller load among the servers having a lower load than the server 941. Dynamic hashing based load balancing system, characterized in that. 제 1항에 있어서, 상기 부하분산제어 및 장애감시부(410)는 부하분산 서버그룹내 특정 서버(1041)가 계속 처리 할 수 없는 상태가 되는, 해싱값 이동정보테이블(440)에 지정된 2차 과부하 임계치를 넘었을 때, 상기 서버(1041)에서 과부하를 유발하는 해싱값을 찾아내어, 해당 해싱값으로 들어오는 사용자(101) 요청을 모든 또는 부하가 작은 서버들에게 순차 분배하거나 또는 이에 상응하는 다른 방식을 통하여 분배하는 것을 특징으로 하는 동적 해싱기반의 부하분산 시스템. The secondary load designated by the hash 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 1041 in the load balancing server group cannot continue processing. When the overload threshold is exceeded, the server 1041 finds a hashing value causing the overload, and sequentially distributes the user 101 request coming in to the hashing value to all or lightly loaded servers, or other equivalent. Dynamic hashing-based load balancing system, characterized in that the distribution through the method. 사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서,In the hashing-based load balancer that distributes user requests to server groups, 해싱테이블(430)에서 서버의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 임의의 서버의 장애/삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 임의의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 해싱값 크기는 변경하지 않고 해싱테이블내 해싱값들이 배정된 서버들을 동적으로 변경함으로써, 해싱값 이동을 통하여 서버 재배정하는 것을 특징으로 하는 동적 해싱기반의 부하분산방법. The hashing table 430 has more hashing values than the number of servers, and the number of servers operating due to the failure / deletion / addition of any server in the server group is changed or the load on other servers when an overload occurs in any server. Dynamic hashing-based load, characterized in that the server is reassigned by moving the hashing value by dynamically changing the servers assigned the hashing values in the hashing table without changing the size of the hashing value in the server reassignment situation including redistribution. Dispersion method. 사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서,In the hashing-based load balancer that distributes user requests to server groups, 해싱테이블(430)에서 서버의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 임의의 서버 삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 임의의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서 모든 해싱값을 곧바로 타 서버로 이동시키지 않고, 사용자의 요청과 서버와의 기존 연결성이 끊어지지 않도록 임의의 지정된 시간을 기준으로 점진적으로 이동함으로써 해싱기반 부하분산기에서 사용자의 요청과 서버와의 연결성이 끊기는 것을 방지하는 것을 특징으로 하는 동적 해싱기반의 부하분산방법. The hashing table 430 has more hashing values than the number of servers, and in order to redistribute the load to another server when the number of servers changed due to the deletion / addition of random servers in the server group is changed or when an overload occurs in a random server. In a server reassignment situation, a user in a hashing-based load balancer does not move all the hashing values directly to another server, but instead moves them incrementally based on a randomly specified time so that the user's request and existing connections with the server are not broken. Dynamic hashing-based load balancing method, characterized in that the connection between the request and the server is disconnected. 사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서,In the hashing-based load balancer that distributes user requests to server groups, 해싱테이블(430)에서 서버의 대수보다 더 많은 해싱값을 가지게 하며, 서버 그룹에서 임의의 서버 삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 임의의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서, 서버 재배정 상황이 발생한 시점부터 사용자의 요청과 서버와의 연결성이 끊기지 않게 해싱값 이동들이 끝날 때 까지 사용자의 요청과 서버와의 연결 정보 저장 및 참조를 위하여 한시적으로 세션테이블(450)을 운영하는 것을 특징으로 하는 동적 해싱기반의 부하분산방법. The hashing table 430 has more hashing values than the number of servers, and in order to redistribute the load to other servers when the number of servers changed due to the deletion / addition of arbitrary servers in the server group is changed or when an overload occurs in any server. In the server reassignment situation, including the case where the server reassignment situation occurs, for the purpose of storing and referencing the user's request and the connection information between the server and the server until the hashing value movements are completed so that the connection between the user's request and the server is not broken. Dynamic hashing-based load balancing method, characterized in that for operating the session table (450). 사용자의 요청을 서버그룹들에 분산하여 전달하는 해싱기반의 부하분산기에 있어서,In the hashing-based load balancer that distributes user requests to server groups, 해싱테이블(430)에서 서버의 대수보다 더 많은 해싱값을 가지게 하며, 서버그룹에서 임의의 서버 삭제/추가로 인하여 동작하는 서버 대수가 변경되거나 임의의 서버에서 과부하 발생시 타 서버로의 부하 재분배를 하고자 하는 경우를 포함한 서버 재배정 상황에서, 사용자(101)의 연결성을 보장하기 위하여 타 서버로 이동이 결정된 해싱값에 대하여 지정된 시간동안 상기 해싱값으로 들어온 사용자(101)의 요청에 대한 세션정보를 생성하며; The hashing table 430 has more hashing values than the number of servers, and in order to redistribute the load to another server when the number of servers changed due to the deletion / addition of random servers in the server group is changed or when an overload occurs in a random server. In the server reassignment situation including the case, to ensure the connectivity of the user 101 to generate the session information for the request of the user 101 entered the hashing value for a specified time with respect to the hashing value determined to move to another server ; 상기 생성된 세션 정보는 일정시간동안 유지하며; The generated session information is maintained for a predetermined time; 일정 시간 내에 기존 세션에 대한 사용자(101)의 요청이 들어오면 지정된 시간만큼 세션을 더 유지시키며; If the user 101's request for an existing session is received 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; 상기 지정된 시간 내에 세션에 등록되지 않은 사용자(101)의 요청에 대해서는 해싱방법에 의하여 사용자(101)의 요청을 전달하며; Forwarding the request of the user 101 by a hashing method to the request of the user 101 not registered in the session within the designated time; 세션이 기록된 사용자(101)의 요청은 일정 시간이 지난 이후에 해싱방법에 의하여 새로운 서버 또는 다른 서버에 전달하는 것을 특징으로 하는 동적 해싱기반의 부하분산방법. Dynamic hashing-based load balancing method characterized in that the request of the user 101 recorded the session is transmitted to a new server or another server by a hashing method after a predetermined time.
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 true KR20090012523A (en) 2009-02-04
KR100907946B1 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 (19)

* 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
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
US10618427B1 (en) 2019-10-08 2020-04-14 Lancium Llc Behind-the-meter branch loads for electrical vehicle charging
US10873211B2 (en) 2018-09-14 2020-12-22 Lancium Llc Systems and methods for dynamic power routing with behind-the-meter energy storage
WO2021022174A1 (en) * 2019-08-01 2021-02-04 Lancium Llc Granular power ramping
CN112817752A (en) * 2021-01-21 2021-05-18 西安交通大学 Distributed database dynamic load balancing method
US11016456B2 (en) 2018-01-11 2021-05-25 Lancium Llc Method and system for dynamic power delivery to a flexible datacenter using unutilized energy sources
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
US11031813B2 (en) 2018-10-30 2021-06-08 Lancium Llc Systems and methods for auxiliary power management of behind-the-meter power loads
US11031787B2 (en) 2018-09-14 2021-06-08 Lancium Llc System of critical datacenters and behind-the-meter flexible datacenters
US11042948B1 (en) 2020-02-27 2021-06-22 Lancium Llc Computing component arrangement based on ramping capabilities
US11128165B2 (en) 2019-02-25 2021-09-21 Lancium Llc Behind-the-meter charging station with availability notification
US11256320B2 (en) 2019-01-11 2022-02-22 Lancium Llc Redundant flexible datacenter workload scheduling
US11283261B2 (en) 2018-10-30 2022-03-22 Lancium Llc Managing queue distribution between critical datacenter and flexible datacenter
US11397999B2 (en) 2019-08-01 2022-07-26 Lancium Llc Modifying computing system operations based on cost and power conditions
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

Family Cites Families (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
KR100935784B1 (en) * 2002-10-15 2010-01-06 엘지전자 주식회사 Method of allotting base station frame offset using hashing
KR100641655B1 (en) * 2004-12-13 2006-11-03 한국전자통신연구원 System and method for load balancing
KR100713625B1 (en) * 2005-09-02 2007-05-02 삼성전자주식회사 Method and apparatus for controlling over-load of load-valancing system

Cited By (38)

* 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
US11574372B2 (en) 2017-02-08 2023-02-07 Upstream Data Inc. Blockchain mine at oil or gas facility
US11016456B2 (en) 2018-01-11 2021-05-25 Lancium Llc Method and system for dynamic power delivery to a flexible datacenter using unutilized energy sources
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
US11163280B2 (en) 2018-01-11 2021-11-02 Lancium Llc Method and system for dynamic power delivery to a flexible datacenter using unutilized energy sources
US11611219B2 (en) 2018-09-14 2023-03-21 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
US11949232B2 (en) 2018-09-14 2024-04-02 Lancium Llc System of critical datacenters and behind-the-meter flexible datacenters
US11016553B2 (en) 2018-09-14 2021-05-25 Lancium Llc Methods and systems for distributed power control of flexible datacenters
US11669144B2 (en) 2018-09-14 2023-06-06 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
US11431195B2 (en) 2018-09-14 2022-08-30 Lancium Llc Systems and methods for dynamic power routing with behind-the-meter energy storage
US11275427B2 (en) 2018-09-14 2022-03-15 Lancium Llc Methods and systems for distributed power control of flexible datacenters
US11031787B2 (en) 2018-09-14 2021-06-08 Lancium Llc System of critical datacenters and behind-the-meter flexible datacenters
US11342746B2 (en) 2018-10-30 2022-05-24 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
US11283261B2 (en) 2018-10-30 2022-03-22 Lancium Llc Managing queue distribution between critical datacenter and flexible datacenter
US11682902B2 (en) 2018-10-30 2023-06-20 Lancium Llc Managing queue distribution between critical datacenter and flexible datacenter
US11650639B2 (en) 2019-01-11 2023-05-16 Lancium Llc Redundant flexible datacenter workload scheduling
US11256320B2 (en) 2019-01-11 2022-02-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
US11907029B2 (en) 2019-05-15 2024-02-20 Upstream Data Inc. Portable blockchain mining system and methods of use
US11397999B2 (en) 2019-08-01 2022-07-26 Lancium Llc Modifying computing system operations based on cost and power conditions
US11868106B2 (en) * 2019-08-01 2024-01-09 Lancium Llc Granular power ramping
WO2021022174A1 (en) * 2019-08-01 2021-02-04 Lancium Llc Granular power ramping
US11961151B2 (en) 2019-08-01 2024-04-16 Lancium Llc Modifying computing system operations based on cost and power conditions
US10857899B1 (en) 2019-10-08 2020-12-08 Lancium Llc Behind-the-meter branch loads for electrical vehicle charging
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
US11016458B2 (en) 2019-10-28 2021-05-25 Lancium Llc Methods and systems for adjusting power consumption based on dynamic power option agreement
US11594888B2 (en) 2019-10-28 2023-02-28 Lancium Llc Methods and systems for adjusting power consumption based on a fixed-duration power option agreement
US11581734B2 (en) 2019-10-28 2023-02-14 Lancium Llc Methods and systems for adjusting power consumption based on a dynamic power option agreement
US11031783B2 (en) 2019-10-28 2021-06-08 Lancium Llc Methods and systems for adjusting power consumption based on a fixed-duration power option agreement
US11669920B2 (en) 2020-02-27 2023-06-06 Lancium Llc Computing component arrangement based on ramping capabilities
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
CN112817752A (en) * 2021-01-21 2021-05-18 西安交通大学 Distributed database dynamic load balancing method

Also Published As

Publication number Publication date
KR100907946B1 (en) 2009-07-16

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
US10484465B2 (en) Combining stateless and stateful server load balancing
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
JP4529974B2 (en) Server load balancing system, server load balancing device, content management device, and server load balancing program
CN101815033B (en) Method, device and system for load balancing
JP2009501373A (en) Method and system for dynamic rebalancing of client sessions in a server cluster connected to a network
CN107800768A (en) Open platform control method and system
CN102118433A (en) Multiple-tier distributed cluster system
KR20010088742A (en) Parallel Information Delievery Method Based on Peer-to-Peer Enabled Distributed Computing Technology
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
KR20130070500A (en) Method and apparatus for processing server load balancing with the result of hash function
US11025710B1 (en) Systems and methods for dynamic load balancing based on server utilization and content popularity
CN103401799A (en) Method and device for realizing load balance
JP5951888B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
KR20230132398A (en) Device For Managing QoS Of Storage System And Method Thereof
EP4115580B1 (en) Hostname pre-localization
Jayabal et al. Design and Implementation of Locally Distributed Web Server Systems using Load Balancer
Chyrvon et al. THE MAIN METHODS OF LOAD BALANCING ON THE NGINX WEB SERVER
Yokota et al. A load reduction system to mitigate flash crowds on web server
Pandey Capacity/Context Aware Load Balancing
Ramana et al. NDLB: Nearest Dispatcher Load Balancing approach for Web Server Cluster
CN112671905A (en) Service scheduling method, device and system

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