KR102111555B1 - 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법 및 장치 - Google Patents

단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법 및 장치 Download PDF

Info

Publication number
KR102111555B1
KR102111555B1 KR1020170123771A KR20170123771A KR102111555B1 KR 102111555 B1 KR102111555 B1 KR 102111555B1 KR 1020170123771 A KR1020170123771 A KR 1020170123771A KR 20170123771 A KR20170123771 A KR 20170123771A KR 102111555 B1 KR102111555 B1 KR 102111555B1
Authority
KR
South Korea
Prior art keywords
database
duplicate
file
change
original
Prior art date
Application number
KR1020170123771A
Other languages
English (en)
Other versions
KR20180054423A (ko
Inventor
원유집
꽝 투안 담
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of KR20180054423A publication Critical patent/KR20180054423A/ko
Application granted granted Critical
Publication of KR102111555B1 publication Critical patent/KR102111555B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • 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
    • G06F16/1815Journaling file systems

Landscapes

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

Abstract

단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법을 개시한다. 본 발명의 일 실시예에 따른 단일 어플리케이션에 의해 이용되는 원본데이터베이스를 복제한 복제데이터베이스를 이용하여 데이터베이스를 저널링하는 방법은 상기 단일 어플리케이션에 의한 상기 원본데이터베이스의 변경을 상기 복제데이터베이스에 반영하는 단계; 상기 원본데이터베이스와 상기 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성하는 단계; 및 상기 제2 복제데이터베이스에 상기 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 기록하는 단계를 포함한다.

Description

단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법 및 장치{METHOD AND APPARATUS FOR JOURNALING OF FILE-BASED DATABASE WHICH IS USED BY ONE APPLICATION}
본 발명은 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법 및 장치에 관한 것으로, 보다 상세하게는 단일 어플리케이션에 의해서 이용되는 원본데이터베이스와 그 원본데이터베이스를 복제한 복제데이터베이스를 이용하는 저널링 방법 및 장치에 관한 것이다.
데이터베이스는 데이터의 무결성을 보장하기 위하여 데이터 저널링 방식을 채택하고 있다. 모바일용 데이터베이스 중 하나인 SQLite는 저널링을 위해 대표적으로 PERSIST, WAL모드를 제공 하며, 그 밖에도 DELETE, TRUNCATE, MEMORY, NONE 모드를 기본적으로 제공 한다. PERSIST 모드는 데이터베이스의 데이터를 변경하기 전에 저널파일에 기록함으로써 무결성을 보장하지만 무거운 시스템콜(예, fdatasync)를 자주 사용해야 한다. DELETE와 TRUNCATE 모드의 경우 저널 파일의 생성/삭제에 있어서 차이가 있으며, MEMORY와 NONE 모드는 데이터 무결성을 보장해 주지 않는다. WAL 모드는 저널 파일의 마지막 위치에 업데이트 내용을 붙이기 때문에 데이터 파일에 직접 기록하는 것 보다 빠르고 가볍게 동작 한다.
그러나, SQLite의 저널 모드 중에서 WAL은 쓰기 요청 시 효율적이라는 장점이 있지만, 읽기 요청을 실행할 때는 현재의 로그 파일과 데이터 파일을 참조해서 처리해야 한다는 단점이 있다. 또한, 모바일 환경에서 EXT4와 같이 사용될 때는 설계상의 문제로 인하여 추가적인 입출력 성능 하락이 발생한다. PERSIST 모드의 경우 한 번의 트렌젝션 당 5번의 시스템 콜을 필요로 하기 때문에 전반적인 데이터베이스 성능 하락의 요인이 된다.
따라서, 단일 어플리케이션이 이용하는 파일 기반 데이터베이스에 대하여, 데이터 저널링 방식을 채택하고 있으면서도, 모바일 시스템의 성능을 저하시키지 않는 우수한 성능을 가진 저널링 방법 및 장치에 대한 필요성이 대두되고 있다.
관련 선행기술로는 대한민국 등록특허공보 제10-1258589호(발명의 명칭: 저널링 파일 시스템에 따라 데이터를 기록한 정보저장매체, 저널링 파일 시스템을 이용해서 데이터를 기록/복구하는 방법 및 장치, 공고일자: 2013년 5월 2일)가 있다.
본 발명은 단일 어플리케이션에 의해 이용되는 파일 기반 데이터베이스에 적용가능하며, 성능의 저하가 작으면서도 저널링 기능을 지원하여 데이터의 무결성을 보장할 수 있는 저널링 방법 및 장치를 제공하고자 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위하여, 본 발명에서 제공하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법은 단일 어플리케이션에 의해 이용되는 원본데이터베이스를 복제한 복제데이터베이스를 이용하여 데이터베이스를 저널링하는 방법에 있어서, 상기 단일 어플리케이션에 의한 상기 원본데이터베이스의 변경을 상기 복제데이터베이스에 반영하는 단계; 상기 원본데이터베이스와 상기 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성하는 단계; 및 상기 제2 복제데이터베이스에 상기 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 기록하는 단계를 포함한다.
바람직하게는, 상기 제2 복제데이터베이스를 생성하는 단계의 이전에, 상기 복제데이터베이스에 대하여, 데이터베이스의 변경상태를 나타내는 정보인 변경정보를 소정의 기준에 따라 갱신하는 단계를 더 포함할 수 있다.
바람직하게는, 상기 완료정보를 기록하는 단계는 상기 변경정보를 초기화하여 기록함으로써, 상기 완료정보를 기록할 수 있다.
바람직하게는, 상기 변경정보가 데이터베이스의 변경상태를 나타내는 상태값을 포함할 때, 상기 복제데이터베이스의 변경정보는 상기 원본데이터베이스의 변경정보보다 소정의 크기만큼 큰 상태값을 포함하도록 갱신되고, 상기 제2 복제데이터베이스의 변경정보에 포함된 상태값은 소정의 초기값으로 초기화될 수 있다.
바람직하게는, 상기 원본데이터베이스 또는 상기 복제데이터베이스 파일의 변경을 저장장치와 동기화하는 함수인 동기화함수가 상기 복제데이터베이스에 반영하는 단계 및 상기 완료정보를 기록하는 단계 각각에 대응되어 호출될 수 있다.
또한, 상기 과제를 해결하기 위하여, 본 발명에서 제공하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치는 단일 어플리케이션에 의해 이용되는 원본데이터베이스를 복제한 복제데이터베이스를 이용하여 데이터베이스를 저널링하는 장치에 있어서, 상기 단일 어플리케이션에 의한 상기 원본데이터베이스의 변경을 상기 복제데이터베이스에 반영하는 파일갱신부; 및 상기 원본데이터베이스와 상기 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성하는 파일교환부를 포함하고, 상기 파일갱신부는 상기 제2 복제데이터베이스에 상기 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 더 기록한다.
바람직하게는, 상기 파일갱신부는 상기 복제데이터베이스에 대하여, 데이터베이스의 변경상태를 나타내는 정보인 변경정보를 소정의 기준에 따라 더 갱신할 수 있다.
바람직하게는, 상기 파일갱신부는 상기 변경정보를 초기화하여 기록함으로써, 상기 완료정보를 기록할 수 있다.
바람직하게는, 상기 변경정보가 데이터베이스의 변경상태를 나타내는 상태값을 포함할 때, 상기 복제데이터베이스의 변경정보는 상기 원본데이터베이스의 변경정보보다 소정의 크기만큼 큰 상태값을 포함하도록 갱신되고, 상기 제2 복제데이터베이스의 변경정보에 포함된 상태값은 소정의 초기값으로 초기화될 수 있다.
바람직하게는, 상기 원본데이터베이스 또는 상기 복제데이터베이스 파일의 변경을 저장장치와 동기화하는 함수인 동기화함수가 상기 파일갱신부가 상기 원본데이터베이스의 변경을 상기 복제데이터베이스에 반영할 때 및 상기 파일교환부가 상기 제2 원본데이터베이스와 상기 제2 복제데이터베이스를 생성할 때 각각 호출될 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 첨부 도면들에 포함되어 있다.
본 발명은 단일 어플리케이션이 이용하는 파일 기반 데이터베이스에 대하여, 원본데이터베이스와 그 원본데이터베이스를 복제한 복제데이터베이스를 이용하는 저널링 모드를 도입하여 데이터의 무결성을 보장하면서도 성능의 저하를 방지할 수 있는 효과가 있다.
또한, 단일 어플리케이션이 파일 기반 데이터베이스를 이용한다는 특징을 이용하여 파일의 I/O를 최소화 함으로써, 데이터베이스의 성능 저하를 방지할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 다른 실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치를 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법을 설명하기 위한 흐름도이다.
저널링 파일 시스템(journaling file system)은 시스템 충돌이나 전원 중단 등의 경우에, 디스크의 무결성을 유지시킬 수 있는 파일 시스템이다. 보다 구체적으로는, 디스크의 데이터 영역에서 일어나는 모든 내용을 로그로 유지하면서 충돌이 발생하면 로그에 있는 메타데이터로 유실 데이터를 다시 만들어 충돌 전으로 데이터를 되돌려 줄 뿐 아니라 저장되지 않은 데이터도 제자리에 저장하도록 할 수 있다.
본 발명은 저널링 파일 시스템과 같이, 파일 기반의 데이터베이스에 대하여 시스템 충돌이나 전원 중단이 발생된 경우에, 그 데이터베이스를 복구할 수 있도록 하는 저널링 방법 및 장치에 관한 것이다. 이때, 본 발명의 저널링 방법 및 장치는 안드로이드, iOS 또는 기타OS 기반의 스마트폰, 모바일기기, 태블릿기기 및 웨어러블 기기 등에 적용 또는 탑재될 수 있음은 물론이며, 노트북, 데스크탑PC 및 서버 등에 이르기까지 다양한 컴퓨터 장치에 적용 또는 탑재될 수 있다.
보다 구체적으로는, 본 발명의 저널링 방법 및 장치는 원본데이터베이스에 적용하고자 하는 변경 사항을 복제데이터베이스에 기록하고, 기록이 완료되면 원본데이터베이스와 복제데이터베이스를 맞바꿔 교환하는 방식으로 동작할 수 있다. 이때, 원본데이터베이스와 복제데이터베이스 각각은 데이터베이스의 변경상태를 나타내는 정보인 변경정보를 포함할 수 있으며, 이 변경상태는 상태값으로 나타낼 수 있다.
예컨대, 초기에 원본데이터베이스와 복제데이터베이스의 상태값은 <n, 0>이 될 수 있다. 그 다음, 복제데이터베이스에 변경 사항의 기록이 완료(즉, 트랜잭션이 완료)되면 상태값은 <n, n+1>이 될 수 있다. 그 다음, 원본데이터베이스와 복제데이터베이스에 해당하는 파일을 교환하고 나면 상태값은 <n+1, n>이 될 수 있다. 마지막으로, 새로운 제2 원본데이터베이스(기존의 복제데이터베이스)와 제2 원본데이터베이스를 복제한 제2 복제데이터베이스의 상태값은 <n+1, 0>이 되어, 다시 저널링이 수행될 수 있다. 한편, 상술한 본 발명의 저널링 방법은 SHADOW 모드라고 명명할 수 있다.
단계 S110에서는, 데이터베이스 저널링 장치가 단일 어플리케이션에 의한 원본데이터베이스의 변경을 복제데이터베이스에 반영한다.
이때, 데이터베이스 저널링 장치는 원본데이터베이스 및 복제데이터베이스가 단일 어플리케이션에 의해서만 이용된다고 가정할 수 있다. 따라서, 그 단일 어플리케이션은 복수의 어플리케이션이 데이터베이스를 이용할 때처럼 잠금(lock) 및 잠금해제(unlock) 과정을 거치면서 데이터베이스를 이용할 필요가 없이, 필요한 경우에는 언제든지 데이터베이스를 이용할 수 있다.
즉, 데이터베이스 저널링 장치가 원본데이터베이스에서 바꾸고자 하는 변경 사항을 복제데이터베이스에 반영할 수 있다.
단계 S120에서는, 데이터베이스 저널링 장치가 원본데이터베이스와 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성한다.
예컨대, 데이터베이스 저널링 장치가 복제데이터베이스 파일(shadow file)의 이름을 변경하여 제2 원본데이터베이스 파일을 생성하고, 원본데이터베이스(database file)의 파일의 이름을 변경하여 제2 복제데이터베이스 파일을 생성할 수 있다.
마지막으로 단계 S130에서는, 데이터베이스 저널링 장치가 제2 복제데이터베이스에 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 기록한다.
즉, 데이터베이스 저널링 장치가 제2 복제데이터베이스 파일에 그 단일 어플리케이션에 의한 변경에 포함되는 적어도 하나의 트랜잭션이 완료되었음을 나타내는 완료정보를 기록할 수 있다. 데이터베이스 저널링 장치는 새로 생성된 제2 복제데이터베이스 파일에 이 완료정보가 기록되어 있는지 여부에 따라 그 단일 어플리케이션에 의한 변경의 적용이 완료되었는지 판단할 수 있다.
다른 실시예에서는, 원본데이터베이스 또는 복제데이터베이스 파일의 변경을 저장장치와 동기화하는 함수인 동기화함수가 단계 S110 및 S130 각각에 대응되어 호출될 수 있다.
예컨대, 데이터베이스 저널링 장치가 리눅스 또는 유닉스에 기반하는 경우, 동기화함수는 fdatasync()함수일 수 있으며, 단계 S110 및 S130 각각이 수행될 때마다 fdatasync()함수가 한차례씩만 호출됨으로써, 총 2차례 동기화함수가 호출되어 5차례가 호출되는 종래의 기술(SQLite)과 비교하여 파일 I/O를 줄일 수 있는 효과가 있다.
이와 같이, 본 발명의 일실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법은 파일 기반 데이터베이스에 대하여, 원본데이터베이스와 그 원본데이터베이스를 복제한 복제데이터베이스를 이용하는 저널링 모드를 도입하여 데이터의 무결성을 보장하면서도 성능의 저하를 방지할 수 있는 효과가 있다.
도 2는 본 발명의 다른 실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법을 설명하기 위한 흐름도이다.
단계 S210에서는, 데이터베이스 저널링 장치가 단일 어플리케이션에 의한 원본데이터베이스의 변경을 복제데이터베이스에 반영한다.
단계 S220에서는, 데이터베이스 저널링 장치가 복제데이터베이스에 대하여, 데이터베이스의 변경상태를 나타내는 정보인 변경정보를 소정의 기준에 따라 갱신한다.
예컨대, 데이터베이스 저널링 장치가 파일 기반의 데이터베이스인 원본데이터베이스와 복제데이터베이스에 접근하여, 원본데이터베이스와 복제데이터베이스 각각의 변경상태에 관한 정보인 변경정보를 소정의 기준에 따라 기록할 수 있다. 즉, 데이터베이스 저널링 장치는 원본데이터베이스의 변경이 복제데이터베이스에 반영되었음을 나타내기 위하여 변경정보를 갱신할 수 있다.
보다 구체적으로, 데이터베이스 저널링 장치가 변경정보를 갱신하기 위하여, 데이터베이스 파일의 헤더에 존재하는 변경상태값(change count)에 일정한 크기(예, +1)의 값을 더하여 갱신할 수 있다. 이와 같이, 데이터베이스 저널링 장치가 데이터베이스 파일에 변경정보를 갱신함으로써, 추후 시스템 충돌 및 전원 중단이 발생하였을 때, 이 변경정보를 이용하여 데이터베이스를 복구할 수 있다.
이때, 데이터베이스 저널링 장치는, 원본데이터베이스 및 복제데이터베이스가 단일 어플리케이션에 의해서만 이용된다고 가정할 수 있으므로, 단계 S210 및 S220을 수행한 후에, 단 한차례만 그 단계 S210 및 S220의 변경을 저장장치와 동기화함으로써, 파일 I/O의 빈번한 수행에 따른 시스템의 성능저하를 최소화할 수 있다. 한편, 단계 S210 및 S220은 필요에 따라 그 순서가 변경되어 수행될 수 있다.
단계 S230에서는, 데이터베이스 저널링 장치가 원본데이터베이스와 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성한다.
마지막으로 단계 S240에서는, 데이터베이스 저널링 장치가 제2 복제데이터베이스에 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 기록한다.
다른 실시예에서는, 데이터베이스 저널링 장치가 변경정보를 초기화하여 기록함으로써, 완료정보를 기록할 수 있다.
예컨대, 데이터베이스 저널링 장치는 데이터베이스 파일의 헤더에 존재하는 변경상태값을 0으로 초기화하여 기록함으로써, 완료정보를 기록할 수 있다. 즉, 데이터베이스 저널링 장치는 변경상태값에 0이 저장된 경우, 그 데이터베이스 파일에 완료정보가 기록된 것으로 간주할 수 있다.
또 다른 실시예에서는, 변경정보가 데이터베이스의 변경상태를 나타내는 상태값을 포함할 때, 복제데이터베이스의 변경정보는 원본데이터베이스의 변경정보보다 소정의 크기만큼 큰 상태값을 포함하도록 갱신되고, 제2 복제데이터베이스의 변경정보에 포함된 상태값은 소정의 초기값으로 초기화될 수 있다.
예컨대, 데이터베이스 파일의 헤더에 존재하는 변경상태값이 n인 원본데이터베이스에 관한 변경사항이 복제데이터베이스에 반영된 경우, 그 복제데이터베이스의 변경상태값을 n+1로 1만큼 증가시킬 수 있다.
또한, 원본데이터베이스와 복제데이터베이스의 교환이 완료되어 새로운 제2 원본데이터베이스와 그 제2 원본데이터베이스를 복제한 제2 복제데이터베이스가 생성된 경우, 제2 복제데이터베이스파일의 헤더에 존재하는 변경상태값을 0으로 초기화하여 다시 저널링을 수행할 수 있는 상태임을 나타낼 수 있다
도 3은 본 발명의 일 실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치를 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치(300)는 파일갱신부(310) 및 파일교환부(320)를 포함한다.
파일갱신부(310)는 단일 어플리케이션에 의한 원본데이터베이스의 변경을 복제데이터베이스에 반영한다.
파일교환부(320)는 원본데이터베이스와 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성한다.
이때, 파일갱신부(310)는 제2 복제데이터베이스에 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 더 기록할 수 있다.
다른 실시예에서는, 파일갱신부(310)는 변경정보를 초기화하여 기록함으로써, 완료정보를 기록할 수 있다.
또 다른 실시예에서는, 변경정보가 데이터베이스의 변경상태를 나타내는 상태값을 포함할 때, 복제데이터베이스의 변경정보는 원본데이터베이스의 변경정보보다 소정의 크기만큼 큰 상태값을 포함하도록 갱신되고, 제2 복제데이터베이스의 변경정보에 포함된 상태값은 소정의 초기값으로 초기화될 수 있다.
또 다른 실시예에서는, 원본데이터베이스 또는 복제데이터베이스 파일의 변경을 저장장치와 동기화하는 함수인 동기화함수가 파일갱신부(310)가 원본데이터베이스의 변경을 복제데이터베이스에 반영할 때 및 파일교환부(320)가 제2 원본데이터베이스와 제2 복제데이터베이스를 생성할 때 각각 호출될 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (10)

  1. 단일 어플리케이션에 의해 이용되는 원본데이터베이스를 복제한 복제데이터베이스를 이용하여 데이터베이스를 저널링하는 방법에 있어서,
    상기 단일 어플리케이션에 의한 상기 원본데이터베이스의 변경을 상기 복제데이터베이스에 반영하는 단계;
    상기 원본데이터베이스와 상기 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성하는 단계; 및
    상기 제2 복제데이터베이스에 상기 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 기록하는 단계를 포함하고,
    상기 원본데이터베이스와 상기 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성하는 단계는
    상기 복제데이터베이스의 이름을 변경하여 상기 제2 원본데이터베이스를 생성하고, 상기 원본데이터베이스의 이름을 변경하여 제2 복제데이터베이스를 생성하고,
    상기 제2 복제데이터베이스를 생성하는 단계의 이전에,
    상기 복제데이터베이스에 대하여, 데이터베이스의 변경상태를 나타내는 정보인 변경정보를 소정의 기준에 따라 갱신하는 단계를 포함하고,
    상기 변경정보를 소정의 기준에 따라 갱신하는 단계는 상기 데이터베이스의 헤더에 존재하는 변경 상태값에 일정한 크기의 값을 더하여 갱신하는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 완료정보를 기록하는 단계는
    상기 데이터베이스의 헤더에 존재하는 변경상태값을 0으로 초기화하여 기록함으로써, 상기 완료 정보를 기록하는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법.
  4. 제3항에 있어서,
    상기 변경정보가 데이터베이스의 변경상태를 나타내는 상태값을 포함할 때,
    상기 복제데이터베이스의 변경정보는 상기 원본데이터베이스의 변경정보보다 소정의 크기만큼 큰 상태값을 포함하도록 갱신되고,
    상기 제2 복제데이터베이스의 변경정보에 포함된 상태값은 소정의 초기값으로 초기화되고,
    상기 변경정보가 데이터베이스의 변경상태를 나타내는 상태값이 n인 경우, 상기 복제데이터베이스의 변경 상태값을 n+1로 증가시키는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법.
  5. 제1항에 있어서,
    상기 원본데이터베이스 및 상기 복제데이터베이스에 해당하는 파일의 변경을 저장장치와 동기화하는 함수인 동기화함수가
    상기 복제데이터베이스에 반영하는 단계 및 상기 완료정보를 기록하는 단계 각각에 대응되어 호출되는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법.
  6. 단일 어플리케이션에 의해 이용되는 원본데이터베이스를 복제한 복제데이터베이스를 이용하여 데이터베이스를 저널링하는 장치에 있어서,
    상기 단일 어플리케이션에 의한 상기 원본데이터베이스의 변경을 상기 복제데이터베이스에 반영하는 파일갱신부; 및
    상기 원본데이터베이스와 상기 복제데이터베이스를 상호 교환(switch)하여 제2 원본데이터베이스와 제2 복제데이터베이스를 생성하는 파일교환부
    를 포함하고,
    상기 파일갱신부는
    상기 제2 복제데이터베이스에 상기 원본데이터베이스의 변경이 완료되었음을 나타내는 정보인 완료정보를 더 기록하고,
    상기 파일갱신부는
    상기 복제데이터베이스에 대하여, 데이터베이스의 변경상태를 나타내는 정보인 변경정보를 소정의 기준에 따라 갱신하고,
    상기 파일갱신부는
    상기 데이터베이스의 헤더에 존재하는 변경 상태값에 일정한 크기의 값을 더하여 갱신하고,
    상기 파일 교환부는 상기 복제데이터베이스의 이름을 변경하여 상기 제2 원본데이터베이스를 생성하고, 상기 원본데이터베이스의 이름을 변경하여 제2 복제데이터베이스를 생성하는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치.
  7. 삭제
  8. 제6항에 있어서,
    상기 파일갱신부는
    상기 변경정보를 초기화하여 기록함으로써, 상기 완료정보를 기록하는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치.
  9. 제8항에 있어서,
    상기 변경정보가 데이터베이스의 변경상태를 나타내는 상태값을 포함할 때,
    상기 복제데이터베이스의 변경정보는 상기 원본데이터베이스의 변경정보보다 소정의 크기만큼 큰 상태값을 포함하도록 갱신되고,
    상기 제2 복제데이터베이스의 변경정보에 포함된 상태값은 소정의 초기값으로 초기화되는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치.
  10. 제6항에 있어서,
    상기 원본데이터베이스 및 상기 복제데이터베이스에 해당하는 파일의 변경을 저장장치와 동기화하는 함수인 동기화함수가
    상기 파일갱신부가 상기 원본데이터베이스의 변경을 상기 복제데이터베이스에 반영할 때 및 상기 파일교환부가 상기 제2 원본데이터베이스와 상기 제2 복제데이터베이스를 생성할 때 각각 호출되는 것을 특징으로 하는 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 장치.

KR1020170123771A 2016-11-15 2017-09-25 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법 및 장치 KR102111555B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160152143 2016-11-15
KR20160152143 2016-11-15

Publications (2)

Publication Number Publication Date
KR20180054423A KR20180054423A (ko) 2018-05-24
KR102111555B1 true KR102111555B1 (ko) 2020-05-18

Family

ID=62296936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170123771A KR102111555B1 (ko) 2016-11-15 2017-09-25 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102111555B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236256A (ja) * 2000-02-23 2001-08-31 Hitachi Ltd 電子化情報分散配置方法、データベース分散配置システム、および、遠隔管理システム
JP2012226453A (ja) * 2011-04-15 2012-11-15 Toshiba Corp データベース装置およびデータベース再編成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100913196B1 (ko) * 2007-12-11 2009-08-24 한국전자통신연구원 파일 갱신 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236256A (ja) * 2000-02-23 2001-08-31 Hitachi Ltd 電子化情報分散配置方法、データベース分散配置システム、および、遠隔管理システム
JP2012226453A (ja) * 2011-04-15 2012-11-15 Toshiba Corp データベース装置およびデータベース再編成方法

Also Published As

Publication number Publication date
KR20180054423A (ko) 2018-05-24

Similar Documents

Publication Publication Date Title
US11520670B2 (en) Method and apparatus for restoring data from snapshots
US10261719B2 (en) Volume and snapshot replication
US10936547B2 (en) Filesystem replication using a minimal filesystem metadata changelog
US10169606B2 (en) Verifiable data destruction in a database
US9645892B1 (en) Recording file events in change logs while incrementally backing up file systems
CN110209735B (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
US20190266177A1 (en) Data backup method and apparatus
US8433863B1 (en) Hybrid method for incremental backup of structured and unstructured files
KR100961739B1 (ko) 가상화를 이용한 원격 복제의 일관성 유지방법
US11093387B1 (en) Garbage collection based on transmission object models
US20100161688A1 (en) Asynchronous distributed garbage collection for replicated storage clusters
US20040186970A1 (en) Method and apparatus for creating a virtual data copy
US11397749B2 (en) Asynchronous replication of in-scope table data
US10628298B1 (en) Resumable garbage collection
JP2012164343A (ja) データの削除を管理するための方法
CN111125021B (zh) 从异步远程系统有效恢复文件系统图像的一致视图的方法和系统
JP5292350B2 (ja) メッセージキュー管理システム及びロックサーバ及びメッセージキュー管理方法及びメッセージキュー管理プログラム
US8595271B1 (en) Systems and methods for performing file system checks
CN114490509A (zh) 跟踪改变数据捕获日志历史
KR102111555B1 (ko) 단일 어플리케이션이 이용하는 파일 기반 데이터베이스의 저널링 방법 및 장치
KR102024719B1 (ko) 파일 기반 데이터베이스의 저널링 방법 및 장치
US11645333B1 (en) Garbage collection integrated with physical file verification
JP2007264814A (ja) レプリケーションデータ作成プログラム、レプリケーションデータ反映プログラムおよびデータベース装置
US11243982B2 (en) Immutable partitioning for databases
JP4086723B2 (ja) インデックスファイル処理方式,方法,およびプログラム

Legal Events

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