KR20220086677A - 블록체인 기반 백업 및 복구를 위한 시스템 및 방법 - Google Patents

블록체인 기반 백업 및 복구를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220086677A
KR20220086677A KR1020227017884A KR20227017884A KR20220086677A KR 20220086677 A KR20220086677 A KR 20220086677A KR 1020227017884 A KR1020227017884 A KR 1020227017884A KR 20227017884 A KR20227017884 A KR 20227017884A KR 20220086677 A KR20220086677 A KR 20220086677A
Authority
KR
South Korea
Prior art keywords
data
blockchain
adaptation layer
recovery
backup
Prior art date
Application number
KR1020227017884A
Other languages
English (en)
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 KR20220086677A publication Critical patent/KR20220086677A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

종래의 데이터 저장소와 함께 사용하기 위한, 데이터 백업 및 복구의 블록체인 기반 시스템 및 방법이 개시된다. 시스템은 하나 이상의 노드를 포함하는 블록체인 및 저장 적응 계층을 포함한다. 저장 적응 계층은 블록체인 및 데이터 저장소와 데이터 통신하며, 데이터를 데이터 저장소로부터 블록체인으로 저장한다. 데이터 저장소는 관계형 데이터베이스 관리 시스템 또는 다른 유형의 데이터 저장소일 수 있다. 시스템은 블록체인 내의 데이터를 데이터 저장소로 복원하도록 구성된 복구 적응 계층을 추가로 포함한다. 복구 적응 계층은 또한 블록체인 및 데이터 저장소와 데이터 통신한다.

Description

블록체인 기반 백업 및 복구를 위한 시스템 및 방법
본 발명은 데이터 백업 및 복구에 관한 것으로, 보다 상세하게는 블록체인 기술에 기초한 실시간 데이터 백업 및 복구에 관한 것이다.
블록체인은 블록들로 그룹화되는 레코드들의 리스트이며, 이는 암호법을 사용하여 함께 링크된다. 블록체인 시스템들은 참가자들 중에서의 집단적 참여 및 컨센서스에 의해 트랜잭션들의 신뢰가능 레코드를 유지하기 위해 사용된다. 블록체인은 노드들로 칭해지는 다수의 네트워킹된 디바이스에 의해 공동으로 유지되는 분산 렛저 기술로서 이해될 수 있다. 따라서, 블록체인은 분산 저장 시스템으로 간주될 수 있다.
데이터베이스 백업 및 복구 프로세스들을 이용하는 종래의 저장 시스템들은 일반적으로 중복된 하드웨어 및 연관된 소프트웨어의 상당한 투자를 필요로 한다. 더욱이, 실제 백업 및 복구 사이클은 실행되면, 전형적으로 상당히 노동 집약적일 수 있다. 따라서, 기업 환경에서, 데이터의 실시간 백업 및 복원이 가능한 신뢰가능 시스템을 셋업하는 것은 종종 비용이 많이 든다.
실시간 데이터 백업에 대해, 기존 기술을 이용하는 종래의 시스템들은 종종 강력한 백업 서버들의 사용을 필요로 한다. 그러나, 그러한 강력한 서버들의 이용률은 종종 낮으며, 이는 이미 취득되었던 컴퓨팅 자원들의 엄청난 낭비로 전환된다.
변경들이 백업 서버 내의 백업 데이터로 이루어지면, 이때 시스템이 복원되는 경우, 생성 데이터베이스 내의 데이터는 부정확할 것이다. 따라서, 다양한 조직들의 요구들을 충족시키는 신뢰성있고, 안전하고, 다목적이고, 저렴한 백업 시스템들에 대한 요구가 있다.
백업 및 복원 동작들과 연관된 문제들을 완화시키는 종래의 방법들 중 하나는 증분 백업의 사용이다. 증분 백업 동안, 트랜잭션 로그들은 마지막 백업이 취해진 때로부터 이루어진 변경들을 식별하기 위해 이용되고, 이전 백업 동작에서 설명될 수 없는 변경들과 연관된 콘텐츠만이 다음 증분 백업 절차에서 백업될 것이다.
트랜잭션 로그는 이전 데이터베이스 백업 또는 트랜잭션 로그 레코드 백업 후에 데이터베이스에 이루어진 변경들만을 기록하므로, 증분 백업들은 백업 동작들 사이에서의 제한된 기간 동안 이루어진 데이터베이스 변경들만을 기록한다. 따라서, 완전한 데이터베이스 백업은 트랜잭션 레코드 백업 또는 초기 증분 백업을 착수하기 전에 필요하다.
상술한 접근법들의 신뢰성, 보안 및 일관성에 관련된 수개의 문제들이 있다.
신뢰성과 관련하여, 백업 시스템의 중심 노드가 실패할 수 있을 가능성이 있다. 백업 트랜잭션 로그와 연관된 중심 노드 또는 머신이 갖는 문제가 있으면, 이때 데이터 손실 또는 손상이 발생할 수 있고 전체 백업 프로세스가 실패할 수 있다.
보안 및 일관성과 관련하여, 트랜잭션 로그에 대한 임의의 비인가된 변경은 필연적으로 신뢰할 수 없는 복구된 데이터를 초래할 수 있다.
따라서, 종래의 하드웨어 디바이스들 및 기술들을 이용하는 백업 및 복원 시스템들과 연관된 상술한 문제들의 적어도 일부를 완화시키는 개선된 시스템들 및 방법들에 대한 요구가 있다.
본 발명의 일 양태에 따라, 블록체인 기반 백업 및 복원 시스템 및 방법이 제공된다. 본 발명의 실시예들은 안전하고, 신뢰성있고, 실시간 동작이 가능한 블록체인 기반 백업 및 복원 시스템들을 포함한다.
본 발명의 일 양태에 따라, 데이터 저장소 및 복수의 노드를 포함하는 블록체인과 함께 사용하기 위한, 데이터 백업 및 복구 시스템이 제공되며, 시스템은 하나 이상의 프로세서 및 메모리를 포함하는 서버; 서버 상에 실행하는 저장 적응 계층을 포함하고, 하나 이상의 프로세서는 블록체인 및 데이터 저장소와 데이터 통신하고; 저장 적응 계층은 데이터 저장소 내에 저장된 데이터의 변경들의 서브세트와 연관된 로그들을 블록체인으로 저장한다.
본 발명의 다른 양태에 따라, 시스템은 데이터 저장소 및 블록체인과 데이터 통신하는, 복구 적응 계층을 추가로 포함할 수 있으며, 복구 적응 계층은 블록체인으로부터 저장된 데이터를 검색하고 검색된 저장된 데이터에 대응하는 데이터를 데이터 저장소로 저장하도록 구성된다.
본 발명의 다른 양태에 따라, 데이터 백업 및 복구 방법이 제공된다. 방법은 로그에서, 사용자에 의해, 데이터 저장소에 저장된 데이터의 변경들의 서브세트를 추적하는 단계; 사용자를 블록체인 상의 계정으로 매핑하는 단계; 계정의 공개 키를 사용하여 로그를 암호화하는 단계; 및 암호화된 데이터를 캐시로 저장하는 단계; 및 암호화된 데이터를 블록체인으로 저장하는 단계를 포함한다.
방법은 캐시로부터 데이터를 검색하는 단계; 블록체인 어댑터를 사용하여 데이터 컨센서스 및 글로벌 검증을 위해 블록체인에서 블록체인 컨트랙트를 트리거하는 단계; 상기 복수의 노드 중 하나에 새로운 데이터 변경을 기록하는 단계; 블록체인에서 컨센서스 보팅을 수행하는 단계를 추가로 포함할 수 있으며; 상기 새로운 데이터 변경이 블록체인 내의 이력 변경 레코드와 충돌할 시에, 컨센서스 보팅이 실패되고; 그렇지 않으면, 상기 새로운 데이터 변경을 블록체인 내의 블록에 저장한다.
본 발명의 또 다른 양태에 따라, 이하에 기반하는 실시간 데이터 복제 시스템이 제공되며, 이 시스템은 블록체인; 타깃 데이터 저장소; 컴퓨팅 디바이스를 포함한다. 컴퓨팅 디바이스는 블록체인 상의 모든 블록들을 리스닝하도록 적응된 블록체인 리스닝 모듈; 데이터 복제에 관련된 블록들 상의 트랜잭션들을 필터링하는 트랜잭션 필터; 타깃 데이터 저장소 상의 실행을 위해 필터링된 트랜잭션들의 콘텐츠를 데이터 연산들로 변환하는 이벤트 발생기 - 트랜잭션 콘텐츠는 사전 수정 콘텐츠, 수정된 콘텐츠, 및 연산 유형을 포함함 - ; 및 실행 후에 타깃 데이터 저장소가 블록체인에 대응하기 위해 수정되도록 데이터 연산들을 실행하기 위한 데이터 복원 모듈을 포함한다.
본 발명의 또 다른 양태에 따라, 블록체인을 위한 데이터 백업 및 복구 시스템이 제공되며, 이 시스템은 데이터 적응 계층을 포함하는 서버; 및 데이터 저장 시스템을 포함하고; 데이터 적응 계층은 블록체인에 연결되고, 데이터 저장 시스템은 하나 이상의 저장 디바이스를 갖는 분산 데이터 저장소를 포함하고, 데이터 적응 계층은 데이터 저장 시스템과 블록체인 사이의 통신을 용이하게 하도록 적응된다. 데이터 적응 계층은 데이터 저장 시스템에서 데이터 변경 레코드들을 감시하는 데이터 변경 감시 모듈; 감시된 변경 레코드들을 표준 데이터 변경 레코드로 포맷하도록 적응된 데이터 변환 모듈; 데이터를 블록체인으로 기록하는 블록체인 컨트랙트를 포함한다.
도면들에서, 이들은 본 발명의 실시예들을 예로서만 예시한다.
도 1은 본 발명의 일 실시예에 대해 예시적인, 블록체인 기반 백업 및 복원 동작을 이용하는 시스템의 개략 블록도이다.
도 2는 도 1의 시스템을 사용하여 데이터를 백업하기 위한 예시적인 절차의 흐름도이다.
도 3은 본 발명의 예시적인 실시예에서 실시간 데이터 동기화 절차들을 요약하는 흐름도이다.
도 4는 도 1의 시스템을 사용하여 데이터를 복원하기 위한 예시적인 절차의 흐름도이다.
본 개시는 블록체인 기반 백업 및 복원 시스템 및 방법을 설명한다. 본 발명의 실시예들은 보안, 신뢰성, 능력 및/또는 실시간 동작들에 대한 요건들 중 하나 이상을 충족시키는 방식으로 동작하는 블록체인 기반 백업 및 복원 시스템들을 포함한다.
본 발명의 다양한 실시예들의 설명이 아래에 제공된다. 본 개시에서, 단어 관사("a" 또는 "an")의 사용은 본원에서 용어 "포함하는"과 함께 사용될 때 "하나"를 의미할 수 있지만, 그것은 또한 "하나 이상의", "적어도 하나의" 및 "하나 또는 하나 초과의"의 의미와 일치한다. 단수 형태로 표현되는 임의의 요소는 또한 그의 복수 형태를 포함한다. 복수 형태로 표현되는 임의의 요소는 또한 그의 단수 형태를 포함한다. 용어 "복수의"는 본원에서 사용되는 바와 같이 하나 초과의, 예를 들어, 2개 이상의, 3개 이상의, 4개 이상의 등을 의미한다. 방향 용어들 예컨대 "상단", "하단", "상방으로", "하방으로", "수직으로" 및 "측방으로"는 상대 참조만을 제공하는 목적을 위해 사용되고, 임의의 물품이 사용 동안 어떻게 위치되어야 하는지, 또는 조립체 내에 또는 환경에 대해 어떻게 장착되어야 하는지에 관한 임의의 제한들을 제안하도록 의도되지 않는다.
용어들 "구성하는", "갖는", "포함하는", 및 "함유하는", 및 그의 문법적 변형들은 포괄적이거나 제약을 두지 않고 추가적인 비열거된 요소들 및/또는 방법 단계들을 배제하지 않는다. 용어 "로 본질적으로 구성되는"은 본원에서 구성, 사용 또는 방법과 관련하여 사용될 때, 추가적인 요소들, 방법 단계들 또는 추가적인 요소들 및 방법 단계들 둘 다가 존재할 수 있지만, 이들 추가들이 열거된 구성, 방법, 또는 사용이 기능하는 방식에 물질적으로 영향을 미치지 않는 것을 나타낸다. 용어 "로 구성되는"은 본원에서 구성, 사용, 또는 방법과 관련하여 사용될 때, 추가적인 요소들 및/또는 방법 단계들의 존재를 배제한다.
"블록체인"은 컴퓨팅 디바이스들의 공중 또는 사설 피어 투 피어 네트워크에서 트랜잭션들을 기록하는 부정 조작, 공유 디지털 렛저이다. 렛저는 암호 해시 링크된 블록들의 증가하는 순차적인 체인으로서 유지된다.
"노드"는 블록체인의 맥락에서, 블록체인 네트워크 상의 디바이스이다. 디바이스는 전형적으로 프로세서 판독가능 명령어들을 갖는, 메모리를 포함하는 프로세서 판독가능 매체에 상호연결된 프로세서를 갖는 컴퓨팅 디바이스이다.
용어들 "제1", "제2", "제3" 등은 설명 목적들만을 위해 사용되고 상대적 중요성을 표시하거나 시사하는 것으로 해석될 수 없다.
발명의 설명에서, 용어들 "장착된", "링크된" 및 "연결된"은 달리 명시적으로 정의되고 제한되지 않는 한 넓은 의미로 해석되어야 한다는 점이 또한 주목되어야 한다. 예를 들어, 그것은 고정된 연결, 또는 조립된 연결, 또는 일체로 연결; 하드와이어드 또는 소프트와이어드될 수 있으며; 그것은 직접 연결되거나 매개물을 통해 간접 연결될 수 있다. 기술적 전문가들을 위해, 발명에서의 상기 용어들의 특정 의미들은 맥락에서 이해될 수 있다.
본 발명의 실시예들을 예시하는 도면들에서, 동일한 또는 유사한 참조 라벨들은 동일한 또는 유사한 부분들에 대응한다. 발명의 설명에서, "복수의"의 의미는 달리 지정되지 않는 한 2개 이상을 의미한다는 점이 주목되어야 하며; 용어들 "위", "아래", "좌측", "우측", "내부", "외부", "전방 단부", "후방 단부", "머리", "꼬리"의 방향들 또는 위치들, 도면들에 도시된 배향 또는 위치 관계는 표시된 디바이스 또는 요소가 특정 배향을 갖고 특정 배향으로 구성 및 동작되어야 하고, 따라서 발명의 제한으로서 사용될 수 없는 것을 표시하거나 시사하는 것보다는 발명을 설명하고 설명을 단순화하는 편의를 위한 것일 뿐이다.
I. 시스템 개요
도 1은 본 발명의 일 실시예에 대해 예시적인 블록체인 기반 백업 및 복원 동작을 이용하는 시스템의 블록도를 개략적으로 도시한다. 시스템은 데이터 소스(101), 로그 트래커 모듈(102), 이벤트 필터(103), 이벤트 저장소(104), 스마트 컨트랙트 라이터(105), 블록체인(106), 스마트 컨트랙트(107), 노드(108), 복원 관리 모듈(109), 타깃 데이터 저장소(110), 데이터 복원 모듈(111), 이벤트 발생기(112), 트랜잭션 필터(113) 및 블록 트랜스퍼(114)를 포함한다.
저장 적응 계층(115)은 로그 트래커 모듈(102), 이벤트 필터(103), 이벤트 저장소(104), 및 컨트랙트 라이터(105)를 포함하도록 정의될 수 있다.
복구 적응 계층(116)은 데이터 복원 모듈(111), 이벤트 발생기(112), 트랜잭션 필터(113) 및 블록 트랜스퍼(114)를 포함할 수 있다.
데이터 소스(101)는 데이터 소스(101) 내의 데이터가 변경될 때마다, 변경 로그를 발생시킨다. 데이터 소스(101)는 Oracle™ 데이터베이스, MySQL™, 마이크로소프트 SQL 서버™, 및 IBM DB2™ 데이터베이스와 같은 관계형 데이터베이스 관리 시스템(relational database management system)(RDBMS)일 수 있다. 이해될 수 있는 바와 같이, MySQL™ 데이터베이스는 빈-로그를 발생시키는 반면 Oracle™ 데이터베이스는 리두-로그를 발생시킨다.
로그 트래커 모듈(102)은 로그들에 기초하여 데이터 변경들을 저장한다. 상이한 데이터 소스들에 대해, 상이한 데이터 트래커 플러그인들은 데이터를 캡처하기 위해 사용된다. 예를 들어, 데이터베이스 시스템에서, 하나의 데이터 트래커는 복제 클라이언트를 에뮬레이트하고 메인 데이터베이스에 연결될 수 있고 메인 데이터베이스는 트랜잭션이 성공적일 때 트랜잭션 로그를 로그 트래커에 송신할 수 있다. 데이터 소스(101)에서 로그들을 캡처한 후에, 데이터 트래커 모듈(102)은 데이터 변경들을 저장하기 위해 내부 구조 또는 포맷을 발생시킨다.
이벤트 필터(103)는 구성 설정들에 기초하여 데이터를 필터링한다. Not all 모든 데이터가 블록체인으로 백업될 필요가 있는 것은 아니다. 따라서, 이벤트 필터(103)는 백업 또는 복원 및 관련 처리를 위해 미리 정의된 조건 또는 선택 기준들과 매칭하는 데이터를 선택한다.
이벤트 저장소(104)는 이벤트를 일시적으로 저장한다. 이벤트 저장소(104)는 블록체인과 데이터 소스 사이의 속도와 매칭한다. 데이터 변경의 속도가 블록체인 기입 속도보다 더 빠르면, 데이터는 캐시 또는 메시지 큐에 일시적으로 저장되고 추가 처리를 대기한다. 따라서, 캐시 또는 메시지 큐는 데이터 소스 내의 변경의 데이터 속도를 블록체인으로의 기입의 데이터 속도와 매칭시키는 것을 돕는다. 이러한 경우에, 시스템이 방해될 때에도, 캡처된 데이터 변경은 손실되지 않고 시스템이 복원될 때 처리를 계속할 수 있다.
스마트 컨트랙트 라이터(105)는 변경 이벤트를 암호화하고 블록체인에서 컨트랙트를 트리거한다. 그것은 또한 상이한 블록체인들과 매칭하기 위한 플러그인이다.
블록체인(106)은 다수의 사이트 내에 전개되고 컨센서스에 대한 네트워크를 발생시킨다. 이러한 예시적인 실시예에서, 트랜잭션들만이 저장되고 따라서 거의 모든 블록체인들이 지원될 수 있다.
스마트 컨트랙트(107)는 블록체인(106) 상에 실행하는 스마트 컨트랙트이다. 스마트 컨트랙트(107)는 변경된 데이터를 입력으로서 취하고, 변경 데이터를 제출한 계정을 검증하고, 데이터가 특정 규칙들 및 포맷들과 매칭하는 것을 체크한다. 노드들의 대부분이 컨센서스에 동의한 후에, 데이터는 블록에 트랜잭션으로서 저장된다.
노드(108)는 트랜잭션을 포함하는 블록이 동기화되고 추출될 수 있는 블록체인(106) 상의 다른 노드이다.
복원 관리 모듈(109)은 데이터 복원 프로세스를 관리한다. 복원 관리 모듈(109)은 데이터의 정확한 스냅샷의 복원 또는 소스 데이터와 동기화하는 실시간 복원을 제어한다.
타깃 데이터 저장소(110)는 데이터 소스(101)에 사용되는 유형과 동일한 유형일 수 있거나 동일한 유형이 아닐 수 있는 데이터 저장소이다. 예를 들어, 데이터 소스(101)는 Oracle™ 데이터베이스일 수 있는 한편, 데이터 저장소(110)는 MongoDB™일 수 있다. 동일한 데이터 유형의 데이터 저장소를 선택하면, 주어진 노드(Node-N) 상의 모듈들은 또한 원래 데이터 소스(101)가 충돌하는 경우 데이터를 데이터 소스(101)로 복원하기 위해 Node-1에서 적용될 수 있다.
데이터 복원 모듈(111)은 이러한 실시예에서, 타깃 데이터베이스와 매칭하기 위해 플러그인을 포함한다. 도시된 실시예에서, 데이터 복원 모듈(111)은 일반 자바스크립트 객체 표기법(JavaScript Object Notation)(JSON) 데이터를 특정 데이터베이스 연산들로 변환한다. 예를 들어, 관계형 데이터베이스에 대해, 데이터 복원 모듈(111)은 연산을 SQL 커맨드로 변환하는 반면, NoSQL 데이터베이스에 대해, 데이터 복원 모듈(111)은 다른 실행 포맷을 사용한다.
이벤트 발생기(112)는 발생기 이벤트 데이터에 사용된다. 트랜잭션들을 필터링 아웃한 후에, 데이터가 암호화되므로, 이벤트를 복호화하여 변경된 데이터를 얻고, 변경된 데이터를 JSON 포맷으로 변환하는 것이 필요하다.
트랜잭션 필터(113)는 백업 및 복원 동작들에 필요한 트랜잭션 데이터를 필터링 아웃한다. 블록은 많은 종류들의 트랜잭션들을 포함할 수 있고 적절한 서브세트는 데이터 백업/복원 트랜잭션들에 대해 필터링된다. 블록으로부터 트랜잭션들을 추출한 후에, 복원 측 관심들에 기초하는 이벤트들을 필터링 아웃하는 것이 또한 필요하다. 예를 들어, 일부 타깃 노드들은 특정 테이블에 대한 변경들에만 관심이 있는 한편, 다른 노드들은 상이한 관심들을 가질 수 있다.
블록 트래커(114)는 블록체인(106)에서 타깃 블록을 캡처한다. 실시간 동기화를 위해, 트래커(114)는 현재 동기화된 블록으로부터 시작되고 체인 내의 최신 블록으로 종료된다.
II. 백업 절차
도 2는 도 1에 예시된 시스템과 같은, 본 발명의 일 실시예에 대해 예시적인 시스템을 사용하여 데이터를 백업하기 위한 예시적인 절차(200)의 흐름도를 도시한다. 아래에 설명되는 절차(200)의 각각의 단계는 실행될 때 프로세서(들)로 하여금 아래에 열거되는 단계들 중 하나 이상을 수행하게 하는 프로세서 실행가능 명령어들을 저장하는 메모리에 연결된, 하나 이상의 서버 컴퓨팅 디바이스 상의 하나 이상의 프로세서를 포함하는 시스템(100)에 의해 수행될 수 있다.
단계(201)에서, 트랜잭션은 데이터가 변경되는 데이터베이스에서 발생한다. 데이터베이스를 실행하는 것과 연관된 프로세서들 중 하나는 변경된 데이터를 기록하고 로그를 빈-로그 또는 리두-로그의 형태로 발생시키고 변경을 기록한다.
단계(202)에서, 백업 서버는 데이터베이스 복제 클라이언트를 에뮬레이트하고 데이터베이스에 연결된다. 데이터베이스는 변경 로그를 백업 서버로 카피한다.
단계(203)에서, 모니터는 로그 상의 변경들을 감독한다.
단계(204)에서, 로그는 미처리 모드에 있으면, 전형적으로 "이전" 데이터, "이후" 데이터, 및 변경 유형("삽입", "삭제", 또는 "업데이트")을 포함한다.
단계(205)에서, 자원들이 제한되고, 모든 데이터가 백업될 필요가 있는 것은 아닐 수 있으므로, 사용자는 데이터베이스 변경들 또는 테이블 변경들 또는 열 변경들 또는 행 변경들이 블록체인(106)으로 백업되어야 하는지를 구성한다. 로그로부터 데이터를 추출한 후에, 구성된 필터는 원치 않는 데이터를 필터링 아웃하기 위해 적용된다.
단계(206)에서, 미처리 데이터 포맷은 상이한 데이터 소스들에서 상이할 수 있으므로, 어댑터는 데이터 포맷을 원하는 것(예를 들어, JSON 포맷)으로 변환하기 위해 사용된다. 예시적인 JSON 포맷은 이하처럼 보일 수 있다: "
Figure pct00001
이해될 수 있는 바와 같이, 이것은 원래 SQL 커맨드를 기록하는 것이 아니라, 오히려 데이터 내의 변경들만을 기록한다.
단계(207)에서, JSON 이벤트는 메시지 큐로 배치된다. 로그 발생의 속도가 블록체인 컨트랙트를 호출하는 속도로 변동될 수 있으므로, 메시지 큐는 변경된 데이터를 버퍼링하기 위해 캐시의 역할을 한다.
단계(208)에서, 메시지 큐는 일시적으로 JSON 데이터를 저장하고, 시스템 크래시의 경우에, 저장되지 않는 데이터는 손실된다. 시스템이 크래시로부터 복구될 때, 그것은 중단의 지점으로부터 계속될 것이다.
단계(209)에서, 이벤트들은 메시지 큐로부터 검색된다. 컨트랙트 라이터는 메시지 큐로부터 JSON 데이터를 검색한다. 데이터의 다수의 세트가 있으면, 스마트 컨트랙트 라이터는 그들을 검색하고 그들을 하나의 JSON 레코드로 조합한다.
단계(210)에서, 계정은 블록체인을 동작시키기 위해 필요하다. 로그의 경우, 데이터베이스 사용자를 추출하여 데이터를 조작하고 그러한 사용자를 구성 파일의 블록체인 계정으로 매핑할 수 있다.
단계(211)에서, 데이터는 제3자가 데이터베이스에서 민감 정보를 판독하는 것을 방지하기 위해 암호화된다. JSON 데이터는 계정의 공개 키를 사용하여 암호화된다.
단계(212)에서, 스마트 컨트랙트는 블록체인(106)에서 호출된다. 입력은 암호화된 JSON 데이터이다.
단계(213)에서, 스마트 컨트랙트는 자동 증가 이벤트 식별자(ID)를 발생시킨다. 블록체인에서, 시간은 블록을 발생시키기 위해 필요하다. 기간 동안, 다수의 JSON 레코드가 저장된다. 하나의 블록에서, 기록되는 트랜잭션들의 시퀀스가 보장되지 않는다. 스마트 컨트랙트는 동일한 블록 내에서 시퀀스를 식별하기 위해 각각의 JSON 레코드에 대한 자동 증가 시퀀스 ID를 발생시킨다.
단계(214)에서, 스마트 컨트랙트는 컨센서스를 위한 블록체인에서 대부분의 노드들 상에 실행된다. 스마트 컨트랙트는 JSON 데이터의 정확도 및 계정을 검증한다. 다수의 노드가 동일한 결과로 보팅되면, 스마트 컨트랙트는 성공적으로 실행된다.
단계(215)에서, 스마트 컨트랙트가 성공적으로 호출된 후에, JSON 데이터는 블록에서 스마트 컨트랙트 입력으로서 기록된다.
단계(216)에서, 발생된 블록은 효과가 나타나기 전에 블록체인 내의 컨센서스에 대해 다시 보팅된다.
III. 실시간 데이터 동기화 절차
도 3은 본 발명의 예시적인 실시예에서 실시간 데이터 동기화 프로세스를 요약하는 흐름도를 도시한다. 도시된 실시예에서, 변경된 데이터는 단계들이 아래에 열거되는 프로세스(300)를 사용하여 실시간으로 다른 노드로 복원된다. 아래에 설명되는 절차(300)의 각각의 단계는 실행될 때 프로세서(들)로 하여금 아래에 열거되는 단계들 중 하나 이상을 수행하게 하는 프로세서 실행가능 명령어들을 저장하는 메모리에 연결된, 하나 이상의 서버 컴퓨팅 디바이스 상의 하나 이상의 프로세서를 포함하는 시스템(100)에 의해 수행될 수 있다.
단계(301)에서, 블록체인(106)은 암호화된 JSON 데이터를 포함하는 새로운 블록을 발생시킨다.
단계(302)에서, 현재 블록 높이는 타깃 블록으로서 획득되거나 지정되고, 동기화된 블록은 시작 블록으로서 획득되거나 지정된다.
단계(303)에서, 프로세스는 체인에서 블록을 감시하고 블록 정보를 시작 블록으로부터 타깃 블록으로 검색한다.
단계(304)에서, 프로세스는 각각의 블록에서, 모든 트랜잭션들을 추출한다.
단계(305)에서, 필터가 적용된다. 블록체인 상에 실행하는 다른 서비스들이 또한 있을 수 있으므로, 이러한 단계는 백업/복원 컨트랙트에 의해 발생되는 트랜잭션들을 필터링 아웃한다.
단계(306)에서, 프로세스는 트랜잭션을 복호화하고 평문 JSON 이벤트 레코드를 계정의 개인 키로 검색한다. 블록체인(106)이 모든 노드들에 의해 볼 수 있으므로, 이것은 비인가된 사용자들이 데이터 스토리지에서 민감 데이터를 검색하는 것을 방지한다. 인가된 계정들만이 데이터에 액세스할 수 있다.
단계(307)에서, 프로세스는 스마트 컨트랙트에 의해 발생되는 고유 ID에 기초하여 JSON 이벤트들을 분류한다. 다수의 JSON 이벤트가 동일한 블록에 존재하면, 블록 스토리지 내의 시퀀스는 이벤트들의 시퀀스와 동일하지 않을 수 있다.
단계(308)에서, 다른 필터가 적용된다. 복원된 타깃 측이 데이터 소스 내의 모든 변경들에 관심이 있지 않을 수 있으므로, 프로세스는 타깃 측이 관심이 있는 데이터만을 필터링 아웃한다.
단계(309)에서, 프로세스는 JSON 데이터를 데이터 실행 커맨드로 변환하기 위해 플러그인을 사용한다. 상이한 타깃 데이터 저장을 위해, 그것은 변경들을 적용하기 위해 상이한 커맨드를 사용할 수 있다.
단계(310)에서, 프로세스는 상이한 데이터베이스 연산을 위해, JSON 데이터의 유형을 체크한다.
단계(311)에서, "삽입" 동작은 "이후" 데이터 섹션의 사용이 그것을 타깃 저장소 내로 삽입하게 한다.
단계(312)에서, "업데이트" 동작은 JSON에서의 데이터의 "이후" 섹션의 사용이 저장소에서 값들을 업데이트하게 한다.
단계(313)에서, "삭제" 동작은 JSON에서의 데이터의 "이전" 섹션의 사용이 타깃 저장소에서 매칭 레코드를 발견하고 그것을 제거하게 한다.
단계(314)에서, 타깃 데이터 구조는 DDL(Data Definition Language) 동작들을 위해, JSON 레코드 내의 정의에 따라 변경된다.
단계(315)에서, 현재 블록이 완료 처리된 후에, 프로세스는 최신 블록이 도달될 때까지 체인 내의 다음 블록으로 간다. 그 다음, 프로세스는 새로운 블록을 처리하는 것을 시작하는 단계(303)로 간다.
IV. 복원 절차
도 4는 도 1의 백업 및 복구 시스템을 사용하여 데이터를 복원하기 위한 예시적인 절차의 흐름도이다. 아래에 설명되는 절차(400)의 각각의 단계는 실행될 때 프로세서(들)로 하여금 아래에 열거되는 단계들 중 하나 이상을 수행하게 하는 프로세서 실행가능 명령어들을 저장하는 메모리에 연결된, 하나 이상의 서버 컴퓨팅 디바이스 상의 하나 이상의 프로세서를 포함하는 시스템(100)에 의해 수행될 수 있다.
하나의 시나리오에서, 타깃 데이터 저장소는 블록 10,000에 이미 동기화되어 있다. 프로세스는 타깃 저장소 상태를 블록 8,000으로 복원한다. 프로세스는 블록체인 내의 모든 동작들을 블록 10,000으로부터 블록 8,000으로 추출하고 데이터 변경을 역방향 시퀀스로 되돌리며, 이는 롤백으로 칭해진다.
다른 시나리오에서, 타깃 저장소는 블록 8,000에 있고, 상태를 블록 10,000 상태로 이동시키는 것이 필요하다. 프로세스는 블록체인 내의 동작들을 블록 8,000으로부터 블록 10,000으로 추출하고 변경들을 순차적으로 적용하며, 이는 롤포워드로 칭해진다.
타깃 데이터 저장소에 적용되는 동작은 이들 2개의 시나리오에서 상이하다.
롤백 동작에 대해, 동작이 "삽입"이면, 우선 "삭제"는 "이후" 값들과 매칭하는 데이터에 대해 적용되며; "삭제" 동작에 대해, "삽입"은 "이전" 값들로 적용된다.
롤포워드 동작에 대해, 동작은 JSON에 정의된 것과 동일하게 유지된다.
예시적인 프로세스(400)는 아래에 설명되는 도 4의 흐름도의 도움으로 도시된다.
단계(401)에서, 블록체인은 변경 로그를 순차적으로 포함한다.
단계(402)에서, 상기 프로세스는 로컬 데이터 저장소 상에서 현재 동기화된 블록 높이를 얻는다.
단계(403)에서, 프로세스는 타깃 블록 높이로 현재 높이를 체크한다. 그것이 동일하면, 그것은 타깃 상태에 이미 도달하였고 종료될 수 있는 의미한다. 그렇지 않으면, 프로세스는 계속된다.
단계(404)에서, 프로세스는 체인에서 블록을 감시하고 블록 정보를 검색한다.
단계(405)에서, 프로세스는 블록에서 트랜잭션들을 추출한다.
단계(406)에서, 프로세스는 백업/복원 스마트 컨트랙트에 의해 발생되는 트랜잭션들을 필터링 아웃한다.
단계(407)에서, 프로세스는 계정의 개인 키로 블록 내의 트랜잭션들을 복호화한다.
단계(408)에서, 다수의 이벤트가 동일한 블록에서 발생하면, 프로세스는 이러한 ID를 사용하여 스마트 컨트랙트 및 소트에 의해 발생되는 고유 ID를 검색한다. 롤백이 요구되면, 프로세스는 약방향 소트를 사용하지만 그렇지 않으면 순방향 소트를 사용한다.
단계(409)에서, 타깃 저장소는 관심이 있는 요청보다 많이 포함할 수 있기 때문에, 프로세스는 타깃 저장소가 관심이 있는 데이터만을 검색하기 위해 필터를 다시 적용한다.
단계(410)에서, 프로세스는 상이한 데이터 저장소 유형에 기초하여 JSON 레코드를 데이터 실행 커맨드로 변환한다. 예를 들어, 관계형 데이터베이스들은 SQL 커맨드들로 변환되고, MongoDB/Redis는 Mongo 또는 Redis 커맨드로 변환된다.
단계(411)에서, 타깃 블록이 현재 블록보다 더 크면, 프로세스는 롤 포워드되지만 그렇지 않으면 롤 백된다. 프로세스는 JSON에서 데이터 변경 동작의 유형을 체크한다.
단계(412)에서, 롤백 모드에서, 동작이 "삽입"이면, 프로세스는 데이터가 "이후" 섹션과 매칭하는 상태에서 타깃 저장소에 "삭제" 액션을 적용한다.
단계(413)에서, 롤백 모드에서, 업데이트하기 위해, 프로세스는 데이터를 데이터의 "이전" 섹션으로 다시 변경한다.
단계(414)에서, 롤백 모드에서, 동작이 "삭제"이면, 프로세스는 JSON에서 "이전" 값들로 "삽입" 액션을 적용한다.
단계(415)에서, 데이터 구조가 변경되면, 프로세스는 데이터 구조를 다시 변경한다.
단계(416)에서, 롤포워드 모드에서, 프로세스는 데이터 변경 동작들을 체크한다.
단계(417)에서, 롤포워드 모드에서, 프로세스는 JSON에서 "이후" 값들로 "삽입"을 적용한다.
단계(418)에서, 롤포워드 모드에서, 프로세스는 JSON에서 "이후" 값들로 "업데이트"를 적용한다.
단계(419)에서, 롤포워드 모드에서, 데이터가 "이전" 값들과 매칭하는 상태에서 "삭제"를 적용한다.
단계(420)에서, DDL에 대해, 프로세스는 JSON에 정의된 구조를 변경한다.
단계(421)에서, 프로세스는 체인에서 다음 블록을 얻는다.
따라서, 본 발명의 실시예들을 예로서만 설명했지만, 첨부된 청구항들에 의해 정의된 바와 같은 발명은 많은 변형들 및 순열들이 청구항들의 범위로부터 벗어나지 않고 가능하므로 예시적인 실시예들의 상기 설명에 제시된 특정 상세들에 의해 제한되지 않아야 한다는 점이 이해되어야 한다.

Claims (38)

  1. 데이터 저장소 및 복수의 노드를 포함하는 블록체인과 함께 사용하기 위한, 데이터 백업 및 복구 시스템으로서,
    a) 하나 이상의 프로세서 및 메모리를 포함하는 서버;
    b) 상기 서버 상에 실행하는 저장 적응 계층을 포함하며, 상기 하나 이상의 프로세서는 상기 블록체인 및 상기 데이터 저장소와 데이터 통신하고;
    상기 저장 적응 계층은 상기 데이터 저장소 내에 저장된 데이터의 변경들의 서브세트와 연관된 로그들을 상기 블록체인으로 저장하는, 데이터 백업 및 복구 시스템.
  2. 제1항에 있어서, 상기 데이터 저장소 및 상기 블록체인과 데이터 통신하는, 복구 적응 계층을 추가로 포함하며, 상기 복구 적응 계층은 상기 블록체인으로부터 저장된 데이터를 검색하고 상기 검색된 저장된 데이터에 대응하는 데이터를 상기 데이터 저장소로 저장하도록 구성되는, 데이터 백업 및 복구 시스템.
  3. 제1항에 있어서, 상기 저장 적응 계층은,
    a) 상기 로그들에 기초하여 데이터 변경들을 저장하는 로그 트래커 모듈;
    b) 저장된 이벤트들과 연관된 상기 로그들의 상기 서브세트를 필터링하기 위한 이벤트 필터;
    c) 필터링된 이벤트들의 로그들을 저장하기 위한 이벤트 저장소; 및
    d) 상기 필터링된 이벤트들과 연관된 데이터를 상기 블록체인에 기입하기 위한 스마트 컨트랙트 라이터 중 하나 이상을 포함하는, 데이터 백업 및 복구 시스템.
  4. 제2항에 있어서, 상기 복구 적응 계층은,
    a) 데이터를 상기 데이터 저장소로 복원하기 위한 데이터 복원 모듈;
    b) 이벤트 발생기;
    c) 트랜잭션 필터; 및
    d) 블록 전송 모듈 중 하나 이상을 포함하는, 데이터 백업 및 복구 시스템.
  5. 제1항에 있어서, 상기 데이터 저장소를 추가로 포함하는, 데이터 백업 및 복구 시스템.
  6. 제1항에 있어서, 상기 데이터 저장소는 하나 이상의 디바이스 중에 분산되는, 데이터 백업 및 복구 시스템.
  7. 제1항에 있어서, 상기 데이터 저장소는 관계형 데이터베이스 관리 시스템(RDBMS)인, 데이터 백업 및 복구 시스템.
  8. 제1항에 있어서, 상기 데이터 저장소는 MySQL™ 데이터베이스이고 상기 로그는 빈-로그를 포함하는, 데이터 백업 및 복구 시스템.
  9. 제1항에 있어서, 상기 데이터 저장소는 Oracle™ 데이터베이스이고 상기 로그는 리두-로그를 포함하는, 데이터 백업 및 복구 시스템.
  10. 제1항에 있어서, 상기 데이터 저장소는 NoSQL™ 데이터베이스인, 데이터 백업 및 복구 시스템.
  11. 제1항에 있어서, 상기 블록체인은 복수의 상이한 유형의 블록체인들 중 하나이고, 대응하는 블록체인 어댑터 플러그인 모듈은 상기 블록체인과 인터페이스하도록 상기 저장 적응 계층에 의해 사용되는, 데이터 백업 및 복구 시스템.
  12. 데이터 백업 및 복구 방법으로서,
    a) 로그에서, 사용자에 의해, 데이터 저장소에 저장된 데이터의 변경들의 서브세트를 추적하는 단계;
    b) 상기 사용자를 상기 블록체인 상의 계정으로 매핑하는 단계;
    c) 상기 계정의 공개 키를 사용하여 상기 로그를 암호화하는 단계; 및
    d) 상기 암호화된 데이터를 캐시로 저장하는 단계; 및
    e) 상기 암호화된 데이터를 상기 블록체인으로 저장하는 단계
    를 포함하는, 데이터 백업 및 복구 방법.
  13. 제12항에 있어서, 상기 블록체인은 복수의 노드를 포함하며, 상기 방법은,
    a) 상기 캐시로부터 상기 데이터를 검색하는 단계;
    b) 상기 블록체인 어댑터를 사용하여 데이터 컨센서스 및 글로벌 검증을 위해 상기 블록체인에서 블록체인 컨트랙트를 트리거하는 단계;
    c) 상기 복수의 노드 중 하나에 새로운 데이터 변경을 기록하는 단계;
    d) 상기 블록체인에서 컨센서스 보팅을 수행하는 단계를 추가로 포함하며;
    i) 상기 새로운 데이터 변경이 상기 블록체인 내의 이력 변경 레코드와 충돌할 시에, 상기 컨센서스 보팅이 실패되고;
    ii) 그렇지 않으면, 상기 새로운 데이터 변경을 상기 블록체인 내의 블록에 저장하는, 데이터 백업 및 복구 방법.
  14. 제13항에 있어서, 상기 새로운 데이터 변경을 상기 블록에 저장하는 단계는 블록체인 스마트 컨트랙트를 사용하여 달성되는, 데이터 백업 및 복구 방법.
  15. 제14항에 있어서, 다수의 트랜잭션에 대응하는 다수의 변경 이벤트가 상기 블록 내에 기록될 시에, 고유 시퀀스 ID는 상기 트랜잭션들의 시퀀스를 식별하도록 상기 스마트 컨트랙트에 의해 발생되는, 데이터 백업 및 복구 방법.
  16. 제12항에 있어서, 상기 캐시는 메시지 큐인, 데이터 백업 및 복구 방법.
  17. 제12항에 있어서, 상기 로그를 암호화하는 상기 단계 전에 상기 로그를 표준 포맷으로 변환하는 단계를 추가로 포함하는, 데이터 백업 및 복구 방법.
  18. 제12항에 있어서, 상기 변경의 데이터 속도를 상기 블록체인으로의 기입의 데이터 속도에 매칭시키는 단계를 추가로 포함하는, 데이터 백업 및 복구 방법.
  19. 제18항에 있어서, 상기 매칭은 시스템 크래시의 경우에 데이터 손실을 방지하는, 데이터 백업 및 복구 방법.
  20. 이하에 기반하는 실시간 데이터 복제 시스템으로서,
    a) 블록체인;
    b) 타깃 데이터 저장소;
    c) 컴퓨팅 디바이스를 포함하며, 상기 컴퓨팅 디바이스는,
    i) 상기 블록체인 상의 모든 블록들을 리스닝하도록 적응된 블록체인 리스닝 모듈;
    ii) 데이터 복제에 관련된 블록들 상의 트랜잭션들을 필터링하는 트랜잭션 필터;
    iii) 상기 타깃 데이터 저장소 상의 실행을 위해 상기 필터링된 트랜잭션들의 콘텐츠를 데이터 연산들로 변환하는 이벤트 발생기 - 상기 트랜잭션 콘텐츠는 사전 수정 콘텐츠, 수정된 콘텐츠, 및 연산 유형을 포함함 - ; 및
    iv) 실행 후에 상기 타깃 데이터 저장소가 상기 블록체인에 대응하기 위해 수정되도록 상기 데이터 연산들을 실행하기 위한 데이터 복원 모듈
    을 포함하는, 실시간 데이터 복제 시스템.
  21. 제20항에 있어서, 상기 타깃 데이터 저장소 상의 실행을 위해 상기 데이터 연산들을 하나 이상의 데이터 실행 커맨드로 변환하는 타깃 데이터 저장소 어댑터를 추가로 포함하는, 실시간 데이터 복제 시스템.
  22. 제20항에 있어서, 동일한 블록 내의 다수의 트랜잭션에 대해, 상기 다수의 트랜잭션은 스마트 컨트랙트에 의해 발생되고 순차적으로 실행되는 연관된 시퀀스 ID들로 분류되는, 실시간 데이터 복제 시스템.
  23. 제20항에 있어서, 상기 컴퓨팅 디바이스는 원치 않는 이벤트들이 상기 타깃 데이터 저장소의 수정을 초래하지 않도록 원치 않는 이벤트들을 필터링 아웃하는, 실시간 데이터 복제 시스템.
  24. 제20항에 있어서, 상기 필터링은 상기 블록체인 내의 트랜잭션들의 특징 값들에 기초하는, 실시간 데이터 복제 시스템.
  25. 제20항에 있어서, 상기 블록체인은 복수의 상이한 유형의 블록체인들 중 하나이고, 대응하는 블록체인 어댑터는 상기 블록체인 리스닝 모듈에 의해 사용되는, 실시간 데이터 복제 시스템.
  26. 제20항에 있어서, 상기 컴퓨팅 디바이스는 상기 필터링된 트랜잭션들의 콘텐츠를 디코딩하기 위해 개인 키를 사용하는, 실시간 데이터 복제 시스템.
  27. 제20항에 있어서, 상기 컴퓨팅 디바이스는 상기 타깃 데이터 저장소로 하여금 상기 블록체인의 원하는 블록 위치에 대응하기 위해 롤백 또는 롤포워드되게 하는, 실시간 데이터 복제 시스템.
  28. 블록체인을 위한 데이터 백업 및 복구 시스템으로서,
    서버 - 상기 서버는,
    데이터 적응 계층을 포함하며, 상기 데이터 적응 계층은,
    상기 데이터 저장 시스템에서 데이터 변경 레코드들을 감시하는 데이터 변경 감시 모듈;
    상기 감시된 변경 레코드들을 표준 데이터 변경 레코드로 포맷하도록 적응된 데이터 변환 모듈;
    상기 데이터를 상기 블록체인으로 기록하는 블록체인 컨트랙트를 포함함 - ;
    데이터 저장 시스템을 포함하며;
    상기 데이터 적응 계층은 상기 블록체인에 연결되고, 상기 데이터 저장 시스템은 하나 이상의 저장 디바이스를 갖는 분산 데이터 저장소를 포함하고, 상기 데이터 적응 계층은 상기 데이터 저장 시스템과 상기 블록체인 사이의 통신을 용이하게 하도록 적응되는, 데이터 백업 및 복구 시스템.
  29. 제28항에 있어서, 상기 데이터 적응 계층은,
    상기 감시된 변경 레코드들을 표준 데이터 변경 레코드로 포맷하도록 적응된 데이터 변환 모듈을 추가로 포함하는, 데이터 백업 및 복구 시스템.
  30. 제29항에 있어서, 상기 데이터 적응 계층은 상기 데이터 변경 레코드를 캐시하도록 적응된 데이터 캐시 모듈을 추가로 포함하는, 데이터 백업 및 복구 시스템.
  31. 제30항에 있어서, 상기 데이터 적응 계층은 상기 블록체인 컨트랙트를 활성화하기 위해 블록체인 기입 모듈을 추가로 포함하는, 데이터 백업 및 복구 시스템.
  32. 제31항에 있어서, 상기 데이터 적응 계층은 상기 블록체인 상의 모든 트랜잭션 정보를 감시하고 상기 백업 및 복원 시스템에 관련된 특정 트랜잭션들을 필터링하는 블록체인 감시 모듈을 추가로 포함하는, 데이터 백업 및 복구 시스템.
  33. 제32항에 있어서, 상기 데이터 적응 계층은 상기 블록체인 상에 기록된 트랜잭션 레코드를 데이터 저장소로 복원하는 복구 모듈을 추가로 포함하는, 데이터 백업 및 복구 시스템.
  34. 제33항에 있어서, 상기 복구 모듈은 상기 블록체인에 대응하는 상태로 상기 데이터 저장소에 적응되는, 데이터 백업 및 복구 시스템.
  35. 제33항에 있어서, 상기 데이터 적응 계층을 하나 이상의 유형의 데이터 소스들 각각에 적응시키는 하나 이상의 플러그인 구성요소를 추가로 포함하는, 데이터 백업 및 복구 시스템.
  36. 제33항에 있어서, 상기 데이터 저장소 시스템으로부터 상기 데이터 변경 레코드들을 인터셉트하는 데이터 감시 모듈을 추가로 포함하는, 데이터 백업 및 복구 시스템.
  37. 제33항에 있어서, 상기 데이터 저장소는 관계형 데이터베이스들, 비관계형 데이터베이스들, 파일 시스템들 중 하나 이상을 포함하는, 데이터 백업 및 복구 시스템.
  38. 제33항에 있어서, 상기 데이터 변경 레코드들 각각은 표준 포맷으로 포맷되는, 데이터 백업 및 복구 시스템.
KR1020227017884A 2019-10-31 2020-11-02 블록체인 기반 백업 및 복구를 위한 시스템 및 방법 KR20220086677A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962928703P 2019-10-31 2019-10-31
US62/928,703 2019-10-31
PCT/CA2020/051485 WO2021081675A1 (en) 2019-10-31 2020-11-02 System and method for blockchain based backup and recovery

Publications (1)

Publication Number Publication Date
KR20220086677A true KR20220086677A (ko) 2022-06-23

Family

ID=75714893

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227017884A KR20220086677A (ko) 2019-10-31 2020-11-02 블록체인 기반 백업 및 복구를 위한 시스템 및 방법

Country Status (8)

Country Link
US (1) US20220413971A1 (ko)
EP (1) EP4052129A1 (ko)
JP (1) JP2023501788A (ko)
KR (1) KR20220086677A (ko)
CN (1) CN114787780A (ko)
CA (1) CA3155794A1 (ko)
IL (1) IL292672A (ko)
WO (1) WO2021081675A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022241571A1 (en) * 2021-05-21 2022-11-24 Zeu Technologies, Inc. System and method for the safe custody of private data using blockchain
CN116010430B (zh) * 2023-03-24 2023-06-20 杭州趣链科技有限公司 数据恢复方法、数据库系统、计算机设备和存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394659B2 (en) * 2016-01-13 2019-08-27 Acronis International Gmbh System and method for providing comprehensive backup of modular mobile devices
CN106383754A (zh) * 2016-09-19 2017-02-08 北京众享比特科技有限公司 一种基于区块链技术的数据库备份、恢复方法和系统
WO2018187410A1 (en) * 2017-04-07 2018-10-11 Walmart Apollo, Llc Systems and methods for data backup and authentication using blockchain
CN108810127B (zh) * 2018-06-04 2021-06-18 立旃(上海)科技有限公司 基于区块链的灾备方法及装置
CN109213066B (zh) * 2018-10-24 2022-05-03 苏州保控电子科技有限公司 基于区块链技术的plc冗余控制数据备份方法及系统
CN109255251B (zh) * 2018-10-31 2023-10-10 安徽中科晶格技术有限公司 基于区块链技术的档案数据保护系统及方法
CN109587276A (zh) * 2019-01-11 2019-04-05 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种数据备份方法、系统及相关组件

Also Published As

Publication number Publication date
JP2023501788A (ja) 2023-01-19
CN114787780A (zh) 2022-07-22
US20220413971A1 (en) 2022-12-29
EP4052129A1 (en) 2022-09-07
CA3155794A1 (en) 2021-05-06
IL292672A (en) 2022-07-01
WO2021081675A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
US10169606B2 (en) Verifiable data destruction in a database
US11068501B2 (en) Single phase transaction commits for distributed database transactions
US10565071B2 (en) Smart data replication recoverer
EP2052338B1 (en) Dynamic bulk-to-brick transformation of data
US9037905B2 (en) Data processing failure recovery method, system and program
US11914554B2 (en) Adaptable multi-layered storage for deduplicating electronic messages
US11194669B2 (en) Adaptable multi-layered storage for generating search indexes
US11392460B2 (en) Adaptable multi-layer storage with controlled restoration of protected data
US9672113B1 (en) Data recovery from multiple data backup technologies
US11681586B2 (en) Data management system with limited control of external compute and storage resources
US10484179B1 (en) Data consistency in an encrypted replication environment
US20220413971A1 (en) System and Method for Blockchain Based Backup and Recovery
US20200409795A1 (en) Preservation of electronic messages between snapshots
US11494271B2 (en) Dynamically updating database archive log dependency and backup copy recoverability
CN112380067A (zh) 一种Hadoop环境下基于元数据的大数据备份系统及方法
US11966297B2 (en) Identifying database archive log dependency and backup copy recoverability
US11436089B2 (en) Identifying database backup copy chaining
US8195612B1 (en) Method and apparatus for providing a catalog to optimize stream-based data restoration
US20180295145A1 (en) Multicomputer Digital Data Processing to Provide Information Security Control
US11288285B2 (en) System and method for switching from consistent database to an eventual consistent database replica in real time while preventing reads of past versions of the data
US11042454B1 (en) Restoration of a data source
CN115757642A (zh) 一种基于归档日志文件的数据同步方法及装置
Safaryan et al. Cryptographic Algorithm Implementation for Data Encryption in DBMS MS SQL Server
CN117687838A (zh) 一种HBase基于离线数据的数据恢复的方法
CN117874143A (zh) 一种分布式环境下云边数据库同步中间件方法