KR101042908B1 - Method, system, and computer-readable recording medium for determining major group under split-brain network problem - Google Patents

Method, system, and computer-readable recording medium for determining major group under split-brain network problem Download PDF

Info

Publication number
KR101042908B1
KR101042908B1 KR1020090011636A KR20090011636A KR101042908B1 KR 101042908 B1 KR101042908 B1 KR 101042908B1 KR 1020090011636 A KR1020090011636 A KR 1020090011636A KR 20090011636 A KR20090011636 A KR 20090011636A KR 101042908 B1 KR101042908 B1 KR 101042908B1
Authority
KR
South Korea
Prior art keywords
group
nodes
node
major
initial
Prior art date
Application number
KR1020090011636A
Other languages
Korean (ko)
Other versions
KR20100092331A (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 KR1020090011636A priority Critical patent/KR101042908B1/en
Priority to JP2010021344A priority patent/JP5695324B2/en
Priority to US12/702,663 priority patent/US8412790B2/en
Publication of KR20100092331A publication Critical patent/KR20100092331A/en
Application granted granted Critical
Publication of KR101042908B1 publication Critical patent/KR101042908B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Abstract

본 발명은 네트워크 기반의 분산 컴퓨팅 환경에서 발생하는 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한 방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다. 본 발명의 일 태양에 따르면, 네트워크 기반의 분산 환경에서 다수의 노드로 구성된 초기 그룹이 분리되어 생성된 적어도 2개의 그룹 중 메이저 그룹을 결정하기 위한 방법으로서, 제1 그룹의 노드의 개수와 제2 그룹의 노드의 개수를 비교하는 단계, 상기 제1 그룹의 노드 및 상기 제2 그룹의 노드의 이력 정보를 획득하는 단계, 및 상기 노드 개수 비교 결과 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹을 결정하는 단계를 포함하는 방법이 제공된다.The present invention relates to a method, system, and computer readable recording medium for determining a major group in a network separation failure situation occurring in a network-based distributed computing environment. According to an aspect of the present invention, a method for determining a major group of at least two groups in which an initial group consisting of a plurality of nodes is separated from each other in a network-based distributed environment, the number of nodes of the first group and the second group Comparing the number of nodes of the group, obtaining history information of the node of the first group and the node of the second group, and using the at least one of the node number comparison result and the history information; A method is provided that includes determining a major group as a group or the second group.

Description

네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한 방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체{METHOD, SYSTEM, AND COMPUTER-READABLE RECORDING MEDIUM FOR DETERMINING MAJOR GROUP UNDER SPLIT-BRAIN NETWORK PROBLEM}METHOOD, SYSTEM, AND COMPUTER-READABLE RECORDING MEDIUM FOR DETERMINING MAJOR GROUP UNDER SPLIT-BRAIN NETWORK PROBLEM}

본 발명은 네트워크 기반의 분산 컴퓨팅 환경(또는, 분산 환경)에서 발생하는 네트워크 분리(Split-Brain) 장애 상황에서 메이저 그룹을 결정하기 위한 방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다. 보다 상세하게는, 본 발명은, 네트워크 분리 장애 상황에서 노드들의 이력 정보를 참조하여 메이저 그룹을 결정하기 위한 방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.The present invention relates to a method, system, and computer readable recording medium for determining a major group in a split-brain failure situation that occurs in a network-based distributed computing environment (or distributed environment). More particularly, the present invention relates to a method, system, and computer readable recording medium for determining a major group by referring to historical information of nodes in a network separation failure situation.

현재의 IT 환경에서는 다양한 네트워크 기반 분산 시스템을 효율적으로 관리하고 통제할 수 있는 방법이 필요하다. 분산 환경에서는 다수의 컴퓨터를 물리적으로 또는 논리적으로 연결하고, 이와 같이 연결된 다수의 컴퓨터의 처리 능력을 이용하여 거대한 계산 문제를 해결하는 것이 일반적이다. 이때, 분산 환경에 참여하는 컴퓨터 또는 프로세스가 수십 개 수준이라면 분산 환경을 관리하는 운영자에 의하여 분산 환경이 적절히 유지될 수 있겠지만, 분산 환경이 수천 개 혹은 수만 개의 컴퓨터 또는 프로세스를 포함하는 규모인 경우에는, 이를 총체적으로 동기화해 주고 조율해 줄 수 있는 솔루션인 관리 시스템이 필수적으로 요구된다고 할 것이다.In today's IT environment, there is a need for efficient management and control of various network-based distributed systems. In a distributed environment, it is common to connect a large number of computers physically or logically, and to solve huge computational problems by using the processing power of the plurality of connected computers. At this time, if there are dozens of computers or processes participating in the distributed environment, the distributed environment may be properly maintained by an operator managing the distributed environment. However, if the distributed environment includes a scale of thousands or tens of thousands of computers or processes, For this reason, a management system, which is a solution that can synchronize and coordinate overall, is essential.

관리 시스템에 있어서 가장 중요한 조건은 고장 방지성(fault tolerance)의 보장이라고 할 수 있는데, 특히, 클러스터를 구성하는 각각의 노드 간의 링크의 불안정으로 인해 네트워크가 비정상적으로 분리되는 장애 상황에서의 대처가 가장 중요한 것 중 하나이다.The most important condition in the management system is the guarantee of fault tolerance, especially in the case of failure in which the network is abnormally separated due to the instability of the link between each node constituting the cluster. It is one of the important things.

도 1은 네트워크 분리 장애 상황을 예시적으로 나타내는 도면이다. 도 1에서, 분산 환경 관리 시스템은 5개의 서버로 구성되는 클러스터를 포함하고, 클러스터를 구성하는 각각의 서버는 실시간으로 데이터를 복제하여 동일한 상태 정보를 유지하고 있는 것으로 가정하여 도시되었다.1 is a diagram illustrating a network separation failure situation by way of example. In FIG. 1, the distributed environment management system includes a cluster composed of five servers, and each server constituting the cluster is illustrated assuming that the same state information is maintained by replicating data in real time.

도 1의 상태에서 네트워크 분리 장애가 발생하여 클러스터가 2개의 서버 그룹으로 나누어지는 경우, 그룹 #1의 서버들은 그룹 #2의 모든 서버가 다운(down)되었다고 (즉, 불능 상태에 빠졌다고) 생각할 것이고, 동시에 그룹 #2의 서버들도 그룹 #1의 서버들이 다운되었다고 생각할 것이다. 따라서, 네트워크 상의 상기 2개의 그룹이 스스로를 메이저 그룹이라고 판단하게 되고, 클라이언트들은 상기 2개의 스스로 판단하기에 주된 그룹에 각각 접속하여 작업을 수행하게 된다. 예를 들면, 그룹 #1에 접속한 클라이언트 그룹 #1은 평소처럼 읽기 또는 쓰기 작업을 할 것이고, 그룹 #2에 접속한 클라이언트 그룹 #2 역시 읽기 또는 쓰기 작업을 하게 된다.If a network isolation failure occurs in the state of FIG. 1 and the cluster is divided into two server groups, the servers in group # 1 will think that all servers in group # 2 are down (ie, disabled), At the same time, servers in group # 2 may think that servers in group # 1 are down. Thus, the two groups on the network determine themselves as a major group, and clients connect to each of the two main groups to judge themselves. For example, client group # 1 accessing group # 1 will read or write as usual, and client group # 2 accessing group # 2 will also read or write.

그러나, 상기와 같은 상황에서는, 이후 네트워크 분리 장애가 복구되어 나누 어진 2개의 그룹이 다시 하나로 합쳐져야 하는 경우, 어떤 그룹의 데이터가 올바른 데이터이고 어떤 그룹의 데이터가 삭제되어야 하는지 알 수 있는 방법이 없었다. 즉, 종래의 기술에 따르면, 네트워크 분리 장애 상황에서 서비스의 연속성이나 데이터의 정합성에 있어서 문제가 발생하게 된다는 단점이 있었다.However, in the above situation, when the network separation failure is recovered and divided into two groups to be merged again, there is no way of knowing which group of data is correct data and which group of data should be deleted. That is, according to the related art, there is a disadvantage that a problem occurs in service continuity or data consistency in a network separation failure situation.

본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.It is an object of the present invention to solve all the problems described above.

또한, 본 발명은 분산 컴퓨팅에 참여하는 다수의 컴퓨터를 총체적으로 동기화해 주고 조율해 줄 수 있는 솔루션을 제공하는 것을 다른 목적으로 한다.It is another object of the present invention to provide a solution that can collectively synchronize and coordinate multiple computers participating in distributed computing.

또한, 본 발명은 네트워크 분리 장애가 발생하는 상황에서도 서비스의 연속성과 데이터의 정합성을 최대한으로 보장하는 것을 또 다른 목적으로 한다.In addition, another object of the present invention is to ensure maximum service continuity and data consistency even in the event of network separation failure.

상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.Representative configuration of the present invention for achieving the above object is as follows.

