KR101430570B1 - Distributed computing system and recovery method thereof - Google Patents

Distributed computing system and recovery method thereof Download PDF

Info

Publication number
KR101430570B1
KR101430570B1 KR1020120094738A KR20120094738A KR101430570B1 KR 101430570 B1 KR101430570 B1 KR 101430570B1 KR 1020120094738 A KR1020120094738 A KR 1020120094738A KR 20120094738 A KR20120094738 A KR 20120094738A KR 101430570 B1 KR101430570 B1 KR 101430570B1
Authority
KR
South Korea
Prior art keywords
master node
node
master
task
user
Prior art date
Application number
KR1020120094738A
Other languages
Korean (ko)
Other versions
KR20140029644A (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 KR1020120094738A priority Critical patent/KR101430570B1/en
Publication of KR20140029644A publication Critical patent/KR20140029644A/en
Application granted granted Critical
Publication of KR101430570B1 publication Critical patent/KR101430570B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2046Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities

Abstract

분산 컴퓨팅 시스템 및 상기 분산 컴퓨팅 시스템에서의 장애 복구 방법이 개시된다. 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템은, 사용자로부터 사용자 작업 요청을 수신하고, 상기 사용자 작업 요청에 따른 결과를 상기 사용자에게 반환하는 주 마스터 노드; 상기 주 마스터 노드로부터 할당된 작업을 수행하고, 수행된 작업 결과를 상기 주 마스터 노드로 송신하는 하나 이상의 데이터 노드; 및 상기 주 마스터 노드에 저장된 사용자 작업 정보 및 상기 하나 이상의 데이터 노드 별 작업 할당 정보를 상기 주 마스터 노드와 동기화하여 저장하며, 상기 주 마스터 노드에 장애가 발생한 경우 상기 주 마스터 노드를 대체하여 상기 주 마스터 노드의 기능을 수행하는 하나 이상의 보조 마스터 노드를 포함한다.A distributed computing system and a method for failover in the distributed computing system are disclosed. A distributed computing system according to an embodiment of the present invention includes a main master node receiving a user operation request from a user and returning a result according to the user operation request to the user; One or more data nodes for performing tasks assigned from the master node and transmitting the results of the tasks to the master node; And storing the user task information stored in the main master node and the at least one task assigned to each data node in synchronization with the master master node and storing the master task node in the master master node when the failure occurs in the master master node, Lt; RTI ID = 0.0 > master node < / RTI >

Description

분산 컴퓨팅 시스템 및 상기 분산 컴퓨팅 시스템에서의 장애 복구 방법{DISTRIBUTED COMPUTING SYSTEM AND RECOVERY METHOD THEREOF}[0001] DISTRIBUTED COMPUTING SYSTEM AND RECOVERY METHOD THEREOF [0002]

본 발명의 실시예들은 분산 컴퓨팅 시스템의 안정성을 향상하기 위한 기술과 관련된다.
Embodiments of the present invention relate to techniques for improving the stability of a distributed computing system.

분산 컴퓨팅이란 네트워크에 연결된 다수의 컴퓨터들의 자원을 이용하여 매우 복잡하거나 용량이 큰 계산을 효과적으로 수행하기 위한 컴퓨팅 방법을 의미한다. 이와 같은 분산 컴퓨팅은 상대적으로 저렴한 하드웨어 자원을 대규모로 연결함으로써 엄청난 컴퓨팅 능력을 요하거나 많은 양의 데이터 접근을 필요로 하는 복잡한 문제들을 효율적으로 해결할 수 있어 최근 들어 다양한 분야에 적용되고 있다.Distributed computing refers to a computing method for efficiently performing highly complex or large-scale computations using resources of a plurality of computers connected to a network. Distributed computing has been applied to various fields in recent years because it can solve complex problems that require massive computing power or require a large amount of data access by linking relatively inexpensive hardware resources on a large scale.

이와 같은 분산 컴퓨팅 시스템의 경우 일반적으로 작업을 분배하고 작업 결과를 취합하는 마스터 노드 및 실제 할당된 작업을 수행하는 복수 개의 데이터 노드로 구성되는 것이 일반적이다. 그러나 이와 같은 구조를 가지는 분산 컴퓨팅 시스템의 경우 마스터 노드에 작업 할당 정보 등이 저장되므로, 마스터 노드에 장애가 발생하거나 할 경우 지금까지 마스터 노드를 통하여 수행된 작업 전체의 정보가 손실되어 이를 모두 다시 수행하여야 하는 문제가 있었다.
In such a distributed computing system, it is general that a master node is generally composed of a master node that distributes a job and collects a job result, and a plurality of data nodes that perform an actually assigned job. However, in the case of a distributed computing system having such a structure, since the task allocation information is stored in the master node, if a failure occurs in the master node, information on the entire task performed through the master node has been lost, There was a problem.

본 발명의 실시예들은 분산 컴퓨팅 시스템에서 마스터 노드의 장애 발생에 효과적으로 대처하기 위한 수단을 제공하는 데 그 목적이 있다.
Embodiments of the present invention are intended to provide a means for effectively coping with a failure of a master node in a distributed computing system.

상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템은, 사용자로부터 사용자 작업 요청을 수신하고, 상기 사용자 작업 요청에 따른 결과를 상기 사용자에게 반환하는 주 마스터 노드; 상기 주 마스터 노드로부터 할당된 작업을 수행하고, 수행된 작업 결과를 상기 주 마스터 노드로 송신하는 하나 이상의 데이터 노드; 및 상기 주 마스터 노드에 저장된 사용자 작업 정보 및 상기 하나 이상의 데이터 노드 별 작업 할당 정보를 상기 주 마스터 노드와 동기화하여 저장하며, 상기 주 마스터 노드에 장애가 발생한 경우 상기 주 마스터 노드를 대체하여 상기 주 마스터 노드의 기능을 수행하는 하나 이상의 보조 마스터 노드를 포함한다.According to an aspect of the present invention, there is provided a distributed computing system including a main master node receiving a user work request from a user and returning a result of the user work request to the user; One or more data nodes for performing tasks assigned from the master node and transmitting the results of the tasks to the master node; And storing the user task information stored in the main master node and the at least one task assigned to each data node in synchronization with the master master node and storing the master task node in the master master node when the failure occurs in the master master node, Lt; RTI ID = 0.0 > master node < / RTI >

한편, 상기 과제를 해결하기 위한 주 마스터 노드 및 보조 마스터 노드를 포함하는 분산 컴퓨팅 시스템에서의 장애 복구 방법은, 상기 보조 마스터 노드에서, 상기 주 마스터 노드에 저장된 사용자 작업 정보 및 각 데이터 노드 별 작업 할당 정보를 동기화하여 저장하는 단계; 상기 보조 마스터 노드에서, 주 마스터 노드의 장애 발생을 감지하는 단계; 상기 보조 마스터 노드에서, 상기 주 마스터 노드를 대체하여 상기 주 마스터 노드의 기능을 수행하는 단계를 포함한다.
According to another aspect of the present invention, there is provided a failure recovery method in a distributed computing system including a primary master node and a secondary master node, the method comprising: in the secondary master node, Synchronizing and storing the information; Detecting, at the auxiliary master node, occurrence of a failure of the main master node; Performing the function of the master master node by replacing the master master node in the auxiliary master node.

본 발명의 실시예들에 따를 경우 분산 컴퓨팅 환경에서 마스터 노드에 장애가 발생하더라도 이와 동일한 정보를 동기화하여 저장하고 있는 보조 마스터 노드가 이를 대체하게 되는 바, 사용자는 마스터 노드의 장애 여부와 관계 없이 계속해서 안정적으로 분산 컴퓨팅 서비스를 제공받을 수 있는 장점이 있다.
According to the embodiments of the present invention, even if a failure occurs in a master node in a distributed computing environment, an auxiliary master node that synchronizes and stores the same information replaces them, There is an advantage that stable distributed computing services can be provided.

도 1은 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템(100)의 구성을 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 주 마스터 노드(102)의 상세 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 보조 마스터 노드(106)의 상세 구성을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 데이터 노드(104)의 상세 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 사용자 작업 할당 방법(500)을 순차 도시한 순서도이다.
1 is a block diagram illustrating a configuration of a distributed computing system 100 according to an embodiment of the present invention.
2 is a detailed block diagram of a master master node 102 according to an embodiment of the present invention.
3 is a detailed block diagram of an auxiliary master node 106 according to an embodiment of the present invention.
4 is a detailed block diagram of a data node 104 according to an embodiment of the present invention.
FIG. 5 is a flowchart illustrating a user task allocation method 500 according to an exemplary embodiment of the present invention.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. However, this is merely an example and the present invention is not limited thereto.

본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.

본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 수단일 뿐이다.
The technical idea of the present invention is determined by the claims, and the following embodiments are merely means for effectively explaining the technical idea of the present invention to a person having ordinary skill in the art to which the present invention belongs.

도 1은 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템(100)의 구성을 나타낸 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 분산 컴퓨팅 시스템(100)은 주 마스터 노드(102), 하나 이상의 데이터 노드(104) 및 하나 이상의 보조 마스터 노드(106) 및 내부 네트워크(108)를 포함한다.1 is a block diagram illustrating a configuration of a distributed computing system 100 according to an embodiment of the present invention. A distributed computing system 100 according to an embodiment of the present invention includes a primary master node 102, one or more data nodes 104 and one or more secondary master nodes 106 and an internal network 108 .

주 마스터 노드(102)는 사용자 단말(110)로부터 사용자 작업 요청을 수신하고, 수신된 상기 사용자 작업 요청에 따른 작업을 데이터 노드(104)에 할당하며, 데이터 노드(104)로부터 작업 결과를 취합하여 이를 사용자 단말(110)로 회신한다.The master master node 102 receives a user task request from the user terminal 110, assigns a task according to the received user task request to the data node 104, collects the task results from the data node 104 And returns it to the user terminal 110.

하나 이상의 데이터 노드(104)는 데이터를 저장하고 상기 데이터를 이용하여 주 마스터 노드(102)로부터 할당된 작업을 수행하며, 수행된 작업 결과를 주 마스터 노드(102)로 송신한다. 본 발명에서 데이터 노드(104)의 개수에는 제한이 없으나, 하나의 데이터 노드(104)에 저장된 데이터는 다른 데이터 노드(104)에 하나 이상의 복제본을 가지는 것이 바람직하며, 이 경우 분산 컴퓨팅 시스템(100)은 최소한 2개 이상의 데이터 노드(104)를 가지도록 구성될 수 있다.One or more data nodes 104 store data and use the data to perform tasks assigned from the master master node 102 and transmit the results of the tasks performed to the master master node 102. Although there is no limit to the number of data nodes 104 in the present invention, it is preferred that data stored in one data node 104 have one or more replicas in another data node 104, May be configured to have at least two data nodes (104).

하나 이상의 보조 마스터 노드(106)는 주 마스터 노드(102)에 저장된 사용자 작업 정보 및 하나 이상의 데이터 노드(104) 별 작업 할당 정보를 주 마스터 노드(102)와 동기화하여 저장하며, 주 마스터 노드(102)에 장애가 발생한 경우 주 마스터 노드(102)를 대체하여 주 마스터 노드(102)의 기능을 수행한다. 즉, 본 발명의 실시예에서 하나 이상의 보조 마스터 노드(106)는 주 마스터 노드(102)와 동일한 정보를 저장하다가, 주 마스터 노드(102)에 장애가 발생한 경우 곧바로 주 마스터 노드(102)를 대체함으로써, 사용자 작업 및 데이터 노드(104)에 할당된 작업이 손실되지 않으면서 분산 컴퓨팅 시스템(100)이 안정적으로 유지될 수 있도록 한다.The one or more secondary master nodes 106 store user task information stored in the primary master node 102 and task allocation information for one or more data nodes 104 in synchronization with the primary master node 102, The master master node 102 performs the function of the master master node 102 in place of the master master node 102 in the event of a failure. That is, in the embodiment of the present invention, one or more of the secondary master nodes 106 stores the same information as the primary master node 102, and immediately replaces the primary master node 102 when a failure occurs in the primary master node 102 , The user work and the tasks assigned to the data node 104 are not lost so that the distributed computing system 100 can be stably maintained.

한편, 본 발명의 실시예에서 주 마스터 노드(102) 및 보조 마스터 노드(106)의 구분은 기능적인 구분에 불과하다. 즉, 주 마스터 노드(102) 및 보조 마스터 노드(106)는 동일한 하드웨어적 구성을 가지도록 구현되며, 상황에 따라 주 마스터 노드(102) 및 보조 마스터 노드(106)의 기능을 번갈아 수행할 수 있다. 예를 들어, 분산 컴퓨팅 시스템(100)은 동일한 구성을 가지는 복수 개의 마스터 노드를 포함할 수 있으며, 이 중 우선 순위가 가장 높은 마스터 노드가 주 마스터 노드(102), 나머지 마스터 노드들이 보조 마스터 노드(106)의 기능을 수행할 수 있다. 이 경우 주 마스터 노드(102)에 장애가 발생하면, 보조 마스터 노드(106) 중 우선 순위가 가장 높은 보조 마스터 노드(106)가 주 마스터 노드(102)의 역할을 대체하며, 이에 따라 나머지 마스터 노드들의 우선 순위를 재조정한다. 이후, 장애에서 복구된 주 마스터 노드(102)는 대체된 마스터 노드에 의하여 낮은 우선 순위를 지정받으며 이에 따라 주 마스터 노드(102)는 보조 마스터 노드(106)로 그 기능이 변경되게 된다. 이후 새롭게 대체된 마스터 노드에 장애 발생 시 보조 마스터 노드로 변경된 주 마스터 노드가 우선 순위에 따라 다시 주 마스터 노드로 그 기능을 재변경할 수 있음은 물론이다.Meanwhile, in the embodiment of the present invention, the distinction between the master master node 102 and the auxiliary master node 106 is merely a functional distinction. That is, the main master node 102 and the auxiliary master node 106 are implemented to have the same hardware configuration, and can perform the functions of the main master node 102 and the auxiliary master node 106 alternately depending on the situation . For example, the distributed computing system 100 may include a plurality of master nodes having the same configuration, wherein the master node having the highest priority is the master master node 102, the remaining master nodes are the auxiliary master node 106). ≪ / RTI > In this case, when the failure occurs in the main master node 102, the auxiliary master node 106 having the highest priority among the auxiliary master nodes 106 replaces the role of the master master node 102, Reschedule priorities. Thereafter, the primary master node 102 recovered from the failure is assigned a lower priority by the replaced master node, so that the primary master node 102 changes its function to the secondary master node 106. It is needless to say that the main master node changed to the auxiliary master node can change its function again to the master master node according to the priority in case of failure in the newly replaced master node.

내부 네트워크(108)는 분산 컴퓨팅 시스템(100) 내부의 전술한 각 구성요소들이 데이터를 주고받기 위한 경로를 제공하며, 이에 대한 사항은 본 기술분야에서는 잘 알려져 있으므로 여기서는 그 상세한 설명을 생략한다.
The internal network 108 provides a path for sending / receiving data to / from each of the above-described components in the distributed computing system 100, and details thereof are well known in the art and will not be described in detail here.

도 2는 본 발명의 일 실시예에 따른 주 마스터 노드(102)의 상세 구성을 나타낸 도면이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 주 마스터 노드(102)는 사용자 작업 수신 모듈(200), 데이터 노드 작업 할당 모듈(202), 내부 데이터베이스(204), 공유 자원 영역(206), 모니터링 및 복구 모듈(208) 및 대표 IP 설정 모듈(210)을 포함한다.2 is a detailed block diagram of a master master node 102 according to an embodiment of the present invention. The main master node 102 includes a user task receiving module 200, a data node task assigning module 202, an internal database 204, a shared resource region 206, A monitoring and restoring module 208 and a representative IP setting module 210.

사용자 작업 수신 모듈(200)은 사용자 단말(110)로부터 사용자 작업 요청을 수신하고, 이에 대응하는 사용자 작업 정보를 내부 데이터베이스(204)에 저장한다. 또한, 사용자 작업 수신 모듈(200)은 보조 마스터 노드(106)에 상기 사용자 작업 정보를 동기화하여 저장할 것을 요청하며, 모든 보조 마스터 노드(106)에 상기 사용자 작업 정보가 저장된 것을 확인한 이후 사용자 단말(110)로 상기 사용자 작업 요청에 대한 수신 응답을 전송한다. 즉, 본 발명에서 주 마스터 노드(102)는 사용자 단말(110)로부터 작업 요청이 수신될 경우 이에 대한 정보가 보조 마스터 노드(106)에 동기화되어 저장할 수 있도록 함으로써 주 마스터 노드(102)에 장애가 발생한 경우에도 사용자 작업 요청이 손실되지 않도록 한다.The user task receiving module 200 receives a user task request from the user terminal 110 and stores the corresponding user task information in the internal database 204. [ In addition, the user task receiving module 200 requests the auxiliary master node 106 to synchronize and store the user task information, and after confirming that the user task information is stored in all the auxiliary master nodes 106, ) To send a response to the user task request. That is, in the present invention, the master master node 102 can synchronize information with the auxiliary master node 106 when the task request is received from the user terminal 110, Even if user action requests are not lost.

