KR102441997B1 - 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법 - Google Patents

네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법 Download PDF

Info

Publication number
KR102441997B1
KR102441997B1 KR1020170144917A KR20170144917A KR102441997B1 KR 102441997 B1 KR102441997 B1 KR 102441997B1 KR 1020170144917 A KR1020170144917 A KR 1020170144917A KR 20170144917 A KR20170144917 A KR 20170144917A KR 102441997 B1 KR102441997 B1 KR 102441997B1
Authority
KR
South Korea
Prior art keywords
journal
metadata
resynchronization
synchronization
transaction
Prior art date
Application number
KR1020170144917A
Other languages
English (en)
Other versions
KR20190049266A (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 한국전자통신연구원
Priority to KR1020170144917A priority Critical patent/KR102441997B1/ko
Priority to US16/158,088 priority patent/US20190129976A1/en
Publication of KR20190049266A publication Critical patent/KR20190049266A/ko
Application granted granted Critical
Publication of KR102441997B1 publication Critical patent/KR102441997B1/ko

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • 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/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • 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/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명의 일 실시예는, 클라이언트로부터 수신한 메타데이터의 연산 요청에 상응하는 트랜잭션을 생성하는 트랜잭션 생성부; 상기 트랜잭션을 저널에 저장하는 저널 관리부; 연결된 다른 노드의 외부 저널과 상기 저널을 비교하여 불일치 부분만을 송수신하여 상기 저널을 동기화하는 저널 동기화부; 및 상기 메타데이터에 대하여 상기 연산 요청 또는 상기 트랜잭션을 처리하는 연산 처리부를 포함하는, 메타데이터의 동기화를 제어하는 장치를 제공한다.

Description

네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법 {APPARATUS FOR CONTROLLING SYNCHRONIZATION OF METADATA ON NETWORK AND METHOD FOR THE SAME}
본 발명은 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 메타데이터가 지속적으로 갱신되는 경우에 효율적으로 동기화가 이루어질 수 있도록 동기화 과정을 제어하는 장치 및 그 방법에 관한 것이다.
분산 파일 시스템에서 메타데이터를 관리하는 노드는 그 노드의 가용성(availability)을 위하여 그 메타데이터를 별도의 노드에 복제하는 방식을 사용하는데, 메타데이터의 내용을 테이블(table) 파일에 저장하고, 그 메타데이터의 갱신 과정을 트랜잭션(transaction)으로 처리하기 위하여 별도의 저널(journal) 파일을 사용한다. 이러한 구조의 분산 파일 시스템에서는 파일을 생성/수정/삭제할 때 그 파일에 대응되는 메타데이터도 생성/수정/삭제하여야 하는데, 파일시스템의 일관성과 보존성을 위하여 그러한 메타데이터 연산을 트랜잭션으로 처리한다. 하나의 메타데이터 연산을 트랜잭션으로 수행할 때에는, 저널 파일에 해당 메타데이터 연산의 내용을 먼저 덧붙이고(append) 테이블의 내용은 저널 파일을 이용하여 갱신한다. 따라서, 저널 파일을 효율적으로 복제하고 동기화하는 것은 분산 파일 시스템의 메타데이터 가용성을 유지하는데 있어서 매우 중요하다.
그러나, 저널 파일의 내용은 끊임없이 변경되기 때문에 다른 컴퓨터에 주기적으로 복제하는 것만으로는 고장 감내(fault tolerance)를 수행할 수 없다. 만일, 원본 저널이 포함된 컴퓨터에 장애가 발생하면 복제된 저널을 소유한 컴퓨터가 즉시 메타데이터 관리의 역할을 재개해야 한다. 그러나, 원본 저널과 복제된 저널 간의 내용 불일치가 크면, 복제된 저널을 소유한 컴퓨터에서 메타데이터 관리 기능을 기동할 때 원본 저널을 소유한 컴퓨터에 최근에 이미 저장되었던 대량의 메타데이터가 손실되는 위험이 발생된다. 따라서, 지속적으로 변경되는 메타데이터를 안정적이고 효율적으로 동기화하는 방법이 필요하다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라할 수는 없다.
국내 공개특허공보 제10-2016-0123748호
본 발명의 목적은 네트워크에서 메타데이터 연산에 상응하는 저널 파일의 동기화를 통하여 메타데이터의 동기화를 제어하는 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은 동기화 대상 장치 간의 메타데이터의 불일치하는 부분에 상응하는 저널 파일의 동기화를 통하여 메타데이터의 동기화를 제어하는 장치 및 그 방법을 제공하는 것이다.
또한, 본 발명의 목적은 메타데이터 연산을 잠시 정지한 상태로 메타데이터를 동기화하는 동기적 방식을 이용하여 메타데이터의 동기화를 제어하는 장치 및 그 방법을 제공하는 것이다.
본 발명의 일 실시예는, 클라이언트로부터 수신한 메타데이터의 연산 요청에 상응하는 트랜잭션을 생성하는 트랜잭션 생성부; 상기 트랜잭션을 저널에 저장하는 저널 관리부; 연결된 다른 노드의 외부 저널과 상기 저널을 비교하여 불일치 부분만을 송수신하여 상기 저널을 동기화하는 저널 동기화부; 및 상기 메타데이터에 대하여 상기 연산 요청 또는 상기 트랜잭션을 처리하는 연산 처리부를 포함하는, 메타데이터의 동기화를 제어하는 장치를 제공한다.
이때, 상기 저널 관리부는 상기 트랜잭션을 상기 저널에 덧붙여 저장하고, 상기 저널을 기설정된 크기 단위로 나누어 관리할 수 있다.
이때, 상기 연산 처리부는 상기 연산 요청에 상응하는 상기 트랜잭션이 상기 저널에 저장된 이후에 상기 연산 요청 또는 트랜잭션을 처리하여 메타데이터의 내용을 저장하는 테이블에 반영할 수 있다.
이때, 상기 연산 처리부는 상기 동기화를 통하여 상기 저널에 변경 부분이 생긴 경우에 상기 변경 부분에 상응하는 트랜잭션들을 처리하여 상기 테이블에 반영할 수 있다.
이때, 상기 저널 동기화부는 상기 다른 노드에 장애가 발생하여 상기 저널의 동기화가 중단된 경우, 신규 노드와 상기 저널을 재동기화(resynchronization)하거나 상기 장애가 발생한 노드가 정상화될 때 상기 장애가 발생한 노드와 상기 저널을 재동기화할 수 있다.
이때, 상기 저널 동기화부는 상기 저널을 재동기화할 때, 상기 저널을 오래된 순서대로 재동기화할 수 있다.
이때, 상기 저널 동기화부는 상기 저널을 재동기화할 때, 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 유지한 채 재동기화하는 비동기적(asynchronous) 재동기화 방법 또는 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 차단한 채 재동기화하는 동기적(synchronous) 재동기화 방법을 이용할 수 있다.
이때, 상기 저널 동기화부는 상기 저널을 재동기화할 때, 상기 저널의 불일치량이 기설정된 분량을 초과하는 경우에 상기 비동기적 재동기화 방법을 이용하고, 상기 저널의 불일치량이 상기 기설정된 분량 이하인 경우에 상기 동기적 재동기화 방법을 이용할 수 있다.
이때, 상기 저널 동기화부는 상기 비동기적 재동기화 방법을 이용하여 상기 저널을 재동기화한 경우, 상기 저널을 재동기화하는 도중에 수신한 메타데이터의 신규 연산 요청을 반영하여 상기 저널의 불일치량을 재계산하고, 상기 재계산된 불일치량을 고려하여 상기 비동기적 재동기화 방법 또는 상기 동기적 재동기화 방법을 선택하여 다시 상기 저널을 재동기화할 수 있다.
이때, 상기 저널 동기화부는 상기 동기적 재동기화 방법을 이용하여 상기 저널을 재동기화할 때, 메타데이터의 신규 연산 요청을 차단하는 그레이스 기간(grace period)을 시작하고, 상기 그레이스 기간 이전에 입력된 연산 요청에 상응하는 트랜잭션이 모두 완료되면 상기 저널을 동기화하고, 상기 동기적 재동기화 방법에 의한 상기 저널의 재동기화 완료시 상기 그레이스 기간을 종료할 수 있다.
또한, 본 발명의 일 실시예는, 클라이언트로부터 수신한 메타데이터의 연산 요청에 상응하는 트랜잭션을 생성하는 단계; 상기 트랜잭션을 저널에 저장하는 단계; 연결된 다른 노드의 외부 저널과 상기 저널을 비교하여 불일치 부분만을 송수신하여 상기 저널을 동기화하는 단계; 상기 메타데이터에 대하여 상기 연산 요청 또는 상기 트랜잭션을 처리하는 단계를 포함하는, 메타데이터의 동기화를 제어하는 방법을 제공한다.
이때, 상기 저널에 저장하는 단계는 상기 트랜잭션을 상기 저널에 덧붙여 저장하고, 상기 저널을 기설정된 크기 단위로 나누어 관리할 수 있다.
이때, 상기 연산 요청 또는 상기 트랜잭션을 처리하는 단계는 상기 연산 요청에 상응하는 상기 트랜잭션이 상기 저널에 저장된 이후에 상기 연산 요청 또는 트랜잭션을 처리하여 메타데이터의 내용을 저장하는 테이블에 반영할 수 있다.
이때, 상기 연산 요청 또는 상기 트랜잭션을 처리하는 단계는 상기 동기화를 통하여 상기 저널에 변경 부분이 생긴 경우에 상기 변경 부분에 상응하는 트랜잭션들을 처리하여 상기 테이블에 반영할 수 있다.
이때, 상기 저널을 동기화하는 단계는 상기 다른 노드에 장애가 발생하여 상기 저널의 동기화가 중단된 경우, 신규 노드와 상기 저널을 재동기화(resynchronization)하거나 상기 장애가 발생한 노드가 정상화될 때 상기 장애가 발생한 노드와 상기 저널을 재동기화하는 단계를 포함할 수 있다.
이때, 상기 저널을 재동기화하는 단계는 상기 저널을 오래된 순서대로 재동기화할 수 있다.
이때, 상기 저널을 재동기화하는 단계는 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 유지한 채 재동기화하는 비동기적(asynchronous) 재동기화 방법 또는 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 차단한 채 재동기화하는 동기적(synchronous) 재동기화 방법을 이용할 수 있다.
이때, 상기 저널을 재동기화하는 단계는 상기 저널의 불일치량이 기설정된 분량을 초과하는 경우에 상기 비동기적 재동기화 방법을 이용하고, 상기 저널의 불일치량이 상기 기설정된 분량 이하인 경우에 상기 동기적 재동기화 방법을 이용할 수 있다.
이때, 상기 저널을 재동기화하는 단계는 상기 비동기적 재동기화 방법을 이용하여 상기 저널을 재동기화한 경우, 상기 저널을 재동기화하는 도중에 수신한 메타데이터의 신규 연산 요청을 반영하여 상기 저널의 불일치량을 재계산하고, 상기 재계산된 불일치량을 고려하여 상기 비동기적 재동기화 방법 또는 상기 동기적 재동기화 방법을 선택하여 다시 상기 저널을 재동기화할 수 있다.
이때, 상기 저널을 재동기화하는 단계는 상기 동기적 재동기화 방법을 이용하여 상기 저널을 재동기화할 때, 메타데이터의 신규 연산 요청을 차단하는 그레이스 기간(grace period)을 시작하고, 상기 그레이스 기간 이전에 입력된 연산 요청에 상응하는 트랜잭션이 모두 완료되면 상기 저널을 동기화하고, 상기 동기적 재동기화 방법에 의한 상기 저널의 재동기화 완료시 상기 그레이스 기간을 종료할 수 있다.
본 발명에 따르면 메타데이터의 동기화를 제어하는 장치 및 그 방법에 의해, 네트워크에서 메타데이터 연산에 상응하는 저널 파일을 동기화함으로써 메타데이터 자체를 전송하여 동기화하는 것보다 적은 자원으로 메타데이터를 동기화할 수 있다.
또한, 본 발명에 따르면 메타데이터의 동기화를 제어하는 장치 및 그 방법에 의해, 동기화 대상 장치 간의 메타데이터의 불일치하는 부분에 상응하는 저널 파일을 동기화함으로써 효율적으로 메타데이터를 동기화할 수 있다.
또한, 본 발명에 따르면 메타데이터의 동기화를 제어하는 장치 및 그 방법에 의해, 메타데이터 연산을 잠시 정지한 상태로 메타데이터를 동기화하는 동기적 방식을 이용함으로써 동기화 도중에 발생하는 메타데이터 연산에 의한 메타데이터 불일치 문제를 방지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 시스템의 구성을 나타낸 도면이다.
도 2는 도 1에 도시된 메타데이터의 동기화를 제어하는 장치의 일 예를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치와 주변 장치들의 관계를 나타낸 도면이다.
도 4는 도 3에 도시된 메타데이터 저장부들에 저장되는 데이터를 나타낸 도면이다.
도 5 및 6은 본 발명의 일 실시예에 따라 두 노드 간의 재동기화에 따른 저널의 변화 과정의 일 예를 나타낸 도면이다.
도 7은 도 5 및 6에 도시된 저널의 재동기화 과정의 일 예를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 방법을 나타낸 동작 흐름도이다.
도 9는 도 8에 도시된 저널을 동기화하는 단계의 일 예를 나타낸 동작 흐름도이다.
도 10은 도 9에 도시된 동기식 재동기화를 수행하는 단계의 일 예를 나타낸 동작 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성되어 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
본 발명은 파일의 끝에 새로운 내용이 지속적으로 부가되는 파일을 네트워크로 연결된 다른 컴퓨터에 복제하는 시스템을 대상으로 한다. 즉, 네트워크로 연결된 노드 혹은 컴퓨터들 간에 파일들을 동기화하는 시스템을 대상으로 한다.
이를 위해 본 발명에서는 메타데이터 연산을 트랜잭션으로 수행한다. 예를 들어, 새로운 파일을 생성하기 위해서는 그 파일을 위한 아이노드(inode)를 만들고, 그 파일이 소속될 부모 디렉토리에 그 아이노드에 대한 정보 값을 삽입하는 처리를 하나의 트랜잭션 내에서 처리한다. 만일, 이러한 작업을 트랜잭션으로서 처리하지 않게 되면, 메타데이터 관리 노드의 장애 발생시 신규 파일을 위한 아이노드는 만들었지만 그 아이노드의 정보가 디렉토리에 포함되지 않아 그 신규 파일을 찾지 못하는 상황 등의 다양한 문제점이 발생할 수 있다. 이와 같이 파일 시스템의 일관성(consistency)이 깨어지거나 지속성(durability)이 보존되지 않는 등과 같은 유형의 문제를 대비하기 위하여 메타데이터 연산은 트랜잭션으로 수행한다.
또한, 본 발명에서는 메타데이터 연산을 구현하기 위하여 메타데이터의 내용을 저장하는 테이블과 그 메타데이터 연산의 내용을 보관하는 저널 파일을 이용한다. 메타데이터를 저장하는 동안 발생할 수 있는 다양한 장애로부터의 복구를 가능케 하기 위하여 메타데이터 연산의 내용을 저널 파일에 먼저 기록한 이후에, 그 연산의 결과에 따른 메타데이터의 내용을 테이블 파일에 기록할 수 있다. 즉, 테이블과 저널 파일은 한 세트로써 메타데이터를 구성한다. 메타데이터가 보관되는 노드에 장애가 발생할 수 있기 때문에 그러한 메타데이터 관리 노드의 가용성을 제공하기 위해서는 그 메타데이터를 다른 노드에 복제하는 작업이 필요하다.
이때, 저널 파일과 테이블 파일은 지속적으로 변경되고 있기 때문에 메타데이터 원본과 복제본을 보관하는 노드들 간에는 메타데이터의 실시간 복제가 가능해야 한다. 그러나, 테이블과 저널의 내용을 네트워크으로 연결된 복제 노드에 모두 전송하면 그 전송량이 과다하게 된다. 따라서, 메타데이터 복제 작업에 소요되는 비효율성 때문에 원본 메타데이터를 가진 노드 본연의 기능인 메타데이터 연산 처리 능력에 부정적인 영향을 준다. 또한, 복제 관계로 맺어진 노드 중 하나의 노드에 장애가 발생하면, 나머지 노드에서 메타데이터 연산이 계속 수행되어야 하기 때문에 두 노드 간의 메타데이터 불일치는 필연적으로 발생한다. 장애가 발생했던 노드를 재기동하게 되면 그 노드의 저널과 테이블의 내용은 과거의 상태에 머물러 있기 때문에 최신 상태의 저널과 테이블의 내용으로 재동기화(resynchonization)시키는 작업이 필요하다. 그러나, 이러한 재동기화 작업 도중에도 새로운 메타데이터 연산은 계속 들어오기 때문에 이러한 현재의 메타데이터 연산 수행에 최소한의 부담을 주는 재동기화 방법이 필요하다. 이를 위하여 노드들 간의 메타데이터를 동기화할 때 메타데이터 연산에 관련된 저널 파일을 복제하는 방법을 이용하며, 구체적인 방법은 도면들과 함께 설명한다.
도 1은 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 시스템(1)의 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 시스템(1)에서 메타데이터의 동기화를 제어하는 장치(100)는 다른 하나 이상의 메타데이터의 동기화를 제어하는 장치(100) 및 클라이언트(200)와 상호 연결된다.
본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 클라이언트(200)로부터 메타데이터에 대한 연산을 요청을 받게 되면 메타데이터 연산 요청에 상응하는 트랜잭션을 생성하고, 트랜잭션을 저널에 저장하고, 상기 저널을 다른 노드의 외부 저널과 비교하여 불일치 부분만을 송수신하여 저널을 동기화한다. 그리고, 테이블에 저장된 메타데이터에 대하여 트랜잭션을 수행하여 연산 처리 결과를 반영한다. 만약, 메타데이터의 동기화를 제어하는 장치(100)가 다른 메타데이터의 동기화를 제어하는 장치(100)로부터 저널 파일을 전송 받은 경우에는, 기존의 저널 파일로부터의 변경 부분에 포함된 트랜잭션들을 수행하여 테이블에 저장하고 있는 메타데이터에 대하여 연산 처리 결과를 반영한다. 즉, 메타데이터 전체를 복제하여 동기화하지 않고 트랜잭션을 저장한 저널의 불일치 부분만을 복제함으로써 최소 비용으로 메타데이터를 복제할 수 있다. 또한, 지속적으로 메타데이터에 대하여 처리가 발생하는 경우라고 하더라도, 트랜잭션 단위로 동기화하므로 동기화 단위를 세분화할 수 있고, 장애가 발생한 경우라도 장애 해소시에 저널을 효율적으로 재동기화할 수 있다.
여기서, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 메타데이터를 관리하는 메타데이터 서버를 포함할 수 있으며, 각 메타데이터 서버는 두 개 이상이 네트워크에서 서로 연결되어 메타데이터를 동기화하여 관리한다. 본 설명의 기재에서 노드는 메타데이터의 동기화를 제어하는 장치(100)를 의미할 수 있다.
이때, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 연산 요청에 따른 트랜잭션을 저널에 덧붙여서(append) 저장한다. 따라서, 저널은 메타데이터에 대한 트랜잭션을 누적하여 보관하며, 복제된 저널의 트랜잭션들을 순서대로 처리함으로써 원하는 메타데이터의 처리 결과를 획득할 수 있다. 즉, 클라이언트(200)로부터 메타데이터 연산 요청을 수신한 메타데이터의 동기화를 제어하는 장치(100)는 메타데이터 연산 요청에 상응하는 트랜잭션을 생성하고, 생성한 트랜잭션을 저널에 덧붙여서 저장하며, 다른 메타데이터의 동기화를 제어하는 장치(100) 저널의 변경 부분만큼을 전달하여 저널을 동기화한다. 그리고 각 메타데이터의 동기화를 제어하는 장치(100)는 동일한 저널을 갖게 되므로 저널의 트랜잭션을 처리하여 동일한 메타데이터를 획득할 수 있다.
이때, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 연산 요청에 따른 트랜잭션을 저널에 반영한 이후에 트랜잭션을 처리하여 테이블에 반영할 수 있다. 이에 따라, 장애로 인하여 트랜잭션이 처리되고 저널에 반영되지 않는 문제 상황이 발생되는 것을 방지할 수 있다. 본 발명에서는 메타데이터의 동기화를 제어하는 장치(100) 간에 저널을 동기화하고 저널에 포함된 트랜잭션을 처리함으로써 메타데이터를 동일하게 유지하는 것에 특징이 있으므로, 트랜잭션을 저널에 저장하는 것이 트랜잭션을 처리하여 메타데이터의 내용을 수정하는 것보다 우선하여 처리하여 안정성을 높일 수 있다.
이때, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 다른 노드에 장애가 발생하여 저널의 동기화가 중단된 경우에는, 신규 노드와 저널을 재동기화(resynchronization)하거나 장애 발생 노드가 정상화될 때 장애 발생 노드와 저널을 재동기화할 수 있다. 여기서, 신규 노드는 백업 노드를 의미하는 것일 수 있다. 재동기화 과정은 트랜잭션 단위로 이루어지는 저널 동기화와 비교하여 동기화되는 저널의 불일치량이 상대적으로 크다. 이는, 장애 발생 노드와 재동기화를 수행하는 경우라면 장애 발생 기간에 수신한 메타데이터 연산 요청들만큼 저널의 불일치량이 커지기 때문이며, 신규 노드와 재동기화를 수행하는 경우라면 저널 전체가 재동기화 대상이 되기 때문이다.
이때, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 재동기화 과정이 진행될 때 클라이언트(200)로부터 신규 연산 요청을 수신하는지 여부에 따라 비동기적(asynchronous) 재동기화 방법과 동기적(synchronous) 재동기화 방법으로 구분하여 재동기화를 진행한다. 비동기적 재동기화 방법은 재동기화 중에도 신규 연산 요청을 수신하는 재동기화 방법으로, 다른 노드와 재동기화를 진행하는 도중에 신규 연산 요청을 수신 및 처리하므로 재동기화를 마치더라도 저널에 불일치 부분이 발생할 수 있다. 반면에 동기적 재동기화 방법은 재동기화 중에 신규 연산 요청을 차단하는 재동기화 방법으로, 다른 노드와 재동기화를 진행하는 도중에 신규 연산 요청을 차단하므로 재동기화를 마치더라도 저널에 불일치 부분이 발생하지 않는다. 비동기적 재동기화 방법을 이용하여 재동기화가 수행되는 동안에는 동시에 메타데이터 연산을 처리하므로 분산 파일 시스템의 메타데이터 가용성을 제공하게 된다.
이때, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 재동기화시 저널의 불일치량이 기설정된 분량을 초과하는 경우에는 비동기적 재동기화 방법을 이용하고, 그렇지 않은 경우에는 동기적 재동기화 방법을 이용할 수 있다. 또한, 비동기적 재동기화 방법을 수행한 이후에 다시 저널의 불일치량을 계산하고, 재계산된 저널의 불일치량에 대하여 다시 기설정된 분량을 초과하는지 여부에 따라 비동기적 재동기화 방법 또는 동기적 재동기화 방법을 이용할 수 있다. 이 과정을 반복하여 저널의 불일치량이 기설정된 분량 이하가 되면 동기적 재동기화 방법을 이용하여 양 노드 간에 저널을 동일하게 유지할 수 있고, 이에 따라 재동기화 절차를 마무리할 수 있다.
여기서, 동기적 재동기화 방법은 신규 연산 요청을 차단하기 위하여 그레이스 기간(grace period)을 설정할 수 있다. 예컨대, 동기적 재동기화 방법을 이용하는 경우에 우선 신규 연산 요청을 차단하는 기간인 그레이스 기간을 시작하고, 그레이스 기간 시작 전에 수신한 모든 신규 연산 요청이 완료될 때까지 대기하고, 모든 신규 연산 요청이 반영된 저널을 재동기화 대상으로 설정하고, 재동기화 대상 노드에 저널의 불일치 부분을 전달하여 저널을 복제하고, 그레이스 기간을 종료할 수 있다. 동기적 재동기화 방법은 저널 불일치량이 적을 때 이용되는 재동기화 방법이므로 재동기화에 소요되는 시간이 짧으며, 신규 연산 요청을 차단하더라도 상대적으로 차단되는 요청량이 적다. 동기적 재동기화 방법에 의하여 재동기화가 이루어지면 저널의 재동기화 절차는 종료되고, 다시 기존의 일반 저널 동기화 절차가 수행된다. 특히, 그레이스 기간 동안에 입력된 신규 연산 요청을 저널에 반영하지는 않지만 버퍼에 임시적으로 저장함으로써, 그레이스 기간이 종료된 후에 입력된 연산 요청을 수행할 수 있다.
클라이언트(200)는 메타데이터의 동기화를 제어하는 장치(100)와 연결된 단말 장치로, 메타데이터의 동기화를 제어하는 장치(100)에서 관리되는 메타데이터에 접근하여 연산을 요청하고 이용할 수 있는 장치를 의미한다. 클라이언트(200)는 통상적인 범용 컴퓨터나 메타데이터를 이용 및 처리 요청하는 전용 단말을 포함할 수 있다. 하나의 메타데이터의 동기화를 제어하는 장치(100)에는 복수 개의 클라이언트(200)가 연결될 수 있다.
이에 따라, 본 발명은 노드들이 네트워크로 연결된 환경에서 어떤 노드가 소유한 파일의 내용을 기반으로 특정한 서비스를 외부에 제공할 때, 특정 노드에 장애가 발생하더라도 해당 노드의 내용이 다중화된 다른 노드로 절체함으로써 원래의 서비스를 지속적으로 제공할 수 있는 환경을 구축할 수 있다.
도 2는 도 1에 도시된 메타데이터의 동기화를 제어하는 장치(100)의 일 예를 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치(100)는 제어부(110), 통신부(120), 메모리(130), 메타데이터 저장부(140), 트랜잭션 생성부(150), 저널 관리부(160), 저널 동기화부(170) 및 연산 처리부(180) 등을 포함한다.
상세히, 제어부(110)는 일종의 중앙처리장치로서 메타데이터의 동기화를 제어하는 전체 과정을 제어한다. 즉, 제어부(110)는 트랜잭션 생성부(150), 저널 관리부(160), 저널 동기화부(170) 및 연산 처리부(180) 등을 제어하여 다양한 기능을 제공할 수 있다.
여기서, 제어부(110)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
통신부(120)는 메타데이터의 동기화를 제어하는 장치(100)가 다른 메타데이터의 동기화를 제어하는 장치(100) 또는 클라이언트(도 1의 200 참조)와 신호를 송수신하는데 필요한 통신 인터페이스를 제공한다.
여기서, 통신부(120)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
메모리(130)는 제어부(110)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 여기서, 메모리(130)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
이때, 메모리(130)는 메타데이터에 대한 연산 요청을 임시 보관하는 버퍼를 포함할 수 있다.
메타데이터 저장부(140)는 관리 대상이 되는 메타데이터를 저장한다. 즉, 메타데이터 연산의 결과로서 생성되거나 수정되는 메타데이터를 보관하는 역할을 담당한다.
이때, 메타데이터 저장부(140)는 메타데이터의 연산에 상응하는 트랜잭션들을 저장하는 저널과 메타데이터의 내용을 저장하는 테이블을 구분하여 메타데이터를 저장할 수 있다.
트랜잭션 생성부(150)는 하나 이상의 클라이언트(도 1의 200 참조)들로부터 입력된 메타데이터의 연산 요청에 상응하는 트랜잭션을 생성한다. 여기서, 하나의 연산 요청에는 하나의 트랜잭션이 대응되어 생성된다.
저널 관리부(160)는 메타데이터에 대한 트랜잭션들을 저장하는 저널을 관리하며, 트랜잭션 생성부(150)에서 생성된 트랜잭션을 저널에 저장한다.
이때, 저널 관리부(160)는 트랜잭션을 저널에 덧붙여(append) 저장할 수 있다. 즉, 새로운 트랜잭션이 생성되면 이를 저널의 뒤에 덧붙임으로써, 저널로부터 기존의 트랜잭션들을 모두 확인할 수 있다.
이때, 저널 관리부(160)는 저널을 기설정된 크기 단위로 나누어 관리할 수 있다. 그리고 각 저널 파일들은 작성된 순서대로 관리될 수 있다. 예컨대, 저널 파일 1개의 한계 용량을 10KB로 설정한 경우에는 각 저널 파일이 10KB를 초과하지 않도록 나누어 트랜잭션들을 덧붙일 수 있다.
저널 동기화부(170)는 다른 노드와 저널을 복제하여 동기화한다. 상세히, 메타데이터 원본을 보유한 노드로부터 동기화 대상 노드로 메타데이터의 저널을 동기화한다.
이때, 저널 동기화부(170)는 최소 비용으로 다른 노드와 저널을 동기화하기 위하여, 다른 노드의 저널과의 불일치 부분을 판단하여 불일치 부분만을 송수신하여 저널을 복제할 수 있다. 예컨대, 노드 A의 저널에 트랜잭션 1, 트랜잭션 2 및 트랜잭션 3이 저장되어 있고, 노드 B의 저널에 트랜잭션 1 및 트랜잭션 2가 저장되어 있는 경우에는, 노드 A가 트랜잭션 3을 노드 B로 전송하여 저널을 동기화할 수 있다. 따라서, 본 노드의 저널이 다른 노드의 저널보다 내용이 많은 경우에는 상기 다른 노드로 저널의 불일치 부분을 송신하지만, 본 노드의 저널이 다른 노드의 저널보다 내용이 적은 경우에는 상기 다른 노드로부터 저널의 불일치 부분을 수신할 수 있다.
이때, 저널 동기화부(170)는 다른 노드에 장애가 발생하여 저널의 동기화가 중단된 경우에는, 신규 노드와 저널을 재동기화하거나 장애 발생 노드가 정상화될 때 상기 장애 발생 노드와 저널을 재동기화할 수 있다. 복수의 노드 간에 저널이 서로 동기화 되는데, 특정 노드가 장애가 발생하게 되는 경우에는 해당 장애 발생 노드에 대하여는 저널 동기화가 중단되게 된다.
즉, 선택에 따라 기존에 저널 동기화를 하지 않던 신규 노드에 대하여 저널을 재동기화하거나, 장애 발생 노드의 장애가 해소될 때까지 대기하였다가 장애 발생 노드와 저널을 재동기화할 수 있다. 신규 노드에 대하여 저널을 재동기화하는 과정은 메타데이터의 손실 위험을 줄이기 위하여 일종의 백업 노드를 구축하는 과정으로 볼 수 있다.
이때, 저널 동기화부(170)는 원본 메타데이터를 보관한 원본 노드 이외의 모든 동기화 대상 노드들이 장애가 발생한 경우에는, 메타데이터의 안전한 보관을 위하여 신규 노드에 대하여 저널을 재동기화할 수 있다. 신규 노드에 대하여 저널을 재동기화 한 경우, 기존의 장애 발생 노드를 동기화 대상 노드에서 제외하거나, 장애 해소시에 장애 발생 노드에 대하여도 저널을 재동기화할 수 있다.
이때, 저널 동기화부(170)는 저널을 재동기화할 때, 저널을 오래된 순서대로 재동기화할 수 있다. 저널에 트랜잭션들이 생성된 순서대로 저장되며 일정한 크기 단위로 나뉘어 저장될 수 있기 때문에, 오래된 저널 파일 순서대로 재동기화함으로써 메타데이터의 연산 요청의 순서를 유지할 수 있다.
이때, 저널 동기화부(170)는 저널을 재동기화할 때, 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 유지한 채 재동기화하는 비동기적 재동기화 방법 또는 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 차단한 채 재동기화하는 동기적 재동기화 방법을 이용할 수 있다. 비동기적 재동기화 방법은 재동기화 중에도 신규 연산 요청을 수신하는 재동기화 방법으로, 다른 노드와 재동기화를 진행하는 도중에 신규 연산 요청을 수신 및 처리하므로 재동기화를 마치더라도 저널에 불일치 부분이 발생할 수 있다. 반면에 동기적 재동기화 방법은 재동기화 중에 신규 연산 요청을 차단하는 재동기화 방법으로, 다른 노드와 재동기화를 진행하는 도중에 신규 연산 요청을 차단하므로 재동기화를 마치더라도 저널에 불일치 부분이 발생하지 않는다. 비동기적 재동기화 방법을 이용하여 재동기화가 수행되는 동안에는 동시에 메타데이터 연산을 처리하므로 분산 파일 시스템의 메타데이터 가용성을 제공하게 된다.
이때, 저널 동기화부(170)는 기설정된 횟수만큼 재동기화 방법을 수행할 수 있고, 이 경우 최후 재동기화 절차를 제외하고는 비동기적 재동기화 방법을 이용하고, 최후 재동기화 절차는 동기적 재동기화 방법을 이용할 수 있다. 예컨대, 재동기화 절차 진행시 재동기화 방법을 N 번 수행하도록 설정된 경우에는, (N-1) 번째까지는 비동기적 재동기화 방법을 이용하여 저널을 재동기화하고, N 번째에는 동기적 재동기화 방법을 이용하여 저널을 재동기화할 수 있다. 즉, 재동기화 절차의 마지막에는 동기적 재동기화 방법을 이용함으로써 저널을 동일하게 유지하여 재동기화 절차를 마무리하고 통상의 저널 동기화 단계로 복귀할 수 있다.
이때, 저널 동기화부(170)는 재동기화시 저널의 불일치량이 기설정된 분량을 초과하는 경우에는 비동기적 재동기화 방법을 이용하고, 그렇지 않은 경우에는 동기적 재동기화 방법을 이용할 수 있다. 또한, 비동기적 재동기화 방법을 수행한 이후에 다시 저널의 불일치량을 계산하고, 재계산된 저널의 불일치량에 대하여 다시 기설정된 분량을 초과하는지 여부에 따라 비동기적 재동기화 방법 또는 동기적 재동기화 방법을 이용할 수 있다. 이 과정을 반복하여 저널의 불일치량이 기설정된 분량 이하가 되면 동기적 재동기화 방법을 이용하여 양 노드 간에 저널을 동일하게 유지할 수 있고, 이에 따라 재동기화 절차를 마무리할 수 있다.
예컨대, 저널 불일치량이 1KB 이하일 경우에 동기적 재동기화 방법을 수행하도록 설정하였고, 재동기화 대상 노드와의 저널 불일치량이 10KB인 경우에는 비동기적 재동기화 방법으로 첫 번째 저널 재동기화를 수행한다. 첫 번째 저널 재동기화를 수행하는 도중에 입력된 신규 연산 요청을 고려하여 첫 번째 저널 재동기화가 완료되었을 때 저널 불일치량을 재계산하고, 만약 재계산된 저널 불일치량이 3KB인 경우에는 비동기적 재동기화 방법으로 두 번째 저널 재동기화를 수행한다. 두 번째 저널 재동기화를 수행하는 도중에 입력된 신규 연산 요청을 고려하여 두 번째 저널 재동기화가 완료되었을 때 저널 불일치량을 재계산하고, 만약 재계산된 저널 불일치량이 1KB인 경우에는, 동기적 재동기화 방법으로 세 번째 저널 재동기화 혹은 마지막 저널 재동기화를 수행한다. 세 번째 저널 재동기화는 동기적 재동기화 방법을 이용하므로 신규 연산 요청을 차단한 채로 저널을 재동기화하여 노드 간의 저널을 동일하게 유지할 수 있다.
이때, 저널 동기화부(170)는 동기적 재동기화 방법을 이용할 때, 신규 연산 요청을 차단하기 위하여 그레이스 기간을 설정할 수 있다. 예컨대, 동기적 재동기화 방법을 이용하는 경우에 우선 신규 연산 요청을 차단하는 기간인 그레이스 기간을 시작하고, 그레이스 기간 시작 전에 수신한 모든 신규 연산 요청이 완료될 때까지 대기하고, 모든 신규 연산 요청이 반영된 저널을 재동기화 대상으로 설정하고, 재동기화 대상 노드에 저널의 불일치 부분을 전달하여 저널을 복제하고, 그레이스 기간을 종료할 수 있다. 동기적 재동기화 방법은 저널 불일치량이 적을 때 이용되는 재동기화 방법이므로 재동기화에 소요되는 시간이 짧으며, 신규 연산 요청을 차단하더라도 상대적으로 차단되는 요청량이 적다. 동기적 재동기화 방법에 의하여 재동기화가 이루어지면 저널의 재동기화 절차는 종료되고, 다시 기존의 일반 저널 동기화 절차가 수행된다. 특히, 그레이스 기간 동안에 입력된 신규 연산 요청을 저널에 반영하지는 않지만 버퍼에 임시적으로 저장함으로써, 그레이스 기간이 종료된 후에 입력된 연산 요청을 수행할 수 있다.
연산 처리부(180)는 입력된 메타데이터의 연산 요청 또는 트랜잭션을 처리하여 테이블에 반영한다. 즉, 메타데이터 저장부(140)에 저장된 메타데이터에 대하여 연산을 수행하여 메타데이터 내용을 조회, 생성, 수정 또는 삭제 등의 작업을 수행한다.
이때, 연산 처리부(180)는 입력된 메타데이터의 연산 요청으로부터 직접 메타데이터에 대한 연산을 수행할 수도 있지만, 연산 요청으로부터 생성된 트랜잭션을 이용하여 메타데이터에 대한 연산을 수행할 수 있다.
이때, 연산 처리부(180)는 저널에 저장된 트랜잭션들을 오래된 순서대로 순차적으로 수행하여 메타데이터에 대한 연산 처리 결과를 테이블에 반영할 수 있다. 즉, 저널에 저장된 트랜잭션들을 리플레이(replay)하여 메타데이터를 재구성하는 역할을 수행할 수 있다.
이때, 연산 처리부(180)는 연산 요청이 입력되었을 경우에, 상기 연산 요청에 상응하는 트랜잭션이 생성되어 저널에 저장된 이후에 상기 연산 요청 혹은 상기 트랜잭션을 처리하여 테이블에 반영할 수 있다. 만약 연산 요청을 먼저 수행하였지만 해당 연산 요청에 상응하는 트랜잭션을 저널에 저장하다가 장애가 발생하게 되는 경우에는, 메타데이터에는 연산 요청의 결과가 반영되었지만 저널에는 해당 연산 요청에 상응하는 트랜잭션이 없으므로 메타데이터의 동기화가 불가능해지는 문제가 생길 수 있다. 즉, 저널에 저장된 트랜잭션을 이용하여 메타데이터에 대한 연산을 다시 복구 수행할 수 있기 때문에, 저널에 트랜잭션을 저장하는 절차를 우선적으로 처리할 수 있다.
도 3은 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 장치와 주변 장치들의 관계를 나타낸 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 메타데이터 동기화 제어 장치들(100a, 100b)는 서로 네트워크를 통해 연결된다. 메타데이터 동기화 제어 장치(100a)는 메타데이터 저장부(140a)에 메타데이터에 상응하는 저널과 테이블을 저장하고, 메타데이터 동기화 제어 장치(100b)는 메타데이터 저장부(140b)에 메타데이터에 상응하는 저널과 테이블을 저장한다. 그리고, 두 메타데이터 동기화 제어 장치들(100a, 100b)는 저널을 서로 동기화함으로써 메타데이터 저장부(140a, 140b)에 저장된 메타데이터들을 동기화한다.
클라이언트(200)는 두 메타데이터 동기화 제어 장치들(100a, 100b)과 연결하여 메타데이터에 관련된 서비스를 제공받을 수 있다. 이는 메타데이터 동기화 제어 장치들(100a, 100b)는 메타데이터 서버의 역할을 하기 때문이다. 만약, 클라이언트(200)가 메타데이터 동기화 제어 장치(100a)로부터 서비스를 제공받고 있었으나 메타데이터 동기화 제어 장치(100a)가 장애가 발생하는 경우에는, 클라이언트(200)가 메타데이터 동기화 제어 장치(100b)로부터 기존의 서비스를 연속하여 제공받을 수 있다. 이는 두 메타데이터 동기화 제어 장치(100a, 100b)가 서로 메타데이터를 동기화하여 유지하기 때문에 가능하다.
도 4는 도 3에 도시된 메타데이터 저장부(140a, 140b)들에 저장되는 데이터를 나타낸 도면이다.
도 4를 참조하면, 도 3에 도시된 메타데이터 저장부들(140a, 140b)에는 메타데이터의 내용을 저장하는 테이블(41a, 41b)과 메타데이터의 연산 요청에 상응하는 트랜잭션들을 저장하는 저널(42a, 42b)이 저장된다.
이때, 전술한 바와 같이, 메타데이터에 대한 연산 요청이 입력되면 먼저 트랜잭션을 생성하여 저널에 저장하고, 그 다음에 메타데이터에 대한 연산을 처리하여 연산의 결과를 테이블에 반영할 수 있다.
이때, 저널(42a, 42b)는 트랜잭션들을 덧붙여서 저장할 수 있으며, 기설정된 크기 단위별로 나누어 저장할 수 있다. 예컨대, 각 저널 파일 하나 당 10KB 이내의 크기를 갖도록 설정할 수 있다.
이때, 메타데이터의 트랜잭션 정보를 저장한 저널들(42a, 42b)를 서로 복제함으로써 메타데이터 전체를 복제하는 것보다 적은 비용으로 메타데이터를 동기화할 수 있다. 특히, 저널에 새로 추가된 부분 혹은 불일치 부분에 대하여만 송수신하여 동기화함으로써, 동기화 비용을 줄일 수 있다. 다른 노드로 동기화된 저널은 새로 추가된 부분에 상응하는 트랜잭션을 처리하여 테이블에 반영하여 양 노드 간의 메타데이터를 동일하게 유지할 수 있다.
이때, 동기화를 저널 파일 단위로 수행할 수 있다. 예컨대, 노드 A에서 저널 1이 생성된 경우에는 노드 B와 저널 1을 동기화하고, 새로운 트랜잭션 발생에 따라 노드 A에서 저널 2가 생성된 경우에는 노드 B와 저널 2를 동기화 대상으로 설정할 수 있다.
이에 따라, 메타데이터 연산을 나타내는 정보만 다른 메타데이터 서버로 전송함으로써, 메타데이터를 동기화하는데 필요한 데이터 전송량을 매우 줄일 수 있다. 따라서, 일반적인 복제 프로그램에서 구현한 것과 같이 변경된 디스크 블록을 나타내는 비트맵 등과 같은 부가 정보를 전송할 필요가 없으며, 약간 변경된 부분만 포함하는 디스크 블록이라도 그 블록 전체를 전송해야하는 것과 같은 비효율성이 없어진다.
도 5 및 6은 본 발명의 일 실시예에 따라 두 노드 간의 재동기화에 따른 저널의 변화 과정의 일 예를 나타낸 도면이다.
도 5 및 6에서 각각의 저널 파일을 블록으로 나타내었으며, 각 블록에 음영으로 색칠된 부분은 해당 저널 파일의 데이터양을 나타낸다. 저널에는 트랜잭션이 덧붙여지는 형식으로 저장되므로, 시간이 지남에 따라 저널을 나타내는 블록은 음영으로 색칠되고, 마지막 저널 블록이 가득차면 새로운 저널 블록을 생성하게 된다. 테이블은 복제 대상이 아니므로 저널만을 도면에 나타내었다. 시간축에서 시간은 위에서 아래로 흘러감을 나타낸다.
도 5 및 6을 참조하면, 두 노드 중에서 한 노드가 장애가 발생하며, 장애가 발생한 시각은 T0이고 장애가 해소된 시점은 T1이다. 장애가 발생하지 않은 원본 노드를 노드 a라 하고, 장애가 발생한 노드를 노드 b라 하면, 저널(51a_1)은 T1 에서의 노드 a의 저널을 나타내고 저널(51b_1)은 T1에서의 노드 b의 저널을 나타낸다. 노드 b는 T0부터 T1까지 장애로 인하여 노드 a와 동기화가 일어나지 않았기 때문에 T1시점에서 노드 a의 저널(51a_1)과 노드 b의 저널(51b_1)의 불일치가 심화됨을 알 수 있다. 노드 b는 T0 시점까지의 저널이 동기화 되어 있으므로, 장애가 해소된 T1 시점에서 노드 a와 노드 b의 재동기화 절차를 시작하게 된다.
T1 시점에 재동기화 절차를 시작하게 되면, 재동기화 대상은 T0부터 T1까지 노드 a에 누적된 저널 데이터가 된다. 그리고, T0부터 T1까지의 누적된 저널 데이터를 재동기화하는 과정은 T2에 종료된다. 저널(51a_2)은 T2 에서의 노드 a의 저널을 나타내고 저널(51b_2)은 T2에서의 노드 b의 저널을 나타낸다. 즉, 노드 b는 첫 번째 재동기화를 통하여 T1 시점의 노드 a가 저장하고 있던 저널과 동일해진다. 하지만, 노드 a는 첫 번째 재동기화가 수행되는 동안(T1부터 T2)에 메타데이터에 대한 신규 연산 요청을 수신하기 때문에 저널이 커졌다. 따라서 T2 시점에서 다시 노드 a와 노드 b의 두 번째 재동기화를 수행한다.
T2 시점에 두 번째 재동기화를 시작하게 되면, 재동기화 대상은 T1부터 T2까지 노드 a에 누적된 저널 데이터가 된다. 그리고, T1부터 T2까지의 누적된 저널 데이터를 재동기화하는 과정은 T3에 종료된다. 저널(51a_3)은 T3 에서의 노드 a의 저널을 나타내고 저널(51b_3)은 T3에서의 노드 b의 저널을 나타낸다. 즉, 노드 b는 두 번째 재동기화를 통하여 T2 시점의 노드 a가 저장하고 있던 저널과 동일해진다. 마찬가지로, 노드 a는 두 번째 재동기화가 수행되는 동안(T2부터 T3)에 메타데이터에 대한 신규 연산 요청을 수신하기 때문에 저널이 커졌다. 하지만, 이번에는 반복적인 재동기화를 수행하였으므로 재동기화 대상의 분량이 기준치 이하가 되었으며, 동기식 재동기화 방법을 이용하여 T3 시점에서 다시 노드 a와 노드 b의 세 번째 재동기화를 수행한다.
T3 시점에 세 번째 재동기화를 시작하게 되면, 재동기화 대상은 T2부터 T3까지 노드 a에 누적된 저널 데이터가 된다. 저널(51a_4)은 세 번째 재동기화가 종료되었을 때의 노드 a의 저널을 나타내고 저널(51b_4)은 세 번째 재동기화가 종료되었을 때의 노드 b의 저널을 나타낸다. 즉, 노드 b는 세 번째 재동기화를 노드 a의 저널과 동일해진다. 이는 세 번째 재동기화가 동기적 비동기화 방법을 이용함에 따라 그레이스 기간을 설정하고, 노드 a에서 메타데이터에 대한 신규 연산 요청을 차단하기 때문이다. 이와 같은 동기적 재동기화가 이루어지면 그레이스 기간을 해제하여 신규 연산 요청을 다시 수용할 수 있고, 정상적인 저널 동기화를 재개할 수 있다. 따라서 동기적 비동기화를 수행함으로써 두 노드 간에 저널을 동일하게 복제할 수 있으며, 이로써 재동기화 절차를 마무리지을 수 있다.
도 5 및 6의 표현 요지는, 메타데이터 재동기화를 수행하는 과정이 그레이스 기간 없이 신규 연산 요청을 수용하는 비동기적 재동기화 방법과 그레이스 기간을 설정하여 신규 연산 요청을 차단하는 동기적 재동기화 방법으로 구분된다는 것이다. 또한, 비동기적 재동기화는 여러번 반복될 수 있으며, 동기적 재동기화는 기간을 짧게 함으로써 메타데이터 재동기화 과정에서 신규 연산 요청이 차단되는 비용이 매우 작다는 것이다.
도 7은 도 5 및 6에 도시된 저널의 재동기화 과정의 일 예를 나타낸 도면이다.
도 7은 도 5 및 6의 메타데이터 재동기화 과정을 더욱 상세하게 예시하는데, 각각의 저널 파일을 블록으로 나타내었으며, 각 블록에 음영으로 색칠된 부분은 해당 저널 파일의 데이터양을 나타낸다. 저널에는 트랜잭션이 덧붙여지는 형식으로 저장되므로, 시간이 지남에 따라 저널을 나타내는 블록은 음영으로 색칠되고, 마지막 저널 블록이 가득차면 새로운 저널 블록을 생성하게 된다. 시간축에서 시간은 위에서 아래로 흘러감을 나타낸다. 특히, 도 7에는 장애가 발생하지 않은 노드 a(도 5의 노드 a에 대응)에 포함되는 복제할 원본이 되는 저널 파일들만 도시하였다.
도 7을 참조하면, T1은 첫 번째 재동기화가 시작되는 시점이고, t1은 첫 번째 재동기화가 종료되는 시점이다. T2는 두 번째 재동기화가 시작되는 시점이고, t2는 두 번째 재동기화가 종료되는 시점이다. T3는 세 번재 재동기화가 시작되는 시점이고, t3는 세 번째 재동기화가 종료되는 시점이다. TG는 그레이스 기간이 시작되는 시점이고, tg는 그레이스 기간이 종료되는 시점이다. 여기서, TG는 그레이스 기간이 시작되는 시점이면서 동시에 세 번재 재동기화의 준비를 시작하는 시점을 의미할 수 있다. 71a_1은 T1 시점에서의 노드 a의 저널이며, 71a_2는 T2 시점에서의 노드 a의 저널이며, 71a_3은 TG 시점에서의 노드 a의 저널이며, 71a_4는 T3 시점에서의 노드 a의 저널이다.
복제 관계로 맺어진 메타데이터 서버들 중 한 대(노드 b)에 장애가 발생하고 상당한 시간이 흘러서 T1 시점이 되면, 장애 발생 이후의 메타데이터 복제는 상당한 기간 동안 끊어졌으며 생존한 메타데이터 서버(노드 a)에는 신규 메타데이터 연산이 지속적으로 들어왔었음을 알 수 있다. 장애가 발생했던 메타데이터 서버(노드 b)를 정비해서 재기동하고 재동기화 작업을 받아 줄 수 있는 상태가 되면, T1 시점까지의 저널 불일치분(72)을 재동기화 대상으로 설정하여 재기동된 메타데이터 서버(노드 b)에 비동기적으로 재동기화하는 작업을 시작한다. 이러한 비동기적 재동기화 기간 동안에는 신규 메타데이터 연산들이 멈추지 않고 지속적으로 들어온다. 이는, 동기화 작업의 소스(source)가 되는 저널 파일이 계속 변화되고 있음을 의미한다.
예컨대, 첫 번째 재동기화가 진행중인 T1부터 t1까지에는 순서대로, 트랜잭션-A 시작, 트랜잭션-B 시작, 트랜잭션-A 종료, 트랜잭션-M 시작, 트랜잭션-B 종료의 이벤트가 발생할 수 있다. 따라서, T1 시점까지의 저널 불일치분을 재기동된 메타데이터 서버에 재동기화시키는 작업이 t1 시점에 종료되고 나서도 여전히 T2 시점과 T1 시점 사이에 변경된 부분만큼의 불일치가 새롭게 존재하게 된다. 예컨대, 첫 번째 재동기화가 종료되는 t1 시점과 두 번째 재동기화가 시작되는 T2 시점 사이에 트랜잭션-N 시작의 이벤트가 발생할 수 있다.
메타데이터 재동기화가 최종적으로 완료되지 않았고, 저널 불일치분이 여전히 존재한다면, 메타데이터 불일치분인 T2 시점과 T1 시점 사이에 적용된 변경량(73)만큼을 비동기적으로 재동기화 하는 작업을 다시 시작한다. 마찬가지로 비동기적으로 재동기화작업을 수행하기 때문에 신규 연산 요청을 차단하지 않고 계속 허용한다. 따라서, 이러한 두 번째 재동기화가 종료되는 t2 시점에도 저널 불일치분이 새롭게 존재할 수 있다.
메타데이터 재동기화가 최종적으로 완료되지 않았고, 저널불일치분이 여전히 존재하고 있으므로, 재동기화 과정을 다시 시작하여야 한다. 세 번째 재동기화를 수행하기 위하여 TG 시점에 저널 불일치량을 재계산한다. 그러나, 재동기화시킬 저널 불일치량(74)이 기설정된 기준을 초과하지 않을 경우, 동기적 재동기화 방법으로 마지막 재동기화를 수행할 수 있다. 이 경우, 동기적 재동기화의 준비 절차로써 TG 시점에 그레이스 기간을 시작하여 신규 연산 요청을 차단할 수 있다. 그리고, 동기적 재동기화 과정을 시작하기 전에 그레이스 기간이 시작된 T3 시점 이전에 입력되었으나 미처 처리되지 못하고 잔존하던 트랜잭션들이 모두 다 완료되기를 기다린 후에, T3 시점에 재동기화 대상(74 및 75)을 결정하여 세 번째 재동기화를 수행한다. 그리고 t3 시점에 세 번째 재동기화가 종료되면 tg 시점에 그레이스 기간을 종료한다. 즉, 새로운 저널 불일치 부분이 발생하지 않는 상태에서 비로소 동기적 재동기화 작업을 시작할 수 있다. 예컨대, TG 시점에 그레이스 기간이 시작된 이후에, 트랜잭션-N 종료 이벤트가 발생하고, T3 시점에 세 번째 재동기화를 수행할 수 있다. 이 경우, 그레이스 기간(76)이 동안에 종료된 트랜잭션-N을 재동기화 대상에 포함하여 재동기화할 수 있다.
동기적 재동기화를 종료한 t3 시점 이후에는 두 노드 간의 메타데이터 저널이 동기화되어 있기 때문에, 두 노드에 저장된 메타데이터는 동일한 상태가 된다. 따라서, 이후부터는 정상 상황에서의 메타데이터 동기화가 수행된다. 즉, 가장 최근 저널 파일의 끝에 새롭게 추가되는 메타데이터 연산의 내용이 짝이 되는 메타데이터 서버로 실시간 복제되는 작업이 계속 진행된다.
도 8은 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 방법을 나타낸 동작 흐름도이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 방법은 메타데이터의 동기화를 제어하는 장치(도 1의 100 참조)가, 클라이언트로부터 메타데이터 연산 요청을 수신하였는지 여부를 판단한다(S801).
단계(S801)의 판단 결과 메타데이터 연산 요청을 수신한 경우, 해당 연산 요청에 상응하는 트랜잭션을 생성하여 저널에 저장한다(S803).
단계(S801)의 판단 결과 메타데이터 연산 요청을 수신하지 않았거나 단계(S803)을 수행한 경우, 동기화 대상 장치와 저널을 동기화한다(S805).
이때, 저널의 동기화는 동기화 대상 장치의 저널과의 불일치 부분에 대하여만 송수신하여 저널을 동기화할 수 있다.
또한, 본 발명의 일 실시예에 따른 메타데이터의 동기화를 제어하는 방법은 메타데이터의 동기화를 제어하는 장치(도 1의 100 참조)가, 저널의 동기화에 따라 혹은 연산 요청의 수신에 따라 저널에 새로운 내용이 발생하였는지 여부를 판단한다(S807).
단계(S807)의 판단 결과 저널에 새로운 내용이 발생한 경우, 저널에 추가된 내용을 수행하여 메타데이터를 갱신하여 테이블에 반영한다(S809).
도 8에 도시된 단계들을 반복함으로써 복수 개의 노드들 간에 메타데이터를 동기화할 수 있다.
이에 따라, 메타데이터 연산 요청을 수신하고도 이에 상응하는 트랜잭션을 저널에 저장하고 저널을 동기화함으로써, 적은 비용으로 메타데이터를 동기화할 수 있다.
도 9는 도 8에 도시된 저널을 동기화하는 단계(S805)의 일 예를 나타낸 동작 흐름도이다.
도 9를 참조하면, 도 8에 도시된 저널을 동기화하는 단계(S805)는, 저널에 대하여 재동기화 절차를 진행할지 여부를 판단한다(S901). 이는, 이미 재동기화 절차가 진행중이어서 재동기화 절차를 속행해야 하는 경우나 동기화 대상 장치에 장애가 발생하여 재동기화가 필요한 경우에 재동기화 절차를 진행할 것으로 판단할 수 있다. 반면에, 이미 재동기화 절차가 진행중이도 않으며 동기화 대상 장치에 장애가 발생하지 않은 경우에는 재동기화 절차를 진행하지 않는 것으로 판단할 수 있다.
단계(S901)의 판단 결과 재동기화 절차를 진행하지 않는 경우에는, 저널에 대한 정상 동기화를 수행한다(S903). 여기서, 정상 동기화는 재동기화에 대비되는 개념으로, 노드에 장애 상황이 발생하지 않아 메타데이터에 대한 연산 요청이 발생할 때마다 저널을 동기화하는 것을 의미한다.
단계(S901)의 판단 결과 재동기화 절차를 진행하는 경우에는, 재동기화 분량이 기준치를 초과하는지 판단한다(S905). 여기서, 재동기화 대상의 분량은 원본 저널과 재동기화 대상 저널의 불일치 부분의 분량을 의미할 수 있다.
단계(S905)의 판단 결과 재동기화 대상의 분량이 기준치를 초과하는 경우에는, 비동기식 재동기화 방법을 이용하여 재동기화 절차를 진행할 수 있다.
단계(S905)의 판단 결과 재동기화 대상의 분량이 기준치를 초과하지 않는 경우에는, 동기식 재동기화 방법을 이용하여 재동기화 절차를 진행할 수 있다. 특히, 동기식 재동기화 방법을 이용하여 재동기화 절차를 진행하는 경우에는, 해당 동기식 재동기화 방법을 마지막으로 재동기화 절차를 종료할 수 있다.
도 10은 도 9에 도시된 동기식 재동기화를 수행하는 단계(S909)의 일 예를 나타낸 동작 흐름도이다.
도 10을 참조하면, 도 9에 도시된 동기식 재동기화를 수행하는 단계(S909)는, 그레이스 기간을 시작하고 메타데이터 연산 요청을 블락한다(S1001).
또한, 도 9에 도시된 동기식 재동기화를 수행하는 단계(S909)는, 단계(S1001)의 그레이스 기간 전에 시작한 모든 트랜잭션이 완료되는 것을 대기한다(S1003).
또한, 도 9에 도시된 동기식 재동기화를 수행하는 단계(S909)는, 재동기화 대상을 확정하여 동기화한다(S1005).
또한, 도 9에 도시된 동기식 재동기화를 수행하는 단계(S909)는, 단계(S1005)에 의한 동기화가 종료되면 그레이스 기간을 종료하고 메타데이터 연산 요청에 대한 블락을 해제한다(S1007).
즉, 동기식 재동기화 방법을 이용하는 경우에는 그레이스 기간 동안에 신규 연산 요청을 차단하였기 때문에, 재동기화를 수행한 이후라도 동기화 대상 노드들 간에 저널이 동일하게 유지될 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
1: 메타데이터 동기화 제어 시스템
100: 메타데이터 동기화 제어 장치
110: 제어부 120: 통신부
130: 메모리 140: 메타데이터 저장부
150: 트랜잭션 생성부 160: 저널 관리부
170: 저널 동기화부 180: 연산 처리부
200: 클라이언트

Claims (20)

  1. 클라이언트로부터 수신한 메타데이터의 연산 요청에 상응하는 트랜잭션을 생성하는 트랜잭션 생성부;
    상기 트랜잭션을 저널에 저장하는 저널 관리부;
    연결된 다른 노드의 외부 저널과 상기 저널을 비교하여 불일치 부분만을 송수신하여 상기 저널을 동기화하는 저널 동기화부; 및
    상기 메타데이터에 대하여 상기 연산 요청 또는 상기 트랜잭션을 처리하는 연산 처리부를 포함하고,
    상기 연산 처리부는
    상기 연산 요청에 상응하는 상기 트랜잭션이 상기 저널에 저장된 이후에 상기 연산 요청 또는 트랜잭션을 처리하여 메타데이터의 내용을 저장하는 테이블에 반영하는 것인, 메타데이터의 동기화를 제어하는 장치.
  2. 청구항 1에 있어서,
    상기 저널 관리부는
    상기 트랜잭션을 상기 저널에 덧붙여 저장하고, 상기 저널을 기설정된 크기 단위로 나누어 관리하는 것인, 메타데이터의 동기화를 제어하는 장치.
  3. 삭제
  4. 청구항 1에 있어서,
    상기 연산 처리부는
    상기 동기화를 통하여 상기 저널에 변경 부분이 생긴 경우에 상기 변경 부분에 상응하는 트랜잭션들을 처리하여 상기 테이블에 반영하는 것인, 메타데이터의 동기화를 제어하는 장치.
  5. 청구항 4에 있어서,
    상기 저널 동기화부는
    상기 다른 노드에 장애가 발생하여 상기 저널의 동기화가 중단된 경우, 신규 노드와 상기 저널을 재동기화(resynchronization)하거나 상기 장애가 발생한 노드가 정상화될 때 상기 장애가 발생한 노드와 상기 저널을 재동기화하는 것인, 메타데이터의 동기화를 제어하는 장치.
  6. 청구항 5에 있어서,
    상기 저널 동기화부는
    상기 저널을 재동기화할 때, 상기 저널을 오래된 순서대로 재동기화하는 것인, 메타데이터의 동기화를 제어하는 장치.
  7. 청구항 6에 있어서,
    상기 저널 동기화부는
    상기 저널을 재동기화할 때, 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 유지한 채 재동기화하는 비동기적(asynchronous) 재동기화 방법 또는 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 차단한 채 재동기화하는 동기적(synchronous) 재동기화 방법을 이용하는 것인, 메타데이터의 동기화를 제어하는 장치.
  8. 청구항 7에 있어서,
    상기 저널 동기화부는
    상기 저널을 재동기화할 때, 상기 저널의 불일치량이 기설정된 분량을 초과하는 경우에 상기 비동기적 재동기화 방법을 이용하고, 상기 저널의 불일치량이 상기 기설정된 분량 이하인 경우에 상기 동기적 재동기화 방법을 이용하는 것인, 메타데이터의 동기화를 제어하는 장치.
  9. 청구항 8에 있어서,
    상기 저널 동기화부는
    상기 비동기적 재동기화 방법을 이용하여 상기 저널을 재동기화한 경우, 상기 저널을 재동기화하는 도중에 수신한 메타데이터의 신규 연산 요청을 반영하여 상기 저널의 불일치량을 재계산하고, 상기 재계산된 불일치량을 고려하여 상기 비동기적 재동기화 방법 또는 상기 동기적 재동기화 방법을 선택하여 다시 상기 저널을 재동기화하는 것인, 메타데이터의 동기화를 제어하는 장치.
  10. 청구항 9에 있어서,
    상기 저널 동기화부는
    상기 동기적 재동기화 방법을 이용하여 상기 저널을 재동기화할 때, 메타데이터의 신규 연산 요청을 차단하는 그레이스 기간(grace period)을 시작하고, 상기 그레이스 기간 이전에 입력된 연산 요청에 상응하는 트랜잭션이 모두 완료되면 상기 저널을 동기화하고, 상기 동기적 재동기화 방법에 의한 상기 저널의 재동기화 완료시 상기 그레이스 기간을 종료하는 것인, 메타데이터의 동기화를 제어하는 장치.
  11. 메타데이터의 동기화를 제어하는 장치에서 수행되는 메타데이터의 동기화를 제어하는 방법에 있어서,
    클라이언트로부터 수신한 메타데이터의 연산 요청에 상응하는 트랜잭션을 생성하는 단계;
    상기 트랜잭션을 저널에 저장하는 단계;
    연결된 다른 노드의 외부 저널과 상기 저널을 비교하여 불일치 부분만을 송수신하여 상기 저널을 동기화하는 단계;
    상기 메타데이터에 대하여 상기 연산 요청 또는 상기 트랜잭션을 처리하는 단계를 포함하고,
    상기 연산 요청 또는 상기 트랜잭션을 처리하는 단계는
    상기 연산 요청에 상응하는 상기 트랜잭션이 상기 저널에 저장된 이후에 상기 연산 요청 또는 트랜잭션을 처리하여 메타데이터의 내용을 저장하는 테이블에 반영하는 것인, 메타데이터의 동기화를 제어하는 방법.
  12. 청구항 11에 있어서,
    상기 저널에 저장하는 단계는
    상기 트랜잭션을 상기 저널에 덧붙여 저장하고, 상기 저널을 기설정된 크기 단위로 나누어 관리하는 것인, 메타데이터의 동기화를 제어하는 방법.
  13. 삭제
  14. 청구항 11에 있어서,
    상기 연산 요청 또는 상기 트랜잭션을 처리하는 단계는
    상기 동기화를 통하여 상기 저널에 변경 부분이 생긴 경우에 상기 변경 부분에 상응하는 트랜잭션들을 처리하여 상기 테이블에 반영하는 것인, 메타데이터의 동기화를 제어하는 방법.
  15. 청구항 14에 있어서,
    상기 저널을 동기화하는 단계는
    상기 다른 노드에 장애가 발생하여 상기 저널의 동기화가 중단된 경우, 신규 노드와 상기 저널을 재동기화(resynchronization)하거나 상기 장애가 발생한 노드가 정상화될 때 상기 장애가 발생한 노드와 상기 저널을 재동기화하는 단계
    를 포함하는 것인, 메타데이터의 동기화를 제어하는 방법.
  16. 청구항 15에 있어서,
    상기 저널을 재동기화하는 단계는
    상기 저널을 오래된 순서대로 재동기화하는 것인, 메타데이터의 동기화를 제어하는 방법.
  17. 청구항 16에 있어서,
    상기 저널을 재동기화하는 단계는
    메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 유지한 채 재동기화하는 비동기적(asynchronous) 재동기화 방법 또는 메타데이터의 신규 연산 요청을 수신 및 처리하는 기능을 차단한 채 재동기화하는 동기적(synchronous) 재동기화 방법을 이용하는 것인, 메타데이터의 동기화를 제어하는 방법.
  18. 청구항 17에 있어서,
    상기 저널을 재동기화하는 단계는
    상기 저널의 불일치량이 기설정된 분량을 초과하는 경우에 상기 비동기적 재동기화 방법을 이용하고, 상기 저널의 불일치량이 상기 기설정된 분량 이하인 경우에 상기 동기적 재동기화 방법을 이용하는 것인, 메타데이터의 동기화를 제어하는 방법.
  19. 청구항 18에 있어서,
    상기 저널을 재동기화하는 단계는
    상기 비동기적 재동기화 방법을 이용하여 상기 저널을 재동기화한 경우, 상기 저널을 재동기화하는 도중에 수신한 메타데이터의 신규 연산 요청을 반영하여 상기 저널의 불일치량을 재계산하고, 상기 재계산된 불일치량을 고려하여 상기 비동기적 재동기화 방법 또는 상기 동기적 재동기화 방법을 선택하여 다시 상기 저널을 재동기화하는 것인, 메타데이터의 동기화를 제어하는 방법.
  20. 청구항 19에 있어서,
    상기 저널을 재동기화하는 단계는
    상기 동기적 재동기화 방법을 이용하여 상기 저널을 재동기화할 때, 메타데이터의 신규 연산 요청을 차단하는 그레이스 기간(grace period)을 시작하고, 상기 그레이스 기간 이전에 입력된 연산 요청에 상응하는 트랜잭션이 모두 완료되면 상기 저널을 동기화하고, 상기 동기적 재동기화 방법에 의한 상기 저널의 재동기화 완료시 상기 그레이스 기간을 종료하는 것인, 메타데이터의 동기화를 제어하는 방법.
KR1020170144917A 2017-11-01 2017-11-01 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법 KR102441997B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170144917A KR102441997B1 (ko) 2017-11-01 2017-11-01 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법
US16/158,088 US20190129976A1 (en) 2017-11-01 2018-10-11 Apparatus for controlling synchronization of metadata on network and method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170144917A KR102441997B1 (ko) 2017-11-01 2017-11-01 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190049266A KR20190049266A (ko) 2019-05-09
KR102441997B1 true KR102441997B1 (ko) 2022-09-08

Family

ID=66243008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170144917A KR102441997B1 (ko) 2017-11-01 2017-11-01 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20190129976A1 (ko)
KR (1) KR102441997B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI670599B (zh) * 2018-08-28 2019-09-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
US11080257B2 (en) * 2019-05-13 2021-08-03 Snowflake Inc. Journaled tables in database systems
CN112231286A (zh) * 2020-08-28 2021-01-15 杭州沃趣科技股份有限公司 一种快速恢复数据库历史数据的方法
US11647052B2 (en) 2021-04-22 2023-05-09 Netskope, Inc. Synthetic request injection to retrieve expired metadata for cloud policy enforcement
US11178188B1 (en) 2021-04-22 2021-11-16 Netskope, Inc. Synthetic request injection to generate metadata for cloud policy enforcement
US11336698B1 (en) 2021-04-22 2022-05-17 Netskope, Inc. Synthetic request injection for cloud policy enforcement
US11184403B1 (en) * 2021-04-23 2021-11-23 Netskope, Inc. Synthetic request injection to generate metadata at points of presence for cloud security enforcement
US11190550B1 (en) 2021-04-22 2021-11-30 Netskope, Inc. Synthetic request injection to improve object security posture for cloud security enforcement
US11303647B1 (en) 2021-04-22 2022-04-12 Netskope, Inc. Synthetic request injection to disambiguate bypassed login events for cloud policy enforcement
US11271973B1 (en) 2021-04-23 2022-03-08 Netskope, Inc. Synthetic request injection to retrieve object metadata for cloud policy enforcement
US11271972B1 (en) 2021-04-23 2022-03-08 Netskope, Inc. Data flow logic for synthetic request injection for cloud security enforcement
US11943260B2 (en) 2022-02-02 2024-03-26 Netskope, Inc. Synthetic request injection to retrieve metadata for cloud policy enforcement

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356950A (ja) 2000-01-26 2001-12-26 Fusionone Inc データ転送及び同期システム
US20020199024A1 (en) 1999-11-18 2002-12-26 Xacct Technologies, Inc. Threshold-based database synchronization system and method
US20040078658A1 (en) 2002-03-21 2004-04-22 Park Choon Seo Journaling and recovery method of shared disk file system
JP2007334877A (ja) 2006-06-19 2007-12-27 Hitachi Ltd 継続的データ保護環境においてボリューム間の整合性を管理するためのシステムおよび方法
US20100235326A1 (en) 2009-03-11 2010-09-16 International Business Machines Corporation Method for mirroring a log file by threshold driven synchronization
WO2013036265A1 (en) 2011-09-11 2013-03-14 Microsoft Corporation Nonvolatile media journaling of verified data sets
JP2013143124A (ja) 2012-01-12 2013-07-22 Lsi Corp メタデータの永続化のための方法
US20170344440A1 (en) 2016-05-31 2017-11-30 Vmware, Inc. Micro-journal based transaction logging

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825724B2 (en) * 2012-03-29 2014-09-02 Lsi Corporation File system hinting
KR101584760B1 (ko) * 2014-06-30 2016-01-22 성균관대학교산학협력단 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치
KR101674176B1 (ko) * 2014-07-24 2016-11-08 성균관대학교산학협력단 파일 단위 순서 모드 저널링 기법을 이용한 fsync 시스템 호출 처리 장치 및 방법
KR102377726B1 (ko) 2015-04-17 2022-03-24 한국전자통신연구원 분산 파일 시스템에서의 파일 복제 제어 장치 및 방법

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020199024A1 (en) 1999-11-18 2002-12-26 Xacct Technologies, Inc. Threshold-based database synchronization system and method
JP2001356950A (ja) 2000-01-26 2001-12-26 Fusionone Inc データ転送及び同期システム
US20040054711A1 (en) * 2000-01-26 2004-03-18 Multer David L. Data transfer and synchronization system
US20040078658A1 (en) 2002-03-21 2004-04-22 Park Choon Seo Journaling and recovery method of shared disk file system
JP2007334877A (ja) 2006-06-19 2007-12-27 Hitachi Ltd 継続的データ保護環境においてボリューム間の整合性を管理するためのシステムおよび方法
US20100235326A1 (en) 2009-03-11 2010-09-16 International Business Machines Corporation Method for mirroring a log file by threshold driven synchronization
WO2013036265A1 (en) 2011-09-11 2013-03-14 Microsoft Corporation Nonvolatile media journaling of verified data sets
JP2013143124A (ja) 2012-01-12 2013-07-22 Lsi Corp メタデータの永続化のための方法
US20170344440A1 (en) 2016-05-31 2017-11-30 Vmware, Inc. Micro-journal based transaction logging

Also Published As

Publication number Publication date
US20190129976A1 (en) 2019-05-02
KR20190049266A (ko) 2019-05-09

Similar Documents

Publication Publication Date Title
KR102441997B1 (ko) 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법
AU2019236685B2 (en) Distributed file system using consensus nodes
US10831741B2 (en) Log-shipping data replication with early log record fetching
WO2018049983A1 (zh) 数据同步方法、系统、同步获取方法及装置
US20150347250A1 (en) Database management system for providing partial re-synchronization and partial re-synchronization method of using the same
EP3019960A2 (en) Replication of data between mirrored data sites
KR101670343B1 (ko) 피어투피어 데이터 복제를 위한 방법, 장치, 및 시스템 및 마스터 노드 전환을 위한 방법, 장치, 및 시스템
WO2017071563A1 (zh) 一种存储数据的方法及集群管理节点
WO2023046042A1 (zh) 一种数据备份方法和数据库集群
CN113010496B (zh) 一种数据迁移方法、装置、设备和存储介质
US10235251B2 (en) Distributed disaster recovery file sync server system
US20200201824A1 (en) Data mesh parallel file system replication
US20220197761A1 (en) Cloud architecture for replicated data services
WO2021082925A1 (zh) 一种交易处理的方法及装置
US8977897B2 (en) Computer-readable recording medium, data management method, and storage device
JP6251965B2 (ja) 情報システムおよびデータベース復旧方法
JP2014016953A (ja) 無共有型データベースシステム、同期装置、データベースサーバ、その同期方法および同期プログラム
CN111522688B (zh) 分布式系统的数据备份方法及装置
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
EP2980707B1 (en) Method for creating a database clone of a distributed database, system for creating a database clone of a distributed database, program and computer program product
AU2021329212A1 (en) Methods, devices and systems for writer pre-selection in distributed data systems
US11188522B2 (en) Streamlined database commit for synchronized nodes
KR101748912B1 (ko) 분산 저장 환경에서 데이터 저장 시스템 및 데이터 저장 시스템이 포함하는 클러스터의 업그레이드, 확장 및 축소를 위한 클러스터 관리 방법
JP6093320B2 (ja) 分散処理システム
JP5130538B2 (ja) ネットワークファイルシステムおよびネットワークファイルシステム復旧方法

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