본 발명의 일 태양에 따르면, 네트워크 기반의 분산 환경에서 다수의 노드로 구성된 초기 그룹이 분리되어 생성된 적어도 2개의 그룹 중 메이저 그룹을 결정하기 위한 방법으로서, 제1 그룹의 노드의 개수와 제2 그룹의 노드의 개수를 비교하는 단계, 상기 제1 그룹의 노드 및 상기 제2 그룹의 노드의 이력 정보를 획득하는 단계, 및 상기 노드 개수 비교 결과 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹을 결정하는 단계를 포함하는 방법이 제공된다.According to an aspect of the present invention, a method for determining a major group of at least two groups in which an initial group consisting of a plurality of nodes is separated from each other in a network-based distributed environment, the number of nodes of the first group and the second group Comparing the number of nodes of the group, obtaining history information of the node of the first group and the node of the second group, and using the at least one of the node number comparison result and the history information; A method is provided that includes determining a major group as a group or the second group.

본 발명의 다른 태양에 따르면, 다수의 노드로 구성되는 분산 환경 관리 시스템으로서, 상기 다수의 노드의 이력 정보를 포함하고, 상기 다수의 노드 중 적어도 하나는, 초기 그룹이 적어도 2개의 그룹으로 분리되는 경우, 상기 분리된 각 그룹의 노드의 개수 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 적어도 2개 의 그룹 중 하나로 메이저 그룹을 결정하는 분산 환경 관리 시스템이 제공된다.According to another aspect of the present invention, there is provided a distributed environment management system composed of a plurality of nodes, comprising history information of the plurality of nodes, wherein at least one of the plurality of nodes has an initial group divided into at least two groups. In this case, there is provided a distributed environment management system for determining a major group into one of the at least two groups by using at least one of the number of nodes of each group and the history information.

이 외에도, 본 발명을 구현하기 위한 다른 방법, 시스템, 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.In addition, there is further provided a computer readable recording medium for recording another method, system for implementing the present invention, and a computer program for executing the method.

본 발명에 의하면, 분산 컴퓨팅에 참여하는 다수의 컴퓨터를 총체적으로 동기화해 주고 조율해 줄 수 있는 솔루션이 제공된다.According to the present invention, there is provided a solution that can collectively synchronize and coordinate a plurality of computers participating in distributed computing.

본 발명에 의하면, 네트워크 분리 장애가 발생하는 상황에서도 서비스의 연속성과 데이터의 정합성을 최대한으로 보장할 수 있게 된다.According to the present invention, even in the event of network separation failure, service continuity and data consistency can be guaranteed to the maximum.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조, 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION The following detailed description of the invention refers to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be embodied in other embodiments without departing from the spirit and scope of the invention with respect to one embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention, if properly described, is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. Like reference numerals in the drawings refer to the same or similar functions throughout the several aspects.

이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement the present invention.

[본 발명의 바람직한 실시예][Preferred Embodiments of the Invention]

전체 시스템의 구성Configuration of the entire system

도 2는 본 발명의 일 실시예에 따른 분산 환경을 개략적으로 나타내는 도면이다.2 is a view schematically showing a distributed environment according to an embodiment of the present invention.

도 2에 도시되어 있는 바와 같이, 본 발명의 일 실시예에 따른 전체 시스템은, 통신망(100), 분산 환경에서 잠금(locking) 서비스를 제공하는 분산 환경 관리 시스템(200), 및 분산 환경 관리 시스템(200)이 제공하는 서비스를 이용하는 다수의 클라이언트(300)로 구성될 수 있다.As shown in FIG. 2, the entire system according to an embodiment of the present invention includes a communication network 100, a distributed environment management system 200 that provides a locking service in a distributed environment, and a distributed environment management system. It may be composed of a plurality of clients 300 using the services provided by the 200.

먼저, 통신망(100)은 유선 및 무선과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다.First, the communication network 100 may be configured regardless of communication modes such as wired and wireless, and may include a local area network (LAN), a metropolitan area network (MAN), and a wide area network (WAN). Network).

본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 여러 개의 서버(이하에서는, 주로 "노드"라고 통칭함)로 구성될 수 있고, 다양한 시스템 자원을 공유하는 다수의 클라이언트(300) 사이에서 데이터의 정합성이 보장될 수 있도록 하기 위하여 클라이언트(300)에게 잠금 서비스를 제공할 수 있다.According to one embodiment of the invention, the distributed environment management system 200 may be composed of a number of servers (hereinafter, commonly referred to as "nodes"), a plurality of clients 300 sharing a variety of system resources The lock service may be provided to the client 300 in order to ensure the consistency of data therebetween.

또한, 분산 환경 관리 시스템(200)은 클라이언트(300)가 분산 환경 관리 시스템(200) 내의 특정 노드와 통신할 수 있도록 세션을 생성/유지/해제하는 기능을 수행하고, 클라이언트(300)와 통신하는 특정 노드에 장애가 발생하는 경우, 클라이언트(300)가 대기 중인 다른 노드와 통신할 수 있도록 스위칭 서비스를 제공할 수 있다.In addition, the distributed environment management system 200 performs a function of creating / maintaining / releaseing a session so that the client 300 can communicate with a specific node within the distributed environment management system 200, and communicates with the client 300. When a failure occurs in a specific node, the client 300 may provide a switching service to communicate with another node that is waiting.

또한, 분산 환경 관리 시스템(200)은 다수의 노드 간의 동기화를 수행하고 여러 이벤트를 처리하는 기능을 수행할 수 있다.In addition, the distributed environment management system 200 may perform a function of synchronizing a plurality of nodes and processing various events.

본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 클러스터 매니저(cluster manager), 이벤트 매니저(event manager), 및 (경우에 따라) 클라이언트 라이브러리(client library)(미도시됨)를 포함할 수 있다.According to one embodiment of the invention, the distributed environment management system 200 includes a cluster manager, an event manager, and optionally a client library (not shown). can do.

본 발명의 일 실시예에 따르면, 클러스터 매니저는 분산 환경 관리 시스템(200)의 노드들의 집합인 클러스터 내의 전체 노드들을 관리하는 기능을 수행할 수 있다. 보다 구체적으로는, 클러스터 매니저는 클러스터 내의 노드들을 관리하는 역할과 클라이언트 라이브러리와 통신하면서 잠금 동작을 처리하는 기능을 수행할 수 있다. 또한, 클라이언트(300)에서 특정 경로 또는 데이터에 대해서 잠금 동작을 시도하면 클러스터 매니저는 요청한 클라이언트(300)가 해당 잠금 동작을 수행할 수 있는 권한을 갖고 있는지 여부를 확인하고 즉각적으로(소위, non-blocking 모드) 잠금 획득 여부를 True나 False의 값으로 반환할 수 있다. 또한, 클러스터 매니저는 클라이언트(300)의 잠금 동작 처리나 잠금 동작에 수반되는 이벤트 처리 에 관한 기능을 수행할 수 있는데, 예를 들면, 잠금의 유형에 따라 해당 경로 또는 데이터에 잠금이 걸렸다는 것을 다른 클라이언트(300)에게 알리기 위한 이벤트를 생성하고, 이를 이벤트 매니저에 전달하는 기능을 수행할 수 있다.According to an embodiment of the present invention, the cluster manager may perform a function of managing all nodes in the cluster, which is a set of nodes of the distributed environment management system 200. More specifically, the cluster manager may perform a role of managing nodes in the cluster and a lock operation while communicating with a client library. In addition, when the client 300 attempts a lock operation on a specific path or data, the cluster manager checks whether the requesting client 300 has the authority to perform the lock operation and immediately (so-called non- blocking mode) Returns whether the lock is acquired as a value of True or False. In addition, the cluster manager may perform a function related to the locking operation processing of the client 300 or the event processing associated with the locking operation. For example, depending on the type of the lock, the cluster manager may determine that the path or data is locked. An event for notifying the client 300 may be generated and a function of delivering the event to the event manager may be performed.

본 발명의 일 실시예에 따르면, 클라이언트 라이브러리와의 통신은 오직 마스터 클러스터 매니저를 통해서 이루어질 수 있으며, 다른 보조 클러스터 매니저들은 마스터 클러스터 매니저의 상태 정보의 복제본을 실시간으로 유지할 수 있다. 마스터 클러스터 매니저의 장애 시에는 보조 클러스터 매니저들 중에서 새로운 마스터 클러스터 매니저가 선출될 수 있다.According to one embodiment of the present invention, communication with the client library can be made only through the master cluster manager, and other auxiliary cluster managers can maintain a copy of the state information of the master cluster manager in real time. In the event of a failure of the master cluster manager, a new master cluster manager may be selected among the secondary cluster managers.

다음으로, 본 발명의 일 실시예에 따르면, 이벤트 매니저는, 클러스터 매니저와 마찬가지로, 하나의 마스터 이벤트 매니저와 여러 보조 이벤트 매니저로 구성되고, 이벤트를 통지 받을 클라이언트(300)의 리스트를 관리하며, 이벤트가 발생하는 경우, 해당 클라이언트(300)에게 이벤트에 대한 통지를 전달하는 기능을 수행할 수 있다. 보다 구체적으로는, 이벤트 매니저는 크게 잠금 이벤트(lock event)와 범용 이벤트(generic event)와 같은 두 가지 이벤트를 수행할 수 있다. 상기 이벤트들이 처리되는 과정을 보다 상세히 살펴보면, 우선, 잠금 이벤트의 경우, 마스터 클러스터 매니저가 잠금 이벤트에 관한 정보를 마스터 이벤트 매니저에게 전달하고, 이벤트 매니저는 등록된 여러 클라이언트(300)에게 멀티 캐스트 방식으로 이벤트를 전송하는 방식으로 처리될 수 있다. 다음으로, 범용 이벤트의 경우, 잠금 동작과 상관 없이, 클라이언트(300)가 일반적인 Publish-Subscribe 방식으로 이벤트 매니저에게 이벤트의 생성을 요청하거나 등록하고 이벤트 매니저로부터 이벤트를 전달 받는 방식으로 처리될 수 있다.Next, according to an embodiment of the present invention, like the cluster manager, the event manager is composed of one master event manager and several auxiliary event managers, and manages the list of clients 300 to be notified of the event, When is generated, it may perform a function for delivering a notification about the event to the client (300). More specifically, the event manager can largely perform two events, a lock event and a generic event. Looking at the process of processing the events in more detail, first, in the case of a lock event, the master cluster manager delivers information about the lock event to the master event manager, the event manager to multi-registered multiple client 300 It can be handled by sending an event. Next, in the case of a general-purpose event, regardless of the locking operation, the client 300 may be processed by requesting or registering the event manager to generate an event in a general publish-subscribe manner and receiving an event from the event manager.

또한, 본 발명의 일 실시예에 따르면, 클라이언트 라이브러리는 클라이언트(300)가 분산 환경 관리 시스템(200)의 잠금 서비스 및 이벤트 서비스를 쉽게 이용할 수 있도록 라이브러리의 형태로 제공되는 프로그램으로서, 그 적어도 일부가 분산 환경 관리 시스템(200) 내에 포함될 수 있다. 물론, 필요에 따라, 클라이언트 라이브러리의 적어도 일부가 클라이언트(300) 내에 포함되는 경우도 적지 않다.In addition, according to an embodiment of the present invention, the client library is a program provided in the form of a library so that the client 300 can easily use the lock service and the event service of the distributed environment management system 200, and at least part of It may be included in the distributed environment management system 200. Of course, if necessary, at least a part of the client library may be included in the client 300.

본 발명의 일 실시예에 따르면, 클라이언트(300)는 클라이언트 라이브러리가 제공하는 기능을 이용하여 분산 환경 관리 시스템(200)과 통신하게 된다. 보다 구체적으로는, 클라이언트 라이브러리는 원격으로 서비스 서버(200)를 이용할 수 있도록 클라이언트(300)에게 제공될 수 있는 라이브러리의 집합이다. 본 발명의 일 실시예에 따르면, 사용자는 이 라이브러리를 자신의 프로그램 내에 플러그인(plug-in)처럼 삽입해서 사용할 수 있으며, 초기화의 경우에는 프록시(proxy) 객체를 생성하여 클러스터에 접속해서 RPC 형태로 잠금 작업을 수행할 수도 있다. 클라이언트 라이브러리는 원격의 클러스터 내에서 발생하는 마스터 노드 선출, Fail-Over, 멤버 변경 등의 다양한 상황들을 사용자에게 추상화시킴으로써, 사용자는 단지 안전하고 추상화된 원격 서비스를 로컬 서비스를 사용하는 경우와 마찬가지로 사용할 수 있도록 도와주는 기능을 수행한다.According to an embodiment of the present invention, the client 300 communicates with the distributed environment management system 200 by using a function provided by the client library. More specifically, the client library is a collection of libraries that can be provided to the client 300 to use the service server 200 remotely. According to an embodiment of the present invention, a user can insert and use this library as a plug-in in his or her own program.In the case of initialization, a proxy object is created to connect to a cluster to form an RPC. You can also perform a lock operation. The client library abstracts the user into various situations, such as master node election, fail-over, and member changes, that occur within a remote cluster, allowing users to use secure and abstracted remote services just as they would with local services. Perform a function to help you.

잠금 서비스의 제공Provision of lock service

분산 환경에서는, 다수의 프로세스 또는 쓰레드(thread)가 하나의 작업을 협동적으로 수행하게 되는 경우가 많은데, 프로세스 또는 쓰레드에 포함된 다수의 트 랜잭션(transaction)이 하나의 데이터에 대하여 동시에 읽기 또는 쓰기 작업을 수행하는 경우 잘못된 결과가 도출될 수 있으므로, 다수의 트랜잭션이 공통으로 접근할 수 있는 데이터에 대한 보호가 필요하다. 이는 분산 환경에 포함된 각각의 컴퓨터가 서로 데이터를 공유하는 경우에도 마찬가지로 적용될 수 있다. 따라서, 분산 환경에서도 하나의 트랜잭션에 의해 사용되는 데이터에 다른 트랜잭션이 접근하지 못하도록 하는 잠금 기능이 필요할 수 있다.In a distributed environment, many processes or threads often perform a single task collaboratively, and multiple transactions in a process or thread can simultaneously read or read a single piece of data. Since wrong results can be obtained when performing write operations, it is necessary to protect data that can be accessed by multiple transactions in common. The same can be applied to the case where each computer included in the distributed environment shares data with each other. Therefore, even in a distributed environment, a lock function may be required to prevent other transactions from accessing data used by one transaction.

따라서, 이하에서는, 본 발명의 일 실시예에 따라, 분산 환경 관리 시스템(200)이 클라이언트(300)에 제공하는 잠금 서비스에 대하여 상세히 기술하기로 한다.Therefore, hereinafter, the lock service provided by the distributed environment management system 200 to the client 300 will be described in detail according to an embodiment of the present invention.

도 3은 분산 환경 관리 시스템(200)이 제공하는 잠금 기능을 예시적으로 나타내는 도면이다. 한편, 도 3은 하나의 서비스가 3개의 클라이언트(300)에서 동시에 실행되는 상황을 가정하여 도시되었다.3 is a diagram exemplarily illustrating a locking function provided by the distributed environment management system 200. Meanwhile, FIG. 3 is assuming that a service is simultaneously executed in three clients 300.

도 3을 참조하면, 클라이언트 1(310), 클라이언트 2(320), 및 클라이언트 3(330)이 공유 데이터에 대한 읽기 또는 쓰기 작업을 수행하고자 하는 경우, 본 발명의 일 실시예에 따른 분산 환경 관리 시스템(200)의 마스터 클러스터 매니저에게 해당 데이터에 대한 잠금을 요청할 수 있음을 알 수 있다. 도 3의 클라이언트 1(310)이 잠금을 요청할 때, 클라이언트 2(320) 및 클라이언트 3(330)은 해당 데이터에 대한 잠금을 요청하지 않았다면, 클라이언트1(310)은 별 무리 없이 잠금을 획득할 수 있을 것이다. 그러나, 도 3에 도시된 바와 같이, 적어도 2개 이상의 클라이언트가 경쟁적으로 잠금을 요청하였다면, 그 중 하나의 클라이언트에게만 잠금이 부여될 수 있다.Referring to FIG. 3, when client 1 310, client 2 320, and client 3 330 want to perform a read or write operation on shared data, distributed environment management according to an embodiment of the present invention. It can be seen that the master cluster manager of the system 200 can request a lock on the corresponding data. When Client 1 310 of FIG. 3 requests a lock, if Client 2 320 and Client 3 330 have not requested a lock on their data, Client 1 310 may acquire the lock without difficulty. There will be. However, as shown in FIG. 3, if at least two or more clients competitively requested a lock, the lock may be granted to only one of them.

각각의 클라이언트(310, 320, 330)가 경쟁적으로 잠금을 요청하는 경우에 대비하기 위한 하나의 방법으로서, 각각의 클라이언트(310, 320, 330)가 잠금을 획득할 때까지 분산 환경 관리 시스템(200)에 지속적으로 잠금을 요청하는 것을 상정할 수 있는데, 이는 아래와 같은 프로그램 코드를 이용하여 실현될 수 있다.As a way to prepare for the case where each client 310, 320, 330 competitively requests a lock, the distributed environment management system 200 until each client 310, 320, 330 acquires the lock. You can assume that you are requesting a lock continuously, which can be realized using the following program code:

/** Lock을 얻을 때까지 while loop에서 대기 **/
while(!pleiades.getLock(service_A.LockMode.LOCK_EXCLUSIVE)) {
try {
/** Lock을 얻지 못한 상태이면 1초 동안 기다림 **/
Thread.sleep(1000);
} catch(InterruptedExeption ie) {
return;
}
}
/ ** Wait in the while loop until the lock is obtained ** /
while (! pleiades.getLock (service_A.LockMode.LOCK_EXCLUSIVE)) {
try {
/ ** Wait 1 second if lock is not obtained ** /
Thread.sleep (1000);
} catch (InterruptedExeption ie) {
return;
}
}

특정 클라이언트(300)에게 잠금이 부여되면, 마스터 클러스터 매니저는 해당 클라이언트(300)의 잠금 정보를 데이터베이스 또는 메모리 등과 같은 저장 장치에 기록할 수 있다.When a lock is granted to a specific client 300, the master cluster manager may record the lock information of the client 300 in a storage device such as a database or a memory.

또한, 앞서 설명한 바와 같이, 마스터 클러스터 매니저에 의해 갱신된 잠금 정보는 주기적으로 또는 비주기적으로 보조 클러스터 매니저에 복제되므로, 마스터 클러스터 매니저에 기록된 정보와 보조 클러스터 매니저에 기록된 정보 간의 정합성이 유지될 수 있다.In addition, as described above, since the lock information updated by the master cluster manager is replicated to the secondary cluster manager periodically or aperiodically, consistency between information recorded in the master cluster manager and information recorded in the secondary cluster manager is maintained. Can be.

본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)으로부터 획득된 잠금은 해당 잠금을 요청하였던 프로세스 또는 쓰레드에게만 사용이 허가될 수 있다. 또한, 본 발명의 다른 실시예에 따르면, 분산 환경 관리 시스템(200)으로부터 획득된 잠금은 해당 잠금을 획득한 클라이언트(300) 내의 모든 프로세스 또는 쓰레 드에게 사용이 허가될 수도 있다.According to an embodiment of the present invention, the lock obtained from the distributed environment management system 200 may be licensed only to the process or thread that requested the lock. In addition, according to another embodiment of the present invention, the lock obtained from the distributed environment management system 200 may be licensed to all processes or threads in the client 300 that acquired the lock.

네트워크 분리 장애 상황에서의 마스터 노드의 선출Election of Master Nodes in a Network Separation Failure

앞서 언급한 바와 같이, 분산 컴퓨팅의 조건으로서 고장 방지성 내지는 고장 감내성의 보장이 필수적이라고 할 것인데, 본 발명의 일 실시예에 따르면, 분산 환경에 참여하는 클라이언트(300)의 잠금 정보 및 클라이언트(300)에 대한 이벤트 통지 처리는 분산 환경 관리 시스템(200)에 포함된 클러스터 매니저 및 이벤트 매니저에 의해 관리되므로, 클러스터 매니저 또는 이벤트 매니저에 장애가 발생하는 경우, 분산 환경에 참여한 모든 클라이언트(300)의 작업이 정상적으로 수행될 수 없게 되는 문제점이 발생할 수 있다.As mentioned above, guaranteeing failure prevention or fault tolerance is essential as a condition of distributed computing. According to an embodiment of the present invention, lock information and client 300 of the client 300 participating in the distributed environment may be required. Event notification processing is managed by the cluster manager and the event manager included in the distributed environment management system 200. Therefore, when the cluster manager or the event manager fails, the operations of all the clients 300 participating in the distributed environment Problems may occur that cannot be performed normally.

따라서, 본 발명의 분산 환경 관리 시스템(200)은 다수의 클러스터 매니저를 포함하고, 그 중 하나를 마스터 클러스터 매니저로 설정하여 클라이언트와의 직접적인 통신을 수행하도록 하는 한편, 그 외의 보조 클러스터 매니저들은 마스터 클러스터 매니저의 잠금 정보를 복제하여 저장함으로써 마스터 클러스터 매니저에 장애가 발생하더라도 보조 클러스터 매니저 중 하나를 이용하여 서비스의 연속성이나 데이터의 정합성이 보장되도록 할 수 있다. 상기와 같은 구성은 이벤트 매니저에도 동일하게 적용될 수 있다(이하에서는, 마스터 클러스터 매니저와 이벤트 클러스터 매니저를 포괄하는 의미로 "마스터 노드"라는 용어를 사용하기로 한다).Accordingly, the distributed environment management system 200 of the present invention includes a plurality of cluster managers, and sets one of them as a master cluster manager to perform direct communication with the client, while other auxiliary cluster managers are configured as master cluster managers. By duplicating and storing the lock information of the manager, even if a failure occurs in the master cluster manager, the service continuity or the data consistency can be guaranteed using one of the auxiliary cluster managers. The above configuration may be equally applied to the event manager (hereinafter, the term "master node" will be used to encompass the master cluster manager and the event cluster manager).

그러나, 상기와 같은 구성만으로는, 네트워크 분리 장애에 적절하게 대처할 수 없는데, 이는, 앞서 기술한 바와 같이, 네트워크 분리 장애 상황에서 나누어진 각각의 그룹은 다른 그룹의 노드들이 모두 다운된 것으로 판단하게 되므로, 각각의 그룹마다 마스터 노드가 생성되게 되고, 따라서, 추후 장애가 복구된 후, 각각의 그룹에 속했던 노드들 간의 데이터의 정합성에 문제가 발생할 수 있기 때문이다.However, the above configuration alone cannot adequately cope with the network separation failure. As described above, each group divided in the network separation failure situation determines that all nodes of the other group are down. This is because a master node is created for each group, and therefore, after a failure is repaired, a problem may occur in the coherence of data between nodes belonging to each group.

따라서, 이하에서는, 본 발명의 일 실시예에 따라, 네트워크 분리 장애 상황에서 마스터 노드를 선출하는 방법에 대하여 보다 구체적으로 살펴보기로 한다.Therefore, hereinafter, a method of selecting a master node in a network separation failure situation according to an embodiment of the present invention will be described in more detail.

1. 쿼럼(quorum) 기반의 마스터 노드 선출1. Election of Quorum-Based Master Nodes

본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 네트워크 분리 장애가 감지되는 경우 쿼럼 알고리즘을 적용하여 마스터 노드를 선출하게 된다. 이하에서 도 4를 참조하여 보다 구체적으로 설명하기로 한다.According to an embodiment of the present invention, the distributed environment management system 200 selects a master node by applying a quorum algorithm when a network separation failure is detected. Hereinafter, with reference to Figure 4 will be described in more detail.

도 4는 네트워크 분리 장애 상황에 쿼럼 알고리즘을 적용한 모습을 나타내는 도면이다.4 is a diagram illustrating a quorum algorithm applied to a network separation failure situation.

도 4를 참조하면, 총 7개의 노드로 구성된 클러스터에 네트워크 분리 장애가 발생하여, 4개의 노드를 포함하는 그룹 A와 3개의 노드를 포함하는 그룹 B로 나누어진 것을 알 수 있다.Referring to FIG. 4, it can be seen that a network separation failure occurs in a cluster composed of a total of seven nodes, and thus divided into a group A including four nodes and a group B including three nodes.

상기와 같은 상황에서 그룹 A는 전체 노드의 개수(즉, 7개)의 과반수에 해당되는 노드를 확보하고 있으므로 쿼럼을 만족하게 되어 메이저 그룹으로 분류될 수 있다. 이에 따라 메이저 그룹에 포함된 노드 중 하나가 마스터 노드로 지정되고, 해당 마스터 노드를 통하여 클라이언트(300)와의 통신이 이루어질 수 있다. 그리고, 마스터 노드는 데이터에 대한 읽기 또는 쓰기 작업을 허용 받을 수 있다.In this situation, group A has a node corresponding to a majority of the total number of nodes (that is, seven), so that the quorum satisfies the quorum and may be classified as a major group. Accordingly, one of the nodes included in the major group is designated as the master node, and communication with the client 300 may be performed through the corresponding master node. In addition, the master node may be allowed to read or write data.

반면, 그룹 B는 전체 노드 개수의 과반수에 해당되는 노드를 확보하고 있지 못하므로 마이너 그룹으로 분류된다. 이러한 마이너 그룹으로부터는 마스터 노드 가 선출되지 않을 것이다.On the other hand, group B is classified as a minor group because it does not have a node corresponding to a majority of the total number of nodes. Master nodes will not be elected from these minor groups.

네트워크 분리 장애 상황에서 각각의 그룹이 자신이 메이저 그룹인지 마이너 그룹인지를 판단하기 위해서는, 네트워크 분리 장애가 발생하기 이전의 초기 그룹에 얼마나 많은 노드가 존재하였는지에 관한 정보가 네트워크 분리 장애가 발생한 이후의 각각의 그룹의 적어도 하나의 노드에 저장되어 있어야 하는데, 본 발명의 일 실시예에 따르면, 마스터 노드에 저장된 정보는 이에 대응되어 있는 보조 노드에 복제되므로, 상기와 같은 정보를 마스터 노드에 저장함으로써 위와 같은 요구가 달성될 것이다.In order to determine whether each group is a major group or a minor group in a network isolation failure situation, the information on how many nodes existed in the initial group before the network isolation failure occurred is displayed. According to an embodiment of the present invention, since the information stored in the master node is replicated to the corresponding secondary node, the above request is stored by storing the above information in the master node. Will be achieved.

다음으로, 도 4와 같이 네트워크 분리 장애가 발생한 상황에서, 다시 한번 네트워크 분리 장애가 발생하여, 그룹 A가 3개의 노드를 포함하는 그룹 A1과 1개의 노드를 포함하는 그룹 A2로 분리되고, 그룹 B가 2개의 노드를 포함하는 그룹 B1과 1개의 노드를 포함하는 그룹 B2로 분리된 상황을 가정하여 보면, 어떠한 그룹도 초기 그룹에 속했던 노드의 수의 과반에 해당되는 4개 이상의 노드를 포함하지 않으므로, 쿼럼을 만족하는 그룹을 특정할 수 없는 문제가 발생할 수 있다.Next, in a situation where a network separation failure occurs as shown in FIG. 4, a network separation failure occurs once again, so that group A is divided into a group A1 including three nodes and a group A2 including one node, and group B is divided into two. Suppose the situation is divided into a group B1 containing 1 node and a group B2 containing 1 node, since no group contains more than 4 nodes corresponding to a majority of the number of nodes that belonged to the initial group. There may be a problem that can not specify a group that satisfies.

이와 같은 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따르면, 쿼럼은 그룹을 구성하는 노드 수의 변화에 따라 동적으로 재설정될 수 있다. 보다 구체적으로는, 동적 쿼럼을 구현하기 위해서는, 우선 그룹의 재설정 시간을 설정해야 한다. 본 발명의 일 실시예에 따르면, 그룹의 재설정 시간은 30초로 설정될 수 있는데, 이 경우, 그룹 내의 노드의 수가 30초 동안 변함이 없다면, 이 시점을 기준으로 그룹이 재설정된다. 그룹이 재설정됨에 따라, 쿼럼의 산정의 기준이 되는 그 룹 내의 노드 수가 초기화되게 되고, 따라서, 쿼럼도 변경될 수 있게 된다.In order to solve this problem, according to an embodiment of the present invention, the quorum may be dynamically reset according to the change in the number of nodes constituting the group. More specifically, in order to implement dynamic quorum, first set a reset time of the group. According to one embodiment of the invention, the reset time of the group may be set to 30 seconds, in which case the group is reset based on this time point if the number of nodes in the group has not changed for 30 seconds. As the group is reset, the number of nodes in the group on which the quorum is calculated is initialized, and thus the quorum can be changed.

상기 언급한 예의 경우, 최초의 네트워크 분리 장애가 발생하기 이전에는 그룹에 포함된 노드의 총수가 7이므로, 쿼럼은 4로 설정된다. 그 후, 첫 번째 네트워크 분리 장애가 발생하게 되면, 그룹 A의 경우, 4개의 노드가 포함되므로 쿼럼이 3으로 재설정되고, 그룹 B의 경우, 3개의 노드가 포함되므로 쿼럼이 2로 재설정된다. 이에 따라, 두 번째 네트워크 분리 장애가 발생하여도 그룹 A1 및 그룹 B1이 쿼럼을 만족하게 될 수 있다.In the above example, the quorum is set to 4 since the total number of nodes included in the group is 7 before the first network detach failure occurs. Then, when the first network separation failure occurs, the quorum is reset to 3 because four nodes are included in group A, and the quorum is reset to 2 because three nodes are included in group B. Accordingly, even when a second network separation failure occurs, group A1 and group B1 can satisfy the quorum.

그러나, 그룹 B1의 경우 첫 번째 네트워크 분리 장애가 발생한 시점에 마이너 그룹으로 분류되었으므로, 비록 두 번째 네트워크 분리 장애가 발생하여 과반수의 노드를 확보하였다고 하더라도 메이저 그룹으로 분류될 수 없고, 그룹 A1만이 메이저 그룹으로 분류될 수 있다. 따라서, 이를 위하여 마스터 노드는 네트워크 분리 장애가 발생하기 이전의 그룹에 얼마나 많은 노드가 존재하였는지에 관한 정보와 더불어, 네트워크 분리 장애가 발생하기 이전에 해당 그룹이 메이저 그룹이었는지 마이너 그룹이었는지에 관한 정보도 함께 저장할 수 있다.However, group B1 was classified as a minor group at the time of the first network separation failure. Therefore, even if a second network separation failure occurred, the majority of nodes could not be classified as a major group, and only group A1 was classified as a major group. Can be. Therefore, for this purpose, the master node can store information about how many nodes existed in the group before the network separation failure, as well as whether the group was a major group or a minor group before the network separation failure occurred. have.

이후, 네트워크 분리 장애가 복구된 경우의 처리를 도 4를 참조하여 설명하면, 마이너 그룹이었던 그룹 B에 포함된 노드들은 메이저 그룹인 그룹 A에 포함된 노드로부터 최신 상태 정보를 가져와서 업데이트를 수행하고, 이에 따라, 총 7개의 노드가 다시 하나의 그룹으로서 기능할 수 있을 것이다.Subsequently, the process in the case where the network separation failure is recovered will be described with reference to FIG. 4, and the nodes included in the group B, which is the minor group, perform the update by obtaining the latest state information from the node included in the group A, which is the major group, Thus, a total of seven nodes could again function as a group.

상기와 같은 방법으로, 네트워크 분리 장애 상황에서도 데이터 정합성이 보장될 수 있게 된다.In this manner, data consistency can be guaranteed even in a network separation failure situation.

그러나, 상기와 같이 쿼럼 알고리즘만을 채택하게 되면, 몇몇 경우에 있어서, 서비스의 연속성이나 데이터의 정합성을 보장할 수 없게 되는 단점이 있다. 예를 들면, 총 6개의 노드로 구성된 그룹이 각각 3개의 노드를 포함하는 2개의 그룹으로 분리되는 경우, 어떠한 그룹도 과반수의 노드를 포함하지 않으므로 서비스가 지속될 수 없다. 또한, 지속적인 네트워크 분리 장애로 인하여, 각각 1개의 노드를 포함하는 그룹이 생성된 경우에도 마찬가지로 서비스가 지속될 수 없다. 즉, 정적인 방식으로 쿼럼을 적용할 때에는, 특히, 서비스의 연속성의 측면에서 다음과 같은 제약이 따른다.However, if only the quorum algorithm is adopted as described above, in some cases, there is a disadvantage in that service continuity or data consistency cannot be guaranteed. For example, if a group consisting of six nodes in total is divided into two groups each containing three nodes, no group can contain a majority of the nodes and thus service cannot continue. In addition, due to the continuous network separation failure, the service cannot be continued even when a group including one node is created. That is, when quorum is applied in a static manner, in particular, the following restrictions are applied in terms of service continuity.

- 초기 그룹의 총 노드 개수: 2N+1Total number of nodes in initial group: 2N + 1

- 쿼럼의 최소 개수: N+1Minimum number of quorums: N + 1

- 쓰기 작업을 할 수 있는 최소한의 노드 개수 = 쿼럼의 개수 = N+1Minimum number of nodes that can write to = number of quorums = N + 1

(N 은 정수)(N is an integer)

2. 이력 기반의 마스터 노드 선출2. Election of history-based master node

본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 이력 테이블을 이용하여 데이터의 정합성을 보장하면서도 서비스의 연속성이 더욱 고도화되도록 할 수 있다.According to an embodiment of the present invention, the distributed environment management system 200 may further enhance service continuity while ensuring data consistency using a history table.

본 발명의 일 실시예에 따르면, 이력 테이블은 최초로 그룹이 구성되는 시점에서의 노드 ID 정보, 그룹 합류 시점 정보, 노드 상태 정보, 및 그룹 상태 정보를 포함할 수 있다. 아래의 표는 이력 테이블에 저장되는 데이터를 예시적으로 나타내고 있다.According to an embodiment of the present invention, the history table may include node ID information, group joining point information, node state information, and group state information at the time when a group is first formed. The table below shows the data stored in the history table as an example.

아이디ID 합류 시점Joining point 노드 상태Node status 그룹 상태Group status NodeNode #1 #One 2008/07/23_12:12:332008/07 / 23_12: 12: 33 MasterMaster MajorMajor Node #2Node # 2 ***_12:12:35*** _ 12:12:35 SlaveSlave MinorMinor Node #3Node # 3 ***_12:12:38*** _ 12:12:38 SlaveSlave MinorMinor ......

상기와 같은 이력 테이블은 그룹이 최초 구성될 때 생성될 수 있으며, 그룹의 기능이 종료되기 전까지 유지될 수 있다. 상기 이력 테이블에서 세 번째 필드인 노드 상태 정보는 새로운 마스터 노드가 선출될 때마다 마스터(master) 또는 슬레이브(slave)로 변경되고, 그룹 상태 정보는 네트워크 분리 장애가 발생함에 따라 메이저(major) 또는 마이너(minor)로 변경될 수 있다.Such a history table may be created when the group is initially configured, and may be maintained until the function of the group ends. Node status information, which is the third field in the history table, is changed to master or slave whenever a new master node is selected, and group status information is changed to major or minor as network disconnection failure occurs. minor).

본 발명의 일 실시예에 따른 분산 환경 관리 시스템(200)은, 네트워크 분리 장애로 인하여 하나의 그룹이 동일한 노드 개수를 가지는 2개의 그룹으로 분리된 경우, 상기 이력 테이블을 이용하여 메이저 그룹을 결정할 수 있다(물론, 상기 이력 테이블은 반드시 동일한 노드 개수를 가지는 2개의 그룹 중에서 메이저 그룹을 결정하는 경우뿐만 아니라, 노드 개수의 차이가 소정의 기준치 이하인 2개의 그룹 중에서 메이저 그룹을 결정하는 경우에도 이용될 수 있다는 것은 당업자에게 자명하게 이해될 수 있다). 보다 구체적으로는, 네트워크 분리 장애가 발생하기 이전에 메이저 그룹에 속하였고 그룹에 합류한 시점이 가장 빠른 노드가 포함된 그룹을 새로운 메이저 그룹으로 결정할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 그룹에 합류한 시점이 가장 빠른 노드가 해당 그룹의 마스터 노드로 결정될 수도 있을 것이다. 결국, 쿼럼을 만족하는 유일한 그룹이 없는 경우에는, 네트워크 분리 장애가 발생하기 직전의 그룹 상태가 메이저이고, 가장 최근에 마스터로 선출된 노드(즉, 그룹에 합류한 시점이 가장 빠른 노드)가 있는 그룹이 새로운 메이저 그룹으로 결정될 수 있다.The distributed environment management system 200 according to an exemplary embodiment of the present invention may determine a major group using the history table when one group is divided into two groups having the same number of nodes due to a network separation failure. (Of course, the history table may be used not only when determining a major group among two groups having the same number of nodes but also when determining a major group among two groups where the difference in the number of nodes is less than a predetermined reference value. It will be apparent to those skilled in the art). More specifically, a group including a node belonging to a major group before the network separation failure occurs and having the earliest time to join the group may be determined as a new major group. In addition, according to an embodiment of the present invention, the node having the earliest time of joining the group may be determined as the master node of the group. After all, if there is no unique group that satisfies the quorum, then the group with the group state immediately before the network isolation failure is major and the node with the most recently elected master (that is, the node with the earliest joining the group). This new major group can be decided.

도 5는 이력 테이블에 기반한 동적 쿼럼 방식을 적용하여 네트워크 분리 장애를 해결하는 과정을 예시적으로 나타내는 도면이다. 이하에서는, 도 5에 도시된 단계에 따라, 이력 테이블이 변경되는 과정을 기술함으로써, 이력 테이블에 기반한 동적 쿼럼 방식을 보다 구체적으로 설명하기로 한다.5 is a diagram exemplarily illustrating a process of solving a network separation failure by applying a dynamic quorum method based on a history table. Hereinafter, the dynamic quorum method based on the history table will be described in detail by describing a process of changing the history table according to the steps shown in FIG. 5.

(1) 단계: 6개의 노드로 구성된 그룹으로서 네트워크 분리 장애가 발생하기 이전이며, 모든 노드가 메이저 그룹에 속하여 있음. Node #1의 그룹 합류 시점이 가장 빠르므로, 마스터 노드로 선출됨.Step (1): A group of six nodes, before a network isolation failure occurs, all nodes belonging to the major group. Since Node # 1 joins the group the quickest, it is elected as the master node.

아이디ID 합류 시점Joining point 노드 상태Node status 그룹 상태Group status NodeNode #1 #One ***_12:12:33*** _ 12:12:33 MasterMaster MajorMajor Node #2Node # 2 ***_12:12:35*** _ 12:12:35 SlaveSlave MajorMajor Node #3Node # 3 ***_12:12:38*** _ 12:12:38 SlaveSlave MajorMajor Node #4Node # 4 ***_12:12:39*** _ 12:12:39 SlaveSlave MajorMajor Node #5Node # 5 ***_12:12:40*** _ 12:12:40 SlaveSlave MajorMajor Node #6Node # 6 ***_12:12:42*** _ 12:12:42 SlaveSlave MajorMajor

(2) 단계: 네트워크 분리 장애가 발생하여 동일한 수의 노드를 가지는 2개의 그룹으로 분리됨. 장애 이전에 메이저 그룹에 속한 노드 중에서 그룹 합류 시점이 가장 빠른 노드는 Node #1이므로, 왼쪽 그룹이 메이저 그룹으로 결정되고, 오른쪽 그룹은 마이너 그룹으로 변경됨.Step (2): Network separation failure occurs, splitting into two groups with the same number of nodes. Node # 1 is the fastest node to join the group among the major groups before the failure, so the left group is determined as the major group and the right group is changed to the minor group.

아이디ID 합류 시점Joining point 노드 상태Node status 그룹 상태Group status NodeNode #1 #One ***_12:12:33*** _ 12:12:33 MasterMaster MajorMajor Node #2Node # 2 ***_12:12:35*** _ 12:12:35 SlaveSlave MinorMinor Node #3Node # 3 ***_12:12:38*** _ 12:12:38 SlaveSlave MajorMajor Node #4Node # 4 ***_12:12:39*** _ 12:12:39 SlaveSlave MinorMinor Node #5Node # 5 ***_12:12:40*** _ 12:12:40 SlaveSlave MajorMajor Node #6Node # 6 ***_12:12:42*** _ 12:12:42 SlaveSlave MinorMinor

(3) ~ (4) 단계: (2) 단계를 거치면서 메이저 그룹은 Node #1, Node #3, 및 Node #5를 포함하는 그룹으로 재설정되었고(이에 따라, 쿼럼은 2로 재설정됨), 이후 또 다시 네트워크 분리 장애가 발생하여 Node #1을 포함하는 그룹과 Node #3 및 Node #5를 포함하는 그룹으로 분리됨. Node #3 및 Node #5를 포함하는 그룹이 쿼럼을 만족하므로 메이저 그룹으로 결정되고, Node #1을 포함하는 그룹은 마이너 그룹으로 변경됨. 한편, Node #3의 그룹 합류 시점이 가장 빠르므로 새로운 마스터 노드로 선출됨.(3) to (4) steps: During step (2), the major group has been reset to a group containing Node # 1, Node # 3, and Node # 5 (thus, the quorum is reset to 2), After that, the network separation failure occurred again and separated into a group containing Node # 1 and a group containing Node # 3 and Node # 5. The group containing Node # 3 and Node # 5 is determined to be a major group because it satisfies the quorum, and the group containing Node # 1 is changed to a minor group. Meanwhile, Node # 3 is elected as the new master node because the group joining time is the fastest.

아이디ID 합류 시점Joining point 노드 상태Node status 그룹 상태Group status Node #1Node # 1 ***_12:12:33*** _ 12:12:33 SlaveSlave MinorMinor Node #2Node # 2 ***_12:12:35*** _ 12:12:35 SlaveSlave MinorMinor NodeNode #3 # 3 ***_12:12:38*** _ 12:12:38 MasterMaster MajorMajor Node #4Node # 4 ***_12:12:39*** _ 12:12:39 SlaveSlave MinorMinor Node #5Node # 5 ***_12:12:40*** _ 12:12:40 SlaveSlave MajorMajor Node #6Node # 6 ***_12:12:42*** _ 12:12:42 SlaveSlave MinorMinor

(5) 단계: 2개의 노드(Node #3, Node #5)로 구성된 그룹에 다시 네트워크 분리 장애가 발생하여 2개의 그룹으로 나누어짐. (2) 단계에서와 마찬가지로 이전에 메이저 그룹에 포함되었던 노드 중에서 그룹 합류 시점이 가장 빠른 Node #3이 속해 있는 그룹이 새로운 메이저 그룹으로 결정됨.(5) step: Network separation failure occurs again in the group consisting of two nodes (Node # 3, Node # 5) and divided into two groups. As in step (2), among the nodes previously included in the major group, the group to which Node # 3 with the fastest group joining time belongs is determined as the new major group.

이와 같이 이력 테이블을 활용함으로써 그룹이 동일한 노드를 포함하는 2개의 그룹으로 분리되는 경우나, 지속적인 장애로 인하여 단지 1개의 노드만을 포함하는 그룹만이 존재하는 경우에도 서비스의 연속성을 보장할 수 있게 된다.By utilizing the history table, it is possible to guarantee the continuity of services even if the group is divided into two groups containing the same node, or even if there is only one node including one node due to the continuous failure. .

이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present invention described above may be implemented in the form of program instructions that may be executed by various computer components, and may be recorded in a computer-readable recording medium. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the computer-readable recording medium may be those specially designed and configured for the present invention, or may be known and available to those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. media), and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the process according to the invention, and vice versa.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.Although the present invention has been described by specific embodiments such as specific components and the like, but the embodiments and the drawings are provided to assist in a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations can be made from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the appended claims, fall within the scope of the spirit of the present invention. I will say.

