KR101042908B1 - 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체 - Google Patents

네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체 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
English (en)
Other versions
KR20100092331A (ko
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/ko
Priority to JP2010021344A priority patent/JP5695324B2/ja
Priority to US12/702,663 priority patent/US8412790B2/en
Publication of KR20100092331A publication Critical patent/KR20100092331A/ko
Application granted granted Critical
Publication of KR101042908B1 publication Critical patent/KR101042908B1/ko

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 그룹으로 메이저 그룹을 결정하는 단계를 포함하는 방법이 제공된다.
분산 컴퓨팅 환경, 네트워크 분리 장애, 쿼럼

Description

네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한 방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체{METHOD, SYSTEM, AND COMPUTER-READABLE RECORDING MEDIUM FOR DETERMINING MAJOR GROUP UNDER SPLIT-BRAIN NETWORK PROBLEM}
본 발명은 네트워크 기반의 분산 컴퓨팅 환경(또는, 분산 환경)에서 발생하는 네트워크 분리(Split-Brain) 장애 상황에서 메이저 그룹을 결정하기 위한 방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다. 보다 상세하게는, 본 발명은, 네트워크 분리 장애 상황에서 노드들의 이력 정보를 참조하여 메이저 그룹을 결정하기 위한 방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
현재의 IT 환경에서는 다양한 네트워크 기반 분산 시스템을 효율적으로 관리하고 통제할 수 있는 방법이 필요하다. 분산 환경에서는 다수의 컴퓨터를 물리적으로 또는 논리적으로 연결하고, 이와 같이 연결된 다수의 컴퓨터의 처리 능력을 이용하여 거대한 계산 문제를 해결하는 것이 일반적이다. 이때, 분산 환경에 참여하는 컴퓨터 또는 프로세스가 수십 개 수준이라면 분산 환경을 관리하는 운영자에 의하여 분산 환경이 적절히 유지될 수 있겠지만, 분산 환경이 수천 개 혹은 수만 개의 컴퓨터 또는 프로세스를 포함하는 규모인 경우에는, 이를 총체적으로 동기화해 주고 조율해 줄 수 있는 솔루션인 관리 시스템이 필수적으로 요구된다고 할 것이다.
관리 시스템에 있어서 가장 중요한 조건은 고장 방지성(fault tolerance)의 보장이라고 할 수 있는데, 특히, 클러스터를 구성하는 각각의 노드 간의 링크의 불안정으로 인해 네트워크가 비정상적으로 분리되는 장애 상황에서의 대처가 가장 중요한 것 중 하나이다.
도 1은 네트워크 분리 장애 상황을 예시적으로 나타내는 도면이다. 도 1에서, 분산 환경 관리 시스템은 5개의 서버로 구성되는 클러스터를 포함하고, 클러스터를 구성하는 각각의 서버는 실시간으로 데이터를 복제하여 동일한 상태 정보를 유지하고 있는 것으로 가정하여 도시되었다.
도 1의 상태에서 네트워크 분리 장애가 발생하여 클러스터가 2개의 서버 그룹으로 나누어지는 경우, 그룹 #1의 서버들은 그룹 #2의 모든 서버가 다운(down)되었다고 (즉, 불능 상태에 빠졌다고) 생각할 것이고, 동시에 그룹 #2의 서버들도 그룹 #1의 서버들이 다운되었다고 생각할 것이다. 따라서, 네트워크 상의 상기 2개의 그룹이 스스로를 메이저 그룹이라고 판단하게 되고, 클라이언트들은 상기 2개의 스스로 판단하기에 주된 그룹에 각각 접속하여 작업을 수행하게 된다. 예를 들면, 그룹 #1에 접속한 클라이언트 그룹 #1은 평소처럼 읽기 또는 쓰기 작업을 할 것이고, 그룹 #2에 접속한 클라이언트 그룹 #2 역시 읽기 또는 쓰기 작업을 하게 된다.
그러나, 상기와 같은 상황에서는, 이후 네트워크 분리 장애가 복구되어 나누 어진 2개의 그룹이 다시 하나로 합쳐져야 하는 경우, 어떤 그룹의 데이터가 올바른 데이터이고 어떤 그룹의 데이터가 삭제되어야 하는지 알 수 있는 방법이 없었다. 즉, 종래의 기술에 따르면, 네트워크 분리 장애 상황에서 서비스의 연속성이나 데이터의 정합성에 있어서 문제가 발생하게 된다는 단점이 있었다.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 분산 컴퓨팅에 참여하는 다수의 컴퓨터를 총체적으로 동기화해 주고 조율해 줄 수 있는 솔루션을 제공하는 것을 다른 목적으로 한다.
또한, 본 발명은 네트워크 분리 장애가 발생하는 상황에서도 서비스의 연속성과 데이터의 정합성을 최대한으로 보장하는 것을 또 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 네트워크 기반의 분산 환경에서 다수의 노드로 구성된 초기 그룹이 분리되어 생성된 적어도 2개의 그룹 중 메이저 그룹을 결정하기 위한 방법으로서, 제1 그룹의 노드의 개수와 제2 그룹의 노드의 개수를 비교하는 단계, 상기 제1 그룹의 노드 및 상기 제2 그룹의 노드의 이력 정보를 획득하는 단계, 및 상기 노드 개수 비교 결과 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹을 결정하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 다수의 노드로 구성되는 분산 환경 관리 시스템으로서, 상기 다수의 노드의 이력 정보를 포함하고, 상기 다수의 노드 중 적어도 하나는, 초기 그룹이 적어도 2개의 그룹으로 분리되는 경우, 상기 분리된 각 그룹의 노드의 개수 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 적어도 2개 의 그룹 중 하나로 메이저 그룹을 결정하는 분산 환경 관리 시스템이 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 시스템, 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 분산 컴퓨팅에 참여하는 다수의 컴퓨터를 총체적으로 동기화해 주고 조율해 줄 수 있는 솔루션이 제공된다.
본 발명에 의하면, 네트워크 분리 장애가 발생하는 상황에서도 서비스의 연속성과 데이터의 정합성을 최대한으로 보장할 수 있게 된다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조, 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
[본 발명의 바람직한 실시예]
전체 시스템의 구성
도 2는 본 발명의 일 실시예에 따른 분산 환경을 개략적으로 나타내는 도면이다.
도 2에 도시되어 있는 바와 같이, 본 발명의 일 실시예에 따른 전체 시스템은, 통신망(100), 분산 환경에서 잠금(locking) 서비스를 제공하는 분산 환경 관리 시스템(200), 및 분산 환경 관리 시스템(200)이 제공하는 서비스를 이용하는 다수의 클라이언트(300)로 구성될 수 있다.
먼저, 통신망(100)은 유선 및 무선과 같은 그 통신 양태를 가리지 않고 구성될 수 있으며, 근거리 통신망(LAN; Local Area Network), 도시권 통신망(MAN; Metropolitan Area Network), 광역 통신망(WAN; Wide Area Network) 등 다양한 통신망으로 구성될 수 있다.
본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 여러 개의 서버(이하에서는, 주로 "노드"라고 통칭함)로 구성될 수 있고, 다양한 시스템 자원을 공유하는 다수의 클라이언트(300) 사이에서 데이터의 정합성이 보장될 수 있도록 하기 위하여 클라이언트(300)에게 잠금 서비스를 제공할 수 있다.
또한, 분산 환경 관리 시스템(200)은 클라이언트(300)가 분산 환경 관리 시스템(200) 내의 특정 노드와 통신할 수 있도록 세션을 생성/유지/해제하는 기능을 수행하고, 클라이언트(300)와 통신하는 특정 노드에 장애가 발생하는 경우, 클라이언트(300)가 대기 중인 다른 노드와 통신할 수 있도록 스위칭 서비스를 제공할 수 있다.
또한, 분산 환경 관리 시스템(200)은 다수의 노드 간의 동기화를 수행하고 여러 이벤트를 처리하는 기능을 수행할 수 있다.
본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 클러스터 매니저(cluster manager), 이벤트 매니저(event manager), 및 (경우에 따라) 클라이언트 라이브러리(client library)(미도시됨)를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 클러스터 매니저는 분산 환경 관리 시스템(200)의 노드들의 집합인 클러스터 내의 전체 노드들을 관리하는 기능을 수행할 수 있다. 보다 구체적으로는, 클러스터 매니저는 클러스터 내의 노드들을 관리하는 역할과 클라이언트 라이브러리와 통신하면서 잠금 동작을 처리하는 기능을 수행할 수 있다. 또한, 클라이언트(300)에서 특정 경로 또는 데이터에 대해서 잠금 동작을 시도하면 클러스터 매니저는 요청한 클라이언트(300)가 해당 잠금 동작을 수행할 수 있는 권한을 갖고 있는지 여부를 확인하고 즉각적으로(소위, non-blocking 모드) 잠금 획득 여부를 True나 False의 값으로 반환할 수 있다. 또한, 클러스터 매니저는 클라이언트(300)의 잠금 동작 처리나 잠금 동작에 수반되는 이벤트 처리 에 관한 기능을 수행할 수 있는데, 예를 들면, 잠금의 유형에 따라 해당 경로 또는 데이터에 잠금이 걸렸다는 것을 다른 클라이언트(300)에게 알리기 위한 이벤트를 생성하고, 이를 이벤트 매니저에 전달하는 기능을 수행할 수 있다.
본 발명의 일 실시예에 따르면, 클라이언트 라이브러리와의 통신은 오직 마스터 클러스터 매니저를 통해서 이루어질 수 있으며, 다른 보조 클러스터 매니저들은 마스터 클러스터 매니저의 상태 정보의 복제본을 실시간으로 유지할 수 있다. 마스터 클러스터 매니저의 장애 시에는 보조 클러스터 매니저들 중에서 새로운 마스터 클러스터 매니저가 선출될 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 이벤트 매니저는, 클러스터 매니저와 마찬가지로, 하나의 마스터 이벤트 매니저와 여러 보조 이벤트 매니저로 구성되고, 이벤트를 통지 받을 클라이언트(300)의 리스트를 관리하며, 이벤트가 발생하는 경우, 해당 클라이언트(300)에게 이벤트에 대한 통지를 전달하는 기능을 수행할 수 있다. 보다 구체적으로는, 이벤트 매니저는 크게 잠금 이벤트(lock event)와 범용 이벤트(generic event)와 같은 두 가지 이벤트를 수행할 수 있다. 상기 이벤트들이 처리되는 과정을 보다 상세히 살펴보면, 우선, 잠금 이벤트의 경우, 마스터 클러스터 매니저가 잠금 이벤트에 관한 정보를 마스터 이벤트 매니저에게 전달하고, 이벤트 매니저는 등록된 여러 클라이언트(300)에게 멀티 캐스트 방식으로 이벤트를 전송하는 방식으로 처리될 수 있다. 다음으로, 범용 이벤트의 경우, 잠금 동작과 상관 없이, 클라이언트(300)가 일반적인 Publish-Subscribe 방식으로 이벤트 매니저에게 이벤트의 생성을 요청하거나 등록하고 이벤트 매니저로부터 이벤트를 전달 받는 방식으로 처리될 수 있다.
또한, 본 발명의 일 실시예에 따르면, 클라이언트 라이브러리는 클라이언트(300)가 분산 환경 관리 시스템(200)의 잠금 서비스 및 이벤트 서비스를 쉽게 이용할 수 있도록 라이브러리의 형태로 제공되는 프로그램으로서, 그 적어도 일부가 분산 환경 관리 시스템(200) 내에 포함될 수 있다. 물론, 필요에 따라, 클라이언트 라이브러리의 적어도 일부가 클라이언트(300) 내에 포함되는 경우도 적지 않다.
본 발명의 일 실시예에 따르면, 클라이언트(300)는 클라이언트 라이브러리가 제공하는 기능을 이용하여 분산 환경 관리 시스템(200)과 통신하게 된다. 보다 구체적으로는, 클라이언트 라이브러리는 원격으로 서비스 서버(200)를 이용할 수 있도록 클라이언트(300)에게 제공될 수 있는 라이브러리의 집합이다. 본 발명의 일 실시예에 따르면, 사용자는 이 라이브러리를 자신의 프로그램 내에 플러그인(plug-in)처럼 삽입해서 사용할 수 있으며, 초기화의 경우에는 프록시(proxy) 객체를 생성하여 클러스터에 접속해서 RPC 형태로 잠금 작업을 수행할 수도 있다. 클라이언트 라이브러리는 원격의 클러스터 내에서 발생하는 마스터 노드 선출, Fail-Over, 멤버 변경 등의 다양한 상황들을 사용자에게 추상화시킴으로써, 사용자는 단지 안전하고 추상화된 원격 서비스를 로컬 서비스를 사용하는 경우와 마찬가지로 사용할 수 있도록 도와주는 기능을 수행한다.
잠금 서비스의 제공
분산 환경에서는, 다수의 프로세스 또는 쓰레드(thread)가 하나의 작업을 협동적으로 수행하게 되는 경우가 많은데, 프로세스 또는 쓰레드에 포함된 다수의 트 랜잭션(transaction)이 하나의 데이터에 대하여 동시에 읽기 또는 쓰기 작업을 수행하는 경우 잘못된 결과가 도출될 수 있으므로, 다수의 트랜잭션이 공통으로 접근할 수 있는 데이터에 대한 보호가 필요하다. 이는 분산 환경에 포함된 각각의 컴퓨터가 서로 데이터를 공유하는 경우에도 마찬가지로 적용될 수 있다. 따라서, 분산 환경에서도 하나의 트랜잭션에 의해 사용되는 데이터에 다른 트랜잭션이 접근하지 못하도록 하는 잠금 기능이 필요할 수 있다.
따라서, 이하에서는, 본 발명의 일 실시예에 따라, 분산 환경 관리 시스템(200)이 클라이언트(300)에 제공하는 잠금 서비스에 대하여 상세히 기술하기로 한다.
도 3은 분산 환경 관리 시스템(200)이 제공하는 잠금 기능을 예시적으로 나타내는 도면이다. 한편, 도 3은 하나의 서비스가 3개의 클라이언트(300)에서 동시에 실행되는 상황을 가정하여 도시되었다.
도 3을 참조하면, 클라이언트 1(310), 클라이언트 2(320), 및 클라이언트 3(330)이 공유 데이터에 대한 읽기 또는 쓰기 작업을 수행하고자 하는 경우, 본 발명의 일 실시예에 따른 분산 환경 관리 시스템(200)의 마스터 클러스터 매니저에게 해당 데이터에 대한 잠금을 요청할 수 있음을 알 수 있다. 도 3의 클라이언트 1(310)이 잠금을 요청할 때, 클라이언트 2(320) 및 클라이언트 3(330)은 해당 데이터에 대한 잠금을 요청하지 않았다면, 클라이언트1(310)은 별 무리 없이 잠금을 획득할 수 있을 것이다. 그러나, 도 3에 도시된 바와 같이, 적어도 2개 이상의 클라이언트가 경쟁적으로 잠금을 요청하였다면, 그 중 하나의 클라이언트에게만 잠금이 부여될 수 있다.
각각의 클라이언트(310, 320, 330)가 경쟁적으로 잠금을 요청하는 경우에 대비하기 위한 하나의 방법으로서, 각각의 클라이언트(310, 320, 330)가 잠금을 획득할 때까지 분산 환경 관리 시스템(200)에 지속적으로 잠금을 요청하는 것을 상정할 수 있는데, 이는 아래와 같은 프로그램 코드를 이용하여 실현될 수 있다.
/** Lock을 얻을 때까지 while loop에서 대기 **/
while(!pleiades.getLock(service_A.LockMode.LOCK_EXCLUSIVE)) {
try {
/** Lock을 얻지 못한 상태이면 1초 동안 기다림 **/
Thread.sleep(1000);
} catch(InterruptedExeption ie) {
return;
}
}
특정 클라이언트(300)에게 잠금이 부여되면, 마스터 클러스터 매니저는 해당 클라이언트(300)의 잠금 정보를 데이터베이스 또는 메모리 등과 같은 저장 장치에 기록할 수 있다.
또한, 앞서 설명한 바와 같이, 마스터 클러스터 매니저에 의해 갱신된 잠금 정보는 주기적으로 또는 비주기적으로 보조 클러스터 매니저에 복제되므로, 마스터 클러스터 매니저에 기록된 정보와 보조 클러스터 매니저에 기록된 정보 간의 정합성이 유지될 수 있다.
본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)으로부터 획득된 잠금은 해당 잠금을 요청하였던 프로세스 또는 쓰레드에게만 사용이 허가될 수 있다. 또한, 본 발명의 다른 실시예에 따르면, 분산 환경 관리 시스템(200)으로부터 획득된 잠금은 해당 잠금을 획득한 클라이언트(300) 내의 모든 프로세스 또는 쓰레 드에게 사용이 허가될 수도 있다.
네트워크 분리 장애 상황에서의 마스터 노드의 선출
앞서 언급한 바와 같이, 분산 컴퓨팅의 조건으로서 고장 방지성 내지는 고장 감내성의 보장이 필수적이라고 할 것인데, 본 발명의 일 실시예에 따르면, 분산 환경에 참여하는 클라이언트(300)의 잠금 정보 및 클라이언트(300)에 대한 이벤트 통지 처리는 분산 환경 관리 시스템(200)에 포함된 클러스터 매니저 및 이벤트 매니저에 의해 관리되므로, 클러스터 매니저 또는 이벤트 매니저에 장애가 발생하는 경우, 분산 환경에 참여한 모든 클라이언트(300)의 작업이 정상적으로 수행될 수 없게 되는 문제점이 발생할 수 있다.
따라서, 본 발명의 분산 환경 관리 시스템(200)은 다수의 클러스터 매니저를 포함하고, 그 중 하나를 마스터 클러스터 매니저로 설정하여 클라이언트와의 직접적인 통신을 수행하도록 하는 한편, 그 외의 보조 클러스터 매니저들은 마스터 클러스터 매니저의 잠금 정보를 복제하여 저장함으로써 마스터 클러스터 매니저에 장애가 발생하더라도 보조 클러스터 매니저 중 하나를 이용하여 서비스의 연속성이나 데이터의 정합성이 보장되도록 할 수 있다. 상기와 같은 구성은 이벤트 매니저에도 동일하게 적용될 수 있다(이하에서는, 마스터 클러스터 매니저와 이벤트 클러스터 매니저를 포괄하는 의미로 "마스터 노드"라는 용어를 사용하기로 한다).
그러나, 상기와 같은 구성만으로는, 네트워크 분리 장애에 적절하게 대처할 수 없는데, 이는, 앞서 기술한 바와 같이, 네트워크 분리 장애 상황에서 나누어진 각각의 그룹은 다른 그룹의 노드들이 모두 다운된 것으로 판단하게 되므로, 각각의 그룹마다 마스터 노드가 생성되게 되고, 따라서, 추후 장애가 복구된 후, 각각의 그룹에 속했던 노드들 간의 데이터의 정합성에 문제가 발생할 수 있기 때문이다.
따라서, 이하에서는, 본 발명의 일 실시예에 따라, 네트워크 분리 장애 상황에서 마스터 노드를 선출하는 방법에 대하여 보다 구체적으로 살펴보기로 한다.
1. 쿼럼(quorum) 기반의 마스터 노드 선출
본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 네트워크 분리 장애가 감지되는 경우 쿼럼 알고리즘을 적용하여 마스터 노드를 선출하게 된다. 이하에서 도 4를 참조하여 보다 구체적으로 설명하기로 한다.
도 4는 네트워크 분리 장애 상황에 쿼럼 알고리즘을 적용한 모습을 나타내는 도면이다.
도 4를 참조하면, 총 7개의 노드로 구성된 클러스터에 네트워크 분리 장애가 발생하여, 4개의 노드를 포함하는 그룹 A와 3개의 노드를 포함하는 그룹 B로 나누어진 것을 알 수 있다.
상기와 같은 상황에서 그룹 A는 전체 노드의 개수(즉, 7개)의 과반수에 해당되는 노드를 확보하고 있으므로 쿼럼을 만족하게 되어 메이저 그룹으로 분류될 수 있다. 이에 따라 메이저 그룹에 포함된 노드 중 하나가 마스터 노드로 지정되고, 해당 마스터 노드를 통하여 클라이언트(300)와의 통신이 이루어질 수 있다. 그리고, 마스터 노드는 데이터에 대한 읽기 또는 쓰기 작업을 허용 받을 수 있다.
반면, 그룹 B는 전체 노드 개수의 과반수에 해당되는 노드를 확보하고 있지 못하므로 마이너 그룹으로 분류된다. 이러한 마이너 그룹으로부터는 마스터 노드 가 선출되지 않을 것이다.
네트워크 분리 장애 상황에서 각각의 그룹이 자신이 메이저 그룹인지 마이너 그룹인지를 판단하기 위해서는, 네트워크 분리 장애가 발생하기 이전의 초기 그룹에 얼마나 많은 노드가 존재하였는지에 관한 정보가 네트워크 분리 장애가 발생한 이후의 각각의 그룹의 적어도 하나의 노드에 저장되어 있어야 하는데, 본 발명의 일 실시예에 따르면, 마스터 노드에 저장된 정보는 이에 대응되어 있는 보조 노드에 복제되므로, 상기와 같은 정보를 마스터 노드에 저장함으로써 위와 같은 요구가 달성될 것이다.
다음으로, 도 4와 같이 네트워크 분리 장애가 발생한 상황에서, 다시 한번 네트워크 분리 장애가 발생하여, 그룹 A가 3개의 노드를 포함하는 그룹 A1과 1개의 노드를 포함하는 그룹 A2로 분리되고, 그룹 B가 2개의 노드를 포함하는 그룹 B1과 1개의 노드를 포함하는 그룹 B2로 분리된 상황을 가정하여 보면, 어떠한 그룹도 초기 그룹에 속했던 노드의 수의 과반에 해당되는 4개 이상의 노드를 포함하지 않으므로, 쿼럼을 만족하는 그룹을 특정할 수 없는 문제가 발생할 수 있다.
이와 같은 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따르면, 쿼럼은 그룹을 구성하는 노드 수의 변화에 따라 동적으로 재설정될 수 있다. 보다 구체적으로는, 동적 쿼럼을 구현하기 위해서는, 우선 그룹의 재설정 시간을 설정해야 한다. 본 발명의 일 실시예에 따르면, 그룹의 재설정 시간은 30초로 설정될 수 있는데, 이 경우, 그룹 내의 노드의 수가 30초 동안 변함이 없다면, 이 시점을 기준으로 그룹이 재설정된다. 그룹이 재설정됨에 따라, 쿼럼의 산정의 기준이 되는 그 룹 내의 노드 수가 초기화되게 되고, 따라서, 쿼럼도 변경될 수 있게 된다.
상기 언급한 예의 경우, 최초의 네트워크 분리 장애가 발생하기 이전에는 그룹에 포함된 노드의 총수가 7이므로, 쿼럼은 4로 설정된다. 그 후, 첫 번째 네트워크 분리 장애가 발생하게 되면, 그룹 A의 경우, 4개의 노드가 포함되므로 쿼럼이 3으로 재설정되고, 그룹 B의 경우, 3개의 노드가 포함되므로 쿼럼이 2로 재설정된다. 이에 따라, 두 번째 네트워크 분리 장애가 발생하여도 그룹 A1 및 그룹 B1이 쿼럼을 만족하게 될 수 있다.
그러나, 그룹 B1의 경우 첫 번째 네트워크 분리 장애가 발생한 시점에 마이너 그룹으로 분류되었으므로, 비록 두 번째 네트워크 분리 장애가 발생하여 과반수의 노드를 확보하였다고 하더라도 메이저 그룹으로 분류될 수 없고, 그룹 A1만이 메이저 그룹으로 분류될 수 있다. 따라서, 이를 위하여 마스터 노드는 네트워크 분리 장애가 발생하기 이전의 그룹에 얼마나 많은 노드가 존재하였는지에 관한 정보와 더불어, 네트워크 분리 장애가 발생하기 이전에 해당 그룹이 메이저 그룹이었는지 마이너 그룹이었는지에 관한 정보도 함께 저장할 수 있다.
이후, 네트워크 분리 장애가 복구된 경우의 처리를 도 4를 참조하여 설명하면, 마이너 그룹이었던 그룹 B에 포함된 노드들은 메이저 그룹인 그룹 A에 포함된 노드로부터 최신 상태 정보를 가져와서 업데이트를 수행하고, 이에 따라, 총 7개의 노드가 다시 하나의 그룹으로서 기능할 수 있을 것이다.
상기와 같은 방법으로, 네트워크 분리 장애 상황에서도 데이터 정합성이 보장될 수 있게 된다.
그러나, 상기와 같이 쿼럼 알고리즘만을 채택하게 되면, 몇몇 경우에 있어서, 서비스의 연속성이나 데이터의 정합성을 보장할 수 없게 되는 단점이 있다. 예를 들면, 총 6개의 노드로 구성된 그룹이 각각 3개의 노드를 포함하는 2개의 그룹으로 분리되는 경우, 어떠한 그룹도 과반수의 노드를 포함하지 않으므로 서비스가 지속될 수 없다. 또한, 지속적인 네트워크 분리 장애로 인하여, 각각 1개의 노드를 포함하는 그룹이 생성된 경우에도 마찬가지로 서비스가 지속될 수 없다. 즉, 정적인 방식으로 쿼럼을 적용할 때에는, 특히, 서비스의 연속성의 측면에서 다음과 같은 제약이 따른다.
- 초기 그룹의 총 노드 개수: 2N+1
- 쿼럼의 최소 개수: N+1
- 쓰기 작업을 할 수 있는 최소한의 노드 개수 = 쿼럼의 개수 = N+1
(N 은 정수)
2. 이력 기반의 마스터 노드 선출
본 발명의 일 실시예에 따르면, 분산 환경 관리 시스템(200)은 이력 테이블을 이용하여 데이터의 정합성을 보장하면서도 서비스의 연속성이 더욱 고도화되도록 할 수 있다.
본 발명의 일 실시예에 따르면, 이력 테이블은 최초로 그룹이 구성되는 시점에서의 노드 ID 정보, 그룹 합류 시점 정보, 노드 상태 정보, 및 그룹 상태 정보를 포함할 수 있다. 아래의 표는 이력 테이블에 저장되는 데이터를 예시적으로 나타내고 있다.
아이디 합류 시점 노드 상태 그룹 상태
Node #1 2008/07/23_12:12:33 Master Major
Node #2 ***_12:12:35 Slave Minor
Node #3 ***_12:12:38 Slave Minor
...
상기와 같은 이력 테이블은 그룹이 최초 구성될 때 생성될 수 있으며, 그룹의 기능이 종료되기 전까지 유지될 수 있다. 상기 이력 테이블에서 세 번째 필드인 노드 상태 정보는 새로운 마스터 노드가 선출될 때마다 마스터(master) 또는 슬레이브(slave)로 변경되고, 그룹 상태 정보는 네트워크 분리 장애가 발생함에 따라 메이저(major) 또는 마이너(minor)로 변경될 수 있다.
본 발명의 일 실시예에 따른 분산 환경 관리 시스템(200)은, 네트워크 분리 장애로 인하여 하나의 그룹이 동일한 노드 개수를 가지는 2개의 그룹으로 분리된 경우, 상기 이력 테이블을 이용하여 메이저 그룹을 결정할 수 있다(물론, 상기 이력 테이블은 반드시 동일한 노드 개수를 가지는 2개의 그룹 중에서 메이저 그룹을 결정하는 경우뿐만 아니라, 노드 개수의 차이가 소정의 기준치 이하인 2개의 그룹 중에서 메이저 그룹을 결정하는 경우에도 이용될 수 있다는 것은 당업자에게 자명하게 이해될 수 있다). 보다 구체적으로는, 네트워크 분리 장애가 발생하기 이전에 메이저 그룹에 속하였고 그룹에 합류한 시점이 가장 빠른 노드가 포함된 그룹을 새로운 메이저 그룹으로 결정할 수 있다. 또한, 본 발명의 일 실시예에 따르면, 그룹에 합류한 시점이 가장 빠른 노드가 해당 그룹의 마스터 노드로 결정될 수도 있을 것이다. 결국, 쿼럼을 만족하는 유일한 그룹이 없는 경우에는, 네트워크 분리 장애가 발생하기 직전의 그룹 상태가 메이저이고, 가장 최근에 마스터로 선출된 노드(즉, 그룹에 합류한 시점이 가장 빠른 노드)가 있는 그룹이 새로운 메이저 그룹으로 결정될 수 있다.
도 5는 이력 테이블에 기반한 동적 쿼럼 방식을 적용하여 네트워크 분리 장애를 해결하는 과정을 예시적으로 나타내는 도면이다. 이하에서는, 도 5에 도시된 단계에 따라, 이력 테이블이 변경되는 과정을 기술함으로써, 이력 테이블에 기반한 동적 쿼럼 방식을 보다 구체적으로 설명하기로 한다.
(1) 단계: 6개의 노드로 구성된 그룹으로서 네트워크 분리 장애가 발생하기 이전이며, 모든 노드가 메이저 그룹에 속하여 있음. Node #1의 그룹 합류 시점이 가장 빠르므로, 마스터 노드로 선출됨.
아이디 합류 시점 노드 상태 그룹 상태
Node #1 ***_12:12:33 Master Major
Node #2 ***_12:12:35 Slave Major
Node #3 ***_12:12:38 Slave Major
Node #4 ***_12:12:39 Slave Major
Node #5 ***_12:12:40 Slave Major
Node #6 ***_12:12:42 Slave Major
(2) 단계: 네트워크 분리 장애가 발생하여 동일한 수의 노드를 가지는 2개의 그룹으로 분리됨. 장애 이전에 메이저 그룹에 속한 노드 중에서 그룹 합류 시점이 가장 빠른 노드는 Node #1이므로, 왼쪽 그룹이 메이저 그룹으로 결정되고, 오른쪽 그룹은 마이너 그룹으로 변경됨.
아이디 합류 시점 노드 상태 그룹 상태
Node #1 ***_12:12:33 Master Major
Node #2 ***_12:12:35 Slave Minor
Node #3 ***_12:12:38 Slave Major
Node #4 ***_12:12:39 Slave Minor
Node #5 ***_12:12:40 Slave Major
Node #6 ***_12:12:42 Slave Minor
(3) ~ (4) 단계: (2) 단계를 거치면서 메이저 그룹은 Node #1, Node #3, 및 Node #5를 포함하는 그룹으로 재설정되었고(이에 따라, 쿼럼은 2로 재설정됨), 이후 또 다시 네트워크 분리 장애가 발생하여 Node #1을 포함하는 그룹과 Node #3 및 Node #5를 포함하는 그룹으로 분리됨. Node #3 및 Node #5를 포함하는 그룹이 쿼럼을 만족하므로 메이저 그룹으로 결정되고, Node #1을 포함하는 그룹은 마이너 그룹으로 변경됨. 한편, Node #3의 그룹 합류 시점이 가장 빠르므로 새로운 마스터 노드로 선출됨.
아이디 합류 시점 노드 상태 그룹 상태
Node #1 ***_12:12:33 Slave Minor
Node #2 ***_12:12:35 Slave Minor
Node #3 ***_12:12:38 Master Major
Node #4 ***_12:12:39 Slave Minor
Node #5 ***_12:12:40 Slave Major
Node #6 ***_12:12:42 Slave Minor
(5) 단계: 2개의 노드(Node #3, Node #5)로 구성된 그룹에 다시 네트워크 분리 장애가 발생하여 2개의 그룹으로 나누어짐. (2) 단계에서와 마찬가지로 이전에 메이저 그룹에 포함되었던 노드 중에서 그룹 합류 시점이 가장 빠른 Node #3이 속해 있는 그룹이 새로운 메이저 그룹으로 결정됨.
이와 같이 이력 테이블을 활용함으로써 그룹이 동일한 노드를 포함하는 2개의 그룹으로 분리되는 경우나, 지속적인 장애로 인하여 단지 1개의 노드만을 포함하는 그룹만이 존재하는 경우에도 서비스의 연속성을 보장할 수 있게 된다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
도 1은 네트워크 분리 장애 상황을 예시적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 분산 환경을 개략적으로 나타내는 도면이다.
도 3은 분산 환경 관리 시스템(200)이 제공하는 잠금 기능을 예시적으로 나타내는 도면이다.
도 4는 네트워크 분리 장애 상황에 쿼럼 알고리즘을 적용한 모습을 나타내는 도면이다.
도 5는 이력 테이블에 기반한 동적 쿼럼 방식을 적용하여 네트워크 분리 장애를 해결하는 과정을 예시적으로 나타내는 도면이다.
<주요 도면부호에 관한 간단한 설명>
100: 통신망
200: 분산 환경 관리 시스템
300: 클라이언트

Claims (22)

  1. 네트워크 기반의 분산 환경에서 다수의 노드로 구성된 초기 그룹이 분리되어 생성된 적어도 2개의 그룹 중 메이저 그룹을 결정하기 위한 방법으로서,
    제1 그룹의 노드의 개수와 제2 그룹의 노드의 개수를 비교하는 단계,
    상기 제1 그룹의 노드 및 상기 제2 그룹의 노드의 이력 정보를 획득하는 단계, 및
    상기 노드 개수 비교 결과 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹을 결정하는 단계
    를 포함하고,
    상기 다수의 노드는 각각 특정 데이터를 갖고,
    상기 이력 정보는 상기 제1 그룹의 각각의 노드 및 상기 제2 그룹의 각각의 노드가 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하며,
    상기 메이저 그룹에 속하는 마스터 노드는 자신이 갖고 있는 상기 특정 데이터에 대한 읽기 및 쓰기 작업을 수행할 수 있는, 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 메이저 그룹은 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에 합류하였던 시점이 가장 빠른 노드가 포함된 그룹으로 결정되는 방법.
  4. 제1항에 있어서,
    상기 메이저 그룹은 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에서 마스터 노드였던 노드가 포함된 그룹으로 결정되는 방법.
  5. 제1항에 있어서,
    상기 이력 정보를 획득하는 단계 및 상기 메이저 그룹을 결정하는 단계는, 상기 제1 그룹의 노드의 개수와 상기 제2 그룹의 노드의 개수의 차이가 소정의 기준치 이하인 경우에 수행되는 방법.
  6. 제5항에 있어서,
    상기 차이가 상기 기준치를 초과하는 경우, 상기 제1 그룹 및 상기 제2 그룹 중 더 많은 노드를 포함하는 그룹으로 메이저 그룹을 결정하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 제1 그룹 및 상기 제2 그룹은 상기 초기 그룹이 적어도 2회 분리됨에 따라 생성되고,
    상기 제1 그룹 및 상기 제2 그룹이 최근에 공통으로 속하였던 그룹이 메이저 그룹이었던 경우에만 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹이 결정되는 방법.
  8. 삭제
  9. 제1항에 있어서,
    상기 특정 데이터는 상기 분산 환경에 있어서의 잠금 정보인 방법.
  10. 제1항에 있어서,
    상기 이력 정보는 상기 다수의 노드의 각각에 복제된 이력 테이블에 포함된 정보인 방법.
  11. 제10항에 있어서,
    상기 이력 테이블은 상기 다수의 노드의 각각이 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하는 방법.
  12. 제1항, 제3항 내지 제7항, 제9항 내지 제11항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.
  13. 네트워크 기반의 분산 환경에서 다수의 노드로 구성된 초기 그룹을 갖는 시스템에 있어서,
    상기 다수의 노드는 각각 특정 데이터를 갖고,
    상기 초기 그룹이 분리되어 적어도 2개의 그룹이 생성된 경우,
    상기 다수의 노드 중 적어도 하나는, 제1 그룹의 노드의 개수와 제2그룹의 노드의 개수를 비교하고, 상기 제1 그룹의 노드 및 상기 제2 그룹의 노드의 이력 정보를 획득하며, 상기 노드 개수 비교 결과 및 상기 이력 정보 중 적어도 하나를 이용하여 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹을 결정하고,
    여기서 상기 이력 정보는 상기 제1 그룹의 각각의 노드 및 상기 제2 그룹의 각각의 노드가 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하며,
    상기 메이저 그룹에 속하는 마스터 노드는 자신이 갖고 있는 상기 특정 데이터에 대한 읽기 및 쓰기 작업을 수행할 수 있는, 시스템.
  14. 삭제
  15. 제13항에 있어서,
    상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에 합류하였던 시점이 가장 빠른 노드가 포함된 그룹을 상기 메이저 그룹으로 결정하는, 시스템.
  16. 제13항에 있어서,
    상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹 및 상기 제2 그룹 중 상기 초기 그룹에서 마스터 노드였던 노드가 포함된 그룹을 상기 메이저 그룹으로 결정하는, 시스템.
  17. 제13항에 있어서,
    상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹의 노드의 개수와 상기 제2 그룹의 노드의 개수의 차이가 소정의 기준치 이하인 경우에 상기 이력 정보를 획득하고 상기 메이저 그룹을 결정하는, 시스템.
  18. 제17항에 있어서,
    상기 차이가 상기 기준치를 초과하는 경우, 상기 다수의 노드 중 적어도 하나는, 상기 제1 그룹 및 상기 제2 그룹 중 더 많은 노드를 포함하는 그룹으로 메이저 그룹을 결정하는, 시스템.
  19. 제13항에 있어서,
    상기 제1 그룹 및 상기 제2 그룹은 상기 초기 그룹이 적어도 2회 분리됨에 따라 생성되고,
    상기 제1 그룹 및 상기 제2 그룹이 최근에 공통으로 속하였던 그룹이 메이저 그룹이었던 경우에만 상기 다수의 노드 중 적어도 하나에 의해 상기 제1 그룹 또는 상기 제2 그룹으로 메이저 그룹이 결정되는, 시스템.
  20. 제13항에 있어서,
    상기 특정 데이터는 상기 분산 환경에 있어서의 잠금 정보인, 시스템.
  21. 제13항에 있어서,
    상기 이력 정보는 상기 다수의 노드의 각각에 복제된 이력 테이블에 포함된 정보인, 시스템.
  22. 제21항에 있어서,
    상기 이력 테이블은 상기 다수의 노드의 각각이 상기 초기 그룹에 합류하였던 시점에 관한 정보를 포함하는, 시스템.
KR1020090011636A 2009-02-12 2009-02-12 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체 KR101042908B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090011636A KR101042908B1 (ko) 2009-02-12 2009-02-12 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체
JP2010021344A JP5695324B2 (ja) 2009-02-12 2010-02-02 スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体
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 (ko) 2009-02-12 2009-02-12 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체

Publications (2)

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

Family

ID=42541281

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090011636A KR101042908B1 (ko) 2009-02-12 2009-02-12 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체

Country Status (3)

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

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101882808B1 (ko) * 2011-09-30 2018-07-30 삼성전자 주식회사 혼합 네트워크 기반의 멀티 코어 프로세서
WO2014204989A1 (en) 2013-06-18 2014-12-24 Ciambella Ltd. Method and apparatus for code virtualization and remote process call generation
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
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
US9672115B2 (en) * 2013-08-26 2017-06-06 Vmware, Inc. Partition tolerance in cluster membership management
US9619122B2 (en) 2014-01-10 2017-04-11 Ciambella Ltd. Method and apparatus for automatic device program generation
CA3172139A1 (en) * 2014-06-24 2015-12-30 Google Llc Mesh network commissioning
US9723064B1 (en) 2014-09-02 2017-08-01 Amazon Technologies, Inc. Hybrid quorum policies for durable consensus in distributed systems
CN105450717A (zh) * 2014-09-29 2016-03-30 中兴通讯股份有限公司 集群脑裂处理方法和装置
WO2016106682A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统
WO2016161266A1 (en) 2015-04-02 2016-10-06 Google Inc. Efficient network stack for wireless application protocols
US10095495B2 (en) 2015-05-08 2018-10-09 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 (zh) * 2016-05-16 2019-06-04 白杨 消息端口交换服务系统
CN107919977B (zh) * 2016-10-11 2021-09-03 阿里巴巴集团控股有限公司 一种基于Paxos协议的在线扩容、在线缩容的方法和装置
US20180144279A1 (en) * 2016-11-22 2018-05-24 Sap Se Network separator for transportation resource planning
US10409562B2 (en) 2017-03-14 2019-09-10 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
JP6984437B2 (ja) 2018-01-24 2021-12-22 富士通株式会社 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置
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 (zh) * 2020-08-14 2022-05-13 苏州浪潮智能科技有限公司 一种基于异构存储的集群仲裁的方法、系统、设备及介质
CN113810216A (zh) * 2020-12-31 2021-12-17 京东科技控股股份有限公司 一种集群的故障切换方法、装置及电子设备
WO2023148977A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ管理方法、プログラム及びクラスタシステム
WO2023148976A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ再構成方法、プログラム及びクラスタシステム

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 (ja) * 1997-12-09 2001-02-13 日本電気株式会社 システム結合装置のリカバリシステムおよびリカバリプログラムを記録した記録媒体
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 (ko) * 2003-02-13 2006-02-24 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 클러스터 운영 방법
JP3808874B2 (ja) * 2004-03-12 2006-08-16 東芝ソリューション株式会社 分散システム及び多重化制御方法
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 (ja) * 2006-04-28 2012-06-20 克秀 浅沼 グループ分けシステム、グループ分け管理サーバ及びグループ分けプログラム
JP4505763B2 (ja) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. ノードクラスタの管理
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
JP5695324B2 (ja) 2015-04-01
US20100205273A1 (en) 2010-08-12
JP2010186472A (ja) 2010-08-26
US8412790B2 (en) 2013-04-02
KR20100092331A (ko) 2010-08-20

Similar Documents

Publication Publication Date Title
KR101042908B1 (ko) 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체
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 (zh) 一种分布式存储复制系统和方法
EP1117210A2 (en) Method to dynamically change cluster or distributed system configuration
JP7389793B2 (ja) 分散型異種ストレージシステムにおけるデータ一貫性のリアルタイムチェックのための方法、デバイス、およびシステム
KR101296778B1 (ko) NoSQL 데이터베이스를 위한 결과적 트랜잭션 처리 방법
Gupta et al. Efficient and non-blocking agreement protocols
US20190196918A1 (en) Methods and systems of operating a database management system dmbs in a strong consistency mode
CN110830582B (zh) 一种基于服务器集群选主方法和装置
Diack et al. CAP theorem between claims and misunderstandings: what is to be sacrificed
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
US11544251B1 (en) Database system with transactional commit protocol based on safe conjunction of majorities
US11960478B2 (en) Database system with transactional commit protocol based on safe conjunction of majorities

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