KR20130074207A - 스케줄러기반 데이터 서버간 데이터 복제 방법 - Google Patents

스케줄러기반 데이터 서버간 데이터 복제 방법 Download PDF

Info

Publication number
KR20130074207A
KR20130074207A KR1020110142138A KR20110142138A KR20130074207A KR 20130074207 A KR20130074207 A KR 20130074207A KR 1020110142138 A KR1020110142138 A KR 1020110142138A KR 20110142138 A KR20110142138 A KR 20110142138A KR 20130074207 A KR20130074207 A KR 20130074207A
Authority
KR
South Korea
Prior art keywords
replication
request
data
copy
queue
Prior art date
Application number
KR1020110142138A
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 KR1020110142138A priority Critical patent/KR20130074207A/ko
Publication of KR20130074207A publication Critical patent/KR20130074207A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

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

Abstract

본 발명은 스케줄러기반 데이터 서버간 데이터 복제 방법에 관한 것으로, 상기 데이터 복제 방법은, 데이터 복제 처리를 위해 필요한 정보를 준비하는 단계; 높은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계; 낮은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계; 복제 요청에 대한 응답을 받으면, 해당 복제 요청 정보를 상기 복제 처리 리스트 및 상기 높은 순위 복제 큐 또는 낮은 순위 복제 큐에서 제거하는 단계; 및 복제가 완료된 메타데이터를 갱신하는 단계를 포함하여 구성된다.

Description

