KR20180065053A - 분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법 - Google Patents

분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법 Download PDF

Info

Publication number
KR20180065053A
KR20180065053A KR1020160165073A KR20160165073A KR20180065053A KR 20180065053 A KR20180065053 A KR 20180065053A KR 1020160165073 A KR1020160165073 A KR 1020160165073A KR 20160165073 A KR20160165073 A KR 20160165073A KR 20180065053 A KR20180065053 A KR 20180065053A
Authority
KR
South Korea
Prior art keywords
server
group
servers
consensus
participating
Prior art date
Application number
KR1020160165073A
Other languages
English (en)
Other versions
KR101944594B1 (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 KR1020160165073A priority Critical patent/KR101944594B1/ko
Publication of KR20180065053A publication Critical patent/KR20180065053A/ko
Application granted granted Critical
Publication of KR101944594B1 publication Critical patent/KR101944594B1/ko

Links

Images

Classifications

    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1025Dynamic adaptation of the criteria on which the server selection is based

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 제 1 그룹 내에서, 분산 네트워크 기반 컨센서스에 참여하는 서버 및 상기 서버의 컨센서스 참여 방법에 관한 것으로서, 본 발명의 일 실시예에 따른 분산 네트워크 기반 컨센서스에 참여하는 서버는 액션 정보가 기록된 로그 및 컨센서스 모듈이 저장된 메모리, 및 상기 로그에 따라 액션을 수행하는 프로세서를 포함하되, 상기 프로세서는 상기 컨센서스 모듈을 실행함에 따라 상기 서버의 상태를 팔로워(Follower) 모드, 후보자(candidate) 모드, 및 리더(leader) 모드로 정의하고, 상기 서버가 리더 모드로 동작함에 따라 상기 서버가 속한 제 1 그룹 내에 존재하고, 팔로워 모드 또는 후보자 모드로 동작하는 복수의 제 2 서버로 네트워크의 연결상태를 확인하는 하트비트(Hartbeat)를 주기적으로 전송하고, 상기 하트비트에 대한 응답을 상기 각각의 제 2 서버로부터 수신하되, 상기 프로세서는 상기 복수의 제 2 서버 중, 상기 하트비트에 대한 응답을 수신하지 못한 제 3 서버를 상기 제 1 그룹 내에서 삭제하고, 상기 제 3 서버를 제외한 나머지 제 2 서버 각각으로 상기 제 1 그룹 내에 존재하는 서버 정보 및 변경된 로그 정보를 전송하여 업데이트 시킨다.

Description

분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법{SERVER FOR DISTRIBUTED NETWORK AND METHOD OF CONSENSUS THEREOF}
본 발명은 분산 네트워크에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법에 관한 것이다.
모바일 기기 및 통신망의 발전에 따라, 가상 공간 활용이 증가하고 있으며, 최근에는 다수의 사용자가 가상 공간에서 함께 데이터를 수집, 저장 및 가공하여 처리하도록 하는 분산 네트워크 시스템이 증가하고 있다.
이러한 가상 공간 상의 분산 네트워크 시스템은 다수의 사용자가 현실 상에서 한 공간에 모이지 않고도, 함께 일을 처리할 수 있도록 할 수 있기 때문에 업무의 효율을 높일 수 있으며, 시간과 공간의 제약을 극복할 수 있어 최근 많은 주목을 받고 있다.
견고한 분산 네트워크 시스템을 개발하는 데 있어서 주요 문제점 중 하나는 분산 그룹의 참여자들이 공유하는 데이터에 대한 동의를 보장하는 분산 컨센서스를 어떻게 달성하는가에 대한 문제이다. 따라서, 현재까지 분산 컨센서스를 달성하기 위한 많은 알고리즘이 등장하였고, 여러 시스템에서 이를 활용하고 있지만, 알고리즘의 내용이 복잡하고 구현시 정확성을 입증하기 어려워 실제 시스템에 활발하게 적용하지 못하는 문제점이 존재하였다.
특히, Diego Ongaro와 John Ousterhout이 고안한 래프트(Raft) 알고리즘은 과반수 동의에 의한 컨센서스 알고리즘으로서, 분산 컨센서스 문제 해결을 위하여 컨센서스 그룹을 구성하는 각 노드들의 동일한 로그 유지와 상태변이, 메시지 교환을 이용한다. 또한 Raft 알고리즘은 리더의 주도하에 과반수의 동의로 로그 업데이트 작업을 수행하기 때문에 중간에 문제가 발생하는 경우에도 안전하게 로그를 관리할 수 있는 장점이 있다.
하지만, Raft 알고리즘의 경우, 참여 노드의 추가나 제거에 대해 고려하고 있지 않아 컨센서스 그룹의 동적 확장성을 제공할 수 없다는 문제점이 있다. 따라서, 이러한 경우, 컨센서스 그룹에 노드를 추가하거나 삭제할 때 그룹 자체를 다시 구성해야하는 문제가 발생할 수 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 분산 네트워크에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법을 제공하고자 한다.
특히, 협업을 하고 있는 컨센서스 그룹 내의 참여 노드를 추가 및 삭제할 수 있도록 지원하여 동적으로 컨센서스 그룹의 참여 노드 수를 변경할 수 있는 분산 네트워크 시스템의 서버 및 상기 서버의 컨센서스 참여 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 측면에 따른 분산 네트워크 기반 컨센서스에 참여하는 서버는, 액션 정보가 기록된 로그 및 컨센서스 모듈이 저장된 메모리, 및 상기 로그에 따라 액션을 수행하는 프로세서를 포함하되, 상기 프로세서는 상기 컨센서스 모듈을 실행함에 따라 상기 서버의 상태를 팔로워(Follower) 모드, 후보자(candidate) 모드, 및 리더(leader) 모드로 정의하고, 상기 서버가 리더 모드로 동작함에 따라 상기 서버가 속한 제 1 그룹 내에 존재하고, 팔로워 모드 또는 후보자 모드로 동작하는 복수의 제 2 서버로 네트워크의 연결상태를 확인하는 하트비트(Hartbeat)를 주기적으로 전송하고, 상기 하트비트에 대한 응답을 상기 각각의 제 2 서버로부터 수신하되, 상기 프로세서는 상기 복수의 제 2 서버 중, 상기 하트비트에 대한 응답을 수신하지 못한 제 3 서버를 상기 제 1 그룹 내에서 삭제하고, 상기 제 3 서버를 제외한 나머지 제 2 서버 각각으로 상기 제 1 그룹 내에 존재하는 서버 정보 및 변경된 로그 정보를 전송하여 업데이트 시킨다.
또한, 본 발명의 다른 측면에 따른 제 1 그룹 내에서 분산 네트워크 기반 컨센서스에 참여하고, 액션 정보가 기록된 로그 및 컨센서스 모듈이 저장된 메모리, 및 상기 로그에 따라 액션을 수행하는 프로세서를 포함하는 서버의 네트워크 방법은 상기 프로세서가 상기 컨센서스 모듈을 실행함에 따라 상기 서버의 상태를 리더(leader) 모드로 정의하는 (a) 단계; 상기 프로세서가 상기 제 1 그룹 내에 존재하고, 팔로워 모드 또는 후보자 모드로 동작하는 복수의 제 2 서버로 네트워크의 연결상태를 확인하는 하트비트(Hartbeat)를 전송하는 (b) 단계; 상기 프로세서가 상기 하트비트에 대한 응답을 상기 각각의 제 2 서버로부터 수신하는 (c) 단계; 상기 프로세서가 상기 복수의 제 2 서버 중, 상기 하트비트에 대한 응답을 수신하지 못한 제 3 서버를 상기 제 1 그룹 내에서 삭제하는 (d) 단계; 및 상기 프로세서가 제 3 서버를 제외한 나머지 제 2 서버 각각으로 상기 제 1 그룹 내에 존재하는 서버 정보 및 변경된 로그 정보를 전송하여 업데이트 시키는 (e) 단계를 포함한다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 본 발명의 일 실시예에 따른 분산 네트워크 시스템의 서버 및 상기 서버의 컨센서스 참여 방법은, 협업을 하고 있는 컨센서스 그룹 내의 참여 노드를 추가 및 삭제할 수 있도록 지원하여 동적으로 컨센서스 그룹의 참여 노드 수를 변경할 수 있도록 제공할 수 있다.
한편, 본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 서버의 구성을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따라 제 1 그룹 내에 존재하는 각각의 서버의 상태에 따른 컨센서스 방법을 개략적으로 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 리더 모드의 서버가 제 1 그룹 내에 속하는 서버의 개수를 동적으로 변경하는 과정을 도시하고 있다.
도 4는 본 발명의 일 실시예에 따라 서버의 상태가 리더 모드로 정의 되었을 때, 컨센서스 알고리즘에 추가되는 변수를 도시하고 있다.
도 5는 본 발명의 일 실시예에 따라 리더모드로 동작하는 서버가 해당 서버가 속한 제 1 그룹내에 존재하는 제 2의 서버들의 네트워크 연결상태를 확인하는 과정을 상세히 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 리더모드의 서버가 제 1 그룹 내에서 하트비트에 대한 응답이 없는 제 3 서버를 삭제하는 과정을 도시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 제 1 그룹내에 존재하지 않는 새로운 서버로부터 그룹 추가 요청을 수신한 리더모드의 동작 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 리더모드의 서버가 제 1 그룹 내에 제 4 서버를 추가하는 과정을 상세히 설명하기 위한 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하, 도면을 참조하여 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법을 상세히 설명하도록 한다.
여기서, 네트워크는 단말 및 서버와 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예에는 3GPP(3rd generation partnership project) 네트워크, LTE(long term evolution) 네트워크, WIMAX(world interoperability for microwave access) 네트워크, 인터넷(internet), LAN(local area network), Wireless LAN(Wireless local area network), WAN(wide area network), PAN(personal area network), 블루투스(Bluetooth) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(digital multimedia broadcasting) 네트워크 등이 포함되나 이에 한정되지는 않는다.
도 1은 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 서버의 구성을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따라 제 1 그룹 내에 존재하는 각각의 서버의 상태에 따른 컨센서스 방법을 개략적으로 나타내는 블록도이다.
한편, 본 발명의 일 실시예에 따른 서버는 네트워크 단말 또는 네트워크에 참여하는 노드와 동일한 것으로서 이해될 수 있을 것이다.
먼저, 도 1을 참조하면, 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 서버는 네트워크 통신 모듈(110), 메모리(120), 및 프로세서(130)를 포함한다.
서버는 네트워크 통신모듈(110)을 통해, 자신이 속한 제 1 그룹 내에 존재하는 복수의 제 2 서버들과 컨센서스를 수행한다.
메모리(120)에는 액션 정보가 기록된 로그 및 컨센서스 알고리즘이 저장될 수 있다. 그러나 이에 제한되는 것은 아니며, 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 서버는 네트워크 장치 및 메모리를 더 포함하여 별도의 컨센서스 모듈을 포함할 수도 있다.
이때, 메모리(120)는 컴퓨터 저장 매체중의 하나로서 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함하여 구성될 수 있다. 예를 들어, 저장장치는 ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치, 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억장치 등을 포함할 수 있다.
프로세서(130)는 컨센서스 알고리즘을 실행함에 따라 제 1 그룹에 존재하는 각각의 제 2 서버들과 컨센서스를 수행한다. 즉, 프로세서(130)는 컨센서스를 통해 로그를 공유하며, 공유된 로그를 메모리(120)에 저장하고 업데이트 할 수 있다. 이때, 로그에는 해당 서버가 수행해야하는 액션에 관한 정보들이 저장될 수 있다.
프로세서(130)는 로그에 따라서 액션을 수행한다. 따라서, 제 1 그룹 내에 존재하는 복수의 서버들은 컨센서스에 참여하여 자원, 즉 로그를 공유하며, 로그에 포함된 액션을 수행한다. 따라서, 제 1 그룹 내에서 컨센서스에 참여한 복수의 서버는 동일한 액션을 수행할 수 있다.
구체적으로, 프로세서(130)가 컨센서스 알고리즘을 실행함에 따라, 서버는 자신의 상태를 팔로워(Follower) 모드, 후보자(candidate) 모드, 또는 리더(leader) 모드로 정의할 수 있다. 이때, 서버의 상태는 제 1 그룹 내에서 컨센서스에 참여하는 복수의 서버들과의 투표를 통해 정의될 수 있다.
이때, 제 1 그룹 내에 존재하는 복수의 서버들 중 하나는 리더가 될 후보자(candidate) 모드로 선정될 수 있다. 이후, 리더모드로 동작하는 서버에 이상이 발생하는 경우, 상기 후보자 모드로 동작하는 서버가 과반수(majority) 이상으로 동의를 받으면 새로운 리더(New-Leader)로 선출되어 리더 모드로서 동작할 수 있다.
서버의 상태가 리더 모드로 정의됨에 따라, 해당 서버는 제 1 그룹에 존재하는 제 2의 서버들과 로그 복제를 위한 투표를 진행하거나 결과를 제 2 서버 각각으로 전송할 수 있다.
반면, 서버의 상태가 팔로워 모드 또는 후보자 모드로 정의됨에 따라, 해당 서버는 제 2 서버로 액션 요청을 보내거나 제 2 서버가 전달하는 액션을 전달받을 수 있다.
따라서, 도 2 를 참조하면, 제 1 그룹 내에서 컨센서스에 참여하는 서버는 제 1 그룹에 속해있는 복수의 제 2 서버들과의 투표를 통해 자신의 상태를 팔로워(Follower) 모드, 후보자(candidate) 모드, 또는 리더(leader) 모드로 정의하며, 각각의 서버는 정의된 상태에 따라 해당 모드로 동작한다. 즉, 제 1 그룹에 포함된 복수의 서버는 각기 다른 모드로서 동작됨으로서, 컨센서스에 참여할 수 있다.
다시 말해, 제 1 그룹에 포함된 복수의 서버는 프로세서(130)가 컨센서스 알고리즘을 수행함에 따라 리더 모드로 동작될 서버를 선출할 수 있으며, 리더 모드의 서버(230)는 제 1 그룹에 존재하는 팔로워 모드의 서버(210) 또는 후보자 모드의 서버(220)들과 로그 복제를 위한 투표를 진행하며, 투표 결과를 팔로워 모드의 서버(210) 또는 후보자 모드의 서버(220)로 각각 전송할 수 있다.
반면, 리더로 선출되지 않은 복수의 제 2 서버들은 후보자 모드 또는 팔로워 모드로서 동작되며, 팔로워 모드의 서버(210) 또는 후보자 모드의 서버(220)는 리더 모드의 서버(230)로 액션 요청을 보내거나 리더 모드의 서버(230)가 전달하는 액션을 전달받을 수 있다.
또한, 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 서버는, 리더 모드로 동작함에 따라 해당 서버가 속해 있는 제 1 그룹에 속한 제 2 서버를 제거할 수 있다. 또는 제 1 그룹에 속해있지 않은 제 3 서버로부터 그룹 추가 요청을 수신하고, 제 3 서버를 제 1 그룹에 추가하여 컨센서스를 수행할 수 있다.
도 3은 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 리더 모드의 서버가 제 1 그룹 내에 속하는 서버의 개수를 동적으로 변경하는 과정을 도시하고 있다.
도 3의 (a) 및 (b)를 참조하면, 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 서버는 프로세스(130)가 컨센서스 알고리즘을 수행함에 따라, 해당 서버가 속한 제 1 그룹 내에서 투표를 통해 리더를 선출함으로써, 서버의 상태를 리더 모드로 정의할 수 있다.
따라서, 본 발명의 일 실시예에 따라 리더 모드로 동작하는 서버(230)는 도 3의 (a)에 도시된 바와 같이, 새로운 서버(240)로부터 그룹 추가 요청을 수신하고, 해당 서버가 속한 제 1 그룹 내에 추가 함으로써, 제 1 그룹 내에 존재하는 기존의 팔로워 모드의 서버(212 내지 218)들과 함께 컨센서스에 참여할 수 있도록 할 수 있다.
또는 도 3의 (b)와 같이 리더 모드로 동작하는 서버(230)는 해당 서버가 컨센서스에 참여중인 제 1 그룹 내에 존재하는 팔로워 서버(212 내지 218)들 중, 네트워크 연결이 끊긴 것으로 판단되는 팔로워 서버(218)를 삭제할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 프로세서(130)가 서버의 상태를 후보자 모드 또는 팔로워 모드로 정의함에 따라, 제 1 그룹 내에 존재하는 리더 모드의 서버로부터 하트비트를 수신하고, 하트비트에 대한 응답을 리더 모드의 서버로 전송할 수 있다.
아울러, 리더 모드의 서버로 제 1 그룹 내에 그룹 추가 요청을 전송하거나, 리더 모드의 서버로부터 로그 업데이트 정보를 수신하여, 메모리에 저장된 로그를 업데이트 시킬 수 있다.
이하, 도 4 내지 도 8을 참조하여, 본 발명의 일 실시예에 따른 리더모드로 동작하는 서버가 자신이 속한 제 1 그룹 내에서 분산 네트워크에서 컨센서스에 참여하는 서버의 개수를 동적으로 변경하는 과정을 상세히 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따라 서버의 상태가 리더 모드로 정의 되었을 때, 컨센서스 알고리즘에 추가되는 변수를 도시하고 있다.
도 4를 참조하면, 상술한 컨센서스 알고리즘을 수행하여 제 1 그룹 내에 컨센서스에 참여하는 서버, 즉 노드의 개수를 동적으로 변경하기 위하여, 본 발명의 일 실시예에 따른 프로세서(130)는 리더 모드로 동작함에 따라 도 4에 도시된 바와 같이, 컨센서스 알고리즘에 피어 변수(peers[]), 무효 변수(invalid[]), 무응답 카운트 변수(noResponseCnt[]), 메이저 변수(isMajor[]), 및 피어 개수 변수(totalPeerNum[])를 더 추가할 수 있다. 이때, 피어 변수는 컨센서스 그룹에 참여한 참여 노드 리스트를 관리하며, 무효 변수는 참여 노드의 연결 상태를 확인하는 리스트를 관리하고, 무응답 카운트 변수는 참여 노드가 리더의 하트비트에 응답하지 못한 개수를 관리한다. 이어서, 메이저 변수는 리더가 자신이 속한 그룹에 메이저인지 아닌지를 확인하는 변수이며, 피어 개수 변수는 참여 노드의 개수를 관리하는 변수이다.
도 5는 본 발명의 일 실시예에 따라 리더모드로 동작하는 서버가 해당 서버가 속한 제 1 그룹내에 존재하는 제 2의 서버들의 네트워크 연결상태를 확인하는 과정을 상세히 설명하기 위한 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에 따라 리더 모드의 서버(230)는 서버가 속한 제 1 그룹 내에 존재하는 제 2 서버로 네트워크의 연결상태를 확인하는 하트비트(Hartbeat)를 주기적으로 전송한다(Sh1). 이후, 리더 모드의 서버(230)는 시간을 카운팅 하며(Sh2), 기 설정된 시간 내에 각각의 제 2 서버로부터 하트비트에 대한 응답을 수신한다(Sh3). 이때, 제 2 서버는 앞서 설명한 바와 같이, 팔로워 모드의 서버(210) 또는 후보자 모드의 서버(220)일 수 있다.
반면 도 5의 (b)에 도시되 바와 같이, 설정된 시간 내에 제 2 서버 중 어느 하나로부터 하트비트에 대한 응답을 수신하지 못하면, 리더모드의 서버(230)는 타임아웃 이벤트를 발생시키고, 응답을 수신하지 못한 제3 서버를 네트워크 연결이 끊긴 것으로 판단한다(Sh4).
도 6은 본 발명의 일 실시예에 따른 리더모드의 서버가 제 1 그룹 내에서 하트비트에 대한 응답이 없는 제 3 서버를 삭제하는 과정을 도시한 흐름도이다.
도 6을 참조하여 더욱 구체적으로 살펴보면, 리더모드의 서버(230)는 복수의 제 2 서버로 주기적으로 하트비트를 전송한 후(Sc1), 시간을 카운팅하여 타임아웃 이벤트가 발생하였는지 확인한다(Sc2). 이후, 타임아웃 이벤트가 발생하지 않으면, 하트비트에 대한 응답을 수신을 확인하여 네트워크 연결 상태가 정상적으로 동작하는 것으로 판단하고 종료한다(Sc3). 반면, 타임아웃 이벤트가 발생한 경우, 하트비트 응답에 대한 무응답 개수를 증가시키고(Sc4), 무응답 개수가 기 설정된 개수(C)를 초과하는지를 판단하여(Sc5), 기 설정된 개수를 초과하지 않으면 종료하고 다시 하트비트를 전송하는 단계로 돌아가 해당 단계를 반복할 수 있다. 그러나, 무응답 개수가 기 설정된 개수를 초과하는 경우, 해당 제 2 서버에 대한 연결이 비연결 상태인지를 확인하여(Sc6), 해당 서버를 삭제하는 것이 가능하다.
이후, 본 발명의 일 실시예에서 설명의 편의를 위하여, 복수의 제 2 서버중, 무응답 개수가 기 설정된 개수를 초과하는 서버, 즉 네트워크 연결이 끊긴 서버를 제 3 서버로 정의하여 설명하도록 한다.
이때, 본 발명의 일 실시예에 따른 리더모드로 동작하는 서버(230)는 응답이 없는 무효서버(노드)의 개수를 판단하여(Sc7), 제 1 그룹이 메이저 그룹인지 마이너 그룹인지 확인하고, 제 1 그룹이 메이저 그룹인 경우에만 무응답 서버인 제3 서버를 삭제할 수 있다(Sc8). 반면, 제 1 그룹이 마이너 그룹인 경우, 리더모드로 동작하는 서버(230)는 그룹 내에 존재하는 서버 즉, 노드의 삭제 권한이 없는 것으로 판단하고 종료한다. 이때, 본 발명의 일 실시예에서, 메이저 그룹 및 마이너 그룹의 판단은 도 5에 도시된 바와 같이, 무효노드의 개수를 판단하여, 무효노드의 개수가 과반수 미만일 경우, 제 1 그룹을 메이저 그룹으로 판단하고, 무효노드의 개수가 과반수 이상이면 제 1 그룹을 마이너 그룹으로 판단한다.
다시 말해, 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 리더모드의 서버(230)는 해당 서버가 속한 제 1 그룹이 메이저 그룹일 경우에만, 제 1 서버 내에 존재하는 서버(노드)의 개수를 삭제 또는 추가하여 동적으로 변경할 수 있다.
이어서, 도 7 및 도 8을 참조하여, 본 발명의 일 실시예에 따른 분산 네트워크에서 컨센서스에 참여하는 리더모드의 서버가 제 1 그룹에 새로운 서버를 추가하는 과정을 더욱 상세히 설명하도록 한다.
도 7은 본 발명의 일 실시예에 따라 제 1 그룹내에 존재하지 않는 새로운 서버로부터 그룹 추가 요청을 수신한 리더모드의 동작 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 리더모드의 서버가 제 1 그룹 내에 제 4 서버를 추가하는 과정을 상세히 설명하기 위한 흐름도이다.
도 7 및 도 8을 참조하면, 제 1 그룹 내에 존재하지 않는, 팔로워 모드로 동작하는 제 4서버는(240)은 제 1 그룹 내에 존재하는 리더 모드, 후보자 모드, 및 팔로워 모드로 동작하는 서버 중 어느 하나로 그룹 추가 요청 메시지를 전송할 수 있다(Sa1).
즉, 제 1 그룹 내에 존재하는 복수의 서버 중 어느 하나는 제 1 그룹 내에 존재하지 않는 제 4 서버(240)로부터 그룹 추가 요청 메시지를 전송 받을 수 있다.
이때, 본 발명의 일 실시예에 따르면, 서버가 리더 모드로 동작하고, 제 4 서버로부터 그룹 추가 메시지를 수신하는 경우(Sa2), 리더모드의 서버(230)는 해당 서버가 속한 제 1 그룹이 메이저 그룹인지 확인하고, 제 1 그룹이 메이저 그룹이면 제 4 서버를 제 1 그룹에 추가하기 위한 알고리즘을 수행할 수 있다.
반면, 본 발명의 일 실시예에 따른 서버가 후보자 모드 또는 팔로워 모드로 동작하고, 제 4 서버로부터 그룹 추가 요청 메시지를 수신하는 경우(Sa2), 제 4 서버로부터 수신한 그룹 추가 요청 메시지를 제 1 그룹 내에 존재하는 리더 모드로 동작하는 서버로 전송할 수 있다(Sa3).
제 4 서버(240)로부터 전송된 그룹 추가 요청 메시지를 수신한 리더모드의 서버(230)는 자신이 메이저 그룹에 속한 리더인지, 마이너 그룹에 속한 리더인지 판단할 수 있다(Sa4). 즉, 자신이 속해있는 제 1 그룹이 메이저 그룹인지 마이너 그룹인지 판단한다.
이후, 리더모드의 서버(230)가 마이너 그룹에 속한 리더인 경우에는 종료되고(Sa8), 메이저 그룹에 속한 리더인 경우, 제 1 그룹에 제 4 서버를 추가하고, 해당 정보를 로그에 업데이트하여 팔로워 모드의 서버 및 제 4 서버로 전송할 수 있다(Sa5).
또한, 본 발명의 일 실시예에 따르면, 리더 모드로 동작하는 서버(230)는 자신의 로그에 새로운 노드 즉, 제 4 서버 정보를 추가하고(Sl1), 커밋하여(Sl2), 제 1 그룹에 속한 복수의 서버들을 관리한다. 여기서 노드(서버) 관리는 노드 리스트에 제 4 서버를 추가하고(Sl3), 노드 정보를 업데이트 하며(Sl4), 해당 정보를 로그에 포함시켜 관리한다. 이때, 로그에 노드 정보를 입력하고 커밋하는 과정은 리더 모드의 서버가 노드 추가 정보를 팔로워 모드 서버로 전달하면(Ss1), 팔로워 모드의 서버(210)는 노드 추가 정보를 로그에 업데이트하고(Ss2), 로그 업데이트 과정이 성공하였는지 판단하여(Ss3), 로그 업데이트가 성공하지 않은 경우는 업데이트를 다시 시도하고, 업데이트에 성공하면 제 1그룹이 메이저 그룹인지, 마이너 그룹인지를 판단하여(Ss4), 제 1 그룹이 메이저 그룹인 경우, 커밋한다(Sl2).
반면, 제 4 서버는 리더 모드의 서버(230)로부터 업데이트된 로그 정보를 수신하며, 해당 로그 데이터를 자신의 로그에 업데이트 시킨다(Sn1) 이후, 제 4 서버에 관한 정보가 노드 리스트에 추가 되었는지를 확인하는 노드 추가 수행 여부를 판단하여(Sa2) 노드 관리를 수행하고(Sa3), 자신의 상태를 프리팔로워 상태에서 팔로워 모드로 변환 시킨다(Sn4, Sa7).
마찬가지로, 제 1 그룹 내에 존재하는 후보자 모드의 서버(220) 또는 팔로워 모드 서버(210)는 리더 모드의 서버(230)로부터 업데이트된 로그를 수신하고 로그에 포함된 로그 리스트를 통해서 노드를 관리 할 수 있다(Sf1).
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 네트워크 통신모듈
120: 메모리
130: 프로세서
210: 팔로워 모드의 서버
220: 후보자 모드의 서버
230: 리더 모드의 서버

Claims (14)

  1. 제 1 그룹 내에서, 분산 네트워크 기반 컨센서스에 참여하는 서버에 있어서,
    액션 정보가 기록된 로그 및 컨센서스 모듈이 저장된 메모리, 및
    상기 로그에 따라 액션을 수행하는 프로세서를 포함하되,
    상기 프로세서는 상기 컨센서스 모듈을 실행함에 따라
    상기 서버의 상태를 팔로워(Follower) 모드, 후보자(candidate) 모드, 및 리더(leader) 모드로 정의하고,
    상기 서버가 리더 모드로 동작함에 따라
    상기 서버가 속한 제 1 그룹 내에 존재하고, 팔로워 모드 또는 후보자 모드로 동작하는 복수의 제 2 서버로 네트워크의 연결상태를 확인하는 하트비트(Hartbeat)를 주기적으로 전송하고, 상기 하트비트에 대한 응답을 상기 각각의 제 2 서버로부터 수신하되,
    상기 프로세서는 상기 복수의 제 2 서버 중, 상기 하트비트에 대한 응답을 수신하지 못한 제 3 서버를 상기 제 1 그룹 내에서 삭제하고,
    상기 제 3 서버를 제외한 나머지 제 2 서버 각각으로 상기 제 1 그룹 내에 존재하는 서버 정보 및 변경된 로그 정보를 전송하여 업데이트 시키는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버.
  2. 제 1 항에 있어서,
    상기 서버가 리더 모드로 동작함에 따라,
    상기 프로세서는
    상기 제 1 그룹이 메이저 그룹인지 마이너 그룹인지 판단하되,
    상기 복수의 제 2 서버로부터 수신한 상기 하트비트에 대한 응답 개수가 상기 제 1 그룹에 속한 서버 개수의 절반 이상인 경우,
    상기 제 1 그룹을 이 메이저 그룹으로 판단하고,
    상기 복수의 제 2 서버로부터 수신한 상기 하트비트에 대한 응답 개수가 상기 제 1 그룹에 속한 서버 개수의 과반수 미만인 경우,
    상기 제 1 그룹을 마이너 그룹으로 판단하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버.
  3. 제 2 항에 있어서,
    상기 프로세서는
    상기 제 1 그룹이 메이저 그룹인 경우,
    상기 제 3 서버를 상기 제 1 그룹 내에서 삭제하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버.
  4. 제 2 항에 있어서,
    상기 제 1 그룹이 메이저 그룹이고,
    상기 제 1 그룹 외에 존재하는 제 4 서버로부터 추가(add)요청을 수신하는 경우,
    상기 프로세서는
    상기 제 4 서버의 정보를 상기 복수의 제 2 서버로 전송하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버.
  5. 제 2 항에 있어서,
    상기 프로세서는
    기 설정된 주기에 따라 상기 제 3 서버로 상기 하트비트를 반복하여 전송하고,
    상기 제 3 서버로부터 수신하지 못한 상기 하트비트에 대한 응답의 횟수가 기 설정된 횟수를 초과하는 경우,
    상기 제 3 서버를 상기 제 1 그룹 내에서 삭제하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버.
  6. 제 5 항에 있어서,
    상기 제 3 서버는
    상기 복수의 제 2 서버 중, 상기 하트비트에 대한 응답 시간이 기 설정된 시간을 초과하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버.
  7. 제 1 항에 있어서,
    상기 서버가 후보자 모드 또는 팔로워 모드로 동작함에 따라,
    상기 제 1 그룹 내에 존재하는 리더 모드의 서버로부터 상기 제 1 그룹 내에 존재하는 서버 정보 및 변경된 로그 정보를 수신하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버.
  8. 제 1 그룹 내에서 분산 네트워크 기반 컨센서스에 참여하고, 액션 정보가 기록된 로그 및 컨센서스 모듈이 저장된 메모리, 및 상기 로그에 따라 액션을 수행하는 프로세서를 포함하는 서버의 네트워크 방법에 있어서,
    상기 프로세서가 상기 컨센서스 모듈을 실행함에 따라 상기 서버의 상태를 리더(leader) 모드로 정의하는 (a) 단계;
    상기 프로세서가 상기 제 1 그룹 내에 존재하고, 팔로워 모드 또는 후보자 모드로 동작하는 복수의 제 2 서버로 네트워크의 연결상태를 확인하는 하트비트(Hartbeat)를 전송하는 (b) 단계;
    상기 프로세서가 상기 하트비트에 대한 응답을 상기 각각의 제 2 서버로부터 수신하는 (c) 단계;
    상기 프로세서가 상기 복수의 제 2 서버 중, 상기 하트비트에 대한 응답을 수신하지 못한 제 3 서버를 상기 제 1 그룹 내에서 삭제하는 (d) 단계; 및
    상기 프로세서가 제 3 서버를 제외한 나머지 제 2 서버 각각으로 상기 제 1 그룹 내에 존재하는 서버 정보 및 변경된 로그 정보를 전송하여 업데이트 시키는 (e) 단계를 포함하는,
    분산 네트워크 기반 컨센서스에 참여하는 서버의 네트워크 방법.
  9. 제 8 항에 있어서,
    상기 (c) 단계 이후,
    상기 제 1 그룹이 메이저 그룹인지 마이너 그룹인지 판단하는 (f)단계를 더 포함하되,
    상기 (f) 단계는
    상기 복수의 제 2 서버로부터 수신한 상기 하트비트에 대한 응답 개수가 상기 제 1 그룹에 속한 서버 개수의 절반 이상인 경우,
    상기 제 1 그룹을 이 메이저 그룹으로 판단하고,
    상기 복수의 제 2 서버로부터 수신한 상기 하트비트에 대한 응답 개수가 상기 제 1 그룹에 속한 서버 개수의 과반수 미만인 경우,
    상기 제 1 그룹을 마이너 그룹으로 판단하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버의 네트워크 방법.
  10. 제 9 항에 있어서,
    상기 (d)단계는
    상기 제 1 그룹이 메이저 그룹인 경우,
    상기 제 3 서버를 상기 제 1 그룹 내에서 삭제하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버의 네트워크 방법.
  11. 제 9 항에 있어서,
    상기 제 1 그룹 외에 존재하는 제 4 서버로부터 추가(add)요청을 수신하는 (g)단계를 더 포함하고,
    상기 제 1 그룹이 메이저 그룹인지 마이너 그룹인지 판단하는 (f)단계에서 상기 제 1 그룹이 메이저 그룹으로 판단되는 경우,
    상기 (g)단계 이후, 상기 프로세서가 상기 제 4 서버의 정보를 상기 복수의 제 2 서버로 전송하는 제 h단계를 더 포함하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버의 네트워크 방법.
  12. 제 9 항에 있어서,
    상기 (f) 단계는
    기 설정된 주기에 따라 상기 제 3 서버로 상기 하트비트를 반복하여 전송하는 (i) 단계를 더 포함하고,
    상기 제 3 서버로부터 수신하지 못한 상기 하트비트에 대한 응답의 횟수가 기 설정된 횟수를 초과하는 경우,
    상기 (d) 단계를 수행하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버의 네트워크 방법.
  13. 제 9 항에 있어서,
    상기 (f)단계에서,
    상기 복수의 제 2 서버 중, 상기 하트비트에 대한 응답 시간이 기 설정된 시간을 초과하는 서버를 상기 제 3 서버로 정의하는 것인,
    분산 네트워크 기반 컨센서스에 참여하는 서버의 네트워크 방법.
  14. 제 8항 내지 제 13항 중 어느 한 항에 따른 서버의 네트워크 방법을 실행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
KR1020160165073A 2016-12-06 2016-12-06 분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법 KR101944594B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160165073A KR101944594B1 (ko) 2016-12-06 2016-12-06 분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160165073A KR101944594B1 (ko) 2016-12-06 2016-12-06 분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법

Publications (2)

Publication Number Publication Date
KR20180065053A true KR20180065053A (ko) 2018-06-18
KR101944594B1 KR101944594B1 (ko) 2019-02-01

Family

ID=62765466

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160165073A KR101944594B1 (ko) 2016-12-06 2016-12-06 분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법

Country Status (1)

Country Link
KR (1) KR101944594B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074492B1 (ko) * 2018-11-22 2020-02-06 주식회사 윅스콘 블록체인을 이용한 투표 관리 시스템
KR20220111949A (ko) * 2021-02-03 2022-08-10 한전케이디엔주식회사 우선순위에 기반한 HaLow 무선 다단 중계 통신 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015080825A1 (en) * 2013-11-27 2015-06-04 Avi Networks Method and system for distributed load balancing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015080825A1 (en) * 2013-11-27 2015-06-04 Avi Networks Method and system for distributed load balancing

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
D. Woos 외 5인, "Planning for change in a formal verification of the raft consensus protocol", ACM(2016.) *
Diego Ongaro 외 1인, "In search of an understandable consensus algorithm", USENIX ATC 14(2014.) *
하연의 외 2인, "Raft-D: 참여 노드의 동적 구성을 허용하는 컨센서스 알고리즘", AJMAHS(2017.2.) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102074492B1 (ko) * 2018-11-22 2020-02-06 주식회사 윅스콘 블록체인을 이용한 투표 관리 시스템
KR20220111949A (ko) * 2021-02-03 2022-08-10 한전케이디엔주식회사 우선순위에 기반한 HaLow 무선 다단 중계 통신 시스템 및 방법

Also Published As

Publication number Publication date
KR101944594B1 (ko) 2019-02-01

Similar Documents

Publication Publication Date Title
US7756924B2 (en) Peer communities
JP4696089B2 (ja) 分散ストレージシステム
CN102449616B (zh) 对象存储库在网络上的基于群的同步
CN107453929B (zh) 集群系统自构建方法、装置及集群系统
JP6385427B2 (ja) 少なくとも1つのモバイル・デバイスを含む複数のデバイスの間で計算タスクを共有するための方法、コンピュータ可読媒体、およびモバイル・デバイス
JP2010277289A (ja) 管理プログラム、管理装置および管理方法
US9648128B2 (en) Dynamic ad hoc cloud based memory management for mobile devices
US10810093B1 (en) Initializing node reliability for leadership election
US11212342B2 (en) Merge trees for collaboration
US11265182B2 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
Ho et al. A fast consensus algorithm for multiple controllers in software-defined networks
US20170054803A1 (en) Information processing device, method, and system
JP2010541077A (ja) 同期データおよびメタデータの交換
CN110493028A (zh) 一种集群部署方法、系统、装置及计算机可读存储介质
KR101944594B1 (ko) 분산 네트워크 시스템에서 컨센서스에 참여하는 서버 및 컨센서스 참여 방법
CN114598735B (zh) 数据处理方法和系统
CN106230622B (zh) 一种集群实现方法及装置
CN113162970A (zh) 基于发布/订阅模型的消息路由方法、装置、设备及介质
CN107135108A (zh) 网络连接列表的更新方法及系统
US11003508B2 (en) Apparatus and methods for load balancing across a network of nodes
US20130346580A1 (en) Apparatus and method for generating qos profile for supporting data distribution service in cyber-physical system
US10554324B1 (en) Dynamic wavelength allocation in optical networks
CN112698783A (zh) 对象存储方法、装置及系统
US7945644B2 (en) Dynamic initialization method and system of location server
US10148518B2 (en) Method and apparatus for managing computer system

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