KR20170084400A - Load Balancing System Using Data Replication and Migration in Distributed In-Memory Environment - Google Patents
Load Balancing System Using Data Replication and Migration in Distributed In-Memory Environment Download PDFInfo
- Publication number
- KR20170084400A KR20170084400A KR1020160003268A KR20160003268A KR20170084400A KR 20170084400 A KR20170084400 A KR 20170084400A KR 1020160003268 A KR1020160003268 A KR 1020160003268A KR 20160003268 A KR20160003268 A KR 20160003268A KR 20170084400 A KR20170084400 A KR 20170084400A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- data
- load
- hash
- hot data
- Prior art date
Links
- 238000013508 migration Methods 0.000 title claims abstract description 23
- 230000005012 migration Effects 0.000 title claims abstract description 23
- 230000010076 replication Effects 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000003362 replicative effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G06F17/30575—
-
- G06F17/30722—
-
- 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/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 분산 인-메모리 환경에서 데이터 복제 및 이주를 이용한 부하 분산 시스템에 관한 것으로서, 링 기반의 해시 기법을 사용하여 사용량이 많은 핫 데이터를 다른 노드에 복제하고, 이때 노드의 부하 상태를 고려하여 균등한 해시 범위로 핫 데이터를 복제하는 데이터 복제 모듈, 핫 데이터의 메타 데이터를 각 노드로부터 지속적으로 전송 받아 로드 밸런서에 전달하고, 로드 밸런서에 유지되는 핫 데이터의 메타 데이터를 주기적으로 클라이언트에 전송하는 메타 데이터 동기화 모듈 및 링 기반의 해시 기법을 사용하여 노드를 추가 또는 제거하고, 이때 모든 데이터를 재분배하는 것이 아니라 노드의 부하 상태를 고려하여 인접한 다른 노드에서 관리해야 할 해시 범위를 조정하여 일부 데이터만을 이주시키는 데이터 이주 모듈을 포함함으로써, 특정 노드에 집중될 수 있는 부하를 효율적으로 관리할 수 있다.The present invention relates to a load balancing system using data replication and migration in a distributed in-memory environment, in which hot data having high usage is replicated to another node using a ring-based hash technique, A data replication module that replicates hot data to an even hash range, a method in which the metadata of hot data is continuously received from each node and transmitted to the load balancer, and the metadata of the hot data maintained in the load balancer is periodically transmitted to the client It is not necessary to add or remove nodes using the metadata synchronization module and the ring-based hash technique. Instead of redistributing all the data, it is necessary to adjust the hash range to be managed by the adjacent node By including the migrating data migration module, It is possible to effectively manage a load that can be concentrated on a specific node.
Description
본 발명은 부하 분산 시스템에 관한 것으로, 더욱 상세하게는 분산 메모리 환경에서 링 기반의 해시 기법을 사용하여 데이터 복제 및 이주를 수행함으로써 특정 노드에 집중될 수 있는 부하를 효율적으로 관리하는 부하 분산 시스템에 관한 것이다.BACKGROUND OF THE
최근 Twitter나 Facebook과 같은 소셜 미디어의 급격한 성장과 스마트폰 같은 디지털 기기 사용이 증가하면서 데이터양이 기하급수적으로 증가하였다. 기존의 저장 및 분석 시스템의 처리 한계를 넘어서는 데이터량의 증가로 인해 하둡(hadoop)이나 병렬 DBMS(Database Management System)와 같은 분산 저장 및 관리 기술이 활용되고 있다.Recently, the amount of data increased exponentially with the rapid growth of social media such as Twitter and Facebook, and the increase in the use of digital devices such as smartphones. Distributed storage and management technologies such as Hadoop and parallel DBMS (Database Management System) are being utilized due to the increase in the amount of data beyond the processing limit of existing storage and analysis systems.
하지만 디스크에 데이터를 저장하고 처리할 경우 I/O 속도로 인해 병목 현상이 발생하여 전체적인 처리 속도가 저하되는 문제가 발생한다. 이러한 문제점을 해결하기 위해 디스크에 비해 I/O 속도가 빠른 메모리에 데이터를 저장하고 처리하는 인-메모리 기술이 중요하게 부각되고 있다. 인-메모리 기술은 데이터를 하드 디스크가 아닌 메모리에 적재하여 사용하기 때문에 데이터를 빠르게 접근하고 처리할 수 있다. 이러한 분산 인-메모리 기술은 Facebook과 Twitter와 같이 방대한 양의 데이터를 실시간으로 처리하는 기업에서 많이 활용되고 있다. 대표적인 인-메모리 처리 기술로는 멤캐시(memcached)가 있다. 멤캐시는 Facebook, Twitter, Reddit, YouTube와 같이 클라우드 및 웹 서비스 제공 회사에서 사용하는 키-값(key-value) 기반의 메모리 캐시이다. 이러한 멤캐시는 분산 환경에서 각각의 메모리를 하나의 저장소처럼 관리하여 사용하기 때문에 백-엔드 시스템에 연결된 저장소에 대한 접근 비용과 시간을 감소시킬 수 있다.However, when data is stored and processed on a disk, the I / O speed causes bottlenecks and degrades overall processing speed. In order to solve these problems, in-memory technology that stores and processes data in a memory having a faster I / O rate than a disk is becoming important. In-memory technology uses data stored in memory rather than hard disk, so data can be accessed and processed quickly. This distributed in-memory technology is used in companies that process large amounts of data in real time, such as Facebook and Twitter. A typical in-memory processing technique is memcached. Mem Cache is a key-value-based memory cache used by cloud and web service providers such as Facebook, Twitter, Reddit, and YouTube. This memcache can reduce the access cost and time to the storage connected to the back-end system because each memory in the distributed environment is managed as one storage.
분산 메모리 환경에서 데이터를 처리할 때 특정 노드에 과부하가 발생하면 처리 성능이 저하되는 문제가 발생한다. 따라서 노드의 부하 분산을 처리하기 위한 연구들이 진행되고 있다. 부하 분산을 위한 기법으로 데이터 이주나 복제, 이주와 복제를 혼합한 기법을 많이 사용한다. 예를 들어, APA(Adaptive Performance-Aware distributed memory caching)는 노드의 부하를 계산하기 위해 데이터 적중률과 사용률을 기반으로 노드의 비용을 계산하고, 계산된 비용을 이용하여 노드의 해시 공간을 조정하고 데이터를 이주하여 노드의 부하를 분산하는 기법을 제안하였다. 노드의 데이터 중에서 접근이 많은 핫 데이터는 노드의 부하에서 많은 양을 차지하고 있다. 하지만 핫 데이터를 고려하지 않고 노드의 부하만을 이용하여 해시범위를 조정할 경우 각 노드의 부하가 차이가 클수록 조정해야 하는 해시 범위가 많아지고 이로 인해 많은 데이터가 이주하여 이주비용이 증가한다. 과부하 노드의 이웃노드 또한 과부하 상태일 경우 해시범위를 조정하여 부하분산을 처리할 수 없다. 또한, ECMS(Efficient Cache Management Scheme)는 핫 데이터를 다른 노드로 이주하여 부하분산을 관리한다. 하지만 핫 데이터를 이주하게 되면 데이터가 이주된 노드의 부하를 상승시켜 다시 다른 노드의 과부하를 발생시킬 수 있다. 그로 인하여 기존 과부하 노드는 부하가 줄어들지만, 핫 데이터를 받은 노드는 부하가 크게 증가하여 과부하를 발생시키는 문제점이 있다.When data is processed in a distributed memory environment, there is a problem that processing performance is degraded when an overload occurs in a specific node. Therefore, researches are underway to deal with load distribution of nodes. Load balancing is a technique that uses a mixture of data migration, replication, migration, and replication. For example, APA (Adaptive Performance-Aware distributed memory caching) calculates the cost of a node based on the data hit ratio and usage rate to calculate the node load, adjusts the hash space of the node using the calculated cost, We propose a method to distribute the load of node. Among hot data of nodes, hot data occupies a lot of load of nodes. However, when the hash range is adjusted using only the load of the node without considering the hot data, the larger the load of each node, the more hash range to be adjusted, and the more the data is migrated, the more the migration cost is increased. Neighboring nodes of an overloaded node also can not handle load balancing by adjusting the hash range when overloaded. In addition, ECMS (Efficient Cache Management Scheme) manages load balancing by migrating hot data to another node. However, when hot data is migrated, the data may overload the migrated node and cause another node to overload. Therefore, the load of the existing overload node is reduced, but the node receiving the hot data has a problem that the load is greatly increased and the overload occurs.
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 핫 데이터 복제 및 노드의 추가/제거 시에 노드의 부하를 고려하여 해시 공간을 조정하고 데이터를 복제 및 이주하여 부하를 분산시킴으로써 특정 노드에 집중될 수 있는 부하를 효율적으로 관리하는 부하 분산 시스템을 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems of the prior art, and it is an object of the present invention to provide a method and apparatus for adjusting a hash space in consideration of load of a node at the time of hot data replication and node addition / And a load balancing system for efficiently managing a load that can be concentrated in a specific node by distributing the load.
상기와 같은 목적을 달성하기 위한 본 발명의 부하 분산 시스템은, 링 기반의 해시 기법을 사용하여 사용량이 많은 핫 데이터를 다른 노드에 복제하고, 이때 노드의 부하 상태를 고려하여 균등한 해시 범위로 핫 데이터를 각각 복제하는 데이터 복제 모듈, 핫 데이터의 메타 데이터를 각 노드로부터 지속적으로 전송 받아 로드 밸런서에 전달하고, 로드 밸런서에 유지되는 핫 데이터의 메타 데이터를 주기적으로 클라이언트에 전송하는 메타 데이터 동기화 모듈 및 링 기반의 해시 기법을 사용하여 노드를 추가 또는 제거하고, 이때 모든 데이터를 재분배하는 것이 아니라 노드의 부하 상태를 고려하여 인접한 다른 노드에서 관리해야 할 해시 범위를 조정하여 일부 데이터만을 이주시키는 데이터 이주 모듈을 포함한다.In order to achieve the above object, a load balancing system according to the present invention replicates hot data having a large amount of usage to another node by using a ring-based hash technique, and at this time, A meta data synchronization module for continuously transmitting meta data of hot data from the respective nodes to the load balancer and periodically transmitting metadata of hot data maintained in the load balancer to the client, A data migration module that removes only some data by adjusting a hash range to be managed by another adjacent node in consideration of a load state of the node, instead of adding or removing nodes using a ring-based hash technique, .
상술한 바와 같이, 본 발명에 의한 분산 인-메모리 환경에서 데이터 복제 및 이주를 이용한 부하 분산 시스템에 따르면, 핫 데이터 복제 및 노드의 추가/제거 시에 노드의 부하를 고려하여 해시 공간을 조정하고 데이터를 복제 및 이주하여 부하를 분산시킴으로써 특정 노드에 집중될 수 있는 부하를 효율적으로 관리할 수 있다.As described above, according to the load distribution system using data replication and migration in the distributed in-memory environment according to the present invention, when hot data replication and node addition / removal are performed, It is possible to efficiently manage a load that can be concentrated in a specific node by distributing the load.
또한, 클라이언트가 핫 데이터에 대한 실시간으로 동기화된 메타 데이터를 보유하게 하여 핫 데이터에 접근할 때 중앙 서버를 거치지 않고 직접 데이터에 접근하게 함으로써 중앙 서버의 부하를 감소시키고 노드에 대한 접근 속도가 빨라질 수 있다.In addition, when the client accesses the hot data by allowing the client to keep the synchronized metadata in real time with respect to the hot data, the user directly accesses the data without going through the central server, thereby reducing the load on the central server, have.
도 1은 본 발명의 부하 분산 시스템 및 방법이 적용되는 분산 메모리 환경을 나타내는 전체 구성도이다.
도 2는 도 1과 같은 분산 메모리 환경에 적용되는 본 발명에 따른 부하 분산 시스템의 전체 구성을 개략적으로 나타낸 블록도이다.
도 3은 데이터 복제 모듈이 본 발명의 실시예에 따라 분산 메모리 환경에서 핫 데이터를 복제하는 과정을 나타낸다.
도 4는 메타 데이터 동기화 모듈이 본 발명의 실시예에 따라 분산 메모리 환경에서 핫 데이터의 메타 데이터를 동기화하는 과정을 나타낸다.
도 5는 데이터 이주 모듈이 본 발명의 실시예에 따라 분산 메모리 환경에 새로운 노드를 추가하는 과정을 나타낸다.
도 6은 본 발명의 실시예에 따라 분산 메모리 환경에서 노드를 제거하는 과정을 나타낸다.1 is an overall configuration diagram showing a distributed memory environment to which the load distribution system and method of the present invention is applied.
2 is a block diagram schematically showing the overall configuration of a load distribution system according to the present invention applied to the distributed memory environment shown in FIG.
3 illustrates a process in which the data replication module replicates hot data in a distributed memory environment according to an embodiment of the present invention.
4 illustrates a process in which the metadata synchronization module synchronizes metadata of hot data in a distributed memory environment according to an embodiment of the present invention.
5 illustrates a process in which a data migration module adds a new node to a distributed memory environment according to an embodiment of the present invention.
FIG. 6 illustrates a process of removing a node in a distributed memory environment according to an embodiment of the present invention.
이하에서 제시된 본 발명에 의한 부하 분산 시스템은 로드 밸런서(load balancer)와 데이터를 분배하여 저장 및 처리하는 하나 이상의 노드로 구성되어, 특정 노드에 과부하가 발생할 경우 과부하가 발생한 노드의 핫 데이터를 다른 노드에 복제하고, 새로운 노드가 추가되는 경우 과부하가 가장 큰 노드의 데이터를 새로운 노드로 이주하여 부하를 분산하고, 클라이언트가 핫 데이터를 요청하는 경우 클라이언트로 하여금 자신이 보유한 핫 데이터의 메타 데이터를 이용하여 핫 데이터를 보유한 노드에 접근하게 하며, 클라이언트가 핫 데이터가 아닌 데이터를 요청하는 경우에는 로드 밸런서를 통해 데이터가 저장된 노드에 접근하게 하는 분산 메모리 환경을 바탕으로 하는 경우를 바람직한 실시예로서 제안한다.The load balancing system according to the present invention is composed of a load balancer and one or more nodes for distributing and storing data and processing data. When an overload occurs in a specific node, the hot data of the overloaded node is transmitted to another node When a new node is added, the data of the node with the largest overload is migrated to a new node and the load is distributed. When the client requests hot data, the client uses the metadata of the hot data held by the client, The present invention proposes as a preferred embodiment a distributed memory environment for accessing a node having hot data and allowing a client to access data stored through a load balancer when requesting data other than hot data.
도 1은 본 발명의 부하 분산 시스템이 적용되는 분산 메모리 환경을 나타내는 전체 구성도이다.BRIEF DESCRIPTION OF DRAWINGS FIG. 1 is an overall configuration diagram showing a distributed memory environment to which a load distribution system of the present invention is applied. FIG.
도 1을 참조하면, 본 발명의 부하 분산 시스템이 적용되는 분산 메모리 환경은 로드 밸랜서와 노드1 내지 노드4로 구성되어, Node1에서 과부하가 발생할 경우 자주 사용되는 핫 데이터를 다른 노드인 Node2와 Node3에 복제하고, 새로운 노드인 Node4가 추가되는 경우 기존 노드인 Node3에서 Node4로 데이터를 이주하여 부하를 분산한다. 그리고, 클라이언트가 data1을 요청할 경우 클라이언트가 자신이 보유한 핫 데이터의 메타 데이터를 이용하여 핫 데이터인 data1을 보유한 Node1에 직접 접근하게 하는 한편, 클라이언트가 data10을 요청할 경우에는 data10이 핫 데이터가 아니므로 로드 밸런서를 통하여 data10이 저장된 node3에 접근하게 한다.Referring to FIG. 1, a distributed memory environment to which the load balancing system of the present invention is applied is composed of a load balancer and
이하, 본 발명의 부하 분산 시스템 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, the load distribution system of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 도 1과 같은 분산 메모리 환경에 적용되는 본 발명에 따른 부하 분산 시스템의 전체 구성을 개략적으로 나타낸 블록도이다.2 is a block diagram schematically showing the overall configuration of a load distribution system according to the present invention applied to the distributed memory environment shown in FIG.
도 2에 도시된 바와 같이, 본 발명에 따른 부하 분산 시스템은 링 기반의 해시 기법을 사용하여 사용량이 많은 핫 데이터를 다른 노드에 복제하고, 이때 노드의 부하 상태를 고려하여 균등한 해시 범위로 핫 데이터를 각각 복제하는 데이터 복제 모듈(110), 핫 데이터의 메타 데이터를 각 노드로부터 지속적으로 전송 받아 로드 밸런서에 전달하고, 로드 밸런서에 유지되는 핫 데이터의 메타 데이터를 주기적으로 클라이언트에 전송하는 메타 데이터 동기화 모듈(120) 및 링 기반의 해시 기법을 사용하여 노드를 추가 또는 제거하고, 이때 모든 데이터를 재분배하는 것이 아니라 노드의 부하 상태를 고려하여 인접한 다른 노드에서 관리해야 할 해시 범위를 조정하여 일부 데이터만을 이주시키는 데이터 이주 모듈(130)을 포함하여 이루어진다.As shown in FIG. 2, the load balancing system according to the present invention uses a ring-based hash technique to replicate hot data having a large amount of usage to another node. In this case, A
먼저, 본 발명의 데이터 복제 모듈(110)은 특정 노드에 집중되는 부하를 분산시키기 위해 링 기반의 해시 기법을 사용하여 사용량이 많은 핫 데이터를 다수의 노드에 복제하고, 이때 노드의 부하 상태를 고려하여 균등한 해시 범위로 각각 핫 데이터를 복제한다. 이와 같이, 본 발명에 따르면, 특정 노드에 집중될 수 있는 부하를 분배하는 것이 중요한 도 1과 같은 분산 메모리 환경에서, 특히 특정 노드에 접근이 많아 부하를 크게 발생시키는 핫 데이터가 발생하더라도, 핫 데이터를 적절하게 복제하여 분배함으로써 과부하 된 노드의 부하를 효율적으로 감소시킬 수 있다.First, the
도 3은 데이터 복제 모듈(110)이 본 발명의 실시예에 따라 분산 메모리 환경에서 핫 데이터를 복제하는 과정을 나타낸다.FIG. 3 illustrates a process in which the
분산 메모리 환경에서 노드가 삭제될 경우 통상적으로 삭제되는 노드의 데이터를 이웃 노드로 이주하게 되는데, 이에 따라 만약 연속된 이웃 노드에 데이터가 복제되고 복제 데이터를 가진 노드가 제거될 경우에 하나의 노드에 핫 데이터가 중복해서 저장이 될 수 있다. 이렇게 되면, 같은 노드에 두 개의 핫 데이터 복제본이 저장되기 때문에 메모리 공간이 낭비되고 부하도 집중된다. 따라서, 본 발명의 데이터 복제 모듈(110)은 분산 메모리 환경에서 핫 데이터를 복제할 때 복제되는 핫 데이터의 수에 따라서 전체 해시 범위를 고르게 분할하고, 분할 범위 안에서 작은 해시 값부터 순차적으로 검사하여 과부하 상태가 아닌 노드에 핫 데이터를 복제하여, 핫 데이터의 복제본을 가진 노드가 제거되어도 하나의 노드에 데이터가 중복 저장되는 것을 방지할 수 있다. 도 3을 참조하면, 원본 데이터를 포함한 데이터의 복제 수가 3개일 때, 원본 데이터의 해시 값을 기준으로 전체 해시 범위를 균등하게 3개로 분할한다. 그 후, 원본 데이터는 기존 저장 노드에 유지한다. 첫 번째 복제본은 range2의 범위 내에서 순차적으로 부하를 고려하여 저장을 한다. range2의 첫 번째 노드인 N6이 과부하 상태에 있다면 다음 노드인 N7을 검사하여 N7이 과부하 상태가 아니면 N7에 두 번째 데이터를 복제한다. 두 번째 복제본은 range3의 범위에 첫 번째 노드인 N10이 과부하 상태가 아니면 N10에 복제한다.When a node is deleted in a distributed memory environment, data of a node that is normally deleted is migrated to a neighboring node. Thus, if data is copied to a contiguous neighboring node and a node having replication data is removed, Hot data can be stored redundantly. This saves both memory space and load because two hot data replicas are stored on the same node. Accordingly, the
데이터 복제를 위해 노드를 선택하기 위한 해시 범위는 수학식 1 및 2를 사용하여 분할한다. 먼저 수학식 1은 데이터 복제를 위해 해시 범위를 분할하기 위해 사용되는 해시 값을 계산한다. 여기서, 는 분할 범위를 구하기 위해 사용되는 해시 값, 는 전체 해시 범위, 는 계산하는 해시 값의 수, 는 핫 데이터의 해시 값을 나타낸다. 다음으로, 수학식 2는 수학식 1에서 계산한 해시 값을 사용하여 데이터 복제를 위해 노드를 선택하기 위한 분할 해시 범위를 산출한다. 는 해시 범위, 는 수학식 1에서 계산한 해시 값을 이용하여 해시 범위를 분할한 것이다.The hash range for selecting nodes for data replication is partitioned using equations (1) and (2). Equation (1) first calculates the hash value used to divide the hash range for data replication. here, Is a hash value used to obtain the division range, The entire hash range, The number of hash values to be calculated, Represents the hash value of the hot data. Next, Equation (2) uses the hash value calculated in Equation (1) to calculate a divided hash range for selecting a node for data replication. The hash range, Is obtained by dividing the hash range using the hash value calculated in Equation (1).
다음으로, 메타 데이터 동기화 모듈(120)은 핫 데이터의 메타 데이터를 각 노드로부터 지속적으로 전송 받아 로드 밸런서에 전달하고, 로드 밸런서에 유지되는 핫 데이터의 메타 데이터를 주기적으로 클라이언트에 전송한다. 구체적으로, 본 발명의 메타 데이터 동기화 모듈(120)은 로드 밸런서에 대한 접근을 감소시키기 위해 핫 데이터의 메타 데이터를 각 노드로부터 지속적으로 전송 받아 로드 밸런서에 전달함으로써 로드 밸런서가 시스템 전체의 핫 데이터의 메타 데이터를 관리하게 하고, 로드 밸런서에 유지되는 핫 데이터의 메타 데이터를 주기적으로 클라이언트에 전송하여 클라이언트가 로드 밸런서를 거치지 않고 핫 데이터의 메타 데이터를 이용하여 직접 핫 데이터를 보유한 노드에 접근하게 한다. 이와 같이, 본 발명에 따르면, 클라이언트가 핫 데이터가 아닌 데이터를 요청하는 경우에만 로드 밸런서를 통해 데이터가 저장된 노드에 접근하게 하고 클라이언트가 핫 데이터를 요청하는 경우에는 클라이언트로 하여금 자신이 보유한 핫 데이터의 메타 데이터를 이용하여 핫 데이터를 보유한 노드에 접근하게 함으로써, 로드 밸런서에 대한 접근 및 그에 따른 부하를 감소시키고 전체 시스템의 성능을 향상시킬 수 있다.Next, the
도 4는 메타 데이터 동기화 모듈(120)이 본 발명의 실시예에 따라 분산 메모리 환경에서 핫 데이터의 메타 데이터를 동기화하는 과정을 나타낸다.FIG. 4 illustrates a process in which the
분산 메모리 환경에서 클라이언트가 노드에 접근하기 위해서는 통상적으로 로드 밸런서를 통해 데이터를 보유한 노드에 접근을 한다. 이렇게 해서 데이터 요청이 많아지게 되면 로드 밸런서의 부하가 많아지고 성능이 저하되기 때문에 전체적인 시스템 성능이 저하된다. 따라서, 본 발명의 메타 데이터 동기화 모듈(120)은 로드 밸런서가 노드들로부터 핫 데이터에 대한 정보를 받아 별도의 핫 데이터의 메타 데이터를 종합하여 관리하게 하여, 로드 밸랜서의 접근을 감소시킨다. 도 4를 참조하여, data1 및 data12가 핫 데이터이고 데이터가 복제가 되었을 경우 로드 밸런서는 핫 데이터의 복제본의 메타 데이터를 유지하고, 시스템을 사용하는 클라이언트 #1, 클라이언트 #2, 클라이언트 #3과 같은 모든 클라이언트는 로드 밸런서에 업데이트된 핫 데이터의 메타 데이터를 주기적으로 전송 받아 최신의 메타정보를 유지하도록 한다. 핫 데이터를 동기화하지 않으면 클라이언트가 핫 데이터의 메타 데이터를 사용하여 노드에 접근할 때 잘못된 노드에 접근할 수 있기 때문에, 본 발명에 따르면 핫 데이터의 복제본에 대해 동기화된 메타 데이터를 주기적으로 클라이언트에게 전송함으로써 클라이언트가 노드에 잘못 접근하는 것을 방지할 수 있다.In a distributed memory environment, a client typically accesses a node that has data through a load balancer to access the node. This increases the load on the load balancer and degrades the performance, thus degrading overall system performance. Accordingly, the
데이터 이주 모듈(130)은 링 기반의 해시 기법을 사용하여 노드를 추가 또는 제거하고, 이때 모든 데이터를 재분배하는 것이 아니라 노드의 부하 상태를 고려하여 인접한 다른 노드에서 관리해야 할 해시 범위를 조정하여 일부 데이터만을 이주시킨다. 구체적으로, 데이터 이주 모듈(130)은 새로운 노드 추가 시 전체 노드들 중 부하가 가장 큰 노드와 반시계 방향으로 이웃한 노드 사이에 새로운 노드를 추가하고 상기 부하가 가장 큰 노드의 해시 범위의 일부를 새로운 노드로 이주시키고, 노드 제거 시에는 제거되는 노드의 양 이웃 노드들의 부하 상태를 고려하여 상기 제거되는 노드의 해시 범위를 분배하여 양 이웃 노드들로 이주시킨다. 이와 같이, 본 발명에 따르면, 분산 메모리 환경에서 노드가 추가 또는 제거되는 경우 분산된 노드에 모든 데이터를 재분배하지 않고 인접한 다른 노드에서 관리해야 할 해시 값을 조정하여 일부 데이터만을 재분배함으로써 시스템 전체에 부하가 발생하는 것을 방지하고 시스템 전체 부하를 감소시킬 수 있다.The
도 5는 데이터 이주 모듈(130)이 본 발명의 실시예에 따라 분산 메모리 환경에 새로운 노드를 추가하는 과정을 나타낸다.5 illustrates a process in which the
데이터 이주 모듈(130)은 본 발명의 분산 메모리 환경에 새로운 노드가 추가되는 경우 새로운 노드를 전체 노드들 중 부하가 가장 큰 노드와 반시계 방향으로 이웃한 노드 사이에 추가하고 상기 부하가 가장 큰 노드의 해시 범위의 일부, 바람직하게는 50%를 새로운 노드로 이주시켜, 부하가 가장 큰 노드의 부하를 감소시킨다. 도 5를 참조하면, 노드 가 전체 노드들 중에서 부하가 가장 큰 노드이고 그러한 노드 가 관리하는 해시 범위가 0 내지 1000인 경우, 새로운 노드()는 부하가 가장 큰 노드()의 반시계 방향의 이웃 노드로 추가되고 부하가 가장 큰 노드()의 해시 범위의 일부, 바람직하게는 50%인 0 내지 500을 관리한다. 이와 같이, 본 발명에 따르면, 분산 메모리 환경에 새로운 노드 추가 시 부하가 가장 큰 노드의 해시 범위를 새로 추가되는 노드가 일부 관리하게 함으로써 기존 과부하 노드의 부하를 감소시킬 수 있다.When a new node is added to the distributed memory environment of the present invention, the
새로운 노드의 해시 값은 수학식 3과 같이 연산한다. 여기서, 는 새롭게 추가되는 노드의 해시 값을 나타내고, 는 부하가 가장 큰 기존 노드의 해시 범위를 나타내며, n은 가변 상수로서 바람직하게는 2이다.The hash value of the new node is calculated according to Equation (3). here, Represents a hash value of a newly added node, Represents the hash range of the existing node having the largest load, and n is a variable constant, preferably 2.
도 6은 데이터 이주 모듈(130)이 본 발명의 실시예에 따라 분산 메모리 환경에서 노드를 제거하는 과정을 나타낸다.FIG. 6 illustrates a process in which the
분산 메모리 환경에서 노드가 제거되면 그 시계 방향의 이웃 노드가 제거되는 노드의 해시 범위를 관리하게 된다. 그러면 기존 시계 방향의 노드에 부하가 집중되어 사용자의 요청을 처리하는데 지연이 발생할 수 있다. 따라서, 본 발명의 데이터 이주 모듈(130)은 이를 해결하기 위해 노드가 제거되는 경우 제거되는 노드를 기준으로 양 이웃 노드들의 부하 상태를 고려하여 제거되는 노드의 해시 범위를 일정한 비율로 분배하여 양 이웃 노드들로 이주시킴으로써, 제거되는 노드의 시계 방향 이웃 노드로 부하가 집중되는 것을 방지한다. 도 6을 참조하면, 기존 노드()가 제거되는 경우, 기존 노드()의 시계 방향 노드()와 반시계 방향 노드()가 기존 노드()의 해시 범위를 분배하여 관리한다. 따라서, 기존 노드()가 관리하던 해시범위가 500~1000이고 시계 방향 노드()의 부하가 20, 반시계 방향 이웃 노드()의 부하가 30일 경우, 시계 방향 노드()는 해시범위 500~700을 추가로 관리하고 반시계 방향 이웃 노드()는 해시범위 701~1000을 추가로 관리하도록 부하를 분배한다.In a distributed memory environment, when a node is removed, the clockwise neighbor node manages the hash range of the node to be removed. Then, there may be a delay in processing the user's request because the load is concentrated on the existing clockwise node. Accordingly, in order to solve the problem, the
제거되는 노드의 상기 양 이웃 노드들의 해시 값은 수학식 4와 같이 연산한다. 여기서, 는 시계 방향 노드의 해시 값, 는 반시계 방향 노드의 해시 값, {Node _{-} Load _{i}는 노드 의 부하, 는 노드 의 부하, 는 제거되는 노드의 해시 범위를 나타낸다.The hash value of the both neighbor nodes of the node to be removed is calculated as shown in Equation (4). here, Is the hash value of the clockwise node, Is the hash value of the counterclockwise node, {Node _ {-} Load _ {i} Load, The node Load, Represents the hash range of the node to be removed.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the invention.
100 : 부하 분산 시스템
110 : 데이터 복제 모듈
120 : 메타 데이터 동기화 모듈
130 : 데이터 이주 모듈100: load balancing system
110: Data Replication Module
120: metadata synchronization module
130: Data migration module
Claims (9)
핫 데이터의 메타 데이터를 각 노드로부터 지속적으로 전송 받아 로드 밸런서에 전달하고, 로드 밸런서에 유지되는 핫 데이터의 메타 데이터를 주기적으로 클라이언트에 전송하는 메타 데이터 동기화 모듈 및
링 기반의 해시 기법을 사용하여 노드를 추가 또는 제거하고, 이때 모든 데이터를 재분배하는 것이 아니라 노드의 부하 상태를 고려하여 인접한 다른 노드에서 관리해야 할 해시 범위를 조정하여 일부 데이터만을 이주시키는 데이터 이주 모듈
을 포함하는 부하 분산 시스템.A data replication module for replicating hot data using a ring-based hash technique to another node, and replicating hot data to an even hash range in consideration of the load state of the node,
A metadata synchronization module for continuously transmitting metadata of hot data from each node to the load balancer and periodically transmitting metadata of hot data maintained in the load balancer to the client,
A data migration module that removes only some data by adjusting a hash range to be managed by another adjacent node in consideration of a load state of the node, instead of adding or removing nodes by using a ring-based hash technique,
≪ / RTI >
상기 데이터 복제 모듈은,
상기 핫 데이터를 복제할 때 복제되는 핫 데이터의 수에 따라서 전체 해시 범위를 균등하게 분할하는 단계 및
각각의 분할 해시 범위 안에서 작은 해시 값부터 순차적으로 검사하여 과부하 상태가 아닌 노드에 상기 핫 데이터를 복제하는 단계
를 수행하는
부하 분산 시스템.The method of claim 1,
The data replication module includes:
Dividing the entire hash range evenly according to the number of hot data to be replicated when replicating the hot data, and
Sequentially examining a small hash value in each divided hash range to duplicate the hot data to a node that is not in an overloaded state
To perform
Load balancing system.
상기 전체 해시 범위를 분할하는 단계는,
을 이용하여 해시 값()을 계산하는 단계로서, 여기서 는 분할 해쉬 범위를 구하기 위해 사용되는 해시 값, 는 전체 해시 범위, 는 1, 2, ..., 복제본의 수, 는 계산하는 해시 값의 수, 는 핫 데이터의 해시 값을 나타내는, 상기 해시 값을 계산하는 단계 및
를 이용하여 분할 해시 범위()를 산출하는 단계로서, 여기서 는 상기 해시 값을 이용하여 전체 해시 범위를 분할하는, 상기 분할 해시 범위를 산출하는 단계
를 포함하는
부하 분산 시스템.3. The method of claim 2,
Wherein dividing the entire hash range comprises:
The hash value ( ), Wherein < RTI ID = 0.0 > Is a hash value used to obtain a divided hash range, The entire hash range, 1, 2, ..., the number of replicas, The number of hash values to be calculated, Calculating the hash value, which represents a hash value of the hot data; and
To divide the hash range ( ), Wherein < RTI ID = 0.0 > Wherein the step of dividing the entire hash range using the hash value
Containing
Load balancing system.
상기 메타 데이터 동기화 모듈은,
로드 밸런서에 대한 접근을 감소시키기 위해 상기 핫 데이터의 메타 데이터를 각 노드로부터 지속적으로 전송 받아 상기 로드 밸런서에 전달함으로써 상기 로드 밸런서가 시스템 전체의 상기 핫 데이터의 메타 데이터를 관리하게 하고, 상기 로드 밸런서에 유지되는 상기 핫 데이터의 메타 데이터를 주기적으로 상기 클라이언트에 전송하여 상기 클라이언트가 상기 로드 밸런서를 거치지 않고 상기 핫 데이터의 메타 데이터를 이용하여 직접 핫 데이터를 보유한 노드에 접근하게 하는
부하 분산 시스템.The method of claim 1,
Wherein the metadata synchronization module comprises:
The load balancer continuously receives meta data of the hot data from each node and transmits the meta data of the hot data to the load balancer so that the load balancer manages meta data of the hot data of the entire system, The client transmits the meta data of the hot data periodically to the client so that the client accesses the node having the hot data directly using the meta data of the hot data without going through the load balancer
Load balancing system.
상기 데이터 이주 모듈은,
새로운 노드 추가 시 전체 노드들 중 부하가 가장 큰 노드와 반시계 방향으로 이웃한 노드 사이에 상기 새로운 노드를 추가하고 상기 부하가 가장 큰 노드의 해시 범위의 일부를 상기 새로운 노드로 이주시키는
부하 분산 시스템.The method of claim 1,
Wherein the data migration module comprises:
When the new node is added, the new node is added between the largest load node and the counterclockwise neighboring node among all the nodes, and a part of the hash range of the largest load is migrated to the new node
Load balancing system.
상기 새로운 노드의 해시 값은 이고, 여기서 는 상기 부하가 가장 큰 기존 노드의 해시 범위, n은 가변 상수인 부하 분산 시스템.The method of claim 5,
The hash value of the new node is , Where Is a hash range of the existing node having the largest load, and n is a variable constant.
상기 n은 2인 부하 분산 시스템.The method of claim 6,
Lt; RTI ID = 0.0 > n < / RTI >
상기 데이터 이주 모듈은, 노드 제거 시 제거되는 노드의 양 이웃 노드들의 부하 상태를 고려하여 상기 제거되는 노드의 해시 범위를 일정한 비율로 양 이웃 노드들로 이주시키는 부하 분산 시스템.The method of claim 1,
Wherein the data migration module migrates the hash range of the removed node to both neighbors at a constant rate, taking into consideration the load state of both neighbor nodes that are removed when the node is removed.
상기 제거되는 양 이웃 노드 중 시계 방향 이웃 노드()의 해시 값은 이고, 상기 제거되는 양 이웃 노드 중 반시계 방향 이웃 노드()의 해시 값은 이며, 여기서 {Node _{-} Load _{i}는 상기 노드 의 부하, 는 상기 노드 의 부하, 는 상기 제거되는 노드의 해시 범위인 부하 분산 시스템.9. The method of claim 8,
Of the two neighboring nodes to be removed, the clockwise neighboring node ) Hash value is , And a counterclockwise neighboring node among the two neighboring nodes to be removed ) Hash value is , Where {Node _ {-} Load _ {i} Load, Lt; RTI ID = Load, Is a hash range of the node to be removed.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160003268A KR101790701B1 (en) | 2016-01-11 | 2016-01-11 | Load Balancing System Using Data Replication and Migration in Distributed In-Memory Environment |
PCT/KR2016/013269 WO2017122922A1 (en) | 2016-01-11 | 2016-11-17 | Load balancing system using data replication and data migration in distributed in-memory environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160003268A KR101790701B1 (en) | 2016-01-11 | 2016-01-11 | Load Balancing System Using Data Replication and Migration in Distributed In-Memory Environment |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170084400A true KR20170084400A (en) | 2017-07-20 |
KR101790701B1 KR101790701B1 (en) | 2017-11-21 |
Family
ID=59311709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160003268A KR101790701B1 (en) | 2016-01-11 | 2016-01-11 | Load Balancing System Using Data Replication and Migration in Distributed In-Memory Environment |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101790701B1 (en) |
WO (1) | WO2017122922A1 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096227B (en) * | 2019-03-28 | 2023-04-18 | 北京奇艺世纪科技有限公司 | Data storage method, data processing device, electronic equipment and computer readable medium |
CN110531938A (en) * | 2019-09-02 | 2019-12-03 | 广东紫晶信息存储技术股份有限公司 | A kind of cold and hot data migration method and system based on various dimensions |
CN113127409A (en) * | 2019-12-31 | 2021-07-16 | 深圳云天励飞技术有限公司 | Management method, device, equipment and medium of operation cluster for data real-time archiving |
CN111666159B (en) * | 2020-06-28 | 2021-08-27 | 腾讯科技(深圳)有限公司 | Load balancing control method and device, storage medium and electronic equipment |
CN114528326A (en) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | Data management method and device |
US11379369B1 (en) * | 2021-01-15 | 2022-07-05 | Coupang Corp. | Systems and methods for dynamic in-memory caching of mappings into partitions |
CN114172917B (en) * | 2021-12-01 | 2023-06-09 | 东方财富信息股份有限公司 | Distributed cache system and deployment method thereof |
CN114079656A (en) * | 2022-01-19 | 2022-02-22 | 之江实验室 | Probability-based load balancing method and device, electronic equipment and storage medium |
CN115001969B (en) * | 2022-05-24 | 2024-06-14 | 北京金玖银玖数字科技有限公司 | Data storage node deployment method, data storage method, device and equipment |
CN114827180B (en) * | 2022-06-22 | 2022-09-27 | 蒲惠智造科技股份有限公司 | Distribution method of cloud data distributed storage |
CN115878513B (en) * | 2023-02-21 | 2023-08-15 | 中移动信息技术有限公司 | Data storage and data query method, device, equipment and storage medium |
CN118264535A (en) * | 2024-03-21 | 2024-06-28 | 仙桃市海腾科技有限公司 | Distributed caching method based on hash algorithm |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101189766B1 (en) * | 2008-12-22 | 2012-10-10 | 한국전자통신연구원 | Hot Data Management Based on Hit Counter from Data Servers in Parallelism |
US9298732B2 (en) * | 2010-09-29 | 2016-03-29 | Red Hat, Inc. | Searching cloud-based distributed storage resources using a set of expendable probes |
US9020892B2 (en) * | 2011-07-08 | 2015-04-28 | Microsoft Technology Licensing, Llc | Efficient metadata storage |
US8966204B2 (en) * | 2012-02-29 | 2015-02-24 | Hewlett-Packard Development Company, L.P. | Data migration between memory locations |
US20130263151A1 (en) * | 2012-04-03 | 2013-10-03 | Microsoft Corporation | Consistent Hashing Table for Workload Distribution |
-
2016
- 2016-01-11 KR KR1020160003268A patent/KR101790701B1/en active IP Right Grant
- 2016-11-17 WO PCT/KR2016/013269 patent/WO2017122922A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2017122922A1 (en) | 2017-07-20 |
KR101790701B1 (en) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101790701B1 (en) | Load Balancing System Using Data Replication and Migration in Distributed In-Memory Environment | |
US8838595B2 (en) | Operating on objects stored in a distributed database | |
JP6479020B2 (en) | Hierarchical chunking of objects in a distributed storage system | |
US20150215405A1 (en) | Methods of managing and storing distributed files based on information-centric network | |
US20160132523A1 (en) | Exploiting node-local deduplication in distributed storage system | |
CN104580439B (en) | Method for uniformly distributing data in cloud storage system | |
US11038959B2 (en) | State management and object storage in a distributed cloud computing network | |
US9330107B1 (en) | System and method for storing metadata for a file in a distributed storage system | |
US9471586B2 (en) | Intelligent selection of replication node for file data blocks in GPFS-SNC | |
US10009250B2 (en) | System and method for managing load in a distributed storage system | |
CN104573064B (en) | A kind of data processing method under big data environment | |
US11308043B2 (en) | Distributed database replication | |
Zeng et al. | Optimal metadata replications and request balancing strategy on cloud data centers | |
US8805797B2 (en) | Optimizing wide area network (WAN) traffic by providing home site deduplication information to a cache site | |
KR20100073154A (en) | Method for data processing and asymmetric clustered distributed file system using the same | |
US8972365B2 (en) | Storage system and storage device | |
KR20170139671A (en) | Layered cache fill | |
Matri et al. | Towards efficient location and placement of dynamic replicas for geo-distributed data stores | |
KR20130118088A (en) | Distributed file system having multi mds architecture and method for processing data using the same | |
KR101718739B1 (en) | System and Method for Replicating Dynamic Data for Heterogeneous Hadoop | |
KR20200072128A (en) | Distributed file system and file managing method for live service | |
JP6197666B2 (en) | Storage device, replication method, and replication program | |
US10666727B2 (en) | Distributed processing network operations | |
Xu et al. | C 2: adaptive load balancing for metadata server cluster in cloud-scale storage systems | |
JP6353395B2 (en) | Distribution request distribution method, node, and program |
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 |