도 1은 네트워크 분리 장애 상황을 예시적으로 나타내는 도면이다.1 is a diagram illustrating a network separation failure situation by way of example.

도 2는 본 발명의 일 실시예에 따른 분산 환경을 개략적으로 나타내는 도면이다.2 is a view schematically showing a distributed environment according to an embodiment of the present invention.

도 3은 분산 환경 관리 시스템(200)이 제공하는 잠금 기능을 예시적으로 나타내는 도면이다.3 is a diagram exemplarily illustrating a locking function provided by the distributed environment management system 200.

도 4는 네트워크 분리 장애 상황에 쿼럼 알고리즘을 적용한 모습을 나타내는 도면이다.4 is a diagram illustrating a quorum algorithm applied to a network separation failure situation.

도 5는 이력 테이블에 기반한 동적 쿼럼 방식을 적용하여 네트워크 분리 장애를 해결하는 과정을 예시적으로 나타내는 도면이다.5 is a diagram exemplarily illustrating a process of solving a network separation failure by applying a dynamic quorum method based on a history table.

<주요 도면부호에 관한 간단한 설명><Brief description of the major reference numerals>

100: 통신망100: network

200: 분산 환경 관리 시스템200: distributed environment management system

300: 클라이언트300: client

Claims (22)

네트워크 기반의 분산 환경에서 다수의 노드로 구성된 초기 그룹이 분리되어 생성된 적어도 2개의 그룹 중 메이저 그룹을 결정하기 위한 방법으로서,A method for determining a major group of at least two groups in which an initial group consisting of a plurality of nodes is separated from each other in a network-based distributed environment, 제1 그룹의 노드의 개수와 제2 그룹의 노드의 개수를 비교하는 단계,Comparing the number of nodes in the first group with the number of nodes in the second group, 상기 제1 그룹의 노드 및 상기 제2 그룹의 노드의 이력 정보를 획득하는 단계, 및Obtaining history information of the nodes of the first group and the nodes of the second group, and 상기 노드 개수 비교 결과 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹을 결정하는 단계Determining a major group as the first group or the second group using at least one of the node number comparison result and the history information 를 포함하고,Including, 상기 다수의 노드는 각각 특정 데이터를 갖고, The plurality of nodes each have specific data, 상기 이력 정보는 상기 제1 그룹의 각각의 노드 및 상기 제2 그룹의 각각의 노드가 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하며, The history information includes information regarding a point in time at which each node of the first group and each node of the second group joined the initial group, 상기 메이저 그룹에 속하는 마스터 노드는 자신이 갖고 있는 상기 특정 데이터에 대한 읽기 및 쓰기 작업을 수행할 수 있는, 방법.And a master node belonging to the major group may perform read and write operations on the specific data owned by the master node. 삭제delete 제1항에 있어서,The method of claim 1, 상기 메이저 그룹은 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에 합류하였던 시점이 가장 빠른 노드가 포함된 그룹으로 결정되는 방법.The major group is determined to be a group including a node having the earliest point in time of joining the initial group among the first group and the second group. 제1항에 있어서,The method of claim 1, 상기 메이저 그룹은 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에서 마스터 노드였던 노드가 포함된 그룹으로 결정되는 방법.The major group is determined to be a group including a node that was a master node in the initial group of the first group and the second group. 제1항에 있어서,The method of claim 1, 상기 이력 정보를 획득하는 단계 및 상기 메이저 그룹을 결정하는 단계는, 상기 제1 그룹의 노드의 개수와 상기 제2 그룹의 노드의 개수의 차이가 소정의 기준치 이하인 경우에 수행되는 방법.Acquiring the history information and determining the major group are performed when a difference between the number of nodes in the first group and the number of nodes in the second group is equal to or less than a predetermined reference value. 제5항에 있어서,The method of claim 5, 상기 차이가 상기 기준치를 초과하는 경우, 상기 제1 그룹 및 상기 제2 그룹 중 더 많은 노드를 포함하는 그룹으로 메이저 그룹을 결정하는 단계를 더 포함하는 방법.If the difference exceeds the threshold, determining the major group as a group comprising more nodes of the first group and the second group. 제1항에 있어서,The method of claim 1, 상기 제1 그룹 및 상기 제2 그룹은 상기 초기 그룹이 적어도 2회 분리됨에 따라 생성되고,The first group and the second group are created as the initial group is separated at least twice, 상기 제1 그룹 및 상기 제2 그룹이 최근에 공통으로 속하였던 그룹이 메이저 그룹이었던 경우에만 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹이 결정되는 방법.The major group is determined as the first group or the second group only when the group to which the first group and the second group recently belonged is a major group. 삭제delete 제1항에 있어서,The method of claim 1, 상기 특정 데이터는 상기 분산 환경에 있어서의 잠금 정보인 방법.The specific data is lock information in the distributed environment. 제1항에 있어서,The method of claim 1, 상기 이력 정보는 상기 다수의 노드의 각각에 복제된 이력 테이블에 포함된 정보인 방법.The history information is information included in a history table replicated in each of the plurality of nodes. 제10항에 있어서,The method of claim 10, 상기 이력 테이블은 상기 다수의 노드의 각각이 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하는 방법.The history table includes information about when each of the plurality of nodes joined the initial group. 제1항, 제3항 내지 제7항, 제9항 내지 제11항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium for recording a computer program for executing the method according to any one of claims 1, 3 to 7, and 9 to 11. 네트워크 기반의 분산 환경에서 다수의 노드로 구성된 초기 그룹을 갖는 시스템에 있어서, In a system having an initial group consisting of a plurality of nodes in a network-based distributed environment, 상기 다수의 노드는 각각 특정 데이터를 갖고, The plurality of nodes each have specific data, 상기 초기 그룹이 분리되어 적어도 2개의 그룹이 생성된 경우, When the initial group is separated to generate at least two groups, 상기 다수의 노드 중 적어도 하나는, 제1 그룹의 노드의 개수와 제2그룹의 노드의 개수를 비교하고, 상기 제1 그룹의 노드 및 상기 제2 그룹의 노드의 이력 정보를 획득하며, 상기 노드 개수 비교 결과 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹을 결정하고, At least one of the plurality of nodes compares the number of nodes of the first group with the number of nodes of the second group, obtains historical information of the nodes of the first group and the nodes of the second group, and the node. A major group is determined as the first group or the second group using at least one of a number comparison result and the history information. 여기서 상기 이력 정보는 상기 제1 그룹의 각각의 노드 및 상기 제2 그룹의 각각의 노드가 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하며, Wherein the history information includes information regarding a time point at which each node of the first group and each node of the second group joined the initial group, 상기 메이저 그룹에 속하는 마스터 노드는 자신이 갖고 있는 상기 특정 데이터에 대한 읽기 및 쓰기 작업을 수행할 수 있는, 시스템.And a master node belonging to the major group can read and write the specific data owned by the master node. 삭제delete 제13항에 있어서,The method of claim 13, 상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에 합류하였던 시점이 가장 빠른 노드가 포함된 그룹을 상기 메이저 그룹으로 결정하는, 시스템.At least one of the plurality of nodes determines the group including the node having the earliest time of joining the initial group of the first group and the second group as the major group. 제13항에 있어서,The method of claim 13, 상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에서 마스터 노드였던 노드가 포함된 그룹을 상기 메이저 그룹으로 결정하는, 시스템.At least one of the plurality of nodes determines a group including a node that was a master node in the initial group of the first group and the second group as the major group. 제13항에 있어서,The method of claim 13, 상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹의 노드의 개수와 상기 제2 그룹의 노드의 개수의 차이가 소정의 기준치 이하인 경우에 상기 이력 정보를 획득하고 상기 메이저 그룹을 결정하는, 시스템.At least one of the plurality of nodes obtains the history information and determines the major group when a difference between the number of nodes in the first group and the number of nodes in the second group is equal to or less than a predetermined reference value. 제17항에 있어서,The method of claim 17, 상기 차이가 상기 기준치를 초과하는 경우, 상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹 및 상기 제2 그룹 중 더 많은 노드를 포함하는 그룹으로 메이저 그룹을 결정하는, 시스템.And when the difference exceeds the threshold, at least one of the plurality of nodes determines a major group as a group comprising more nodes of the first group and the second group. 제13항에 있어서,The method of claim 13, 상기 제1 그룹 및 상기 제2 그룹은 상기 초기 그룹이 적어도 2회 분리됨에 따라 생성되고,The first group and the second group are created as the initial group is separated at least twice, 상기 제1 그룹 및 상기 제2 그룹이 최근에 공통으로 속하였던 그룹이 메이저 그룹이었던 경우에만 상기 다수의 노드 중 적어도 하나에 의해 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹이 결정되는, 시스템.The major group is determined by the at least one of the plurality of nodes as the first group or the second group only if the group to which the first group and the second group recently belonged was a major group. 제13항에 있어서,The method of claim 13, 상기 특정 데이터는 상기 분산 환경에 있어서의 잠금 정보인, 시스템.The specific data is lock information in the distributed environment. 제13항에 있어서,The method of claim 13, 상기 이력 정보는 상기 다수의 노드의 각각에 복제된 이력 테이블에 포함된 정보인, 시스템.The history information is information included in a history table replicated in each of the plurality of nodes. 제21항에 있어서,The method of claim 21, 상기 이력 테이블은 상기 다수의 노드의 각각이 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하는, 시스템.The history table includes information about when each of the plurality of nodes joined the initial group.
KR1020090011636A 2009-02-12 2009-02-12 Method, system, and computer-readable recording medium for determining major group under split-brain network problem KR101042908B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090011636A KR101042908B1 (en) 2009-02-12 2009-02-12 Method, system, and computer-readable recording medium for determining major group under split-brain network problem
JP2010021344A JP5695324B2 (en) 2009-02-12 2010-02-02 Method, system, and computer readable recording medium for determining a major group in a split brain situation
US12/702,663 US8412790B2 (en) 2009-02-12 2010-02-09 Method, system and computer readable recording medium for determining major group under split-brain syndrome

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090011636A KR101042908B1 (en) 2009-02-12 2009-02-12 Method, system, and computer-readable recording medium for determining major group under split-brain network problem

