KR101670343B1 - 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템 - Google Patents

피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템 Download PDF

Info

Publication number
KR101670343B1
KR101670343B1 KR1020157003889A KR20157003889A KR101670343B1 KR 101670343 B1 KR101670343 B1 KR 101670343B1 KR 1020157003889 A KR1020157003889 A KR 1020157003889A KR 20157003889 A KR20157003889 A KR 20157003889A KR 101670343 B1 KR101670343 B1 KR 101670343B1
Authority
KR
South Korea
Prior art keywords
node
subscriber
master node
commit
record
Prior art date
Application number
KR1020157003889A
Other languages
English (en)
Other versions
KR20160002656A (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 KR20160002656A publication Critical patent/KR20160002656A/ko
Application granted granted Critical
Publication of KR101670343B1 publication Critical patent/KR101670343B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • G06F17/30209
    • G06F17/30575
    • H04L67/26

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템이 제공된다. 상기 방법은, 마스터 노드가, 제1 기록 동작이 상기 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하는 단계 - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 및 상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계를 포함하며, 상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.

Description

피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템{METHOD, DEVICE, AND SYSTEM FOR PEER-TO-PEER DATA REPLICATION AND METHOD, DEVICE, AND SYSTEM FOR MASTER NODE SWITCHING}
본 출원은 2014년 10월 29일 제출된 국제출원 No. PCT/CN2014/098757의 연속이며, 상기 문헌은 2014년 5월 5일에 출원된 인도특허출원 No. IN2253/CHE/2014에 대한 우선권을 주장하는 바이며, 상기 두 문헌의 내용은 본 명세서에 원용되어 병합된다.
본 발명은 컴퓨터 기술 분야에 관한 것이며, 특히, 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템에 관한 것이다.
많은 통신 및 기업 애플리케이션에서, 관련 데이터베이스 관리 시스템(Relational Database Management System: RDBMS) 복제는 일반적이다. 마스터로서 작동하는 하나의 노드가 있고, 여기에서 기록이 수행될 수 있다. 그런 다음 이러한 기록은 물리적 기록을 복제하거나 구조적 질의 언어(Structured Query Language: SQL) 선언(즉, 논리적 기록)을 복제함으로써 하나 이상의 가입자와 동기화된다.
도 1은 종래기술의 싱글 마스터 복제 토폴로지이다. 도 1에 도시된 바와 같이, 마스터 데이터베이스(마스터 노드)에는 애플리케이션이 연결되어 있다. 이 애플리케이션은 SQL 선언(데이터 조작 언어(Data Manipulation Language: DML) 또는 데이터 정의 언어(Data Definition Language: DDL))을 통해 데이터베이스에 기록하는 것이 허용된다. 기록이 성공이면, 마스터 데이터베이스는 가입자 데이터베이스(1 및 2)에 데이터를 복제한다. 복제는 물리적 복제 또는 논리적 복제에 의해 수행될 수 있으며, 동기 또는 비동기일 수 있다. 도 2는 도 1에 도시된 바와 같은 싱글 마스터 복제 토폴로지에 따라 표준 복제 실행에 대한 개략적인 다이어그램이다. 도 2에 도시된 바와 같이, 애플리케이션은 DML/DDL 선언을 마스터 데이터베이스에 푸싱하고(S201), 마스터 데이터베이스는 DML/DDL 선언을 분석하며(S202), 그런 다음 DML/DDL 선언을 실행하고(S203), 이것은 데이터베이스에 물리적으로 기록된다(S204). 이 물리적 기록은 마스터 노드의 메모리 페이지에서 있을 수 있거나 직접 입출력(I/O) 기록이 마스터 데이터베이스의 저장 디스크에서 있을 수 있다. 이 기록이 성공이면, 마스터 데이터베이스는 이 마스터 데이터베이스에 접속된 임의의 가입자 데이터베이스에 기록되는 데이터를 복제할 필요성의 여부를 판정하고(S205), 필요가 없으면, 마스터 데이터베이스는 복제를 완료하고(S206); 필요가 있으면, 마스터 데이터베이스는 이 마스터 데이터베이스에 접속되어 있는 가입자 데이터베이스에 재수행 엔티티를 송신하여 가입자 데이터베이스에 기록될 데이터를 복제하며(S207), 여기서 데이터를 복제하는 과정은 전술한 기록 동작의 과정과 유사하며, SQL 선언이 물리적 재수행 대신 발송된다.
전술한 종래기술에서는 단일의 네트워크 병목현상의 약점이 있다. 마스터 노드는 전체적인 솔루션에 대해 병목현상으로 된다. 도 1에 도시된 싱글 마스터 복제 토폴로지에 따르면, 마스터 데이터베이스는 동일한 데이터를 2회 복제해야 하고, 따라서 네트워크 부하가 2회 초래된다.
본 발명의 실시예는 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템을 제공하여, 피어-피어 모드에서 복제를 분배함으로써 복제 클러스터에서 마스터 노드로부터의 복제 병목현상을 완화한다.
본 발명의 실시예는 이하의 기술적 솔루션을 채택한다.
본 발명의 제1 관점은 피어투피어 데이터 복제(peer-to-peer data replication)를 위한 방법을 제공하며, 상기 방법은:
마스터 노드가, 제1 기록 동작이 상기 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하는 단계 - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 및
상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계
를 포함하며,
상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제1 관점의 제1 실시에서, 상기 물리적 엔티티들은 테이블 공간, 장치 파일, 페이지 및/또는 파티션이다.
본 발명의 제1 관점의 제2 실시에서, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계는 상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑함으로써 상기 마스터 노드에 의해 구축되고, 각각의 세트의 물리적 엔티티는 하나 또는 복수의 물리적 엔티티를 포함하며,
상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계는,
상기 마스터 노드가, 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해 상기 제1 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계
포함한다.
본 발명의 제1 관점의 제3 실시에서, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계는 상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑하며, - 상기 마스터 노드 내의 각각의 세트의 물리적 엔티티는 복수의 물리적 엔티티를 포함함 - 상기 마스터 노드 내의 하나의 세트의 물리적 엔티티 내의 상이한 물리적 엔티티를 상기 하나의 세트의 물리적 엔티티에 대응하는 가입자 노드 내의 상이한 물리적 엔티티에 추가로 맵핑함으로써 상기 마스터 노드에 의해 구축되며,
상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계는:
상기 마스터 노드가, 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해, 상기 제1 물리적 엔티티가 속하면서 상기 제1 마스터 노드에 관한 상기 한 세트의 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계 및 상기 제1 물리적 엔티티와 제3 물리적 엔티티 간의 맵핑 관계에 기초하여, 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제3 물리적 엔티티에 푸싱하는 단계
를 포함하고,
상기 제1 가입자 노드는 제3 물리적 엔티티 및 제4 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있다.
본 발명의 제1 관점의 제4 실시에서, 상기 마스터 노드에 새로운 가입자 노드가 접속될 때,
상기 마스터 노드가, 상기 마스터 노드 내의 물리적 엔티티, 및 상기 물리적 엔티티와 상기 새로운 가입자 노드를 포함하는 가입자 노드 간의 맵핑 관계가 재구성된 후에, 커밋 재수행 레코드를 상기 새로운 가입자 노드에 동기화하는 단계
더 포함한다.
본 발명의 제1 관점의 제5 실시에서, 상기 제1 커밋 레코드는 제2 커밋 레코드와는 별개이며, 상기 제2 커밋 레코드는 관련 기록 동작이 일어나는 물리적 엔티티에 기초해서, 제2 기록 동작이 제2 물리적 엔티티에서 일어날 때 상기 마스터 노드에 의해 생성된다.
본 발명의 제1 관점의 제6 실시에서, 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 마스터 노드에 의해 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 각각 병렬로 푸싱되고, 이에 따라 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 의해 병렬로 각각 리플레이되며; 상기 제2 커밋 재수행 레코드는 상기 마스터 노드로부터 상기 제2 물리적 엔티티에 대응하는 상기 제2 가입자 노드로, 그런 다음 상기 제2 가입자 노드에 의해, 상기 수신된 제2 커밋 재수행 레코드를 상기 제1 가입자 노드로 푸싱하는 것을 통해 제1 가입자 노드로, 상기 제2 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제2 관점은 피어투피어 데이터 복제를 위한 방법을 제공하며, 상기 방법은:
가입자 노드가, 마스터 노드로부터 커밋 순차 번호(commit sequence number: CSN)가 부착된 커밋 재수행 레코드를 수신하는 단계 - 상기 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내의 기록 동작의 순차를 지시하는 데 사용됨 - ;
상기 가입자 노드들의 CSN을 뺀 상기 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1일 때, 상기 가입자 노드들의 CSN을 상기 커밋 재수행 레코드에 부착된 CSN으로 갱신하는 단계 - 상기 가입자 노드들의 CSN은 초기화 동안 0에 설정되어 있음 - ;
상기 가입자 노드가, 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하는 단계 - 상기 가입자 노드는 상기 마스터 노드 및 상기 마스터 노드에 접속된 다른 가입자 노드에 접속됨 - ; 및
상기 가입자 노드가, 상기 마스터 노드 상에서 일어난 기록 동작의 데이터를 상기 다른 가입자에 복제하기 위해, 상기 커밋 재수행 레코드를 상기 다른 가입자 노드에 푸싱하는 단계
를 포함한다.
본 발명의 제2 관점의 제1 실시에서, 상기 가입자 노드가, 상기 가입자 노드들의 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1이 아닐 때, 상기 수신된 커밋 재수행 레코드를 세이브하고, 다른 커밋 재수행 레코드를 대기하는 단계; 및
상기 가입자 노드가, 상기 가입자 노드들의 CSN이, 상기 가입자 노드의 갱신된 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1인 값으로 갱신된 후, 상기 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하는 단계
를 더 포함한다.
본 발명의 제2 관점의 제2 실시에서, 상기 가입자 노드가, 상기 마스터 노드가 작동이 안 되고 상기 가입자 노드가 새로운 마스터 노드로 선출된 후 상기 다른 가입자 노드에서 상기 커밋 재수행 레코드를 리플레이함으로써 획득되는, 상기 마스터 노드에서 일어난 기록 동작의 모든 데이터를 얻기 위해 모든 다른 가입자 노드에 당김 요구(pull request)를 전송하는 단계; 및
상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 재할당하는 단계
를 더 포함한다.
본 발명의 제2 관점의 제3 실시에서, 상기 가입자 노드가, 상기 가입자 노드 내의 이전의 마스터 노드가 작동이 안 되고 다른 가입자 노드가 새로운 마스터 노드로 선출된 후, 상기 새로운 마스터 노드에 의해 전송된 당김 요구에 응답해서 상기 이전의 마스터 노드에서 일어난 기록 동작의 데이터를 새로운 마스터 노드로서 작동하는 가입자 노드에 전송하는 단계
를 더 포함한다.
본 발명의 제3 관점은 마스터 노드 전환을 위한 방법을 제공하며, 상기 방법은:
적어도 2개의 가입자 노드들 중의 가입자 노드가, 마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하는 단계 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드가 새로운 마스터 노드로 선출된 후, 새로운 마스터 노드로서 작동하는 가입자 노드가 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드에 당김 요구를 전송하는 단계; 및
상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드로부터 데이터를 수신하는 단계
를 포함한다.
본 발명의 제3 관점의 제1 실시에서, 상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 구축하는 단계; 및
상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 상기 새로운 마스터 노드 내의 물리적 엔티티에서 기록 동작이 일어날 때, 상기 맵핑 관계에 따라 상기 새로운 마스터 노드와 상기 새로운 마스터 노드로 선출되지 않은 다른 가입자 노드 간의 피어투피어 데이터 복제를 수행하는 단계
를 더 포함한다.
본 발명의 제4 관점은 마스터 노드 전환을 위한 방법을 제공하며, 상기 방법은:
적어도 2개의 가입자 노드들 중의 가입자 노드가, 마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하는 단계 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
상기 다른 가입자 노드와 함께 상기 가입자 노드가, 상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드를 새로운 마스터 노드로 선출하는 단계;
상기 새로운 마스터 노드로 선출되지 않은 가입자 노드가, 상기 새로운 마스터 노드에 의해 발급된 당김 요구를 수신하는 단계; 및
상기 새로운 마스터 노드로 선출되지 않은 가입자 노드가, 새로운 마스터 노드에 의해 전송된 당김 요구에 응답하여 상기 가입자 노드 내의 데이터를 상기 새로운 마스터 노드에 전송하는 단계
를 포함한다.
본 발명의 제5 관점은 피어투피어 데이터 복제(peer-to-peer data replication)를 위한 장치를 제공하며, 상기 장치는 마스터 노드 내에 위치하며, 상기 장치는,
제1 기록 동작이 상기 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하도록 구성되어 있는 생성 유닛 - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 및
상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 구성되어 있는 복제 유닛
을 포함하며,
상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제5 관점의 제1 실시에서, 상기 물리적 엔티티들은 테이블 공간, 장치 파일, 페이지 및/또는 파티션이다.
본 발명의 제5 관점의 제2 실시에서, 상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하도록 구성되어 있는 맵핑 유닛
을 더 포함하고,
각각의 세트의 물리적 엔티티는 하나 또는 복수의 물리적 엔티티를 포함하며,
상기 복제 유닛은 구체적으로 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해 상기 제1 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 구성되어 있으며,
상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제5 관점의 제3 실시에서, 상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑하며, - 상기 마스터 노드 내의 각각의 세트의 물리적 엔티티는 복수의 물리적 엔티티를 포함함 - 상기 마스터 노드 내의 하나의 세트의 물리적 엔티티 내의 상이한 물리적 엔티티를 상기 하나의 세트의 물리적 엔티티에 대응하는 가입자 노드 내의 상이한 물리적 엔티티에 추가로 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하도록 구성되어 있는 제2 맵핑 유닛
을 더 포함하며,
상기 복제 유닛은 구체적으로 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해, 상기 제1 물리적 엔티티가 속하면서 상기 제1 마스터 노드에 관한 상기 한 세트의 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계 및 상기 제1 물리적 엔티티와 제3 물리적 엔티티 간의 맵핑 관계에 기초하여, 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제3 물리적 엔티티에 푸싱하도록 구성되어 있으며,
상기 제1 가입자 노드는 제3 물리적 엔티티 및 제4 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있으며,
상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제5 관점의 제4 실시에서, 상기 복제 유닛은 상기 마스터 노드에 새로운 가입자 노드가 접속될 때, 상기 마스터 노드 내의 물리적 엔티티, 및 상기 물리적 엔티티와 상기 새로운 가입자 노드를 포함하는 가입자 노드 간의 맵핑 관계가 재구성된 후에, 커밋 재수행 레코드를 상기 새로운 가입자 노드에 동기화하도록 추가로 구성되어 있다.
본 발명의 제5 관점의 제5 실시에서, 상기 제1 커밋 레코드는 제2 커밋 레코드와는 별개이며, 상기 제2 커밋 레코드는 관련 기록 동작이 일어나는 물리적 엔티티에 기초해서, 제2 기록 동작이 제2 물리적 엔티티에서 일어날 때 상기 마스터 노드에 의해 생성된다.
본 발명의 제5 관점의 제6 실시에서, 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 마스터 노드에 의해 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 각각 병렬로 푸싱되고, 이에 따라 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 의해 병렬로 각각 리플레이되며;
상기 제2 커밋 재수행 레코드는 상기 마스터 노드로부터 상기 제2 물리적 엔티티에 대응하는 상기 제2 가입자 노드로, 그런 다음 상기 제2 가입자 노드에 의해, 상기 수신된 제2 커밋 재수행 레코드를 상기 제1 가입자 노드로 푸싱하는 것을 통해 제1 가입자 노드로, 상기 제2 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제6 관점은 피어투피어 데이터 복제(peer-to-peer data replication)를 위한 장치를 제공하며, 상기 장치는 가입자 노드 내에 위치하며, 상기 장치는:
마스터 노드로부터 커밋 순차 번호(commit sequence number: CSN)가 부착된 커밋 재수행 레코드를 수신하도록 구성되어 있는 수신 유닛 - 상기 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내의 기록 동작의 순차를 지시하는 데 사용됨 - ;
상기 가입자 노드들의 CSN을 뺀 상기 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1일 때, 상기 가입자 노드들의 CSN을 상기 커밋 재수행 레코드에 부착된 CSN으로 갱신하도록 구성되어 있는 CSN 처리 유닛 - 상기 가입자 노드들의 CSN은 초기화 동안 0에 설정되어 있음 - ;
마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하며 - 상기 가입자 노드는 상기 마스터 노드 및 상기 마스터 노드에 접속된 다른 가입자 노드에 접속됨 - ; 그리고 상기 마스터 노드 상에서 일어난 기록 동작의 데이터를 상기 다른 가입자에 복제하기 위해, 상기 커밋 재수행 레코드를 상기 다른 가입자 노드에 푸싱하도록 구성되어 있는 복제 유닛
을 포함한다.
본 발명의 제6 관점의 제1 실시에서, 상기 CSN 처리 유닛은, 상기 가입자 노드들의 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1이 아닐 때, 상기 수신된 커밋 재수행 레코드를 세이브하고, 다른 커밋 재수행 레코드를 대기하도록 추가로 구성되어 있고; 그리고
상기 복제 유닛은, 상기 가입자 노드들의 CSN이, 상기 가입자 노드의 갱신된 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1인 값으로 갱신된 후, 상기 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하도록 추가로 구성되어 있다.
본 발명의 제6 관점의 제2 실시에서, 상기 복제 유닛은, 상기 마스터 노드가 작동이 안 되고 상기 가입자 노드가 새로운 마스터 노드로 선출된 후 상기 다른 가입자 노드에서 상기 커밋 재수행 레코드를 리플레이함으로써 획득되는, 상기 마스터 노드에서 일어난 기록 동작의 모든 데이터를 얻기 위해 모든 다른 가입자 노드에 당김 요구를 전송하도록 추가로 구성되어 있고; 그리고
상기 장치는,
상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 새로운 마스터 노드로서 작동하는 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 재할당하도록 구성되어 있는 맵핑 유닛
을 더 포함한다.
본 발명의 제6 관점의 제3 실시에서, 상기 복제 유닛은, 상기 가입자 노드 내의 이전의 마스터 노드가 작동이 안 되고 다른 가입자 노드가 새로운 마스터 노드로 선출된 후, 상기 새로운 마스터 노드에 의해 전송된 당김 요구에 응답해서 상기 이전의 마스터 노드에서 일어난 기록 동작의 데이터를 새로운 마스터 노드로서 작동하는 가입자 노드에 전송하도록 추가로 구성되어 있다.
본 발명의 제7 관점은 마스터 노드 전환을 위한 장치를 제공하며, 상기 장치는 가입자 노드 내에 위치하며, 상기 장치는:
마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하도록 구성되어 있는 동기화 유닛 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드가 새로운 마스터 노드로 선출된 후, 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드에 당김 요구를 전송하도록 구성되어 있는 전송 유닛; 및
상기 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드로부터 데이터를 수신하도록 구성되어 있는 수신 유닛
을 포함한다.
본 발명의 제7 관점의 제1 실시예에서, 상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 구축하도록 구성되어 있는 맵핑 유닛
을 더 포함하고,
상기 동기화 유닛은, 상기 새로운 마스터 노드 내의 물리적 엔티티에서 기록 동작이 일어날 때, 상기 맵핑 관계에 따라 상기 새로운 마스터 노드와 상기 새로운 마스터 노드로 선출되지 않은 다른 가입자 노드 간의 피어투피어 데이터 복제를 수행하도록 구성되어 있다.
본 발명의 제8 관점은 마스터 노드 전환을 위한 장치를 제공하며, 상기 장치는 가입자 노드 내에 위치하며, 상기 장치는:
마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하도록 구성되어 있는 동기화 유닛 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
상기 다른 가입자 노드와 함께, 상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드를 새로운 마스터 노드로 선출하도록 구성되어 있는 선출 유닛;
상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 상기 새로운 마스터 노드에 의해 발급된 당김 요구를 수신하도록 구성되어 있는 수신 유닛; 및
상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 새로운 마스터 노드에 의해 전송된 당김 요구에 응답하여 상기 가입자 노드 내의 데이터를 상기 새로운 마스터 노드에 전송하도록 구성되어 있는 전송 유닛
을 포함한다.
본 발명의 제9 관점은 피어투피어 데이터 복제(peer-to-peer data replication)를 위한 장치를 제공하며, 상기 장치는 마스터 노드 내에 위치하며, 상기 장치는:
프로세서 및 상기 프로세서에 접속된 메모리를 포함하며,
상기 프로세서는,
제1 기록 동작이 상기 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하고 - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 그리고
상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 구성되어 있으며,
상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱함으로써 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제9 관점의 제1 실시에서, 상기 물리적 엔티티들은 테이블 공간, 장치 파일, 페이지 및/또는 파티션이다.
본 발명의 제9 관점의 제2 실시에서, 상기 프로세서는:
상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하고 - 각각의 세트의 물리적 엔티티는 하나 또는 복수의 물리적 엔티티를 포함함 - ; 그리고
상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해 상기 제1 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 추가로 구성되어 있다.
본 발명의 제9 관점의 제3 실시에서, 상기 프로세서는:
상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑하며, - 상기 마스터 노드 내의 각각의 세트의 물리적 엔티티는 복수의 물리적 엔티티를 포함함 - 상기 마스터 노드 내의 하나의 세트의 물리적 엔티티 내의 상이한 물리적 엔티티를 상기 하나의 세트의 물리적 엔티티에 대응하는 가입자 노드 내의 상이한 물리적 엔티티에 추가로 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하며; 그리고
상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해, 상기 제1 물리적 엔티티가 속하면서 상기 제1 마스터 노드에 관한 상기 한 세트의 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계 및 상기 제1 물리적 엔티티와 제3 물리적 엔티티 간의 맵핑 관계에 기초하여, 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제3 물리적 엔티티에 푸싱하도록 추가로 구성되어 있으며,
상기 제1 가입자 노드는 제3 물리적 엔티티 및 제4 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있다.
본 발명의 제9 관점의 제4 실시에서, 상기 프로세서는:
상기 마스터 노드에 새로운 가입자 노드가 접속될 때, 상기 마스터 노드 내의 물리적 엔티티, 및 상기 물리적 엔티티와 상기 새로운 가입자 노드를 포함하는 가입자 노드 간의 맵핑 관계가 재구성된 후에, 커밋 재수행 레코드를 상기 새로운 가입자 노드에 동기화하도록 추가로 구성되어 있다.
본 발명의 제9 관점의 제5 실시에서, 상기 제1 커밋 레코드는 제2 커밋 레코드와는 별개이며, 상기 제2 커밋 레코드는 관련 기록 동작이 일어나는 물리적 엔티티에 기초해서, 제2 기록 동작이 제2 물리적 엔티티에서 일어날 때 상기 마스터 노드에 의해 생성된다.
본 발명의 제9 관점의 제6 실시에서, 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 마스터 노드에 의해 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 각각 병렬로 푸싱되고, 이에 따라 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 의해 병렬로 각각 리플레이되며;
상기 제2 커밋 재수행 레코드는 상기 마스터 노드로부터 상기 제2 물리적 엔티티에 대응하는 상기 제2 가입자 노드로, 그런 다음 상기 제2 가입자 노드에 의해, 상기 수신된 제2 커밋 재수행 레코드를 상기 제1 가입자 노드로 푸싱하는 것을 통해 제1 가입자 노드로, 상기 제2 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 제10 관점은 피어투피어 데이터 복제(peer-to-peer data replication)를 위한 장치를 제공하며, 상기 장치는 가입자 노드 내에 위치하며, 상기 장치는:
프로세서 및 상기 프로세서에 접속된 메모리를 포함하며,
상기 프로세서는,
마스터 노드로부터 커밋 순차 번호(commit sequence number: CSN)가 부착된 커밋 재수행 레코드를 수신하고 - 상기 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내의 기록 동작의 순차를 지시하는 데 사용됨 - ;
상기 가입자 노드들의 CSN을 뺀 상기 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1일 때, 상기 가입자 노드들의 CSN을 상기 커밋 재수행 레코드에 부착된 CSN으로 갱신하고 - 상기 가입자 노드들의 CSN은 초기화 동안 0에 설정되어 있음 - ;
마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하며 - 상기 가입자 노드는 상기 마스터 노드 및 상기 마스터 노드에 접속된 다른 가입자 노드에 접속됨 - ; 그리고
상기 마스터 노드 상에서 일어난 기록 동작의 데이터를 상기 다른 가입자에 복제하기 위해, 상기 커밋 재수행 레코드를 상기 다른 가입자 노드에 푸싱하도록 구성되어 있다.
본 발명의 제10 관점의 제1 실시에서, 상기 프로세서는:
상기 가입자 노드들의 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1이 아닐 때, 상기 수신된 커밋 재수행 레코드를 세이브하고, 다른 커밋 재수행 레코드를 대기하고; 그리고
상기 가입자 노드들의 CSN이, 상기 가입자 노드의 갱신된 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1인 값으로 갱신된 후, 상기 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하도록 추가로 구성되어 있다.
본 발명의 제10 관점의 제2 실시에서, 상기 프로세서는:
상기 마스터 노드가 작동이 안 되고 상기 가입자 노드가 새로운 마스터 노드로 선출된 후 상기 다른 가입자 노드에서 상기 커밋 재수행 레코드를 리플레이함으로써 획득되는, 상기 마스터 노드에서 일어난 기록 동작의 모든 데이터를 얻기 위해 모든 다른 가입자 노드에 당김 요구를 전송하도록 구성되어 있고; 그리고
상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 새로운 마스터 노드로서 작동하는 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 재할당하도록 구성되어 있는 맵핑 유닛
을 포함한다.
본 발명의 제10 관점의 제3 실시에서, 상기 프로세서는:
상기 가입자 노드 내의 이전의 마스터 노드가 작동이 안 되고 다른 가입자 노드가 새로운 마스터 노드로 선출된 후, 상기 새로운 마스터 노드에 의해 전송된 당김 요구에 응답해서 상기 이전의 마스터 노드에서 일어난 기록 동작의 데이터를 새로운 마스터 노드로서 작동하는 가입자 노드에 전송하도록 추가로 구성되어 있다.
제11 관점은 마스터 노드 전환을 위한 장치를 제공하며, 상기 장치는 가입자 노드 내에 위치하며, 상기 장치는:
프로세서 및 상기 프로세서에 접속된 메모리를 포함하며,
상기 프로세서는,
마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하고 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드가 새로운 마스터 노드로 선출된 후, 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드에 당김 요구를 전송하며; 그리고
상기 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드로부터 데이터를 수신하도록 구성되어 있다.
본 발명의 제11 관점의 제1 실시예서, 상기 프로세서는:
상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 구축하고; 그리고
상기 새로운 마스터 노드 내의 물리적 엔티티에서 기록 동작이 일어날 때, 상기 맵핑 관계에 따라 상기 새로운 마스터 노드와 상기 새로운 마스터 노드로 선출되지 않은 다른 가입자 노드 간의 피어투피어 데이터 복제를 수행하도록 구성되어 있다.
본 발명의 제12 관점은 마스터 노드 전환을 위한 장치를 제공하며, 상기 장치는 가입자 노드 내에 위치하며, 상기 장치는:
프로세서 및 상기 프로세서에 접속된 메모리를 포함하며,
상기 프로세서는,
마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하고 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
상기 다른 가입자 노드와 함께, 상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드를 새로운 마스터 노드로 선출하고;
상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 상기 새로운 마스터 노드에 의해 발급된 당김 요구를 수신하며; 그리고
상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 새로운 마스터 노드에 의해 전송된 당김 요구에 응답하여 상기 가입자 노드 내의 데이터를 상기 새로운 마스터 노드에 전송하도록 구성되어 있다.
본 발명의 제13 관점은 싱글 마스터 클러스터 시스템을 제공하며, 상기 시스템은 마스터 노드 및 제1 가입자 노드 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드를 포함하며,
상기 마스터 노드 상에, 제1 관점, 제9 관점 및 제9 관점의 실시에 따른 피어투피어 데이터 복제를 위한 장치가 위치하며,
상기 가입자 노드 각각에, 제6 관점, 제10 관점 및 제10 관점의 실시에 따른 피어투피어 데이터 복제를 위한 장치가 위치한다.
본 발명의 제14 관점은 싱글 마스터 클러스터 시스템을 제공하며, 상기 시스템은 마스터 노드 및 적어도 2개의 가입자 노드를 포함하며,
상기 가입자 노드 각각에, 제7 관점, 제11 관점 및 제11 관점의 실시에 따른 마스터 노드 전환을 위한 장치 및 제8 관점, 제12 관점 및 제12 관점의 실시에 따른 마스터 노드 전환을 위한 장치가 위치한다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법, 장치 및 시스템에 따르면, 마스터 노드는 마스터 노드 상에서 기록 동작이 발생될 때 생성되는 커밋 재수행 기록을 복수의 커밋 재수행 기록과 분리하고, 상기 복수의 커밋 재수행 기록을 상이한 가입자에 푸싱하며, 여기서 복수의 커밋 재수행 레코드 각각은 마스터 노드에 의해 하나의 가입자에만 푸싱되고, 그런 다음 상기 커밋 재수행 기록을 수신하는 하나의 가입자에 의해서만 푸싱을 통해 다른 가입자 노드에 푸싱하며, 이에 의해 마스터 노드와 가입자 노드 간의 전송이 감소되고, 따라서 복제 플러스터 내의 마스터 노드로부터의 복제 병목현상을 완화한다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 방법, 장치 및 시스템에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있다.
본 발명의 실시예 또는 종래기술의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 실시예 또는 종래기술을 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 종래기술의 싱글 마스터 복제 토폴로지이다.
도 2는 도 1에 도시된 싱글 마스터 복제 토폴로지에 따라 종래의 복제 실시에 대한 개략도이다.
도 3은 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법에 대한 흐름도이다.
도 4a는 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 예시도이다.
도 4b는 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 다른 예시도이다.
도 4c는 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 다른 예시도이다.
도 5는 도 4c에 도시된 바와 같은 싱글 마스터 복제 토폴로지를 구성하는 개략적인 흐름도이다.
도 6은 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 다른 예시도이다.
도 7은 본 발명의 실시예에 따른 마스터 노드의 동기화 동작의 예에 대한 개략적인 흐름도이다.
도 8은 본 발명의 실시예에 따른 가입자 노드의 동작의 예에 대한 개략적인 흐름도이다.
도 9는 본 발명의 실시예에 따른 가입자 노드의 동기화 동작의 다른 예에 대한 개략적인 흐름도이다.
도 10은 P2P 네트워크의 간단한 시나리오를 도시하는 도면이다.
도 11은 종래기술에 따른 데이터 이용 가능성 발급의 예에 대한 개략도이다.
도 12는 본 발명의 실시예에 따라 마스터 노드가 작동하지 않을 때 피어투피어 복제를 위한 방법에 대한 개략적인 흐름도이다.
도 13은 본 발명의 실시예에 따른 피어투피어 복제를 위한 방법이 적용될 수 있는 시나리오에 예에 대한 개략적인 구조도이다.
도 14는 본 발명의 실시예에 따른 마스터 노드 전환을 위한 방법에 대한 개략적인 흐름도이다.
도 15는 본 발명의 실시예에 따른 마스터 노드 전환을 위한 다른 방법에 대한 개략적인 흐름도이다.
도 16은 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다.
도 17은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다.
도 18은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다.
도 19는 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다.
도 20은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다.
도 21은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다.
도 22는 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다.
도 23은 본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다.
도 24는 본 발명의 다른 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다.
도 25는 본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다.
도 26은 본 발명의 다른 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다.
도 27은 본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다.
도 28은 본 발명의 실시예에 따른 싱글 마스터 클러스터 시스템에 대한 개략적인 구조도이다.
도 29는 본 발명의 다른 실시예에 따른 싱글 마스터 클러스터 시스템에 대한 개략적인 구조도이다.
이하에서는 본 발명의 실시예에 첨부된 도면을 참조하여 본 발명의 실시예의 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 설명된 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
본 발명의 실시예는 피어투피어 데이터 복제를 위한 방법을 제공한다. 도 3은 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법에 대한 흐름도이다. 도 3에 도시된 바와 같이, 방법은 이하의 단계를 포함한다.
301. 마스터 노드는, 제1 기록 동작이 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하고, 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 여기서 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용된다.
302. 상기 마스터 노드는, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하며, 상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
여기서, 마스터 노드는 마스터 데이터베이스를 포함하는 노드이고, 가입자 노드는 가입자 데이터베이스를 포함하는 노드이며, 물리적 엔티티들은 테이블 공간, 장치 파일, 페이지 및/또는 파티션일 수 있다. 이하에서는 설명을 쉽게 하기 위해, 본 발명의 실시예에 대해 테이블 공간을 물리적 엔티티의 예로 해서 설명한다.
도 4a는 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 예시도이다. 도 4a에 도시된 바와 같이, 싱글 마스터 복제 토폴로지에서, 마스터 노드는 가입자 노드 1 및 가입자 노드 2에 접속되고, 가입자 노드 1은 가입자 노드 2에 접속되며, 여기서 마스터 노드는 마스터 데이터베이스를 포함하고 가입자 노드 1은 가입자 데이터베이스를 포함한다. 이 외에, 마스터 노드는 이 2개의 가입자 노드를 2개의 접속에 맵핑하도록 구성되어 있다. 구체적으로, 마스터 노드는 가입자 노드 1을 접속 1에 맵핑하고, 가입자 노드 2를 접속 2에 맵핑한다. 그런 다음 마스터 노드는 이 2개의 접속을 마스터 노드 내의 2개의 테이블 공간에 맵핑한다. 구체적으로, 마스터 노드는 접속 1을 테이블 공간 1에 맵핑하고, 접속 2를 테이블 공간 2에 맵핑한다.
도 4b는 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 다른 예시도이다. 도 4b에 도시된 바와 같이, 싱글 마스터 복제 토폴로지에서, 마스터 노드는 가입자 노드 1 및 가입자 노드 2에 접속되고, 가입자 노드 1은 가입자 노드 2에 접속되며, 마스터 노드는 마스터 데이터베이스를 포함하고, 가입자 노드 1은 가입자 데이터베이스를 포함하며, 가입자 노드 2는 가입자 데이터베이스를 포함한다. 이 외에, 마스터 노드는 이 2개의 가입자 노드를 접속 1 및 접속 2와 같은 2개의 접속에 맵핑하도록 구성되어 있고, 그런 다음 마스터 노드는 이 2개의 접속을 2 세트의 테이블 공간에 맵핑하며, 환언하면, 하나의 접속은 마스터 노드 내의 한 세트의 테이블 공간에 맵핑되고, 다른 하나의 접속은 마스터 노드 내의 다른 한 세트의 테이블 공간에 맵핑되며, 각각의 세트의 테이블 공간은 복수의 테이블 공간, 예를 들어, 테이블 공간 1, 테이블 공간 2 및 테이블 공간 3을 포함한다. 또한, 마스터 노드는 또한 마스터 노드 내의 2 세트의 테이블 공간 각각에 있는 테이블 공간을, 테이블 공간, 페이지, 장치 파일, 파티션 및 관련 가입자 노드 내의 세그먼트와 같은 임의의 물리적 엔티티에 맵핑할 수도 있다. 예를 들어, 마스터 노드는 가입자 노드 1을 마스터 노드와 가입자 노드 1 사이의 접속 1에 맵핑하고, 마스터 노드와 가입자 노드 1 사이의 접속 1을, 마스터 노드 내의 테이블 공간 1, 테이블 공간 2 및 테이블 공간 3을 포함하는 제1 세트의 테이블 공간에 맵핑하며, 그런 다음 마스터 노드 내의 테이블 공간 1을 가입자 노드 1 내의 테이블 공간 1'에 맵핑하며, 마스터 노드 내의 테이블 공간 2를 가입자 노드 1 내의 테이블 공간 2'에 맵핑하며, 마스터 노드 내의 테이블 공간 3을 가입자 노드 1 내의 테이블 공간 3'에 맵핑한다.
도 4c는 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 다른 예시도이다. 도 4c에 도시된 바와 같이, 싱글 마스터 복제 토폴로지에서, 마스터 노드는 가입자 노드 1 및 가입자 노드 2에 접속되고, 가입자 노드 1은 가입자 노드 2에 접속되며, 마스터 노드는 마스터 데이터베이스를 포함하고, 가입자 노드 1은 가입자 데이터베이스를 포함하며, 가입자 노드 2는 가입자 데이터베이스를 포함한다. 이 외에, 마스터 노드는 이 2개의 가입자 노드를 접속 1 및 접속 2와 같은 2개의 접속에 맵핑하도록 구성되어 있고, 그런 다음 마스터 노드는 이 2개의 접속을 마스터 노드 내의 2 세트의 테이블 공간에 맵핑하며, 구체적으로, 마스터 노드는 테이블 공간 1 및 테이블 공간 2를 포함하는 제1 세트의 테이블 공간을 마스터 노드와 가입자 노드 1 간의 접속 1에 맵핑하며, 테이블 공간 1 및 테이블 공간 3을 포함하는 제2 세트의 테이블 공간을 마스터 노드와 가입자 노드 2 간의 접속 2에 맵핑한다. 또한, 가입자 노드 1과 가입자 노드 2 간의 데이터 복제를 실현하기 위해, 가입자 노드 1과 가입자 노드 2 간의 접속 3 및 4 역시 각각 구축될 필요가 있으며, 여기서 접속 3은 가입자 노드 2로부터 가입자 노드 1로 데이터를 복제하는 데 사용되고, 즉 접속 3은 가입자 노드 2 내의 테이블 공간 3'에도 맵핑되며, 구체적으로, 가입자 2는 가입자 노드 1을 가입자 노드 2와 가입자 노드 1 간의 접속 3에 맵핑하도록 구성되며, 그런 다음 가입자 2는 접속 3을 가입자 노드 2 내의 한 세트의 테이블 공간에 맵핑하며, 구체적으로, 가입자 2는 테이블 공간 3'을 가입자 노드 2와 가입자 노드 1 간의 접속 3에 맵핑하며 구체적으로 테이블 공간 3'으로부터 테이블 공간 6으로 데이터(여기서의 데이터는 테이블 공간 3 내의 데이터와 동일하다)를 복제하는 데 사용되며; 접속 4는 가입자 노드 1로부터 가입자 노드 2로 데이터를 복제하는 데 사용되며, 즉 접속 4는 가입자 노드 1 내의 테이블 공간 1' 및 테이블 공간 2'에도 맵핑되며, 구체적으로, 가입자 노드 1은 가입자 노드 2를 가입자 노드 1과 가입자 노드 2 간의 접속 4에 맵핑하도록 구성되어 있으며, 그런 다음 가입자 노드 1은 접속 4를 가입자 노드 1 내의 테이블 공간 1' 및 테이블 공간 2'를 포함하는 한 세트의 테이블 공간에 맵핑하며, 또한 가입자 노드 1 내의 테이블 공간 1'은 가입자 노드 2 내의 테이블 공간 4에 맵핑되며, 가입자 노드 1 내의 테이블 공간 2'은 가입자 노드 2 내의 테이블 공간 5에 맵핑되며, 구체적으로 테이블 공간 1' 및 2'로부터 테이블 공간 4 및 5로 데이터(여기서의 데이터는 테이블 공간 1 및 2 내의 데이터와 동일하다)를 복제하는 데 각각 사용된다.
도 5는 도 4c에 도시된 바와 같은 싱글 마스터 복제 토폴로지를 구성하는 개략적인 흐름도이다. 도 5에 도시된 바와 같이, 싱글 마스터 복제 토폴로지를 구성하는 흐름도는 이하를 포함할 수 있다.
501. 마스터 노드를 구성하고 데이터베이스를 생성하며;
502. 마스터 노드 내에 상이한 테이블 공간을 생성하고, 예를 들어, 3개의 테이블 공간이 생성되며;
503. 가입자 노드 1을 구성하며;
504. 마스터 노드와 가입자 노드 1 간의 접속을 생성하며, 이것을 이하에서는 Conn1이라 하며; 따라서 도 4c에 도시된 바와 같이 접속 1이 생성되며;
505. 마스터 노드 내에 관계를 구성하며, 즉, Conn1::Table Space 1, Table Space 2를 구성하며; 따라서 접속 1은 도 4c에 도시된 바와 같이 테이블 공간 1 및 테이블 공간 2에 맵핑되며;
506. 가입자 노드 2를 구성하며;
507. 마스터 노드와 가입자 노드 2 간의 접속을 생성하며, 이것을 이하에서는 Conn2라 하며; 따라서 도 4c에 도시된 바와 같이 접속 2가 생성되며;
508. 마스터 노드 내에 관계를 구성하며, 즉, Conn2::Table Space 3을 구성하며; 따라서 접속 2는 도 4c에 도시된 바와 같이 테이블 공간 3에 맵핑되며;
509. 가입자 노드 1과 가입자 노드 2 간의 2개의 접속을 생성하며, 이것을 이하에서는 Conn3 및 Conn4라 하며; 따라서 도 4c에 도시된 바와 같이 접속 3 및 접속 4가 생성되며;
510. 2개의 가입자 노드 각각에 관계를 구성하며, 즉, Conn3::Table Space 3, Conn4::Table Space 1, Table Space 2를 구성한다. 그러므로 도 4c에 도시된 바와 같이, 접속 3은 테이블 공간 3에 맵핑되고, 접속 4는 테이블 공간 1 및 테이블 공간 2에 맵핑된다. 그러므로 가입자 2는 접속 3을 통해 테이블 공간 3으로부터 가입자 노드 1로 획득된 데이터를 복제할 수 있고, 가입자 노드 1은 테이블 공간 1 및 테이블 공간 2로부터 획득된 데이터를 접속 4를 통해 가입자 노드 2로 복제할 수 있다.
단계 503-505 및 단계 506-508 사이에 특별한 실행 순서는 없다는 것에 유의해야 하며, 예를 들어, 단계 506-508이 단계 503-505보다 먼저 수행될 수도 있고, 그 반대로도 수행될 수 있다.
전술한 과정에 따르면, 도 4에 도시된 바와 같은 토폴로지가 획득된다. 이하에서는 본 발명의 실시예에서 제공하는 피어투피어 복제를 위한 방법에 대해 도 4에 도시된 토폴로지를 예로 해서 설명한다.
데이터베이스 용어에서 상호작용은 일반적으로 2개의 커밋 사이에서 작동한다. 환언하면, 상호작용은 DB가 커밋을 실행할 때 종료한다. 따라서, 상호작용의 순서는 그 커밋을 추적함으로써 유지될 수 있다. 본 발명의 실시예에서 제공하는 피어투피어 복제를 위한 방법에서, 증가하는 고유한 시간 기반 식별자가 커밋에 부가되고 커밋 순차 번호(commit sequence number: CSN)라 한다. 예를 들어, CSN = 1, 2, 3, ~ ~, N이며, 여기서 N은 마스터 노드 내의 기록 동작의 순서이고, 즉 마스터 노드가 최초로 기록 동작을 수행할 때, 그 생성된 커밋 재수행 레코드에 부착된 CSN은 1이며, 마스터 노드가 N번째에 기록 동작을 수행할 때, 생성된 커밋 재수행 레코드에 부착된 CSN은 N이다. 여기서, 기록 동작은 UPDATE, INSERT, 및 DELETE와 같은 데이터 수정 동작일 수 있다.
상호작용은 복수의 재수행 레코드를 생성할 수 있다. 재수행 레코드는 동작에 기초해서 복수의 유형으로 되어 있는데, 즉 재수행 레코드는 "Insert Redo" 또는 "Update Redo" 또는 "Commit Redo"일 수 있다. 상호작용이 생략되면, 유형 커밋의 재수행 레코드가 그 상호작용에 대해 생성될 것이다. 상호작용이 복수의 상이한 테이블 공간상에서 수행될 수 있을지라도, 커밋 동작은 노드 레벨에 따라 순서가 정해진다. 커밋 동작에 대응하는 재수행 레코드를 커밋 재수행 레코드라 하고 이것은 이 커밋 동작에 대해 생성된 CSN을 포함하며, 여기서 CSN은 이 노드 내의 커밋 동작의 순서를 가리킨다. 구체적으로, CSN은 글로벌이고 노드의 범위 내에 있는 것이고, 순차적으로 생성되며 상호작용이 수행되는 테이블 공간에 관계 없이 커밋 동작에 할당된다. 그러므로 커밋 재수행 레코드 내의 CSN을 검사함으로써, 상호작용의 순서는 공지될 것이다,. 데이터 통합성을 유지하기 위해, 모든 커밋 재수행 레코드는 노드 내의 그 CSN과 동일한 순서로 리플레이된다.
도 6은 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법을 실행하는 데 사용되는 싱글 마스터 복제 토폴로지에 대한 다른 예시도이다. 도 6에 도시된 싱글 마스터 복제 토폴로지에서, 마스터 노드는 마스터 노드의 커밋 재수행 레코드를 4 부분, 예를 들어, 파트-1 커밋 재수행 레코드, 파트-2 커밋 재수행 레코드, 파트-3 커밋 재수행 레코드, 파트-4 커밋 재수행 레코드로 분할되며, 마스터 노드는 커밋 재수행 레코드의 각 부분과 하나의 가입자 노드를 동기화하며, 차례로 다른 가입자 노드와 동기화한다. 예를 들어, 도 6에 도시된 바와 같이, 마스터 노드는 파트-1 커밋 재수행 레코드와 가입자 노드 1을 동기화하고, 파트-2 커밋 재수행 레코드와 가입자 노드 2를 동기화하고, 파트-3 커밋 재수행 레코드와 가입자 노드 3을 동기화하고, 파트-4 커밋 재수행 레코드와 가입자 노드 4를 동기화하며, 커밋 재수행 레코드의 각각의 부분은 상이한 가입자 노드상에서 병렬로 리플레이되며, 가입자 노드 1에 의해 획득된 파트-1 커밋 재수행 레코드, 가입자 노드 2에 의해 획득된 파트-2 커밋 재수행 레코드, 가입자 노드 3에 의해 획득된 파트-3 커밋 재수행 레코드, 가입자 노드 4에 의해 획득된 파트-4 커밋 재수행 레코드 전부는 4개의 가입자 노드 사이에서 동기화된다. 여기서, 마스터 노드에 의해 수행되는 분할은 레코드의 물리적 저장의 논리에 기반할 수 있으며, 즉 테이블 공간, 장치 파일, 페이지 및 파티션과 같은 물리적 엔티티에 기반할 수 있다.
도 7은 본 발명의 실시예에 따른 마스터 노드의 동기화 동작의 예에 대한 개략적인 흐름도이다. 도 7에 도시된 바와 같이, 마스터 노드의 동기화 동작은 이하를 포함한다:
701. 마스터 노드 상에서 동작이 일어나며;
702. 마스터 노드는 그 동작에 대한 재수행 레코드를 생성하며;
703. 마스터 노드는 재수행 레코드가 커밋 재수행 레코드인지를 판정하고, 예이면, 과정은 단계 704로 진행하고, 아니오이면, 과정은 단계 705로 진행하며;
704. 마스터 노드는 커밋 재수행 레코드에 대한 CSN을 생성하고, 그런 다음 과정은 단계 705로 진행하며;
705. 마스터 노드는 그 생성된 재수행 레코드를 관련 가입자 노드에 푸싱하고, 여기서 관련 가입자 노드는 구성된 맵핑 관계에 기초해서 마스터 노드에 의해 생성된다.
도 5에 따라 생성된 맵핑 관계를 예로 하면, Table Space 1 또는 Table Space 2에서 기록 동작이 일어나면, 마스터 노드는 커밋 재수행 레코드를 Conn1에 푸싱하고, Table Space 3에서 기록 동작이 일어나면, 마스터 노드는 커밋 재수행 레코드를 Conn3에 푸싱하고, 즉 커밋 재수행 레코드를 가입자 노드 2에 푸싱한다.
마스터 노드가 커밋 재수행 레코드를 대응하는 접속에 푸싱한 후, 가입자 노드는 커밋 재수행 레코드를 수신하고 그 수신된 커밋 재수행 레코드로부터 커밋 재수행 레코드가 부착된 CSN을 획득한다. 도 8은 본 발명의 실시예에 따른 가입자 노드의 동작의 예에 대한 개략적인 흐름도이다. 도 8에 도시된 바와 같이, 가입자 노드의 동기화 동작은 이하를 포함한다:
801. 가입자 노드는 재수행 레코드를 마스터 노드로부터 수신하며;
802. 가입자 노드는 그 수신된 재수행 레코드가 커밋 재수행 레코드인지를 판정하며, 예이면, 과정은 단계 803으로 진행하고, 아니오이면, 과정은 단계 706으로 진행하며;
803. 재수행 레코드가 커밋 재수행 레코드이면, 가입자 노드는 가입자 노드 자체의 CSN이 "커밋 재수행 레코드 - 1로부터 획득된 CSN"과 동일한지를 검사하고, 예이면, 과정은 단계 804로 진행하고, 아니오이면 과정은 단계 805로 진행하며;
804. 가입자 노드는 가입자 노드 자체의 CSN을 1만큼 증가시키고, 즉 갱신된 CSN은 커밋 재수행 레코드로부터 획득된 CSN과 동일하고, CSN 변경 이벤트를 생성하고; 그런 다음 과정은 단계 806으로 진행하며;
805. 가입자 노드는 다른 커밋 재수행 레코드를 대기하고, CSN 변경 이벤트를 대기한다.
구체적으로, 가입자 노드 자체의 CSN과 커밋 재수행 레코드로부터 획득된 CSN 가의 차이가 1이 아니면, 가입자 노드는 커밋 재수행 레코드를 리플레이하지 않을 것이고 커밋 재수행 레코드로부터 획득된 CSN보다 작은 것이 되기 위해 가입자 노드 자체의 CSN을 대기하지 않을 것이다. 보다 구체적으로, 가입자 노드는 모든 필요한 커밋이 수신될 때까지 대기하며, 가입자 노드는 그 필요한 커밋이 매우 단순한 방식인 것으로 결정한다. 가입자 노드는 CSN 100을 가지는 커밋 재수행 레코드를 수신한 것으로 가정하고, 이 커밋 재수행 레코드를 리플레이하고 가입자 노드 자체의 CSN을 100으로 갱신한다. 이제, 가입자 노드가 CSN 105를 가지는 다른 커밋 재수행 레코드를 수신하면, 가입자 노드는 다음의 검사를 수행하여 이 커밋 재수행 레코드를 리플레이할 수 있는지를 판정한다: "커밋 재수행 레코드로부터 획득된 CSN" - "가입자 노드들의 CSN" = 1. 본 예에서, "커밋 재수행 레코드로부터 획득된 CSN" - "가입자 노드들의 CSN" = 105-100 = 5이며, 따라서, 가입자 노드는 이 커밋 재수행 레코드를 리플레이할 수 없으며, CSN 105를 가지는 커밋 재수행 레코드를 리플레이할 수 있기 전에는 CSN 101, 102, 103 및 104를 가지는 커밋 재수행 레코드를 대기할 필요가 없다. 모든 필요한 커밋 재수행 레코드를 수신한 후 커밋 재수행 레코드를 리플레이하는 것에 관한 상세한 설명은 도 8에 도시되어 있으며, 이에 대해서는 이하에 설명할 것이다.
806. 가입자 노드는 재수행 레코드를 실행하고, 즉 가입자 노드는 재수행 레코드를 리플레이하고, 그런 다음 과정은 단계 807로 진행하며;
807. 가입자 노드는 재수행 레코드를 다른 가입자에 푸싱한다.
도 5에 따라 생성된 맵핑 관계를 예로 하면, Table Space 1 또는 Table Space 2에서 기록 동작이 일어나면, 마스터 노드는 커밋 재수행 레코드를 Conn1에 푸싱하고, 가입자 노드 1은 커밋 재수행 레코드를 리플레이하고, 그런 다음 커밋 재수행 레코드를 가입자 노드 2에 푸싱하며; Table Space 3에서 기록 동작이 일어나면, 마스터 노드는 커밋 재수행 레코드를 Conn2에 푸싱하고, 가입자 노드 2는 커밋 재수행 레코드를 리플레이하고, 그런 다음 커밋 재수행 레코드를 가입자 노드 1에 푸싱한다.
도 9는 본 발명의 실시예에 따른 가입자 노드의 동기화 동작의 다른 예에 대한 개략적인 흐름도이다. 도 9에 도시된 바와 같이, 가입자 노드의 동기화 동작은 이하를 포함한다:
901. 가입자 노드는 CSN 변경 이벤트를 수신하며;
902. 가입자 노드는 저장된 커밋 재수행 레코드를 판독하며;
903. 가입자 노드는 가입자 노드 자체의 CSN이 "커밋 재수행 레코드로부터 획득된 CSN - 1"과 같은지를 검사하고, 예이면, 과정은 단계 904로 진행하고, 아니오이면 과정은 단계 905로 진행하며;
904. 가입자 노드는 가입자 노드 자체의 CSN을 1만큼 증가시키고, 즉 갱신된 CSN은 커밋 재수행 레코드로부터 획득된 CSN과 동일하며, CSN 변경 이벤트를 생성하며; 그런 다음 과정은 단계 906으로 진행하며;
905. 가입자 노드는 다른 커밋 재수행 레코드를 대기하고, CSN 변경 이벤트를 대기하며;
906. 가입자 노드는 재수행 레코드를 실행하고, 즉 가입자 노드는 재수행 레코드를 리플레이하며; 그런 다음 과정은 단계 907로 진행하며;
907. 가입자 노드는 재수행 레코드를 다른 가입자로 푸싱한다.
도 5에 따라 생성된 맵핑 관계를 예로 하면, Table Space 1 또는 Table Space 2에서 기록 동작이 일어나면, 마스터 노드는 커밋 재수행 레코드를 Conn1에 푸싱하고, 가입자 노드 1은 커밋 재수행 레코드를 리플레이하고, 그런 다음 커밋 재수행 레코드를 가입자 노드 2에 푸싱하며; Table Space 3에서 기록 동작이 일어나면, 마스터 노드는 커밋 재수행 레코드를 Conn2에 푸싱하고, 가입자 노드 2는 커밋 재수행 레코드를 리플레이하고, 그런 다음 커밋 재수행 레코드를 가입자 노드 1에 푸싱한다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 따르면, 마스터 노드는 마스터 노드 상에서 기록 동작이 발생될 때 생성되는 커밋 재수행 기록을 복수의 커밋 재수행 기록과 분리하고, 상기 복수의 커밋 재수행 기록을 상이한 가입자에 푸싱하며, 여기서 복수의 커밋 재수행 레코드 각각은 마스터 노드에 의해 하나의 가입자에만 푸싱되고, 그런 다음 상기 커밋 재수행 기록을 수신하는 하나의 가입자에 의해서만 푸싱을 통해 다른 가입자 노드에 푸싱하며, 이에 의해 마스터 노드와 가입자 노드 간의 전송이 감소되고, 따라서 복제 플러스터 내의 마스터 노드로부터의 복제 병목현상을 완화한다.
이 외에, 도 1 및 도 2에 도시된 종래기술과 비교하면, 이하의 이로운 효과 및 이점 a), b), c), d) 및 e) 역시 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 의해 달성될 수 있다.
a) 다중-가입자 싱글 마스터 복제에 있어서, 마스터의 성능이 비약적으로 향상된다. 예를 들어, 2개의 가입자 클러스터에 있어서, 마스터 성능은 약 50% 향상된다.
b) 많은 경우에 있어서, 멀티-마스터 솔루션은 결정적이고 고성능 싱글 마스터 솔루션으로 변환될 수 있다. 예를 들어, 클러스터 20% 기록-부하 및 80% 판독-부하를 가지는 경우를 고려한다. 이상적인 토폴로지는 1 기록 노드 및 4 기록 노드일 것이다. 그러나 현실적으로는 데이터를 4 가입자에게 분배하는 오버헤드로 인해, 마스터(싱글 기록-노드)는 약 50% 이하로 활용된다. 이것은 멀티-마스터 솔루션(2 마스터 및 4 가입자)을 사용해야 하는 시나리오로 되어 버린다. 그러나 P2P 솔루션을 사용하면 이 오버헤드는 감소될 수 있고 솔루션은 싱글-마스터로 남을 수 있다.
c) 네트워크에 대한 대기시간이 감소하는데, 도 10에 설명된 간단한 시나리오에서, 대기시간은 50% 감소할 것이고; 구체적으로, 도 10에 도시된 바와 같이, 마스터 노드 측의 라우터와 가입자 노드 측의 라우터 간의 전송률이 100Mbps이고, 2 가입자 노드 간의 전송률은 1Gbps이며, 따라서 마스터 노드와 가입자 노드 간의 복제에 의해 야기되는 대기시간과 비교하면, 2 가입자 노드 간의 복제에 의해 야기되는 대기시간은 생략될 수 있다. 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 따르면, 마스터의 데이터는 가입자 노드에 1회만 전송되어야 하고(데이터의 일부는 하나의 가입자 노드에 전송되고 데이터의 나머지 부분은 다른 가입자 노드에 전송된다), 반면에 종래기술의 피어투피어 데이터 복제를 위한 방법에 따라 데이터의 나머지 부분은 가입자 노드에 2회 전송되어야 하며, 따라서 대기시간은 50% 감소될 것이다.
d) 데이터의 이용 가능성이 마스터 노드 및 복수의 가입자 노드를 포함하는 클러스터에서 증가한다. 이것은 싱글-마스터 시리얼 복제보다 항상 크거나 같다. 일부의 중요한 데이터에 있어서는 다중-레벨 우선순위가 수행될 수도 있다.
이 이로운 효과에 대해 더 명확하게 설명하기 위해, 특정한 예를 취하여 이하에 설명한다. 도 11은 종래기술에 따른 데이터 이용 가능성 발급의 예에 대한 개략도이다. 도 11에 도시된 시나리오에서, 마스터 노드는 "4 유닛의 데이터"를 가입자 노드 1 및 가입자 노드 2로 복제하고 있다. 가입자 노드 1은 Unit-1, Unit-2 및 Unit-3을 포함하는 3 유닛의 데이터를 소비하였고, 가입자 노드 2는 Unit-1 및 Unit-2를 포함하는 2 유닛의 데이터를 소비하였다. 하나의 노드 내에 하나의 데이터 복제본이 100% 이용 가능성으로 존재한다고 할 때, 2개 노드 내에 하나의 복제본이 존재하면 200%를 가지게 되고 이런 식으로 계속될 것이고, 상이한 유닛의 데이터에 대한 이용 가능성은 다음과 같이 될 것이다: Unit-1의 이용 가능성=300%, Unit-2의 이용 가능성=300%, Unit-3의 이용 가능성=200%, Unit-4의 이용 가능성=100%. 그러므로 마스터 노드가 이때 작동하지 않게 되면, "Unit-4"를 잃게 된다. 종래기술에서는 "데이터 이용 가능성"이 발급된다는 것을 알 수 있다. 어떤 주어진 시점에서, 가입자 노드가 마스터 노드로 지체되면, 그 지체는 유사한 데이터 상에 항상 존재한다. 그러므로 이 경우 마스터 노드 및 복수의 가입자 노드를 포함하는 클러스터 내에서의 데이터 이용 가능성은 200%보다 작다.
그렇지만, 네트워크 내의 데이터의 이용 가능성은 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 따라 높게 확보될 수 있다.
e) 피어투피어 클러스터 솔루션은 고비용의 2-위상 커밋(Two-Phase commit)을 사용하지 않고도 ACID 속성을 제공한다.
또한, 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법에서, 새로운 가입자 노드가 클러스터에 부가될 때, 이 새로운 가입자 노드, 마스터 노드 및 모든 다른 관련 가입자 노드는 이 솔루션을 반영하도록 재구성된다. 이러한 재구성 후에, 마스터 노드는 최종의 커밋 재수행 결과가 관련 가입자 노드에 채워진 후 상호작용 로그를 동기화하기 시작한다.
또한, 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법에서, 마스터가 기능이 멈추거나 네트워크에서 중단된 후, 시간 주기가 있으며 이 동안에 클러스터의 재동기화 허용된다. 전체적인 클러스터가 임의의 개별 노드보다 더 많은 데이터를 포함할 때, 이 단계가 필요하다. 이 동기화를 완료할 때까지 대기하는 것을 회피하기 위해, 피어 노드 간의 데이터 동기화에 대한 시간 주기는 시스템에 미리 구성된다. 이 시간 동안의 피어 노드 데이터 동기화를 동기화의 위상-I라 한다. 피어 노드 데이터가 동기화된 후 또는 피어 노드 간의 데이터 동기화에 대해 미리 구성된 시간 주기가 종료된 후, 동기화의 위상-I가 완료된다.
그런 다음, 최고 CSN을 가지는 가입자 노드를 마스터 노드로 선출한다. 상이한 클러스터 관리 토폴로지에서 마스터 노드를 선출하는 상세 과정은 상이할 수 있다. 예를 들어, 2종류의 클러스터 관리 토폴로지가 있을 수 있다. 한 종류의 토폴로지(이를 토폴로지-1이라 할 수 있다)에는, 중앙집중형 클러스터 관리자 노드가 있다. 이 중앙집중형 클러스터 관리자 노드는 클러스터 내의 모든 다른 노드에 대한 네트워크 접속을 가진다. 이러한 네트워크 접속을 통해, 클러스터 관리자는 각 노드의 CSN을 획득하고, 그런 다음 최고 CSN을 가지는 노드를 마스터 노드로 한다. 다른 종류의 토폴로지(이를 토폴로지-2라 할 수 있다)에는, 중앙집중형 클러스터 관리자 노드가 없지만, 각 데이터 노드는 모든 다른 노드에 관한 정보를 가진다. 그러므로 이 토폴로지에서는 모든 노드가 어느 노드가 최고 CSN을 가지는 있는지를 알고 있다.
그런 다음 새로운 마스터는 당김 요구를 모든 가입자 노드에 발급하여 가입자 노드가 새로운 마스터 노드에 데이터를 푸싱할 수 있게 하며, 따라서 클러스터 내의 모든 데이터는 새로운 마스터 노드에 의해 획득될 수 있다. 이 시간 주기를 동기화의 위상-II라고 한다. 이 시간 주기 동안 모든 가입자 노드는 자신의 데이터를 새로운 마스터 노드에 푸싱을 시도한다. 동기화의 위상-II 종료 시에, 새로운 마스터 노드 및 마스터 노드와 동일한 CSN을 가지는 모든 가입자 노드가 운용된다. 그런 다음 마스터는 구성마다 접속 맵핑을 재할당하고 클러스터가 운용된다.
구체적으로, 도 12는 본 발명의 실시예에 따라 마스터 노드가 작동하지 않을 때 피어투피어 복제를 위한 방법에 대한 개략적인 흐름도이다. 도 12에 도시된 바와 같이, 마스터 노드가 작동하지 않을 때, 이하의 단계가 수행된다:
1201. 모든 가입자 노드는 마스터 노드가 작동하고 있지 않다는 것을 검출하고; 구체적으로, 가입자 노드는 마스터 노드가 많은 상이한 방법을 통해 작동하고 있지 않다는 것을 검출할 수 있는데, 예를 들어, 가입자 노드는 마스터 노드가 작동하고 있지 않다는 것을 나타내는 통지를 수신한 후 마스터 노드가 작동하고 있지 않다는 것을 검출할 수 있으며, 여기서 통지는 마스터 노드에 의해 전송될 수 있고, 마스터 노드의 상태를 모니터링하는 데 사용되는 기기에 의해 전송될 수도 있으며, 다른 예에 있어서, 가입자가 심박 메시지(heartbeat message)와 같은 메시지를 전송한 후 심박 응답 메시지와 같은 응답 메시지가 수신되지 않을 때 가입자 노드는 마스터 노드가 작동하고 있지 않다는 것을 검출할 수 있으며;
1202. 모든 가입자 노드는 자신들 간의 데이터 동기화를 수행하고 동기화의 위상-I에 대한 미리 구성된 시간 주기의 타임아웃을 대기하며;
1203. 동기화의 위상-I가 완료된 후, 가입자 노드는 가입자 노드의 최고 CSN에 기초하여 새로운 마스터 노드를 선출하며;
1204. 새로운 마스터 노드는 당김 요구를 모든 가입자 노드에 발급하며;
1205. 가입자 노드는 새로운 마스터 노드에 데이터를 전송만 할 뿐 자신들 간의 동기화(동기화의 위상-II)는 하지 않으며;
1206. 동기화의 위상-II에 대한 미리 구성된 시간 주기가 끝나거나 모든 가입자 노드가 동기화의 위상-II을 마쳤을 때, 마스터 노드 및 마스터 노드와 동일한 CSN을 가지는 모든 가입자 노드가 운용되며, 마스터는 접속 맵핑을 재할당한다.
모든 단계 1201-1206 동안, 마스터 노드 및 가입자 노드를 포함하는 클러스터가 작동하지 않으며, 노드는 어떠한 클라이언트에도 서비스할 수 없다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 동기 윈도(sync window)를 생성할 능력을 있으며, 이에 의해 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있다.
또한, 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 방법에서, 마스터 노드 및 가입자 노드는 구성되지 않아도 된다. 마스터 노드 및 가입자 노드는 자신들 간의 동기화의 분배를 결정할 지능이 있다.
기본적인 실행에서, 노드(마스터 노드 또는 가입자 노드)가 마스터 노드 및 복수의 가입자 노드를 포함하는 클러스터에 부가될 때, 사용자는 어느 테이블 공간이 어느 노드에 속하는지를 알 수 있게 마스터 노드 및 가입자 노드를 구성해야 한다. 마찬가지로, 테이블 공간이 부가될 때, 사용자는 그 테이블 공간이 어느 노드에 속하는지 알 수 있게 마스터 노드 및 가입자 노드를 구성해야 한다.
본 실시예에서, 마스터 노드는 새로운 테이블 공간이 생성될 때 테이블 공간에 노드를 자동으로 할당할 수 있도록 지능적으로 될 수 있다. 이것은 전략에 의해 수행될 수 있는데, 이에 대해 몇 가지 예를 여기서 제공한다.
1. 라운드 로빈 방식(round robin manner). 마스터 노드는 각 가입자 노드에 부착된 테이블 공간의 수를 계속 카운트하고, 그런 다음 이 카운트에 기초하여 새로운 테이블 공간을 할당한다.
2. 부한 균형 방식(load balanced manner). 마스터 노드는 재수행 트래픽의 트랙이 각 가입자 노드를 계속 뒤따르게 한다. 이에 기초하여, 마스터 노드는 최소의 부하 가입자 노드를 선택하고 이 가입자 노드에 테이블 공간을 할당한다.
마찬가지로, 새로운 가입자 노드가 클러스터에 부가될 때, 가입자 노드는 수 개의 테이블 공간의 소유권을 이 새로운 가입자 노드로 자동으로 이관할 수 있다. 마스터 노드는 임의의 정책을 사용할 수 있으며 이를 위해 수 개의 예가 여기서 주어진다.
1. 기존의 가입자 노드로부터 동등한 수의 테이블 공간을 이동시키고, 이에 따라 테이블 공간 할당 후, 각 가입자 노드는 동일한 양의 테이블 공간 소유권을 대충 가진다.
2. 새로운 가입자 노드와 가장 가까운 복제 가입자 노드로부터 테이블 공간 소유권을 이관시키고, 여기서 새로운 가입자 노드와 가장 가까운 가입자 노드는 트레이스 루트(trace route)에 기초하여 네트워크 데이터 패킷 홉 전략(network data packet hop statistics)을 사용하여 쉽게 결정될 수 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 따라, 새로운 노드가 부가됨에 따라, 마스터 노드는 물리적 엔티티를 할당하는 탄력을 가지며 이 물리적 엔티티에 복제를 시작한다.
본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 방법은 하나 이상이 마스터 노드 및 가입자 노드를 포함하는 임의의 시나리오에 적용 가능하다. 도 13은 본 발명의 실시예에 따른 피어투피어 복제를 위한 방법이 적용될 수 있는 시나리오에 예에 대한 개략적인 구조도이다. 도 13에 도시된 바와 같이, 호출-센터 솔루션(call-center solution)에 대한 본 시나리오에서, 자동 호출 분배(automatic call distribution: ACD) 시스템은 다양한 호출 에이전트에 호출을 분배한다. 일반적으로, 호출 에이전트는 가입자 데이터베이스를 참조하여 자신들의 호출을 결부시킨다. 최상의 성능을 위해서는, 호출-에이전트가 가입자 데이터베이스의 하나의 복제본과 연관되어야 한다. 때때로 호출 에이전트는 가입자 데이터베이스에 기록해야 하며, 또한 이 기록 동작은 모든 가입자 데이터베이스에 복제되어야 한다. 도 13에 도시된 바와 같이, 본 시나리오에서는 싱글-마스터 클러스터가 사용될 수 있는데, 예를 들어, 호출 에이전트가 가입자 데이터베이스에 기록해야 할 때, 호출 에이전트는 모든 가입자 노드에 연결되는 마스터 노드에 기록하며, 그런 다음 마스터 노드에서 일어나는 기록 동작은 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 따라 가입자 노드에 복제될 수 있다. 그러므로 종래기술과 비교하면, 멀티-마스터 클러스터가 사용되면, 전체 클러스터의 성능이 저하되고, 싱글-마스터 클러스터가 사용되면, 싱글-마스터는 과부하가 걸리게 될 것이고 상이한 가입자 노드에 대한 데이터 복제의 복수의 횟수로 인해 클러스터의 지체가 증가한다. 그렇지만, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법은 이 시나리오에 잘 들어맞는다.
또한, 본 발명의 실시예는 마스터 노드 전환을 위한 방법을 제공하다. 도 14는 본 발명의 실시예에 따른 마스터 노드 전환을 위한 방법에 대한 개략적인 흐름도이다. 도 14에 도시된 바와 같이, 방법은 이하의 단계를 포함한다.
1401. 적어도 2개의 가입자 노드들 중의 가입자 노드가, 마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하고, 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있으며;
1402. 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드가 새로운 마스터 노드로 선출된 후, 새로운 마스터 노드로서 작동하는 가입자 노드가 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드에 당김 요구를 전송하며;
1403. 상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드로부터 데이터를 수신한다.
마스터 노드 전환을 위한 전술한 방법은 도 12에 도시된 바와 같이 마스터 노드가 작동하지 않을 때 피어투피어 복제를 위한 방법을 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
또한, 마스터 노드 전환을 위한 전술한 방법은: 상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 구축하는 단계; 및
상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 상기 새로운 마스터 노드 내의 물리적 엔티티에서 기록 동작이 일어날 때, 상기 맵핑 관계에 따라 상기 새로운 마스터 노드와 상기 새로운 마스터 노드로 선출되지 않은 다른 가입자 노드 간의 피어투피어 데이터 복제를 수행하는 단계
를 더 포함한다.
여기서, 새로운 마스터 노드는 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 방법에 따라 피어투피어 데이터 복제를 수행할 수 있다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 방법에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 동기 윈도를 생성할 능력을 있으며, 이에 의해 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있다.
도 15는 본 발명의 실시예에 따른 마스터 노드 전환을 위한 다른 방법에 대한 개략적인 흐름도이다. 도 15에 도시된 바와 같이, 방법은 이하의 단계를 포함한다:
1501. 적어도 2개의 가입자 노드들 중의 가입자 노드가, 마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하며, 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있으며;
1502. 상기 다른 가입자 노드와 함께 상기 가입자 노드가, 상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드를 새로운 마스터 노드로 선출하며;
1503. 상기 새로운 마스터 노드로 선출되지 않은 가입자 노드가, 상기 새로운 마스터 노드에 의해 발급된 당김 요구를 수신하며;
1504. 상기 새로운 마스터 노드로 선출되지 않은 가입자 노드가, 새로운 마스터 노드에 의해 전송된 당김 요구에 응답하여 상기 가입자 노드 내의 데이터를 상기 새로운 마스터 노드에 전송한다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 전술한 방법에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드는 동기 윈도를 생성할 능력을 있으며, 이에 의해 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있다.
전술한 실시예에 의하면, 당업자라면 본 발명은 필요한 공통 하드웨어로 소프트웨어에 의해 실현될 수 있다는 것을 자명하게 이해할 수 있을 것이다. 구체적으로, 본 발명은 하드웨어에 의해서만 실현될 수도 있다. 그렇지만, 전자가 선호하는 실시 모드이다. 이러한 이해를 바탕으로, 본 발명의 솔루션의 본질 또는 종래기술에 기여하는 부분은 소프트웨어 제품의 형태로 실현될 수 있다. 컴퓨터 소프트웨어 제품은 컴퓨터 플로피 디스크, 하드디스크, 또는 광디스크와 같은 판독 가능형 저장 매체에 저장될 수 있으며, 컴퓨터 장치(이것은 퍼스널 컴퓨터, 서버, 네트워크 장치 등일 수 있다)가 본 발명의 실시예에 설명된 방법을 수행하게 하는 복수의 명령어를 포함한다.
도 16은 본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다. 도 16에 도시된 피어투피어 데이터 복제를 위한 장치는 마스터 노드에 위치할 수 있다. 도 16에 도시된 바와 같이,
제1 기록 동작이 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하도록 구성되어 있는 생성 유닛(161) - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 및
상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 구성되어 있는 복제 유닛(162)
을 포함하며,
상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 의해 피어투피어 데이터 복제를 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드는 마스터 노드 상에서 기록 동작이 발생될 때 생성되는 커밋 재수행 기록을 복수의 커밋 재수행 기록과 분리하고, 상기 복수의 커밋 재수행 기록을 상이한 가입자에 푸싱하며, 여기서 복수의 커밋 재수행 레코드 각각은 마스터 노드에 의해 하나의 가입자에만 푸싱되고, 그런 다음 상기 커밋 재수행 기록을 수신하는 하나의 가입자에 의해서만 푸싱을 통해 다른 가입자 노드에 푸싱하며, 이에 의해 마스터 노드와 가입자 노드 간의 전송이 감소되고, 따라서 복제 플러스터 내의 마스터 노드로부터의 복제 병목현상을 완화한다.
도 17은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다. 도 17에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는:
마스터 노드와 가입자 노드 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑함으로써 물리적 엔티티와 가입자 노드 간의 맵핑 관계를 구축하도록 구성되어 있는 제1 맵핑 유닛(173)
을 더 포함할 수 있다.
이에 대응해서, 상기 복제 유닛(162)은 구체적으로 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해 상기 제1 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 구성되어 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 물리적 엔티티와 가입자 노드 간의 맵핑 관계는 편리하게 구축될 수 있으며, 따라서 마스터 노드의 성능이 더 향상될 수 있다.
도 18은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다. 도 18에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는:
상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑하며, - 상기 마스터 노드 내의 각각의 세트의 물리적 엔티티는 복수의 물리적 엔티티를 포함함 - 상기 마스터 노드 내의 하나의 세트의 물리적 엔티티 내의 상이한 물리적 엔티티를 상기 하나의 세트의 물리적 엔티티에 대응하는 가입자 노드 내의 상이한 물리적 엔티티에 추가로 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하도록 구성되어 있는 제2 맵핑 유닛(183)
을 더 포함한다.
이에 대응해서, 상기 복제 유닛(162)은 구체적으로 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해, 상기 제1 물리적 엔티티가 속하면서 상기 제1 마스터 노드에 관한 상기 한 세트의 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계 및 상기 제1 물리적 엔티티와 제3 물리적 엔티티 간의 맵핑 관계에 기초하여, 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제3 물리적 엔티티에 푸싱하도록 구성되어 있으며, 여기서 상기 제1 가입자 노드는 제3 물리적 엔티티 및 제4 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드 내의 물리적 엔티티와 가입자 노드 간의 맵핑 관계가 구축될 수 있을 뿐만 아니라, 마스터 노드 내의 물리적 엔티티와 가입자 노드 내의 물리적 엔티티 간의 맵핑 관계도 구축될 수 있으며, 따라서 마스터 노드는 가입자 노드 내의 상이한 물리적 엔티티 간의 데이터 분배를 알 수 있으며, 이에 의해 각각의 가입자 노드 내의 물리적 엔티티 간의 부하 균형을 실현할 수 있다.
또한, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에서, 상기 복제 유닛은 상기 마스터 노드에 새로운 가입자 노드가 접속될 때, 상기 마스터 노드 내의 물리적 엔티티, 및 상기 물리적 엔티티와 상기 새로운 가입자 노드를 포함하는 가입자 노드 간의 맵핑 관계가 재구성된 후에, 커밋 재수행 레코드를 상기 새로운 가입자 노드에 동기화하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 싱글 마스터 복제 기술이 편리하게 확장될 수 있다.
또한, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에서, 상기 제1 커밋 레코드는 제2 커밋 레코드와는 별개이며, 상기 제2 커밋 레코드는 관련 기록 동작이 일어나는 물리적 엔티티에 기초해서, 제2 기록 동작이 제2 물리적 엔티티에서 일어날 때 상기 마스터 노드에 의해 생성된다. 여기서, 물리적 엔티티들은 테이블 공간, 장치 파일, 페이지 및/또는 파티션일 수 있다.
제1 커밋 레코드 및 제2 커밋 레코드는 마스터 노드에 의해 제1 가입자 노드 및 제2 가입자 노드에 각각 병렬로 푸싱되고, 이에 따라 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 의해 병렬로 각각 리플레이되며; 제2 커밋 수행 레코드는 마스터 노드로부터 제2 물리적 엔티티에 대응하는 제2 가입자 노드로, 그런 다음 제2 가입자 노드에 의해, 수신된 제2 커밋 재수행 레코드를 제1 가입자 노드로 푸싱하는 것을 통해 제1 가입자 노드로, 상기 제2 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드의 데이터는 상이한 가입자 노드와 쉽고 편리하게 분리되어 전송될 수 있으며, 따라서 마스터 노드의 성능은 더 향상될 수 있다.
도 19는 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다. 도 19에 도시된 피어투피어 데이터 복제를 위한 장치는 가입자 노드 내에 위치할 수 있다. 도 19에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는:
마스터 노드로부터 커밋 순차 번호(commit sequence number: CSN)가 부착된 커밋 재수행 레코드를 수신하도록 구성되어 있는 수신 유닛(191) - 상기 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내의 기록 동작의 순차를 지시하는 데 사용됨 - ;
상기 가입자 노드들의 CSN을 뺀 상기 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1일 때, 상기 가입자 노드들의 CSN을 상기 커밋 재수행 레코드에 부착된 CSN으로 갱신하도록 구성되어 있는 CSN 처리 유닛(192) - 상기 가입자 노드들의 CSN은 초기화 동안 0에 설정되어 있음 - ;
마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하며 - 상기 가입자 노드는 상기 마스터 노드 및 상기 마스터 노드에 접속된 다른 가입자 노드에 접속됨 - ; 그리고 상기 마스터 노드 상에서 일어난 기록 동작의 데이터를 상기 다른 가입자에 복제하기 위해, 상기 커밋 재수행 레코드를 상기 다른 가입자 노드에 푸싱하도록 구성되어 있는 복제 유닛(193)
을 포함한다.
본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 의해 피어투피어 데이터 복제를 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에 따라 피어투피어 데이터 복제를 위한 장치에서, 마스터 노드와 가입자 노드 간의 전송이 감소되고, 따라서 복제 플러스터 내의 마스터 노드로부터의 복제 병목현상을 완화한다.
또한, 본 발명의 실시예에 따라 피어투피어 데이터 복제를 위한 장치에서, 상기 CSN 처리 유닛은, 가입자 노드들의 CSN을 뺀 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1이 아닐 때, 상기 수신된 커밋 재수행 레코드를 세이브하고, 다른 커밋 재수행 레코드를 대기하도록 추가로 구성되어 있고; 그리고
상기 복제 유닛은, 상기 가입자 노드들의 CSN이, 상기 가입자 노드의 갱신된 CSN을 뺀 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1인 값으로 갱신된 후, 마스터 노드에서 일어난 기록 동작의 데이터를 마스터 노드로부터 가입자 노드로 복제하기 위해 커밋 재수행 레코드를 리플레이하도록 추가로 구성되어 있다.
본 발명의 실시예에 따라 피어투피어 데이터 복제를 위한 장치에 따르면, 가입자 노드에 의해 수신된 커밋 재수행 레코드가 순서를 벗어나더라도, 정확한 복제가 보장될 수 있다.
또한, 도 20은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다. 도 20에 도시된 피어투피어 데이터 복제를 위한 장치에서, 상기 복제 유닛(193)은, 상기 마스터 노드가 작동이 안 되고 상기 가입자 노드가 새로운 마스터 노드로 선출된 후 상기 다른 가입자 노드에서 상기 커밋 재수행 레코드를 리플레이함으로써 획득되는, 상기 마스터 노드에서 일어난 기록 동작의 모든 데이터를 얻기 위해 모든 다른 가입자 노드에 당김 요구를 전송하도록 추가로 구성되어 있고; 그리고
상기 장치는, 상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 새로운 마스터 노드로서 작동하는 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 재할당하도록 구성되어 있는 맵핑 유닛(204)을 더 포함한다.
선택적으로, 상기 복제 유닛(193)은, 가입자 노드 내의 이전의 마스터 노드가 작동이 안 되고 다른 가입자 노드가 새로운 마스터 노드로 선출된 후, 상기 새로운 마스터 노드에 의해 전송된 당김 요구에 응답해서 상기 이전의 마스터 노드에서 일어난 기록 동작의 데이터를 새로운 마스터 노드로서 작동하는 가입자 노드에 전송하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있는 능력을 가진다.
도 21은 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다. 도 21에 도시된 피어투피어 데이터 복제를 위한 장치는 마스터 노드 내에 위치할 수 있다. 도 21에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는 프로세서(211) 및 상기 프로세서(211)에 접속된 메모리(212)를 포함한다.
메모리(212)는 프로그램을 저장하도록 구성되어 있다. 구체적으로, 프로그램은 프로그램 코드를 포함할 수 있고, 프로그램 코드는 컴퓨터 연산 명령을 포함할 수 있다.
상기 프로세서(211)는: 제1 기록 동작이 상기 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하고 - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 그리고 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 구성되어 있으며, 상기 제1 커밋 재수행 레코드는, 상기 제1 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 수신된 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱함으로써 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용된다.
메모리(212)는 고속 RAM 및 비휘발성 메모리를 포함할 수 있다.
프로세서(211)는 중앙처리장치(CPU)일 수 있거나, 주문형 집적회로(ASIC)일 수 있거나, 하나 이상의 ASIC로 구성될 수 있다.
본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 의해 피어투피어 데이터 복제를 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드는 마스터 노드 상에서 기록 동작이 발생될 때 생성되는 커밋 재수행 기록을 복수의 커밋 재수행 기록과 분리하고, 상기 복수의 커밋 재수행 기록을 상이한 가입자에 푸싱하며, 여기서 복수의 커밋 재수행 레코드 각각은 마스터 노드에 의해 하나의 가입자에만 푸싱되고, 그런 다음 상기 커밋 재수행 기록을 수신하는 하나의 가입자에 의해서만 푸싱을 통해 다른 가입자 노드에 푸싱하며, 이에 의해 마스터 노드와 가입자 노드 간의 전송이 감소되고, 따라서 복제 플러스터 내의 마스터 노드로부터의 복제 병목현상을 완화한다.
구체적으로, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 물리적 엔티티와 가입자 노드 간의 맵핑 관계는 편리하게 구축될 수 있으며, 따라서 마스터 노드의 성능이 더 향상될 수 있다.
또한, 상기 프로세서는: 상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑하며, - 상기 마스터 노드 내의 각각의 세트의 물리적 엔티티는 복수의 물리적 엔티티를 포함함 - 상기 마스터 노드 내의 하나의 세트의 물리적 엔티티 내의 상이한 물리적 엔티티를 상기 하나의 세트의 물리적 엔티티에 대응하는 가입자 노드 내의 상이한 물리적 엔티티에 추가로 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하며; 그리고 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해, 상기 제1 물리적 엔티티가 속하면서 상기 제1 마스터 노드에 관한 상기 한 세트의 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계 및 상기 제1 물리적 엔티티와 제3 물리적 엔티티 간의 맵핑 관계에 기초하여, 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제3 물리적 엔티티에 푸싱하도록 추가로 구성되어 있으며, 상기 제1 가입자 노드는 제3 물리적 엔티티 및 제4 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드 내의 물리적 엔티티와 가입자 노드 간의 맵핑 관계가 구축될 수 있을 뿐만 아니라, 마스터 노드 내의 물리적 엔티티와 가입자 노드 내의 물리적 엔티티 간의 맵핑 관계도 구축될 수 있으며, 따라서 마스터 노드는 가입자 노드 내의 상이한 물리적 엔티티 간의 데이터 분배를 알 수 있으며, 이에 의해 각각의 가입자 노드 내의 물리적 엔티티 간의 부하 균형을 실현할 수 있다.
또한, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에서, 상기 프로세서는: 상기 마스터 노드에 새로운 가입자 노드가 접속될 때, 상기 마스터 노드 내의 물리적 엔티티, 및 상기 물리적 엔티티와 상기 새로운 가입자 노드를 포함하는 가입자 노드 간의 맵핑 관계가 재구성된 후에, 커밋 재수행 레코드를 상기 새로운 가입자 노드에 동기화하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 싱글 마스터 복제 기술이 편리하게 확장될 수 있다.
또한, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에서, 제1 커밋 레코드는 제2 커밋 레코드와는 별개이며, 상기 제2 커밋 레코드는 관련 기록 동작이 일어나는 물리적 엔티티에 기초해서, 제2 기록 동작이 제2 물리적 엔티티에서 일어날 때 장치에 의해 생성된다.
상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 프로세서에 의해 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 각각 병렬로 푸싱되고, 이에 따라 상기 제1 커밋 레코드 및 상기 제2 커밋 레코드는 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 의해 병렬로 각각 리플레이되며; 상기 제2 커밋 재수행 레코드는 상기 마스터 노드로부터 상기 제2 물리적 엔티티에 대응하는 상기 제2 가입자 노드로, 그런 다음 상기 제2 가입자 노드에 의해, 상기 수신된 제2 커밋 재수행 레코드를 상기 제1 가입자 노드로 푸싱하는 것을 통해 제1 가입자 노드로, 상기 제2 기록 동작의 데이터를 복제하는 데 사용된다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드의 데이터는 상이한 가입자 노드와 쉽고 편리하게 분리되어 전송될 수 있으며, 따라서 마스터 노드의 성능은 더 향상될 수 있다.
또한, 도 21에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는 피어투피어 데이터 복제를 위한 장치와 마스터 노드 및 가입자 노드와 같은 다른 장치 간의 통신을 완료하도록 구성되어 있는 통신 인터페이스(213)도 포함할 수 있다.
도 21에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는 데이터 복제 동안 관련 정보를 저장하도록 구성되어 있는 디스크(214)도 포함할 수 있다. 당업자라면 피어투피어 데이터 복제를 위한 장치가 마스터 노드일 때 디스크(214)는 마스터 노드의 물리적 엔티티로서 작동할 수 있다는 것을 이해할 수 있을 것이다.
대안으로, 특정한 실행에서, 메모리(212), 프로세서(211), 통신 인터페이스(213) 및 디스크(214)가 개별적으로 실현될 수 있으면, 메모리(212), 프로세서(211), 통신 인터페이스(213) 및 디스크(214)는 BUS를 통해 통신 접속 상태에 있을 수 있다. BUS는 산업 표준 아키텍처(Industry Standard Architecture: ISA) BUS, 주변 구성요소(Peripheral Component: PCI) BUS 또는 확장 산업 표준 아키텍처(Extended Industry Standard Architecture: EISA) BUS 등이 될 수 있다. BUS는 어드레스 BUS, 데이터 BUS 및 제어 BUS 등으로 구분될 수 있다. 편리한 표기를 위해, BUS를 단지 단일의 실선으로 표시했으나, 하나의 BUS 또는 한 종류의 BUS만이 있다는 의미가 아니다.
대안으로, 특정한 실행에서, 메모리(212), 프로세서(211), 통신 인터페이스(213) 및 디스크(214)가 싱글 칩으로 집적되면, 메모리(212), 프로세서(211), 통신 인터페이스(213) 및 디스크(214)는 내부 인터페이스를 통해 통신 접속 상태에 있을 수 있다.
도 22는 본 발명의 다른 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 대한 개략적인 구조도이다. 도 22에 도시된 피어투피어 데이터 복제를 위한 장치는 가입자 노드에 위치할 수 있다. 도 22에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는 프로세서(221) 및 상기 프로세서(221)에 접속된 메모리(222)를 포함한다.
메모리(222)는 프로그램을 저장하도록 구성되어 있다. 구체적으로, 프로그램은 프로그램 코드를 포함할 수 있고, 프로그램 코드는 컴퓨터 연산 명령을 포함할 수 있다.
상기 프로세서(221)는: 마스터 노드로부터 CSN이 부착된 커밋 재수행 레코드를 수신하고 - 상기 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내의 기록 동작의 순차를 지시하는 데 사용됨 - ; 상기 가입자 노드들의 CSN을 뺀 상기 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1일 때, 상기 가입자 노드들의 CSN을 상기 커밋 재수행 레코드에 부착된 CSN으로 갱신하고 - 상기 가입자 노드들의 CSN은 초기화 동안 0에 설정되어 있음 - ; 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하며 - 상기 가입자 노드는 상기 마스터 노드 및 상기 마스터 노드에 접속된 다른 가입자 노드에 접속됨 - ; 그리고 상기 마스터 노드 상에서 일어난 기록 동작의 데이터를 상기 다른 가입자에 복제하기 위해, 상기 커밋 재수행 레코드를 상기 다른 가입자 노드에 푸싱하도록 구성되어 있다.
메모리(222)는 고속 RAM 및 비휘발성 메모리를 포함할 수 있다.
프로세서(221)는 중앙처리장치(CPU)일 수 있거나, 주문형 집적회로(ASIC)일 수 있거나, 하나 이상의 ASIC로 구성될 수 있다.
본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 의해 피어투피어 데이터 복제를 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드와 가입자 노드 간의 전송이 감소될 수 있고, 따라서 복제 플러스터 내의 마스터 노드로부터의 복제 병목현상이 완화될 수 있다.
또한, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에서, 상기 프로세서는: 가입자 노드들의 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1이 아닐 때, 상기 수신된 커밋 재수행 레코드를 세이브하고, 다른 커밋 재수행 레코드를 대기하고; 그리고 상기 가입자 노드들의 CSN이, 상기 가입자 노드의 갱신된 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1인 값으로 갱신된 후, 상기 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하도록 추가로 구성되어 있다.
본 발명의 실시예에 따라 피어투피어 데이터 복제를 위한 장치에 따르면, 가입자 노드에 의해 수신된 커밋 재수행 레코드가 순서를 벗어나더라도, 정확한 복제가 보장될 수 있다.
또한, 본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에서, 상기 프로세서는: 상기 마스터 노드가 작동이 안 되고 상기 가입자 노드가 새로운 마스터 노드로 선출된 후 상기 다른 가입자 노드에서 상기 커밋 재수행 레코드를 리플레이함으로써 획득되는, 상기 마스터 노드에서 일어난 기록 동작의 모든 데이터를 얻기 위해 모든 다른 가입자 노드에 당김 요구를 전송하도록 구성되어 있고; 그리고 상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 새로운 마스터 노드로서 작동하는 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 재할당하도록 구성되어 있다.
선택적으로, 상기 프로세서는, 상기 가입자 노드 내의 이전의 마스터 노드가 작동이 안 되고 다른 가입자 노드가 새로운 마스터 노드로 선출된 후, 상기 새로운 마스터 노드에 의해 전송된 당김 요구에 응답해서 상기 이전의 마스터 노드에서 일어난 기록 동작의 데이터를 새로운 마스터 노드로서 작동하는 가입자 노드에 전송하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 피어투피어 데이터 복제를 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있는 능력을 가진다.
도 22에 도시된 바와 같이, 피어투피어 데이터 복제를 위한 장치는 데이터 복제 동안 관련 정보를 저장하도록 구성되어 있는 디스크(224)도 포함할 수 있다. 당업자라면 피어투피어 데이터 복제를 위한 장치가 마스터 노드일 때 디스크(224)는 마스터 노드의 물리적 엔티티로서 작동할 수 있다는 것을 이해할 수 있을 것이다.
대안으로, 특정한 실행에서, 메모리(222), 프로세서(221), 통신 인터페이스(223) 및 디스크(224)가 개별적으로 실현될 수 있으면, 메모리(222), 프로세서(221), 통신 인터페이스(223) 및 디스크(224)는 BUS를 통해 통신 접속 상태에 있을 수 있다. BUS는 산업 표준 아키텍처(Industry Standard Architecture: ISA) BUS, 주변 구성요소(Peripheral Component: PCI) BUS 또는 확장 산업 표준 아키텍처(Extended Industry Standard Architecture: EISA) BUS 등이 될 수 있다. BUS는 어드레스 BUS, 데이터 BUS 및 제어 BUS 등으로 구분될 수 있다. 편리한 표기를 위해, BUS를 단지 단일의 실선으로 표시했으나, 하나의 BUS 또는 한 종류의 BUS만이 있다는 의미가 아니다.
대안으로, 특정한 실행에서, 메모리(222), 프로세서(221), 통신 인터페이스(223) 및 디스크(224)가 싱글 칩으로 집적될 수 있으면, 메모리(222), 프로세서(221), 통신 인터페이스(223) 및 디스크(224)는 내부 인터페이스를 통해 통신 접속 상태에 있을 수 있다.
도 23은 본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다. 도 23에 도시된 마스터 노드 전환을 위한 장치는 가입자 노드에 위치할 수 있다. 도 23에 도시된 바와 같이, 장치는:
마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하도록 구성되어 있는 동기화 유닛(231) - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드가 새로운 마스터 노드로 선출된 후, 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드에 당김 요구를 전송하도록 구성되어 있는 전송 유닛(232); 및
상기 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드로부터 데이터를 수신하도록 구성되어 있는 수신 유닛(233)
을 포함한다.
본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 의해 마스터 노드 전환을 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있는 능력을 가진다.
또한, 도 24는 본 발명의 다른 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다. 도 24에 도시된 바와 같이, 마스터 노드 전환을 위한 장치는 또한, 상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 구축하도록 구성되어 있는 맵핑 유닛을 더 포함하고,
상기 동기화 유닛은, 상기 새로운 마스터 노드 내의 물리적 엔티티에서 기록 동작이 일어날 때, 상기 맵핑 관계에 따라 상기 새로운 마스터 노드와 상기 새로운 마스터 노드로 선출되지 않은 다른 가입자 노드 간의 피어투피어 데이터 복제를 수행하도록 추가로 구성되어 있다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드를 포함하는 클러스터는 본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 방법을 수행하도록 복구하고 복귀시킬 수 있다.
도 25는 본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다. 도 25에 도시된 마스터 노드 전환을 위한 장치는 가입자 노드 내에 위치할 수 있다. 도 25에 도시된 바와 같이, 상기 장치는:
마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하도록 구성되어 있는 동기화 유닛(251) - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ;
상기 다른 가입자 노드와 함께, 상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드를 새로운 마스터 노드로 선출하도록 구성되어 있는 선출 유닛(252);
상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 상기 새로운 마스터 노드에 의해 발급된 당김 요구를 수신하도록 구성되어 있는 수신 유닛(253); 및
상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 새로운 마스터 노드에 의해 전송된 당김 요구에 응답하여 상기 가입자 노드 내의 데이터를 상기 새로운 마스터 노드에 전송하도록 구성되어 있는 전송 유닛(254)
을 포함한다.
본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 의해 마스터 노드 전환을 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있는 능력을 가진다.
도 26은 본 발명의 다른 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다. 도 26에 도시된 마스터 노드 전환을 위한 장치는 가입자 노드 내에 위치할 수 있다. 도 26에 도시된 바와 같이, 상기 장치는, 프로세서(261) 및 상기 프로세서(261)에 접속된 메모리(262)를 포함한다.
메모리(262)는 프로그램을 저장하도록 구성되어 있다. 구체적으로, 프로그램은 프로그램 코드를 포함할 수 있고, 프로그램 코드는 컴퓨터 연산 명령을 포함할 수 있다.
상기 프로세서(261)는: 마스터 노드가 작동이 안 될 때, 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하고 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ; 상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드가 새로운 마스터 노드로 선출된 후, 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드에 당김 요구를 전송하며; 그리고 상기 새로운 마스터 노드로 선출되지 않은 나머지 가입자 노드로부터 데이터를 수신하도록 구성되어 있다.
본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 의해 마스터 노드 전환을 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있는 능력을 가진다.
또한, 상기 프로세서는, 상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 구축하고; 그리고 상기 새로운 마스터 노드 내의 물리적 엔티티에서 기록 동작이 일어날 때, 상기 맵핑 관계에 따라 상기 새로운 마스터 노드와 상기 새로운 마스터 노드로 선출되지 않은 다른 가입자 노드 간의 피어투피어 데이터 복제를 수행하도록 구성되어 있다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드를 포함하는 클러스터는 본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 방법을 수행하도록 복구하고 복귀시킬 수 있다.
또한, 도 26에 도시된 바와 같이, 마스터 노드 전환을 위한 장치는 피어투피어 데이터 복제를 위한 장치와 마스터 노드 및 가입자 노드와 같은 다른 장치 간의 통신을 완료하도록 구성되어 있는 통신 인터페이스(263)도 포함할 수 있다.
도 26에 도시된 바와 같이, 마스터 노드 전환을 위한 장치는 데이터 복제 동안 관련 정보를 저장하도록 구성되어 있는 디스크(264)도 포함할 수 있다. 당업자라면 피어투피어 데이터 복제를 위한 장치가 마스터 노드일 때 디스크(264)는 마스터 노드의 물리적 엔티티로서 작동할 수 있다는 것을 이해할 수 있을 것이다.
대안으로, 특정한 실행에서, 메모리(262), 프로세서(261), 통신 인터페이스(263) 및 디스크(264)가 개별적으로 실현될 수 있으면, 메모리(262), 프로세서(261), 통신 인터페이스(263) 및 디스크(264)는 BUS를 통해 통신 접속 상태에 있을 수 있다. BUS는 산업 표준 아키텍처(Industry Standard Architecture: ISA) BUS, 주변 구성요소(Peripheral Component: PCI) BUS 또는 확장 산업 표준 아키텍처(Extended Industry Standard Architecture: EISA) BUS 등이 될 수 있다. BUS는 어드레스 BUS, 데이터 BUS 및 제어 BUS 등으로 구분될 수 있다. 편리한 표기를 위해, BUS를 단지 단일의 실선으로 표시했으나, 하나의 BUS 또는 한 종류의 BUS만이 있다는 의미가 아니다.
대안으로, 특정한 실행에서, 메모리(262), 프로세서(261), 통신 인터페이스(263) 및 디스크(264)가 싱글 칩으로 집적되면, 메모리(262), 프로세서(261), 통신 인터페이스(263) 및 디스크(264)는 내부 인터페이스를 통해 통신 접속 상태에 있을 수 있다.
도 27은 본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 대한 개략적인 구조도이다. 도 27에 도시된 마스터 노드 전환을 위한 장치는 마스터 노드 내에 위치할 수 있다. 도 27에 도시된 바와 같이, 상기 장치는 프로세서(271) 및 상기 프로세서(271)에 접속된 메모리(272)를 포함한다.
메모리(271)는 프로그램을 저장하도록 구성되어 있다. 구체적으로, 프로그램은 프로그램 코드를 포함할 수 있고, 프로그램 코드는 컴퓨터 연산 명령을 포함할 수 있다.
상기 프로세서는: 마스터 노드가 작동이 안 될 때, 상기 가입자 노드와 다른 가입자 노드 간의 데이터 동기화가 완료될 때까지 또는 상기 데이터 동기화를 위해 미리 구성된 시간 주기에 도달할 때까지 상기 데이터 동기화를 수행하고 - 상기 가입자 노드와 상기 마스터 노드는 동일한 클러스터 내에 있음 - ; 상기 다른 가입자 노드와 함께, 상기 가입자 노드들의 최고 커밋 순차 번호(CSN)에 기초하여 상기 가입자 노드들 중에서 가입자 노드를 새로운 마스터 노드로 선출하고; 상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 상기 새로운 마스터 노드에 의해 발급된 당김 요구를 수신하며; 그리고 상기 가입자 노드가 새로운 마스터 노드로 선출되지 않을 때, 새로운 마스터 노드에 의해 전송된 당김 요구에 응답하여 상기 가입자 노드 내의 데이터를 상기 새로운 마스터 노드에 전송하도록 구성되어 있다.
본 발명의 실시예에 따른 마스터 노드 전환을 위한 장치에 의해 마스터 노드 전환을 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 마스터 노드 전환을 위한 장치에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있는 능력을 가진다.
도 27에 도시된 바와 같이, 마스터 노드 전환을 위한 장치는 데이터 복제 동안 관련 정보를 저장하도록 구성되어 있는 디스크(274)도 포함할 수 있다. 당업자라면 피어투피어 데이터 복제를 위한 장치가 마스터 노드일 때 디스크(274)는 마스터 노드의 물리적 엔티티로서 작동할 수 있다는 것을 이해할 수 있을 것이다.
대안으로, 특정한 실행에서, 메모리(272), 프로세서(271), 통신 인터페이스(273) 및 디스크(274)가 개별적으로 실현될 수 있으면, 메모리(272), 프로세서(271), 통신 인터페이스(273) 및 디스크(274)는 BUS를 통해 통신 접속 상태에 있을 수 있다. BUS는 산업 표준 아키텍처(Industry Standard Architecture: ISA) BUS, 주변 구성요소(Peripheral Component: PCI) BUS 또는 확장 산업 표준 아키텍처(Extended Industry Standard Architecture: EISA) BUS 등이 될 수 있다. BUS는 어드레스 BUS, 데이터 BUS 및 제어 BUS 등으로 구분될 수 있다. 편리한 표기를 위해, BUS를 단지 단일의 실선으로 표시했으나, 하나의 BUS 또는 한 종류의 BUS만이 있다는 의미가 아니다.
대안으로, 특정한 실행에서, 메모리(272), 프로세서(271), 통신 인터페이스(273) 및 디스크(274)가 싱글 칩으로 집적되면, 메모리(272), 프로세서(271), 통신 인터페이스(273) 및 디스크(274)는 내부 인터페이스를 통해 통신 접속 상태에 있을 수 있다.
도 28은 본 발명의 실시예에 따른 싱글 마스터 클러스터 시스템에 대한 개략적인 구조도이다. 도 28에 도시된 바와 같이, 시스템은 마스터 노드(281) 및 제1 가입자 노드(282) 및 제2 가입자 노드(283)를 포함하는 적어도 2개의 가입자 노드를 포함하며, 상기 마스터 노드(281) 상에, 도 16-18 및 21(이것은 도 28에 장치(284)로 표시되어 있다) 중 어느 하나에 도시된 바와 같은 피어투피어 데이터 복제; 및 상기 가입자 노드 각각에, 도 19, 20 및 22(이것은 도 28에 장치(285)로 표시되어 있다) 중 어느 하나에 도시된 바와 같은 따른 피어투피어 데이터 복제를 위한 장치를 포함한다.
본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 의해 피어투피어 데이터 복제를 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 싱글 마스터 클러스터 시스템에 따르면, 마스터 노드 상에서의 부하가 경감될 수 있다.
도 29는 본 발명의 다른 실시예에 따른 싱글 마스터 클러스터 시스템에 대한 개략적인 구조도이다. 도 29에 도시된 바와 같이, 시스템은 마스터 노드(291) 및 적어도 2개의 가입자 노드(292)를 포함하며; 상기 가입자 노드(292) 각각에, 도 23, 24(이것은 도 29에 장치(2923)로 표시되어 있다) 중 어느 하나에 도시된 바와 같은 마스터 노드 전환을 위한 장치 및 도 25 또는 27(이것은 도 29에 장치(294)로 표시되어 있다)에 도시된 바와 같은 마스터 노드 전환을 위한 장치를 포함한다.
본 발명의 실시예에 따른 피어투피어 데이터 복제를 위한 장치에 의해 피어투피어 데이터 복제를 수행하는 것에 대한 상세한 설명은 전술한 방법 실시예를 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
본 발명의 실시예에서 제공하는 싱글 마스터 클러스터 시스템에 따르면, 마스터 노드가 작동하지 않을 때, 가입자 노드는 가입자 노드를 포함하는 클러스터를 복구하고 작동 상황으로 신속하게 복귀시킬 수 있는 능력을 가진다.
전술한 바는 단지 본 발명의 특정한 실시예에 지나지 않는다. 그렇지만, 본 발명의 보호 범위는 이에 제한되지 않는다. 본 발명에서 개시된 기술적 범위 내에 있으면서 당업자가 쉽게 수행할 수 있는 변형 또는 대체는 본 발명의 보호 범위에 있어야 한다. 따라서 본 발명의 보호 범위는 특허청구범위에 의해 결정되어야 한다.

Claims (44)

  1. 피어투피어 데이터 복제(peer-to-peer data replication)를 위한 방법으로서,
    마스터 노드가, 제1 기록 동작이 상기 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하는 단계 - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 및
    상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계
    를 포함하며,
    상기 제1 커밋 재수행 레코드는, 상기 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱하는 것을 통해 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용되는, 방법.
  2. 제1항에 있어서,
    상기 물리적 엔티티들은 테이블 공간, 장치 파일, 페이지 및/또는 파티션인, 방법.
  3. 제1항에 있어서,
    상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계는 상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑함으로써 상기 마스터 노드에 의해 구축되고, 각각의 세트의 물리적 엔티티는 하나 또는 복수의 물리적 엔티티를 포함하며,
    상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계는,
    상기 마스터 노드가, 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해 상기 제1 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계
    포함하는, 방법.
  4. 제1항에 있어서,
    상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계는 상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑하며, - 상기 마스터 노드 내의 각각의 세트의 물리적 엔티티는 복수의 물리적 엔티티를 포함함 - 상기 마스터 노드 내의 하나의 세트의 물리적 엔티티 내의 상이한 물리적 엔티티를 상기 하나의 세트의 물리적 엔티티에 대응하는 가입자 노드 내의 상이한 물리적 엔티티에 추가로 맵핑함으로써 상기 마스터 노드에 의해 구축되며,
    상기 마스터 노드가, 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하는 단계는,
    상기 마스터 노드가, 상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해, 상기 제1 물리적 엔티티가 속하면서 상기 마스터 노드에 관한 상기 한 세트의 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계 및 상기 제1 물리적 엔티티와 제3 물리적 엔티티 간의 맵핑 관계에 기초하여, 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제3 물리적 엔티티에 푸싱하는 단계
    를 포함하고,
    상기 제1 가입자 노드는 제3 물리적 엔티티 및 제4 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있는, 방법.
  5. 제1항에 있어서,
    상기 마스터 노드에 새로운 가입자 노드가 접속될 때,
    상기 마스터 노드가, 상기 마스터 노드 내의 물리적 엔티티, 및 상기 물리적 엔티티와 상기 새로운 가입자 노드를 포함하는 가입자 노드 간의 맵핑 관계가 재구성된 후에, 커밋 재수행 레코드를 상기 새로운 가입자 노드에 동기화하는 단계
    를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 제1 커밋 재수행 레코드는 제2 커밋 재수행 레코드와는 별개이며, 상기 제2 커밋 재수행 레코드는 관련 기록 동작이 일어나는 물리적 엔티티에 기초해서, 제2 기록 동작이 제2 물리적 엔티티에서 일어날 때 상기 마스터 노드에 의해 생성되는, 방법.
  7. 제6항에 있어서,
    상기 제1 커밋 재수행 레코드 및 상기 제2 커밋 재수행 레코드는 상기 마스터 노드에 의해 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 각각 병렬로 푸싱되고, 이에 따라 상기 제1 커밋 재수행 레코드 및 상기 제2 커밋 재수행 레코드는 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 의해 병렬로 각각 리플레이되며;
    상기 제2 커밋 재수행 레코드는 상기 마스터 노드로부터 상기 제2 물리적 엔티티에 대응하는 상기 제2 가입자 노드로, 그런 다음 상기 제2 가입자 노드에 의해, 상기 제2 커밋 재수행 레코드를 상기 제1 가입자 노드로 푸싱하는 것을 통해 제1 가입자 노드로, 상기 제2 기록 동작의 데이터를 복제하는 데 사용되는, 방법.
  8. 피어투피어 데이터 복제를 위한 방법으로서,
    가입자 노드가, 마스터 노드로부터 커밋 순차 번호(commit sequence number: CSN)가 부착된 커밋 재수행 레코드를 수신하는 단계 - 상기 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내의 기록 동작의 순차를 지시하는 데 사용됨 - ;
    상기 가입자 노드들의 CSN을 뺀 상기 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1일 때, 상기 가입자 노드들의 CSN을 상기 커밋 재수행 레코드에 부착된 CSN으로 갱신하는 단계 - 상기 가입자 노드들의 CSN은 초기화 동안 0에 설정되어 있음 - ;
    상기 가입자 노드가, 마스터 노드 내의 물리적 엔티티 상에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하는 단계 - 상기 가입자 노드는 상기 마스터 노드 및 상기 마스터 노드에 접속된 다른 가입자 노드에 접속됨 - ; 및
    상기 가입자 노드가, 상기 마스터 노드 내의 물리적 엔티티 상에서 일어난 기록 동작의 데이터를 상기 다른 가입자에 복제하기 위해, 상기 커밋 재수행 레코드를 상기 다른 가입자 노드에 푸싱하는 단계
    를 포함하고,
    상기 가입자 노드는 물리적 엔티티들과 가입자 노드들 간의 맵핑 관계에 기초하여 상기 물리적 엔티티에 대응하는, 방법.
  9. 제8항에 있어서,
    상기 가입자 노드가, 상기 가입자 노드들의 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1이 아닐 때, 상기 수신된 커밋 재수행 레코드를 세이브하고, 다른 커밋 재수행 레코드를 대기하는 단계; 및
    상기 가입자 노드가, 상기 가입자 노드들의 CSN이, 상기 가입자 노드의 갱신된 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1인 값으로 갱신된 후, 상기 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하는 단계
    를 더 포함하는 방법.
  10. 제8항에 있어서,
    상기 가입자 노드가, 상기 마스터 노드가 작동이 안 되고 상기 가입자 노드가 새로운 마스터 노드로 선출된 후 상기 다른 가입자 노드에서 상기 커밋 재수행 레코드를 리플레이함으로써 획득되는, 상기 마스터 노드에서 일어난 기록 동작의 모든 데이터를 얻기 위해 모든 다른 가입자 노드에 당김 요구(pull request)를 전송하는 단계; 및
    상기 새로운 마스터 노드로서 작동하는 가입자 노드가, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 재할당하는 단계
    를 더 포함하는 방법.
  11. 제8항에 있어서,
    상기 가입자 노드가, 상기 가입자 노드 내의 이전의 마스터 노드가 작동이 안 되고 다른 가입자 노드가 새로운 마스터 노드로 선출된 후, 상기 새로운 마스터 노드에 의해 전송된 당김 요구에 응답해서 상기 이전의 마스터 노드에서 일어난 기록 동작의 데이터를 새로운 마스터 노드로서 작동하는 가입자 노드에 전송하는 단계
    를 더 포함하는 방법.
  12. 마스터 노드로서,
    프로세서 및 상기 프로세서에 접속된 메모리를 포함하며,
    상기 프로세서는,
    제1 기록 동작이 상기 마스터 노드 내의 제1 물리적 엔티티 상에서 일어날 때, 커밋 순차 번호(commit sequence number: CSN)가 부착된 제1 커밋 재수행 레코드(commit redo record)를 생성하고 - 상기 마스터 노드는 제1 물리적 엔티티 및 제2 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있고, 상기 마스터 노드는 제1 가입자 노드 엔티티 및 제2 가입자 노드를 포함하는 적어도 2개의 가입자 노드에 연결되어 있으며, 상기 제1 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내에서 제1 기록 동작의 순차를 지시하는 데 사용됨 - ; 그리고
    상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 구성되어 있으며,
    상기 제1 커밋 재수행 레코드는, 상기 마스터 노드로부터 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드로, 그런 다음 상기 제1 가입자 노드에 의해 상기 제1 커밋 재수행 레코드를 상기 제2 가입자 노드에 푸싱함으로써 상기 제2 가입자 노드로, 상기 제1 기록 동작의 데이터를 복제하는 데 사용되는, 마스터 노드.
  13. 제12항에 있어서,
    상기 물리적 엔티티들은 테이블 공간, 장치 파일, 페이지 및/또는 파티션인, 마스터 노드.
  14. 제12항에 있어서,
    상기 프로세서는,
    상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하고 - 각각의 세트의 물리적 엔티티는 하나 또는 복수의 물리적 엔티티를 포함함 - ; 그리고
    상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해 상기 제1 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계에 기초하여 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제1 가입자 노드에 푸싱하도록 추가로 구성되어 있는, 마스터 노드.
  15. 제12항에 있어서,
    상기 프로세서는,
    상기 마스터 노드와 상기 가입자 노드들 간의 상이한 접속에 상이한 가입자 노드를 맵핑하고, 상기 마스터 노드 내의 상이한 세트의 물리적 엔티티에 상이한 접속을 맵핑하며, - 상기 마스터 노드 내의 각각의 세트의 물리적 엔티티는 복수의 물리적 엔티티를 포함함 - 상기 마스터 노드 내의 하나의 세트의 물리적 엔티티 내의 상이한 물리적 엔티티를 상기 하나의 세트의 물리적 엔티티에 대응하는 가입자 노드 내의 상이한 물리적 엔티티에 추가로 맵핑함으로써 상기 물리적 엔티티들과 상기 가입자 노드들 간의 맵핑 관계를 구축하며; 그리고
    상기 마스터 노드와 상기 제1 가입자 노드 간의 접속을 통해, 상기 제1 물리적 엔티티가 속하면서 상기 마스터 노드에 관한 상기 한 세트의 물리적 엔티티와 상기 제1 가입자 노드 간의 맵핑 관계 및 상기 제1 물리적 엔티티와 제3 물리적 엔티티 간의 맵핑 관계에 기초하여, 상기 CSN이 부착된 제1 커밋 재수행 레코드를 상기 제1 물리적 엔티티에 대응하는 제3 물리적 엔티티에 푸싱하도록 추가로 구성되어 있으며,
    상기 제1 가입자 노드는 제3 물리적 엔티티 및 제4 물리적 엔티티를 포함하는 적어도 2개의 물리적 엔티티로 사전설정되어 있는, 마스터 노드.
  16. 제12항에 있어서,
    상기 프로세서는,
    상기 마스터 노드에 새로운 가입자 노드가 접속될 때, 상기 마스터 노드 내의 물리적 엔티티, 및 상기 물리적 엔티티와 상기 새로운 가입자 노드를 포함하는 가입자 노드 간의 맵핑 관계가 재구성된 후에, 커밋 재수행 레코드를 상기 새로운 가입자 노드에 동기화하도록 추가로 구성되어 있는, 마스터 노드.
  17. 제12항에 있어서,
    상기 제1 커밋 재수행 레코드는 제2 커밋 재수행 레코드와는 별개이며, 상기 제2 커밋 재수행 레코드는 관련 기록 동작이 일어나는 물리적 엔티티에 기초해서, 제2 기록 동작이 제2 물리적 엔티티에서 일어날 때 상기 마스터 노드에 의해 생성되는, 마스터 노드.
  18. 제17항에 있어서,
    상기 제1 커밋 재수행 레코드 및 상기 제2 커밋 재수행 레코드는 상기 프로세서에 의해 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 각각 병렬로 푸싱되고, 이에 따라 상기 제1 커밋 재수행 레코드 및 상기 제2 커밋 재수행 레코드는 상기 제1 가입자 노드 및 상기 제2 가입자 노드에 의해 병렬로 각각 리플레이되며;
    상기 제2 커밋 재수행 레코드는 상기 마스터 노드로부터 상기 제2 물리적 엔티티에 대응하는 상기 제2 가입자 노드로, 그런 다음 상기 제2 가입자 노드에 의해, 상기 제2 커밋 재수행 레코드를 상기 제1 가입자 노드로 푸싱하는 것을 통해 제1 가입자 노드로, 상기 제2 기록 동작의 데이터를 복제하는 데 사용되는, 마스터 노드.
  19. 가입자 노드로서,
    프로세서 및 상기 프로세서에 접속된 메모리를 포함하며,
    상기 프로세서는,
    마스터 노드로부터 커밋 순차 번호(commit sequence number: CSN)가 부착된 커밋 재수행 레코드를 수신하고 - 상기 커밋 재수행 레코드에 부착된 CSN은 상기 마스터 노드 내의 기록 동작의 순차를 지시하는 데 사용됨 - ;
    상기 가입자 노드들의 CSN을 뺀 상기 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1일 때, 상기 가입자 노드들의 CSN을 상기 커밋 재수행 레코드에 부착된 CSN으로 갱신하고 - 상기 가입자 노드들의 CSN은 초기화 동안 0에 설정되어 있음 - ;
    마스터 노드 내의 물리적 엔티티 상에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하며 - 상기 가입자 노드는 상기 마스터 노드 및 상기 마스터 노드에 접속된 다른 가입자 노드에 접속됨 - ; 그리고
    상기 마스터 노드 내의 물리적 엔티티 상에서 일어난 기록 동작의 데이터를 상기 다른 가입자에 복제하기 위해, 상기 커밋 재수행 레코드를 상기 다른 가입자 노드에 푸싱하도록 구성되어 있고,
    상기 가입자 노드는 물리적 엔티티들과 가입자 노드들 간의 맵핑 관계에 기초하여 상기 물리적 엔티티에 대응하는, 가입자 노드.
  20. 제19항에 있어서,
    상기 프로세서는,
    상기 가입자 노드들의 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1이 아닐 때, 상기 수신된 커밋 재수행 레코드를 세이브하고, 다른 커밋 재수행 레코드를 대기하고; 그리고
    상기 가입자 노드들의 CSN이, 상기 가입자 노드의 갱신된 CSN을 뺀 상기 수신된 커밋 재수행 레코드에 부착된 CSN의 절댓값이 1인 값으로 갱신된 후, 상기 마스터 노드에서 일어난 기록 동작의 데이터를 상기 마스터 노드로부터 상기 가입자 노드로 복제하기 위해 상기 커밋 재수행 레코드를 리플레이하도록 추가로 구성되어 있는, 가입자 노드.
  21. 제19항에 있어서,
    상기 프로세서는,
    상기 마스터 노드가 작동이 안 되고 상기 가입자 노드가 새로운 마스터 노드로 선출된 후 상기 다른 가입자 노드에서 상기 커밋 재수행 레코드를 리플레이함으로써 획득되는, 상기 마스터 노드에서 일어난 기록 동작의 모든 데이터를 얻기 위해 모든 다른 가입자 노드에 당김 요구를 전송하고; 그리고
    상기 가입자 노드가 새로운 마스터 노드로서 작동할 때, 상기 새로운 마스터 노드 내의 물리적 엔티티와 상기 새로운 마스터 노드로서 작동하는 가입자 노드가 아닌 다른 가입자 노드 간의 맵핑 관계를 재할당하도록 구성되어 있는, 가입자 노드.
  22. 제19항에 있어서,
    상기 프로세서는,
    상기 가입자 노드 내의 이전의 마스터 노드가 작동이 안 되고 다른 가입자 노드가 새로운 마스터 노드로 선출된 후, 상기 새로운 마스터 노드에 의해 전송된 당김 요구에 응답해서 상기 이전의 마스터 노드에서 일어난 기록 동작의 데이터를 새로운 마스터 노드로서 작동하는 가입자 노드에 전송하도록 추가로 구성되어 있는, 가입자 노드.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
KR1020157003889A 2014-05-05 2014-10-29 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템 KR101670343B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN2253CH2014 2014-05-05
ININ2253/CHE/2014 2014-05-05
PCT/CN2014/089757 WO2015169067A1 (en) 2014-05-05 2014-10-29 Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching

Publications (2)

Publication Number Publication Date
KR20160002656A KR20160002656A (ko) 2016-01-08
KR101670343B1 true KR101670343B1 (ko) 2016-10-28

Family

ID=54392089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157003889A KR101670343B1 (ko) 2014-05-05 2014-10-29 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템

Country Status (6)

Country Link
US (1) US11068499B2 (ko)
EP (1) EP2954424B1 (ko)
JP (1) JP6086463B2 (ko)
KR (1) KR101670343B1 (ko)
CN (1) CN105518641B (ko)
WO (1) WO2015169067A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268542A (zh) * 2016-12-31 2018-07-10 中国移动通信集团河北有限公司 用于数据库集群数据迁移的方法和系统
CN107360206B (zh) 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
CN110955720B (zh) * 2018-09-27 2023-04-07 阿里巴巴集团控股有限公司 一种数据加载方法、装置及系统
CN112306962B (zh) * 2019-07-26 2024-02-23 杭州海康威视数字技术股份有限公司 计算机集群系统中的文件拷贝方法、装置及存储介质
CN111309805B (zh) * 2019-12-13 2023-10-20 华为技术有限公司 数据库的数据读写方法及装置
US11822535B2 (en) * 2021-06-08 2023-11-21 Salesforce, Inc. Director-based database system for transactional consistency
US20220391379A1 (en) * 2021-06-08 2022-12-08 Salesforce.Com, Inc. Assistant nodes in director-based database system for transactional consistency
US11989051B2 (en) 2021-06-08 2024-05-21 Salesforce, Inc. Time alignment in director-based database system for transactional consistency
US12061526B2 (en) * 2021-06-08 2024-08-13 Salesforce, Inc. History information in director-based database system for transactional consistency
US20230350871A1 (en) * 2022-04-28 2023-11-02 Sap Se Efficiently Managing Changes To Master Data
US20240061815A1 (en) * 2022-08-17 2024-02-22 Saudi Arabian Oil Company Inter-site replication topology for directory services

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050165858A1 (en) * 2004-01-09 2005-07-28 Tom Richard W. Well-known transactions in data replication
US20060224757A1 (en) 2005-03-15 2006-10-05 Han Fang System and method for streaming service replication a in peer-to-peer network
US20120054158A1 (en) * 2010-08-30 2012-03-01 Oracle International Corporation Reduced Disk Space Standby

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261094A (en) 1991-04-08 1993-11-09 International Business Machines Corporation Asynchronous replication of data changes by distributed update requests
GB2297181B (en) 1993-09-24 1997-11-05 Oracle Corp Method and apparatus for data replication
US5687363A (en) 1994-03-30 1997-11-11 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
US6901433B2 (en) 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5937414A (en) 1997-02-28 1999-08-10 Oracle Corporation Method and apparatus for providing database system replication in a mixed propagation environment
JP4187302B2 (ja) 1998-03-25 2008-11-26 富士通株式会社 リレーショナルデータベース同期方法およびそのプログラムを記録した記録媒体
US7305451B2 (en) 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US6408292B1 (en) 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
US20020029207A1 (en) 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US6615223B1 (en) * 2000-02-29 2003-09-02 Oracle International Corporation Method and system for data replication
US7177866B2 (en) 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US6889229B1 (en) 2001-09-28 2005-05-03 Oracle International Corporation Techniques for peer-to-peer replication of objects in a relational database
US20030172070A1 (en) 2002-03-06 2003-09-11 Sawadsky Nicholas Justin Synchronous peer-to-peer multipoint database synchronization
US20040153473A1 (en) * 2002-11-21 2004-08-05 Norman Hutchinson Method and system for synchronizing data in peer to peer networking environments
US8688634B2 (en) 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US8880502B2 (en) * 2004-03-15 2014-11-04 International Business Machines Corporation Searching a range in a set of values in a network with distributed storage entities
US20060047713A1 (en) 2004-08-03 2006-03-02 Wisdomforce Technologies, Inc. System and method for database replication by interception of in memory transactional change records
EP1647898A1 (de) 2004-10-12 2006-04-19 IMS Innovation Management Services GmbH Serverlose Replikation von Datenbanken
US7613742B2 (en) 2006-05-02 2009-11-03 Mypoints.Com Inc. System and method for providing three-way failover for a transactional database
GB0612433D0 (en) 2006-06-23 2006-08-02 Ibm Method and system for defining a hierarchical structure
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
US20110137991A1 (en) * 2009-12-01 2011-06-09 Lester Paul Russell Systems and methods for management and collaboration in a private network
US20110178984A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Replication protocol for database systems
WO2011125127A1 (ja) * 2010-04-07 2011-10-13 株式会社日立製作所 非同期リモートコピーシステム、及び、記憶制御方法
US8595184B2 (en) 2010-05-19 2013-11-26 Microsoft Corporation Scaleable fault-tolerant metadata service
JP5853819B2 (ja) * 2012-03-29 2016-02-09 富士通株式会社 制御プログラム、制御方法、記憶制御装置および情報処理システム
US9218406B2 (en) * 2012-04-26 2015-12-22 Connected Data, Inc. System and method for managing user data in a plurality of storage appliances over a wide area network for collaboration, protection, publication, or sharing
US9467383B2 (en) * 2012-06-19 2016-10-11 Hewlett Packard Enterprise Development Lp Iterative optimization method for site selection in global load balance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050165858A1 (en) * 2004-01-09 2005-07-28 Tom Richard W. Well-known transactions in data replication
US20060224757A1 (en) 2005-03-15 2006-10-05 Han Fang System and method for streaming service replication a in peer-to-peer network
US20120054158A1 (en) * 2010-08-30 2012-03-01 Oracle International Corporation Reduced Disk Space Standby

Also Published As

Publication number Publication date
KR20160002656A (ko) 2016-01-08
WO2015169067A1 (en) 2015-11-12
EP2954424A4 (en) 2015-12-16
EP2954424A1 (en) 2015-12-16
CN105518641A (zh) 2016-04-20
CN105518641B (zh) 2018-05-04
JP2016521427A (ja) 2016-07-21
JP6086463B2 (ja) 2017-03-01
US20150317371A1 (en) 2015-11-05
US11068499B2 (en) 2021-07-20
EP2954424B1 (en) 2018-05-30

Similar Documents

Publication Publication Date Title
KR101670343B1 (ko) 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템
KR101544480B1 (ko) 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
US20110153570A1 (en) Data replication and recovery method in asymmetric clustered distributed file system
US8856091B2 (en) Method and apparatus for sequencing transactions globally in distributed database cluster
US20160269481A1 (en) Multi-Cluster Container Replication
US9201747B2 (en) Real time database system
US20150156136A1 (en) Cluster federation and trust
US20070061379A1 (en) Method and apparatus for sequencing transactions globally in a distributed database cluster
CN105426439A (zh) 一种元数据的处理方法和装置
CN105025053A (zh) 基于云存储技术的分布式文件的上传方法及其系统
CN111078121A (zh) 一种分布式存储系统数据迁移方法、系统、及相关组件
US10320905B2 (en) Highly available network filer super cluster
CN103150304A (zh) 云数据库系统
CN113010496A (zh) 一种数据迁移方法、装置、设备和存储介质
CN109639773A (zh) 一种动态构建的分布式数据集群控制系统及其方法
CN104410531A (zh) 冗余的系统架构方法
CN111225003B (zh) 一种nfs节点配置方法和装置
US10169157B2 (en) Efficient state tracking for clusters
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
CN115967611A (zh) 跨域的切换处理方法、装置、设备和存储介质
CN112667440A (zh) 一种高可用MySQL的异地灾备方法
CN110019092A (zh) 数据存储的方法、控制器和系统
CN111666338B (zh) 数据复制方法、控制节点及电子设备
Gupta et al. On the fly file dereplication mechanism
CN117271619A (zh) 数据库的序列处理系统、方法、装置以及计算机设备

Legal Events

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