KR102476531B1 - 분산 시스템을 위한 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스 - Google Patents
분산 시스템을 위한 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스 Download PDFInfo
- Publication number
- KR102476531B1 KR102476531B1 KR1020217008399A KR20217008399A KR102476531B1 KR 102476531 B1 KR102476531 B1 KR 102476531B1 KR 1020217008399 A KR1020217008399 A KR 1020217008399A KR 20217008399 A KR20217008399 A KR 20217008399A KR 102476531 B1 KR102476531 B1 KR 102476531B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- target
- node
- target node
- synchronizing
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
- H04L41/0869—Validating the configuration within one network element
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Environmental & Geological Engineering (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
Abstract
본 출원의 실시예들은 분산 시스템을 위한 데이터 동기화 방법 및 장치, 컴퓨터 판독가능 매체, 및 전자 디바이스를 제공한다. 이러한 방법은, 타겟 노드에 접속되는 인접 노드의 이력 데이터 동기화 정보를 획득하는 단계; 이력 데이터 동기화 정보에 따라 인접 노드의 선택 가중치 값을 결정하는 단계- 선택 가중치 값은 인접 노드로부터의 데이터를 타겟 노드에 동기화하는 효율을 표시하기 위해 사용됨 -; 및, 인접 노드의 선택 가중치 값에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하여, 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화시키는 단계를 포함한다.
Description
<관련 출원>
본 출원은 2019년 7월 15일자로 출원된, 발명의 명칭이 "DATA SYNCHRONIZATION METHOD AND APPARATUS OF DISTRIBUTED SYSTEM, MEDIUM, AND ELECTRONIC DEVICE"인 중국 특허 출원 제201910636195.1호에 대한 우선권을 주장하며, 이는 그 전체가 참조로 원용된다.
<기술 분야>
본 출원은 컴퓨터 기술들의 분야에, 특히, 분산 시스템의 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스에 관련된다.
분산 시스템은 네트워크를 통해 통신하는 그리고 공통 작업을 완료하기 위해 협력하여 작동하는 컴퓨터 노드들의 그룹으로 구성되는 시스템이다. 분산 시스템에서, 데이터를 계산 또는 저장하기 위해 각각의 노드가 사용되고, 분산 시스템에서, 노드들 사이에 데이터 동기화 동작이 수행될 필요가 있을 수 있다. 예를 들어, 블록체인 시스템에서, 새로운 블록체인 노드가 추가될 때, 다른 블록체인 노드로부터 데이터가 동기화될 필요가 있다.
본 출원의 목적은 분산 시스템의 데이터 동기화 방법 및 장치, 컴퓨터-판독가능 저장 매체, 및 전자 디바이스를 제공하여, 적어도 분산 시스템에서의 데이터 동기화의 시간을 단축시키고 동기화 효율을 개선하는 것이다.
본 출원의 다른 특징들 및 이점들은 다음의 상세한 설명들을 통해 명백하게 되거나, 또는 본 출원의 실시에 의해 부분적으로 학습될 수 있다.
본 출원의 실시예들의 양태에 따르면, 분산 시스템의 데이터 동기화 방법이 제공되고, 이러한 방법은,
타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하는 단계;
데이터 동기화 이력에 따라 인접 노드들의 선택 가중치 값들을 결정하는 단계- 선택 가중치 값들은 데이터를 타겟 노드에 동기화하는 인접 노드들의 효율을 측정하기 위해 사용됨 -; 및
인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계, 및 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 단계를 포함한다.
본 출원의 실시예들의 양태에 따르면, 분산 시스템의 데이터 동기화 장치가 제공되고, 이러한 장치는, 타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하도록 구성되는 획득 모듈; 데이터 동기화 이력에 따라 인접 노드들의 선택 가중치 값들을 결정하도록 구성되는 결정 모듈- 선택 가중치 값들은 데이터를 타겟 노드에 동기화하는 인접 노드들의 효율을 측정하기 위해 사용됨 -; 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하도록 구성되는 선택 모듈; 및 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하도록 구성되는 동기화 모듈을 포함한다.
본 출원의 실시예들의 양태에 따르면, 컴퓨터 프로그램을 저장하는 컴퓨터-판독가능 저장 매체가 제공되고, 이러한 컴퓨터 프로그램은 실행가능 명령어들을 포함한다. 이러한 실행가능 명령어들은, 프로세서에 의해 실행될 때, 전술한 실시예들에서의 분산 시스템의 데이터 동기화 방법을 구현한다.
본 출원의 실시예들의 양태에 따르면, 전자 디바이스가 제공되고, 이는, 하나 이상의 프로세서; 프로세서들의 실행가능 명령어들을 저장하도록 구성되는 메모리를 포함한다. 이러한 실행가능 명령어들은, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금 전술한 실시예들에서의 분산 시스템의 데이터 동기화 방법을 구현하게 한다.
본 출원의 전술한 그리고 다른 특징들 및 이점들은 첨부 도면들을 참조하여 이루어지는 본 출원의 예시적인 실시예들의 상세한 설명으로부터 더 명백하게 될 것이다.
도 1은 본 출원의 실시예에 따른 분산 시스템에서의 데이터 동기화 방법의 적용 시나리오의 개략도이다.
도 2는 본 출원의 실시예에 따른 분산 시스템의 데이터 동기화 방법의 흐름도이다.
도 3은 본 출원의 실시예에 따른 도 2에 도시되는 단계 210의 상세한 흐름도이다.
도 4는 본 출원의 실시예에 따른 도 2에 도시되는 단계 220의 상세한 흐름도이다.
도 5는 본 출원의 실시예에 따른 도 2에 도시되는 단계 230의 상세한 흐름도이다.
도 6은 본 출원의 실시예에 따른 블록 헤더 데이터 동기화의 상세한 흐름도이다.
도 7은 본 출원의 실시예에 따른 완전한 블록 데이터 동기화의 상세한 흐름도이다.
도 8은 본 출원의 실시예에 따른 분산 시스템의 데이터 동기화 장치의 블록도이다.
도 9는 본 출원의 실시예에 따른 전술한 방법을 구현하기 위한 컴퓨터-판독가능 저장 매체를 도시한다.
도 10은 본 출원의 실시예에 따른 전술한 방법을 구현하기 위한 전자 디바이스의 예의 블록도이다.
도 1은 본 출원의 실시예에 따른 분산 시스템에서의 데이터 동기화 방법의 적용 시나리오의 개략도이다.
도 2는 본 출원의 실시예에 따른 분산 시스템의 데이터 동기화 방법의 흐름도이다.
도 3은 본 출원의 실시예에 따른 도 2에 도시되는 단계 210의 상세한 흐름도이다.
도 4는 본 출원의 실시예에 따른 도 2에 도시되는 단계 220의 상세한 흐름도이다.
도 5는 본 출원의 실시예에 따른 도 2에 도시되는 단계 230의 상세한 흐름도이다.
도 6은 본 출원의 실시예에 따른 블록 헤더 데이터 동기화의 상세한 흐름도이다.
도 7은 본 출원의 실시예에 따른 완전한 블록 데이터 동기화의 상세한 흐름도이다.
도 8은 본 출원의 실시예에 따른 분산 시스템의 데이터 동기화 장치의 블록도이다.
도 9는 본 출원의 실시예에 따른 전술한 방법을 구현하기 위한 컴퓨터-판독가능 저장 매체를 도시한다.
도 10은 본 출원의 실시예에 따른 전술한 방법을 구현하기 위한 전자 디바이스의 예의 블록도이다.
첨부 도면들을 참조하여 예시적인 실시예들이 더 포괄적으로 설명될 것이다. 그러나, 이러한 예시적인 실시예들은 다양한 형태들로 구현될 수 있으며, 본 명세서에 설명되는 구현들로 제한되는 것으로 해석되어서는 안 된다. 대신에, 본 출원을 더 포괄적이고 완전하게 하고, 예시적인 실시예들의 아이디어들을 해당 분야에서의 기술자에게 완전히 전달하기 위해 이러한 구현들이 제공된다. 도면들에서, 명확성을 위해, 일부 엘리먼트들의 치수들은 과장되거나 또는 변경될 수 있다. 도면들에서의 동일한 참조 번호들은 동일한 또는 유사한 구조들을 표현하고, 따라서 이러한 구조들의 상세한 설명들은 생략될 것이다.
또한, 설명된 특징들, 구조들, 또는 특성들은 임의의 적절한 방식으로 하나 이상의 실시예에서 조합될 수 있다. 다음의 설명들에서, 본 출원의 실시예들의 완전한 이해를 제공하기 위해 많은 구체적 상세사항들이 제공된다. 그러나, 해당 분야에서의 기술자는 본 출원에서의 기술적 해결책들이 특정 상세사항들 중 하나 이상 없이 구현될 수 있거나, 또는 다른 방법들 또는 엘리먼트들이 사용될 수 있다는 점을 인식할 것이다. 다른 경우들에서, 본 출원의 양태들을 불명료하게 하지 않기 위해, 잘 알려진 구조들, 방법들, 또는 동작들은 상세히 도시되지 않거나 또는 설명되지 않는다.
현재의 분산 시스템에서, 노드들 사이의 데이터 동기화 동작은 느린 데이터 동기화 및 낮은 동기화 효율의 문제점들을 일반적으로 갖는다.
이러한 것을 고려하여, 본 출원은 분산 시스템의 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스를 제공하여, 분산 시스템에서의 노드들의 느린 데이터 동기화 및 낮은 데이터 동기화 효율의 전술한 기술적 문제점들을 해결한다.
먼저, 분산 시스템의 데이터 동기화 방법의 적용 시나리오가 설명된다.
도 1은 분산 시스템에서의 데이터 동기화 방법의 적용 시나리오의 개략도이다.
도면에 도시되는 바와 같이, 시나리오(100)는 분산 시스템의 일부분이며, 여기서 전자 디바이스들 (101, 102, 103, 104, 105) 각각은 분산 시스템에서의 노드이고, 전자 디바이스의 예들은 이에 제한되는 것은 아니지만 스마트폰, 태블릿 컴퓨터, 또는 노트북 컴퓨터와 같은 휴대용 모바일 디바이스 또는 컴퓨터 디바이스, 필드 단말, 데스크톱 컴퓨터, 서버, 또는 워크스테이션과 같은 고정 디바이스를 포함한다. 본 출원의 구현 환경은 전체 분산 시스템에서의 임의의 노드일 수 있다. 도 1에 도시되는 바와 같이, 스마트폰(101)은 데이터 동기화를 위한 타겟 노드로서 사용될 수 있고, 데스크톱 컴퓨터(102), 노트북 컴퓨터(103), 태블릿 컴퓨터(104), 및 워크스테이션(105)은 스마트폰(101)의 인접 노드들로서 사용된다. 본 출원에 따르면, 데이터 동기화의 프로세스에서, 스마트폰(101)이 데스크톱 컴퓨터(102), 노트북 컴퓨터(103), 태블릿 컴퓨터(104) 및 워크스테이션(105)에 의해 수행되는 이력 데이터 동기화의 데이터 동기화 이력을 먼저 동시에 획득하고, 다음으로, 이러한 데이터 동기화 이력에 따라, 스마트폰(101)에 데이터를 동기화하는 인접 노드들의 효율을 측정하기 위해 사용되는 선택 가중치 값들을 결정하고, 최종적으로, 이러한 선택 가중치 값들에 따라, 스마트폰(101)에 데이터를 동기화하기 위한 타겟 인접 노드를 선택하고 데이터 동기화 프로세스를 완료한다.
본 출원에서, 분산 시스템에서의 노드들 사이의 데이터 송신은 통신 접속(예를 들어, 유선 통신 네트워크 접속 또는 무선 통신 네트워크 접속)을 통해 구현될 수 있다.
본 출원의 제1 양태에 따르면, 분산 시스템의 데이터 동기화 방법이 제공된다.
도 2는 분산 시스템의 데이터 동기화 방법의 흐름도이다. 이러한 데이터 동기화 방법의 실행 바디는 분산 시스템에 포함되는 그리고 데이터 동기화를 수행할 필요가 있는 노드, 예를 들어, 임의의 노드로서 작용하는 전자 디바이스일 수 있다. 이러한 데이터 동기화 방법은 다음의 단계들을 포함할 수 있다:
단계 210: 타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득함.
단계 220: 데이터 동기화 이력에 따라 인접 노드들의 선택 가중치 값들을 결정함- 선택 가중치 값들은 데이터를 타겟 노드에 동기화하는 인접 노드들의 효율을 측정하기 위해 사용됨 -.
단계 230: 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하고, 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화함.
위 구현 단계들은 아래에 상세히 설명될 것이다.
단계 210: 타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득함에 관한 내용.
구체적으로, 타겟 노드는 분산 시스템에서 데이터 동기화를 수행할 필요가 있는 노드, 예를 들어, 블록체인 시스템에서의 임의의 노드를 지칭한다. 인접 노드들은 분산 시스템에서의 타겟 노드에 접속되는 다른 노드들을 지칭한다.
예시적인 실시예에서, 단계 210에서의 타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하는 프로세스는 도 3에 도시되는 방식으로 완료될 수 있고, 하나의 실시예에서, 다음의 단계들을 포함한다:
단계 2101: 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 타겟 데이터를 갖는지 검출하여, 타겟 데이터를 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득함.
하나의 실시예의 구체적 구현에서, 분산 시스템은 블록체인 시스템을 포함할 수 있고, 타겟 데이터는 블록 데이터를 포함할 수 있다. 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하는 것은 다음의 방식으로 구현될 수 있다:
먼저, 타겟 노드에서의 블록체인 원장의 제1 블록 헤더의 높이가 획득된다. 다음으로, 타겟 노드에 접속되는 인접 노드들에서의 블록체인 원장의 제2 블록 헤더의 높이가 획득된다. 최종적으로, 제1 블록 헤더의 높이가 제2 블록 헤더의 높이와 비교되어 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출한다.
구체적으로, 분산 시스템의 타입인 블록체인 시스템의 주요 기능은 데이터를 저장하는 것이다. 저장될 필요가 있는 임의의 데이터가 블록체인에 기입되거나 또는 이로부터 판독될 수 있다. 블록체인에서의 데이터는 주로 블록들의 형태로 존재한다, 즉, 블록은 전체 블록체인 데이터의 기본 유닛이다. 블록은 블록 헤더 및 블록 바디를 포함한다. 블록 헤더는, 현재 시간, 블록 헤더의 높이, 이전 블록의 해시, 및 블록 바디의 해시와 같은, 블록의 현재 특성 값 데이터를 기록한다. 블록 바디는 저장될 필요가 있는 실제 데이터를 기록한다. 블록체인에서의 블록들은 하나의 방향으로 엄격한 순서로 접속되어 데이터 체인을 형성한다. 블록체인 시스템에서, 블록은 규칙적인 간격으로 생성되고, 새로운 생성된 블록은 이전에 생성된 블록에 뒤로부터 접속된다. 시간이 지남에 따라, 블록체인 데이터는 연속적으로 업데이트될 것이다. 또한, 블록체인 시스템에서, 새로운 서버가 블록체인 네트워크에 추가되어 노드가 된 후에, 새롭게 추가된 노드는 블록체인 시스템에서 블록 데이터를 동기화할 필요가 있고, 블록체인 데이터의 연속적인 업데이트와 함께, 블록체인 시스템에서의 노드들 또한 블록 데이터를 연속적으로 업데이트할 필요가 있다.
블록체인 데이터에서, 각각의 블록 데이터는 고유하며, 따라서 각각의 블록 데이터의 아이덴티티는 블록 헤더 높이 또는 블록 헤더에서의 해시 값에 의해 식별될 수 있다. 블록체인 데이터에서의 블록 헤더 높이는 블록의 연속적인 업데이트에 따라 점진적으로 증가한다, 즉, 블록이 생성될 때마다, 새로운 생성된 블록의 블록 헤더의 높이는 1만큼 증가할 것이다. 이러한 것에 기초하여, 본 출원은 블록 헤더의 높이를 사용하여 블록체인 시스템에서 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출한다.
구체적으로, 타겟 노드에서의 블록체인 원장의 제1 블록 헤더의 높이 및 타겟 노드에 접속되는 인접 노드들에서의 블록체인 원장의 제2 블록 헤더의 높이가 각각 획득되고, 제1 블록 헤더의 높이가 제2 블록 헤더의 높이와 비교된다. 제2 블록 헤더의 높이가 제1 블록 헤더의 높이보다 더 크다면, 이것은 타겟 노드에 접속되는 인접 노드들에 타겟 노드에 동기화될 필요가 있는 블록 데이터가 존재한다는 점을 표시한다.
타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하는 프로세스에서, 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하는 것에 의해, 데이터를 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들이 획득될 수 있다. 이러한 것의 하나의 이점은 후보 인접 노드들의 선택 가중치 값들만이 결정되고, 타겟 인접 노드가 후보 인접 노드들로부터 선택되어, 데이터 동기화 전망들이 없는 일부 인접 노드들이 필터링될 수 있고, 그렇게 함으로써 일부 불필요한 데이터 동기화 이력의 획득을 감소시키고, 시스템의 저장 및 계산 부하를 감소시키고, 데이터 동기화 이력의 이용률을 개선한다는 점이다.
단계 2102: 후보 인접 노드들의 데이터 동기화 이력을 획득함.
전술한 실시예에서, 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하여 데이터를 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득하는 이점은, 인접 노드들의 데이터 동기화 이력을 획득하기 전에, 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하는 것에 의해, 모든 인접 노드들에서 데이터 동기화 전망들이 있는 후보 인접 노드들이 추가로 결정될 수 있다는 점이다. 이러한 것의 이점은 데이터 동기화 전망들이 없는 일부 인접 노드들이 필터링될 수 있고, 그렇게 함으로써 일부 불필요한 데이터 동기화 이력의 획득을 감소시키고, 시스템의 저장 및 계산 부하 양자 모두를 감소시키고, 데이터 동기화 이력의 이용률을 개선한다는 점이다.
단계 220: 데이터 동기화 이력에 따라 인접 노드들의 선택 가중치 값들을 결정함- 선택 가중치 값들은 데이터를 타겟 노드에 동기화하는 인접 노드들의 효율을 측정하기 위해 사용됨 -에 관한 내용.
예시적인 실시예에서, 데이터 동기화 이력은 이력 데이터 동기화 프로세스에서의 타겟 노드 및 인접 노드들의 에러 카운트들을 포함할 수 있다. 데이터 동기화 이력에 따라, 단계 220에서의 인접 노드들의 선택 가중치 값들을 결정하는 프로세스가 도 4에 도시될 수 있고, 하나의 실시예에서, 다음의 단계들을 포함한다:
단계 2201: 에러 카운트 임계값을 초과하지 않는 에러 카운트들을 갖는 인접 노드들을 검출함.
이러한 실시예에서, 에러 카운트들은 이력 데이터 동기화 프로세스에서의 타겟 노드 및 인접 노드들의 에러 카운트들을 지칭한다. 구체적으로, 분산 시스템에서의 노드들 사이에 데이터가 동기화될 때, 노드의 실패 또는 데이터 송신 네트워크의 실패와 같은 이유로 인해, 노드 동기화 실패가 불가피하게 발생하며, 예를 들어, 데이터 동기화 요청의 타임아웃, 동기식 다운로드 프로세스 동안의 데이터 비정상들, 또는 노드에 대한 액세스의 실패이다.
이러한 실시예에서, 에러 카운트 임계값을 설정하는 것에 의해, 타겟 노드에 접속되는 인접 노드들에 대해 스크리닝이 수행될 수 있다, 즉, 특정 수를 초과하는 에러 카운트들을 갖는 인접 노드들은 필터링되고, 특정 수를 초과하지 않는 에러 카운트들을 갖는 인접 노드들은 유지된다. 최종적으로 유지되는 인접 노드들은 타겟 인접 노드를 후속하여 결정하기 위한 후보들로서 사용된다. 에러 카운트는 실제 조건들에 따라 설정될 수 있다, 예를 들어, 3회로 설정될 수 있다. 이력 데이터 동기화 프로세스에서 인접 노드 1, 인접 노드 2, 인접 노드 3, 및 인접 노드 4의 에러 카운트들이 각각 4, 3, 1 및 0이면, 최종적으로 유지되는 인접 노드들은 인접 노드 2, 인접 노드 3, 및 인접 노드 4일 수 있다.
단계 2202: 데이터 동기화 이력에 따라, 에러 카운트 임계값을 초과하지 않는 에러 카운트들을 갖는 인접 노드들의 선택 가중치 값들을 결정함.
전술한 실시예에 따르면, 데이터 동기화에서 종종 에러들을 행하는 인접 노드들을 필터링하고, 더 적은 에러 카운트들을 갖는 인접 노드들을 유지하기 위해 에러 카운트 임계값을 설정하는 것에 의해, 후속 동기화 동안의 데이터의 동기화 성공률이 개선될 수 있다. 또한, 선택 가중치 값을 계산함에 있어서 시스템의 부하가 추가로 감소될 수 있고, 그렇게 함으로써 시스템의 계산 부하를 감소시키고 데이터 동기화 효율을 개선할 수 있다.
예시적인 실시예에서, 데이터 동기화 이력은 이력 데이터 송신 레이트를 포함할 수 있고, 데이터 동기화 이력에 따라 인접 노드들의 선택 가중치 값들을 결정하는 것은 인접 노드들의 선택 가중치 값들을 다음의 공식에 의해 계산하는 것을 포함할 수 있고:
여기서 W i 는 i번째 인접 노드의 선택 가중치 값을 표현하고; j는 j번째 시간 동안 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; m은 m번째 시간 동안 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; n은 마지막 n회에서의 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화의 횟수를 표현하고; S j 는 타겟 노드 및 i번째 인접 노드가 j번째 시간 동안 이력 데이터 동기화를 수행하는 경우에서의 이력 데이터 송신 레이트를 표현한다.
구체적으로, 이력 데이터 송신 레이트는 이력 데이터 동기화 프로세스에서 송신되는 타겟 데이터의 크기 대 데이터 송신 시간의 비율을 지칭할 수 있고, 데이터 송신 시간은 타겟 노드가 타겟 데이터를 완전히 수신하는 순간과 타겟 노드가 타겟 인접 노드로부터 타겟 데이터를 다운로드하라고 요청하는 순간 사이의 차이를 지칭할 수 있다. 예를 들어, 데이터 동기화 프로세스 동안, 타겟 노드가 타겟 인접 노드로부터 타겟 데이터를 다운로드하라고 요청하는 순간이 2019년 7월 1일 12:00:00이고, 타겟 노드가 타겟 데이터를 완전히 수신하는 순간이 2019년 7월 1일 12:00:03이면, 데이터 송신 시간은 3.00초이다. 타겟 데이터의 크기가 30 Mb이면, 이력 데이터 송신 레이트는 이러한 예에서 10 Mb/s이다.
하나의 실시예의 구체적 구현에서, 마지막 5개의 이력 데이터 동기화 프로세스들에서의 타겟 노드 및 인접 노드의 데이터 송신 레이트들의 평균 값은 인접 노드의 선택 가중치 값으로서 역할을 하도록 요구될 수 있다. 아래의 표 1에 도시되는 바와 같이, 마지막 5개의 이력 데이터 동기화 프로세스들에서의 타겟 노드 및 인접 노드의 데이터 송신 레이트들은, 10 Mb/s, 30 Mb/s, 20 Mb/s, 15 Mb/s, 및 25 Mb/s이다. 따라서, 계산을 통해, 선택 가중치 값은, W i =20이라고 결정될 수 있다.
전술한 실시예에 따르면, 선택 가중치 값을 결정함에 있어서 인자로서 역할을 하도록 이력 데이터 동기화의 마지막 n회에서의 인접 노드의 평균 데이터 송신 레이트를 계산하는 것에 의해, 인접 노드의 데이터 동기화 효율이 잘 측정될 수 있고, 그렇게 함으로써 타겟 인접 노드들의 더 타겟화된 선택을 행하고, 데이터 동기화 효율을 추가로 개선한다.
예시적인 실시예에서, 데이터 동기화 이력은 이력 데이터 송신 레이트 및 이력 데이터 요청 순간을 포함할 수 있고, 데이터 동기화 이력에 따라 인접 노드들의 선택 가중치 값들을 결정하는 것은 인접 노드들의 선택 가중치 값들을 다음의 공식에 의해 계산하는 것을 포함할 수 있고:
여기서 W i 는 i번째 인접 노드의 선택 가중치 값을 표현하고; j는 j번째 시간 동안 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; m은 m번째 시간 동안 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; n은 마지막 n회에서의 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화의 횟수를 표현하고; S j 는 타겟 노드 및 i번째 인접 노드가 j번째 시간 동안 이력 데이터 동기화를 수행하는 경우에서의 이력 데이터 송신 레이트를 표현하고; t j 는 타겟 노드 및 i번째 인접 노드가 j번째 시간 동안 이력 데이터 동기화를 수행하는 이력 데이터 요청 순간을 표현하고; t는 i번째 인접 노드의 선택 가중치 값이 계산되는 순간을 표현한다.
구체적으로, 이러한 실시예에서, 이력 데이터 송신 레이트는 데이터 동기화 프로세스에서 송신되는 타겟 데이터의 크기 대 데이터 송신 시간의 비율을 대안적으로 지칭할 수 있다. 이력 데이터 요청 순간은 이력 데이터 동기화 프로세스 동안 타겟 노드가 i번째 인접 노드로부터 타겟 데이터를 다운로드하라고 요청하는 순간을 지칭할 수 있다. 이러한 실시예에서, 이력 데이터 요청 순간은 i번째 인접 노드의 선택 가중치 값이 계산되는 순간과 타겟 노드 및 i번째 인접 노드가 j번째 시간 동안 이력 데이터 동기화를 수행하는 이력 데이터 요청 순간 사이의 시간 길이를 측정하기 위해 주로 사용된다. 이러한 시간 길이는 타겟 노드와 i번째 인접 노드 사이의 데이터 동기화의 빈도를 측정할 수 있다, 즉, 더 짧은 시간 길이는 타겟 노드와 i번째 인접 노드 사이의 더 빈번한 데이터 동기화를 표시한다.
하나의 실시예의 구체적 구현에서, 마지막 5개의 이력 데이터 동기화 프로세스들에서의 타겟 노드와 i번째 인접 노드 사이의 데이터 송신 레이트들의 평균 값과 마지막 5회에서의 i번째 인접 노드의 선택 가중치 값이 계산되는 순간과 타겟 노드 및 i번째 인접 노드가 이력 데이터 동기화를 수행하는 이력 데이터 요청 순간 사이의 시간 길이들의 평균 값의 합이 인접 노드의 선택 가중치 값으로서 역할을 하도록 요구될 수 있다. 아래의 표 2에 도시되는 바와 같이, 마지막 5개의 이력 데이터 동기화 프로세스들에서의 타겟 노드 및 i번째 인접 노드의 데이터 송신 레이트들은, 10 Mb/s, 30 Mb/s, 20 Mb/s, 15 Mb/s, 및 25 Mb/s이다. 타겟 노드가 마지막 5회에서 이력상 i번째 인접 노드로부터 타겟 데이터를 다운로드하라고 요청하는 순간들은, 2019년 7월 1일 12:00:00, 2019년 7월 1일 12:00:10, 2019년 7월 1일 12:00:20, 2019년 7월 1일 12:00:30, 및 2019년 7월 1일 12:00:40이다.
i번째 인접 노드의 선택 가중치 값이 계산되는 순간 t가 2019년 7월 1일 12:00:50일 때, 이러한 실시예의 계산 공식에 의해 계산되는 인접 노드의 선택 가중치 값은, W i =50이다. 전술한 실시예에 따르면, 선택 가중치 값을 결정함에 있어서 인자로서 역할을 하도록 이력 데이터 동기화의 마지막 n회에서의 인접 노드의 평균 데이터 송신 레이트를 계산하는 것에 의해, 인접 노드의 데이터 동기화 효율이 잘 측정될 수 있다. 그러나, 인접 노드의 데이터 송신 레이트가 너무 높으면, 다른 노드들은 이러한 인접 노드를 타겟 인접 노드로서 항상 선택할 것이고, 이는 노드로 하여금 과부하되게 하고 데이터 동기화 효율을 감소시킬 것이다. 데이터 송신 레이트가 더 높은 인접 노드에 대해, 인접 노드는 타겟 인접 노드로서 더 빈번하게 선택된다. 또한, 인접 노드의 선택 가중치 값이 계산되는 순간과 타겟 노드 및 인접 노드가 j번째 시간 동안 이력 데이터 동기화를 수행하는 이력 데이터 요청 순간 사이의 시간 길이는 더 짧을 것이다. 이러한 것에 기초하여, 타겟 노드가 데이터를 인접 노드와 동기화하라고 요청하는 이력 데이터 요청 순간은, 분산 시스템에서의 타겟 노드에 접속되는 인접 노드 리소스들을 균형화할 수 있는, 선택 가중치 값을 결정함에 있어서 다른 인자로서 사용되어, 인접 노드가 과사용되어 인접 노드로 하여금 과부하되게 하는 경우를 회피한다. 위 실시예에 기초하여, 더 나은 인접 노드가 선택될 수 있다.
위에 설명된 데이터 동기화 이력에 따라 인접 노드의 선택 가중치 값을 결정하는 방식은 단지 하나의 예시적인 실시예이다. 위에 설명된 이러한 예들과 상이한 다른 방식들이 존재할 수 있다.
단계 230: 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하고, 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화함에 관한 내용.
예시적인 실시예에서, 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계는 도 5에 도시되는 바와 같은 단계들을 포함할 수 있다.
도 5는 본 출원의 실시예들에 따른 단계 230의 상세한 흐름도이고, 이는 하나의 실시예에서 다음의 단계들을 포함한다:
단계 2301: 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하여, 데이터를 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득함.
하나의 실시예의 구체적 구현에서, 분산 시스템은 블록체인 시스템을 포함할 수 있고, 타겟 데이터는 블록 데이터를 포함할 수 있다. 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하는 것은 다음의 방식으로 구현될 수 있다:
타겟 노드에서의 블록체인 원장의 제1 블록 헤더의 높이 및 타겟 노드에 접속되는 인접 노드들에서의 블록체인 원장의 제2 블록 헤더의 높이가 개별적으로 획득된다. 다음으로, 제1 블록 헤더의 높이가 제2 블록 헤더의 높이와 비교되어 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출한다. 제2 블록 헤더의 높이가 제1 블록 헤더의 높이보다 더 크다면, 이것은 타겟 노드에 접속되는 인접 노드들에 타겟 노드에 동기화될 필요가 있는 블록 데이터가 존재하고, 타겟 노드에 동기화될 필요가 있는 블록 데이터가 있는 인접 노드가 후보 인접 노드로서 사용된다는 점을 표시한다.
단계 2302: 후보 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택함.
하나의 실시예의 구체적 구현에서, 후보 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계는 다음의 방식으로 구현될 수 있다:
후보 인접 노드들의 선택 가중치 값들에 따라, 후보 인접 노드들은 내림차순으로 정렬되고, 선택 가중치 값이 가장 큰 인접 노드가 타겟 인접 노드로서 사용된다.
전술한 실시예에 따르면, 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하여 데이터를 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득하는 것에 의해, 일부 선택된 타겟 인접 노드들이 불완전한 데이터로 인해 데이터 동기화 실패를 갖는 경우가 회피될 수 있고, 그렇게 함으로써 컴퓨터 네트워크 리소스들의 낭비를 감소시킨다.
예시적인 실시예에서, 분산 시스템은 블록체인 시스템을 포함할 수 있고, 타겟 데이터는 완전한 블록 데이터를 포함할 수 있다. 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계 및 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 단계는 다음의 방식:
인접 노드들의 선택 가중치 값들에 따라, 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하는 단계, 및 제2 타겟 인접 노드로부터 완전한 블록 데이터를 동기화하는 단계로 구현될 수 있다.
예시적인 실시예에서, 분산 시스템은 블록체인 시스템을 포함할 수 있고, 타겟 데이터는 블록 헤더 데이터 및 완전한 블록 데이터를 포함할 수 있다. 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계 및 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 단계는 다음의 방식:
인접 노드들의 선택 가중치 값들에 따라, 블록 헤더 데이터를 타겟 노드에 동기화하기 위한 제1 타겟 인접 노드를 선택하는 단계, 및 제1 타겟 인접 노드로부터 블록 헤더 데이터를 동기화하는 단계; 및
블록 헤더 데이터가 동기화된 후에 인접 노드들의 선택 가중치 값들에 따라, 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하는 단계, 및 제2 타겟 인접 노드로부터 완전한 블록 데이터를 동기화하는 단계로 구현될 수 있다.
하나의 실시예의 구체적 구현에서, 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하는 단계 전에, 다음의 단계들이 추가로 구현될 수 있다:
타겟 노드에서 블록체인 원장의 완전한 블록 데이터가 있는 제3 블록 헤더의 높이를 획득하는 단계;
타겟 노드에서 블록체인 원장의 제4 블록 헤더의 높이를 획득하는 단계; 및
제3 블록 헤더의 높이를 제4 블록 헤더의 높이와 비교하여, 타겟 노드가 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택할 필요가 있는지 검출하는 단계- 제3 블록 헤더의 높이가 제4 블록 헤더의 높이보다 더 작은 경우에, 이것은 타겟 노드가 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택할 필요가 있다는 점을 표시함 -.
타겟 노드에서의 블록체인 원장에는, 완전한 블록 데이터가 있는 블록들 및 완전한 블록 데이터가 없는 블록들이 존재한다. 완전한 블록 데이터가 있는 블록은 블록 헤더 및 블록 바디를 포함하는 반면, 완전한 블록 데이터가 없는 블록은 블록 헤더만을 포함한다. 따라서, 이러한 구체적 실시예에서, 제3 블록 헤더의 높이는 완전한 블록 데이터가 있는 블록의 블록 헤더의 높이를 지칭하고, 제4 블록 헤더의 높이는 완전한 블록 데이터가 없는 블록의 블록 헤더의 높이를 지칭한다. 완전한 블록 데이터가 있는 블록의 블록 헤더의 높이가 완전한 블록 데이터가 없는 블록의 블록 헤더의 높이 미만일 때, 이것은 타겟 노드에 완전한 블록 데이터가 없는 블록들이 존재한다는 점을 표시하고, 이는 타겟 노드가 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택할 필요가 있다는 점을 추가로 표시한다.
블록체인 시스템인 분산 시스템을 예로서 취하여, 본 출원의 실시예에서의 데이터 동기화 해결책이 아래에 상세히 설명된다. 이러한 실시예에서, 블록 헤더 데이터를 동기화하고 완전한 블록 데이터를 동기화하는 프로세스들을 포함하는 블록 데이터를 동기화하는 프로세스가 설명을 위한 예로서 취해진다.
하나의 실시예의 구체적 구현에서, 블록 헤더 데이터를 동기화하는 타겟 노드의 구체적 구현이 도 6에 도시되는 프로세스에 따라 순환적으로 구현될 수 있고, 이러한 프로세스는 다음의 단계들을 구체적으로 포함한다:
단계 610: 로컬 블록체인 원장의 블록 헤더의 높이를 획득함.
단계 620: 타겟 노드에 접속되는 인접 노드들의 선택 가중치 값들을 계산하고 정렬함.
단계 630: 모든 인접 노드들이 현재 노드에 의해 요구되는 다음 블록 헤더 데이터를 포함하는지 체크함. 예이면, 단계 640이 수행되고; 아니오이면, 다음 동기화 사이클을 수행하기 위해 단계 610이 수행됨.
단계 640: 선택 가중치 값이 가장 높은 그리고 요구된 블록 헤더 데이터가 있는 인접 노드를 결정함.
단계 650: 블록 헤더 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하고, 이러한 요청의 순간을 기록하고, 데이터를 동기식으로 다운로드하기 위한 가장 이른 요청의 순간을 삭제함.
단계 660: 블록 헤더 데이터를 수신하고, 유효 블록 헤더 데이터를 로컬 블록체인 원장에 기입함.
단계 670: 현재 블록 헤더 데이터 동기화의 데이터 송신 레이트를 계산함.
해당 분야에서의 기술자들이 위에 설명된 단계 650을 이해하는 것을 더 용이하게 하기 위해, 구체적 예가 추가의 명확성을 위해 사용된다. 예를 들어, 블록 헤더 데이터를 동기식으로 다운로드하기 위한 요청을 인접 노드에 전송하기 전에, 블록 헤더 데이터를 동기식으로 다운로드하기 위한 요청을 인접 노드에 전송하는 3개의 이력 요청 기록들이 존재하였고, 이러한 3개의 요청 기록들의 요청 순간들은 2019년 7월 1일 12:00:00, 2019년 7월 1일 12:01:01, 및 2019년 7월 1일 12:02:01이고, 여기서 2019년 7월 1일 12:00:00이 블록 헤더 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하는 가장 이른 요청 순간이다. 블록 헤더 데이터를 동기식으로 다운로드하기 위한 요청이 2019년 7월 1일 12:03:01에 다시 인접 노드에 전송될 때, 이러한 순간이 기록되고, 즉, 2019년 7월 1일 12:03:01이 기록되고, 블록 헤더 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하는 가장 이른 요청 순간이 삭제된다, 즉, 2019년 7월 1일 12:00:00이 삭제된다. 최종적으로 기록되는 블록 헤더 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하는 마지막 3개의 요청 순간들은 2019년 7월 1일 12:01:01, 2019년 7월 1일 12:02:01, 2019년 7월 1일 12:03:01이다.
하나의 실시예의 구체적 구현에서, 완전한 블록 데이터를 동기화하는 타겟 노드의 구체적 구현이 도 7에 도시되는 프로세스에 따라 순환적으로 구현될 수 있고, 이러한 프로세스는 하나의 실시예에서 다음의 단계들을 포함한다:
단계 710: 로컬 블록체인 원장의 블록 헤더의 높이 및 완전한 블록 데이터의 블록 헤더의 높이를 획득함.
단계 720: 블록 헤더의 높이가 완전한 블록 데이터의 블록 헤더의 높이보다 더 높은지 검출함. 예이면, 단계 730이 수행되고; 아니오이면, 다음 동기화 사이클을 수행하기 위해 단계 710이 수행됨.
단계 730: 타겟 노드에 접속되는 인접 노드들의 선택 가중치 값들을 계산하고 정렬함.
단계 740: 정렬된 인접 노드들이 타겟 노드의 다음 완전한 블록 데이터를 포함하는지 체크함. 예이면, 단계 750이 수행되고; 아니오이면, 다음 동기화 사이클을 수행하기 위해 단계 710이 수행됨.
단계 750: 선택 가중치 값이 가장 높은 그리고 요구된 완전한 블록 데이터가 있는 인접 노드를 결정함.
단계 760: 완전한 블록 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하고, 이러한 요청의 순간을 기록하고, 데이터를 동기식으로 다운로드하기 위한 가장 이른 요청의 순간을 삭제함.
단계 770: 완전한 블록 데이터를 수신하고, 완전한 블록 데이터 버퍼에 유효 완전한 블록 데이터를 저장함.
단계 780: 현재 완전한 블록 데이터 동기화의 데이터 송신 레이트를 계산하고, 가장 이른 완전한 블록 데이터 동기화의 데이터 송신 레이트를 삭제함.
해당 분야에서의 기술자들이 위에 설명된 단계 760을 이해하는 것을 더 용이하게 하기 위해, 구체적 예가 설명을 위해 사용된다. 예를 들어, 완전한 블록 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하기 전에, 완전한 블록 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하는 3개의 이력 요청 기록들이 존재하였고, 이러한 3개의 요청 기록들의 요청 순간들은 2019년 7월 1일 12:00:00, 2019년 7월 1일 12:01:01, 및 2019년 7월 1일 12:02:01이고, 여기서 2019년 7월 1일 12:00:00은 완전한 블록 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하는 가장 이른 요청 순간이다. 완전한 블록 데이터를 동기식으로 다운로드하기 위한 요청이 2019년 7월 1일 12:03:01에 다시 인접 노드에 전송될 때, 이러한 순간이 기록되고, 즉, 2019년 7월 1일 12:03:01이 기록되고, 완전한 블록 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하는 가장 이른 요청 순간이 삭제된다, 즉, 2019년 7월 1일 12:00:00이 삭제된다. 최종적으로 기록되는 완전한 블록 데이터를 인접 노드에 동기식으로 다운로드하기 위한 요청을 전송하는 마지막 3개의 요청 순간들은 2019년 7월 1일 12:01:01, 2019년 7월 1일 12:02:01, 2019년 7월 1일 12:03:01이다.
위 실시예에서, 완전한 블록 데이터를 동기화하기 전에 블록 헤더 데이터를 동기화하는 이점들이 2개의 양태들에 있다. 하나의 양태에 대해, 완전한 블록 데이터의 비교적 큰 데이터 볼륨 및 높은 보안 요건들로 인해, 블록체인 시스템에 새롭게 추가되는 타겟 노드의 완전한 블록 데이터가 동기화될 때, 긴 데이터 동기화 시간 및 데이터 동기화 요청의 거절을 보는 것이 특히 흔하다. 그러나, 블록 헤더 데이터의 비교적 작은 데이터 볼륨 및 높지 않은 보안 요건들은 블록체인 시스템에 새롭게 추가되는 타겟 노드의 데이터 동기화에 특히 적합하다. 다른 양태에 대해, 타겟 노드는 블록 헤더 데이터를 먼저 동기화하고, 이는 타겟 노드가 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택할 필요가 있는지 검출하는 것에 도움이 된다. 타겟 노드가 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택할 필요가 없다는 점이 검출될 때, 타겟 노드는 인접 노드들의 선택 가중치 값들을 계산할 필요가 없고, 그렇게 함으로써 컴퓨터 리소스들을 절약한다.
하나의 실시예의 구체적 구현에서, 제2 타겟 인접 노드로부터 완전한 블록 데이터를 동기화하는 단계는 다음의 방식:
제2 타겟 인접 노드에서 완전한 블록 데이터를 다운로드하는 단계; 완전한 블록 데이터의 유효성을 검증하는 단계; 및 타겟 노드의 블록 데이터 버퍼에 유효 완전한 블록 데이터를 추가하는 단계 및 블록 데이터 버퍼에 저장되는 데이터에 따라 완전한 블록 데이터를 타겟 노드에 동기화하는 단계로 구현될 수 있다.
하나의 실시예의 구체적 구현에서, 블록 데이터 버퍼에 저장되는 데이터에 따라 완전한 블록 데이터를 타겟 노드에 동기화하는 단계는 다음의 방식:
타겟 노드에서의 블록체인 원장에 의해 표시되는 블록 시퀀스에 따라, 블록 데이터 버퍼로부터 대응하는 블록 데이터를 판독하는 단계 및 대응하는 블록 데이터를 타겟 노드에서의 블록체인 원장에 기입하는 단계로 구현될 수 있다
예시적인 실시예에서, 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 단계는 다음의 방식:
타겟 데이터에 대한 다운로드 요청을 타겟 인접 노드에 송신하여, 타겟 인접 노드로 하여금 다운로드 요청에 따라 타겟 데이터를 타겟 노드에 송신하게 하는 단계로 구현될 수 있다.
하나의 실시예의 구체적 구현에서, 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 프로세스에서, 타겟 데이터의 동기화가 실패한 경우에, 타겟 노드와 타겟 인접 노드 사이의 데이터 동기화에서의 에러 카운트가 기록된다.
타겟 데이터 동기화 실패는 데이터 동기화 요청의 타임아웃, 동기식 다운로드 프로세스 동안의 데이터 비정상들, 또는 타겟 인접 노드에 대한 액세스의 실패를 지칭할 수 있다.
하나의 실시예의 구체적 구현에서, 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 프로세스에서, 타겟 데이터의 동기화가 성공하는 경우에, 타겟 노드와 타겟 인접 노드 사이의 데이터 동기화에서의 데이터 송신 레이트 및 데이터 요청 순간이 기록된다.
위에 설명된, 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하고 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 방식은 단지 하나의 예시적인 실시예이다. 위에 설명된 이러한 예들과 상이한 다른 방식들이 존재할 수 있다.
요약하면, 본 출원의 실시예들의 기술적 해결책에서는, 타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력에 따라, 데이터를 타겟 노드에 동기화하는 인접 노드들의 동기화 효율을 반영할 수 있는 선택 가중치 값이 각각의 인접 노드에 대해 결정되고, 데이터를 타겟 노드에 동기화할 수 있는 타겟 인접 노드가 상이한 인접 노드들에 대응하는 선택 가중치 값들에 따라 최종적으로 결정된다. 따라서, 노드들의 데이터 동기화 이력을 포괄적으로 고려하는 것에 의해 데이터 동기화를 위해 비교적 적절한 인접 노드가 선택될 수 있다. 예를 들어, 노드들의 실제 혼잡 및 부하 조건들과 같은 정보를 고려하는 것에 의해 비교적 과학적이고 적절한 타겟 인접 노드가 선택될 수 있고, 그렇게 함으로써 분산 시스템에서의 데이터 동기화 시간을 단축시키고 동기화 효율을 개선한다. 또한, 관련 분야에 존재하는 분산 시스템에서의 노드들의 느린 데이터 동기화 및 낮은 데이터 동기화 효율의 기술적 문제점들이 해결될 수 있다.
다음은 본 출원의 장치 예시적인 실시예들을 설명하고, 이는 본 출원의 전술한 실시예들에서의 분산 시스템의 데이터 동기화 방법을 구현하기 위해 사용될 수 있다. 본 출원의 장치 실시예들에 개시되지 않은 상세사항들에 대해서는, 본 출원에서의 분산 시스템의 데이터 동기화 방법의 전술한 실시예들이 참조될 수 있다.
도 8은 본 출원의 실시예에 따른 분산 시스템의 데이터 동기화 장치의 블록도이다.
도 8을 참조하면, 본 출원의 실시예에 따른 분산 시스템의 데이터 동기화 장치(800)는, 획득 모듈(810), 결정 모듈(820), 선택 모듈(830) 및 동기화 모듈(840)을 포함한다.
획득 모듈(810)은 타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하도록 구성되고; 결정 모듈(820)은 데이터 동기화 이력에 따라 인접 노드들의 선택 가중치 값들을 결정하도록 구성되고- 선택 가중치 값들은 데이터를 타겟 노드에 동기화하는 인접 노드들의 효율을 측정하기 위해 사용됨 -; 선택 모듈(830)은, 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하도록 구성되고; 동기화 모듈(840)은 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하도록 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 선택 모듈(830)은, 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하여, 데이터를 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득하도록; 그리고, 후보 인접 노드들의 선택 가중치 값들에 따라, 데이터를 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하도록 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 획득 모듈(810)은, 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하여, 데이터를 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득하도록 구성되는 검출 모듈; 및 후보 인접 노드들의 데이터 동기화 이력을 획득하도록 구성되는 실행 모듈을 포함한다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 분산 시스템은 블록체인 시스템을 포함하고, 타겟 데이터는 블록 데이터를 포함하고, 검출 모듈은, 타겟 노드에서의 블록체인 원장의 제1 블록 헤더의 높이를 획득하도록; 그리고 타겟 노드에 접속되는 인접 노드들에서의 블록체인 원장의 제2 블록 헤더의 높이를 획득하도록; 그리고 제1 블록 헤더의 높이를 제2 블록 헤더의 높이와 비교하여 타겟 노드에 접속되는 인접 노드들이 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하도록 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 데이터 동기화 이력은 이력 데이터 동기화 프로세스에서의 타겟 노드 및 인접 노드들의 에러 카운트들을 포함하고, 결정 모듈(820)은, 에러 카운트 임계값을 초과하지 않는 에러 카운트들을 갖는 인접 노드들을 검출하도록; 그리고, 데이터 동기화 이력에 따라, 에러 카운트 임계값을 초과하지 않는 에러 카운트들을 갖는 인접 노드들의 선택 가중치 값들을 결정하도록 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 데이터 동기화 이력은 이력 데이터 송신 레이트 및 이력 데이터 요청 순간을 포함하고, 결정 모듈(820)은 다음의 공식에 의해 인접 노드들의 선택 가중치 값들을 계산하도록 구성되고:
여기서 W i 는 i번째 인접 노드의 선택 가중치 값을 표현하고; j는 j번째 시간 동안 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; m은 m번째 시간 동안 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; n은 마지막 n회에서의 타겟 노드와 i번째 인접 노드 사이의 이력 데이터 동기화의 횟수를 표현하고; S j 는 타겟 노드 및 i번째 인접 노드가 j번째 시간 동안 이력 데이터 동기화를 수행하는 경우에서의 이력 데이터 송신 레이트를 표현하고; t j 는 타겟 노드 및 i번째 인접 노드가 j번째 시간 동안 이력 데이터 동기화를 수행하는 이력 데이터 요청 순간을 표현하고; t는 i번째 인접 노드의 선택 가중치 값이 계산되는 순간을 표현한다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 동기화 모듈(840)은, 타겟 데이터에 대한 다운로드 요청을 타겟 인접 노드에 송신하여, 타겟 인접 노드로 하여금 다운로드 요청에 따라 타겟 데이터를 타겟 노드에 송신하게 하도록 구성되고; 이러한 방법은, 타겟 인접 노드에서의 타겟 데이터를 타겟 노드에 동기화하는 프로세스에서, 타겟 데이터의 동기화가 실패한 경우에, 타겟 노드와 타겟 인접 노드 사이의 데이터 동기화에서의 에러 카운트를 기록하는 단계를 추가로 포함한다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 분산 시스템은 블록체인 시스템을 포함하고, 타겟 데이터는 완전한 블록 데이터를 포함하고, 선택 모듈(830)은, 인접 노드들의 선택 가중치 값들에 따라, 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하도록 구성되고; 동기화 모듈(840)은 제2 타겟 인접 노드로부터 완전한 블록 데이터를 동기화하도록 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 분산 시스템은 블록체인 시스템을 포함하고, 타겟 데이터는 블록 헤더 데이터 및 완전한 블록 데이터를 포함하고, 선택 모듈(830)은, 인접 노드들의 선택 가중치 값들에 따라, 블록 헤더 데이터를 타겟 노드에 동기화하기 위한 제1 타겟 인접 노드를 선택하도록 구성되고; 동기화 모듈(840)은 제1 타겟 인접 노드로부터 블록 헤더 데이터를 동기화하도록 구성되고;
선택 모듈(830)은, 블록 헤더 데이터가 동기화된 후에 인접 노드들의 선택 가중치 값들에 따라, 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하도록 추가로 구성되고; 동기화 모듈(840)은 제2 타겟 인접 노드로부터 완전한 블록 데이터를 동기화하도록 추가로 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 분산 시스템은 블록체인 시스템을 포함하고, 타겟 데이터는 완전한 블록 데이터를 포함하고, 선택 모듈(830)은, 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하기 전에, 타겟 노드에서의 블록체인 원장의 완전한 블록 데이터가 있는 제3 블록 헤더의 높이를 획득하도록; 타겟 노드에서의 블록체인 원장의 제4 블록 헤더의 높이를 획득하도록; 그리고 제3 블록 헤더의 높이를 제4 블록 헤더의 높이와 비교하여, 완전한 블록 데이터를 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택할 필요가 있는지 검출하도록 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 분산 시스템은 블록체인 시스템을 포함하고, 타겟 데이터는 완전한 블록 데이터를 포함하고, 동기화 모듈(840)은, 제2 타겟 인접 노드에서 완전한 블록 데이터를 다운로드하도록; 완전한 블록 데이터의 유효성을 검증하도록; 그리고 타겟 노드의 블록 데이터 버퍼에 유효 완전한 블록 데이터를 추가하고, 블록 데이터 버퍼에 저장되는 데이터에 따라 완전한 블록 데이터를 타겟 노드에 동기화하도록 구성된다.
본 출원의 일부 실시예들에서, 전술한 해결책에 기초하여, 분산 시스템은 블록체인 시스템을 포함하고, 타겟 데이터는 완전한 블록 데이터를 포함하고, 동기화 모듈(840)은, 타겟 노드에서의 블록체인 원장에 의해 표시되는 블록 시퀀스에 따라, 블록 데이터 버퍼로부터 대응하는 블록 데이터를 판독하도록 그리고 대응하는 블록 데이터를 타겟 노드에서의 블록체인 원장에 기입하도록 구성된다.
분산 시스템의 데이터 동기화 방법 및 분산 시스템의 데이터 동기화 장치의 몇몇 모듈들이 위 상세한 설명에서 언급되더라도, 이러한 분할이 의무적인 것은 아니다. 실제로, 위에 설명된 2개 이상의 모듈의 기능들은 본 출원의 구현들에 따라 하나의 모듈로 구현될 수 있다. 반대로, 위에 설명된 하나의 모듈의 특징들 또는 기능들은 복수의 모듈들에 의해 추가로 분할되고 구현될 수 있다. 모듈들로서 도시되는 컴포넌트들은 물리적 유닛들일 수 있거나 또는 그렇지 않을 수 있고, 하나의 위치에 위치될 수 있거나, 또는 복수의 네트워크 유닛들 상에 분산될 수도 있다. 이러한 모듈들의 일부 또는 전부는 본 출원의 해결책들의 목적들을 달성하기 위한 실제 필요들에 따라 선택될 수 있다. 해당 분야에서의 통상의 기술자는 본 설명에 기초하여 실시예들을 이해하고 구현할 수 있다.
다른 양태에 따르면, 본 출원은, 본 명세서의 전술한 방법을 구현할 수 있는 프로그램 제품이 저장되는, 컴퓨터-판독가능 저장 매체를 추가로 제공한다. 일부 가능한 구현들에서, 본 출원의 각각의 양태는 프로그램 코드를 포함하는 프로그램 제품의 형태로 추가로 구현될 수 있다. 이러한 프로그램 제품이 단말 디바이스 상에서 실행될 때, 프로그램 코드는 단말 디바이스로 하여금 본 명세서의 "예시적인 방법(exemplary method)"의 전술한 부분에서 설명되는 본 출원의 다양한 예시적인 구현들에 따른 단계들을 수행할 수 있게 하기 위해 사용된다.
도 9는 본 출원의 구현들에 따른 전술한 방법들을 구현하도록 구성되는 프로그램 제품(900)을 설명하고, 이러한 프로그램 제품은 휴대용 CD-ROM(compact disk read-only memory)을 사용할 수 있고, 프로그램 코드를 포함하고, 개인용 컴퓨터와 같은 단말 디바이스 상에서 실행될 수 있다. 그러나, 본 출원의 프로그램 제품에 이러한 것에 제한되는 것은 아니다. 본 명세서에서, 판독가능 저장 매체는 프로그램을 포함하거나 또는 저장하는 임의의 유형의 매체일 수 있고, 이러한 프로그램은 명령어 실행 시스템, 장치, 또는 디바이스에 의해 또는 이들과 조합하여 사용될 수 있다.
프로그램 제품은 하나 이상의 판독가능 매체의 임의의 조합을 사용할 수 있다. 판독가능 매체는 판독가능 신호 매체 또는 판독가능 저장 매체일 수 있다. 판독가능 저장 매체는, 예를 들어, 이에 제한되는 것은 아니지만, 전기, 자기, 광학, 전자기, 적외선, 또는 반-전도성 시스템, 장치, 또는 디바이스, 또는 이들의 임의의 조합일 수 있다. 판독가능 저장 매체의 보다 구체적 예들(비-포괄적인 리스트)은, 하나 이상의 와이어를 갖는 전기적 접속, 휴대용 디스크, 하드 디스크, RAM(random access memory), ROM(read-only memory), EPROM(erasable programmable read-only memory) 또는 플래시 메모리, 광학 섬유, 휴대용 CD-ROM(compact disc read-only memory), 광학 저장 디바이스, 자기 저장 디바이스, 또는 이들의 임의의 적절한 조합을 포함할 수 있다.
컴퓨터-판독가능 신호 매체는 기저대역에서 또는 캐리어의 일부분으로서 송신되는 데이터 신호를 포함할 수 있고, 판독가능 프로그램 코드를 저장한다. 전파된 데이터 신호는, 이에 제한되는 것은 아니지만, 전자기 신호, 광학 신호, 또는 이들의 임의의 적절한 조합을 포함하는, 복수의 형태들로 있을 수 있다. 판독가능 신호 매체는 대안적으로 판독가능 저장 매체 이외의 임의의 판독가능 매체일 수 있다. 판독가능 매체는 명령어 실행 시스템, 장치, 또는 디바이스에 의해 또는 이들과 조합하여 사용되도록 구성되는 프로그램을 전송, 전파, 또는 송신하도록 구성될 수 있다.
판독가능 매체에 포함되는 프로그램 코드는, 이에 제한되는 것은 아니지만, 무선 송신, 와이어, 케이블, RF(radio frequency) 등, 또는 이들의 임의의 적합한 조합을 통해서를 포함하는, 임의의 적합한 매체를 사용하여 송신될 수 있다.
본 출원의 동작들을 실행하기 위해 사용되는 프로그램 코드는 하나 이상의 프로그래밍 언어 또는 이들의 조합을 사용하여 기입될 수 있다. 이러한 프로그래밍 언어들은 Java, C++ 등과 같은 객체-지향 프로그래밍 언어를 포함하고, "C" 또는 유사한 프로그래밍 언어들과 같은 종래의 절차형 프로그래밍 언어를 또한 포함한다. 프로그램 코드는 사용자 컴퓨팅 디바이스 상에서 완전히 실행되거나, 사용자 장비 상에서 부분적으로 실행되거나, 독립적 소프트웨어 패키지로서 실행되거나, 사용자 컴퓨팅 디바이스 상에서 부분적으로 실행되고 원격 컴퓨팅 디바이스 상에서 부분적으로 실행되거나, 또는 원격 컴퓨팅 디바이스 또는 서버 상에서 완전히 실행될 수 있다. 원격 컴퓨팅 디바이스를 포함하는 경우에 대해, 원격 컴퓨팅 디바이스는 LAN(local area network) 또는 WAN(wide area network)을 포함하는 임의의 타입의 네트워크를 통해 사용자 컴퓨팅 디바이스에 접속될 수 있거나, 또는 (예를 들어, 인터넷 서비스 제공자를 사용하여 인터넷을 통해) 외부 컴퓨팅 디바이스에 접속될 수 있다.
다른 양태에 따르면, 본 출원은 전술한 방법을 구현할 수 있는 전자 디바이스를 추가로 제공한다.
해당 분야에서의 기술자는 본 출원의 다양한 양태들이 시스템들, 방법들, 또는 컴퓨터 프로그램 제품들로서 구현될 수 있다는 점을 이해할 수 있다. 따라서, 본 출원의 각각의 양태는 다음의 형태들, 즉, 완전한 하드웨어, 완전한 소프트웨어 (펌웨어 및 마이크로 코드를 포함함), 또는 하드웨어와 소프트웨어의 조합의 구현 형태로 구체적으로 구현될 수 있으며, 이들은 본 명세서에서 "회로(circuit)", "모듈(module)", 또는 "시스템(system)"이라고 균일하게 지칭될 수 있다.
본 출원의 이러한 구현에 따른 전자 디바이스(1000)가 도 10을 참조하여 아래에 설명된다. 도 10에 도시되는 전자 디바이스(1000)는 단지 예이고, 본 출원의 실시예들의 기능들 및 사용의 범위들에 어떠한 제한도 부과하지 않는다.
도 10에 도시되는 바와 같이, 전자 디바이스(1000)는 컴퓨팅 디바이스의 형태로 표현된다. 전자 디바이스(1000)의 컴포넌트들은, 이에 제한되는 것은 아니지만, 적어도 하나의 처리 유닛(1010), 적어도 하나의 저장 유닛(1020), 및 상이한 시스템 컴포넌트들(저장 유닛(1020) 및 처리 유닛(1010)을 포함함)을 접속하는 버스(1030)를 포함할 수 있다.
저장 유닛은 프로그램 코드를 저장하고, 이러한 프로그램 코드는 처리 유닛(1010)에 의해 실행될 수 있어서, 처리 유닛(1010)은 본 명세서의 전술한 "방법 실시예들(method embodiments)"에서 설명되는 본 출원의 다양한 예시적인 구현들에 따른 단계들을 수행한다.
저장 유닛(1020)은 휘발성 저장 유닛, 예를 들어, RAM(random access memory)(1021) 및/또는 캐시 저장 유닛(1022) 형태인 판독가능 매체를 포함할 수 있고, 판독-전용 저장 유닛(ROM)(1023)을 추가로 포함할 수 있다.
저장 유닛(1020)은 (적어도 하나의) 프로그램 모듈(1025)의 그룹을 갖는 프로그램/유틸리티(1024)를 추가로 포함할 수 있다. 이러한 프로그램 모듈(1025)은, 이에 제한되는 것은 아니지만, 운영 체제, 하나 이상의 애플리케이션 프로그램, 다른 프로그램 모듈들, 및 프로그램 데이터를 포함한다. 이러한 예들 각각 또는 이들의 조합은 네트워크 환경의 구현을 포함할 수 있다.
버스(1030)는, 저장 유닛 버스 또는 저장 유닛 제어기, 주변 버스, 가속 그래픽 포트, 처리 유닛, 또는 복수의 버스 구조들 중 임의의 것을 사용하는 로컬 버스를 포함하는, 몇몇 타입들의 버스 구조들 중 하나 이상을 표시할 수 있다.
전자 디바이스(1000)는 대안적으로 (키보드, 포인팅 디바이스, 및 블루투스 디바이스와 같은) 하나 이상의 외부 디바이스(1200)와 통신할 수 있고, 대안적으로 사용자로 하여금 전자 디바이스(1000)와 상호작용할 수 있게 하는 복수의 디바이스들과 통신할 수 있고, 및/또는 전자 디바이스(1000)로 하여금 하나 이상의 다른 컴퓨팅 디바이스와 통신할 수 있게 하는 (라우터 또는 모뎀과 같은) 임의의 디바이스와 통신할 수 있다. 이러한 통신은 I/O(input/output) 인터페이스(1050)를 통해 수행될 수 있다. 또한, 전자 디바이스(1000)는 네트워크 어댑터(1060)를 통해 LAN(local area network), WAN(wide area network), 및/또는 (인터넷과 같은) 공용 네트워크와 같은 하나 이상의 네트워크와 추가로 통신할 수 있다. 도면에 도시되는 바와 같이, 네트워크 어댑터(1060)는 버스(1030)를 통해 전자 디바이스(1000)의 다른 모듈들과 통신한다. 도면에 도시되지 않더라도, 이에 제한되는 것은 아니지만, 마이크로코드, 디바이스 드라이버, 중복 처리 유닛, 외부 디스크 드라이브 어레이, RAID 시스템, 테이프 드라이브, 데이터 백업 저장 시스템 등을 포함하는, 다른 하드웨어 및/또는 소프트웨어 모듈들이 전자 디바이스(1000)와 조합하여 사용될 수 있다는 점이 이해되어야 한다.
전술한 구현들의 설명들을 통해, 본 명세서에 설명되는 예시적인 구현들이 소프트웨어에 의해 또는 소프트웨어를 필요한 하드웨어와 조합하는 것에 의해 구현될 수 있다는 점을 해당 분야에서의 기술자가 이해하는 것은 용이하다. 따라서, 본 출원의 구현들의 기술적 해결책들은 소프트웨어 제품의 형태로 구현될 수 있다. 이러한 소프트웨어 제품은 비-휘발성 저장 매체(CD-ROM, USB 플래시 드라이브, 이동식 하드 디스크 등일 수 있음)에 또는 네트워크에 저장될 수 있고, 컴퓨터 디바이스(개인용 컴퓨터, 서버, 단말 디바이스, 네트워크 디바이스 등일 수 있음)에게 본 출원의 구현들에서 설명되는 방법들을 수행하라고 명령하기 위한 몇몇 명령어들을 포함한다.
또한, 전술한 첨부 도면들은 본 출원의 예시적인 실시예들에 따른 방법에 포함되는 처리의 단지 개략적 예시들이고, 제한을 위해 의도되는 것은 아니다. 전술한 첨부 도면들에 예시되는 프로세스들이 이러한 프로세스들의 연대순 순서를 표시하나 또는 정의하는 것은 아니라는 점이 용이하게 이해된다. 또한, 이러한 프로세스들은, 예를 들어, 복수의 모듈들에서 동기식으로 또는 비동기식으로 수행될 수 있다는 점이 또한 용이하게 이해된다.
본 출원은 위에 설명되는 그리고 첨부 도면들에 도시되는 정확한 구조들에 제한되는 것은 아니며, 본 출원의 범위를 벗어나지 않고 다양한 수정들 및 변경들이 이루어질 수 있다는 점이 이해되어야 한다. 본 출원의 범위는 첨부된 청구항들에 의해 설명된다.
Claims (17)
- 전자 디바이스에 의해 수행되는, 분산 시스템의 데이터 동기화 방법으로서, 상기 분산 시스템은 복수의 노드들을 포함하고, 상기 데이터 동기화 방법은,
타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하는 단계;
상기 데이터 동기화 이력에 따라, 이력 데이터 동기화의 마지막 n회에서의 인접 노드의 평균 데이터 송신 레이트 및 인접 노드의 선택 가중치 값이 계산되는 순간과 상기 타겟 노드 및 상기 인접 노드가 이력 데이터 동기화를 수행하는 순간 사이의 시간 길이를 사용하여 상기 인접 노드들의 선택 가중치 값들을 결정하는 단계- 상기 선택 가중치 값들은 데이터를 상기 타겟 노드에 동기화하는 상기 인접 노드들의 효율을 측정하기 위해 사용되고, 동일한 평균 데이터 송신 레이트로 상기 시간 길이가 더 짧을 때 상기 선택 가중치 값은 더 작음 -;
상기 인접 노드들의 선택 가중치 값들에 따라, 데이터를 상기 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계; 및
상기 타겟 인접 노드로부터의 타겟 데이터를 상기 타겟 노드와 동기화하는 단계를 포함하는 방법. - 제1항에 있어서, 상기 인접 노드들의 선택 가중치 값들에 따라, 데이터를 상기 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계는,
상기 타겟 노드에 접속되는 인접 노드들이 상기 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하여, 데이터를 상기 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득하는 단계; 및
상기 후보 인접 노드들의 선택 가중치 값들에 따라, 데이터를 상기 타겟 노드에 동기화하기 위한 상기 후보 인접 노드들 중으로부터의 타겟 인접 노드를 선택하는 단계를 포함하는 방법. - 제2항에 있어서, 상기 후보 인접 노드들의 선택 가중치 값들에 따라, 데이터를 상기 타겟 노드에 동기화하기 위한 상기 후보 인접 노드들 중으로부터의 타겟 인접 노드를 선택하는 단계는,
선택 가중치 값이 가장 높은 상기 후보 인접 노드들 중으로부터의 후보 인접 노드를 상기 타겟 인접 노드로서 결정하는 단계를 포함하는 방법. - 제1항에 있어서, 타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하는 단계는,
상기 타겟 노드에 접속되는 인접 노드들이 상기 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하여, 데이터를 상기 타겟 노드에 동기화할 필요가 있는 후보 인접 노드들을 획득하는 단계; 및
상기 후보 인접 노드들의 데이터 동기화 이력을 획득하는 단계를 포함하는 방법. - 제4항에 있어서, 상기 분산 시스템은 블록체인 시스템을 포함하고, 타겟 데이터는 블록 데이터를 포함하고, 상기 타겟 노드에 접속되는 인접 노드들이 상기 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하는 단계는,
상기 타겟 노드에서 블록체인 원장의 제1 블록 헤더의 높이를 획득하는 단계;
상기 타겟 노드에 접속되는 인접 노드들에서의 상기 블록체인 원장의 제2 블록 헤더의 높이를 획득하는 단계; 및
상기 제1 블록 헤더의 높이를 상기 제2 블록 헤더의 높이와 비교하여, 상기 타겟 노드에 접속되는 인접 노드들이 상기 타겟 노드에 동기화될 필요가 있는 데이터를 갖는지 검출하는 단계를 포함하는 방법. - 제1항에 있어서, 상기 데이터 동기화 이력은 이력 데이터 동기화 프로세스에서의 상기 타겟 노드 및 상기 인접 노드들의 에러 카운트들을 포함하고, 상기 데이터 동기화 이력에 따라 상기 인접 노드들의 선택 가중치 값들을 결정하는 단계는,
에러 카운트 임계값을 초과하지 않는 에러 카운트들을 갖는 인접 노드들을 검출하는 단계; 및
상기 데이터 동기화 이력에 따라, 상기 에러 카운트 임계값을 초과하지 않는 에러 카운트들을 갖는 인접 노드들의 선택 가중치 값들을 결정하는 단계를 포함하는 방법. - 제1항에 있어서, 데이터 동기화 이력은 이력 데이터 송신 레이트 및 이력 데이터 요청 순간을 포함하고, 상기 데이터 동기화 이력에 따라 상기 인접 노드들의 선택 가중치 값들을 결정하는 단계는, 상기 인접 노드들의 선택 가중치 값들이 다음의 공식에 의해 계산되는 것을 포함하고:
여기서 W i 는 i번째 인접 노드의 선택 가중치 값을 표현하고; j는 j번째 시간 동안 상기 타겟 노드와 상기 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; m은 m번째 시간 동안 상기 타겟 노드와 상기 i번째 인접 노드 사이의 이력 데이터 동기화를 표현하고; n은 마지막 n회에서의 상기 타겟 노드와 상기 i번째 인접 노드 사이의 이력 데이터 동기화의 횟수를 표현하고; S j 는 상기 타겟 노드 및 상기 i번째 인접 노드가 상기 j번째 시간 동안 이력 데이터 동기화를 수행할 때의 이력 데이터 송신 레이트를 표현하고; t j 는 상기 타겟 노드 및 상기 i번째 인접 노드가 상기 j번째 시간 동안 상기 이력 데이터 동기화를 수행하는 이력 데이터 요청 순간을 표현하고; t는 상기 i번째 인접 노드의 선택 가중치 값이 계산되는 순간을 표현하는 방법. - 제1항에 있어서, 상기 타겟 인접 노드에서의 타겟 데이터를 상기 타겟 노드에 동기화하는 단계는,
상기 타겟 데이터에 대한 다운로드 요청을 상기 타겟 인접 노드에 송신하여, 상기 타겟 인접 노드로 하여금 상기 다운로드 요청에 따라 상기 타겟 데이터를 상기 타겟 노드에 송신하게 하는 단계를 포함하고; 및
상기 방법은, 상기 타겟 인접 노드에서의 타겟 데이터를 상기 타겟 노드에 동기화하는 프로세스에서, 상기 타겟 데이터의 동기화가 실패할 때, 상기 타겟 노드와 상기 타겟 인접 노드 사이의 데이터 동기화에서의 에러 카운트를 기록하는 단계를 추가로 포함하는 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 분산 시스템은 블록체인 시스템을 포함하고, 상기 타겟 데이터는 블록 헤더 데이터 및 완전한 블록 데이터를 포함하고,
상기 인접 노드들의 선택 가중치 값들에 따라, 데이터를 상기 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계, 및 상기 타겟 인접 노드에서의 타겟 데이터를 상기 타겟 노드에 동기화하는 단계는,
상기 인접 노드들의 선택 가중치 값들에 따라, 상기 블록 헤더 데이터를 상기 타겟 노드에 동기화하기 위한 제1 타겟 인접 노드를 선택하는 단계, 및 상기 제1 타겟 인접 노드로부터 상기 블록 헤더 데이터를 동기화하는 단계; 및
상기 블록 헤더 데이터가 동기화된 후에 상기 인접 노드들의 선택 가중치 값들에 따라, 상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하는 단계, 및 상기 제2 타겟 인접 노드로부터 상기 완전한 블록 데이터를 동기화하는 단계를 포함하는 방법. - 제9항에 있어서,
상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하는 단계 전에,
상기 타겟 노드에서 블록체인 원장의 상기 완전한 블록 데이터가 있는 제3 블록 헤더의 높이를 획득하는 단계;
상기 타겟 노드에서 상기 블록체인 원장의 상기 완전한 블록 데이터가 없는 제4 블록 헤더의 높이를 획득하는 단계; 및
상기 제3 블록 헤더의 높이를 상기 제4 블록 헤더의 높이와 비교하여, 상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택할지 검출하는 단계를 추가로 포함하는 방법. - 제10항에 있어서, 상기 제3 블록 헤더의 높이를 상기 제4 블록 헤더의 높이와 비교하여, 상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택할지 검출하는 단계는,
상기 제3 블록 헤더의 높이가 상기 제4 블록 헤더의 높이보다 더 작을 때 상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하는 단계를 포함하는 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 분산 시스템은 블록체인 시스템을 포함하고, 상기 타겟 데이터는 완전한 블록 데이터를 포함하고,
상기 인접 노드들의 선택 가중치 값들에 따라, 데이터를 상기 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하는 단계, 및 상기 타겟 인접 노드에서의 타겟 데이터를 상기 타겟 노드에 동기화하는 단계는,
상기 인접 노드들의 선택 가중치 값들에 따라, 상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하기 위한 제2 타겟 인접 노드를 선택하는 단계, 및 상기 제2 타겟 인접 노드로부터 상기 완전한 블록 데이터를 동기화하는 단계를 포함하는 방법. - 제9항에 있어서, 상기 제2 타겟 인접 노드로부터 상기 완전한 블록 데이터를 동기화하는 단계는,
상기 제2 타겟 인접 노드에서 상기 완전한 블록 데이터를 다운로드하는 단계;
상기 완전한 블록 데이터의 유효성을 검증하는 단계; 및
상기 타겟 노드의 블록 데이터 버퍼에 유효 완전한 블록 데이터를 추가하는 단계 및 상기 블록 데이터 버퍼에 저장되는 데이터에 따라 상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하는 단계를 포함하는 방법. - 제13항에 있어서, 상기 블록 데이터 버퍼에 저장되는 데이터에 따라 상기 완전한 블록 데이터를 상기 타겟 노드에 동기화하는 단계는,
상기 타겟 노드에서의 블록체인 원장에 의해 표시되는 블록 시퀀스에 따라, 상기 블록 데이터 버퍼로부터 대응하는 블록 데이터를 판독하는 단계 및 상기 대응하는 블록 데이터를 상기 타겟 노드에서의 블록체인 원장에 기입하는 단계를 포함하는 방법. - 분산 시스템의 데이터 동기화 장치로서, 상기 장치는,
타겟 노드에 접속되는 인접 노드들의 데이터 동기화 이력을 획득하도록 구성되는 획득 모듈;
상기 데이터 동기화 이력에 따라, 이력 데이터 동기화의 마지막 n회에서의 인접 노드의 평균 데이터 송신 레이트 및 인접 노드의 선택 가중치 값이 계산되는 순간과 상기 타겟 노드 및 상기 인접 노드가 이력 데이터 동기화를 수행하는 순간 사이의 시간 길이를 사용하여 상기 인접 노드들의 선택 가중치 값들을 결정하도록 구성되는 결정 모듈- 상기 선택 가중치 값들은 데이터를 상기 타겟 노드에 동기화하는 상기 인접 노드들의 효율을 측정하기 위해 사용되고, 동일한 평균 데이터 송신 레이트로 상기 시간 길이가 더 짧을 때 상기 선택 가중치 값은 더 작음 -;
상기 인접 노드들의 선택 가중치 값들에 따라, 데이터를 상기 타겟 노드에 동기화하기 위한 타겟 인접 노드를 선택하도록 구성되는 선택 모듈; 및
상기 타겟 인접 노드로부터의 타겟 데이터를 상기 타겟 노드와 동기화하도록 구성되는 동기화 모듈을 포함하는 데이터 동기화 장치. - 컴퓨터 프로그램을 저장하는 컴퓨터-판독가능 저장 매체로서, 상기 컴퓨터 프로그램은 실행가능 명령어들을 포함하고, 상기 실행가능 명령어들은, 프로세서에 의해 실행될 때, 제1항 내지 제8항 중 어느 한 항에 따른 방법을 구현하는 컴퓨터-판독가능 저장 매체.
- 전자 디바이스로서,
프로세서; 및
상기 프로세서의 실행가능 명령어들을 저장하도록 구성되는 메모리를 포함하고,
상기 프로세서는 상기 실행가능 명령어들을 실행하여 제1항 내지 제8항 중 어느 한 항에 따른 방법을 구현하도록 구성되는 전자 디바이스.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910636195.1A CN110365768B (zh) | 2019-07-15 | 2019-07-15 | 分布式系统的数据同步方法、装置、介质、电子设备 |
CN201910636195.1 | 2019-07-15 | ||
PCT/CN2020/096119 WO2021008285A1 (zh) | 2019-07-15 | 2020-06-15 | 分布式系统的数据同步方法、装置、介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210042161A KR20210042161A (ko) | 2021-04-16 |
KR102476531B1 true KR102476531B1 (ko) | 2022-12-13 |
Family
ID=68219259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217008399A KR102476531B1 (ko) | 2019-07-15 | 2020-06-15 | 분산 시스템을 위한 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11645303B2 (ko) |
JP (1) | JP7214295B2 (ko) |
KR (1) | KR102476531B1 (ko) |
CN (2) | CN110365768B (ko) |
SG (1) | SG11202101244WA (ko) |
WO (1) | WO2021008285A1 (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365768B (zh) | 2019-07-15 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 分布式系统的数据同步方法、装置、介质、电子设备 |
CN110888892B (zh) * | 2019-11-15 | 2023-06-16 | 腾讯科技(深圳)有限公司 | 一种区块同步方法、装置及存储介质 |
CN110928950A (zh) * | 2019-11-25 | 2020-03-27 | 深圳壹账通智能科技有限公司 | 区块链交易信息管理方法、装置、计算机设备及存储介质 |
CN111159289B (zh) * | 2019-12-17 | 2024-03-01 | 深圳前海微众银行股份有限公司 | 一种区块同步的方法及装置 |
CN111147392B (zh) * | 2019-12-25 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、装置、设备及可读存储介质 |
CN111241593A (zh) * | 2020-01-02 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 用于区块链节点的数据同步方法及装置 |
CN111241115B (zh) * | 2020-01-07 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、设备及存储介质 |
CN111294390B (zh) * | 2020-01-17 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 一种区块数据快速同步方法、装置、设备及存储介质 |
CN111338574B (zh) * | 2020-02-20 | 2022-07-08 | 平安科技(深圳)有限公司 | 基于区块链的数据自修复方法、装置、介质及电子设备 |
CN115136178A (zh) * | 2020-02-21 | 2022-09-30 | 松下电器(美国)知识产权公司 | 控制方法、控制装置及程序 |
CN111723158A (zh) * | 2020-03-16 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | 用于区块链网络中的数据同步的方法、装置和计算设备 |
CN111400106B (zh) * | 2020-03-27 | 2023-07-28 | 百度国际科技(深圳)有限公司 | 一种区块链账本同步方法、装置以及电子设备 |
CN111475575B (zh) * | 2020-04-09 | 2021-08-10 | 腾讯科技(深圳)有限公司 | 基于区块链的数据同步方法、装置及计算机可读存储介质 |
CN111708844B (zh) * | 2020-08-24 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及设备 |
CN112968967B (zh) * | 2020-09-25 | 2023-05-19 | 支付宝(杭州)信息技术有限公司 | 区块同步方法及装置 |
CN112115367B (zh) * | 2020-09-28 | 2024-04-02 | 北京百度网讯科技有限公司 | 基于融合关系网络的信息推荐方法、装置、设备和介质 |
US11194791B1 (en) * | 2020-10-23 | 2021-12-07 | Coinbase Crypto Services, LLC. | Blockchain orchestrator computer system |
CN112417052B (zh) * | 2020-12-03 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据同步方法、装置、设备及存储介质 |
CN112231414B (zh) * | 2020-12-14 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 区块链系统的数据同步方法、装置、可读介质及电子设备 |
CN112765222B (zh) * | 2021-04-07 | 2021-07-20 | 暗链科技(深圳)有限公司 | 基于区块链的数据传输方法、存储介质及电子设备 |
CN113532549B (zh) * | 2021-08-27 | 2022-07-08 | 南京邮电大学 | 一种新能源汽车用动力电池测试系统 |
US20240163121A1 (en) * | 2021-10-30 | 2024-05-16 | China Unionpay Co., Ltd. | Blockchain consensus method, apparatus, and device, and storage medium |
KR102651602B1 (ko) * | 2021-12-13 | 2024-03-26 | 고려대학교 산학협력단 | 저궤도 위성군의 시각 동기화 방법 및 그 장치 |
CN114281256A (zh) * | 2021-12-20 | 2022-04-05 | 广州炒米信息科技有限公司 | 基于分布式存储系统的数据同步方法、装置、设备及介质 |
CN114281260A (zh) * | 2021-12-23 | 2022-04-05 | 广州炒米信息科技有限公司 | 应用于分布式存储系统的存储方法、装置、设备及介质 |
CN114726871B (zh) * | 2022-03-22 | 2024-06-11 | 阿里巴巴(中国)有限公司 | 一种数据同步方法、装置和网络系统 |
CN114979180B (zh) * | 2022-05-24 | 2024-05-17 | 超聚变数字技术有限公司 | 数据同步方法、系统及设备 |
CN115086350B (zh) * | 2022-06-13 | 2024-01-19 | 亿度科创(深圳)有限公司 | 一种区块链节点数据同步方法、设备及存储介质 |
CN115174594B (zh) * | 2022-07-07 | 2024-03-29 | 广州炒米信息科技有限公司 | 分布式系统的数据同步方法、装置、设备及介质 |
CN115794947A (zh) * | 2022-11-29 | 2023-03-14 | 蚂蚁财富(上海)金融信息服务有限公司 | 数据同步方法、装置、存储介质及电子设备 |
KR102629868B1 (ko) | 2023-03-20 | 2024-01-30 | 새한프라텍 주식회사 | 분진 제거겸용 수지 분쇄재 결정화장치 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924223A (zh) * | 2018-06-29 | 2018-11-30 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306151A (ja) * | 1998-04-27 | 1999-11-05 | Fujitsu Ltd | 分散オブジェクト処理装置及びプログラム記憶媒体 |
AU7594800A (en) * | 1999-10-22 | 2001-05-08 | Microsoft Corporation | A method for communicating with multiple network nodes |
US7542432B2 (en) * | 2005-10-27 | 2009-06-02 | Alcatel Lucent | Resource matched topology database synchronization in communications networks having topology state routing protocols |
JP5672311B2 (ja) * | 2010-12-22 | 2015-02-18 | 富士通株式会社 | 同期処理方法 |
JP5279888B2 (ja) | 2011-12-26 | 2013-09-04 | 株式会社フジ医療器 | マッサージ機 |
JP2013186692A (ja) | 2012-03-08 | 2013-09-19 | Hitachi Systems Ltd | 仮想マシン提供システム |
JP5585631B2 (ja) | 2012-10-11 | 2014-09-10 | キヤノンマーケティングジャパン株式会社 | 錠剤供給装置、錠剤供給方法および除電ユニット、除電方法。 |
US20150317175A1 (en) * | 2012-11-19 | 2015-11-05 | Hitachi Systems, Ltd. | Virtual machine synchronization system |
CN103281707B (zh) * | 2013-06-07 | 2015-08-19 | 北京交通大学 | 面向轨道交通基础设施服役状态检测的接入网构建方法 |
US10268410B2 (en) * | 2014-10-20 | 2019-04-23 | Netapp, Inc. | Efficient modification of storage system metadata |
CN105592488B (zh) * | 2014-10-24 | 2018-10-26 | 南京中兴软件有限责任公司 | 一种时钟网络的建立方法、装置及通信节点 |
US9686124B2 (en) * | 2015-09-22 | 2017-06-20 | Veniam, Inc. | Systems and methods for managing a network of moving things |
JP6464982B2 (ja) | 2015-10-07 | 2019-02-06 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
US10437788B2 (en) * | 2015-12-08 | 2019-10-08 | Sap Se | Automatic detection, retry, and resolution of errors in data synchronization |
US10021184B2 (en) * | 2015-12-31 | 2018-07-10 | Dropbox, Inc. | Randomized peer-to-peer synchronization of shared content items |
US20170329635A1 (en) * | 2016-05-13 | 2017-11-16 | University Of Utah Research Foundation | Systems and methods for distributed computing |
CN106506638B (zh) * | 2016-11-04 | 2020-01-07 | 江苏通付盾科技有限公司 | 区块链中的区块存储方法及装置 |
KR101930825B1 (ko) * | 2017-01-23 | 2018-12-19 | 주식회사 데일리인텔리전스 | 블록체인 네트워크를 이용해서 사용자를 인증하고 블록을 동기화하는 시스템 및 방법 |
CN106792714A (zh) * | 2017-03-02 | 2017-05-31 | 重庆邮电大学 | 一种针对WSN中Sybil攻击的安全时间同步方法 |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
WO2019075560A1 (en) * | 2017-10-16 | 2019-04-25 | Btl Group Ltd. | METHOD AND SYSTEM FOR FACILITATING DATA TRANSFER BETWEEN BLOCK CHAINS |
CN107819829B (zh) * | 2017-10-17 | 2020-07-07 | 上海点融信息科技有限责任公司 | 访问区块链的方法、系统、区块链节点设备及用户终端 |
CN108737498A (zh) * | 2018-04-18 | 2018-11-02 | 中国地质大学(武汉) | 一种基于区块链的p2p安全下载检测方法及系统 |
CN108848184B (zh) * | 2018-06-29 | 2020-08-28 | 北京金山安全软件有限公司 | 一种基于信任机制的区块链节点同步方法及装置 |
CN109241185B (zh) | 2018-08-27 | 2021-03-30 | 武汉达梦数据库股份有限公司 | 一种数据同步的方法以及数据同步装置 |
US10951408B2 (en) * | 2018-09-05 | 2021-03-16 | Nec Corporation | Method and system for publicly verifiable proofs of retrievability in blockchains |
CN109345388B (zh) * | 2018-09-20 | 2020-09-08 | 百度在线网络技术(北京)有限公司 | 区块链智能合约验证方法、装置及存储介质 |
CN109450664B (zh) * | 2018-10-09 | 2022-07-12 | 北京医拍智能科技有限公司 | 一种基于区块链p2p网络的数据协同处理方法及装置 |
CN109274754B (zh) * | 2018-10-11 | 2021-05-04 | 上海保险交易所股份有限公司 | 用于在区块链网络中同步数据的方法、设备和存储介质 |
BR112019015423A8 (pt) * | 2018-12-13 | 2023-03-28 | Advanced New Technologies Co Ltd | Método implementado por computador para proteger dados sensíveis armazenados em um protocolo de confiança mantido por uma rede de protocolo de confiança, meio de armazenamento não transitório, legível por computador e sistema |
CN109889589B (zh) | 2019-02-18 | 2021-11-23 | 闪联信息技术工程中心有限公司 | 一种基于区块链实现嵌入式硬件ota升级系统及方法 |
CN110365768B (zh) * | 2019-07-15 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 分布式系统的数据同步方法、装置、介质、电子设备 |
-
2019
- 2019-07-15 CN CN201910636195.1A patent/CN110365768B/zh active Active
- 2019-07-15 CN CN201910949896.0A patent/CN110798509B/zh active Active
-
2020
- 2020-06-15 SG SG11202101244WA patent/SG11202101244WA/en unknown
- 2020-06-15 JP JP2021514604A patent/JP7214295B2/ja active Active
- 2020-06-15 WO PCT/CN2020/096119 patent/WO2021008285A1/zh active Application Filing
- 2020-06-15 KR KR1020217008399A patent/KR102476531B1/ko active IP Right Grant
-
2021
- 2021-01-21 US US17/154,745 patent/US11645303B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924223A (zh) * | 2018-06-29 | 2018-11-30 | 北京金山安全软件有限公司 | 一种区块链的节点同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7214295B2 (ja) | 2023-01-30 |
CN110365768A (zh) | 2019-10-22 |
US20210141804A1 (en) | 2021-05-13 |
CN110798509A (zh) | 2020-02-14 |
SG11202101244WA (en) | 2021-03-30 |
CN110365768B (zh) | 2021-07-06 |
JP2022500775A (ja) | 2022-01-04 |
CN110798509B (zh) | 2021-09-17 |
KR20210042161A (ko) | 2021-04-16 |
US11645303B2 (en) | 2023-05-09 |
WO2021008285A1 (zh) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102476531B1 (ko) | 분산 시스템을 위한 데이터 동기화 방법 및 장치, 매체, 및 전자 디바이스 | |
CN109947668B (zh) | 存储数据的方法和装置 | |
CN107729570B (zh) | 用于服务器的数据迁移方法和装置 | |
CN111562889B (zh) | 数据处理方法、装置、系统及存储介质 | |
EP4024815A1 (en) | Data uploading method, system and apparatus, and electronic device | |
CN112732756B (zh) | 数据查询方法、装置、设备及存储介质 | |
US11507277B2 (en) | Key value store using progress verification | |
CN109783564A (zh) | 支持多节点的分布式缓存方法及设备 | |
CN103095824A (zh) | 文件上传控制方法及系统 | |
CN110633046A (zh) | 一种分布式系统的存储方法、装置、存储设备及存储介质 | |
US10839090B2 (en) | Digital data processing system for efficiently storing, moving, and/or processing data across a plurality of computing clusters | |
CN113760982A (zh) | 一种数据处理方法和装置 | |
CN108228432A (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
US11080239B2 (en) | Key value store using generation markers | |
CN103607731A (zh) | 一种测量报告的处理方法及装置 | |
CN112148712A (zh) | 一种数据处理方法、装置、设备及介质 | |
WO2012171363A1 (zh) | 分布式缓存系统中的数据操作方法和装置 | |
CN113872994B (zh) | 组织架构同步方法、装置、计算机设备和存储介质 | |
CN110086840A (zh) | 图像数据存储方法、装置及计算机可读存储介质 | |
US20210117129A1 (en) | Method and Apparatus for Writing Data | |
CN109616156B (zh) | 一种基因测序数据存储方法和装置 | |
CN109918213A (zh) | 一种消息处理方法、装置及服务器 | |
CN118365452B (zh) | 基于Redis的热点账户的交易方法、装置、介质和设备 | |
CN112783716B (zh) | 一种监控方法和装置 | |
CN118069413A (zh) | 灾备数据的存储方法、装置、存储介质以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |