KR20170134576A - 시간 기반 노드 선출 방법 및 장치 - Google Patents

시간 기반 노드 선출 방법 및 장치 Download PDF

Info

Publication number
KR20170134576A
KR20170134576A KR1020177031627A KR20177031627A KR20170134576A KR 20170134576 A KR20170134576 A KR 20170134576A KR 1020177031627 A KR1020177031627 A KR 1020177031627A KR 20177031627 A KR20177031627 A KR 20177031627A KR 20170134576 A KR20170134576 A KR 20170134576A
Authority
KR
South Korea
Prior art keywords
node
voting
time
information
leader
Prior art date
Application number
KR1020177031627A
Other languages
English (en)
Other versions
KR102139410B1 (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 알리바바 그룹 홀딩 리미티드
Publication of KR20170134576A publication Critical patent/KR20170134576A/ko
Application granted granted Critical
Publication of KR102139410B1 publication Critical patent/KR102139410B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 출원은 시간 기반 노드 선출 방법 및 장치를 개시한다. 이 방법은, 호스트에 의해, 모든 노드에 대해 동일한 투표 시간 및 동일한 투표 계수 시간을 구성하는 단계; 및 구성된 투표 시간 및 투표 계수 시간을 반송하는 시간 구성 정보를 모든 노드에 전송하는 단계를 포함하여, 노드는 투표 시간에 투표하고, 투표 계수 시간에 투표수를 계수하며, 투표 계수 결과에 따라 리더 노드를 선출한다. 캠페인 노드는, 호스트에 의해 구성되는 동일한 투표 시간 및 동일한 투표 계수 시간에 따라 동일한 투표 동작 및 동일한 투표 계수 동작을 동기적으로 실행하여, 투표 및 투표 계수를 위한 각각의 노드의 타이밍이 불확실하다는 종래 기술의 결점을 극복하여, 노드 선출 공정에서 리더 노드를 결정하는 효율이 상당히 개선된다.

Description

시간 기반 노드 선출 방법 및 장치
본 출원은 컴퓨터 기술 분야에 관한 것이며, 특히 시간 기반 노드 선출 방법 및 장치에 관한 것이다.
정보 기술의 발전에 따라, 인터넷은 다양화된 많은 정보를 사용자에게 제공할 수 있다. 네트워크 서비스 제공자를 위해, 단일 서버나 데이터베이스와 같은 종래의 처리 디바이스는 많은 데이터를 처리하기 위한 요건을 더 이상 충족할 수 없다. 그러므로 분산 시스템이 나타나게 되었다.
일반적으로, 분산 시스템에 포함되는 (서버, 프로세서 또는 데이터베이스와 같은) 복수의 처리 디바이스는 시스템의 여러 데이터 리소스 상에서 스케줄링, 배포된 처리, 협력적 처리 및 원격 제어와 같은 복수 타입의 관리 동작을 범용적으로 실행할 수도 있다. 분산 시스템의 각각의 처리 디바이스는 (줄여서 노드로 지칭되는) 배포된 노드로 간주될 수도 있다. 이런 식으로, 분산 시스템은 시스템의 각각의 노드에 많은 데이터를 "배포"할 수 있어서, 각각의 노드는 대응하는 데이터를 처리하여, 데이터 처리 효율을 효과적으로 개선하며 데이터 처리량을 상당히 증가시킨다.
분산 시스템에서, 상이한 노드에서의 데이터 리소스 스케줄링의 효율을 더 개선하기 위해, 데이터의 저장 위치, 업데이트 상태, 검색 키워드 및 기타 정보를 포함하는 예컨대 메타-정보(메타-정보는 데이터 리소스를 위한 설명 정보임)와 같이 동일 노드에서의 특수 타입의 일부 정보를 균일하게 저장해야 한다.
종래 기술에서, (리더 노드로도 지칭될 수 있는) 적절한 노드가 노드 선출에 의해 선택되어 메타-정보를 유지보수 및 관리한다. 노드는 구체적으로 다음의 방식으로 선출된다: 상이한 노드가 투표 요구를 다른 노드에 전송할 수 있고, 각각의 노드는 투표 요청을 수신한 후 투표하며, 마지막으로 리더 노드가 계수된 투표수에 따라 선출된다.
그러나 앞선 노드 선출 방식이 사용될 때, 상이한 노드 각각은 처리될 막대한 양의 데이터를 가지며, 노드가 휴지 상태에 있으며 투표 요청을 다른 노드에 전송한 후, 다른 노드는 데이터를 처리하고 있을 수 있으며 이들 다른 노드가 노드에 의해 전송된 투표 요청을 수신한다고 해도 즉시 투표 상태에 들어가지 않을 수 있다. 즉, 투표 및 계수하기 위한 각 노드의 타이밍은 불확실하며, 노드 선출은 시의적절하게 그리고 효과적으로 실행될 수 없다.
본 출원의 실시예는 현재의 노드 선출에서의 저효율 문제를 해결하기 위한 시간 기반 노드 선출 방법 및 장치를 제공한다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하기 위해 사용되는 시간 기반 노드 선출 방법을 제공하며, 이 방법은:
호스트에 의해, 모든 노드에 대해 동일한 투표 시간, 동일한 투표 계수 시간 및 동일한 리더 노드 재임기간(tenure)을 구성하는 단계; 및
구성된 투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 반송하는 시간 구성 정보를 모든 노드에 전송하는 단계를 포함하여, 노드는 투표 시간에 투표하고, 투표 계수 시간에 투표수를 계수하며, 투표 계수 결과에 따라 리더 노드를 선출하여, 노드는 리더 노드 재임기간에 따라 주기적 노드 선출을 실행하게 될 수 있다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하기 위해 사용되는 시간 기반 노드 선출 방법을 더 제공하며, 이 방법은:
모든 노드 중에 리더 노드가 없을 때, 캠페인 노드로서의 적어도 하나의 노드에 의해, 시간 구성 정보에 반송되는 투표 시간에 투표 요청을 모든 노드에 전송하는 단계;
각각의 캠페인 노드에 의해, 투표 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하는 단계;
시간 구성 정보에 반송되는 투표 계수 시간에 각각의 캠페인 노드에 의해, 수신된 투표 정보의 양을 계수하는 단계; 및
캠페인 노드에 의해, 계수된 각각의 투표 정보의 양에 따라 리더 노드를 결정하여 지정된 서비스를 처리하는 단계를 포함한다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하기 위해 사용되는 시간 기반 노드 선출 방법을 더 제공하며, 이 방법은:
모든 노드 중에 리더 노드가 없을 때, 시간 구성 정보에 반송되는 투표 시간에 투표 노드로서의 적어도 2개의 노드에 의해, 캠페인 노드에 의해 전송되는 투표 요청을 수신하는 단계; 및
투표 요청에 따른 투표 노드에 의해, 투표 정보를 생성하여, 투표 정보를 투표 시간에 캠페인 노드에 전송하여, 캠페인 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 리더 노드를 결정하는 단계를 포함한다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하기 위해 사용되는 시간 기반 노드 선출 방법을 더 제공하며, 이 방법은:
모든 노드 중에 리더 노드가 있으며 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족한다고 결정할 때, 리더 노드에 의해, 재지정 요청을 시간 구성 정보에서의 리더 노드 재임기간에 따라 투표 시간에 모든 노드에 전송하는 단계;
리더 노드에 의해, 재지정 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하는 단계;
투표 계수 시간에 리더 노드에 의해, 수신된 투표 정보의 양을 계수하는 단계; 및
리더 노드에 의해, 계수된 투표 정보의 양에 따라 재지정 상태를 결정하여, 재지정이 성공한 후 지정된 서비스를 처리하는 단계를 포함하며;
미리 설정된 기준은 부하 처리 기준 및 데이터 업데이트 정도 중 적어도 하나를 포함한다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하기 위해 사용되는 시간 기반 노드 선출 방법을 더 제공하며, 이 방법은:
모든 노드 중에 리더 노드가 있으며 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족하지 않는다고 결정할 때, 시간 구성 정보에서의 리더 노드 재임기간에 따른 리더 노드에 의해, 다른 노드 중에 미리 설정된 기준을 충족하여 후임 노드 역할을 하는 노드를 차단하는 단계; 및
리더 노드에 의해, 후임 노드에 대한 투표 요청을 다른 노드에 투표 기간에 전송하는 단계를 포함하여, 후임 노드는 다른 노드에 의해 전송되는 투표 정보를 수신하고, 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드로서 결정된다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하기 위해 사용되는 시간 기반 노드 선출 방법을 더 제공하며, 이 방법은:
모든 노드 중에 리더 노드가 있을 때, 시간 구성 정보에 반송되는 투표 시간에 투표 노드로서의 적어도 2개의 노드에 의해, 리더 노드에 의해 전송되는 재지정 요청을 수신하는 단계; 및
재지정 요청에 따른 투표 노드에 의해, 투표 정보를 생성하여, 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 리더 노드에 전송하여, 리더 노드는 투표 계수 시간에 투표 정보의 양을 계수하여, 재지정 상태를 결정하는 단계를 포함하며;
투표 노드는 리더 노드의 재임기간에 수신된 투표 요청을 처리하지 않는다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하기 위해 사용되는 시간 기반 노드 선출 방법을 더 제공하며, 이 방법은:
모든 노드 중에 리더 노드가 있을 때, 시간 구성 정보에 반송되는 투표 시간에 투표 노드로서의 적어도 2개의 노드에 의해, 리더 노드에 의해 전송되는 후임 노드에 대한 투표 요청을 수신하는 단계; 및
투표 요청에 따른 투표 노드에 의해, 투표 정보를 생성하여 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 후임 노드에 전송하여, 후임 노드가 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드를 결정하는 단계를 포함한다.
본 출원의 실시예는 분산 시스템에서 리더 노드를 결정하도록 구성되는 시간 기반 노드 선출 장치를 더 제공하며, 이 장치는:
모든 노드에 대해 동일한 투표 시간, 동일한 투표 계수 시간 및 동일한 리더 노드 재임기간을 구성하도록 구성되는 구성 모듈; 및
구성된 투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 반송하는 시간 구성 정보를 모든 노드에 전송하도록 구성되는 전송 모듈을 포함하여, 노드는 투표 시간에 투표하고, 투표 계수 시간에 투표수를 계수하며, 투표 계수 결과에 따라 리더 노드를 선출하여, 노드는 리더 노드 재임기간에 따라 주기적 노드 선출을 실행하게 될 수 있다.
본 출원의 실시예는, 분산 시스템에서 리더 노드를 결정하도록 구성되고 캠페인 노드에 배치되는 시간 기반 노드 선출 장치를 더 제공하며, 모든 노드 중에 리더 노드가 없을 때, 이 장치는:
시간 구성 정보에 반송되는 투표 시간에 투표 요청을 모든 노드에 전송하도록 구성되는 투표 요청 모듈;
투표 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하도록 구성되는 수신 모듈;
시간 구성 정보에 반송되는 투표 계수 시간에, 수신된 투표 정보의 양을 계수하도록 구성되는 계수 모듈; 및
계수된 각각의 투표 정보의 양에 따라 리더 노드를 결정하여 지정된 서비스를 처리하도록 구성되는 결정 모듈을 포함한다.
본 출원의 실시예는, 분산 시스템에서 리더 노드를 결정하도록 구성되고 투표 노드에 배치되는 시간 기반 노드 선출 장치를 더 제공하며, 모든 노드 중에 리더 노드가 없을 때, 이 장치는:
시간 구성 정보에 반송되는 투표 시간에, 캠페인 노드에 의해 전송되는 투표 요청을 수신하도록 구성되는 수신 모듈; 및
투표 요청에 따라, 투표 정보를 생성하여, 투표 정보를 투표 시간에 캠페인 노드에 전송하여, 캠페인 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 리더 노드를 결정하도록 구성되는 투표 정보 모듈을 포함한다.
본 출원의 실시예는, 분산 시스템에서 리더 노드를 결정하도록 구성되고 리더 노드에 배치되는 시간 기반 노드 선출 장치를 더 제공하며; 모든 노드 중에 리더 노드가 있으며 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족한다고 결정할 때, 이 장치는:
재지정 요청을 시간 구성 정보에서의 리더 노드 재임기간에 따라 투표 시간에 모든 노드에 전송하도록 구성되는 재지정 요청 모듈;
재지정 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하도록 구성되는 수신 모듈;
투표 계수 시간에, 수신된 투표 정보의 양을 계수하도록 구성되는 계수 모듈; 및
계수된 투표 정보의 양에 따라 재지정 상태를 결정하여, 재지정이 성공한 후 결정된 서비스를 처리하도록 구성되는 결정 모듈을 포함하며;
미리 설정된 기준은 부하 처리 기준 및 데이터 업데이트 정도 중 적어도 하나를 포함한다.
본 출원의 실시예는, 분산 시스템에서 리더 노드를 결정하도록 구성되고 리더 노드에 배치되는 시간 기반 노드 선출 장치를 더 제공하며; 모든 노드 중에 리더 노드가 있으며 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족하지 않는다고 결정할 때, 이 장치는:
시간 구성 정보에서의 리더 노드 재임기간에 따라, 다른 노드 중에 미리 설정된 기준을 충족하여 후임 노드 역할을 하는 노드를 차단하도록 구성되는 차단 모듈; 및
후임 노드에 대한 투표 요청을 다른 노드에 투표 기간에 전송하도록 구성되는 투표 요청 모듈을 포함하여, 후임 노드는 다른 노드에 의해 전송되는 투표 정보를 수신하고, 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드로서 결정된다.
본 출원의 실시예는, 분산 시스템에서 리더 노드를 결정하도록 구성되고 투표 노드에 배치되는 시간 기반 노드 선출 장치를 더 제공하며; 모든 노드 중에 리더 노드가 있을 때, 이 장치는:
시간 구성 정보에 반송되는 투표 시간에, 리더 노드에 의해 전송되는 재지정 요청을 수신하도록 구성되는 수신 모듈; 및
재지정 요청에 따라, 투표 정보를 생성하여, 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 리더 노드에 전송하여, 리더 노드는 투표 계수 시간에 투표 정보의 양을 계수하여, 재지정 상태를 결정하도록 구성되는 투표 정보 모듈을 포함하며;
본 출원의 실시예는, 분산 시스템에서 리더 노드를 결정하도록 구성되고 투표 노드에 배치되는 시간 기반 노드 선출 장치를 더 제공하며; 모든 노드 중에 리더 노드가 있을 때, 이 장치는:
시간 구성 정보에 반송되는 투표 시간에, 리더 노드에 의해 전송되는 후임 노드에 대한 투표 요청을 수신하도록 구성되는 수신 모듈; 및
투표 요청에 따라, 투표 정보를 생성하여 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 후임 노드에 전송하여, 후임 노드가 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드를 결정하며; 리더 노드의 재임기간에 수신된 투표 요청을 처리하지 않도록 구성되는 투표 정보 모듈을 포함한다.
본 출원의 실시예는 시간 기반 노드 선출 방법 및 장치를 제공한다. 이 방법에 의해, 호스트는 모든 노드에 대해 동일한 투표 시간과 동일한 투표 계수 시간을 구성하며, 구성된 투표 시간과 투표 계수 시간을 반송하는 시간 구성 정보를 모든 노드에 전송하여, 노드는 투표 시간에 투표하고; 투표 계수 시간에 투표수를 계수하며, 투표 계수 결과에 따라 리더 노드를 선출한다. 캠페인 노드는, 호스트에 의해 구성되는 동일한 투표 시간과 동일한 투표 계수 시간에 따라 투표 동작과 투표 계수 동작을 동기적으로 실행하여, 투표 및 투표 계수를 위한 각각의 노드의 타이밍이 불확실하다는 종래 기술의 결점을 극복하여, 노드 선출 공정에서 리더 노드를 결정하는 효율이 상당히 개선된다.
여기서 기재한 수반하는 도면이 본 출원의 추가적인 이해를 제공하기 위해 도시되며, 본 출원의 일부분을 이룬다. 본 출원의 예시적인 실시예와 그 설명은 본 출원을 예시하기 위해 사용되지만, 본 출원에 대한 임의의 부적절한 제한을 이루지 않는다.
도 1, 도 2 및 도 5 내지 도 9는 본 출원의 실시예에 따른 시간 기반 노드 선출 공정을 도시한다.
도 3a 내지 도 3d는 본 출원의 실시예에 따른 투표 시간 및 투표 계수 시간의 개략도이다.
도 4는 본 출원의 실시예에 따른 특정 응용 인스턴스에서 노드 선출을 위해 투표 정보를 노드에 의해 전송하는 개략도이다.
도 10 내지 도 16은 본 출원의 실시예에 따른 시간 기반 노드 선출 장치의 개략적인 구조도이다.
본 출원의 목적, 기술적 해법 및 장점을 더 명확히 하기 위해, 본 출원의 기술적 해법은 본 출원의 특정 실시예 및 대응하는 수반하는 도면을 참조하여 이하에서 명확하고 완전하게 설명될 것이다. 명백하게도, 설명한 실시예는 본 출원의 실시예 모두보다는 단지 일부이다. 본 출원의 실시예를 기초로, 창의적인 노력 없이도 당업자가 획득한 모든 다른 실시예는 본 출원의 보호 범위 내에 속한다.
도 1은 본 출원의 실시예에 따른 시간 기반 노드 선출 방법을 도시한다. 이 방법은 분산 시스템에서 리더 노드를 결정하기 위해 사용되며, 이 방법은 다음의 단계를 구체적으로 포함한다:
S101. 호스트는 모든 노드에 대해 동일한 투표 시간, 동일한 투표 계수 시간 및 동일한 리더 노드 재임기간을 구성한다.
본 출원의 실시예에서, 호스트는 분산 시스템에 배치되며, 예컨대 데이터를 스케줄링하고, 데이터를 구성하며, 특정 명령을 전송하는 등과 같이 분산 시스템에서 노드를 관리하도록 구성된다. 호스트는 컴퓨터나 서버와 같은 모니터링 기능을 가진 네트워크 디바이스를 포함하지만, 이들로 제한되지 않는다.
종래 기술에서, 분산 시스템에서의 노드가 노드 선출을 실행할 때, 상이한 노드는 상이한 시간에 투표 요청을 전송하며, 투표 요청에 응답하기 위한 각각의 타이밍도 불확실하다. 그러므로 본 발명의 실시예에서, 분산 시스템에서의 호스트는 분산 시스템에서의 노드에 관한 시간 구성을 실행하여, 노드는 동시에 동일한 타입의 처리 동작을 실행한다. 즉, 단계(S101)에서, 호스트는 상이한 노드에 대해 동일한 투표 시간과 동일한 투표 계수 시간을 구성한다.
본 출원의 실시예에서의 투표 시간과 투표 계수 시간은 각각 (특정 순간의 시간 포인트보다는) 시간 간격이다. 투표 시간과 투표 계수 시간의 시간 간격의 길이(지속기간)는 밀리초(ms), 초(s), 분(min), 시간(h), 일(D), 주 및 달(mon)과 같은 상이한 시간 단위에 의해 형성되는 지속기간을 포함하지만 이것으로 제한되지는 않는다.
게다가, 호스트는 모든 노드에 대한 리더 노드 재임기간을 더 구성하며, 임의의 노드가 리더 노드로서 선출되고 구성된 재임기간이 경과한 후, 그 다음 노드 선출 공정이 시작된다.
S102. 구성된 투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 반송하는 시간 구성 정보를 모든 노드에 전송하여, 노드는 투표 시간에 투표하고, 투표 계수 시간에 투표수를 계수하며, 투표 계수 결과에 따라 리더 노드를 선출하여, 노드는 리더 노드 재임기간에 따라 주기적 노드 선출을 실행하게 될 수 있다.
투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 구성한 후, 호스트는 각각의 노드에게 통지할 필요가 있어서, 각각의 노드는 구성된 투표 시간, 투표 계수 시간 및 리더 노드 재임기간에 따라 대응하는 동작을 실행한다. 그러므로 호스트는, 구성된 투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 반송하는 시간 구성 정보를 각각의 노드에 전송할 수 있다. 이런 식으로, 각각의 노드가 시간 구성 정보를 별도로 수신한 후, 각각의 노드는 수신된 시간 구성 정보에 따라 그 내장 클록을 조정할 수 있어서, 상이한 노드는 투표 시간과 투표 계수 시간을 동기적으로 트리거하여 대응하는 동작을 동기적으로 실행한다.
여기서, 호스트에 의해 구성되는 투표 시간, 투표 계수 시간 및 리더 노드 재임기간이 주기적임을 더 주목해야 한다. 이유는 다음과 같다: 노드가 호스트에 의해 구성되는 투표 시간과 투표 계수 시간에 따라 투표 및 투표 계수 동작을 별도로 실행하여 리더 노드를 결정한 후, 노드와 리더 노드는 대응하는 서비스를 처리하며; 그러나 실제 응용 동안, 분산 시스템에서 처리될 막대한 볼륨의 데이터는 리더 노드 및 다른 노드의 처리 부하 및 데이터 업데이트 정도의 변화를 초래할 수 있으며, 이것은 결국 과부하, 데이터 업데이트 래그 및 리더 노드의 충돌과 같은 상황을 초래할 수 있어서, 리더 노드에 의해 지정된 서비스를 처리하는 효율에 심각하게 영향을 미칠 수 있다. 그러한 경우에, 호스트에 의해 구성되는 투표 시간, 투표 계수 시간 및 리더 노드 재임기간이 주기적이지 않다면(즉, 분산 시스템에서의 노드는 노드 선출을 한 번만 실행하며, 리더 노드가 고장난 후 노드 선출을 실행하지 않는다면), 전체 분산 시스템에서의 처리는 정지될 것이다. 호스트가 투표 시간과 투표 계수 시간을 재구성할 때까지 노드 선출은 다시 실행될 수 없으며, 이점은 분산 시스템의 서비스 처리 효율을 또한 감소시킨다.
그러므로 본 출원의 실시예에서, 호스트에 의해 구성되는 투표 시간, 투표 계수 시간 및 리더 노드 재임기간은 주기적으로 반복할 것이다. 예컨대, 투표 시간의 간격 사이클은 3000ms이다. 즉, 제1 투표 시간의 끝 이래로 3000ms 후, 제2 투표 시간에 도착한다. 다른 예를 위해, 리더 노드 재임기간은 10min이다. 즉, 노드가 리더 노드로서 선출되어 10min 동안 리더 노드로서 역할을 한 후, 그 다음 노드 선출 공정이 시작한다. 확실히, 실제 응용 동안, 투표 시간과 투표 계수 시간의 시간 사이클은 실제 응용의 필요에 따라 조정되거나 설정될 것이며, 여기서 이 내용이 본 출원을 제한하지는 않는다.
앞선 단계(S101 및 S102)의 방법을 사용함으로써, 호스트는 분산 시스템에서 독립적인 노드에 대해 동일한 시간을 구성하여, 이들 노드는 대응하는 투표 및 투표 계수 동작을 동시에 실행할 수 있으며, 원래 시간적으로 비동기적인 노드는 동일한 타입의 동작을 동기적으로 실행할 수 있어서, 리더 노드를 선출하는 효율을 효과적으로 개선할 수 있다.
본 출원의 실시예에서, 호스트가 동일한 투표 시간, 동일한 투표 계수 시간 및 동일한 리더 노드 재임기간을 구성한 후, 상이한 노드가 대응하는 시간 구성 정보에 따라 대응하는 투표 또는 투표 계수 동작을 실행할 수도 있다. 구체적으로, 분산 시스템에서 노드에 관해, 본 출원의 실시예는 시간 기반 노드 선출 방법을 제공한다. 도 2에 도시한 바와 같이, 이 방법은 다음의 단계를 포함한다:
S201. 모든 노드 중에 리더 노드가 없을 때, 캠페인 노드로서의 적어도 하나의 노드는, 시간 구성 정보에 반송되는 투표 시간에 투표 요청을 모든 노드에 전송한다.
분산 시스템이 유지보수나 업데이트와 같은 상태에 들어간 후, 분산 시스템에는 노드 중 리더 노드가 없다. 이 경우, 노드는 리더 노드를 선출할 수도 있다. 실제 응용 시나리오에서, 노드 선출은 적어도 2개의 노드가 있을 때 실행될 수 있으며, 노드 선출 동안, 하나의 노드는 투표 요청을 전송할 수도 있다(여기서 투표 요청은 이 노드 자체와 다른 노드에 전송된다). 그러므로, 본 출원의 실시예의 단계(S201)에서, 투표를 하기 위해 캠페인 노드로서 역할을 하는 적어도 2개의 노드가 있을 것이다. 확실히, 실제 응용 시나리오에서, 복수의 노드가 있을 때, 각각의 노드는 캠페인 노드로서 투표 요청을 다른 노드에게 전송할 수도 있다.
종래 기술과의 상이점은, 본 출원의 실시예에서, 캠페인 노드가 호스트에 의해 구성되는 투표 시간에 따라 투표를 할 것이라는 점, 즉 캠페인 노드가 호스트에 의해 전송되는 시간 구성 정보에 따라 내장 클록 시간 자체를 구성할 것이며, 캠페인 노드의 내장 클록이 구성된 투표 시간에 도달할 때, 캠페인 노드가 투표 요청을 전송하는 동작을 실행할 것이라는 점이다.
투표 요청은 캠페인 노드의 노드 상태와 노드 식별자와 같은 노드 정보를 포함하여, 캠페인 노드의 데이터 업데이트 정도와 데이터 처리 용량과 같은 복수의 노드 상태를 반영하여 다른 노드는 투표 선택을 한다.
S202. 각각의 캠페인 노드는 투표 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신한다.
캠페인 노드에 의해 전송되는 투표 요청을 수신한 후, 다른 노드는, 투표 요청에 따라, 대응하는 투표 정보를 생성할 수도 있으며 투표 정보를 대응하는 캠페인 노드에 전송할 수도 있다.
확실히, 단계(S202)에서, 각각의 캠페인 노드에 의해 투표 정보를 수신하는 공정도 투표 시간에 있다.
S203. 각각의 캠페인 노드는, 시간 구성 정보에 반송되는 투표 계수 시간에, 수신된 투표 정보의 양을 계수한다.
본 출원의 실시예에서, 각각의 캠페인 노드는 호스트로부터 수신되는 시간 구성 정보에 따라 그 내장 클록을 구성할 것이며, 캠페인 노드의 클록이 구성된 투표 계수 시간에 도달할 때, 캠페인 노드는 투표 계수 동작을 실행할 것이다.
S204. 캠페인 노드는, 계수된 각각의 투표 정보의 양에 따라 리더 노드를 결정하여 지정된 서비스를 처리한다.
단계(S204)의 경우, 캠페인 노드에 의해 리더 노드를 결정하는 공정은 투표 계수 시간의 끝 이전에 완료된다. 게다가, 하나의 캠페인 노드가 리더 노드로서 결정된 후, 리더 노드는 통지 메시지를 다른 노드에 전송하여, 리더 노드가 발생되었음을 다른 노드에 통보한다. 리더 노드는 예컨대 분산 시스템에서 메타데이터를 유지보수하고 관리하는 것과 같이 지정된 서비스를 처리할 것이다.
본 출원의 실시예에서, 최종적으로 결정된 리더 노드는 고유함을 주목해야 한다. 이런 식으로, 지정된 서비스는 하나의 리더 노드를 사용함으로써 처리되며, 이것은 지정된 서비스의 회수, 할당 및 처리 효율을 개선할 수 있으며, 한편으론 복수의 리더 노드 사이의 경쟁에 의해 초래되는 서비스 충돌을 또한 회피할 수 있어서 지정된 서비스를 처리할 수 있다.
앞선 단계를 통해, 캠페인 노드는, 호스트에 의해 구성되는 동일한 투표 시간과 동일한 투표 계수 시간에 따라 투표 동작과 투표 계수 동작을 동기적으로 실행하여, 투표 및 투표 계수를 위한 각각의 노드의 타이밍이 불확실하다는 종래 기술의 결점을 극복하여, 노드 선출 공정에서 리더 노드를 결정하는 효율이 상당히 개선된다.
본 출원의 실시예에서, 호스트에 의해 구성되는 투표 시간과 투표 계수 시간은 서로 중첩하지 않아서, 분산 시스템에서 노드는 투표 시간에만 투표 동작을 실행하며, 투표 계수 시간에만 투표 계수 동작을 실행함을 주목해야 한다. 예컨대, 도 3a에 도시한 상황에서, 캠페인 노드는, 시간 구성 정보에 따라 그 내장 클록에 대한 대응하는 투표 시간과 투표 계수 시간을 구성한다. 즉, 도 3a에서, 1000ms에서부터 2000ms까지의 시간이 투표 시간이며, 3500ms에서 4500ms까지의 시간이 투표 계수 시간이다. 다시 말해, 캠페인 노드의 내장 클록이 1000ms에 도달할 때, 각각의 캠페인 노드가 투표 시간에 들어가며, 투표 정보를 다른 노드에 전송하고, 1000ms의 지속기간을 갖는 투표 시간에, 다른 노드에 의해 전송되는 투표 정보를 수신한다. 클록이 2000ms에 도달할 때, 투표는 정지한다. 유사하게, 투표 계수 시간(3500ms 내지 4500ms)에, 캠페인 노드는 수신된 투표 정보의 양을 계수한다. 클록이 4500ms에 도달할 때, 캠페인 노드는 투표 계수를 정지하며, 계수된 투표 정보의 양에 따라 리더 노드를 결정한다. 그러한 방식은 상이한 캠페인 노드가 상이한 구성된 시간에 상이한 동작을 동기적으로 실행함을 보장한다.
도 3b에 도시한 상황에서, 호스트에 의해 구성되는 투표 계수 시간과 투표 시간 사이에는 시간 간격이 없다. 다시 말해, 각각의 캠페인 노드는, 클록이 2000ms에 도달할 때 투표 상태로부터 투표 계수 상태로 바로 전환한다.
그러나 도 3b에 도시한 상황에서, 노드 사이에 투표 정보를 전송하기 위해 시간 기간이 걸릴 필요가 있다. 예컨대, 노드가 생성된 투표 정보를 캠페인 노드에 전송하기 위해 10ms가 걸릴 필요가 있으며, 이 경우, 캠페인 노드의 클록은 투표 정보의 송신 동안 2000ms에 도달한다. 즉, 캠페인 노드는 투표 계수 상태에 들어간다. 캠페인 노드가 투표 계수 상태에 들어간 후 여전히 투표 정보를 수신한다면, 캠페인 노드가 투표 정보의 양을 계수할 때 마지막으로 계수된 투표 정보의 양의 정확도가 영향을 받을 것이다.
그러므로 본 출원의 실시예에서, 캠페인 노드가 투표 계수 시간에 수신된 투표 정보의 양을 계수하기 전에, 이 방법은 다음의 단계: 투표 계수 시간에 도착할 때 캠페인 노드에 의해 투표 정보를 수신하는 것을 정지하는 단계를 더 포함한다.
이런 식으로 도 3b에 도시한 시간 구성에서, 캠페인 노드의 클록이 2000ms에 도달하며 투표 계수 상태에 들어갈 때, 캠페인 노드는 다른 노드에 의해 전송되는 투표 정보를 수신하는 것을 정지한다. 그러므로 이 방식은 계수된 투표 정보의 양의 정확도를 보장한다.
게다가, 본 출원의 실시예에서, 캠페인 노드가 수신된 투표 정보의 양을 계수하여 리더 노드를 결정할 때 각각의 캠페인 노드가 각각의 투표 정보의 양을 독립적으로 계수함을 고려한다면, 캠페인 노드가 캠페인 노드 자체가 계수된 투표 정보의 양에 따라 리더 노드가 되는지를 바로 결정할 수 있음을 보장하기 위해, 문턱치가 미리 설정될 수도 있으며, 문턱치와 계수된 투표 정보의 양에 따라, 캠페인 노드가 리더 노드가 될 수 있는지가 결정된다.
그러므로 본 출원의 실시예에서, 단계(S204)에서, 캠페인 노드에 의해, 계수된 각각의 투표 정보의 양에 따라 리더 노드를 결정하는 단계는 구체적으로 다음의 단계를 포함한다: 캠페인 노드에 의해, 캠페인 노드가 계수된 투표 정보의 양이 미리 설정된 문턱치를 초과한다고 결정할 때 캠페인 노드 자체를 리더 노드로서 결정하는 단계. 문턱치는 모든 노드의 개수의 1/2이다.
분산 시스템에서의 각각의 노드가 분산 시스템에서의 모든 노드의 총 개수를 이미 알고 있음을 여기서 주목해야 한다(본 출원의 구현에서, 호스트는 분산 시스템에서의 노드의 총 개수를 각각의 노드에 전송할 수도 있다). 그러므로 노드의 투표 정보의 양이 모든 노드의 데이터 볼륨의 1/2를 초과할 때, 노드는 리더 노드로서 고유하게 결정될 수 있다.
예컨대: 도 4에 도시한 바와 같이, 분산 시스템은 6개의 노드, 즉 노드 A 내지 F를 포함한다.
투표 시간에, 분산 시스템에서 6개의 노드 모두는 캠페인 노드 역할을 하고, 투표 요청을 다른 노드에 전송하며(투표 요청 전송 공정은 도 4에 도시되지 않음), 투표 정보를 수신한다. 이 예에서, 각각의 노드가 투표 요청을 성공적으로 수신할 수 있으며, 각각의 노드가 투표 요청을 그 자체에게 전송하지 않는다고 가정한다.
이 경우에, 6개의 노드에 대해, 각각의 노드는 투표 요청을 그 자체를 제외하고 다른 노드에게 전송할 수도 있다(실제 응용 동안, 각각의 노드는 투표 요청을 그 자체에게 또한 전송할 수도 있으며, 이 경우에, 용이한 설명을 위해, 각각의 노드는 투표 요청을 그 자체를 제외하고 다른 노드에게 단지 전송한다고 가정한다). 구체적으로, 노드 A는 투표 요청을 다른 5개의 노드(노드 B 내지 노드 F)에 전송한다. 유사하게, 노드 B 내지 노드 F 각각은 투표 요청을 그 자체를 제외하고 다른 5개의 노드에 또한 전송한다. 이런 식으로, 투표 요청을 수신하는 각각의 노드는 투표 정보를 생성하여 투표 정보를 대응하는 캠페인 노드에 전송한다.
그러므로 이 예에서, 각각의 노드는 투표에 참여하는 노드의 개수가 6이며, 문턱치가 3으로 설정된다고 결정할 수 있다.
도 4에 도시한 바와 같이, 노드 A가 생성된 투표 정보를 노드 B에 전송한다고 가정한다. 노드 B는 생성된 투표 정보를 노드 C에 전송한다. 노드 C, 노드 D, 노드 E 및 노드 F는 각각의 생성된 투표 정보를 노드 A에 전송한다.
투표 계수 시간에, 각각의 노드는 그 자체에 의해 수신되는 투표 정보의 양을 계수한다. 구체적으로 노드 A는 수신된 투표 정보의 양이 4임을 계수를 통해 획득하고, 노드 B는 수신된 투표 정보의 양이 1임을 계수를 통해 획득하고, 노드 C는 수신된 투표 정보의 양이 1임을 계수를 통해 획득하고, 남은 노드에서 투표 정보의 양은 0이다.
노드 A의 투표 정보의 양은 미리 설정된 문턱치보다 더 크다; 그러므로 노드 A는 그 자체를 리더 노드로서 결정할 수도 있다. 후속하여, 노드 A는 방송을 다른 노드에 전송하여, 노드 A가 리더 노드가 되었음을 다른 노드에게 통지한다.
그러나 실제 응용에서, 각각의 노드가 노드 선출 동안 "독자적으로" 투표하므로, 캠페인 노드 각각에 의해 수신되는 투표 정보의 양이 미리 설정된 문턱치를 초과하지 않을 가능성이 있다. 여전히 상기 예를 들면: 노드 F에 의해 생성되는 투표 정보가 노드 A에 전송되기보다는 노드 C에 전송되며; 이 경우 노드 A의 투표 정보의 양은 3이며, 노드 B의 투표 정보의 양은 1이며 노드 C의 투표 정보의 양은 2라고 가정한다. 명백히, 3개의 노드 각각의 투표 정보의 양은 미리 설정된 문턱치(즉, 3)를 초과하지 않는다. 그러므로 노드 중 어느 것도 그 자체를 리더 노드로서 결정하지 않는다. 다시 말해, 노드 중 어느 것도 지정된 시간 기간 내에 리더 노드의 통지 메시지를 수신하지 않는다. 이것이 지시하는 점은 리더 노드가 현재의 노드 선출에서 선출되지 않는다는 점이다.
본 출원의 실시예에서 리더 노드가 선출되지 않으면, 리더 노드가 결정될 때까지, 노드는 노드 선출을 다시 실행할 수도 있다.
앞서 언급한 예를 참조하면, 본 출원의 실시예의 바람직한 방식으로서, 노드에 대해 호스트에 의해 구성되는 투표 시간과 투표 계수 시간은 주기적이며, 투표 계수 시간은 상이한 하위 시간으로 더 구체적으로 나눠질 수도 있다. 도 3c에 도시한 바와 같이, 1 사이클에서의 투표 시간과 투표 계수 시간에 대해, 투표 계수 시간은 구체적으로 계수 시간과 통지 시간으로 나뉜다. 그 후, 각각의 노드는, 계수 시간에, 수신된 투표 정보의 양을 계수하며; 리더 노드로부터의 통지가 통지 시간에 수신되지 않는다면, 노드는 그 다음 노드 선출을 실행할 수 있다.
도 3d에 도시한 바와 같이, 본 출원의 실시예에서, 호스트에 의해 할당되는 복수의 선출 시간(각각의 선출 시간은 투표 시간과 투표 계수 시간을 포함함)은 주기적이다. 제1 선출 시간에, 노드가 리더 노드를 결정하지 않는다면, 리더 노드가 선출될 때까지 노드 선출은 제2 선출 시간에 다시 실행될 것이다. 확실히, 리더 노드가 선출된 후, 노드 선출은 시간 구성 정보에서의 리더 노드 재임기간에 따라 주기적으로 실행될 것이며, 특정한 공정이 이하에서 상세하게 설명될 것이다. 세부 내용은 여기서 기재하지 않는다.
도 2에 도시한 방법의 S201 내지 S204는 캠페인 노드가 투표 요청을 다른 노드에 전송하고 투표 정보를 수신하여 리더 노드를 결정하는 공정이다. 분산 시스템의 각각의 노드는 투표 노드로서 역할을 할 수도 있어서 캠페인 노드에 의해 전송되는 투표 요청을 수신하고, 투표 요청에 따라 대응하는 투표 정보를 생성할 수도 있다(심지어 캠페인 노드는 다른 캠페인 노드에 의해 전송되는 투표 요청을 또한 수신할 수도 있으며, 이 경우, 캠페인 노드는 투표 노드로서 또한 간주될 수도 있다). 그러므로 투표 정보를 생성하는 노드에 관해, 본 출원의 실시예는 시간 기반 노드 선출 방법을 더 제공한다. 도 5에 도시한 바와 같이, 이 방법은 분산 시스템에서 리더 노드를 결정하는데 사용되며, 이 방법은 구체적으로 다음의 단계를 포함한다:
S501. 모든 노드 중에 리더 노드가 없을 때, 투표 노드로서의 적어도 2개의 노드는, 시간 구성 정보에 반송되는 투표 시간에, 캠페인 노드에 의해 전송되는 투표 요청을 수신한다.
본 출원의 실시예에서, 리더 노드가 결정되지 않을 때, 분산 시스템에서의 각각의 노드는 투표 노드로서 역할을 할 수도 있어서, 캠페인 노드에 의해 전송되는 투표 요청을 수신할 수도 있다.
유사하게, 투표 노드는 호스트에 의해 전송되는 시간 구성 정보를 또한 수신할 수도 있고, 투표 노드에서 클록을 조정하여, 투표 시간과 투표 계수 시간을 구성할 수도 있다.
S502. 투표 노드는, 투표 요청에 따라, 투표 정보를 생성하여, 투표 정보를 투표 시간에 캠페인 노드에 전송하여, 캠페인 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 리더 노드를 결정한다.
분산 시스템에서, 투표 노드는 적어도 하나의 캠페인 노드에 의해 전송되는 투표 요청을 수신할 수도 있다(실제 응용 시나리오에서, 투표 노드는 보통 복수의 캠페인 노드에 의해 전송되는 투표 요청을 수신한다). 단 하나의 리더 노드가 마지막으로 선출되므로, 투표 노드는 하나의 캠페인 노드에 투표한다. 즉, 투표 노드는 수신된 투표 요청에 따라 하나의 캠페인 노드를 선택하며, 선택된 노드에 대한 투표 정보를 생성하여, 투표 정보를 선택된 노드에 전송한다.
앞서 언급한 예를 통해, 분산 시스템에서 각각의 투표 노드는 동일한 투표 시간을 갖게 구성되므로, 각각의 투표 노드는 동일한 투표 시간에 캠페인 노드를 선택할 수 있고, 대응하는 투표 요청을 생성할 수 있으며 투표 요청을 선택된 캠페인 노드에 전송할 수 있다. 그러므로 투표 공정의 동기가 보장되며, 노드 선출 효율도 개선된다.
캠페인 노드가 투표 요청을 투표 노드에 전송할 때, 투표 요청은 보통 캠페인 노드의 노드 정보를 반송함을 주목해야 한다. 이런 식으로, 투표 노드가 복수의 투표 요청을 수신한다면, 투표 노드는 투표 요청에 반송되는 노드 정보에 따라 캠페인 노드를 선택할 수 있다.
그러므로 본 출원의 실시예에서, 투표 정보를 생성하여, 투표 정보를 캠페인 노드에 전송하는 것은 구체적으로 다음을 포함한다: 투표 노드에 의해, 수신되는 투표 요청에 수반되는 노드 정보를 결정하는 것; 노드 정보에 따라 캠페인 노드의 노드 상태 가중치를 결정하는 것; 및 최대 노드 상태 가중치를 갖는 캠페인 노드를 선택하여, 캠페인 노드에 대한 투표 정보를 생성하고, 투표 정보를 선택된 캠페인 노드에 전송하는 것.
노드 정보는, 캠페인 노드의 데이터 업데이트 정보, 부하 처리 정보 및 하드웨어 구성 정보와 같은 캠페인 노드의 처리 상태와 데이터 처리 용량을 반영할 수 있는 정보를 포함하지만 이들로 제한되지는 않는다. 그러므로 투표 노드는 노드 정보에 따라 상이한 캠페인 노드의 노드 상태 가중치를 결정할 수 있어서, 상이한 캠페인 노드의 포괄적인 상태 레벨을 반영할 수 있다. 그러므로 본 출원의 실시예에서, 투표 노드는 최대 노드 상태 가중치를 갖는 캠페인 노드를 선택하고, 대응하는 투표 정보를 생성하여, 투표 정보를 캠페인 노드에 전송하여, 투표 공정을 완료할 수도 있다.
도 2에 도시한 바와 같은 방법의 S201 내지 S204와 도 5에 도시한 바와 같은 방법의 S501 및 S502는 모두, 노드가 투표 시간에 따라 리더 노드를 결정하고, 분산 시스템에 리더 노드가 없을 때 호스트에 의해 구성되는 투표 계수 시간을 결정하는 공정이다. 리더 노드가 분산 시스템에 이미 존재한다면, 본 출원의 실시예는 시간 기반 노드 선출 방법을 더 제공한다. 도 6에 도시한 바와 같이, 이 방법은 분산 시스템에서 리더 노드를 결정하는데 사용되며, 구체적으로는 다음의 단계를 포함한다:
S601. 모든 노드 중에 리더 노드가 있으며 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족한다고 결정할 때, 리더 노드는, 재지정 요청을 시간 구성 정보에서의 리더 노드 재임기간에 따라 투표 시간에 모든 노드에 전송한다.
본 출원의 실시예에서, 리더 노드가 도 2에 도시한 바와 같은 방법의 S201 내지 S204와 도 5에 도시한 바와 같은 방법의 S501 및 S502를 통해 결정된 후, 그 다음 노드 선출은 리더의 재임기간이 막 끝나게 될 때 실행될 필요가 있다. 이 경우에, 리도 노드 이외의 노드는 투표 요청을 전송하지 못하지만, 리더 노드만 재지정 요청을 다른 노드에 전송할 수 있다.
분산 시스템이 실제 응용 동안 막대한 볼륨의 정보를 처리하므로, 리더 노드에 의해 유지되는 (메타데이터와 같은) 데이터의 업데이트에 래그나, 리더 노드의 처리 부하가 계속적으로 증가하는 상황이 있을 수 있어서, 결국 그 서비스 처리 효율 등이 감소할 수도 있다. 그러므로 본 출원의 실시예에서, 그 다음 투표 시간에 도착할 때, 현재의 리더 노드는 그 노드 상태가 미리 설정된 기준을 충족하는지를 결정할 수 있으며, 만약 예라면, 리더 노드의 처리 부하 및 데이터 업데이트 정도가 지정된 서비스를 처리하는 효율에 영향을 미치지 않음을 지시하며, 이 경우에만 리더 노드는 재지정 요청을 다른 노드에 전송한다.
미리 설정된 기준은 부하 처리 기준, 데이터 업데이트 정도 등을 포함하지만 이들로 제한되지는 않는다. 상이한 노드가 본 출원의 실시예에서 상이한 하드웨어 구성(처리 성능, 저장 공간 등)을 가질 수 있으므로, 노드의 미리 설정된 기준도 상이할 수도 있다. 이 경우에, 각각의 노드는 그 자신의 하드웨어 구성에 따라 대응하는 미리 설정된 기준을 생성할 수도 있다.
보통, 각각의 노드의 미리 설정된 기준은 표준 값의 형태로 미리 설정될 수도 있다. 예컨대, 노드에 대해, 부하 처리 기준은, 중앙처리장치(CPU)의 사용율이 80%를 초과하지 않는다는 것일 수도 있다. 다시 말해, CPU의 사용이 80%를 초과하지 않을 때, 노드는 미리 설정된 기준을 충족한다고 간주될 수도 있다.
다른 예로: 노드에 대해, 데이터 업데이트 정도 기준은, 데이터 업데이트 빈도가 업데이트 당 10min을 초과하는 것일 수도 있다(데이터 업데이트 빈도는 데이터 업데이트 정도를 반영할 수 있다). 다시 말해, 노드의 데이터 업데이트 빈도가 업데이트 당 10min을 초과할 때, 노드는 미리 설정된 기준을 충족한다고 간주될 수 있다.
확실히, 상기 내용은 본 출원의 실시예에 제공되는 미리 설정된 기준의 단지 예이며, 실제 응용 시나리오에서, 각각의 노드의 미리 설정된 기준은 실제 응용의 필요에 따라 설정할 수도 있다. 여기서 이 내용이 본 출원을 제한하지는 않는다.
S602. 리더 노드는 재지정 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신한다.
재지정 요청을 수신하는 노드는 재지정 요청에 따라 대응하는 투표 정보를 생성하여, 이 투표 정보를 리더 노드에 전송할 수도 있다.
S603. 리더 노드는, 투표 계수 시간에, 수신된 투표 정보의 양을 계수한다.
S604. 리더 노드는, 계수된 투표 정보의 양에 따라 재지정 상태를 결정하여, 재지정이 성공한 후 지정된 서비스를 처리한다.
본 출원의 실시예에서, 리더 노드가 재지정 요청을 각각의 노드에 전송할 때, 분산 시스템에는 다른 캠페인 노드가 없다. 즉, 각각의 노드는 리더 노드로부터 재지정 요청을 단지 수신한다. 그러므로 리더 노드는 보통 성공적으로 재지정된다.
리더 노드가 성공적으로 재지정된 후, 리더 노드는 통지 메시지를 각각의 노드에 전송할 수도 있어서, 리더 노드가 성공적으로 재지정되었다고 각각의 노드에 통지할 수도 있다. 그러므로 성공적으로 재지정된 리더 노드는 지정된 서비스를 계속 처리하여, 분산 시스템에서 다른 노드는 통상적으로 서비스를 계속 처리한다.
도 6에 도시한 바와 같은 방법의 S601 내지 S604의 경우에, 본 출원의 실시예는 시간 기반 노드 선출 방법을 더 제공한다. 도 7에 도시한 바와 같이, 이 방법은 분산 시스템에서 리더 노드를 결정하는데 사용되며, 구체적으로 다음의 단계를 포함한다:
S701. 모든 노드 중에 리더 노드가 있을 때, 투표 노드로서의 적어도 2개의 노드는, 시간 구성 정보에 반송되는 투표 시간에, 리더 노드에 의해 전송되는 재지정 요청을 수신한다.
S702. 투표 노드는, 재지정 요청에 따라, 투표 정보를 생성하여, 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 리더 노드에 전송하여, 리더 노드는 투표 계수 시간에 투표 정보의 양을 계수하여, 재지정 상태를 결정하며; 게다가, 더 노드의 재임기간에, 투표 노드는 리더 노드에 의해 전송된 투표 요청을 단지 수신한다.
도 6에 도시한 바와 같은 방법의 S601 내지 S604와, 도 7에 도시한 바와 같은 방법의 S701 및 S702를 통해, 리더 노드가 분산 시스템에 이미 존재한다면, 그 다음 투표 시간이 도착할 때, 분산 시스템에서의 모든 노드는 투표 상태에 동기적으로 들어갈 수도 있으며, 리더 노드만 재지정 요청을 다른 노드에 전송하며; 재지정 요청을 수신하는 노드는 생성된 투표 요청을 리더 노드에 전송할 수도 있다. 이런 식으로, 다른 노드는 투표 요청을 서로에게 전송하지 않아 새로운 리더 노드를 결정하며, 그에 따라 각각의 노드의 처리 부하를 효과적으로 감소시키며, 또한 리더 노드 선출 효율을 개선한다. 게다가, 리더 노드의 재임기간에, 투표 노드가 다른 노드에 의해 전송되는 투표 요청을 수신하지 않을 것이다. 이런 식으로, 각각의 투표 노드는 리더 노드에 의해 전송되는 투표 요청을 단지 수신함을 보장할 수 있다.
확실히, 실제 응용 동안, 분산 시스템에서의 각각의 노드는 막대한 양의 서비스를 처리한다. 리더 노드의 처리 부하는 증가할 수 있으며, 리더 노드의 데이터 업데이트가 래그가 걸릴 수도 있는 등으로 인해, 리더 노드가 미리 설정된 기준을 충족하지 않게 된다. 이 경우에, 본 출원의 실시예는 시간 기반 노드 선출 방법을 제공한다. 도 8에 도시한 바와 같이, 이 방법은 분산 시스템에서 리더 노드를 결정하는데 사용되며, 구체적으로 다음의 단계를 포함한다:
S801. 모든 노드 중에 리더 노드가 있으며 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족하지 않는다고 결정할 때, 리더 노드는, 시간 구성 정보에서의 리더 노드 재임기간에 따라, 다른 노드 중에 미리 설정된 기준을 충족하여 후임 노드 역할을 하는 노드를 차단한다.
리더 노드가, 리더 노드 자체가 미리 설정된 기준을 충족하지 않는다고 결정할 때, 리더 노드는 과도하게 높은 처리 부하나 과도하게 낮은 데이터 업데이트 정도를 가질 수 있음을 지시한다. 이 경우에, 지정된 서비스를 처리하기 위한 리더 노드의 효율은 심각하게 영향을 받을 것이다. 즉, 현재의 리더 노드는 지정된 서비스를 처리하는데 더 이상 적절하지 않다.
그러므로 본 출원의 실시예에서, 리더 노드의 재임기간이 끝나기 전, 리더 노드는 다른 노드로부터의 후임 노드를 차단할 수 있다. 본 출원의 실시예에서의 방식으로서, 리더 노드는 문의 요청을 다른 노드에 전송할 수도 있어서, 다른 노드의 노드 정보를 문의하며, 노드 정보에 따라 후임 노드를 선택할 수도 있다. 본 출원의 실시예에서의 다른 방식으로서, 호스트는 또한 리더 노드를 명시할 수도 있어서 후임 노드를 선택할 수도 있다. 즉, 새로운 리더 노드가 선택된다. 그 후, 재선택 명령을 수신한 후, 현재의 리더 노드는, 다른 노드로부터, 리더 노드의 후임 노드로서 노드를 선택할 수도 있다. 확실히, 앞선 방식은 본 출원을 제한하지 않는다.
S802. 리더 노드는, 후임 노드에 대한 투표 요청을 다른 노드에 투표 기간에 전송하여, 후임 노드는 다른 노드에 의해 전송되는 투표 정보를 수신하고, 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드로서 결정된다.
투표 시간에서, 리더 노드에 의해 다른 노드에 전송되는 투표 요청은 후임 노드의 노드 식별자를 반송한다. 즉, 투표 요청을 수신하는 노드는 대응하는 투표 정보를 생성하여, 투표 정보를 후임 노드의 노드 식별자에 따라 후임 노드에 전송할 수도 있다. 이런 식으로, 각각의 노드의 투표 정보는 후임 노드에만 전송되지만, 현재의 리더 노드에 전송되지 않는다.
명백히, 후임 노드만 각각의 노드에 의해 전송되는 투표 정보를 수신한다. 그러므로 투표 계수 시간에, 후임 노드는 수신된 투표 정보의 양을 계수하여, 리더 노드로서 결정된다. 후임 노드는 또한 통지 메시지를 각각의 노드에 전송하여, 후임 노드가 새로운 리더 노드가 됨을 각각의 노드에게 통지한다.
도 8에 도시한 바와 같은 방법의 S801 및 S802의 경우에, 본 출원의 실시예는 시간 기반 노드 선출 방법을 더 제공한다. 도 9에 도시한 바와 같이, 이 방법은 분산 시스템에서 리더 노드를 결정하는데 사용되며, 구체적으로 다음의 단계를 포함한다:
S901. 모든 노드 중에 리더 노드가 있을 때, 투표 노드로서의 적어도 2개의 노드가, 시간 구성 정보에 반송되는 투표 시간에, 리더 노드에 의해 전송되는 후임 노드에 대한 투표 요청을 수신한다.
S902. 투표 노드는, 투표 요청에 따라, 투표 정보를 생성하여 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 후임 노드에 전송하여, 후임 노드가 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드를 결정한다.
유사하게, 단계(S901 및 S902)에서, 리더 노드에 의해 전송되는 투표 요청은 후임 노드의 노드 식별자를 반송한다. 그러므로 투표 노드는 투표 요청에 따라 대응하는 투표 정보를 생성하여, 후임 노드의 노드 식별자에 따라 투표 정보를 후임 노드에 전송할 수 있지만, 투표 정보를 다른 노드에 전송하지 않는다. 이점은, 후임 노드가 매끄럽게 새로운 리더 노드가 될 수 있음을 보장한다.
앞선 방법과 예를 통해서, 리더 노드가 분산 시스템에 존재하지 않을 때, 분산 시스템의 호스트는 노드에 대해 동일한 투표 시간과 동일한 투표 계수 시간을 구성하여, 노드는 투표 시간에 동기적으로 투표하며, 투표 계수 시간에 동기적으로 투표를 계수한다. 이런 식으로, 투표 또는 투표 계수에 대한 각각의 노드의 불확실한 타이밍을 회피하여, 분산 시스템에서 노드에 의한 리더 노드 선출의 효율을 상당히 개선한다.
게다가, 리더 노드가 선출된 후, 각각의 노드는 여전히 주기적인 투표 시간과 투표 계수 시간에 따라 동작을 실행한다. 그 다음 투표 시간과 투표 계수 시간에 도착할 때, 리더 노드는 그 자신의 상태를 결정하여, 리더 노드 자체에 대한 투표 요청이나 후임 노드에 대한 투표 요청을 생성할 수 있어서, 다른 노드는, 투표 요청에 따라, 투표 정보를 생성하여 투표 정보를 대응하는 노드에 전송한다. 이러한 방식은, 지정된 서비스를 처리하기 위해 선출된 리더 노드가 항상 고성능 상태에 있어서, 전체 분산 시스템의 서비스 처리 효율이 개선될 수 있음을 보장한다.
상기 구성은 본 출원의 실시예에서 제공되는 시간 기반 노드 선출 방법이다. 동일한 생각을 기반으로, 본 출원의 실시예는 도 10에 도시한 바와 같이 시간 기반 노드 선출 장치를 더 제공한다.
도 10에서, 시간 기반 노드 선출 장치는 구성 모듈(1001)과 전송 모듈(1002)을 포함하며, 여기서,
구성 모듈(1001)은, 모든 노드에 대해 동일한 투표 시간, 동일한 투표 계수 시간 및 동일한 리더 노드 재임기간을 구성하도록 구성되며;
전송 모듈(1002)은, 구성된 투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 반송하는 시간 구성 정보를 모든 노드에 전송하도록 구성되어, 노드는 투표 시간에 투표하고, 투표 계수 시간에 투표수를 계수하며, 투표 계수 결과에 따라 리더 노드를 선출하여, 노드는 리더 노드 재임기간에 따라 주기적 노드 선출을 실행하게 될 수 있다.
도 10에 도시한 경우에, 본 출원의 실시예는 시간 기반 노드 선출 장치를 더 제공한다. 도 11에 도시한 바와 같이, 이 장치는 분산 시스템에서 리더 노드를 결정하도록 구성되며, 캠페인 노드에 배치된다.
도 11에서, 시간 기반 노드 선출 장치는 투표 요청 모듈(1101), 수신 모듈(1102), 계수 모듈(1103) 및 결정 모듈(1104)을 포함하며, 여기서 모든 노드 중에 리더 노드가 없을 때,
투표 요청 모듈(1101)은, 시간 구성 정보에 반송되는 투표 시간에 투표 요청을 모든 노드에 전송하도록 구성되고;
수신 모듈(1102)은, 투표 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하도록 구성되고;
계수 모듈(1103)은, 시간 구성 정보에 반송되는 투표 계수 시간에, 수신된 투표 정보의 양을 계수하도록 구성되며;
결정 모듈(1104)은, 계수된 각각의 투표 정보의 양에 따라 리더 노드를 결정하여 지정된 서비스를 처리하도록 구성된다.
본 출원의 실시예에서, 수신 모듈(1102)은, 투표 계수 시간에 도착할 때 투표 정보를 수신하는 것을 정지하도록 더 구성된다.
결정 모듈(1104)은, 계수된 투표 정보의 양이 미리 설정된 문턱치를 초과한다고 결정할 때 캠페인 노드를 리더 노드로서 결정하도록 구체적으로 구성된다.
문턱치는 모든 노드의 수의 1/2이다.
본 출원의 실시예는 시간 기반 노드 선출 장치를 더 제공한다. 도 12에 도시한 바와 같이, 이 장치는 분산 시스템에서 리더 노드를 결정하도록 구성되며, 투표 노드에 배치된다.
도 12에서, 시간 기반 노드 선출 장치는 수신 모듈(1201)과 투표 정보 모듈(1202)을 포함하며, 모든 노드 중에 리더 노드가 없을 때,
수신 모듈(1201)은, 시간 구성 정보에 반송되는 투표 시간에, 캠페인 노드에 의해 전송되는 투표 요청을 수신하도록 구성되며;
투표 정보 모듈(1202)은, 투표 요청에 따라, 투표 정보를 생성하여, 투표 정보를 투표 시간에 캠페인 노드에 전송하여, 캠페인 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 리더 노드를 결정하도록 구성된다.
본 출원의 실시예에서, 투표 정보 모듈(1202)은 수신된 투표 요청에 반송되는 노드 정보를 결정하고, 노드 정보에 따라 캠페인 노드의 노드 상태 가중치를 결정하고, 최대 노드 상태 가중치를 갖는 캠페인 노드를 선택하고, 캠페인 노드에 대한 투표 정보를 생성하여 투표 정보를 선택된 캠페인 노드에 전송하도록 구체적으로 구성된다.
본 출원의 실시예는 시간 기반 노드 선출 장치를 더 제공한다. 도 13에 도시한 바와 같이, 이 장치는 분산 시스템에서 리더 노드를 결정하도록 구성되며, 리더 노드에 배치된다.
도 13에서, 시간 기반 노드 선출 장치는 재지정 요청 모듈(1301), 수신 모듈(1302), 계수 모듈(1303) 및 결정 모듈(1304)을 포함하며, 모든 노드 중에 리더 노드가 있으며, 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족한다고 결정할 때,
재지정 요청 모듈(1301)은, 재지정 요청을 시간 구성 정보에서의 리더 노드 재임기간에 따라 투표 시간에 모든 노드에 전송하도록 구성되고;
수신 모듈(1302)은, 재지정 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하도록 구성되고;
계수 모듈(1303)은, 투표 계수 시간에, 수신된 투표 정보의 양을 계수하도록 구성되며;
결정 모듈(1304)은, 계수된 투표 정보의 양에 따라 재지정 상태를 결정하여, 재지정이 성공한 후 지정된 서비스를 처리하도록 구성된다.
미리 설정된 기준은 부하 처리 기준 및 데이터 업데이트 정도 중 적어도 하나를 포함한다.
본 출원의 실시예는 시간 기반 노드 선출 장치를 더 제공한다. 도 14에 도시한 바와 같이, 이 장치는 분산 시스템에서 리더 노드를 결정하도록 구성되며 리더 노드에 배치된다.
도 14에서, 시간 기반 노드 선출 장치는 차단 모듈(1401)과 투표 요청 모듈(1402)을 포함하며, 모든 노드 중에 리더 노드가 있으며 리더 노드가 리더 노드 자체가 미리 설정된 기준을 충족하지 않는다고 결정할 때,
차단 모듈(1401)은, 시간 구성 정보에서의 리더 노드 재임기간에 따라, 다른 노드 중에 미리 설정된 기준을 충족하여 후임 노드 역할을 하는 노드를 차단하도록 구성되며;
투표 요청 모듈(1402)은, 후임 노드에 대한 투표 요청을 다른 노드에 투표 기간에 전송하도록 구성되어, 후임 노드는 다른 노드에 의해 전송되는 투표 정보를 수신하고, 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드로서 결정된다.
본 출원의 실시예는 시간 기반 노드 선출 장치를 더 제공한다. 도 15에 도시한 바와 같이, 이 장치는 분산 시스템에서 리더 노드를 결정하도록 구성되며 리더 노드에 배치된다.
도 15에서, 시간 기반 노드 선출 장치는 수신 모듈(1501)과 투표 정보 모듈(1502)을 포함하며, 모든 노드 중에 리더 노드가 있을 때,
수신 모듈(1501)은, 시간 구성 정보에 반송되는 투표 시간에, 리더 노드에 의해 전송되는 재지정 요청을 수신하도록 구성되며;
투표 정보 모듈(1502)은, 재지정 요청에 따라, 투표 정보를 생성하여, 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 리더 노드에 전송하여, 리더 노드는 투표 계수 시간에 투표 정보의 양을 계수하여, 재지정 상태를 결정하도록 구성되며; 리더 노드의 재임기간에 리더 노드에 의해 전송되는 투표 요청을 단지 수신하도록 구성된다.
본 출원의 실시예는 시간 기반 노드 선출 장치를 더 제공한다. 도 16에 도시한 바와 같이, 이 장치는 분산 시스템에서 리더 노드를 결정하도록 구성되며 투표 노드에 배치된다.
도 16에서, 시간 기반 노드 선출 장치는 수신 모듈(1601)과 투표 정보 모듈(1602)을 포함하며, 모든 노드 중에 리더 노드가 있을 때,
수신 모듈(1601)은, 시간 구성 정보에 반송되는 투표 시간에, 리더 노드에 의해 전송되는 후임 노드에 대한 투표 요청을 수신하도록 구성되며; 및
투표 정보 모듈(1602)은, 투표 요청에 따라, 투표 정보를 생성하여 투표 정보를 시간 구성 정보에 반송되는 투표 시간에 후임 노드에 전송하여, 후임 노드가 투표 계수 시간에 투표 정보의 양을 계수하여, 새로운 리더 노드를 결정하도록 구성된다.
통상의 구성에서, 컴퓨팅 디바이스는 하나 이상의 프로세서(CPUs), 입출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는 예컨대 판독 전용 메모리(ROM) 또는 플래시 RAM과 같은 컴퓨터 판독 가능 매체에서의 휘발성 메모리, 랜덤 액세스 메모리(RAM) 및/또는 비휘발성 메모리 등을 포함한다. 메모리는 컴퓨터 판독 가능 매체의 예이다.
컴퓨터 판독 가능 매체는 이동 가능 및 이동 불가능 매체뿐만 아니라 비휘발성 및 휘발성 매체를 포함하며, 임의의 방법이나 기술에 의해 정보 저장을 구현할 수 있다. 정보는 컴퓨터 판독 가능 명령, 데이터 구조 및 프로그램 또는 다른 데이터의 모듈일 수 있다. 컴퓨터의 저장 매체는 예컨대, 상 변화 메모리(PRAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 다른 타입의 랜덤 액세스 메모리(RAMs), 판독 전용 메모리(ROM), 전기적으로 소거 가능한 프로그램 가능 판독 전용 메모리(EEPROM), 플래시 메모리나 다른 메모리 기술, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD) 또는 다른 광학 저장기, 카세트 테이프, 자기 테이프/자기 디스크 저장 또는 다른 자기 저장 디바이스, 또는 임의의 다른 비-송신 매체를 포함하지만 이들로 제한되지 않으며, 컴퓨팅 디바이스에 액세스 가능한 정보를 저장하는데 사용될 수 있다. 여기서의 규정에 따라, 컴퓨터 판독 가능 매체는 변조된 데이터 신호 및 반송파와 같은 일시적 매체를 포함하지 않는다.
용어, "포함하다" 또는 임의의 다른 그 파생어가 비-배제적 포함을 커버하고자 하여, 일련의 요소를 포함하는 공정, 방법, 물품 또는 디바이스가 이들 요소뿐만 아니라 명백히 나열하지 않은 요소를 포함하거나 이 공정, 방법, 물품 또는 디바이스의 내재된 요소를 더 포함함을 더 주목해야 한다. 더한 제한의 부재 시에, "을 포함하는"에 의해 규정되는 요소는, 이 요소를 포함하는 공정, 방법, 물품 또는 디바이스가 다른 동일 요소를 더 가짐을 배제하지 않는다.
당업자는, 본 출원의 실시예가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 그러므로 본 출원의 실시예는 전체 하드웨어 실시예, 전체 소프트웨어 실시예 또는 소프트웨어와 하드웨어를 결합하는 실시예로서 구현될 수도 있다. 게다가, 본 출원은, 컴퓨터 사용 가능 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능 저장 매체(자기 디스크 메모리, CD-ROM, 광학 메모리 등을 포함하지만 이들로 제한되지 않음) 상에서 구현되는 컴퓨터 프로그램 제품의 형태일 수도 있다.
상기 내용은, 본 출원을 제한하지 않고자 하는 본 출원의 단지 실시예이다. 당업자를 위해, 여러 변화와 변경이 본 출원에 이뤄질 수도 있다. 본 출원의 사상과 원리 내에 이뤄진 임의의 변경, 등가 교체, 개선 등이 본 출원의 청구범위의 범위에 포함되어야 한다.

Claims (20)

  1. 분산 시스템에서 리더(leader) 노드를 결정하기 위해 사용되는, 시간 기반 노드 선출 방법(time-based node election method)에 있어서,
    호스트에 의해, 모든 노드에 대해 동일한 투표 시간(voting time), 동일한 투표 계수 시간(vote counting time) 및 동일한 리더 노드 재임기간(leader node tenure)을 구성하는 단계; 및
    상기 노드가 상기 투표 시간에 투표하고, 상기 투표 계수 시간에 투표수를 계수하고, 투표 계수 결과에 따라 리더 노드를 선출하며, 상기 노드가 상기 리더 노드 재임기간에 따라 주기적 노드 선출을 실행하도록 인에이블되도록, 구성된 상기 투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 반송하는(carry) 시간 구성 정보를 상기 모든 노드에 전송하는 단계
    를 포함하는, 시간 기반 노드 선출 방법.
  2. 분산 시스템에서 리더 노드를 결정하기 위해 사용되는, 시간 기반 노드 선출 방법에 있어서,
    모든 노드 중에 리더 노드가 없을 때, 캠페인 노드로서의 적어도 하나의 노드에 의해, 시간 구성 정보에 반송되는 투표 시간에 투표 요청을 상기 모든 노드에 전송하는 단계;
    각각의 캠페인 노드에 의해, 상기 투표 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하는 단계;
    각각의 캠페인 노드에 의해, 상기 시간 구성 정보에 반송되는 투표 계수 시간에 수신된 투표 정보의 양을 계수하는 단계; 및
    상기 캠페인 노드에 의해, 지정된 서비스를 처리하기 위하여 계수된 각각의 상기 투표 정보의 양에 따라 리더 노드를 결정하는 단계
    를 포함하는, 시간 기반 노드 선출 방법.
  3. 제2항에 있어서,
    상기 캠페인 노드가 상기 투표 계수 시간에, 수신된 상기 투표 정보의 양을 계수하기 전에, 상기 방법은:
    상기 캠페인 노드에 의해, 상기 투표 계수 시간에 도착할 때 상기 투표 정보를 수신하는 것을 정지하는 단계를 더 포함하는, 시간 기반 노드 선출 방법.
  4. 제2항에 있어서,
    상기 캠페인 노드에 의해, 계수된 각각의 상기 투표 정보의 양에 따라 리더 노드를 결정하는 단계는 구체적으로:
    상기 캠페인 노드에 의해, 상기 캠페인 노드가 계수된 상기 투표 정보의 양이 미리 설정된 문턱치를 초과한다고 판정할 때, 상기 캠페인 노드 자체를 리더 노드로서 결정하는 단계를 포함하며,
    상기 문턱치는 상기 모든 노드의 수의 1/2인 것인, 시간 기반 노드 선출 방법.
  5. 분산 시스템에서 리더 노드를 결정하기 위해 사용되는, 시간 기반 노드 선출 방법에 있어서,
    모든 노드 중에 리더 노드가 없을 때, 시간 구성 정보에 반송되는 투표 시간에 투표 노드로서의 적어도 2개의 노드에 의해, 캠페인 노드에 의해 전송되는 투표 요청을 수신하는 단계; 및
    상기 투표 요청에 따라 상기 투표 노드에 의해, 상기 캠페인 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 리더 노드를 결정하도록, 상기 투표 정보를 생성하여 상기 투표 정보를 상기 투표 시간에 상기 캠페인 노드에 전송하는 단계
    를 포함하는, 시간 기반 노드 선출 방법.
  6. 제5항에 있어서,
    상기 투표 정보를 생성하여 상기 투표 정보를 상기 캠페인 노드에 전송하는 단계는 구체적으로:
    상기 투표 노드에 의해, 수신된 상기 투표 요청에 반송되는 노드 정보를 결정하는 단계;
    상기 노드 정보에 따라 상기 캠페인 노드의 노드 상태 가중치를 결정하는 단계; 및
    최대 노드 상태 가중치를 갖는 캠페인 노드를 선택하고, 상기 캠페인 노드에 대한 투표 정보를 생성하여, 상기 투표 정보를 선택된 상기 캠페인 노드에 전송하는 단계
    를 포함하는 것인, 시간 기반 노드 선출 방법.
  7. 분산 시스템에서 리더 노드를 결정하기 위해 사용되는, 시간 기반 노드 선출 방법에 있어서,
    모든 노드 중에 리더 노드가 있고 상기 리더 노드가 상기 리더 노드 자체가 미리 설정된 기준을 충족한다고 결정할 때, 상기 리더 노드에 의해, 시간 구성 정보에서의 리더 노드 재임기간에 따라 투표 시간에 상기 모든 노드에 재지정(reappointment) 요청을 전송하는 단계;
    상기 리더 노드에 의해, 상기 재지정 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하는 단계;
    투표 계수 시간에 상기 리더 노드에 의해, 수신된 상기 투표 정보의 양을 계수하는 단계; 및
    상기 리더 노드에 의해, 계수된 상기 투표 정보의 양에 따라 재지정 상태를 결정하여, 재지정이 성공한 후 지정된 서비스를 처리하는 단계
    를 포함하며,
    상기 미리 설정된 기준은 부하 처리 기준 및 데이터 업데이트 정도 중 적어도 하나를 포함하는 것인, 시간 기반 노드 선출 방법.
  8. 분산 시스템에서 리더 노드를 결정하기 위해 사용되는, 시간 기반 노드 선출 방법에 있어서,
    모든 노드 중에 리더 노드가 있고 상기 리더 노드가 상기 리더 노드 자체가 미리 설정된 기준을 충족하지 않는다고 결정할 때, 시간 구성 정보의 리더 노드 재임기간에 따라 상기 리더 노드에 의해, 다른 노드 중에서 상기 미리 설정된 기준을 충족하여 후임 노드(successor node) 역할을 하는 노드를 차단하는(screening out) 단계; 및
    상기 리더 노드에 의해, 상기 후임 노드가 다른 노드에 의해 전송되는 투표 정보를 수신하고, 투표 계수 시간에 상기 투표 정보의 양을 계수하고, 새로운 리더 노드로서 결정되도록, 투표 기간에 상기 후임 노드에 대한 투표 요청을 다른 노드에 전송하는 단계
    를 포함하는, 시간 기반 노드 선출 방법.
  9. 시간 기반 노드 선출 방법에 있어서,
    모든 노드 중에 리더 노드가 있을 때, 시간 구성 정보에 반송되는 투표 시간에 투표 노드로서의 적어도 2개의 노드에 의해, 상기 리더 노드에 의해 전송되는 재지정 요청을 수신하는 단계; 및
    상기 재지정 요청에 따라 상기 투표 노드에 의해, 상기 리더 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 재지정 상태를 결정하도록, 투표 정보를 생성하여 상기 투표 정보를 상기 시간 구성 정보에 반송되는 투표 시간에 상기 리더 노드에 전송하는 단계
    를 포함하며,
    상기 투표 노드는 상기 리더 노드의 재임기간에 상기 리더 노드의 투표 요청을 단지 수신하는 것인, 시간 기반 노드 선출 방법.
  10. 분산 시스템에서 리더 노드를 결정하기 위해 사용되는, 시간 기반 노드 선출 방법에 있어서,
    모든 노드 중에 리더 노드가 있을 때, 시간 구성 정보에 반송되는 투표 시간에 투표 노드로서의 적어도 2개의 노드에 의해, 상기 리더 노드에 의해 전송되는 후임 노드에 대한 투표 요청을 수신하는 단계; 및
    상기 투표 요청에 따라 상기 투표 노드에 의해, 상기 후임 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 새로운 리더 노드를 결정하도록, 투표 정보를 생성하여 상기 투표 정보를 상기 시간 구성 정보에 반송되는 투표 시간에 상기 후임 노드에 전송하는 단계
    를 포함하는, 시간 기반 노드 선출 방법.
  11. 분산 시스템에서 리더 노드를 결정하도록 구성되는, 시간 기반 노드 선출 장치에 있어서,
    모든 노드에 대해 동일한 투표 시간, 동일한 투표 계수 시간 및 동일한 리더 노드 재임기간을 구성하도록 구성되는 구성 모듈; 및
    상기 노드가 상기 투표 시간에 투표하고, 상기 투표 계수 시간에 투표수를 계수하고, 투표 계수 결과에 따라 리더 노드를 선출하며, 상기 노드가 상기 리더 노드 재임기간에 따라 주기적 노드 선출을 실행하도록 인에이블되도록, 구성된 상기 투표 시간, 투표 계수 시간 및 리더 노드 재임기간을 반송하는 시간 구성 정보를 상기 모든 노드에 전송하도록 구성되는 전송 모듈
    을 포함하는, 시간 기반 노드 선출 장치.
  12. 분산 시스템에서 리더 노드를 결정하도록 구성되며, 캠페인 노드에 배치되는, 시간 기반 노드 선출 장치에 있어서,
    모든 노드 중에 리더 노드가 없을 때, 상기 장치는:
    시간 구성 정보에 반송되는 투표 시간에 투표 요청을 상기 모든 노드에 전송하도록 구성되는 투표 요청 모듈;
    상기 투표 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하도록 구성되는 수신 모듈;
    상기 시간 구성 정보에 반송되는 투표 계수 시간에, 수신된 상기 투표 정보의 양을 계수하도록 구성되는 계수 모듈; 및
    계수된 각각의 상기 투표 정보의 양에 따라 리더 노드를 결정하여 지정된 서비스를 처리하도록 구성되는 결정 모듈
    을 포함하는, 시간 기반 노드 선출 장치.
  13. 제12항에 있어서,
    상기 수신 모듈은 또한, 상기 투표 계수 시간에 도착할 때 상기 투표 정보를 수신하는 것을 정지하도록 구성되는 것인, 시간 기반 노드 선출 장치.
  14. 제12항에 있어서,
    상기 결정 모듈은 구체적으로, 계수된 상기 투표 정보의 양이 미리 설정된 문턱치를 초과한다고 판정할 때, 상기 캠페인 노드를 리더 노드로서 결정하도록 구성되며, 상기 문턱치는 상기 모든 노드의 수의 1/2인 것인, 시간 기반 노드 선출 장치.
  15. 분산 시스템에서 리더 노드를 결정하도록 구성되며, 투표 노드에 배치되는, 시간 기반 노드 선출 장치에 있어서,
    모든 노드 중에 리더 노드가 없을 때, 상기 장치는:
    시간 구성 정보에 반송되는 투표 시간에, 캠페인 노드에 의해 전송되는 투표 요청을 수신하도록 구성되는 수신 모듈; 및
    상기 투표 요청에 따라, 상기 캠페인 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 리더 노드를 결정하도록, 투표 정보를 생성하여 상기 투표 정보를 상기 투표 시간에 상기 캠페인 노드에 전송하도록 구성되는 투표 정보 모듈
    을 포함하는, 시간 기반 노드 선출 장치.
  16. 제15항에 있어서,
    상기 투표 정보 모듈은 구체적으로, 수신된 상기 투표 요청에 반송되는 노드 정보를 결정하고, 상기 노드 정보에 따라 상기 캠페인 노드의 노드 상태 가중치를 결정하고, 최대 노드 상태 가중치를 갖는 캠페인 노드를 선택하고, 상기 캠페인 노드에 대한 투표 정보를 생성하여, 상기 투표 정보를 선택된 상기 캠페인 노드에 전송하도록 구성되는 것인, 시간 기반 노드 선출 장치.
  17. 분산 시스템에서 리더 노드를 결정하도록 구성되며 리더 노드에 배치되는, 시간 기반 노드 선출 장치에 있어서,
    모든 노드 중에 리더 노드가 있고, 상기 리더 노드가 상기 리더 노드 자체가 미리 설정된 기준을 충족한다고 결정할 때, 상기 장치는:
    시간 구성 정보의 리더 노드 재임기간에 따라 투표 시간에 상기 모든 노드에 재지정 요청을 전송하도록 구성되는 재지정 요청 모듈;
    상기 재지정 요청에 따라 다른 노드에 의해 생성되는 투표 정보를 수신하도록 구성되는 수신 모듈;
    투표 계수 시간에, 수신된 상기 투표 정보의 양을 계수하도록 구성되는 계수 모듈; 및
    계수된 상기 투표 정보의 양에 따라 재지정 상태를 결정하여, 재지정이 성공한 후 지정된 서비스를 처리하도록 구성되는 결정 모듈
    을 포함하며,
    상기 미리 설정된 기준은 부하 처리 기준 및 데이터 업데이트 정도 중 적어도 하나를 포함하는 것인, 시간 기반 노드 선출 장치.
  18. 분산 시스템에서 리더 노드를 결정하도록 구성되며, 리더 노드에 배치되는, 시간 기반 노드 선출 장치에 있어서,
    모든 노드 중에 리더 노드가 있고 상기 리더 노드가 상기 리더 노드 자체가 미리 설정된 기준을 충족하지 않는다고 결정할 때, 상기 장치는:
    시간 구성 정보의 리더 노드 재임기간에 따라, 다른 노드 중에 상기 미리 설정된 기준을 충족하여 후임 노드 역할을 하는 노드를 차단하도록 구성되는 차단 모듈; 및
    상기 후임 노드가 다른 노드에 의해 전송되는 투표 정보를 수신하고, 투표 계수 시간에 투표 정보의 양을 계수하며, 새로운 리더 노드로서 결정되도록, 상기 후임 노드에 대한 투표 요청을 투표 기간에 다른 노드에 전송하도록 구성되는 투표 요청 모듈
    을 포함하는, 시간 기반 노드 선출 장치.
  19. 분산 시스템에서 리더 노드를 결정하도록 구성되며, 투표 노드에 배치되는, 시간 기반 노드 선출 장치에 있어서,
    모든 노드 중에 리더 노드가 있을 때, 상기 장치는:
    시간 구성 정보에 반송되는 투표 시간에, 상기 리더 노드에 의해 전송되는 재지정 요청을 수신하도록 구성되는 수신 모듈; 및
    상기 재지정 요청에 따라, 상기 리더 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 재지정 상태를 결정하도록, 투표 정보를 생성하여 상기 시간 구성 정보에 반송되는 투표 시간에 상기 투표 정보를 상기 리더 노드에 전송하도록 구성되고, 상기 리더 노드의 재임기간에 상기 리더 노드의 투표 요청을 단지 수신하도록 구성되는 투표 정보 모듈
    을 포함하는, 시간 기반 노드 선출 장치.
  20. 분산 시스템에서 리더 노드를 결정하도록 구성되며, 투표 노드에 배치되는, 시간 기반 노드 선출 장치에 있어서,
    모든 노드 중에 리더 노드가 있을 때, 상기 장치는:
    시간 구성 정보에 반송되는 투표 시간에, 상기 리더 노드에 의해 전송되는 후임 노드에 대한 투표 요청을 수신하도록 구성되는 수신 모듈; 및
    상기 투표 요청에 따라, 상기 후임 노드가 투표 계수 시간에 투표 정보의 양을 계수하여 새로운 리더 노드를 결정하도록, 투표 정보를 생성하여 시간 구성 정보에 반송되는 투표 시간에 상기 투표 정보를 상기 후임 노드에 전송하도록 구성되는 투표 정보 모듈
    을 포함하는, 시간 기반 노드 선출 장치.
KR1020177031627A 2015-04-02 2016-03-15 시간 기반 노드 선출 방법 및 장치 KR102139410B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510155909.9 2015-04-02
CN201510155909.9A CN106155780B (zh) 2015-04-02 2015-04-02 一种基于时间的节点选举方法及装置
PCT/CN2016/076414 WO2016155496A1 (zh) 2015-04-02 2016-03-15 一种基于时间的节点选举方法及装置

Publications (2)

Publication Number Publication Date
KR20170134576A true KR20170134576A (ko) 2017-12-06
KR102139410B1 KR102139410B1 (ko) 2020-07-30

Family

ID=57005448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031627A KR102139410B1 (ko) 2015-04-02 2016-03-15 시간 기반 노드 선출 방법 및 장치

Country Status (7)

Country Link
US (3) US10534634B2 (ko)
EP (1) EP3279794B1 (ko)
JP (1) JP6731201B2 (ko)
KR (1) KR102139410B1 (ko)
CN (1) CN106155780B (ko)
SG (1) SG11201708022YA (ko)
WO (1) WO2016155496A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172107A1 (en) 2014-05-09 2015-11-12 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
CN106155780B (zh) 2015-04-02 2020-01-31 阿里巴巴集团控股有限公司 一种基于时间的节点选举方法及装置
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10310762B1 (en) * 2016-08-30 2019-06-04 EMC IP Holding Company LLC Lease-based leader designation for multiple processes accessing storage resources of a storage system
CN108123987A (zh) * 2016-11-30 2018-06-05 华为技术有限公司 从云计算系统中确定主调度器的方法及装置
CN106952207A (zh) * 2017-03-10 2017-07-14 深圳市博信诺达经贸咨询有限公司 监控云平台分布式系统的选举方法及系统
CN107248064A (zh) * 2017-06-07 2017-10-13 福建榕基软件股份有限公司 一种查控申请方法及系统
CN107729359A (zh) * 2017-09-01 2018-02-23 广州市百果园信息技术有限公司 统计投票数据的方法及装置
US10911433B1 (en) * 2017-09-27 2021-02-02 Amazon Technologies, Inc. Network traffic distribution using certificate scanning in agent-based architecture
WO2019061384A1 (zh) * 2017-09-30 2019-04-04 麦格创科技(深圳)有限公司 分布式爬虫系统中任务管理器的选举方法及系统
JP6965832B2 (ja) * 2018-05-29 2021-11-10 日本電信電話株式会社 投票システム、投票中継サーバ、クライアント端末、投票方法、広告配信システム、及びプログラム
CN108829497A (zh) * 2018-05-31 2018-11-16 阿里巴巴集团控股有限公司 事务因果序的校正方法及装置、电子设备
CN108776616B (zh) * 2018-06-06 2021-06-29 北京八分量信息科技有限公司 一种确定区块链节点可信状态的方法、区块链节点及系统
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11327854B2 (en) 2018-11-15 2022-05-10 Walmart Apollo, Llc System and method for an adaptive election in semi-distributed environments
US20200394183A1 (en) * 2019-06-12 2020-12-17 Subramanya R. Jois System and method of executing, confirming and storing a transaction in a serverless decentralized node network
CN111327447B (zh) * 2018-12-17 2021-09-14 华为技术有限公司 一种分布式系统、仲裁方法、节点设备及存储介质
US11503036B2 (en) * 2019-03-13 2022-11-15 Nec Corporation Methods of electing leader nodes in a blockchain network using a role-based consensus protocol
US11748029B2 (en) * 2019-07-26 2023-09-05 Salesforce, Inc. Protecting writes to shared storage in a distributed search system
CN110618863A (zh) * 2019-09-18 2019-12-27 神州数码融信软件有限公司 一种基于Raft算法的作业调度方法
US20230107301A1 (en) * 2019-10-15 2023-04-06 Telefonaktiebolaget Lm Ericsson (Publ) Method for dynamic leader selection for distributed machine learning
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11671488B1 (en) * 2022-02-24 2023-06-06 Bank Of America Corporation Domain-based Raft consensus selection of leader nodes in distributed data services
CN114866554B (zh) * 2022-05-20 2023-07-07 东风商用车有限公司 一种免选举分布式协议的方法、装置、设备及存储介质
CN115794478B (zh) * 2023-02-06 2023-06-23 天翼云科技有限公司 系统配置方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283644A1 (en) * 2004-06-18 2005-12-22 Microsoft Corporation Efficient changing of replica sets in distributed fault-tolerant computing system
US7139790B1 (en) * 1999-08-17 2006-11-21 Microsoft Corporation Weak leader election
US20080071878A1 (en) * 2006-09-18 2008-03-20 Reuter James M Method and system for strong-leader election in a distributed computer system
US20080071853A1 (en) * 2006-09-18 2008-03-20 Mosier Timothy J Distributed-leader-election service for a distributed computer system
KR20140088176A (ko) * 2011-10-28 2014-07-09 제타셋, 아이엔시. 고가용성 클러스터에서의 스플릿브레인 방지 페일오버

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108644A (en) * 1998-02-19 2000-08-22 At&T Corp. System and method for electronic transactions
US6321086B1 (en) * 1999-06-07 2001-11-20 Motorola, Inc. Comparator and methods for voting therewith
US20030046144A1 (en) * 2001-08-28 2003-03-06 International Business Machines Corporation System and method for anonymous message forwarding and anonymous voting
JP2004165976A (ja) * 2002-11-13 2004-06-10 Japan Information Technology Co Ltd 時限暗号化復号化システム、時限暗号化復号化方法および時限暗号化復号化プログラム
US7296269B2 (en) 2003-04-22 2007-11-13 Lucent Technologies Inc. Balancing loads among computing nodes where no task distributor servers all nodes and at least one node is served by two or more task distributors
CA2531497A1 (en) * 2003-07-11 2005-01-20 Yoshiaki Takida Facsimile machine of internet terminal type
US20050132154A1 (en) * 2003-10-03 2005-06-16 International Business Machines Corporation Reliable leader election in storage area network
US20080288659A1 (en) * 2006-11-09 2008-11-20 Microsoft Corporation Maintaining consistency within a federation infrastructure
RU2312396C2 (ru) * 2005-03-24 2007-12-10 Федеральный центр информатизации при Центральной избирательной комиссии Российской Федерации Способ подготовки и проведения голосования с помощью автоматизированной системы
JP2007255977A (ja) * 2006-03-22 2007-10-04 Nissan Motor Co Ltd 物体検出方法および物体検出装置
WO2008052383A1 (en) * 2006-10-30 2008-05-08 Huawei Technologies Co., Ltd. Load control of ue mbms measurement reporting
US8494436B2 (en) * 2006-11-16 2013-07-23 Watertown Software, Inc. System and method for algorithmic selection of a consensus from a plurality of ideas
CN101252603B (zh) * 2008-04-11 2011-03-30 清华大学 基于存储区域网络san的集群分布式锁管理方法
US8230253B2 (en) * 2008-07-21 2012-07-24 International Business Machines Corporation Byzantine fault tolerant dynamic quorum using a trusted platform module
CN101771488B (zh) 2009-01-05 2014-06-04 华为技术有限公司 提高多业务传送网可靠性的方法、系统及设备
FR2946212B1 (fr) * 2009-05-29 2012-04-27 Taztag Dispositif et procede d'interfacage d'au moins un terminal de stockage et de tranmission de donnees avec au moins un support de transmission de donnees
GB2474074A (en) * 2009-10-05 2011-04-06 Your View Ltd Electronic voting
US8630894B2 (en) * 2011-01-27 2014-01-14 Leroy Robinson Method and system for searching for, and monitoring assessment of, original content creators and the original content thereof
CN102999529B (zh) * 2011-09-16 2015-09-16 腾讯科技(深圳)有限公司 平台间信息共享系统及方法
CN102682572B (zh) * 2012-03-27 2013-11-27 南京邮电大学 一种基于无线传感器网络定位的人员智能看护方法
US9537973B2 (en) 2012-11-01 2017-01-03 Microsoft Technology Licensing, Llc CDN load balancing in the cloud
US9185003B1 (en) * 2013-05-02 2015-11-10 Amazon Technologies, Inc. Distributed clock network with time synchronization and activity tracing between nodes
US9261898B1 (en) * 2013-05-02 2016-02-16 Amazon Technologies, Inc. Activity tracing using distributed clock network
US10284247B2 (en) * 2013-06-10 2019-05-07 Nxp B.V. System and method for bit processing in a central network component
JP6091376B2 (ja) 2013-08-12 2017-03-08 日本電信電話株式会社 クラスタシステムおよびSplit−BrainSyndrome検出方法
CN103401947A (zh) 2013-08-20 2013-11-20 曙光信息产业(北京)有限公司 多个服务器的任务分配方法和装置
CN103634375B (zh) * 2013-11-07 2017-01-11 华为技术有限公司 扩容集群节点的方法、装置及设备
US9230104B2 (en) * 2014-05-09 2016-01-05 Cisco Technology, Inc. Distributed voting mechanism for attack detection
CN104301971A (zh) * 2014-10-13 2015-01-21 东南大学 一种适用于移动ad hoc网络的节能节点选举方法
CN106155780B (zh) * 2015-04-02 2020-01-31 阿里巴巴集团控股有限公司 一种基于时间的节点选举方法及装置
CN104933132B (zh) * 2015-06-12 2019-11-19 深圳巨杉数据库软件有限公司 基于操作序列号的分布式数据库有权重选举方法
US11055363B2 (en) * 2016-07-24 2021-07-06 Saber Salehkaleybar Method for distributed multi-choice voting/ranking
CN106412124B (zh) 2016-12-01 2019-10-29 广州高能计算机科技有限公司 一种并序化云服务平台任务分配系统及任务分配方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139790B1 (en) * 1999-08-17 2006-11-21 Microsoft Corporation Weak leader election
US20050283644A1 (en) * 2004-06-18 2005-12-22 Microsoft Corporation Efficient changing of replica sets in distributed fault-tolerant computing system
US20080071878A1 (en) * 2006-09-18 2008-03-20 Reuter James M Method and system for strong-leader election in a distributed computer system
US20080071853A1 (en) * 2006-09-18 2008-03-20 Mosier Timothy J Distributed-leader-election service for a distributed computer system
KR20140088176A (ko) * 2011-10-28 2014-07-09 제타셋, 아이엔시. 고가용성 클러스터에서의 스플릿브레인 방지 페일오버

Also Published As

Publication number Publication date
JP2018512678A (ja) 2018-05-17
CN106155780A (zh) 2016-11-23
JP6731201B2 (ja) 2020-07-29
WO2016155496A1 (zh) 2016-10-06
US11106489B2 (en) 2021-08-31
US10802869B2 (en) 2020-10-13
EP3279794A4 (en) 2018-12-19
SG11201708022YA (en) 2017-10-30
KR102139410B1 (ko) 2020-07-30
EP3279794A1 (en) 2018-02-07
US20200142729A1 (en) 2020-05-07
US20210026682A1 (en) 2021-01-28
US10534634B2 (en) 2020-01-14
EP3279794B1 (en) 2022-01-26
US20180018198A1 (en) 2018-01-18
CN106155780B (zh) 2020-01-31

Similar Documents

Publication Publication Date Title
KR20170134576A (ko) 시간 기반 노드 선출 방법 및 장치
Xu et al. Dynamic resource provisioning for workflow scheduling under uncertainty in edge computing environment
CN101981531B (zh) 聚集循环调度以优化资源消耗
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
US20150074178A1 (en) Distributed processing method
CN106130960B (zh) 盗号行为的判断系统、负载调度方法和装置
CN103986766A (zh) 自适应负载均衡作业任务调度方法及装置
CN104580012A (zh) 一种内容分发网络节点的选择方法及装置
US9104488B2 (en) Support server for redirecting task results to a wake-up server
JP2019518258A (ja) 時間ベース調節可能負荷バランシング
CN103746934A (zh) 一种cdn带宽平衡的方法、cdn控制中心及系统
CN112615905A (zh) 区块链分片的调度方法、装置、设备及存储介质
CN111552701B (zh) 确定分布式集群中数据一致性的方法及分布式数据系统
CN102137091B (zh) 一种过负荷控制方法、装置、系统及客户端
CN116304390B (zh) 时序数据处理方法、装置、存储介质及电子设备
CN104168174A (zh) 一种传输信息的方法及装置
CN108829735B (zh) 并行执行计划的同步方法、装置、服务器及存储介质
US10572486B2 (en) Data communication in a distributed data grid
CN109308219B (zh) 任务处理方法、装置及分布式计算机系统
CN105519055A (zh) 一种I/O通道QoS动态均衡方法及装置
CN112541038A (zh) 时序数据管理方法、系统、计算设备及存储介质
CN108718285B (zh) 云计算集群的流量控制方法、装置及服务器
CN112770271A (zh) 基于信息广播的数据传输方法、装置、系统和存储介质
CN112600702B (zh) 基于竞争机制的数据传输方法、装置、系统和存储介质
CN112600730B (zh) 基于信道检测的数据传输方法、装置、系统和存储介质

Legal Events

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