KR20080001230A - 공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및트랜잭션 철회 방법 - Google Patents
공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및트랜잭션 철회 방법 Download PDFInfo
- Publication number
- KR20080001230A KR20080001230A KR1020060059417A KR20060059417A KR20080001230A KR 20080001230 A KR20080001230 A KR 20080001230A KR 1020060059417 A KR1020060059417 A KR 1020060059417A KR 20060059417 A KR20060059417 A KR 20060059417A KR 20080001230 A KR20080001230 A KR 20080001230A
- Authority
- KR
- South Korea
- Prior art keywords
- log
- type
- transaction
- spatial data
- log record
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및 트랜잭션 철회 방법에 관한 것이다.
데이터 크기에 따른 선별적인 회복 기법 적용을 위해 데이터 크기를 SMALL, MIDDLE, LARGE로 구분하고, MIDDLE 데이터에 대해 새로운 로그 타입인 APR(Anchored Physical log Record)을 적용한다. 이는 트랜잭션의 회복과 철회 시 필요한 이미지를 세그먼트에 두고, 해당되는 anchor 정보만 로그파일에 기록하는 방법으로, 이를 통해 트랜잭션 철회 시 로그 버퍼 풀로 인하여 발생되는 디스크 입출력 시간을 줄일 수 있을 뿐만 아니라, 트랜잭션 철회 시 기록되는 보상 로그의 양을 줄여 공간 DMBS(DataBase Management System) 시스템의 회복 처리 성능을 크게 향상시킬 수 있다.
공간 데이터, 데이터 베이스 관리 시스템, 가변 길이, APR, GIS, 로그, 회복기법
Description
도 1은 본 발명의 실시예에 따른 로그 레코드 타입에 따른 저장 내용의 예시도이다.
도 2는 본 발명의 실시예에 따른 공간 데이터의 크기를 고려한 선별적 회복 장치의 구조도이다.
도 3은 본 발명의 실시예에 따른 트랜잭션의 로그 기록 과정을 나타낸 알고리즘이다.
도 4는 본 발명의 실시예에 따른 트랜잭션의 로그 기록 과정을 나타낸 흐름도이다.
도 5는 본 발명의 실시예에 따른 트랜잭션의 철회 알고리즘이다.
도 6은 본 발명의 실시예에 따른 트랜잭션의 철회를 나타낸 흐름도이다.
도 7은 본 발명의 실시예에 따른 트랜잭션 철회시 로그 기록 과정을 나타낸 예시도이다.
본 발명은 대용량 데이터베이스 응용 프로그램에서의 로그 기록 방법 및 트랜잭션 철회 방법에 관한 것으로, 보다 자세하게는 선별적인 로깅 정책을 사용하는 트랜잭션 로그 기록 방법 및 철회 방법에 관한 것이다.
일반적으로 공간 DBMS(Spatial DataBase Management System, 공간 데이터베이스 관리 시스템)는 공간 데이터가 항상 크다는 가정 하에서 설계된다. 그러나, 공간 데이터는 다양한 타입과 데이터 크기를 갖는다. 이러한 특성을 갖는 지리 정보 시스템과 같은 대용량 데이터베이스에 대한 회복 관리 기법에는 쉐도우 기법과 변형된 로그 기법이 사용된다.
쉐도우 기법은 갱신 연산이 계속되면 물리적 응집도가 떨어지며, 쉐도우 페이지들을 관리하기 위한 설명자에 잠금을 걸어야 한다. 이러한 잠금은 전체 데이터에 잠금을 요구하는 것과 같은 효과를 갖기 때문에 동시성을 저하시킨다.
또한, 대부분 DBMS에서의 대용량 데이터의 할당 단위가 세그먼트나 익스텐트(extent)이며, 익스텐트와 세그먼트는 많은 페이지 블록으로 구성되므로 용량이 크다.
그러므로, 데이터의 크기가 작은 공간 데이터에 대한 갱신 연산을 위하여 세그먼트나 익스텐트 전체를 쉐도우 시킨다면 필요 없는 메모리 복사가 이루어져야 하기 때문에, 시스템의 성능을 저하시키는 단점이 있다. 즉, 쉐도우 기법은 공간 데이터의 특성에 대한 고려가 없고 물리적 응집과 잠금 경쟁 문제가 발생할 수 있다.
또 다른 회복 관리 기법인 변형된 로그 기법은 철회 로그만을 기록하는 회복 기법이다. 이러한 회복 기법에서 버퍼 관리자는 강제(force) 정책을 사용하여 재 수행 연산이 필요 없도록 한다. 하지만 이러한 회복 기법에서 크기가 아주 큰 공간 데이터에 대하여 철회 로그를 기록한다면, 로그 버퍼 풀로 인한 디스크 입출력이 빈번하게 발생되며, 시스템의 성능을 크게 저하시킨다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 공간 데이터의 크기에 따라서 서로 다른 로깅 방식을 사용하여 공간 데이터의 회복을 지원하는 트랜잭션 로그 기록 방법을 제공한다.
또한, APR(Anchored Physical log Record)을 이용하여 로그 버퍼에 저장되는 로그의 양을 줄임으로써 디스크의 효율을 증대시킬 수 있는 트랜잭션 철회 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 특징인 트랜잭션 로그 기록 방법에 있어서, 공간 데이터를 관리하는 시스템에서 공간 데이터에 대한 회복을 지원하는 트랜잭션의 로그를 기록하는 방법에 있어서,
(a) 상기 공간 데이터에 대한 로그의 타입이 APR(Anchored Physical log Record)--여기서 APR은 미들 타입의 공간 데이터에 대한 회복을 지원하기 위해 사용되는 로그를 의미함--인지 판단하는 단계; (b) 상기 공간 데이터의 로그 타입이 APR인 경우, 상기 공간 데이터에 대하여 사용 가능한 페이지를 할당하고, 상기 공 간 데이터의 갱신 전/후 데이터를 기록하는 단계; (c) 상기 사용 가능한 페이지의 PID(Page IDentifier)--여기서 PID는 상기 공간 데이터의 로그에 대한 레코드를 생성하기 위한 연산이 적용된 페이지의 페이지 식별자를 의미함--를 갖는 APR 타입의 로그 레코드를 생성하는 단계; 및 (d) 상기 생성된 APR 타입의 로그 레코드를 기록하는 단계를 포함한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 트랜잭션 철회 방법에 있어서, 공간 데이터를 관리하는 시스템에서 공간 데이터에 대한 회복을 지원하는 트랜잭션을 철회하는 방법에 있어서,
(a) 상기 공간 데이터에 대한 트랜잭션 철회의 시작 포인터를 설정하고, 상기 트랜잭션에 의해 기록된 로그 레코드를 읽어오는 단계; (b) 상기 읽어온 로그 레코드의 로그 타입이 상기 트랜잭션의 시작을 나타내는 로그인 BTR(Begin Transaction log Record)인지 판단하는 단계; (c) 상기 로그 타입이 BTR인 경우, 상기 로그 타입이 물리적인 로그 레코드이면 상기 읽어온 로그 레코드의 바로 이전에 저장된 로그 레코드의 이미지로 갱신 작업을 취소하는 단계; (d) 상기 로그 레코드에 취소 연산에 대한 보상 로그인 CLR 타입의 로그 레코드를 기록하는 단계; 및 (e) 상기 로그 레코드에 대한 취소 로그 레코드--여기서 취소 로그 레코드는 해당 트랜잭션의 복귀시 다음에 취소할 로그 레코드를 의미함--를 다음 철회 로그 레코드로 설정하고, 상기 설정된 로그 레코드를 읽는 단계를 포함한다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상 세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다. 명세서 전체를 통하여 유사한 부분에 대해서는 동일한 도면 부호를 붙였다.
또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 로그 레코드 타입에 따른 저장 내용의 예시도이다.
도 1을 살펴보면, 로그 레코드는 트랜잭션 수행, 검사점 수행, 그리고 회복 수행시에 기록되며, 로그 관리자에 의해 관리된다. 로그 레코드는 머리(header) 부분과 몸체(body) 부분으로 구분되며, 머리 부분에는 TxID(Transaction ID, 트랜잭션 식별자), LSN(Log Sequential Number, 로그 순차 번호), PrevLSN(바로 이전에 기록된 로그 레코드 순차 번호), RID/PID(Record ID(레코드 식별자)/Page ID(페이지 식별자)), ARID(Anchored Record ID, 회복 세그먼트를 가리키는 페이지 식별자)의 필드를 포함한다. 또한, 몸체 부분에는 로그 레코드를 생성한 변경 연산이 재수행 또는 취소되는 경우에 필요한 데이터 또는 회복을 위한 데이터인 Image(회복에 필요한 데이터)를 기록한다.
여기서 LSN 필드는 로그 레코드의 일련 번호로 로그 레코드가 로그 디스크 공간에서 차지하는 첫 바이트(byte) 주소를 나타내며, PrevLSN 필드는 로그 레코드 를 생성한 트랜잭션이 바로 앞에 생성한 로그 레코드의 LSN을 나타낸다. TxID 필드는 로그 레코드를 생성한 트랜잭션의 트랜잭션 식별자를 나타내고, Page ID 필드는 로그 레코드를 생성한 변경 연산이 적용된 페이지의 페이지 식별자를 나타낸다.
또한, 로그 레코드 종류에는 Physical, Logical, BTR/ETR(Begin Transaction log Record/End Transaction log Record), BCR(Begin Checkpoint log Record), ECR(End Checkpoint log Record), CLR(Compensation Log Record), APR 및 APRCLR을 포함한다. 여기서 BTR은 트랜잭션 시작 로그, ETR은 트랜잭션 종료 로그, BCR은 검사점 시작시 기록되는 로그, ECR은 검사점 종료시 기록되는 로그, CLR은 취소 연산에 대한 보상 로그를 의미한다. 또한, APR은 MIDDLE 타입의 공간 데이터에 대한 회복을 지원하기 위해 사용되는 로그, APRCLR은 APR의 취소 연산에 대한 보상 로그를 의미한다.
회복 세그먼트는 MIDDLE 데이터의 회복을 위한 저장 구조이다. 여기서 MIDDLE이라 함은 공간 데이터를 크기에 따라 분류한 세 가지 분류 중 하나이다. 공간 데이터는 그 크기에 따라 SMALL, MIDDLE, LARGE로 분류될 수 있으며 각각 다른 회복 기법을 적용한다. 이때, 분류 방법은 반드시 상기와 같이 세 가지 분류로 한정되는 것은 아니다.
먼저, SMALL은 공간 데이터 크기가 한 페이지보다 작은 데이터를 의미한다. 로그 레코드 자체에 갱신 전 이미지와 갱신 후 이미지를 저장하고, 시스템의 기존 버퍼 정책을 사용한다. 이는 데이터 크기가 한 페이지를 넘지 않는 비공간 데이터와 같은 처리 과정이다. SMALL에 대한 회복 기법은 이미 일반적으로 널리 사용하는 방법을 이용하여 수행되며, 본 발명의 실시예에서는 그 방법에 대한 설명을 생략하기로 한다.
SMALL 데이터에 대한 저장 구조는 페이지를 기본으로 하고, 클러스터링을 위해 익스텐트(extent) 개념을 사용하고 있다. 그러나 이 같은 저장 구조로는 많은 페이지들로 구성되는 MIDDLE 데이터의 물리적인 연속성을 보장할 수 없으며 BLOB(Binary Large OBject, 이진 데이터 형식의 대용량 객체 데이터) 페이지의 크기가 익스텐트 하나의 크기이기 때문에, 회복 세그먼트의 페이지는 기본 할당 단위를 익스텐트로 한다.
MIDDLE은 공간 데이터 크기가 한 페이지보다는 크지만, 버퍼 정책을 사용할 수 있을 정도의 페이지 수의 크기를 가진 데이터를 의미한다. MIDDLE은 본 발명의 실시예에서 제안한 APR을 사용하여 회복 기법을 적용함으로써, 로그 버퍼에 기록되는 로그의 양을 줄일 수 있도록 한다.
LARGE는 수십 내지 수백 페이지 크기의 버퍼에 유지가 힘든 데이터를 의미한다. LARGE에 대한 회복 기법은 트랜잭션 철회나 시스템 재시작을 위한 논리적인 로그만을 기록하고, 직접 디스크에 기록하는 정책을 사용한다. LARGE로 분류된 데이터의 회복 방법은 이미 일반적으로 사용되는 대용량 데이터에 대한 회복 기법인 쉐도우 기법 또는 변형된 로그 기법 중 어느 하나의 방법을 이용하여 수행되며, 본 발명의 실시예에서는 그 상세한 설명을 생략하기로 한다.
본 발명의 실시예에서 제안한 MIDDLE 데이터를 위한 APR은 데이터 자체를 로그 레코드에 포함하지 않고, 회복 세그먼트의 페이지를 가리키는 포인터만을 유지 하게 된다. 그러므로, 로그 버퍼 풀로 인한 디스크 입출력이 줄어들며 트랜잭션 철회시 적은 양의 보상 로그가 기록되기 때문에, 트랜잭션 철회로 인해 기록될 로그의 양이 줄어들며, 회복의 부하를 줄일 수 있다.
다음은 본 발명의 실시예에 따라 공간 데이터의 크기를 고려하여 선별적으로 데이터를 회복할 수 있는 장치의 구조에 대하여 도 2를 참조하여 상세히 설명하기로 한다.
도 2는 본 발명의 실시예에 따른 공간 데이터의 크기를 고려한 선별적 회복 장치의 구조도이다.
도 2를 살펴보면, 공간 데이터의 크기를 고려한 선별적 회복 장치는 디스크(400), 디스크 관리자(300), 버퍼 관리자(200), 트랜잭션 관리자(100) 및 회복 관리자(500)를 포함한다.
디스크(400)는 회복 세그먼트(410)와 로그 버퍼(420)를 포함하여 구성되며, 실제 데이터가 저장된다. 여기서 디스크(400)는 디스크 관리자(300)에 의해 관리된다. 버퍼 관리자(200)는 메모리 상의 데이터 관리를 수행한다. 즉, 데이터에 대한 연산이 이루어지는 버퍼 공간에 대한 관리를 수행한다.
트랜잭션 관리자(100)는 응용 프로그램에서의 작업 단위인 트랜잭션을 관리한다. 즉, 트랜잭션 관리자(100)는 데이터 변경 연산에 대해서 원자성을 보장하여 데이터가 일관성을 유지할 수 있도록 한다.
회복 관리자(500)는 작업의 철회나 회복을 위한 절차를 관리한다. 즉, 로그 정보를 이용하여 해당 트랜잭션이 변경한 데이터에 대한 내용을 트랜잭션 이전 상 태로 회복한다. 여기서 회복 관리자(500)는 로그 기록기(510)와 회복기(520)의 기능을 포함하고 있으며, 로그 기록기(510)와 회복기(520)는 디스크(400)내의 회복 세그먼트(410)와 로그 버퍼(420)를 사용하여 MIDDLE 타입의 데이터에 대한 효율적인 회복 기능을 수행한다.
다음은 본 발명의 실시예에 따라 새롭게 제안하는 갱신 연산이 발생하였을 경우 트랜잭션 로그 기록 과정에 대해 도 3을 참조하여 상세히 설명한다.
도 3은 본 발명의 실시예에 따른 트랜잭션의 로그 기록 과정을 나타낸 알고리즘이며, 특히 갱신 연산이 발생하였을 경우 APR 로그 기록 과정을 나타낸 알고리즘이다.
도 3에 도시된 바와 같이, 회복 세그먼트 중 사용 가능한 페이지를 할당받고, 로그의 종류가 APR이라면 회복 세그먼트에 갱신 전 데이터와 갱신 후 데이터를 기록하여 로그 버퍼가 풀 되지 않게 한다.
APR 로그 레코드를 하나 만들고(APR = new Log(LogType)), APR.ARID에 회복 세그먼트의 페이지 식별자를 기록한다. APR.ARID는 트랜잭션 철회와 시스템 붕괴시 회복을 위해서 필요하다. 트랜잭션 철회시 BLOB 페이지는 디스크에 반영되어 있지만 이때는 트랜잭션이 철회되는 경우이며, 이러한 경우에 APR.ARID이 가리키는 회복 세그먼트의 페이지에 있는 갱신 전 데이터를 이용하여 회복한다.
또한, 트랜잭션이 완료된 상태에서 트랜잭션이 갱신한 페이지가 버퍼에 유지되고 있지만 디스크에 기록이 안 되는 경우가 있다. 이러한 경우는 트랜잭션 완료 시에 로그버퍼에 있는 내용이 로그 파일로 기록되었기 때문에, 기록된 APR.ARID의 회복 세그먼트의 갱신 후 데이터를 이용하여 데이터베이스 회복을 수행한다.
이와 같은 알고리즘을 이용하여 실제 트랜잭션의 로그 기록 과정에 대하여 도 4의 흐름도를 참조하여 상세히 설명하기로 한다.
도 4는 본 발명의 실시예에 따른 트랜잭션의 로그 기록 과정을 나타낸 흐름도이다.
도 4를 살펴보면, 먼저 회복 관리자(500)는 트랜잭션의 로그 종류가 APR인지 여부를 판단(S100)한다. 만약, 로그의 종류가 APR이 아닌 것으로 판단하면, 로그 레코드를 생성(S110)한 후, 로그 버퍼(420)에 로그 레코드를 기록(S120)한다. 그러나 로그의 종류가 APR인 경우, 회복 세그먼트 중 사용 가능한 페이지를 할당(S130)받고, 회복 세그먼트에 갱신 전 데이터와 갱신 후 데이터를 기록(S140)하여 로그 버퍼가 풀 되지 않게 한다.
다음, 할당받은 페이지에 대한 PID를 갖는 APR 타입의 로그 레코드를 생성(S150)한다. 이후, 생성된 로그 레코드 내의 APR.ARID에 회복 세그먼트의 페이지 식별자를 기록(S160)한다. 여기서 APR.ARID는 MIDDLE 데이터에 대한 트랜잭션 철회와 시스템 붕괴 시 회복을 위해 중요한 로그 레코드의 구성요소이다.
다음은, 트랜잭션의 철회 과정에 대하여 도 5를 참조하여 설명하기로 한다.
도 5는 본 발명의 실시예에 따른 트랜잭션의 철회 알고리즘이다.
도 5에 도시된 바와 같이 트랜잭션의 철회 과정은 로그 레코드에 기록된 PrevLSN을 따라가며 취소 연산을 수행한다. PrevLSN은 트랜잭션이 기록한 로그 레코드들에 대한 역방향 링크드 리스트(backward linked list)이다.
회복 관리자(500)에서 판단한 결과 Logical 로그 레코드와 Physical 로그 레코드가 취소 가능하다면 취소 연산을 행하며 Physical 로그는 보상 로그로써 CLR을 로그에 기록한다. CLR과 APRCLR은 Physical 로그나 APR에 대한 보상 로그 레코드이기 때문에 취소 연산을 수행할 필요가 없으며, 취소 연산할 당시 가지고 있던 PrevLSN인 UndoNxtLSN을 사용하여 다음 취소할 로그 레코드를 선정한다. 여기서 UndoNxt는 로그 레코드의 유형이 보상 유형일 때 값을 지니며, 해당 트랜잭션의 복귀시 다음에 취소할 로그 레코드를 의미한다. 이하 UndoNxt에 대해서 "취소 로그 레코드"로 명명한다.
다음은 상기 도 5에서 언급한 트랜잭션의 철회 알고리즘을 이용하여 실제로 트랜잭션을 철회하기 위한 방법에 대하여 도 6의 흐름도를 참조하여 설명하기로 한다.
도 6은 본 발명의 실시예에 따른 트랜잭션의 철회를 나타낸 흐름도이다.
도 6을 살펴보면, 로그 버퍼에서 트랜잭션 철회의 시작 포인터를 설정하고, 로그 레코드를 읽어(S200)온다. 회복 관리자(500)는 읽어온 로그 레코드의 레코드 타입이 BTR인지 판단(S210)한다. 만약 레코드 로그 레코드의 타입이 BTR인 경우, ETR 타입의 로그를 로그 기록기(510)에 기록(S211)한다.
그러나, 레코드 타입이 BTR이 아닌 경우, 해당 로그 타입이 Physical인지 판단(S220)한다. 만약 Physical인 경우, 로그 레코드의 이전 이미지로 갱신 작업을 취소(S221)한다. 즉, 갱신을 위해 새로이 적용할 이미지 대신, 바로 이전 로그 레코드의 이미지로 갱신 작업을 취소(S221)한다. "CLR" 타입의 로그 레코드를 기 록(S222)한 다음, "UndoNxt"를 다음 철회 로그 레코드로 설정하고 로그 레코드를 읽는다(S260).
만약 Physical이 아닌 경우, 해당 로그 타입이 Logical인지 아닌지 여부를 판단(S230)한다. 로그 타입이 Logical인 경우, 로그 레코드의 오퍼레이션 타입에 따라 갱신 작업을 취소(S231)한 후 상기 S260 단계를 수행한다.
그러나, 레코드 타입이 Logical이 아닌 경우, 로그 타입이 “APRCLR”인지 혹은 “CLR”인지를 판단(S240)한다. 로그 타입이 “APRCLR” 또는 “CLR” 중 어느 하나의 경우인 경우, 상기 S260 단계를 수행한다. 그러나, “APRCLR” 또는 “CLR” 중 어느 하나의 타입도 아닌 경우, 로그 타입이 APR인지 판단(S250)한다.
판단 결과, 로그 타입이 APR이 아닌 경우 상기 S260 단계를 수행한다. 그러나, 로그 타입이 APR인 경우, 회복 세그먼트 내의 해당 레코드 페이지를 가져온다(S241). 그 다음, 레코드 페이지의 이전 이미지로 갱신 작업을 취소(S242)한 후, “ACRCLR” 타입 로그 레코드를 로그 기록기(510)에 기록(S243)하여 트랜잭션의 철회를 수행한다.
이와 같은 알고리즘을 이용하여 실제 트랜잭션 철회 시 로그를 기록하는 과정에 대하여 도 7을 참조하여 설명하기로 한다.
도 7은 본 발명의 실시예에 따른 트랜잭션 철회 시 로그 기록 과정을 나타낸 예시도이다.
도 7을 살펴보면, 본 발명의 실시예를 통해 L1, L2 및 L3의 3 개의 로그가 기록되어 있다고 가정하자. 이때 L1과 L3는 Physical 로그이고, L2는 APR이며, A 상태에서 B 상태로 트랜잭션 철회를 수행하는 과정을 나타낸 것이다.
L2의 Anchor는 회복 세그먼트인 Page 2를 가리킨다. L1과 L3의 트랜잭션 철회의 결과로 L1’와 L3’가 생성된다. 이들 L1’와 L3’는 갱신 후 이미지를 유지하고 있으며, 이는 로그의 양을 증가시키는 요인이 된다.
L2가 트랜잭션 철회의 결과로 L2′가 만들어지며, L2′의 anchor는 Page 2를 가리킨다. L2′는 갱신 후 이미지를 회복 세그먼트에 유지함으로써 로그 버퍼(420)에 기록되는 보상 로그의 크기를 줄일 수 있다.
여기서, 전술한 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체 역시 본 발명의 범주에 포함되는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
전술한 실시예에 따르면, 데이터 크기에 따른 선별적인 회복 기법을 이용하여, MIDDLE 데이터에 적용되는 새로운 로그 타입인 APR을 토대로 트랜잭션의 로그 기록과 트랜잭션 철회를 수행하면, 로그 버퍼 풀로 인하여 발생되는 디스크 입출력 시간을 줄일 수 있다.
또한, 트랜잭션 철회 시 기록되는 보상 로그의 양을 줄일 수 있으며, 이를 토대로 시스템의 성능이 향상된다.
Claims (9)
- 공간 데이터를 관리하는 시스템에서 공간 데이터에 대한 회복을 지원하는 트랜잭션의 로그를 기록하는 방법에 있어서,(a) 상기 공간 데이터에 대한 로그의 타입이 APR(Anchored Physical log Record)--여기서 APR은 미들 타입의 공간 데이터에 대한 회복을 지원하기 위해 사용되는 로그를 의미함--인지 판단하는 단계;(b) 상기 공간 데이터의 로그 타입이 APR인 경우, 상기 공간 데이터에 대하여 사용 가능한 페이지를 할당하고, 상기 공간 데이터의 갱신 전/후 이미지를 기록하는 단계;(c) 상기 사용 가능한 페이지의 PID(Page IDentifier)--여기서 PID는 상기 공간 데이터의 회복을 위해 상기 갱신 전/후 이미지 정보를 갖는 회복 세그먼트 내 페이지의 페이지 식별자를 의미함--를 갖는 APR 타입의 로그 레코드를 생성하는 단계; 및(d) 상기 생성된 APR 타입의 로그 레코드를 기록하는 단계를 포함하는 트랜잭션 로그 기록 방법.
- 제1항에 있어서,상기 (a) 단계에서 상기 공간 데이터가 APR이 아닌 경우상기 공간 데이터에 대한 로그 레코드를 생성하는 단계; 및상기 생성된 로그 레코드를 기록하는 단계를 포함하는 트랜잭션 로그 기록 방법.
- 제1항에 있어서,상기 (a) 단계 이전에,이미 설정된 페이지의 크기를 토대로 상기 공간 데이터에 대한 크기를 판단하는 단계; 및데이터의 크기에 따라 분류되는 세가지 타입 중에서 상기 판단 결과를 토대로 공간 데이터의 타입을 판별하고, 판별된 타입에 대응하는 회복 기법을 상기 공간 데이터에 적용하는 단계를 포함하는 트랜잭션 로그 기록 방법.
- 제3항에 있어서,상기 세 가지 분류는,데이터의 크기가 상기 설정된 페이지 보다 작은 데이터인 스몰(Small) 타입, 데이터의 크기가 상기 설정된 페이지의 수십 내지 수백 페이지 크기에 해당하는 데이터인 라지(large) 타입, 상기 스몰 타입과 라지 타입으로 설정되지 않은 데이터들인 미들(middle) 타입을 포함하는 트랜잭션 로그 기록 방법.
- 공간 데이터를 관리하는 시스템에서 공간 데이터에 대한 회복을 지원하는 트 랜잭션을 철회하는 방법에 있어서,(a) 상기 공간 데이터에 대한 트랜잭션 철회의 시작 포인터를 설정하고, 상기 트랜잭션에 의해 기록된 로그 레코드를 읽어오는 단계;(b) 상기 읽어온 로그 레코드의 로그 타입이 상기 트랜잭션의 시작을 나타내는 로그인 BTR(Begin Transaction log Record)인지 판단하는 단계;(c) 상기 로그 타입이 BTR이 아닌 경우, 상기 로그 타입이 물리적인 로그 레코드이면 상기 읽어온 로그 레코드의 바로 이전에 저장된 로그 레코드의 이미지로 갱신 작업을 취소하는 단계;(d) 상기 로그 레코드에 취소 연산에 대한 보상 로그인 CLR 타입의 로그 레코드를 기록하는 단계; 및(e) 상기 로그 레코드에 대한 취소 로그 레코드--여기서 취소 로그 레코드 는 해당 트랜잭션의 복귀시 다음에 취소할 로그 레코드를 의미함--를 다음 철회 로그 레코드로 설정하고, 상기 설정된 로그 레코드를 읽는 단계를 포함하는 트랜잭션 철회 방법.
- 제5항에 있어서,상기 (b) 단계에서 BTR인 경우,상기 읽어온 로그 레코드의 로그 타입을, 트랜잭션의 종료를 나타내는 로그인 ETR(End Transaction log Record) 타입의 로그로 기록하는 단계를 포함하는 트랜잭션 철회 방법.
- 제5항에 있어서,상기 (c) 단계에서 Physical이 아닌 경우,(1) 상기 로그 타입이 논리적인 로그 레코드인지를 판단하는 단계;(2) 상기 로그 타입이 논리적인 로그 레코드인 경우, 상기 로그 레코드의 오퍼레이션 타입에 따라 갱신 작업을 취소하는 단계를 포함하는 트랜잭션 철회 방법.
- 제7항에 있어서,상기 (1) 단계에서 Logical이 아닌 경우,상기 로그 타입이 APR의 취소 연산에 대한 보상 로그인 APRCLR 또는 CLR 중 어느 하나인지 판단하는 단계;상기 로그 타입이 APRCLR 또는 CLR 중 어느 하나의 경우도 아니면, 상기 로그 타입이 APR인지 판단하는 단계;상기 로그 타입이 APR인 경우, 회복 세그먼트 내의 레코드 페이지를 불러오는 단계;상기 레코드 페이지의 이전 페이지에 포함되어 있는 이미지로 상기 레코드 페이지에 대한 갱신 작업을 취소하는 단계; 및상기 갱신 작업이 취소된 페이지에 대하여 ACRCLR 타입의 로그 레코드를 기록하는 단계를 포함하는 트랜잭션 철회 방법.
- 제7항에 있어서,상기 로그 타입이 APR이 아니면, 상기 (e) 단계를 수행하는 트랜잭션 철회 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060059417A KR20080001230A (ko) | 2006-06-29 | 2006-06-29 | 공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및트랜잭션 철회 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060059417A KR20080001230A (ko) | 2006-06-29 | 2006-06-29 | 공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및트랜잭션 철회 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080001230A true KR20080001230A (ko) | 2008-01-03 |
Family
ID=39213278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060059417A KR20080001230A (ko) | 2006-06-29 | 2006-06-29 | 공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및트랜잭션 철회 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20080001230A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296270B2 (en) | 2009-10-28 | 2012-10-23 | Samsung Electronics Co., Ltd. | Adaptive logging apparatus and method |
-
2006
- 2006-06-29 KR KR1020060059417A patent/KR20080001230A/ko not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296270B2 (en) | 2009-10-28 | 2012-10-23 | Samsung Electronics Co., Ltd. | Adaptive logging apparatus and method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9183236B2 (en) | Low level object version tracking using non-volatile memory write generations | |
US5806076A (en) | Tracking dependencies between transactions in a database | |
US7266669B2 (en) | File system with file management function and file management method | |
US7363540B2 (en) | Transaction-safe FAT file system improvements | |
US5561795A (en) | Method and apparatus for audit trail logging and data base recovery | |
US7035881B2 (en) | Organization of read-write snapshot copies in a data storage system | |
US6883074B2 (en) | System and method for efficient write operations for repeated snapshots by copying-on-write to most recent snapshot | |
KR100962055B1 (ko) | 컴퓨터 시스템들간의 객체 공유 | |
JP2557172B2 (ja) | タイムゼロ・バックアップ・コピー・プロセスにおける副ファイル状態のポーリングのための方法およびシステム | |
US5581750A (en) | System and method for improving data recovery performance | |
US7107294B2 (en) | Method and apparatus for interrupting updates to a database to provide read-only access | |
US6978353B2 (en) | Low overhead snapshot in a storage array using a tree-of-slabs metadata | |
JPH0823841B2 (ja) | データ処理システム及びその方法 | |
KR100238925B1 (ko) | 비휘발성 메모리를 갖는 복원 가능 디스크 제어 시스템 | |
CN108763508B (zh) | 数据页访问方法、存储引擎以及计算机可读存储介质 | |
JPH0827754B2 (ja) | コンピュータシステムにおけるファイル管理方法及びファイル管理システム | |
US9411692B2 (en) | Applying write elision | |
KR20110046118A (ko) | 적응적 로깅 장치 및 방법 | |
KR101220607B1 (ko) | 비휘발성 램을 이용하여 연산 처리의 원자성을 보장하는 컴퓨팅 시스템 및 방법 | |
KR100501414B1 (ko) | 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치 | |
US20070112722A1 (en) | File system and file information processing method | |
CN112214171B (zh) | 一种面向SQLite数据库的非易失性内存缓冲区设计方法 | |
KR20080001230A (ko) | 공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및트랜잭션 철회 방법 | |
US20060143423A1 (en) | Storage device, data processing method thereof, data processing program thereof, and data processing system | |
US20090187719A1 (en) | Data backup method for logical volume manager |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |