KR102369655B1 - 스냅샷 기반의 데이터 복제 및 복구 방법 - Google Patents

스냅샷 기반의 데이터 복제 및 복구 방법 Download PDF

Info

Publication number
KR102369655B1
KR102369655B1 KR1020200141511A KR20200141511A KR102369655B1 KR 102369655 B1 KR102369655 B1 KR 102369655B1 KR 1020200141511 A KR1020200141511 A KR 1020200141511A KR 20200141511 A KR20200141511 A KR 20200141511A KR 102369655 B1 KR102369655 B1 KR 102369655B1
Authority
KR
South Korea
Prior art keywords
snapshot
data
node
warehouse
group
Prior art date
Application number
KR1020200141511A
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 주식회사 마크베이스
Priority to KR1020200141511A priority Critical patent/KR102369655B1/ko
Application granted granted Critical
Publication of KR102369655B1 publication Critical patent/KR102369655B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 스냅샷 기반의 데이터 복제 및 복구 방법이 제공된다. 상기 방법은, 클라이언트 응용 모듈에서 복수의 브로커 노드에게 데이터를 전달하면, 상기 브로커 노드는 상기 데이터를 저장할 그룹을 결정하고, 상기 그룹에 소속된 모든 웨어하우스 노드들에게 동일한 상기 데이터를 동시에 전송하는 데이터 복제 과정 및 일정 주기마다 주 코디네이터 노드는 스냅샷을 실행할 그룹의 웨어하우스 노드들을 쓰기 금지 모드로 변경하고 브로커 노드에게 스냅샷의 생성을 명령하고, 브로커 노드는 해당 그룹에 대한 데이터 전송이 종료됨을 확인하고 해당 그룹에 대한 데이터 입력을 중지하고 주 코디네이터 노드에게 브로커 스냅샷 완료를 전송하는 스냅샷 생성 과정을 포함할 수 있다.

Description

스냅샷 기반의 데이터 복제 및 복구 방법{Snap-shot based data duplicating and restoring method}
본 발명은 데이터 복제 및 복구 방법에 관한 것이다. 보다 상세하게는, 스냅샷 기반의 데이터 복제 및 복구 방법에 대한 것이다.
비공유 저장장치를 갖는 클러스터 환경에서 데이터 처리 소프트웨어는 다음의 노드들로 구성된다. 분산 저장된 데이터의 고가용성을 확보하기 위해 데이터는 두 대 이상의 노드에 복제된다.
일반적인 복제 알고리즘은 다음과 같다. 사용자로 부터 전달된 데이터를 주 저장 노드에 저장하고, 보조 저장 노드들은 주 저장 노드의 데이터 추가를 확인한 다음 추가된 데이터를 네트워크를 통해서 전달받아 저장한다. 주 저장 노드와 보조 저장 노드들은 동일한 데이터를 동일한 순서로 기록하여 데이터의 무결성을 유지하고, 일부 저장 노드에서 장애가 발생하더라도 복제된 다른 저장 노드의 데이터를 이용하여 데이터의 유실을 방지하는 것이다.
이러한 알고리즘에서 데이터는 항상 두 개 이상의 복제본을 유지하고 있다. 그러나 주 저장 노드에 데이터가 기록되고 있다. 하지만, 보조 저장 노드에 데이터가 전달되지 않은 상황에서는 데이터 복제본은 단 하나이며 이 상황에서 주 저장 노드에 장애가 발생하면, 복제되지 않은 데이터를 잃어버리는 문제점이 발생한다.
이러한 문제점은 기존의 모든 복제 기반 비공유 저장장치 환경의 클러스터에서 내포하고 있는 문제점에 해당한다.
따라서, 본 발명의 목적은 전술한 문제를 해결하기 위해, 스냅샷 기반의 데이터 복제 및 복구 방법을 제공함에 있다.
또한, 본 발명의 목적은 데이터를 비-공유 저장장치를 이용하여 클러스터환경에서 저장하기 위한 것이다.
또한, 본 발명의 목적은 클러스터 코디네이터 노드에서 스냅샷을 전송하고 이를 전달받은 브로커 노드와 웨어하우스 노드들이 입력 데이터를 플러쉬하여 입력된 데이터가 정확하게 기록하기 위한 것이다.
상기와 같은 과제를 해결하기 위한 본 발명에 따른 스냅샷 기반의 데이터 복제 및 복구 방법이 제공된다. 상기 방법은, 클라이언트 응용 모듈에서 복수의 브로커 노드에게 데이터를 전달하면, 상기 브로커 노드는 상기 데이터를 저장할 그룹을 결정하고, 상기 그룹에 소속된 모든 웨어하우스 노드들에게 동일한 상기 데이터를 동시에 전송하는 데이터 복제 과정 및 일정 주기마다 주 코디네이터 노드는 스냅샷을 실행할 그룹의 웨어하우스 노드들을 쓰기 금지 모드로 변경하고 브로커 노드에게 스냅샷의 생성을 명령하고, 브로커 노드는 해당 그룹에 대한 데이터 전송이 종료됨을 확인하고 해당 그룹에 대한 데이터 입력을 중지하고 주 코디네이터 노드에게 브로커 스냅샷 완료를 전송하는 스냅샷 생성 과정을 포함할 수 있다.
일 실시예에 따르면, 상기 방법은 장애가 발생한 웨어하우스 노드의 장애가 복구되면 웨어하우스 노드는 주 코디네이터 노드에게 마지막으로 성공한 스냅샷 정보를 요청하고, 주 코디네이터 노드는 웨어하우스가 속한 그룹이 마지막으로 성공한 스냅샷 식별자를 데이터 복구를 수행할 웨어하우스 노드에 전송하고, 웨어하우스 노드는 스냅샷 식별자를 이용하여 스냅샷 정보로부터 <테이블 식별자, RID>를 읽어들여서 해당 테이블의 RID이후의 데이터를 전송하는 데이터 복구 과정을 더 포함할 수 있다.
일 실시 예에 따르면, 상기 스냅샷 생성 과정에서 주 코디네이터 노드는 클러스터 내의 모든 브로커들에게 브로커 스냅샷 완료를 전송받으면, 스냅샷을 수행할 그룹 내의 웨어하우스들에게 스냅샷 실행 명령을 전송하고, 상기 스냅샷 실행 명령을 전송 시 스냅샷 식별자를 같이 전달하고, 스냅샷 실행 명령을 수신한 웨어하우스 노드는 입력 버퍼에 있는 데이터를 모두 디스크에 반영하고, 저장하고 있는 모든 테이블의 마지막 RID값을 스냅샷 메타 테이블에 기록할 수 있다.
일 실시 예에 따르면, 상기 스냅샷 메타 테이블은 <스냅샷 식별자, 테이블 식별자, RID>를 레코드로 하는 테이블일 수 있다. 이에 따라, 상기 스냅샷 생성 과정에서, 웨어하우스 노드는 스냅샷의 완료를 주 코디네이터 노드에게 전송하고, 스냅샷을 수행한 그룹의 모든 웨어하우스 노드들로부터 스냅샷 완료를 수신한 주 코디네이터 노드는 해당 스냅샷을 성공으로 간주하고 성공한 스냅샷에 대한 정보를 기록할 수 있다.
일 실시 예에 따르면, 상기 스냅샷 생성 과정에서, 주 코디네이터 노드는 성공한 스냅샷에 대한 정보에 기반하여 <스냅샷 식별자, 그룹 식별자, 수행 시간>을 메타 테이블에 기록하고, 메타 테이블에 기록된 정보를 보조 코디네이터 노드에도 전달하여 스냅샷 정보를 복제하고, 스냅샷을 성공한 그룹에 대한 쓰기 금지를 해제할 수 있다.
일 실시 예에 따르면, 상기 스냅샷 생성 과정에서, 스냅샷 수행 중에 장애나 오류가 발생한다면, 주 코디네이터 노드는 스냅샷을 수행한 그룹의 쓰기 금지를 해제하여 읽기 쓰기 모드로 전환하고, 일정 시간이 지난 후에 스냅샷을 재 시도하할 수 있다. 한편, 스냅샷이 수행된 그룹 내의 웨어하우스 노드가 유지하는 데이터는 입력 순서는 상이하고, 스냅샷의 장애나 오류가 발생하기 이전 시점까지의 데이터는 동일한 값을 갖는 것을 특징으로 한다.
일 실시 예에 따르면, 상기 데이터 복구 과정에서, 복구를 수행하는 웨어하우스 노드는 전달받은 <테이블 식별자>를 갖는 테이블에 대해서 전달받은 데이터를 재입력하고, 모든 테이블에 대해서 데이터 재입력 과정을 수행한 후 주 코디네이터 노드에 복구 완료 메시지를 전달할 수 있다.
일 실시 예에 따르면, 상기 데이터 복구 과정에서, 주 코디네이터 노드는 복구가 완료된 노드가 속한 그룹에 대한 쓰기 금지를 해제할 수 있다.
일 실시 예에 따르면, 각 그룹은 동일한 데이터를 갖는 둘 이상의 웨어하우스 노드들을 포함할 수 잇다. 한편, 상기 주 코디네이터 노드는 각 그룹에 대한 클러스터 정보를 유지하고, 각 노드들의 연결정보를 확인하여 장애 여부를 판단하고, 노드들에게 스냅샷 명령 및 복제 명령을 수행하고, 각 그룹 내의 특정 노드에 장애가 발생하거나, 신규 웨어하우스 노드 추가 시 동일한 그룹 내의 노드에서 데이터를 복제하도록 제어할 수 있다.
일 실시 예에 따르면, 상기 브로커 노드는 사용자의 클라이언트 단말과 데이터베이스 처리 프로토콜로 연결되어 있으며 클라이언트 단말의 입력, 검색 요청을 처리하고, 클라이언트 단말로부터 입력된 데이터를 연결되어 있는 웨어하우스 노드에게 전달하여 저장하고, 검색 요청에 따른 검색 조건절을 웨어하우스 노드에 전송하고, 검색 결과를 취합하여 클라이언트 단말에게 전달하도록 구성될 수 있다.
일 실시 예에 따르면, 상기 웨어하우스 노드는 브로커 노드의 입력요청에 따라 데이터를 디스크에 저장하고 인덱스를 생성하고, 브로커 노드의 검색요청에 따라 데이터를 검색하고, 검색에 필요한 인덱스가 생성되어 있다면, 인덱스를 이용한 검색을 수행하고, 집합함수나 정렬의 수행을 요청받으면 웨어하우스 노드는 자체적으로 저장되어 있는 데이터에 대한 집합함수를 수행하거나 정렬을 수행하고, 정렬 수행 결과를 브로커 노드에 전달하도록 구성될 수 있다.
본 발명에 따르면, 데이터 복제를 통한 고가용성 지원(High Availability Support)에서, 특정 저장 노드가 비정상 종료하더라도 데이터의 유실을 없앨 수 있다.
또한, 본 발명에 따르면, 데이터의 순서가 보장되지 않는 환경에서 복구에 소요되는 시간을 줄이면서도 정확한 데이터의 복제를 수행할 수 있다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
도 1은 본 발명에 따른 스냅샷 기반의 데이터 복제 및 복구 방법을 수행하는 데이터 복제 및 복구 시스템의 구성도를 나타낸다.
도 2는 본 발명에 따른 데이터 복제 및 복구 시스템에서 수행되는 스냅샷 기반의 데이터 복제 및 복구 방법의 흐름도를 나타낸다.
도 3은 본 발명에 따른 브로커 노드, 주 코디네이터 노드 및 웨어하우스 노드 간에 수행되는 일련의 스냅샷 생성 과정을 나타낸다.
도 4는 본 발명에 따른 브로커 스냅샷 완료 이후, 특정 웨어하우스 노드와 주 코디네이터 간에 수행되는 스냅샷 실행 요청, 스냅샷 정보 저장 및 스냅샷 완료 응답 과정을 나타낸다.
도 5는 본 발명에 따른 스냅샷 성공 이후, 브로커 노드, 주 코디네이터 노드 및 웨어하우스 노드 간에 수행되는 정보 기록, 복제 및 쓰기 금지 해제 과정을 나타낸다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제1, 제2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 모듈, 블록 및 부는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 당해 분야에 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 설명한다. 하기에서 본 발명의 실시 예를 설명함에 있어, 관련된 공지의 기능 또는 공지의 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
이하에서는, 본 발명에 따른 스냅샷 기반의 데이터 복제 및 복구 방법에 대해 설명한다. 본 발명에 따르면, 데이터를 비공유(Shared nothing) 저장장치를 이용하여 클러스터환경에서 저장할 경우, 데이터의 고가용성을 위해서 두 대 이상의 클러스터 저장 노드에 대해 동시에 데이터를 전달하여 기록할 수 있다. 이와 관련하여, 같은 데이터를 기록하는 저장 노드가 동시에 장애가 발생하지 않는 이상, 입력된 데이터의 가용성을 유지할 수 있다.
클러스터는 클러스터의 상태를 유지하는 클러스터 코디네이터 노드, 사용자 데이터의 입출력을 담당하는 브로커 노드, 데이터의 저장 및 검색을 수행하는 웨어하우스 노드의 3가지로 구성되어 있다. 같은 데이터를 저장하고 있는 웨어하우스 노드들 중 하나의 노드가 장애가 발생하면, 정상 데이터를 유지하고 있는 웨어하우스에서 데이터를 전달받아 복구를 수행할 수 있다.
복구 상황에서 데이터의 순서가 맞지 않으므로, 데이터의 정합성을 유지하기 위해서는 기존의 모든 데이터를 삭제하고 전체 데이터를 복제하는 방법이 있다. 하지만, 이 경우 저장된 데이터의 양이 많은 경우에는 복구에 오랜 시간이 소요될 ㅅ수 있다.
본 특허는 주기적으로 클러스터 코디네이터 노드에서 스냅샷을 전송하고 이를 전달받은 브로커 노드와 웨어하우스 노드들이 입력 데이터를 플러쉬하여 입력된 데이터가 정확하게 기록되는 기준점을 생성하기 위한 것이다. 이를 이용하여 장애 복구시에 가장 마지막으로 성공한 기준점 이후의 데이터를 삭제하고 (순서가 어긋날 수 있어서) 다른 웨어하우스 노드로 부터 데이터 데이터 복제를 다시 진행하여 복구 속도를 향상시키는 방법이다.
이와 관련하여, 도 1은 본 발명에 따른 스냅샷 기반의 데이터 복제 및 복구 방법을 수행하는 데이터 복제 및 복구 시스템의 구성도를 나타낸다. 한편, 도 2는 본 발명에 따른 데이터 복제 및 복구 시스템에서 수행되는 스냅샷 기반의 데이터 복제 및 복구 방법의 흐름도를 나타낸다. 일 예로, 스냅샷 기반의 데이터 복제 및 복구 방법은 데이터 복제 및 복구 시스템의 각 구성 요소(의 프로세서)에 의해 수행될 수 있다. 또는, 스냅샷 기반의 데이터 복제 및 복구 방법은 클라이언트 단말과 연결된 서버(의 프로세서)에 의해 수행될 수도 있다. 또는, 스냅샷 기반의 데이터 복제 및 복구 방법은 클라이언트 단말(의 프로세서)에 의해 수행될 수도 있다.
도 1을 참조하면, 데이터 복제 및 복구 시스템(100)은 클라이언트 단말(100), 브로커 노드(200), 복수의 웨어하우스 노드(310, 320), 주 코디네이터 노드(400) 및 보조 코디네이터 노드(500)를 포함할 수 있다. 이와 관련하여, 클라이언트 단말(100)은 브로커 노드(200)를 통해 여러 노드 (모듈)과 연동되므로, 클라이언트 응용 모듈(100)로 지칭될 수 있다. 한편, 클라이언트 단말(100)은 제1 및 제2 클라이언트 단말(100a, 100b)를 포함하도록 구성될 수 있다. 이 경우, 제1 및 제2 클라이언트 단말(100a, 100b)은 제1 및 제2 클라이언트 응용 모듈(100a, 100b)로 지칭될 수 있다. 또한, 브로커 노드(200)도 제1 및 제2 브로커 노드(200a, 200b)를 포함하도록 구성될 수 있다. 한편, 그룹 1은 제1 및 제2 웨어하우스 노드(310a, 310b)를 포함하도록 구성될 수 있다. 또한, 그룹 2는 제3 및 제4 웨어하우스 노드(320a, 320b)를 포함하도록 구성될 수 있다. 복수의 그룹에 속하는 서로 다른 웨어하우스 노드를 통칭하여 웨어하우스 노드(300)로 지칭할 수 있다.
한편, 브로커 노드(200), 복수의 웨어하우스 노드(310, 320) 및 주 코디네이터 노드(400)를 각각 브로커(200), 복수의 웨어하우스(310, 320) 및 주 코디네이터(400)로 간단히 지칭할 수 있다. 또는, 브로커 노드(200), 복수의 웨어하우스 노드(310, 320) 및 주 코디네이터 노드(400)를 각각 브로커 모듈(200), 복수의 웨어하우스 모듈(310, 320) 및 주 코디네이터 모듈(400)로 지칭할 수도 있다. 응용에 따라, 전술한 모듈 (또는 노드)들은 별도의 기기로 구현될 수도 있다. 이에 따라, 브로커 노드(200), 복수의 웨어하우스 노드(310, 320) 및 주 코디네이터 노드(400)를 각각 브로커 기기(200), 복수의 웨어하우스 기기(310, 320) 및 주 코디네이터 기기(400)로 지칭할 수도 있다.
도 1을 참조하면, 본 발명에 따른 데이터 복제 및 복구 시스템은 주 코디네이터(400), 브로커(200), 웨어하우스(300)의 3가지 노드로 구성된 데이터 처리 클러스터를 구성한다. 이와 관련하여, 주 코디네이터(400)와 보조 코디네이터(500)를 클러스터 코디네이터로 지칭할 수도 있다. 또는, 주 코디네이터(400)만을 클러스터 코디네이터로 지칭할 수도 있다. 각 노드의 역할은 다음과 같다.
- 클러스터 코디네이터 : 클러스터 정보를 유지하고, 각 노드들의 연결정보를 확인하여 장애 여부를 판단하고, 노드들에게 스냅샷, 복제 등의 명령을 수행한다. 고가용성을 위해 클러스터에는 두 대 까지의 클러스터코디네이트 노드를 설치할 수 있다.
- 브로커 : 사용자와 데이터베이스 처리 프로토콜로 연결되어 있으며 사용자의 입력, 검색 등의 요청을 처리한다. 입력된 데이터는 연결되어 있는 웨어하우스 노드에게 전달하여 저장하고, 검색은 검색 조건절을 웨어하우스에 전송하고, 그 결과를 취합하여 사용자에게 전달하는 역할을 수행한다.
- 웨어하우스 : 브로커의 입력요청에 따라 데이터를 디스크에 저장하고 인덱스를 생성한다. 브로커의 검색요청에 따라 데이터를 검색한다. 이 때, 검색에 필요한 색인이 생성되어 있다면 그 인덱스를 이용한 색인을 수행할 수 있다. 집합함수나 정렬의 수행을 요청받으면 웨어하우스는 자체적으로 저장되어 있는 데이터에 대한 집합함수를 수행하거나 정렬을 수행하고 그 결과를 브로커 노드에 전달한다.
한편, 동일한 데이터를 갖는 두개 이상의 웨어하우스 노드들을 그룹으로 명명하며, 그룹 내에 특정 노드에 장애가 발생하거나, 신규 웨어하우스 노드 추가시 같은 그룹 내의 노드에서 데이터를 복제하도록 한다.
도 2를 참조하면, 스냅샷 기반의 데이터 복제 및 복구 방법은 데이터 복제 과정(S100), 스냅샷 생성 과정(S200) 및 데이터 복구 과정(S300)을 포함하도록 구성될 수 있다. 전술한 각각의 과정에서 수행되는 동작에 대해 설명하면 다음과 같다.
데이터 복제 과정(S100): 클라이언트 응용에서 브로커에게 전달한 데이터를 입력받으면, 브로커는 그 데이터를 저장할 그룹을 결정한다. 그룹은 데이터의 키값에 의해 결정될 수도 있고, 여러 개의 그룹을 라운드 로빈 형태로 돌려가면서 결정할 수도 있다.
데이터를 입력할 그룹을 결정했다면, 그 그룹에 소속된 모든 웨어하우스 노드들에게 동일한 데이터(클라이언트 응용에서 전달받은 데이터)를 동시에 전송한다. 전송이 끝나기 전에 그 그룹내의 특정 노드에 장애가 발생하더라도 그룹 내의 모든 노드가 동시에 장애가 발생하지 않으면 최소 하나의 노드에는 입력 데이터를 전송하는 것이 보장된다.
스냅샷 생성 과정(S200): 데이터를 동시에 여러 웨어하우스에서 저장하는 경우, 같은 그룹 내의 웨어하우스 내에 입력된 데이터는 순서를 보장하지 않는다. 이는 다수의 사용자 응용이 다수의 브로커에 접속하여 데이터를 각각 입력할 경우, 입력되는 데이터의 순서를 맞추는 것이 거의 불가능하다. 이로 인하여, 같은 그룹 내의 웨어하우스 1에는 1-2-3의 순으로 웨어하우스 2에는 3-2-1의 순으로 데이터가 입력될 수 있다.
한편, 본 발명에 따른 브로커 노드, 주 코디네이터 노드 및 웨어하우스 노드 간에 스냅샷 생성 과정을 각 노드 간에 표시하면 다음과 같다. 이와 관련하여, 도 3은 본 발명에 따른 브로커 노드, 주 코디네이터 노드 및 웨어하우스 노드 간에 수행되는 일련의 스냅샷 생성 과정을 나타낸다. 일 예로, 주 코디네이터 노드(400)가 제1 및 제2 웨어하우스 노드(310a, 310b)에게 쓰기 금지 명령을 전달하고, 브로커 노드(200)에게 스냅샷 명령을 전달할 수 있다. 이에 따라, 브로커 노드(200)는 제1 및 제2 웨어하우스 노드(310a, 310b)로의 입력 버퍼 전송을 완료할 숭 있다. 이에 따라, 브로커 노드(200)는 브로커 스냅샷 완료 메시지를 주 코디네이터 노드(400)로 전송할 수 있다.
한편, 도 4는 본 발명에 따른 브로커 스냅샷 완료 이후, 특정 웨어하우스 노드와 주 코디네이터 간에 수행되는 스냅샷 실행 요청, 스냅샷 정보 저장 및 스냅샷 완료 응답 과정을 나타낸다. 일 예로, 주 코디네이터 노드(400)는 제1 웨어하우스 노드(310a)로 스냅샷 실행 요청 <snapshot1>을 전달할 수 있지만, 이에 한정되는 것은 아니다. 다른 예로, 주 코디네이터 노드(400)는 제2 웨어하우스 노드(310b)로 스냅샷 실행 요청 <snapshot2>을 전달할 수도 있다. 한편, 스냅샷 실행 요청 <snapshot1>을 수신한 제1 웨어하우스 노드(310a)는 입력 데이터를 디스크에 반영하도록 스냅샷 정보를 저장할 수 있다. 제1 웨어하우스 노드(310a)가 스냅샷 정보를 <snapshot1, table1, endrid1>, <snapshot1, table1, endrid2>와 같은 방식으로 저장할 수 있다. 이 경우, table1, endrid1의 의미는 제1 테이블에서 마지막으로 저장된 RID (relative identifier)를 의미한다. 여기서, 여기서, RID 정보는 도메인 내의 그룹 또는 계정을 유일하게 식별할 수 있는 보안 ID (security ID, SID)의 일부에 해당하는 relative identifier일 수 있지만, 이에 한정되는 것은 아니다. 이에 따라, 스냅샷 정보를 저장한 제1 웨어하우스 노드(310a)는 주 코디네이터 노드(400)로 스냅샷 완료 응답 메시지를 전달할 수 있다.
또한, 도 5는 본 발명에 따른 스냅샷 성공 이후, 브로커 노드, 주 코디네이터 노드 및 웨어하우스 노드 간에 수행되는 정보 기록, 복제 및 쓰기 금지 해제 과정을 나타낸다. 이와 관련하여, 제1 및 제2 웨어하우스 노드(310a, 310b)이 스냅샷 성공 메시지를 주 코디네이터 노드(400)에게 전달하면, 주 코디네이터 노드(400)는 성공한 스냅샷 정보를 <snapshot1, group1, '2020-01-01'>과 같은 형식으로 기록할 수 있다. 이에 따라, 주 코디네이터 노드(400)는 스냅샷 완료 정보가 보조 코디네이터 노드(500)로 복제되도록 메시지를 전달할 수 있다. 이후, 주 코디네이터 노드(400)는 제1 및 제2 웨어하우스 노드(310a, 310b)로 쓰기 금지 해제 관련된 메시지를 전송할 수 있다.
도 1 내지 도 5를 참조하면, 본 발명에 따른 스냅샷 생성 과정에 대해 상세하게 설명하면 다음과 같다.
- 같은 그룹 내의 웨어하우스들이 저장하고 있는 데이터가 특정 시점에 순서는 다르더라도 같은 데이터를 갖는 지점을 만들고, 그 시점의 정보를 저장해 두는 것을 스냅샷이라고 정의한다. 스냅샷은 다음의 방법으로 생성한다.
- 일정 주기마다 주 코디네이터는 스냅샷을 실행할 그룹의 웨어하우스들을 쓰기 금지 모드로 바꾸고, 브로커들에게 스냅샷의 생성을 명령한다. 쓰기 금지 모드로 바뀐 웨어하우스에 대해서는 브로커 노드에서 신규로 데이터를 입력하지는 않지만, 통신 버퍼에 남아 있는 입력 데이터는 웨어하우스에 전달한다.
- 스냅샷 명령을 받은 브로커 노드는 해당 그룹에 대한 데이터 전송이 종료됨을 확인하고, 해당 그룹에 대한 데이터 입력을 중지한다. 이후 주 코디네이터에게 브로커 스냅샷 완료를 전송한다.
- 주 코디네이터는 클러스터 내의 모든 브로커들에게 브로커 스냅샷 완료를 전송받으면, 스냅샷을 수행할 그룹 내의 웨어하우스들에게 스냅샷 실행을 명령한다. 이 명령은 <스냅샷 식별자>를 같이 전달한다.
- 스냅샷 명령을 받은 웨어하우스 노드는 입력 버퍼에 있는 데이터를 모두 디스크에 반영하고, 저장하고 있는 모든 테이블의 마지막 RID값을 스냅샷 메타 테이블에 기록한다. 스냅샷 메타 테이블은 <스냅샷 식별자, 테이블 식별자, RID>를 레코드로 하는 테이블이다. 이후 웨어하우스 노드는 스냅샷의 완료를 주 코디네이터에게 전송한다.
- 스냅샷을 수행한 그룹의 모든 웨어하우스 노드들에게 스냅샷 완료를 수신한 주 코디네이터는 해당 스냅샷을 성공으로 간주하고 성공한 스냅샷에 대한 정보를 기록하는 메타 테이블에 <스냅샷 식별자, 그룹 식별자, 수행 시간>을 메타 테이블에 기록한다. 이후 이 정보를 보조 코디네이터에도 전달하여 스냅샷 정보를 복제한다. 스냅샷을 성공한 그룹에 쓰기 금지를 해제한다.
- 스냅샷 수행중에 장애나 오류가 발생한다면, 주 코디네이터는 스냅샷을 수행한 그룹의 쓰기 금지를 해제하여 읽기 쓰기 모드로 전환하고, 일정 시간이 지난 후에 스냅샷을 재 시도한다.
이와 같이 스냅샷을 수행하면 스냅샷을 수행한 그룹내의 웨어하우스 노드가 유지하는 데이터는 입력 순서는 상이하나 그 시점까지의 데이터는 동일한 값을 갖는다.
한편, 데이터 복구 과정(S300)은 다음과 같이 구성될 수 있다.
- 웨어하우스 노드에 장애가 발생하면, 이를 감지한 코디네이터 노드는 장애가 발생한 웨어하우스를 포함한 그룹을 쓰기 금지로 전환한다.
- 장애가 발생한 노드를 복구하면 복구를 수행하는 웨어하우스 노드는 코디네이터에게 마지막으로 성공한 스냅샷의 정보를 요청한다.
- 코디네이터 노드는 웨어하우스가 속한 그룹의 식별자 정보를 메타정보에서 얻어내고, 그 그룹이 마지막으로 성공한 스냅샷의 식별자를 얻어서 복구를 수행할 노드에 전송한다.
- 복구를 수행하는 웨어하우스 노드는 전달받은 스냅샷 식별자를 이용하여 해당 식별자를 갖는 <테이블 식별자, RID>에 대해서 해당 테이블의 RID이후의 데이터들을 삭제한다. 마지막으로 성공한 이후의 데이터는 같은 그룹내의 다른 노드와 입력된 순서가 다르기 때문에 이후 데이터는 다시 전송을 받아야 한다.
- 복구를 수행하는 노드는 같은 그룹 내의 정상 상태의 노드에게 <스냅샷 식별자>를 전송하고 복구를 위한 데이터 전송을 요청한다.
- 데이터를 전송하는 노드는 전달받은 <스냅샷 식별자>를 이용하여 자신의 스냅샷 정보로부터 <테이블 식별자, RID>를 읽어들여서 해당 테이블의 RID이후의 데이터를 전송한다.
- 복구를 수행하는 노드는 전달받은 <테이블 식별자>를 갖는 테이블에 대해서 전달받은 데이터를 다시 입력한다.
- 모든 테이블에 대해서 위의 과정을 수행한 후, 코디네이터 노드에 복구의 완료를 전달한다.
- 코디네이터 노드는 복구가 완료된 노드가 속한 그룹에 대한 쓰기 금지를 해제한다.
이상에서는 본 발명에 따른 스냅샷 기반의 데이터 복제 및 복구 방법 및 이를 수행하는 데이터 복제 및 복구 시스템에 대해 설명하였다. 이하에서는 본 발명에서 청구하고자 하는 스냅샷 기반의 데이터 복제 및 복구 방법의 상세 동작에 대해 설명하기로 한다. 전술한 모든 설명이 이하의 스냅샷 기반의 데이터 복제 및 복구 방법에 적용될 수 있다.
도 1 내지 도 5를 참조하면, 데이터 복제 과정(S100)에서, 클라이언트 응용 모듈(100)에서 복수의 브로커 노드(200)에게 데이터를 전달하면, 브로커 노드(200)는 상기 데이터를 저장할 그룹을 결정할 수 있다. 또한, 데이터 복제 과정(S100)에서, 상기 그룹에 소속된 모든 웨어하우스 노드들에게 동일한 상기 데이터를 동시에 전송할 수 있다.
스냅샷 생성 과정(S200)에서, 일정 주기마다 주 코디네이터(400)는 스냅샷을 실행할 그룹의 웨어하우스 노드들(310, 320)을 쓰기 금지 모드로 변경하고 브로커 노드(200)에게 스냅샷의 생성을 명령할 수 있다. 스냅샷 생성 과정(S200)에서, 브로커 노드(200)는 해당 그룹에 대한 데이터 전송이 종료됨을 확인하고 해당 그룹에 대한 데이터 입력을 중지하고 주 코디네이터(400)에게 브로커 스냅샷 완료를 전송할 수 있다.
한편, 데이터 복구 과정(S300)에서, 장애가 발생한 웨어하우스 노드(310a)의 장애가 복구되면 웨어하우스 노드는 주 코디네이터 노드(400)에게 마지막으로 성공한 스냅샷 정보를 요청할 수 있다. 또한, 주 코디네이터 노드(400)는 웨어하우스 노드(310a)가 속한 그룹이 마지막으로 성공한 스냅샷 식별자를 데이터 복구를 수행할 웨어하우스 노드(310a, 310b)에 전송할 수 있다. 또한, 웨어하우스 노드는 스냅샷 식별자(310a, 310b)를 이용하여 스냅샷 정보로부터 <테이블 식별자, RID>를 읽어들여서 해당 테이블의 RID이후의 데이터를 전송할 수 있다.
한편, 스냅샷 생성 과정(S200)에서, 주 코디네이터(400)는 클러스터 내의 모든 브로커들(200a, 200b)에게 브로커 스냅샷 완료를 전송받으면, 스냅샷을 수행할 그룹 내의 웨어하우스들에게 스냅샷 실행 명령을 전송하고, 상기 스냅샷 실행 명령을 전송 시 스냅샷 식별자를 같이 전달할 수 있다. 또한, 스냅샷 실행 명령을 수신한 웨어하우스 노드(310a)는 입력 버퍼에 있는 데이터를 모두 디스크에 반영하고, 저장하고 있는 모든 테이블의 마지막 RID값을 스냅샷 메타 테이블에 기록할 수 있다. 이와 관련하여, 상기 스냅샷 메타 테이블은 <스냅샷 식별자, 테이블 식별자, RID>를 레코드로 하는 테이블일 수 있다. 이 경우, 스냅샷 생성 과정(S200)에서, 웨어하우스 노드(310a)는 스냅샷의 완료를 주 코디네이터 노드(400)에게 전송할 수 있다. 한편, 스냅샷을 수행한 그룹의 모든 웨어하우스 노드들(310a, 310b)로부터 스냅샷 완료를 수신한 주 코디네이터 노드(400)는 해당 스냅샷을 성공으로 간주하고 성공한 스냅샷에 대한 정보를 기록할 수 있다.
한편, 스냅샷 생성 과정(S300)에서, 주 코디네이터 노드(400)는 성공한 스냅샷에 대한 정보에 기반하여 <스냅샷 식별자, 그룹 식별자, 수행 시간>을 메타 테이블에 기록할 수 있다. 또한, 주 코디네이터 노드(400)는 메타 테이블에 기록된 정보를 보조 코디네이터(500)에도 전달하여 스냅샷 정보를 복제하고, 스냅샷을 성공한 그룹에 대한 쓰기 금지를 해제할 수 있다.
한편, 스냅샷 생성 과정(S300)에서, 스냅샷 수행 중에 장애나 오류가 발생한다면, 주 코디네이터 노드(400)는 스냅샷을 수행한 그룹의 쓰기 금지를 해제하여 읽기 쓰기 모드로 전환하고, 일정 시간이 지난 후에 스냅샷을 재 시도할 수 있다. 이와 관련하여, 스냅샷이 수행된 그룹 내의 웨어하우스 노드(310a, 310b)가 유지하는 데이터는 입력 순서는 상이하고, 스냅샷의 장애나 오류가 발생하기 이전 시점까지의 데이터는 동일한 값을 갖는 것을 특징으로 한다.
한편, 데이터 복구 과정(S300)에서, 복구를 수행하는 웨어하우스 노드(310a)는 전달받은 <테이블 식별자>를 갖는 테이블에 대해서 전달받은 데이터를 재입력할 수 있다. 또한, 웨어하우스 노드(310a)는 모든 테이블에 대해서 데이터 재입력 과정을 수행한 후 주 코디네이터 노드(400)에 복구 완료 메시지를 전달할 수 있다. 또한, 데이터 복구 과정(S300)에서, 주 코디네이터 노드(400)는 복구가 완료된 노드가 속한 그룹에 대한 쓰기 금지를 해제할 수 있다.
전술한 복수의 구성 요소와 관련하여, 각 그룹은 동일한 데이터를 갖는 둘 이상의 웨어하우스 노드들을 포함할 수 있다. 이와 관련하여, 주 코디네이터 노드(400)는 각 그룹에 대한 클러스터 정보를 유지하고, 각 노드들의 연결정보를 확인하여 장애 여부를 판단하고, 노드들에게 스냅샷 명령 및 복제 명령을 수행할 수 있다. 또한, 주 코디네이터 노드(400)는 각 그룹 내의 특정 노드에 장애가 발생하거나, 신규 웨어하우스 노드 추가 시 동일한 그룹 내의 노드에서 데이터를 복제하도록 제어할 수 있다.
한편, 브로커 노드(200a, 200b)는 사용자의 클라이언트 단말(100)과 데이터베이스 처리 프로토콜로 연결되어 있으며 클라이언트 단말(100)의 입력, 검색 요청을 처리할 수 있다. 또한, 브로커 노드(200a, 200b)는 클라이언트 단말(100)로부터 입력된 데이터를 연결되어 있는 웨어하우스 노드(300)에게 전달하여 저장할 수 있다. 또한, 브로커 노드(200a, 200b)는 검색 요청에 따른 검색 조건절을 웨어하우스 노드에 전송하고, 검색 결과를 취합하여 클라이언트 단말(100)에게 전달하도록 구성될 수 있다.
한편, 웨어하우스 노드(300)는 브로커 노드(200a, 200b)의 입력요청에 따라 데이터를 디스크에 저장하고 인덱스를 생성하고, 브로커 노드(200a, 200b)의 검색요청에 따라 데이터를 검색할 수 있다. 또한, 웨어하우스 노드(300)는 검색에 필요한 인덱스가 생성되어 있다면, 인덱스를 이용한 검색을 수행하고, 집합함수나 정렬의 수행을 요청받으면 웨어하우스 노드(300)는 자체적으로 저장되어 있는 데이터에 대한 집합함수를 수행하거나 정렬을 수행할 수 있다. 이에 따라, 웨어하우스 노드(300)는 정렬 수행 결과를 브로커 노드(200a, 200b)에 전달하도록 구성될 수 있다.
이상에서는 본 발명에 따른 스냅샷 기반의 데이터 복제 및 복구 방법에 대해 설명하였다. 본 발명에 따른 기술적 효과에 대해 살펴보면 다음과 같다.
본 발명에 따르면, 데이터 복제를 통한 고가용성 지원에서, 특정 저장 노드가 비정상 종료하더라도 데이터의 유실을 없앨 수 있다.
또한, 본 발명에 따르면, 데이터의 순서가 보장되지 않는 환경에서 복구에 소요되는 시간을 줄이면서도 정확한 데이터의 복제를 수행할 수 있다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능뿐만 아니라 각각의 구성 요소들에 대한 설계 및 파라미터 최적화는 별도의 소프트웨어 모듈로도 구현될 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리에 저장되고, 제어부(controller) 또는 프로세서(processor)에 의해 실행될 수 있다.

Claims (10)

  1. 스냅샷 기반의 데이터 복제 및 복구 방법에 있어서, 상기 방법은 데이터 복제 및 복구 시스템에 의해 수행되고, 상기 방법은,
    클라이언트 응용 모듈에서 복수의 브로커 노드에게 데이터를 전달하면, 상기 브로커 노드는 상기 데이터를 저장할 그룹을 결정하고, 상기 그룹에 소속된 모든 웨어하우스 노드들에게 동일한 상기 데이터를 동시에 전송하는 데이터 복제 과정;
    일정 주기마다 주 코디네이터 노드는 스냅샷을 실행할 그룹의 웨어하우스 노드들을 쓰기 금지 모드로 변경하고 브로커 노드에게 스냅샷의 생성을 명령하고, 브로커 노드는 해당 그룹에 대한 데이터 전송이 종료됨을 확인하고 해당 그룹에 대한 데이터 입력을 중지하고 주 코디네이터 노드에게 브로커 스냅샷 완료를 전송하는 스냅샷 생성 과정; 및
    장애가 발생한 웨어하우스 노드의 장애가 복구되면 웨어하우스 노드는 주 코디네이터 노드에게 마지막으로 성공한 스냅샷 정보를 요청하고, 주 코디네이터 노드는 웨어하우스가 속한 그룹이 마지막으로 성공한 스냅샷 식별자를 데이터 복구를 수행할 웨어하우스 노드에 전송하고, 웨어하우스 노드는 스냅샷 식별자를 이용하여 스냅샷 정보로부터 <테이블 식별자, RID>를 읽어들여서 해당 테이블의 RID이후의 데이터를 전송하는 데이터 복구 과정을 포함하는, 데이터 복제 및 복구 방법.
  2. 제1항에 있어서,
    상기 스냅샷 생성 과정에서,
    주 코디네이터 노드는 클러스터 내의 모든 브로커들에게 브로커 스냅샷 완료를 전송받으면, 스냅샷을 수행할 그룹 내의 웨어하우스들에게 스냅샷 실행 명령을 전송하고, 상기 스냅샷 실행 명령을 전송 시 스냅샷 식별자를 같이 전달하고
    스냅샷 실행 명령을 수신한 웨어하우스 노드는 입력 버퍼에 있는 데이터를 모두 디스크에 반영하고, 저장하고 있는 모든 테이블의 마지막 RID값을 스냅샷 메타 테이블에 기록하는, 데이터 복제 및 복구 방법.
  3. 제2항에 있어서,
    상기 스냅샷 메타 테이블은 <스냅샷 식별자, 테이블 식별자, RID>를 레코드로 하는 테이블이고,
    상기 스냅샷 생성 과정에서,
    웨어하우스 노드는 스냅샷의 완료를 주 코디네이터 노드에게 전송하고, 스냅샷을 수행한 그룹의 모든 웨어하우스 노드들로부터 스냅샷 완료를 수신한 주 코디네이터 노드는 해당 스냅샷을 성공으로 간주하고 성공한 스냅샷에 대한 정보를 기록하는, 데이터 복제 및 복구 방법.
  4. 제3항에 있어서,

    상기 스냅샷 생성 과정에서,
    주 코디네이터 노드는 성공한 스냅샷에 대한 정보에 기반하여 <스냅샷 식별자, 그룹 식별자, 수행 시간>을 메타 테이블에 기록하고,
    메타 테이블에 기록된 정보를 보조 코디네이터 노드에도 전달하여 스냅샷 정보를 복제하고, 스냅샷을 성공한 그룹에 대한 쓰기 금지를 해제하는, 데이터 복제 및 복구 방법.
  5. 제1항에 있어서,
    상기 스냅샷 생성 과정에서,
    스냅샷 수행 중에 장애나 오류가 발생한다면, 주 코디네이터 노드는 스냅샷을 수행한 그룹의 쓰기 금지를 해제하여 읽기 쓰기 모드로 전환하고, 일정 시간이 지난 후에 스냅샷을 재 시도하고,
    스냅샷이 수행된 그룹 내의 웨어하우스 노드가 유지하는 데이터는 입력 순서는 상이하고, 스냅샷의 장애나 오류가 발생하기 이전 시점까지의 데이터는 동일한 값을 갖는 것을 특징으로 하는, 데이터 복제 및 복구 방법.
  6. 제1항에 있어서,
    상기 데이터 복구 과정에서,
    복구를 수행하는 웨어하우스 노드는 전달받은 <테이블 식별자>를 갖는 테이블에 대해서 전달받은 데이터를 재입력하고, 모든 테이블에 대해서 데이터 재입력 과정을 수행한 후 주 코디네이터 노드에 복구 완료 메시지를 전달하는, 데이터 복제 및 복구 방법.
  7. 제6항에 있어서,
    상기 데이터 복구 과정에서,
    주 코디네이터 노드는 복구가 완료된 노드가 속한 그룹에 대한 쓰기 금지를 해제하는, 데이터 복제 및 복구 방법.
  8. 제1항에 있어서,
    각 그룹은 동일한 데이터를 갖는 둘 이상의 웨어하우스 노드들을 포함하고,
    상기 주 코디네이터 노드는,
    각 그룹에 대한 클러스터 정보를 유지하고, 각 노드들의 연결정보를 확인하여 장애 여부를 판단하고, 노드들에게 스냅샷 명령 및 복제 명령을 수행하고,
    각 그룹 내의 특정 노드에 장애가 발생하거나, 신규 웨어하우스 노드 추가 시 동일한 그룹 내의 노드에서 데이터를 복제하도록 제어하는, 데이터 복제 및 복구 방법.
  9. 제1항에 있어서,
    상기 브로커 노드는,
    사용자의 클라이언트 단말과 데이터베이스 처리 프로토콜로 연결되어 있으며 클라이언트 단말의 입력, 검색 요청을 처리하고, 클라이언트 단말로부터 입력된 데이터를 연결되어 있는 웨어하우스 노드에게 전달하여 저장하고, 검색 요청에 따른 검색 조건절을 웨어하우스 노드에 전송하고, 검색 결과를 취합하여 클라이언트 단말에게 전달하도록 구성된, 데이터 복제 및 복구 방법.
  10. 제1항에 있어서,
    상기 웨어하우스 노드는,
    브로커 노드의 입력요청에 따라 데이터를 디스크에 저장하고 인덱스를 생성하고, 브로커 노드의 검색요청에 따라 데이터를 검색하고,
    검색에 필요한 인덱스가 생성되어 있다면, 인덱스를 이용한 검색을 수행하고, 집합함수나 정렬의 수행을 요청받으면 웨어하우스 노드는 자체적으로 저장되어 있는 데이터에 대한 집합함수를 수행하거나 정렬을 수행하고, 정렬 수행 결과를 브로커 노드에 전달하도록 구성된, 데이터 복제 및 복구 방법.
KR1020200141511A 2020-10-28 2020-10-28 스냅샷 기반의 데이터 복제 및 복구 방법 KR102369655B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200141511A KR102369655B1 (ko) 2020-10-28 2020-10-28 스냅샷 기반의 데이터 복제 및 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200141511A KR102369655B1 (ko) 2020-10-28 2020-10-28 스냅샷 기반의 데이터 복제 및 복구 방법

Publications (1)

Publication Number Publication Date
KR102369655B1 true KR102369655B1 (ko) 2022-03-03

Family

ID=80818634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200141511A KR102369655B1 (ko) 2020-10-28 2020-10-28 스냅샷 기반의 데이터 복제 및 복구 방법

Country Status (1)

Country Link
KR (1) KR102369655B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082826A (ja) * 2000-06-27 2002-03-22 Fujitsu Ltd データベースシステム
JP2005276094A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd 分散ストレージ装置のファイル管理方法及び分散ストレージシステム並びにプログラム
US20080215643A1 (en) * 2003-09-16 2008-09-04 Hitachi, Ltd. Mapping Apparatus for Backup and Restoration of Multi-Generation Recovered Snapshots
KR101086116B1 (ko) * 2004-02-25 2011-11-25 마이크로소프트 코포레이션 데이터베이스 데이터 복구 시스템 및 방법
KR20190020548A (ko) * 2017-08-21 2019-03-04 신명진 클라이언트 통합 관리 서버

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002082826A (ja) * 2000-06-27 2002-03-22 Fujitsu Ltd データベースシステム
US20080215643A1 (en) * 2003-09-16 2008-09-04 Hitachi, Ltd. Mapping Apparatus for Backup and Restoration of Multi-Generation Recovered Snapshots
KR101086116B1 (ko) * 2004-02-25 2011-11-25 마이크로소프트 코포레이션 데이터베이스 데이터 복구 시스템 및 방법
JP2005276094A (ja) * 2004-03-26 2005-10-06 Hitachi Ltd 分散ストレージ装置のファイル管理方法及び分散ストレージシステム並びにプログラム
KR20190020548A (ko) * 2017-08-21 2019-03-04 신명진 클라이언트 통합 관리 서버

Similar Documents

Publication Publication Date Title
US7337286B1 (en) Storage control system for restoring a remote data copy
US8103937B1 (en) Cas command network replication
US6934877B2 (en) Data backup/recovery system
KR101150127B1 (ko) 데이터 보호 시스템에서 데이터를 보호하기 위한 아카이브루틴을 생성하는 방법, 시스템 및 장치
US6950915B2 (en) Data storage subsystem
US7085901B2 (en) Storage apparatus and method for optimal snapshot transfer
US8775394B2 (en) Transactional failover of data sets
US8214685B2 (en) Recovering from a backup copy of data in a multi-site storage system
US20020007470A1 (en) File server storage arrangement
US7882316B2 (en) Shared data mirroring apparatus, method, and system
US20060161732A1 (en) Disk array apparatus and disk array apparatus control method
MXPA06005797A (es) Sistema y metodo para la recuperacion en caso de fallas.
US8024537B2 (en) Storage system, remote copy and management method therefor
US7702757B2 (en) Method, apparatus and program storage device for providing control to a networked storage architecture
US20060047997A1 (en) Systems and methods for event driven recovery management
CN101883135A (zh) 选择性镜像方法
US11494271B2 (en) Dynamically updating database archive log dependency and backup copy recoverability
CN105049258A (zh) 网络容灾系统的数据传输方法
CN110121694B (zh) 一种日志管理方法、服务器和数据库系统
JP4549709B2 (ja) ストレージ装置
US7013317B2 (en) Method for backup and storage system
US20080263079A1 (en) Data recovery in an enterprise data storage system
CN110121712B (zh) 一种日志管理方法、服务器和数据库系统
US11966297B2 (en) Identifying database archive log dependency and backup copy recoverability
KR102369655B1 (ko) 스냅샷 기반의 데이터 복제 및 복구 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant