KR100907946B1 - Dynamic Hashing Based Load Balancing System and Its Method - Google Patents
Dynamic Hashing Based Load Balancing System and Its Method Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address 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
본 발명은 해싱 기반의 부하 분산기에 관한 것으로서, 보다 상세하게는 해싱 알고리즘의 장점인 낮은 메모리 사용률과 무한대의 세션 처리 능력 그리고 고속의 처리속도를 그대로 유지하면서 세션 기반의 알고리즘들의 장점인 부하분산의 정교함과 서버의 추가/삭제/과부하시 해싱함수의 변화로 인하여 사용자와 서버간의 연결성을 보장하며 캐싱 효과를 향상시키며, 그에 따라 단순한 부하분산 알고리즘을 통하여 효율적인 부하분산기를 제공하며 이를 통해 소형 시스템에도 고성능의 기능을 제공하는 동적 해싱 기반의 부하 분산 시스템 및 그 방법에 관한 것이다.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
도 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
그러나 이러한 세션기반 부하분산 방식은 유한한 해싱 테이블 내에서 무한한 세션을 찾는 방식으로 많은 사용자(101)로 인하여 세션의 수가 늘어날 경우 이에 비례하여 검색시간이 늘어나 부하분산기 처리속도에 영향을 주며, 세션의 한계치가 유한한 메모리의 크기에 비례한다는 단점을 가진다. However, this session-based load balancing method finds infinite sessions within a finite hashing table. When the number of sessions increases due to
또한, 부하분산기(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
세션기반 부하분산 알고리즘에 속하지 않는 해싱 알고리즘은 부하분산 대상 서버 수에 기반한 해싱함수를 사용하며 세션을 기록하지 않고 단지 해싱함수에서 나오는 값을 부하분산 결과로 판단하고 해당 서버로 사용자(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
해싱 알고리즘을 이용하는 종래 서버 부하 분산방식을 예를 들어 들어 설명하면 다음과 같다. 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,
해싱기반 부하분산 알고리즘은 세션기반 부하분산 알고리즘과 달리 해싱함수를 이용하기 때문에 서버의 부하정보를 전혀 고려하지 않으며 사용자(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
또한, 사용자(101) 또는 사용자(101)의 요청이 특정 서버로만 전달되는 점에 있어서 연결보장성(stickiness)과 서버의 캐싱 효과가 증가 하는 효과를 얻을 수 있다. In addition, since the request of the
하지만 해싱값으로 해당 서버(104)(105)(106)가 결정되기 때문에 부하분산이 정교하게 되지 않으며, 그리고 해싱함수의 입력 값을 출발지 IP 주소만을 사용하는 경우 프락시나 SNAT(Source Network Address Translation)을 통해 들어온 사용자(101)들의 요청은 하나의 사용자(101)로 보여 특정 서버로 부하가 집중되는 현상을 보인다. 또한 서버의 추가/삭제/장애 현상이 발생하였을 때, 서버수에 기반한 해싱함수를 사용하는 알고리즘은 사용가능한 서버수 변경으로 인해 해싱함수가 변경되어 사용자의 요청과 서버와의 연결관계가 바뀌게 되어 결과적으로 사용자(101) 또는 사용자(101)와 서버간의 연결보장성(stickiness)을 보장하지 못하는 문제점이 있으며 이는 서버 어플리케이션의 특성에 따라서 접속이 끊기거나 어플리케이션이 오동작하는 문제점을 가질 수 있다. However, since the
해싱기반 알고리즘을 사용하는 경우 서버그룹중 임의의 서버가 과부하 상태가 되어 그 서버가 담당하던 세션중의 일부를 다른 서버로 재배치해야 하는 경우에도 위에서 설명하는 사용자(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
기존 해싱기반 부하분산 알고리즘에서 서버그룹내 사용가능한 서버 대수가 변경되면 해싱함수가 변경되어 사용자와 서버간의 연결보장성(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
본 발명의 동적 해싱기반의 부하분산 시스템은 상기 부하분산제어 및 장애감시부가 서버그룹내 특정 서버가 계속 처리할 수 있으나 부하가 해싱값 이동정보테이블에 지정된 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
도2는 종래의 해싱 기반 부하분산기(200)의 구조를 나타내는 블록도이다. 종래의 부하분산기(200)는 해싱값 추출기(220), 해싱테이블(230), 부하분산제어 및 장애감시부(210)로 구성되어 있다. 2 is a block diagram illustrating a structure of a conventional hashing-based
해싱값 추출기(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
도 3은 종래의 해싱 기반 부하분산기(320)가 사용자의 요청(310)을 처리하는 과정을 나타내는 블록도이다. 부하분산기(320)는 사용자 요청(310) 정보에서 해싱값추출기(321)를 통해 1이라는 해싱값을 추출하고, 해싱테이블(322)에서 해싱값 1에 할당된 서버(330) 2를 찾아 사용자의 요청을 서버(330) 2로 보내는 역할을 수행한다.3 is a block diagram illustrating a conventional hashing-based
도 4는 본 발명의 동적 해싱 기반의 부하분산기(400)의 구조를 나타내는 블 록도이다. 4 is a block diagram showing the structure of the
본 발명에 따른 동적 해싱 기반의 부하분산기(400)는 해싱값 추출기(420), 해싱테이블(430), 해싱값 이동정보테이블(440), 세션테이블(450), 부하분산제어 및 장애감시부(410)로 구성되어있다.The dynamic hashing-based
해싱값 추출기(420)는 사용자의 요청에서 임의의 정보를 해싱값으로 계산하는 기능을 담당하고, 해싱테이블(430)은 계산된 해싱값을 이용하여 처리 가능한 서버를 선택할 수 있도록 하는 기능을 담당한다. The hashing
해싱값 이동정보테이블(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
도 5는 본 발명의 동적 해싱 기반의 부하분산기가 사용자의 요청(510)을 처리하는 과정을 나타내는 블록도이다.5 is a block diagram illustrating a process of processing a user's
서버 삭제/장애/추가/과부하와 같은 상황이 발생하지 않는 일반적인 상황에서 본 발명인 동적 해싱 기반의 부하분산기(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
그러나 서버그룹(530)의 서버 삭제/장애/추가/과부하와 같은 특수한 상황에서는 본 발명의 실시 예를 나타내는 도 7, 8, 9, 10을 따른다.However, in special situations such as server deletion / fault / addition / overload of the
도 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
일반적인 해싱 기반의 부하 분산 방법은 서버 삭제/장애 및 추가의 경우 사용가능한 서버의 수를 이용하여 해싱값을 재계산하기 때문에 이전의 사용자와 서버의 연결 상태가 보전되지 않고 재계산된 형태로 연결이 변경된다. 이러한 경우, 웹 어플리케이션의 경우 사용자의 접속이 종료되고, 캐싱 서버의 경우 히트율이 급격이 저하된다. 도 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
만일 신규 세션이라면 위에서 정한 재배정 원칙에 따라 예를 들어 해싱값이 8이면 서버 2로 배정한다. 만일 기존 세션이라면 일정시간안에 들어온 요청여부를 판단한다. 만일 일정 시간동안에 다시 들어온 사용자 요청이라면 기존 서버 3에 배정하며(이는 도 11 F123 단계에 의하여 결정된다. 서버 3이라는 정보는 해당 세션에 등록되어 있는데 도 6b의 세션테이블(450)내 해당 세션에서 실제서버 주소/port 필드에 서버 3에 관한 정보가 들어 있다고 할 수 있다),If the session is new, for example, if the hashing value is 8, the
일정 시간후에 들어온 요청이라면 세션을 계속 유지하지 않아도 된다고 판단하여 위에서 정한 재배정 원칙에 따라 예를 들어 해싱값이 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
도 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
일반적인 해싱 기반의 부하 분산 방법은 사용자의 요청이 하나 혹은 일부의 서버로 과부하됨으로써 전체적인 서버들의 성능이 요청이 과부하되는 서버에 의존하는 경향이 존재한다. 도 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
도 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
예를 들면, 첫 번째 요청은 서버 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
본 발명의 동적 해싱 기반의 부하 분산 기법을 도 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
F241: 서버의 상태가 서버가 처리할 수 있는 과부하 상태 1이라면 서버들의 부하율 및 상태에 따라 이동할 해싱값을 선정한다. 구체적인 예는 도 9를 따른다.F241: If the server state is
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
F251: 서버의 상태가 서버가 처리할 수 없는 과부하 상태 2라면 과부하 상태의 해싱값을 라운드 로빈으로 변경하여 스케줄링을 수행한다. 구체적인 예는 도 10을 따른다.F251: If the state of the server is an
도 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)
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)
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)
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)
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 |
-
2007
- 2007-07-30 KR KR1020070076426A patent/KR100907946B1/en active IP Right Grant
Patent Citations (4)
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)
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 |