상기와 같은 과정을 거쳐 사용자 작업 요청의 수신이 완료된 경우, 사용자 작업 수신 모듈(200)은 사용자 단말(110)과의 연결(connection)을 종료하며, 이후 상기 사용자 작업 요청에 따른 작업이 완료되면 사용자 단말(110)과 새로운 연결을 구성하여 작업 결과를 송신한다. 일반적인 분산 컴퓨팅 시스템의 경우 사용자 단말은 마스터 노드에 작업 요청을 송신한 후 결과를 수신할 때까지 마스터 노드와의 연결을 유지한다. 그러나 이와 같이 구성될 경우에는 사용자 작업 요청 수신 후 마스터 노드에 장애가 발생할 경우 사용자 단말과의 연결이 비정상적으로 종료되므로, 사용자 단말은 해당 사용자 작업을 처음부터 다시 요청하여야 하는 문제가 있다. 따라서 본 발명의 경우 사용자 작업 수신, 작업 결과 회신 등을 각각 별도의 짧은 커넥션을 통하여 수행하고 이후 곧바로 커넥션을 종료함으로써 마스터 노드(102)의 장애 발생시에도 안정성이 확보될 수 있도록 하였다.When the reception of the user task request is completed through the above process, the user task receiving module 200 terminates the connection with the user terminal 110, and when the operation according to the user task request is completed, And establishes a new connection with the terminal 110 and transmits the operation result. In a typical distributed computing system, a user terminal sends a work request to a master node and maintains a connection with the master node until receiving a result. However, in the case of such a configuration, if a failure occurs in the master node after receiving the user task request, the connection with the user terminal is abnormally terminated, so that the user terminal must request the user task from the beginning. Therefore, in the present invention, user work reception and work result reply are respectively performed through separate short connections, and the connection is immediately terminated, thereby ensuring stability even in the event of a failure of the master node 102. [

데이터 노드 작업 할당 모듈(202)은 상기 사용자 작업에 따른 작업을 각 데이터 노드(104)에 할당하고, 이에 따른 작업 할당 정보를 내부 데이터베이스(204)에 저장한다. 사용자 작업 수신 모듈(200)과 마찬가지로, 데이터 노드 작업 할당 모듈(202) 또한 상기 작업 할당 정보를 보조 마스터 노드(106)로 전송함으로써 작업 할당 정보가 모든 보조 마스터 노드(106)들에 동기화되어 저장될 수 있도록 한다. 구체적으로, 데이터 노드 작업 할당 모듈(202)은 데이터 노드(104)에 작업이 할당된 경우 각 보조 마스터 노드(106)와 커넥션을 맺어 상기 할당된 작업에 대응하는 작업 할당 정보의 동기화 요청을 보조 마스터 노드(106)로 송신하고, 보조 마스터 노드(106)로부터 이에 대한 저장 완료 응답을 수신함으로써 작업 할당 정보가 각 보조 마스터 노드(106)에 동기화되어 저장될 수 있도록 한다. 이때 보조 마스터 노드(106)로부터 저장 완료 응답이 수신 완료된 경우 해당 보조 마스터 노드(106)와 맺은 커넥션은 종료된다. 즉, 본 발명에서 주 마스터 노드(102) 및 보조 마스터 노드(106) 간의 모든 메시지 송수신은 각각 별도의 짧은 커넥션을 통하여 이루어지며, 메시지 송수신이 종료된 이후 해당 커넥션은 종료되도록 구성된다. 그 이유는 주 마스터 노드(102) 및 보조 마스터 노드(106) 간에 커넥션을 계속 유지할 경우, 주 마스터 노드(102) 또는 보조 마스터 노드(106)에 장애 발생시 해당 커넥션이 비정상적으로 끊어질 우려가 있기 때문이다. 따라서 본 발명에서는 주 마스터 노드(102) 및 보조 마스터 노드(106) 간에 메시지 송수신이 필요한 경우에만 별도의 짧은 연결을 구성함으로써 장애 발생과 무관하게 메시지 송수신이 안정적으로 이루어질 수 있도록 구성된다. The data node task assignment module 202 assigns a task according to the user task to each data node 104 and stores the task assignment information in the internal data base 204. Like the user task receiving module 200, the data node task assigning module 202 also transmits the task assignment information to the secondary master node 106, so that task assignment information is synchronized with all the secondary master nodes 106 and stored . Specifically, when a task is assigned to the data node 104, the data node task allocation module 202 establishes a connection with each of the subsidiary master nodes 106 and transmits a synchronization request of the task assignment information corresponding to the assigned task to the auxiliary master 106 Node 106 and receiving a store completion response thereto from the secondary master node 106 so that the job assignment information can be stored synchronously with each secondary master node 106. [ At this time, if the storage completion response is received from the auxiliary master node 106, the connection with the auxiliary master node 106 is terminated. That is, in the present invention, all message transmission / reception between the master master node 102 and the auxiliary master node 106 is performed through a separate short connection, and the connection is terminated after the message transmission / reception ends. The reason for this is that if the connection between the main master node 102 and the auxiliary master node 106 is continuously maintained, there is a fear that the corresponding connection is abnormally disconnected when a failure occurs in the main master node 102 or the auxiliary master node 106 to be. Therefore, in the present invention, a separate short connection is formed only when a message transmission / reception is required between the master master node 102 and the auxiliary master node 106, so that the transmission / reception of messages can be stably performed irrespective of occurrence of a failure.

내부 데이터베이스(204)는 전술한 사용자 작업 정보, 작업 할당 정보가 저장되는 공간이다. 또한, 내부 데이터베이스(204)는 각 보조 마스터 노드(106) 별로 할당된 우선 순위 및 각 보조 마스터 노드(106), 데이터 노드(104)의 상태 정보가 저장된다. 이때 상기 상태 정보는 해당 보조 마스터 노드(106) 또는 데이터 노드(104)가 현재 정상 가동 중인지의 여부에 대한 정보를 의미한다.The internal database 204 is a space in which the above-described user job information and job assignment information are stored. In addition, the internal database 204 stores the priority assigned to each of the secondary master nodes 106 and the status information of each of the secondary master node 106 and the data node 104. At this time, the status information indicates whether the corresponding auxiliary master node 106 or the data node 104 is currently in normal operation.

공유 자원 영역(206)은 분산 컴퓨팅 시스템(100) 내부의 다른 구성 요소들, 즉 보조 마스터 노드(106) 또는 데이터 노드(104)가 주 마스터 노드(102)의 정상 작동 여부를 모니터링하는 데 사용된다. 공유 자원 영역(206)은 주 마스터 노드(102) 내에 구성되는 작은 크기의 저장 영역으로서, 보조 마스터 노드(106) 또는 데이터 노드(104)는 이를 마운트(mount)하여 직접 파일을 쓰거나 읽을 수 있다. 이때 만약 주 마스터 노드(102)가 정상 작동 중일 경우 공유 자원 영역(206)에 대한 파일 입출력이 정상적으로 수행될 것이며, 주 마스터 노드(102)에 장애가 발생할 경우에는 파일 입출력이 수행되지 않게 된다. 따라서 이와 같은 공유 자원 영역(206)을 이용할 경우 주 마스터 노드(102)의 정상 작동 여부를 정확하게 판단할 수 있다. 이와 같은 공유 자원 영역(206)은 주 마스터 노드(102) 뿐만 아니라 보조 마스터 노드(106) 및 데이터 노드(104) 등 분산 컴퓨팅 시스템(100) 내의 다른 구성 요소들 내에도 동일하게 포함된다.The shared resource area 206 is used to monitor whether other components within the distributed computing system 100, i.e., the secondary master node 106 or the data node 104, are operating normally on the primary master node 102 . The shared resource area 206 is a small-sized storage area configured in the main master node 102, and the auxiliary master node 106 or the data node 104 can mount or read the file by mounting it. At this time, if the master master node 102 is in normal operation, the file input / output to the shared resource area 206 will be normally performed. If a failure occurs in the master master node 102, the file input / output will not be performed. Accordingly, when the shared resource area 206 is used, it is possible to accurately determine whether the master master node 102 operates normally. This shared resource area 206 is equally included in other components within the distributed computing system 100, such as the primary master node 102 as well as the secondary master node 106 and the data node 104.

모니터링 및 복구 모듈(208)은 분산 컴퓨팅 시스템(100) 내부의 다른 구성 요소들, 즉 보조 마스터 노드(106) 또는 데이터 노드(104)의 정상 작동 여부를 모니터링한다. 구체적으로, 모니터링 및 복구 모듈(208)은 기 설정된 주기에 따라 보조 마스터 노드(106) 또는 데이터 노드(104) 각각의 공유 자원 영역을 마운트하고 마운트된 공유 자원 영역에 임시 파일 입출력 테스트를 수행한다. 전술한 바와 같이, 공유 자원 영역이 마운트된 보조 마스터 노드(106) 또는 데이터 노드(104)가 정상 작동 중일 경우에는 공유 자원 영역에 대한 파일 입출력이 정상적으로 수행될 것이며, 장애가 발생할 경우에는 파일 입출력이 수행되지 않게 된다. 모니터링 및 복구 모듈(208)은 이와 같은 공유 자원 영역을 이용한 임시 파일 입출력 테스트에 따른 각 노드들의 상태 정보를 내부 데이터베이스(204)에 저장한다.The monitoring and recovery module 208 monitors the normal operation of other components within the distributed computing system 100, i.e., the secondary master node 106 or the data node 104. Specifically, the monitoring and restoring module 208 mounts the shared resource region of each of the auxiliary master node 106 or the data node 104 according to a predetermined period and performs a temporary file input / output test on the mounted shared resource region. As described above, when the secondary master node 106 or the data node 104 mounted with the shared resource area is operating normally, file input / output to the shared resource area will be normally performed. If a failure occurs, file input / output is performed . The monitoring and restoring module 208 stores the status information of each node in the internal database 204 according to the temporary file input / output test using the shared resource area.

만약 상기 테스트 결과 특정 데이터 노드(104)에 장애가 발생한 경우, 모니터링 및 복구 모듈(208)은 해당 데이터 노드(104)에 할당된 작업의 상태를 재수행으로 업데이트하고 현재 정상 작동 중인 다른 데이터 노드(104)에 해당 작업을 재할당한다. 본 발명에서 마스터 노드(102)는 지속적으로 각 데이터 노드(104)의 상태를 모니터링하고 있으므로 작업 수행 중인 데이터 노드(104)에 장애가 발생한 경우에도 이를 감지하여 해당 작업을 재할당할 수 있게 된다.If a failure occurs in the specific data node 104 as a result of the test, the monitoring and restoring module 208 updates the status of the task assigned to the data node 104 to the re-execution, ). ≪ / RTI > In the present invention, since the master node 102 continuously monitors the status of each data node 104, even if a failure occurs in the data node 104 under execution, the master node 102 can detect the failure and reassign the corresponding job.

또한, 모니터링 및 복구 모듈(208)은 주 마스터 노드(102) 및 하나 이상의 보조 마스터 노드(106)에 순차적으로 우선 순위를 할당한다. 또한 모니터링 및 복구 모듈(208)은 보조 마스터 노드(106)들의 정상 동작 상태를 모니터링하며, 새로운 보조 마스터 노드(106)가 추가되거나, 기존의 보조 마스터 노드(106)에 장애가 발생하거나 한 경우 이를 반영하여 각 보조 마스터 노드(106)의 우선 순위를 조정한다.In addition, the monitoring and recovery module 208 sequentially assigns priorities to the primary master node 102 and the one or more secondary master nodes 106. The monitoring and recovery module 208 also monitors the normal operation status of the secondary master nodes 106 and reflects when a new secondary master node 106 is added or an existing secondary master node 106 fails or occurs Thereby adjusting the priority of each of the secondary master nodes 106.

대표 IP 설정 모듈(210)은 사용자 단말(110)이 분산 컴퓨팅 시스템(100)에 접근하기 위한 대표 IP를 설정하여 사용자 단말(110)이 자신에게 접속할 수 있도록 한다. 만약 현재 주 마스터 노드에 장애가 발생하여 보조 마스터 노드 중 하나가 현재 주 마스터 노드를 대체할 경우에는, 대체된 마스터 노드가 대표 IP를 새로 설정하여 사용자 단말(110)이 대체된 마스터 노드로 접속할 수 있도록 한다. 이때 대체된 마스터 노드는 본 발명에 따라 장애가 발생한 마스터 노드의 모든 정보를 가지고 있으므로, 사용자는 마스터 노드의 장애 여부와 관계 없이 계속해서 사용자 작업을 할당하거나, 기 할당된 작업에 대한 결과를 수신할 수 있다.
The representative IP setting module 210 sets a representative IP for the user terminal 110 to access the distributed computing system 100 so that the user terminal 110 can access the same. If one of the secondary master nodes replaces the current primary master node due to a failure in the current primary master node, the replaced master node sets a representative IP so that the user terminal 110 can access the replaced master node do. At this time, since the substituted master node has all the information of the failed master node according to the present invention, the user can continue to assign user tasks irrespective of whether the master node is disabled or not, have.

도 3은 본 발명의 일 실시예에 따른 보조 마스터 노드(106)의 상세 구성을 나타낸 도면이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 보조 마스터 노드(106)는 사용자 작업 동기화 모듈(300), 작업 할당 정보 동기화 모듈(302), 내부 데이터베이스(304), 공유 자원 영역(306), 및 모니터링 및 복구 모듈(308)을 포함한다.3 is a detailed block diagram of an auxiliary master node 106 according to an embodiment of the present invention. As shown, the secondary master node 106 according to an embodiment of the present invention includes a user task synchronization module 300, a task assignment information synchronization module 302, an internal database 304, a shared resource area 306, And a monitoring and recovery module 308.

사용자 작업 동기화 모듈(300)은 주 마스터 노드(102)의 사용자 작업 수신 모듈(200)로부터 사용자 작업의 동기화 요청을 수신하고, 이에 대응하는 사용자 작업 정보를 내부 데이터베이스(304)에 저장한다. 상기 저장이 완료되면, 사용자 작업 동기화 모듈(300)은 상기 동기화 요청에 대한 완료 응답을 주 마스터 노드(102)의 사용자 작업 수신 모듈(200)로 송신한다.The user operation synchronization module 300 receives the synchronization request of the user operation from the user operation reception module 200 of the master master node 102 and stores the corresponding user operation information in the internal database 304. [ When the storage is completed, the user task synchronization module 300 transmits a completion response to the synchronization request to the user task reception module 200 of the master master node 102.

작업 할당 정보 동기화 모듈(302)은 주 마스터 노드(102)의 데이터 노드 작업 할당 모듈(202)로부터 작업 할당 정보의 동기화 요청을 수신하고, 이에 대응하는 각 데이터 노드(104)의 작업 할당 정보를 내부 데이터베이스(304)에 저장한다. 상기 저장이 완료되면, 사용자 작업 동기화 모듈(300)은 상기 동기화 요청에 대한 완료 응답을 주 마스터 노드(102)의 데이터 노드 작업 할당 모듈 (202)로 송신한다.The task assignment information synchronization module 302 receives the task assignment information synchronization request from the data node task assignment module 202 of the master master node 102 and stores the task assignment information of each corresponding data node 104 in the internal And stores it in the database 304. When the storage is completed, the user task synchronization module 300 transmits a completion response to the synchronization request to the data node task assignment module 202 of the master master node 102.

내부 데이터베이스(304)는 전술한 바와 같이 주 마스터 노드(102)로부터 동기화되는 사용자 작업 정보, 작업 할당 정보가 저장되는 공간이다. 또한, 내부 데이터베이스(304)는 각 보조 마스터 노드(106) 별로 할당된 우선 순위 및 각 보조 마스터 노드(106), 데이터 노드(104), 주 마스터 노드(102)의 상태 정보가 저장된다. The internal database 304 is a space in which user task information and task assignment information synchronized from the master master node 102 are stored as described above. The internal database 304 stores the priority assigned to each of the secondary master nodes 106 and the status information of each secondary master node 106, data node 104, and master master node 102.

공유 자원 영역(306)은 분산 컴퓨팅 시스템(100) 내부의 다른 구성 요소들 즉, 주 마스터 노드(102), 다른 보조 마스터 노드(106) 또는 데이터 노드(104)가 보조 마스터 노드(106)의 정상 작동 여부를 모니터링하는 데 사용된다. 공유 자원 영역의 상세한 사항에 대해서는 상기 도 2에서 상세히 설명하였으므로, 여기서는 반복되는 설명을 생략한다.The shared resource area 306 is a shared resource area 306 in which the other components in the distributed computing system 100 are connected to the secondary master node 106 in the order that the primary master node 102, the other secondary master node 106, Used to monitor operation. The details of the shared resource area have been described in detail with reference to FIG. 2, and thus a repeated description thereof will be omitted.

모니터링 및 복구 모듈(308)은 분산 컴퓨팅 시스템(100) 내부의 다른 구성 요소들 즉, 주 마스터 노드(102), 다른 보조 마스터 노드(106) 또는 데이터 노드(104)의 정상 작동 여부를 모니터링한다. 구체적으로, 모니터링 및 복구 모듈(308)은 기 설정된 주기에 따라 주 마스터 노드(102), 다른 보조 마스터 노드(106) 또는 데이터 노드(104) 각각의 공유 자원 영역을 마운트하고, 마운트된 공유 자원 영역에 임시 파일 입출력 테스트를 수행한다. 전술한 바와 같이, 공유 자원 영역이 마운트된 주 마스터 노드(102), 다른 보조 마스터 노드(106) 또는 데이터 노드(104)가 정상 작동 중일 경우에는 공유 자원 영역에 대한 파일 입출력이 정상적으로 수행될 것이며, 장애가 발생할 경우에는 파일 입출력이 수행되지 않게 된다. 모니터링 및 복구 모듈(308)은 이와 같은 공유 자원 영역을 이용한 임시 파일 입출력 테스트에 따른 각 노드들의 상태 정보를 내부 데이터베이스(304)에 저장한다.The monitoring and recovery module 308 monitors the normal operation of other components within the distributed computing system 100, i.e., the primary master node 102, the other secondary master node 106, or the data node 104. Specifically, the monitoring and restoring module 308 mounts the shared resource area of the main master node 102, the other auxiliary master node 106, or the data node 104 according to a predetermined period, To perform a temporary file input / output test. As described above, when the main master node 102, the other auxiliary master node 106, or the data node 104 on which the shared resource area is mounted is in normal operation, the file input / output to the shared resource area will normally be performed, When a failure occurs, file input / output is not performed. The monitoring and restoring module 308 stores the status information of each node in the internal database 304 according to the temporary file input / output test using the shared resource area.

만약 상기 테스트 결과 주 마스터 노드(102)에 장애가 발생한 경우, 모니터링 및 복구 모듈(308)은 내부 데이터베이스(104)에 저장된 자신의 우선 순위를 확인하고, 보조 마스터 노드(106) 중 우선 순위가 가장 높다고 판단하는 경우 자신의 우선 순위를 주 마스터 노드(102)의 우선 순위로 변경함으로써 주 마스터 노드(102)를 대체한다. 또한, 이에 따라 자신을 포함하는 다른 보조 마스터 노드(106)들 및 장애에서 복구된 기존 주 마스터 노드(102)의 우선 순위를 재조정한다. 예를 들어, 모니터링 및 복구 모듈(308)은 나머지 보조 마스터 노드(106)들의 우선 순위를 한 단계씩 상승시키고, 복구된 기존 주 마스터 노드(102)에 가장 낮은 우선 순위를 할당할 수 있다. 다만, 이와 같은 우선 순위 조정 알고리즘은 단지 예시적인 것이며, 이와 다른 방법으로 각 노드들의 우선순위를 재조정하는 것 또한 가능함은 물론이다.
If the failure occurs in the master master node 102, the monitoring and restoring module 308 confirms its own priority stored in the internal database 104. If the master master node 102 has the highest priority The master master node 102 replaces the master master node 102 by changing its priority to the priority of the master master node 102 when judged. Thereby also prioritizing the other auxiliary master nodes 106 including itself and the existing primary master node 102 recovered from the failure. For example, the monitoring and recovery module 308 may increment the priority of the remaining secondary master nodes 106 by one step and assign the lowest priority to the recovered existing primary master node 102. However, it should be appreciated that such a priority adjustment algorithm is merely exemplary, and it is also possible to re-prioritize each node in a different way.

도 4는 본 발명의 일 실시예에 따른 데이터 노드(104)의 상세 구성을 나타낸 도면이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터 노드(104)는 데이터 저장 영역(400), 작업 수행 모듈(402) 및 공유 자원 영역(404)을 포함한다.4 is a detailed block diagram of a data node 104 according to an embodiment of the present invention. As shown, the data node 104 according to an embodiment of the present invention includes a data storage area 400, a task performing module 402, and a shared resource area 404.

데이터 저장 영역(400)은 주 마스터 노드(102)로부터 할당된 데이터가 저장되는 공간이다. 전술한 바와 같이, 데이터의 안정성을 위하여 주 마스터 노드(102)는 둘 이상의 데이터 노드(104)에 동일한 데이터를 중복하여 저장하는 것이 바람직하다.The data storage area 400 is a space in which data allocated from the master master node 102 is stored. As described above, for the sake of data stability, it is preferable that the master master node 102 redundantly stores the same data in two or more data nodes 104.

작업 수행 모듈(402)은 주 마스터 노드(102)의 데이터 노드 작업 할당 모듈(202)로부터 할당된 작업을 수행하고, 작업 수행 결과를 데이터 노드 작업 할당 모듈(202)로 반환한다. 전술한 바와 같이, 상기 주 마스터 노드(102)로부터의 작업 할당 또는 작업 수행 결과의 반환은 각각 별도의 짧은 연결(connection)을 통하여 이루어지며, 작업 할당 또는 작업 수행 결과의 반환이 수행된 이후에는 해당 연결을 종료된다.The task execution module 402 performs tasks assigned from the data node task assignment module 202 of the master master node 102 and returns the task execution results to the data node task assignment module 202. As described above, the job assignment from the master master node 102 or the return of the job execution result is performed through a separate short connection, and after the job assignment or return of the job execution result is performed, The connection is terminated.

공유 자원 영역(404)은 주 마스터 노드(102) 또는 보조 마스터 노드(106)가 해당 데이터 노드(104)의 상태 확인을 위하여 사용되는 영역으로서, 이에 대한 설명은 전술한 바와 같다.The shared resource area 404 is an area used by the master master node 102 or the auxiliary master node 106 for checking the status of the corresponding data node 104, as described above.

한편, 본 발명의 일 실시예에 따른 데이터 노드(104)는 제2 공유 자원 영역(406)을 더 포함하여 구성될 수 있다. 제2 공유 자원 영역(406)은 작업 수행 모듈(402)에서 작업 수행 결과를 주 마스터 노드(102)로 반환할 때 사용되는 일종의 데이터 저장 영역이다. 만약 네트워크 장애 등의 이유로 주 마스터 노드(102)로의 작업 결과 전송이 실패하거나 또는 원활하지 않은 경우, 작업 수행 모듈(402)은 해당 작업 결과를 제2 공유 자원 영역(406)에 저장하고, 이를 주 마스터 노드(102)의 데이터 노드 작업 할당 모듈(202)에 통지한다. 그러면 이를 수신한 데이터 노드 작업 할당 모듈(202)은 제2 공유 자원 영역(406)을 마운트한 후, 마운트된 제2 공유 자원 영역(406)으로부터 작업 결과를 직접 읽는 방식으로 작업 결과를 수신하게 된다.
Meanwhile, the data node 104 according to an exemplary embodiment of the present invention may further include a second shared resource region 406. The second shared resource area 406 is a kind of data storage area used when the task execution module 402 returns the task execution result to the master master node 102. If the transmission of the job result to the main master node 102 fails or is not smooth due to a network failure or the like, the job execution module 402 stores the job result in the second shared resource area 406, And notifies the data node task assignment module 202 of the master node 102. The data node task allocation module 202 receiving the task results in a manner that mounts the second shared resource region 406 and directly reads the task result from the mounted second shared resource region 406 .

도 5는 본 발명의 일 실시예에 따른 사용자 작업 할당 방법(500)을 순차 도시한 순서도이다.FIG. 5 is a flowchart illustrating a user task allocation method 500 according to an exemplary embodiment of the present invention.

먼저, 사용자 단말(110)은 주 마스터 노드(102)의 대표 IP를 이용하여 주 마스터 노드(102)에 접속하고(502), 주 마스터 노드(102)로 사용자 작업을 요청한다(504).First, the user terminal 110 accesses the master master node 102 using the representative IP of the master master node 102 (502) and requests a user task to the master master node 102 (504).

상기 사용자 작업 요청을 수신한 주 마스터 노드(102)는 사용자 작업 요청에 따른 사용자 작업 정보를 내부 데이터베이스(204)에 저장하고(506), 보조 마스터 노드(106)에 해당 사용자 작업 정보의 저장 요청을 송신하여 사용자 작업 정보가 각 보조 마스터 노드(106)에 동기화되어 저장될 수 있도록 한다(508). 각 보조 마스터 노드(106)은 상기 요청에 따라 사용자 작업 정보를 저장하고(510), 저장 완료 여부를 회신한다(512). 이후, 모든 보조 마스터 노드(106)의 저장 완료를 확인한 주 마스터 노드(102)는 사용자 작업 요청의 수신 응답(514)을 사용자 단말(110)로 회신하고, 사용자 단말(110)과의 접속을 종료한다(514).
The master master node 102 having received the user task request stores the user task information according to the user task request in the internal database 204 (506), and sends a request for storing the user task information to the auxiliary master node 106 To allow user task information to be stored synchronously with each secondary master node 106 (508). Each secondary master node 106 stores the user task information according to the request (510) and returns whether the storage is complete (512). The master master node 102 which has confirmed the completion of the storage of all the auxiliary master nodes 106 returns the reception response 514 of the user task request to the user terminal 110 and terminates the connection with the user terminal 110 (514).

도 6은 본 발명의 일 실시예에 따른 보조 마스터 노드(106)에서의 장애 복구 방법을 도시한 순서도이다.FIG. 6 is a flowchart illustrating a failure recovery method in the auxiliary master node 106 according to an embodiment of the present invention.

먼저, 각 보조 마스터 노드(106)는 주 마스터 노드(102)에 저장된 사용자 작업 정보 및 각 데이터 노드(104) 별 작업 할당 정보를 동기화하여 저장하며(602), 주기적으로 주 마스터 노드(102)의 장애 발생 여부를 모니터링한다(604). 이때, 상기 장애 발생 여부의 모니터링은 기 설정된 주기 별로 주 마스터 노드(102)의 공유 자원 영역(206)을 마운트하고 마운트된 공유 자원 영역(206)에 임시 파일 입출력 테스트를 수행함으로써 이루어질 수 있으며, 이에 대한 상세한 설명은 전술하였다.First, each secondary master node 106 synchronizes (602) the user task information stored in the primary master node 102 and the task allocation information for each data node 104 (602) The occurrence of a fault is monitored (604). The monitoring of the occurrence of the failure may be performed by mounting a shared resource area 206 of the primary master node 102 and performing a temporary file input / output test on the mounted shared resource area 206 by a predetermined period. A detailed description has been given above.

상기 모니터링 결과 주 마스터 노드(102)의 장애 발생이 감지되면, 각 보조 마스터 노드(106)는 자신보다 더 높은 우선순위를 가지는 보조 마스터 노드(106)가 존재하는지를 판단하고(606), 존재하지 않는 경우(다시 말해, 자신의 우선순위가 가장 높은 경우) 자신의 우선순위를 장애가 발생한 주 마스터 노드(102)의 우선 순위로 변경하여 주 마스터 노드(102)의 기능을 대체한다(608).If it is detected that the failure of the primary master node 102 is detected, each secondary master node 106 determines (606) whether there is an secondary master node 106 having a higher priority than the secondary master node 106, (608), replacing the priority of the primary master node (102) with the priority of the failed primary master node (102).

다음으로, 보조 마스터 노드(106)는 변경된 우선 순위를 반영하여 다른 보조 마스터 노드(106)의 우선 순위를 업데이트하고(610), 사용자의 새로운 마스터 노드 접속을 위한 대표 IP를 설정한다(612). Next, the secondary master node 106 updates 610 the priority of the other secondary master node 106 by reflecting the changed priority, and sets 612 the representative IP for the user's new master node connection.

한편, 상기 설명에서는 608 단계 내지 612 단계가 순차적으로 수행되는 것으로 설명되었으나, 각 단계들은 그 성격 상 동시에 수행될 수도 있고 순서를 바꾸어 수행될 수도 있음은 자명하다.
Although it has been described in the above description that steps 608 to 612 are sequentially performed, it is apparent that each step may be performed simultaneously or in reverse order.

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.On the other hand, an embodiment of the present invention may include a computer-readable recording medium including a program for performing the methods described herein on a computer. The computer-readable recording medium may include a program command, a local data file, a local data structure, or the like, alone or in combination. The media may be those specially designed and constructed for the present invention or may be known and available to those of ordinary skill in the computer software arts. Examples of computer readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floppy disks, and magnetic media such as ROMs, And hardware devices specifically configured to store and execute program instructions. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limiting the scope of the present invention. I will understand.

그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.

100: 분산 컴퓨팅 시스템
102: 주 마스터 노드
104: 데이터 노드
106: 보조 마스터 노드
200: 사용자 작업 수신 모듈
202: 데이터 노드 작업 할당 모듈
204: 내부 데이터베이스
206: 공유 자원 영역
208: 모니터링 및 복구 모듈
210: 대표 IP 설정 모듈
300: 사용자 작업 동기화 모듈
302: 작업 할당 정보 동기화 모듈
304: 내부 데이터베이스
306: 공유 자원 영역
308: 모니터링 및 복구 모듈
400: 데이터 저장 영역
402: 작업 수행 모듈
404: 공유 자원 영역
406: 제2 공유 자원 영역
100: Distributed Computing System
102: Primary master node
104: Data node
106: Secondary master node
200: User operation receiving module
202: Data node task allocation module
204: internal database
206: Shared resource area
208: Monitoring and Recovery Module
210: representative IP setting module
300: User activity synchronization module
302: Task assignment information synchronization module
304: Internal database
306: Shared resource area
308: Monitoring and Recovery Module
400: data storage area
402: Task performing module
404: Shared resource area
406: second shared resource area

Claims (17)

사용자로부터 사용자 작업 요청을 수신하고, 상기 사용자 작업 요청에 따른 결과를 상기 사용자에게 반환하는 주 마스터 노드;
상기 주 마스터 노드로부터 할당된 작업을 수행하고, 수행된 작업 결과를 상기 주 마스터 노드로 송신하는 하나 이상의 데이터 노드; 및
상기 주 마스터 노드에 저장된 사용자 작업 정보 및 상기 하나 이상의 데이터 노드 별 작업 할당 정보를 상기 주 마스터 노드와 동기화하여 저장하며, 상기 주 마스터 노드에 장애가 발생한 경우 상기 주 마스터 노드를 대체하여 상기 주 마스터 노드의 기능을 수행하는 하나 이상의 보조 마스터 노드를 포함하며,
상기 주 마스터 노드는 공유 자원 영역을 포함하고,
상기 하나 이상의 보조 마스터 노드는, 상기 주 마스터 노드의 상기 공유 자원 영역을 마운트하고, 기 설정된 주기에 따라 마운트된 상기 공유 자원 영역에 임시 파일 입출력 테스트를 수행하며, 상기 임시 파일 입출력 테스트에 실패한 경우 상기 주 마스터 노드에 장애가 발생한 것으로 판단하는, 분산 컴퓨팅 시스템.
A primary master node receiving a user task request from a user and returning a result according to the user task request to the user;
One or more data nodes for performing tasks assigned from the master node and transmitting the results of the tasks to the master node; And
Wherein the main master node stores user task information and at least one task assignment information for each data node in synchronization with the master master node, One or more secondary master nodes performing the function,
Wherein the primary master node comprises a shared resource region,
Wherein the at least one secondary master node mounts the shared resource region of the primary master node and performs a temporary file input / output test on the shared resource region mounted according to a predetermined period, and when the temporary file input / output test fails, A distributed computing system in which the primary master node is determined to have failed.
청구항 1에 있어서,
상기 주 마스터 노드는, 수신된 상기 사용자 작업 요청에 따라 생성된 사용자 작업 정보를 상기 보조 마스터 노드로 송신하며, 상기 보조 마스터 노드가 상기 사용자 작업 정보의 저장을 완료한 이후 상기 사용자 작업 요청에 대한 수신 응답을 상기 사용자에게 송신하고, 상기 수신 응답을 송신한 이후 상기 사용자와의 접속을 종료하는, 분산 컴퓨팅 시스템.
The method according to claim 1,
Wherein the master master node transmits user task information generated according to the received user task request to the auxiliary master node, and after the auxiliary master node completes storing the user task information, Sends a response to the user, and terminates the connection with the user after sending the receive response.
청구항 1에 있어서,
상기 주 마스터 노드는, 상기 주 마스터 노드 및 상기 하나 이상의 보조 마스터 노드에 순차적으로 우선 순위를 할당하는, 분산 컴퓨팅 시스템.
The method according to claim 1,
Wherein the primary master node sequentially assigns priority to the primary master node and the one or more secondary master nodes.
청구항 3에 있어서,
상기 분산 컴퓨팅 시스템이 복수 개의 보조 마스터 노드를 포함하는 경우,
상기 주 마스터 노드에 장애 발생시 상기 복수 개의 보조 마스터 노드 중 우선 순위가 가장 높은 보조 마스터 노드는 자신의 우선 순위를 상기 주 마스터 노드의 우선 순위로 변경하고, 다른 보조 마스터 노드의 우선 순위를 업데이트하는, 분산 컴퓨팅 시스템.
The method of claim 3,
If the distributed computing system includes a plurality of secondary master nodes,
Wherein when a failure occurs in the main master node, the auxiliary master node having the highest priority among the plurality of auxiliary master nodes changes its priority to the priority of the main master node and updates the priority of the other auxiliary master nodes, Distributed computing system.
청구항 4에 있어서,
상기 우선 순위가 가장 높은 보조 마스터 노드는, 상기 사용자의 마스터 노드 접속을 위한 대표 IP를 설정하는, 분산 컴퓨팅 시스템.
The method of claim 4,
Wherein the secondary master node having the highest priority sets a representative IP for accessing the master node of the user.
청구항 1에 있어서,
상기 보조 마스터 노드 및 상기 하나 이상의 데이터 노드는, 각 노드의 상태 확인을 위한 공유 자원 영역을 포함하는, 분산 컴퓨팅 시스템.
The method according to claim 1,
Wherein the auxiliary master node and the one or more data nodes include a shared resource area for status confirmation of each node.
삭제delete 청구항 6에 있어서,
상기 주 마스터 노드는, 상기 데이터 노드 각각의 공유 자원 영역을 마운트하고, 기 설정된 주기에 따라 마운트된 상기 공유 자원 영역에 임시 파일 입출력 테스트를 수행하며, 상기 임시 파일 입출력 테스트에 실패한 경우 해당 데이터 노드에 장애가 발생한 것으로 판단하는, 분산 컴퓨팅 시스템.
The method of claim 6,
Wherein the main master node mounts a shared resource region of each of the data nodes, performs a temporary file input / output test on the shared resource region mounted according to a predetermined period, and when the temporary file input / output test fails, The distributed computing system determines that a failure has occurred.
청구항 8에 있어서,
상기 주 마스터 노드는, 장애가 발생한 것으로 판단된 데이터 노드에 할당된 작업을 다른 데이터 노드에 재할당하는, 분산 컴퓨팅 시스템.
The method of claim 8,
Wherein the primary master node reassigns a task assigned to a data node determined to have failed to another data node.
청구항 1에 있어서,
상기 주 마스터 노드는, 데이터 노드에 작업을 할당한 이후 작업이 할당된 데이터 노드와의 접속을 종료하며,
상기 작업이 할당된 데이터 노드는, 할당된 작업이 완료된 이후 상기 주 마스터 노드와 새로운 접속을 형성하여 상기 주 마스터 노드로 작업 결과를 전송하는, 분산 컴퓨팅 시스템.
The method according to claim 1,
The main master node terminates the connection with the data node to which the task is assigned after assigning the task to the data node,
Wherein the task assigned data node forms a new connection with the primary master node after the assigned task is completed and sends the task results to the primary master node.
청구항 10에 있어서,
상기 작업이 할당된 데이터 노드는, 상기 주 마스터 노드로의 작업 결과 전송이 실패한 경우, 상기 작업 결과를 공유 자원 영역에 저장하며,
상기 주 마스터 노드는, 상기 작업 결과가 저장된 공유 자원 영역을 마운트한 후, 마운트된 상기 공유 자원 영역으로부터 상기 작업 결과를 획득하는, 분산 컴퓨팅 시스템.
The method of claim 10,
Wherein the data node to which the task is assigned stores the result of the task in the shared resource region when the transmission of the task result to the main master node fails,
Wherein the main master node mounts a shared resource area in which the operation result is stored, and then obtains the operation result from the mounted shared resource area.
주 마스터 노드 및 보조 마스터 노드를 포함하는 분산 컴퓨팅 시스템에서의 장애 복구 방법으로서,
상기 보조 마스터 노드에서, 상기 주 마스터 노드에 저장된 사용자 작업 정보 및 각 데이터 노드 별 작업 할당 정보를 동기화하여 저장하는 단계;
상기 보조 마스터 노드에서, 주 마스터 노드의 장애 발생을 감지하는 단계;
상기 보조 마스터 노드에서, 상기 주 마스터 노드를 대체하여 상기 주 마스터 노드의 기능을 수행하는 단계를 포함하며,
상기 주 마스터 노드의 장애 발생을 감지하는 단계는,
상기 보조 마스터 노드에서, 상기 주 마스터 노드의 공유 자원 영역을 마운트하는 단계; 및
기 설정된 주기에 따라 마운트된 상기 공유 자원 영역에 임시 파일 입출력 테스트를 수행하는 단계를 더 포함하며,
상기 보조 마스터 노드는, 상기 임시 파일 입출력 테스트에 실패한 경우 상기 주 마스터 노드에 장애가 발생한 것으로 판단하는, 분산 컴퓨팅 시스템에서의 장애 복구 방법.
A method for failover in a distributed computing system comprising a primary master node and a secondary master node,
Synchronizing and storing, in the auxiliary master node, user task information stored in the main master node and task allocation information for each data node;
Detecting, at the auxiliary master node, occurrence of a failure of the main master node;
Performing the function of the main master node by replacing the main master node in the auxiliary master node,
Wherein the step of detecting a failure of the main master node comprises:
Mounting a shared resource area of the primary master node at the secondary master node; And
Performing a temporary file input / output test on the shared resource area mounted according to a predetermined cycle,
Wherein the secondary master node determines that the primary master node has failed if the temporary file input / output test fails.
청구항 12에 있어서,
상기 분산 컴퓨팅 시스템이 복수 개의 보조 마스터 노드를 포함하는 경우, 상기 복수 개의 보조 마스터 노드 중 우선 순위가 가장 높은 보조 마스터 노드가 상기 주 마스터 노드를 대체하여 상기 주 마스터 노드의 기능을 수행하는, 분산 컴퓨팅 시스템에서의 장애 복구 방법.
The method of claim 12,
Wherein when the distributed computing system includes a plurality of auxiliary master nodes, an auxiliary master node having a highest priority among the plurality of auxiliary master nodes replaces the main master node to perform the function of the main master node, How to recover from a system failure.
청구항 13에 있어서,
상기 우선 순위가 가장 높은 보조 마스터 노드는, 자신의 우선 순위를 상기 주 마스터 노드의 우선 순위로 변경하고, 다른 보조 마스터 노드의 우선 순위를 업데이트하는, 분산 컴퓨팅 시스템에서의 장애 복구 방법.
14. The method of claim 13,
Wherein the secondary master node having the highest priority changes its priority to the priority of the primary master node and updates the priority of the other secondary master node.
청구항 13에 있어서,
상기 우선 순위가 가장 높은 보조 마스터 노드는, 사용자의 마스터 노드 접속을 위한 대표 IP를 설정하는, 분산 컴퓨팅 시스템에서의 장애 복구 방법.
14. The method of claim 13,
Wherein the secondary master node having the highest priority sets a representative IP for accessing the master node of the user.
삭제delete 청구항 12 내지 15 중 어느 한 항에 기재된 방법을 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
A computer-readable recording medium recording a program for performing the method according to any one of claims 12 to 15 on a computer.
KR1020120094738A 2012-08-29 2012-08-29 Distributed computing system and recovery method thereof KR101430570B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120094738A KR101430570B1 (en) 2012-08-29 2012-08-29 Distributed computing system and recovery method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120094738A KR101430570B1 (en) 2012-08-29 2012-08-29 Distributed computing system and recovery method thereof

Publications (2)

Publication Number Publication Date
KR20140029644A KR20140029644A (en) 2014-03-11
KR101430570B1 true KR101430570B1 (en) 2014-08-18

Family

ID=50642486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120094738A KR101430570B1 (en) 2012-08-29 2012-08-29 Distributed computing system and recovery method thereof

Country Status (1)

Country Link
KR (1) KR101430570B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101643886B1 (en) * 2014-12-10 2016-08-01 한국과학기술정보연구원 System and method for analyzing large-scale high resolution satellite image
KR101726253B1 (en) * 2016-09-02 2017-04-12 엘아이지넥스원 주식회사 System for providing duplex service based on database and method thereof
KR102007810B1 (en) * 2017-07-28 2019-08-07 네이버 주식회사 Data placement and recovery of storage for individually cotrolling storage
CN116504281A (en) * 2022-01-18 2023-07-28 浙江力德仪器有限公司 Computing unit, array and computing method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030233446A1 (en) * 2002-06-12 2003-12-18 Earl William J. System and method for managing a distributed computing system
US20100094924A1 (en) * 2000-06-26 2010-04-15 Kevin David Howard Parallel Processing Systems And Method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100094924A1 (en) * 2000-06-26 2010-04-15 Kevin David Howard Parallel Processing Systems And Method
US20030233446A1 (en) * 2002-06-12 2003-12-18 Earl William J. System and method for managing a distributed computing system

Also Published As

Publication number Publication date
KR20140029644A (en) 2014-03-11

Similar Documents

Publication Publication Date Title
US9208029B2 (en) Computer system to switch logical group of virtual computers
CN110784350B (en) Design method of real-time high-availability cluster management system
CN102404390B (en) Intelligent dynamic load balancing method for high-speed real-time database
JP3258228B2 (en) Checkpoint generation method
WO2017067484A1 (en) Virtualization data center scheduling system and method
US8032786B2 (en) Information-processing equipment and system therefor with switching control for switchover operation
CN109005045B (en) Main/standby service system and main node fault recovery method
EP3210367B1 (en) System and method for disaster recovery of cloud applications
CN107153660B (en) Fault detection processing method and system for distributed database system
CN113037560B (en) Service flow switching method and device, storage medium and electronic equipment
EP2224341B1 (en) Node system, server switching method, server device, and data transfer method
KR20040073273A (en) A scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
JP2008059583A (en) Cluster system, method for backing up replica in cluster system, and program product
US20080288812A1 (en) Cluster system and an error recovery method thereof
EP3671461A1 (en) Systems and methods of monitoring software application processes
KR101430570B1 (en) Distributed computing system and recovery method thereof
CN112948063B (en) Cloud platform creation method and device, cloud platform and cloud platform implementation system
CN105069152B (en) data processing method and device
CN111460039A (en) Relational database processing system, client, server and method
CN111800484B (en) Service anti-destruction replacing method for mobile edge information service system
CN112787918B (en) Data center addressing and master-slave switching method based on service routing tree
CN109257396B (en) Distributed lock scheduling method and device
JP2013025765A (en) Master/slave system, control device, master/slave switching method and master/slave switching program
CN111309515A (en) Disaster recovery control method, device and system
CN114328033A (en) Method and device for keeping service configuration consistency of high-availability equipment group

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
LAPS Lapse due to unpaid annual fee