Publications (2)

Publication Number Publication Date
KR20100092331A KR20100092331A (en) 2010-08-20
KR101042908B1 true KR101042908B1 (en) 2011-06-21

Family

ID=42541281

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090011636A KR101042908B1 (en) 2009-02-12 2009-02-12 Method, system, and computer-readable recording medium for determining major group under split-brain network problem

Country Status (3)

Country Link
US (1) US8412790B2 (en)
JP (1) JP5695324B2 (en)
KR (1) KR101042908B1 (en)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101882808B1 (en) * 2011-09-30 2018-07-30 삼성전자 주식회사 Multi-core processor based on heterogeneous network
SG11201510304TA (en) 2013-06-18 2016-01-28 Ciambella Ltd Method and apparatus for code virtualization and remote process call generation
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US9672115B2 (en) * 2013-08-26 2017-06-06 Vmware, Inc. Partition tolerance in cluster membership management
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US9619122B2 (en) 2014-01-10 2017-04-11 Ciambella Ltd. Method and apparatus for automatic device program generation
KR101775089B1 (en) 2014-06-24 2017-09-19 구글 인코포레이티드 Mesh network commissioning
US9723064B1 (en) 2014-09-02 2017-08-01 Amazon Technologies, Inc. Hybrid quorum policies for durable consensus in distributed systems
CN105450717A (en) * 2014-09-29 2016-03-30 中兴通讯股份有限公司 Method and device for processing brain split in cluster
WO2016106682A1 (en) * 2014-12-31 2016-07-07 华为技术有限公司 Post-cluster brain split quorum processing method and quorum storage device and system
WO2016161266A1 (en) 2015-04-02 2016-10-06 Google Inc. Efficient network stack for wireless application protocols
SG11201708743UA (en) 2015-05-08 2017-11-29 Ciambella Ltd Method and apparatus for automatic software development for a group of controller-based devices
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
US10049011B2 (en) * 2016-05-03 2018-08-14 International Business Machines Corporation Continuing operation of a quorum based system after failures
CN106027634B (en) * 2016-05-16 2019-06-04 白杨 Message port Exchange Service system
CN107919977B (en) * 2016-10-11 2021-09-03 阿里巴巴集团控股有限公司 Online capacity expansion and online capacity reduction method and device based on Paxos protocol
US20180144279A1 (en) * 2016-11-22 2018-05-24 Sap Se Network separator for transportation resource planning
CN110419024A (en) 2017-03-14 2019-11-05 西安姆贝拉有限公司 Method and apparatus for automatically generating and merging code in exploitation environment
JP6984437B2 (en) * 2018-01-24 2021-12-22 富士通株式会社 Processing takeover method, cluster construction program and cluster construction device
US11544228B2 (en) * 2020-05-07 2023-01-03 Hewlett Packard Enterprise Development Lp Assignment of quora values to nodes based on importance of the nodes
CN112003916B (en) 2020-08-14 2022-05-13 苏州浪潮智能科技有限公司 Cluster arbitration method, system, equipment and medium based on heterogeneous storage
CN113810216A (en) * 2020-12-31 2021-12-17 京东科技控股股份有限公司 Cluster fault switching method and device and electronic equipment
WO2023148977A1 (en) * 2022-02-07 2023-08-10 株式会社Pfu Node device, cluster management method, program, and cluster system
WO2023148976A1 (en) * 2022-02-07 2023-08-10 株式会社Pfu Node device, cluster reconfiguration method, program, and cluster system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662219B1 (en) * 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US6437804B1 (en) * 1997-10-23 2002-08-20 Aprisma Management Technologies, Inc Method for automatic partitioning of node-weighted, edge-constrained graphs
JP3134864B2 (en) * 1997-12-09 2001-02-13 日本電気株式会社 Recording medium recording recovery system and recovery program for system combination device
US6363495B1 (en) * 1999-01-19 2002-03-26 International Business Machines Corporation Method and apparatus for partition resolution in clustered computer systems
US6542929B1 (en) * 1999-08-31 2003-04-01 International Business Machines Corporation Relaxed quorum determination for a quorum based operation
US7792977B1 (en) * 2001-02-28 2010-09-07 Oracle International Corporation Method for fencing shared resources from cluster nodes
US6950855B2 (en) * 2002-01-18 2005-09-27 International Business Machines Corporation Master node selection in clustered node configurations
KR100553920B1 (en) * 2003-02-13 2006-02-24 인터내셔널 비지네스 머신즈 코포레이션 Method for operating a computer cluster
JP3808874B2 (en) * 2004-03-12 2006-08-16 東芝ソリューション株式会社 Distributed system and multiplexing control method
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology
US7739677B1 (en) * 2005-05-27 2010-06-15 Symantec Operating Corporation System and method to prevent data corruption due to split brain in shared data clusters
JP4958034B2 (en) * 2006-04-28 2012-06-20 克秀 浅沼 Grouping system, grouping management server, and grouping program
JP4505763B2 (en) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Managing node clusters
US8001413B2 (en) * 2008-05-05 2011-08-16 Microsoft Corporation Managing cluster split-brain in datacenter service site failover
US8024432B1 (en) * 2008-06-27 2011-09-20 Symantec Corporation Method and apparatus for partitioning a computer cluster through coordination point devices

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6662219B1 (en) * 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource

Also Published As

Publication number Publication date
KR20100092331A (en) 2010-08-20
US8412790B2 (en) 2013-04-02
JP5695324B2 (en) 2015-04-01
JP2010186472A (en) 2010-08-26
US20100205273A1 (en) 2010-08-12

Similar Documents

Publication Publication Date Title
KR101042908B1 (en) Method, system, and computer-readable recording medium for determining major group under split-brain network problem
US11360854B2 (en) Storage cluster configuration change method, storage cluster, and computer system
US10360113B2 (en) Transaction recovery in a transaction processing computer system employing multiple transaction managers
US7143123B2 (en) Well-known transactions in data replication
US7870230B2 (en) Policy-based cluster quorum determination
US10503699B2 (en) Metadata synchronization in a distrubuted database
US9201742B2 (en) Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
US7496646B2 (en) System and method for management of a storage area network
US8301600B1 (en) Failover recovery in a distributed data store
US8954391B2 (en) System and method for supporting transient partition consistency in a distributed data grid
US7953890B1 (en) System and method for switching to a new coordinator resource
WO2016070375A1 (en) Distributed storage replication system and method
EP1117210A2 (en) Method to dynamically change cluster or distributed system configuration
JP7389793B2 (en) Methods, devices, and systems for real-time checking of data consistency in distributed heterogeneous storage systems
KR101296778B1 (en) Method of eventual transaction processing on nosql database
US11003550B2 (en) Methods and systems of operating a database management system DBMS in a strong consistency mode
Gupta et al. Efficient and non-blocking agreement protocols
CN110830582B (en) Cluster owner selection method and device based on server
Diack et al. CAP theorem between claims and misunderstandings: what is to be sacrificed
US11960478B2 (en) Database system with transactional commit protocol based on safe conjunction of majorities
US10970177B2 (en) Methods and systems of managing consistency and availability tradeoffs in a real-time operational DBMS
WO2003054711A1 (en) A system and method for management of a storage area network
Pankowski Consistency and availability of Data in replicated NoSQL databases
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
Zhu Non-blocking one-phase commit made possible for distributed transactions over replicated data

Legal Events

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

Payment date: 20160329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170328

Year of fee payment: 7