스케줄러기반 데이터 서버간 데이터 복제 방법 {DATA REPLICATION METHOD IN A POOL OF DATA SERVERS BASED ON SCHEDULER}
본 발명은 스케줄러기반 데이터 서버간 데이터 복제 방법에 관한 것으로, 보다 상세하게는 비대칭 구조를 채택한 대용량 스토리지 시스템에서 가용성 보장을 위해 데이터 서버간의 복제를 수행함에 있어 데이터 서버들의 상태 정보를 기반으로 데이터 복제를 스케줄하여 복제 처리 성능을 높이고 복제 속도를 제어하기 위한 스케줄러기반 데이터 서버간 데이터 복제 방법에 관한 것이다.
대부분의 스토리지 시스템은 가용성을 보장하기 위해서 데이터를 다른 데이터 서버에 복제해 두었다가 데이터 서버에 고장이 발생할 경우 복제한 데이터를 저장한 다른 데이터 서버에서 그 데이터를 제공한다.
복제 처리는 하나의 데이터 서버에서 저장매체에서 데이터 블록을 읽어서 이를 다른 데이터 서버로 전송하고, 데이터를 전송받은 다른 데이터 서버가 이를 저장매체에 쓰는 연산으로 구성된다. 이와 같은 복제 처리 연산 중에서 읽기/쓰기에 대부분의 시간이 소비된다.
일반적으로 데이터 서버는 저장매체로서 하드디스크(이하, 디스크로 칭함) 또는 SSD(Solid State Driver)를 사용하여 데이터를 저장 및 관리하는데, 이러한 매체를 통한 데이터 서버의 데이터 처리(읽기/쓰기) 성능은 이에 의존적이다. 즉, 사용자의 데이터 요청을 하나 처리할 때의 성능에 비해, 동시에 여러 개를 처리할 때의 성능은 비슷하거나 오히려 떨어진다.
대용량 스토리지 시스템을 구성하면, 다수의 하나 이상의 저장 매체를 보유한 데이터 서버들로 구성되며, 이들 데이터 서버의 데이터 읽기 및 쓰기 성능은 매우 한정적이다. 따라서, 복제를 수행할 시에 대량의 복제 요청을 데이터 서버로 보낸다 하더라도 이를 처리하는 성능은 한계(최대치)가 있고 전체 복제 처리 시간은 더 많이 걸리게 된다.
또한, 가용성 보장을 위한 데이터 복제는 많은 데이터 서버의 부하를 발생시키고 사용자에게 제공하는 스토리지 서비스의 병목 현상을 발생시킬 수 있다. 즉, 데이터 복제 처리 속도를 제어할 수 있는 기법이 없으면 원활한 스토리지 서비스를 제공할 수 없게 된다.
따라서 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 대용량 스토리지 시스템에서 가용성 보장을 위해 데이터 서버간의 복제를 수행함에 있어 데이터 서버들의 상태 정보를 기반으로 데이터 복제를 스케줄하여 복제 처리 성능을 높이고 복제 속도를 제어할 수 있는 스케줄러기반 데이터 서버간 데이터 복제 방법을 제공하기 위한 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 실시형태에 의한 스케줄러기반 데이터 서버간 데이터 복제 방법은, 데이터 복제 처리를 위해 필요한 정보를 준비하는 단계; 높은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계; 낮은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계; 복제 요청에 대한 응답을 받으면, 해당 복제 요청 정보를 상기 복제 처리 리스트 및 상기 높은 순위 복제 큐 또는 낮은 순위 복제 큐에서 제거하는 단계; 및 복제가 완료된 메타데이터를 갱신하는 단계를 포함한다.
본 발명에 의하면, 대용량 스토리지 시스템에서 가용성 보장을 위한 전체 복제 시간을 획기적으로 단축할 수 있다. 뿐만 아니라, 복제 속도를 제어할 수 있어, 전체 스토리지 서비스를 원활히 제공할 수 있다.
도 1은 비대칭 스토리지 시스템의 구성도,
도 2는 메타데이터 서버에서 관리하는 데이터 구조를 도시하는 도면,
도 3은 본 발명에 따른 스케줄러 기반 복제 처리를 위해 메타데이터 서버에 위치한 복제처리기의 구조를 도시하는 도면,
도 4는 본 발명에 따른 스케줄러 기반 복제를 설명하기 위한 도면,
도 5는 메타데이터 서버에서 요청한 복제 요청 큐의 구조도,
도 6은 본 발명에 따른 복제처리기의 전체 데이터 구조도,
도 7은 복제 성능 제어시 복제처리기와 데이터 서버 사이의 복제처리기 타임아웃을 이동하는 방법을 도시하는 도면,
도 8은 복제처리기에 의한 복제 처리 과정의 전체 흐름도,
도 9는 복제처리기의 복제 요청 리스트 처리 흐름도,
도 10은 도 9의 복제 요청의 처리 흐름도,
도 11은 도 10에서 요청한 복제 사용 유무 판단 처리 흐름도,
도 12는 복제 요청 정보를 복제 요청 큐에 삽입 처리하는 과정의 흐름도,
도 13은 복제처리기에서 데이터 서버로부터의 복제 요청 응답을 처리하는 과정의 흐름도,
도 14는 복제처리기의 복제 요청 큐 삭제 처리 흐름도,
도 15는 복제 요청 리스트의 갱신 처리 흐름도,
도 16은 데이터 서버에서의 복제 요청 처리 흐름도, 그리고
도 17은 복제처리기에서의 복제 요청 타임아웃 처리 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 비대칭 스토리지 시스템의 구성도이다.
도 1을 참조하면, 일반적인 비대칭 스토리지 시스템은 n개의 사용자 파일 시스템(111, 11n), 메타데이터 관리 서버(120), 그리고 m개의 데이터 서버(131, 13m)를 포함하여 구성된다.
사용자 파일 시스템(111, 11n)은 사용자로부터 파일 관련 요청을 받아서 메타데이터는 메타데이터 관리 서버(120)로 요청하고, 파일의 실제 데이터는 데이터 서버(131, 13m)로 요청한다.
메타데이터 관리 서버(120)는 파일의 실제 데이터에 대한 위치 정보를 관리하는 것으로, 사용자 파일 시스템(111, 11n)의 요청의 타당성을 검사한 후 요청한 메타데이터, 즉 파일의 실제 데이터의 위치 정보를 사용자 파일 시스템(111, 11n)으로 전송한다.
데이터 서버(131, 13m)는 파일의 실제 데이터를 관리하는 것으로, 사용자 파일 시스템(111, 11n)의 요청에 따라 저장된 데이터를 넘겨준다.
도 2는 메타데이터 서버에서 관리하는 데이터 구조를 도시하는 도면이다.
도 2를 참조하면, 메타데이터 서버에서 관리하는 파일 메타데이터(210)는 파일의 실제 데이터의 위치 및 구성 정보를 포함한다. 즉, 파일이 n개의 데이터 블록(211, 21n)으로 구성되어 있고, 각 데이터 블록은 복제 개수만큼의 데이터 블록(211-1, 211-2, 21n-1)으로 구성되어 있다. 또한, 데이터 블록(211-1, 211-2, 21n-1)은 실제 데이터 블록을 저장하고 있는 데이터 서버와 데이터 블록에 대한 위치 정보인 데이터 서버 식별자 및 데이터 블록 식별자와 버전 정보를 포함한다.
또한, 메타데이터 서버는 데이터 서버 관리 테이블(220)을 관리하는데, 데이터 서버 관리 테이블(220)은 각 데이터 서버(231, 232, 23m)의 네트워크 주소와 상태정보(GOOD, FAILED, OFFLINE)를 유지관리한다.
도 1에 도시된 사용자 파일 시스템은 파일에 대한 읽기/쓰기 처리시 우선 메타데이터 서버에서 파일 메타데이터를 가져와서 해당 데이터 서버의 데이터 블록에 접근하여 처리한다.
도 3은 본 발명에 따른 스케줄러 기반 복제 처리를 위해 메타데이터 서버에 위치한 복제처리기의 구조를 도시하는 도면이다.
도 3을 참조하면, 복제처리기(310)는 목표 복제 개수(311), 복제 대역폭(312) 및 복제 요청 버전 정보(313) 값을 유지 및 관리한다.
여기서, 목표 복제 개수(311)는 전체 스토리지 시스템에서의 복제 개수를 나타내고, 복제 대역폭(312)은 데이터 서버간 복제시 최대 복제 대역폭(예를 들어, 1MB/s, 2MB/s, 4MB/s, 8MB/s, 16MB/s 등)을 나타내고, 복제 요청 버전 정보(313)는 데이터 서버에 복제 요청을 보낼 때 버전 점검을 위해 사용되는 값으로 디스크에서 저장 및 관리되는 값이고 복제처리기가 기동할 때마다 하나 증가한다.
복제처리기(310)는 복제가 필요하다고 판단되는 경우 데이터 서버(320)로 복제 요청을 보내는데, 복제 요청시 복제 요청 버전, 복제 요청 식별자, 자신이 저장한 데이터 블록 식별자, 복제할 대상인 데이터 서버 주소, 그리고 복제할 대상인 데이터 블록 식별자를 보낸다.
이와 같이 복제처리기(310)가 복제 요청을 하면 복제 요청에 대한 정보를 복제 요청 큐(314)에 삽입하여 관리한다.
한편, 데이터 서버(320)가 복제 처리를 완료한 경우 복제처리기(310)로 복제 요청에 대한 응답을 보내는데, 응답 메시지는 복제 요청 버전, 복제 요청 식별자, 그리고 결과 상태를 포함한다.
복제처리기(310)는 poll과 같은 다중 이벤트 감지 메커니즘을 통해 다수의 데이터 서버로부터 응답 처리를 한다. 복제처리기(310)는 이벤트가 감지되면 해당 데이터 서버로부터 복제 요청 응답을 읽어 들이고, 이를 복제 요청 큐(314)에 해당 복제 요청 정보를 바탕으로 처리한다.
도 4는 본 발명에 따른 스케줄러 기반 복제를 설명하기 위한 도면이다.
도 4를 참조하면, 스토리지 시스템은 4대의 디스크를 저장매체로 사용하는 데이터 서버(401, 402, 403, 404)를 포함하여 구성되며, 복제를 수행할 연산은 다음과 같다.
1. 데이터 서버 #1 -> 데이터 서버 #2
2. 데이터 서버 #2 -> 데이터 서버 #3
3. 데이터 서버 #4 -> 데이터 서버 #3
4. 데이터 서버 #4 -> 데이터 서버 #1
이 경우, 복제를 다음과 같이 병렬로 수행하면 32초가 소요된다.
1. 데이터 서버 #1 -> 데이터 서버 #2, 데이터 서버 #4 -> 데이터 서버 #3
2. 데이터 서버 #2 -> 데이터 서버 #3, 데이터 서버 #4 -> 데이터 서버 #1
반면, 복제를 본 발명에 따라 스케줄러 기반으로 다음과 같이 병렬로 수행하면 18초가 소요된다.
1. 데이터 서버 #1 -> 데이터 서버 #2, 데이터 서버 #2 -> 데이터 서버 #3
2. 데이터 서버 #4 -> 데이터 서버 #3, 데이터 서버 #4 -> 데이터 서버 #1
본 발명에 따른 스케줄러 정책은 복제를 이미 수행하고 있는 데이터 서버들은 더 이상 복제 요청을 하지 않고, 복제를 수행하지 않는 데이터 서버들에게만 복제 요청을 수행하도록 하는 것이다.
도 5는 메타데이터 서버에서 요청한 복제 요청 큐의 구조도이다.
도 5를 참조하면, 복제 요청은 높은 순위와 낮은 순위의 2가지 순위로 관리된다.
높은 순위 복제 큐(510)는 복제가 하나인 파일들을 관리하고, 낮은 순위 복제 큐(520)는 복제가 두 개 이상인 파일들을 관리한다.
또한, 각 큐에는 복제가 필요한 파일 메타데이터가 리스트 형태로 연결되어 구성되어 있고, FIFO(First-In First-Out) 순서로 처리된다.
도 6은 본 발명에 따른 복제처리기의 전체 데이터 구조도이다.
도 6을 참조하면, 복제 처리 리스트(610)는 복제 요청 큐에 가져온 복제 처리할 파일 메타데이터를 FIFO 순서로 처리하기 위해 리스트 형태로 구성되어 있다.
한편, 데이터 서버 복제 상태 관리 테이블(620)은 복제 가용 세마포아(621)와 데이터 서버별 복제 상태를 추적할 수 있는 구조(622)를 포함하여 구성된다.
복제 가용 세마포아(621)는 복제 가능한 데이터 서버의 총 개수를 자원의 총 개수로 설정하고, 총 자원 개수보다 많은 복제 요청이 있으면 대기(wait) 하도록 한다.
데이터 서버의 복제 상태 정보는 3가지로 표현되며, 복제 진행 중이면 Busy, 복제를 수행하지 않으면 Idle, 그리고 고장 혹은 오프라인 상태이면 FAILED로 표현된다.
한편, 복제 요청 큐(639)는 복제처리기가 데이터 서버로 복제 요청을 하면 이들 정보를 저장 및 관리한다. 복제 요청이 완료된 후에 해당 데이터 서버로부터의 응답 메시지의 복제 요청 식별자를 가지고 해당 복제 요청 정보(634, 635)를 가져와서 처리한다. 또한, 복제 요청의 타임아웃 처리를 위해 복제 요청 정보의 요청 시간을 이용하여 복제 요청의 타임아웃 발생 유무를 판단한다.
복제 처리 리스트(610)에서 복제 처리는 파일 메타데이터의 데이터 블록(611, 612)을 검사하여 복제가 필요하고 데이터 서버 복제 상태 관리 테이블(620)의 해당 데이터 서버의 복제 상태가 Idle인 경우에 복제 요청을 수행한다.
현재 복제 포인터는 복제 처리 리스트(610)에서 점검한 파일 메타데이터의 현재 위치이고, Inspect 포인터는 검사는 하였으나 복제할 수 없는 첫 번째 데이터 블록 포인터이다.
한편, 본 발명은 복제 성능 제어를 제공한다. 복제 성능이 저속일 경우에는 복제 완료 시간이 많이 걸리게 되는데, 그렇게 되면 메타데이터 서버에서는 복제 요청이 진행중임에도 불구하고 타임아웃(time-out)이 발생하여 오동작이 발생할 수 있다. 따라서, 본 발명에서는 후술하는 바와 같이 복제처리기 타임아웃을 이동하여 오동작을 방지한다.
도 7은 복제 성능 제어시 복제처리기와 데이터 서버 사이의 복제처리기 타임아웃을 이동하는 방법을 도시하는 도면이다.
복제처리기는 타임아웃(701)을 설정하여 복제 요청을 보내면, 데이터 서버는 복제를 조금씩 수행하고 sleep하여 복제 속도를 제어한다.
데이터 서버는 복제를 조금씩 수행한 후 sleep하기 전에 복제가 완료되지 않더라도 INPROGRESS 메시지(702)를 복제처리기로 보낸다.
이에 따라, INPROGRESS 메시지를 받은 복제처리기는 해당 복제 요청의 타임아웃 시점을 이동하여 불필요한 타임아웃을 제거할 수 있다.
도 8은 복제처리기에 의한 복제 처리 과정의 전체 흐름도이다.
복제처리기가 기동하면, 우선 목표 복제 개수 값을 얻고(801) 복제 대역폭을 얻는다(802).
이후, 데이터 서버 관리 테이블에서 상태가 GOOD인 데이터 서버 개수를 얻어서(803) 이를 복제 가용 세마포아 값으로 설정한다(804).
이후, 디스크에 저장된 복제 요청 버전 정보를 가져와서(805) 그 값을 하나 증가시켜(806) 이를 복제처리기의 복제 요청 버전 값으로 사용한다. 또한, 복제처리기가 재기동할 시점에 사용하기 위해 갱신된 복제 요청 버전 값을 디스크에 저장한다(807).
메타데이터 서버가 요청한 복제 요청은 높은 순위 복제 큐 또는 낮은 순위 복제 큐에 있다.
일단, 높은 순위 복제 큐가 비워 있지 않으면(810), 목표 큐 복제 개수를 2로 설정하고(830), 높은 순위 복제 큐에서 첫 번째 파일 메타데이터를 가져와서 이를 처리한다(831, 840, 841). 구체적으로, 높은 순위 복제 큐에서 첫 번째 파일 메타데이터를 제거하고(831), 이를 복제 처리 리스트에 넣은 후(840), 복제 처리 리스트에 있는 파일들의 아이노드 복제 요청을 한다(841).
만일 높은 순위 복제 큐가 비워 있고, 낮은 순위 복제 큐가 비워 있지 않으면(820) 목표 큐 복제 개수를 복제처리기의 목표 복제 개수로 설정하고(821) 낮은 순위 복제 큐에서 첫 번째 파일 메타데이터를 가져와서 이를 처리한다(822, 840, 841).
복제 요청을 한 후에는 복제 요청 결과를 기다려서(850), 복제 요청 응답이 도착하면 해당 복제 요청 정보를 복제 처리 리스트와 복제 큐에서 제거한 후(851) 복제가 완료된 해당 메타데이터를 갱신한다(852).
모든 복제가 완료된 후에는 주어진 시간만큼 sleep한 후(860) 처음부터 다시 반복한다.
도 9는 복제처리기의 복제 요청 리스트 처리 흐름도로, 본 발명에 따른 스케줄러 기반 복제를 처리하는 과정을 도시한다.
우선, 파일 아이노드 복제 요청이 있으면(900), Inspector 포인터를 복제 처리 리스트의 첫 번째 파일 아이노드의 첫 번째 데이터 블록으로 설정한 후(901), 복제 처리 리스트가 비워 있는지 검사한다(910).
검사 결과, 복제 처리 리스트가 비워 있지 않으면, 복제 요청 큐의 복제 요청 개수가 (FAILED가 아닌 데이터 서버 개수)/2 보다 크거나 같은지 검사한다(920). 이는 추가 복제 요청이 가능한지 검사하는 것으로, 가능하지 않는다면 복제 가용 세마포아에서 wait를 하게 된다. 이처럼 복제 가용 세마포아에서 wait한 경우, 검사는 하였으나 복제 가능하지 않은 데이터 블록의 복제가 가능할 수 있으므로 Inspector 포인터를 현재 복제 포인터로 설정한다(930).
이후, 현재 복제 포인터의 데이터 블록을 가져와서(931) 복제 필요 유무를 검사, 즉 데이터 블록의 복제 개수가 목표 큐 복제 개수보다 작은지 검사한다(940).
그 결과, 복제가 필요한 경우, 데이터 블록에 대해 복제 요청을 한다(941).
복제 요청이 완료되면, 현재 복제 포인터의 데이터 블록의 파일 메타데이터의 총 데이터 블록의 개수와 현재 복제 포인터의 데이터 블록의 위치(숫자)를 가져온 후(942, 943), 현재 복제 포인터를 저장하기 위해 임시 복제 포인터에 넣는다(944).
이후, 현재 복제 포인터의 데이터 블록이 해당 파일 메타데이터의 마지막 블록인지 검사, 즉 현재 복제 포인터의 데이터 블록의 위치가 해당 (총 데이터 블록 - 1)과 같은지 검사한다(950).
검사 결과, 마지막 블록이 아니면, 현재 복제 포인터를 다음 데이터 블록으로 설정하고(970), 임시 복제 포인터와 Inspector 포인터 값이 같은지 검사한다(980). 그 결과 임시 복제 포인터와 Inspector 포인터 값이 같고, 복제 요청 결과 값이 “요청 실패”가 아닌 경우(즉, 성공인 경우)에는 (990) Inspector 포인터를 현재 복제 포인터로 설정한다(991).
반면, 현재 복제 포인터의 데이터 블록이 해당 파일 메타데이터의 마지막 블록이면, 복제 처리 리스트의 다음 파일 아이노드 메타데이터를 가져온다(960). 만약, 가져올 파일 아이노드 메타데이터가 없으면 처음으로 다시 돌아가서 수행하고, 그렇지 않으면 현재 복제 포인터를 다음 파일 아이노드 메타데이터의 첫 번째 데이터 블록으로 설정한다(962).
한편, 복제 처리 리스트가 비워 있으면 복제 처리를 종료한다(999).
도 10은 도 9의 복제 요청의 처리 흐름도이다.
우선, 복제 요청이 있으면(1000) 복제 요청된 원본 데이터 서버의 복제 사용 유무를 판단한다(1001).
사용 가능한 경우, 복제 가용 세마포아를 하나 얻고(1020), 현재 복제 포인터의 데이터 블록을 가져와서(1021), 데이터 서버를 선택하여 데이터 블록을 할당하고(1022), 파일 메타데이터의 데이터 블록의 복제 개수를 증가시키고(1023), 파일 메타데이터의 데이터 블록의 복제 정보를 위한 메모리를 할당하고(1024), 복제 정보 메모리에 할당된 데이터 블록의 데이터 서버 식별자와 데이터 블록 식별자와 버전 값을 0으로 설정한다(1025).
이후, 새로 할당된 데이터 블록의 해당 데이터 서버의 복제 사용 유무를 판단한다(1026).
그 결과 복제 사용 가능하지 않으면(1030), 획득한 복제 가용 세마포아를 하나 해제하고(1050) 복제 요청 결과값을 “요청 실패”로 설정한 후(1060) 종료한다(1070).
반면, 복제 사용 가능하면(1030), 추가적으로 복제 가용 세마포아를 하나 획득하고(1040), 복제 요청 큐에 삽입한다(1041). 이후, 해당 데이터 서버에 복제 요청을 보내고(1042), 복제 요청 결과값을 “요청 성공”으로 설정한 후(1043) 종료한다(1070).
도 11은 도 10에서 요청한 복제 사용 유무 판단 처리 흐름도이다.
우선, 데이터 서버 관리 테이블에서 해당 데이터 서버에 대한 상태 정보를 가져와서(1101), 이 상태 정보가 GOOD인지 검사한다(1120).
검사 결과, 상태 정보가 GOOD이고 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보가 FAILED가 아니고 IDLE이면(1130, 1150), 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보를 BUSY로 설정하고(1160) 결과 값은 “사용 가능”으로 설정한 후(1161) 종료한다(1190). 반면, 복제 상태 정보가 BUSY인 경우에는 결과 값은 “사용 불가능”으로 설정한 후(1170) 종료한다(1190).
한편, 데이터 서버에 대한 상태 정보가 GOOD이나 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보가 FAILED이면(1130), 복제 가용 세마포아를 하나 해제하고(1131), 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보를 BUSY로 설정하고(1160) 결과 값은 “사용 가능”으로 설정한 후(1161) 종료한다(1190).
반면, 상태 정보가 GOOD이 아니면(1120), 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보가 Idle 혹은 BUSY인지 판단하여(1140), 해당하는 경우 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보를 FAILED로 설정하고(1180) 복제 가용 세마포아를 하나 얻고(1181) 결과 값은 “사용 불가능”으로 설정한 후(1170) 종료한다(1190).
도 12는 복제 요청 정보를 복제 요청 큐에 삽입 처리하는 과정의 흐름도이다.
우선, 복제 요청 정보를 위한 메모리를 할당한다(1201).
이후, 복제 요청 식별자를 얻기 위해서 복제 요청 발급 잠금을 획득하고(1202) 복제 요청 발급 카운터 값을 할당된 복제 요청 정보의 요청 식별자에 넣는다(1203).
이후, 복제 요청 발급 카운터 값을 하나 증가시키고(1204) 복제 요청 발급 잠금을 해제한다(1205).
이후, 할당된 복제 요청 정보에 나머지 필드 값을 넣고(1206), 할당된 복제 요청 정보의 복제 요청 시간은 현재 시간으로 설정한다(1207).
이후, 설정이 완료된 복제 요청 정보를 복제 요청 큐에 넣고(1208) 복제 요청 큐 잠금을 해제한다(1209).
마지막으로, 복제 요청 식별자를 결과 값으로 설정하고(1210) 종료한다 (1220).
도 13은 복제처리기에서 데이터 서버로부터의 복제 요청 응답을 처리하는 과정의 흐름도이다.
우선, Poll에서 이벤터가 발생할 때까지 대기하다가(1301) 이벤트가 발생하면 파일 디스크립터 값을 가져와서(1302) 파일 디스크립터에서 데이터, 즉 네트워크를 통해 데이터 서버로부터 온 복제 요청 응답 메시지를 받고(1303), 응답 메시지의 복제 요청 버전, 요청 식별자 및 결과 상태를 가져온다(1304).
이후, 복제 요청 버전이 복제처리기의 요청 버전과 같은지 판단하여(1310), 다른 경우에는 데이터 서버에게 복제 취소 요청을 보내고 종료한다(1380).
반면, 복제 요청 버전이 복제처리기의 요청 버전과 같은 경우에는 응답 메시지의 복제 요청 식별자를 가지고 복제 요청 큐에서 삭제한다(1311).
복제 요청 큐에 해당 복제 요청이 없으면(1340) 데이터 서버에게 복제 취소 요청을 보내고 종료한다(1380).
반면, 복제 요청 큐에 해당 복제 요청이 존재하면(1340), 복제 응답 정보의 결과 상태가 INPROGRESS인지 판단한다(1350).
그 결과, INGROGRESS인 경우에는 해당 복제 요청 정보를 복제 요청 큐에 재 삽입하고(1360) 데이터 서버에게 복제 요청을 다시 보낸다(1361).
반면, INPROGRESS가 아닌 경우에는 복제 가용 세마포아를 두 개 해제하고(1370, 1371) 복제 처리 리스트를 갱신한 후(1372) 다시 데이터 서버로부터 메시지를 기다린다.
도 14는 복제처리기의 복제 요청 큐 삭제 처리 흐름도이다.
우선, 동시성 제어를 위해 복제 요청 큐 잠금을 획득하고(1401) 복제 요청 큐에서 복제 요청 식별자에 해당하는 엔트리를 찾는다(1402).
해당 엔트리가 존재하면(1410), 해당 엔트리를 복제 요청 큐에서 제거하고(1430) 그 값을 결과 값에 넣는다(1440).
반면, 해당 엔트리가 존재하지 않으면(1410), 결과 값을 NULL로 설정한다(1420).
마지막으로, 획득한 복제 요청 큐 잠금을 해제한 후(1450) 종료한다 (1460).
도 15는 복제 요청 리스트의 갱신 처리 흐름도이다.
우선, 복제 요청 처리 리스트에서 해당 파일 아이노드 메타데이터를 가져오고(1501), 이 정보에서 데이터 서버 식별자와 데이터 블록 식별자에 해당하는 데이터 블록을 가져오고(1502), 데이터 블록의 복제 정보를 가져온다(1503). 이후, 복제를 한 대상 복제의 버전을 입력 받은 버전 번호와 복제 개수를 갱신한다(1504).
이후, 파일 아이노드의 전체 복제 완료 유무를 판단하기 위해서, 파일 아이노드 데이터 블록을 점검한다. 구체적으로, 파일 아이노드의 메타데이터의 총 데이터 블록의 개수를 가져오고(1505), 현재 블록 포인터를 파일 아이노드의 첫 번째 블록으로 설정하고(1506), 현재 블록 포인터의 데이터 블록을 가져와서(1507), 데이터 블록이 목표 큐 복제 개수와 같은지 판단하고(1510), 같은 경우 현재 데이터 블록의 위치(숫자)가 해당 (총 데이터 블록 - 1)과 같은지 판단한다(1520).
마지막 데이터 블록까지 복제가 완료된 경우, 즉 모든 데이터 블록이 목표 복제 개수를 가질 경우에는, 파일 아이노드 메타데이터를 복제 처리 리스트 값으로 갱신하고(1530) 복제 처리 리스트에서 이를 제거한 후(1531) 종료한다(1550).
반면, 복제가 완료되지 않은 경우, 현재 블록 포인터를 다음 데이터 블록으로 설정한 후(1540) 1507 단계로 재진입한다.
도 16은 데이터 서버에서의 복제 요청 처리 흐름도이다.
우선, 복제 요청을 받은 데이터 서버는 읽기 버퍼를 예를 들어, 128K 할당한다(1601). 이후, 복제할 원본 데이터 블록 식별자를 읽기 위해, 데이터 블록 식별자의 파일 디스크립터를 얻고(1602) 읽기 위치를 데이터 블록의 처음으로 한다(1603). 이후, 파일 디스크립터로부터 예를 들어 128K 만큼 읽어서 읽기 버퍼에 넣는다(1604).
이후, 복제 요청의 복제 대역폭이 UNLIMITED인지 판단하여(1610), UNLIMITED인 경우 sleep 시간을 0으로 설정하고(1630) 대상 데이터 서버에게 읽기 버퍼만큼 복제 요청을 보내고 응답을 기다린다(1640, 1641).
완료 메시지를 받으면, 읽기 위치가 데이터 블록의 끝인지 판단하여(1650), 끝이 아닌 경우 읽기 위치를 128K 다음으로 이동한 후(1651) 상술한 과정을 반복 수행한다.
상술한 과정을 데이터 블록의 끝까지 수행한 경우에는, 복제 요청 결과의 결과 상태를 성공으로 설정하고(1660), 복제 요청 결과를 복제처리기에게 보낸 후(1661) 읽기 버퍼를 해제하고(1662) 종료한다(1670).
반면, 복제 요청의 복제 대역폭이 정해져 있으면(1610), sleep 시간을 ((복제 대역폭/서버 최대 대역폭) - ((128KB/서버 최대 대역폭 * N))/N (N = (복제 대역폭/128KB))으로 설정하고(1620) 복제 결과 상태를 INPROGRESS로 설정한 후(1621) 복제 요청 결과를 복제처리기에게 보낸다(1622).
도 17은 복제처리기에서의 복제 요청 타임아웃 처리 흐름도이다.
우선, 체크 인터벌(Check-interval)만큼 sleep한 후(1701), 복제 요청 큐를 검색하기 위해 복제 요청 큐 잠금을 획득한다(1702).
이후, 현재 포인터를 복제 요청 큐의 첫번째 엔트리로 설정하고(1703), 현재 포인터에서 복제 요청 값을 가져온다(1704).
이후, 복제 요청의 요청 시간 값이 (현재 시간 - 타임아웃 기간) 보다 큰지 판단하여(1710), 크지 않으면 타임아웃이 발생했다고 감지하고 현재 포인터를 다음 복제 요청으로 설정한 후(1720) 복제 요청 큐에서 이를 삭제한다(1721). 그렇지 않으면, 복제 요청 큐에 그대로 놓아둔다(1730).
이후, 복제 요청 큐에서 모든 점검이 완료되었는지 판단하여(1740) 완료된 후에는 획득한 복제 요청 큐 잠금을 해제한 후(1750) 종료한다(1760).
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.
111, 11n: 사용자 파일 시스템
120: 메타데이터 관리 서버
131, 13m: 데이터 서버

Claims (15)

  1. 데이터 복제 처리를 위해 필요한 정보를 준비하는 단계;
    높은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계;
    낮은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계;
    복제 요청에 대한 응답을 받으면, 해당 복제 요청 정보를 상기 복제 처리 리스트 및 상기 높은 순위 복제 큐 또는 낮은 순위 복제 큐에서 제거하는 단계; 및
    복제가 완료된 메타데이터를 갱신하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  2. 제 1 항에 있어서, 상기 데이터 복제 처리를 위해 필요한 정보를 준비하는 단계는,
    목표 복제 개수 및 복제 대역폭을 획득하는 단계;
    복제 가용 세마포아 값을 설정하는 단계;
    디스크에 저장된 복제 요청 버전 정보의 값을 하나 증가 시켜 복제 요청 버전 값으로 사용하는 단계; 및
    갱신된 복제 요청 버전 값을 디스크에 저장하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  3. 제 1 항에 있어서, 상기 높은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계는,
    목표 큐 복제 개수를 2로 설정하는 단계;
    상기 높은 순위 복제 큐에서 첫 번째 파일 메타데이터를 제거하여 상기 복제 처리 리스트에 넣는 단계; 및
    상기 복제 처리 리스트에 있는 파일의 아이노드 복제 요청을 하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  4. 제 1 항에 있어서, 상기 낮은 순위 복제 큐의 복제 요청을 복제 처리 리스트에 넣고 복제 요청을 수행하는 단계는,
    목표 큐 복제 개수를 복제처리기의 목표 복제 개수로 설정하는 단계;
    상기 낮은 순위 복제 큐에서 첫 번째 파일 메타데이터를 제거하여 상기 복제 처리 리스트에 넣는 단계; 및
    상기 복제 처리 리스트에 있는 파일의 아이노드 복제 요청을 하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  5. 제 3 항 또는 제 4 항에 있어서,
    상기 파일의 아이노드 복제 요청이 있으면,
    인스펙터(Inspector) 포인터를 상기 복제 처리 리스트의 첫 번째 파일 아이노드의 첫 번째 데이터 블록으로 설정하는 단계;
    상기 복제 처리 리스트가 비어있지 있고 복제 큐의 복제 요청 개수가 (FAILED가 아닌 데이터 서버 개수)/2 이상이면, 상기 인스펙터 포인터를 현재 복제 포인터로 설정하는 단계;
    상기 현재 복제 포인터의 데이터 블록이 복제가 필요한 경우 해당 데이터 블록에 대한 복제 요청을 수행하는 단계;
    상기 현재 복제 포인터를 임시 복제 포인터에 넣는 단계;
    상기 현재 복제 포인터의 데이터 블록이 해당 파일 메타데이터의 마지막 블록이 아니면, 상기 현재 복제 포인터를 다음 데이터 블록으로 설정하는 단계; 및
    상기 임시 복제 포인터와 상기 인스펙터 포인터 값이 같고, 복제 요청 결과가 성공인 경우 상기 인스펙터 포인터를 상기 현재 복제 포인터로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  6. 제 5 항에 있어서,
    상기 현재 복제 포인터의 데이터 블록이 해당 파일 메타데이터의 마지막 블록이면, 상기 복제 처리 리스트의 다음 파일 아이노드 메타데이터를 가져오는 단계; 및
    상기 현재 복제 포인터를 상기 다음 파일 아이노드 메타데이터의 첫 번째 데이터 블록으로 설정하는 단계를 더 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  7. 제 5 항에 있어서,
    상기 데이터 블록에 대한 복제 요청이 있으면, 복제 요청된 원본 데이터 서버의 복제 사용 유무를 판단하는 단계;
    복제 사용 가능한 경우, 복제 가용 세마포아를 하나 얻는 단계;
    현재 복제 포인터의 데이터 블록을 가져와서 데이터 서버를 선택하여 데이터 블록을 할당하는 단계;
    파일 메타데이터의 데이터 블록의 복제 개수를 증가시키는 단계;
    파일 메타데이터의 데이터 블록의 복제 정보를 위한 메모리를 할당하고, 복제 정보 메모리에 할당된 데이터 블록의 데이터 서버 식별자와 데이터 블록 식별자와 버전 값을 0으로 설정하는 단계;
    새로 할당된 데이터 블록의 해당 데이터 서버가 복제 사용 가능하면, 복제 가용 세마포아를 추가로 하나 획득하고 복제 요청 큐에 삽입하며, 해당 데이터 서버에 복제 요청을 보내고 복제 요청 결과값을 요청 성공으로 설정하는 단계; 및
    새로 할당된 데이터 블록의 해당 데이터 서버가 복제 사용 가능하지 않으면, 상기 복제 가용 세마포아를 하나 해제하고 복제 요청 결과값을 요청 실패로 설정하는 단계를 더 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  8. 제 7 항에 있어서, 상기 복제 사용 유무를 판단하는 단계는,
    데이터 서버 관리 테이블에서 해당 데이터 서버의 상태 정보가 GOOD인지 검사하는 단계;
    상기 데이터 서버의 상태 정보가 GOOD이고 데이터 복제 상태 관리 테이블의 데이터 서버의 복제 상태 정보가 IDLE이면, 상기 복제 상태 정보를 BUSY로 설정하고 결과 값을 사용 가능으로 설정하는 단계;
    상기 데이터 서버의 상태 정보가 GOOD이고 상기 복제 상태 정보가 BUSY이면, 결과 값을 사용 불가능으로 설정하는 단계;
    상기 데이터 서버의 상태 정보가 GOOD이고 상기 복제 상태 정보가 FAILED이면, 복제 가용 세마포아를 하나 해제하고 상기 복제 상태 정보를 BUSY로 설정하고 결과 값을 사용 가능으로 설정하는 단계; 및
    상기 데이터 서버의 상태 정보가 GOOD이 아니고 상기 복제 상태 정보가 Idle 또는 BUSY이면, 상기 복제 상태 정보를 FAILED로 설정하고 복제 가용 세마포아를 하나 얻고 결과 값을 사용 불가능으로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  9. 제 7 항에 있어서, 상기 복제 요청 큐에 삽입은,
    복제 요청 정보를 위한 메모리를 할당하는 단계;
    복제 요청 발급 잠금을 획득하는 단계;
    복제 요청 발급 카운터 값을 할당된 복제 요청 정보의 요청 식별자에 넣는 단계;
    상기 복제 요청 발급 카운터 값을 하나 증가시키는 단계;
    상기 복제 요청 발급 잠금을 해제하는 단계;
    상기 할당된 복제 요청 정보의 복제 요청 시간을 현재 시간으로 설정하는 단계;
    설정이 완료된 복제 요청 정보를 상기 복제 요청 큐에 넣는 단계;
    복제 요청 큐 잠금을 해제하는 단계; 및
    복제 요청 식별자를 결과 값으로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  10. 제 1 항에 있어서, 상기 복제 요청에 대한 응답의 처리는,
    응답 메시지의 복제 요청 버전이 복제처리기의 요청 버전과 같은 경우, 상기 응답 메시지의 복제 요청 식별자를 이용하여 복제 요청 큐에서 삭제하는 단계;
    상기 복제 요청 큐에 해당 복제 요청이 존재하고 상기 응답 메시지의 결과 상태가 INGROGRESS인 경우, 해당 복제 요청 정보를 복제 요청 큐에 재 삽입하고 데이터 서버로 복제 요청을 다시 보내는 단계;
    상기 복제 요청 큐에 해당 복제 요청이 존재하고 상기 응답 메시지의 결과 상태가 INGROGRESS가 아닌 경우, 복제 가용 세마포아를 두 개 해제하고 복제 처리 리스트를 갱신하는 단계; 및
    상기 응답 메시지의 복제 요청 버전이 복제처리기의 요청 버전과 다르거나 상기 복제 요청 큐에 해당 복제 요청이 존재하지 않는 경우, 데이터 서버로 복제 취소 요청을 보내는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  11. 제 10 항에 있어서, 상기 복제 요청 큐에서 삭제하는 단계는,
    복제 요청 큐 잠금을 획득하는 단계;
    상기 복제 요청 큐에서 복제 요청 식별자에 해당하는 엔트리가 존재하는 경우, 해당 엔트리를 상기 복제 요청 큐에서 제거하고 그 값을 결과값에 넣는 단계;
    상기 복제 요청 큐에서 해당 엔트리가 존재하지 않는 경우, 결과값을 NULL로 설정하는 단계; 및
    획득한 복제 요청 큐 잠금을 해제하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  12. 제 10 항에 있어서, 상기 복제 처리 리스트를 갱신하는 단계는,
    상기 복제 처리 리스트의 해당 파일 아이노드 메타데이터에서 데이터 서버 식별자와 데이터 블록 식별자에 해당하는 데이터 블록을 가져오는 단계;
    상기 데이터 블록의 복제 정보를 가져오는 단계;
    복제 대상의 버전 번호와 복제 개수를 갱신하는 단계;
    상기 파일 아이노드의 전체 복제 완료 유무를 판단하는 단계;
    전체 복제가 완료된 경우, 상기 파일 아이노드 메타데이터를 복제 처리 리스트 값으로 갱신하고 상기 복제 처리 리스트에서 제거하는 단계; 및
    전체 복제가 완료되지 않은 경우, 현재 블록 포인터를 다음 데이터 블록으로 설정하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  13. 제 1 항에 있어서, 상기 복제 요청의 처리는,
    임의의 크기의 읽기 버퍼를 할당하는 단계;
    데이터 블록 식별자의 파일 디스크립터를 얻고 읽기 위치를 데이터 블록의 처음으로 설정하는 단계;
    상기 파일 디스크립터로부터 읽기 버퍼만큼 데이터를 읽어서 읽기 버퍼에 넣는 단계;
    상기 복제 요청의 복제 대역폭이 UNLIMITED인 경우, 슬립(sleep) 시간을 0으로 설정하고 대상 데이터 서버에게 읽기 버퍼만큼 복제 요청을 보내는 단계;
    상기 복제 요청의 복제 대역폭이 정해진 경우, 슬립 시간을 ((복제 대역폭/서버 최대 대역폭) - ((읽기 버퍼 크기/서버 최대 대역폭 * N))/N (N = (복제 대역폭/읽기 버퍼 크기))으로 설정하고, 복제 결과 상태를 INPROGRESS로 설정한 후 복제 요청 결과를 복제처리기로 보내는 단계;
    읽기 위치가 데이터 블록의 끝이 아닌 경우 상기 읽기 위치를 상기 읽기 버퍼만큼 다음으로 이동하는 단계; 및
    데이터 블록의 끝까지 수행한 경우, 복제 요청 결과의 결과 상태를 성공으로 설정하고, 복제 요청 결과를 복제처리기에게 보낸 후 읽기 버퍼를 해제하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  14. 제 1 항에 있어서,
    복제 요청 타임아웃 처리 단계를 더 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
  15. 제 14 항에 있어서, 상기 복제 요청 타임아웃 처리 단계는,
    복제 요청 큐 잠금을 획득하는 단계;
    현재 포인터를 복제 요청 큐의 첫번째 엔트리로 설정하고 상기 현재 포인터에서 복제 요청 값을 가져오는 단계;
    상기 복제 요청의 요청 시간 값이 (현재 시간 - 타임아웃 기간) 보다 크지 않으면, 상기 현재 포인터를 다음 복제 요청으로 설정한 후 상기 복제 요청 큐에서 삭제하는 단계;
    상기 복제 요청 큐의 점검이 모두 완료된 경우, 획득한 복제 요청 큐 잠금을 해제하는 단계를 포함하는 것을 특징으로 하는 스케줄러기반 데이터 서버간 데이터 복제 방법.
KR1020110142138A 2011-12-26 2011-12-26 스케줄러기반 데이터 서버간 데이터 복제 방법 KR20130074207A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110142138A KR20130074207A (ko) 2011-12-26 2011-12-26 스케줄러기반 데이터 서버간 데이터 복제 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110142138A KR20130074207A (ko) 2011-12-26 2011-12-26 스케줄러기반 데이터 서버간 데이터 복제 방법

Publications (1)

Publication Number Publication Date
KR20130074207A true KR20130074207A (ko) 2013-07-04

Family

ID=48988362

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110142138A KR20130074207A (ko) 2011-12-26 2011-12-26 스케줄러기반 데이터 서버간 데이터 복제 방법

Country Status (1)

Country Link
KR (1) KR20130074207A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103578120A (zh) * 2013-11-11 2014-02-12 浙江大学 保持时序平稳与低秩结构特性的三维人体运动数据补全方法
KR102175999B1 (ko) * 2019-06-11 2020-11-06 성균관대학교산학협력단 컴퓨터 시스템에서의 입출력 완료 방법 및 이를 위한 컴퓨터 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103578120A (zh) * 2013-11-11 2014-02-12 浙江大学 保持时序平稳与低秩结构特性的三维人体运动数据补全方法
CN103578120B (zh) * 2013-11-11 2016-03-30 浙江大学 保持时序平稳与低秩结构特性的三维人体运动数据补全方法
KR102175999B1 (ko) * 2019-06-11 2020-11-06 성균관대학교산학협력단 컴퓨터 시스템에서의 입출력 완료 방법 및 이를 위한 컴퓨터 시스템

Similar Documents

Publication Publication Date Title
US11860900B2 (en) Log-based distributed transaction management
US11816063B2 (en) Automatic archiving of data store log data
US9563636B2 (en) Allowing writes to complete without obtaining a write lock to a file
CN102317938B (zh) 用于复制内容可寻址存储集群的异步分布式去重
CA2676593C (en) Scalable secondary storage systems and methods
JP6044539B2 (ja) 分散ストレージシステムおよび方法
CN105843551B (zh) 高性能和大容量储存重复删除中的数据完整性和损耗电阻
US8635421B2 (en) Snapshot based replication
US11144252B2 (en) Optimizing write IO bandwidth and latency in an active-active clustered system based on a single storage node having ownership of a storage object
US9984139B1 (en) Publish session framework for datastore operation records
US8423517B2 (en) System and method for determining the age of objects in the presence of unreliable clocks
CN106528338B (zh) 一种远程数据复制方法、存储设备及存储系统
JP6133396B2 (ja) 計算機システム、サーバ、及び、データ管理方法
US10977143B2 (en) Mirrored write ahead logs for data storage system
CN112334891B (zh) 用于搜索服务器的集中式存储
WO2015156000A1 (ja) 計算機システム、データの検査方法及び計算機
CN104079600A (zh) 文件存储方法、装置、访问客户端及元数据服务器系统
US10719497B2 (en) Utilization of optimized ordered metadata structure for container-based large-scale distributed storage
KR20130074207A (ko) 스케줄러기반 데이터 서버간 데이터 복제 방법
CN104125285A (zh) 一种高io吞吐量的云存储读写方法
US20210064272A1 (en) Multi-tier storage
CN114201109A (zh) 跟踪存储卷在数据传递期间的变化
US8301609B1 (en) Collision detection and data corruption protection during an on-line database reorganization
JPWO2016088372A1 (ja) アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びプログラム
CN115604290B (zh) Kafka消息执行方法、装置、设备及存储介质

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid