KR101587995B1 - 적응적 로깅 장치 및 방법 - Google Patents

적응적 로깅 장치 및 방법 Download PDF

Info

Publication number
KR101587995B1
KR101587995B1 KR1020090102972A KR20090102972A KR101587995B1 KR 101587995 B1 KR101587995 B1 KR 101587995B1 KR 1020090102972 A KR1020090102972 A KR 1020090102972A KR 20090102972 A KR20090102972 A KR 20090102972A KR 101587995 B1 KR101587995 B1 KR 101587995B1
Authority
KR
South Korea
Prior art keywords
data
page
updating
shadow
log record
Prior art date
Application number
KR1020090102972A
Other languages
English (en)
Other versions
KR20110046118A (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 KR1020090102972A priority Critical patent/KR101587995B1/ko
Priority to US12/793,158 priority patent/US8296270B2/en
Publication of KR20110046118A publication Critical patent/KR20110046118A/ko
Application granted granted Critical
Publication of KR101587995B1 publication Critical patent/KR101587995B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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

Landscapes

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

Abstract

적응적 로깅 장치 및 방법이 개시된다. 본 발명의 일 양상에 따르면, 데이터 갱신 요청에 따라 생성된 로그 레코드의 크기를 누적적으로 저장하고, 저장된 로그 레코드의 크기에 기초하여 ARIES Logging 및 Shadow Paging Logging이 선택적으로 실행되는 것이 가능하다.
ARIES(Algorithms for Recovery and Isolation Exploiting Semantics), Shadow Paging, Logging, Log Record, Adaptive logging, Hybrid logging

Description

적응적 로깅 장치 및 방법{Adaptive logging apparatus and method}
데이터베이스 시스템에서 리커버리를 위한 로깅 기술과 관련된다.
데이터베이스(Database)에서 insert/delete/update와 같은 연산이 발생하는 경우, 데이터베이스에 저장된 자료들의 상황에 따라 트랜잭션은 다음과 같은 갱신 패턴을 보일 수 있다.
첫 번째 갱신 패턴은 임의의 페이지에 대해 적은 양의 데이터가 갱신되는 경우이다. 두 번째 갱신 패턴은 임의의 페이지에 대해 많은 양의 데이터가 갱신되는 경우이다. 세 번째 갱신 패턴은 어느 하나의 페이지에 대해서는 적은 양의 데이터가 갱신되고, 다른 하나의 페이지에 대해서는 많은 양의 데이터가 갱신되는 경우이다.
이 때, 데이터베이스에 저장된 자료의 상황을 미리 알고 있는 것이 불가능하므로, 트랜잭션에 따라 어떠한 갱신 패턴을 보일지 예측하는 것은 매우 어렵다.
예를 들어, 데이터베이스에 Title, Artist, Album, Genre, PlayCount, Favorite, FilePath 와 같은 필드로 구성된 Music 테이블이 있고, 이 Music 테이블에 10000개의 레코드가 들어 있다고 가정하자. 이러한 환경에서 사용자가 PlayCount가 0인 레코드를 삭제하는 경우, 10000개의 레코드 중에서 몇 개의 레코드의 PlayCount가 0인지 알 수 없기 때문에, 수행하는 쿼리는 동일하지만 테이블에 들어있는 레코드의 상황에 따라 삭제되는 레코드의 사이즈에 차이를 보이게 된다.
이와 같이, 삭제될 레코드의 데이터를 담고 있는 데이터 페이지는 위에서 살펴본 갱신패턴 중 어느 하나의 갱신 패턴을 보일 것이고, 각 갱신 패턴 별로 가장 효율적인 로깅 방법은 서로 다를 수가 있다.
갱신 패턴에 따라 적응적으로 또는 동적으로 로깅을 수행하는 로깅 장치 및 방법이 제공된다.
본 발명의 일 양상에 따른 적응적 로깅 장치는, 데이터 갱신 요청에 따라 트랜잭션 별 또는 데이터 페이지 별 데이터 갱신 량을 저장하는 갱신 량 저장부, 및 데이터 갱신 량을 임계 값과 비교하고, 데이터 갱신 량이 임계 값 미만인 경우 에이리스(ARIES, Algorithms for Recovery and Isolation Exploiting Semantics) 정책에 따라 데이터 페이지를 갱신하고, 데이터 갱신 량이 임계 값 이상인 경우 그림자 페이징(Shadow Paging) 정책에 따라 데이터 페이지를 갱신하는 데이터 갱신부를 포함할 수 있다.
본 발명의 일 양상에 따라, 데이터 갱신 량은, 데이터 갱신 요청에 따라 생성된 로그 레코드의 누적 크기로 정의될 수 있다.
또한, 데이터 갱신부는, 에이리스 정책에 따라 데이터 페이지를 갱신하는 경우, 갱신 요청에 따라 갱신된 데이터에 관한 로그 레코드를 생성하는 것이 가능하다.
또한, 데이터 갱신부는, 그림자 페이징 정책에 따라 데이터 페이지를 갱신하는 경우, 데이터 페이지에 대한 그림자 사본(Shadow Copy)을 생성한 후, 생성된 그림자 사본 위에서 데이터 페이지를 로그 레코드 없이 갱신하는 것이 가능하다. 이 때, 데이터 갱신부는, 그림자 사본이 생성됨에 따라, 논리 페이지 식별자(Logical Page ID)와 물리 페이지 식별자(Physical Page ID)가 매핑되어 있는 페이지 테이블을 갱신하고, 트랜잭션이 커밋(commit)되면, 그림자 사본에 대한 원본을 무효화시킬 수 있다. 또한, 그림자 페이징 정책에 따라 갱신된 데이터 페이지는, 트랜잭션이 커밋(commit)되기 전에 안정적인 스토리지로 플러쉬(flush)되는 것이 가능하다.
한편, 본 발명의 일 양상에 따른 적응적 로깅 방법은, 데이터 갱신 요청에 따라 트랜잭션 별 또는 데이터 페이지 별 데이터 갱신 량을 저장하는 단계, 데이터 갱신 량을 임계 값과 비교하는 단계, 데이터 갱신 량이 임계 값 미만인 경우 에이리스(ARIES, Algorithms for Recovery and Isolation Exploiting Semantics) 정책에 따라 상기 데이터 페이지를 갱신하는 단계, 및 데이터 갱신 량이 임계 값 이상인 경우 그림자 페이징(Shadow Paging) 정책에 따라 데이터 페이지를 갱신하는 단계를 포함할 수 있다.
개시된 내용에 따르면, 갱신 패턴 별로 최적화된 로깅을 수행하는 것이 가능하기 때문에, 로깅 연산에 필요한 시간 및 비용을 줄이고 효율적인 시스템 회복을 보장할 수가 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 데이터 베이스 시스템의 전체적인 구성 을 도시한다.
도 1에서, 본 실시 예에 따른 데이터 베이스 시스템(100)은 저장부(101)와 제어부(104)를 포함한다.
저장부(101)는 논리적으로 연관된 다수의 자료를 저장하는 부분으로, 디스크(102)와 버퍼(103)를 포함할 수 있다. 디스크(102)는 전원 공급 유무에 관계 없이 안정적으로 데이터를 저장하는 하드 디스크, Solid-State Drive(SSD), 플래시 메모리 등의 스토리지(storage)가 될 수 있다. 버퍼(103)는 디스크(102) 상에 어떤 데이터를 기록하거나 디스크(102)로부터 어떤 데이터를 독출하는 경우, 기록되는 데이터 또는 독출된 데이터를 임시로 저장하는 기능을 수행한다.
제어부(104)는 트랜잭션에 따른 데이터 갱신 요청을 수신하고, 수신된 데이터 갱신 요청에 따라 저장부(101)에 저장된 데이터를 갱신하는 기능을 수행한다. 그리고, 제어부(104)는 트랜잭션 수행 중에 시스템이 정상적으로 동작하지 아니한 경우 시스템을 복구하기 위해 리커버리를 수행하는 것이 가능하다.
본 실시 예에서, 제어부(104)는 트랜잭션 수행 중에 변화하는 갱신 패턴을 파악하여 동적으로 해당 패턴에 맞는 로깅 및 복구를 수행할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 적응적 로깅 장치의 구성을 도시한다. 이것은 도 1에서 제어부(104)의 일 구성이 될 수 있다.
도 2에서, 적응적 로깅 장치(200)는 갱신 량 저장부(201) 및 데이터 갱신부(202)를 포함할 수 있다.
갱신 량 저장부(201)는 데이터 갱신 요청에 따라 트랜잭션 별 또는 데이터 페이지 별로 데이터 갱신 량을 저장한다. 여기서, 데이터 갱신 량은 데이터 갱신 요청에 따라 갱신된 데이터에 관련된 로그 레코드의 누적 크기가 될 수 있다.
데이터 갱신부(202)는 갱신 량 저장부(201)에 저장된 데이터 갱신 량을 임계 값과 비교한다. 비교 결과, 데이터 갱신 량이 임계 값 미만인 경우, 에이리스(ARIES, Algorithms for Recovery and Isolation Exploiting Semantics) 정책에 따라 데이터 페이지를 갱신하고, 데이터 갱신 량이 임계 값 이상인 경우 그림자 페이징(Shadow Paging) 정책에 따라 데이터 페이지를 갱신한다.
예를 들어, 데이터 갱신부(202)는 에이리스 정책에 따라 데이터 페이지를 갱신하는 ARIES module(203)과, 그림자 페이징 정책에 따라 데이터 페이지를 갱신하는 Shadow Paging module(204)과, 데이터 갱신 량에 따라 ARIES module(203) 및 Shadow module(204)을 선택적으로 동작시키는 switching module(205)을 포함할 수 있다.
ARIES란 WAL(Write Ahead Logging)이라는 로깅 프로토콜과 steal, No-force 버퍼 관리 정책을 지원하는 로깅 방법을 말한다. ARIES에 의하면, 갱신한 데이터 페이지를 디스크(102)에 반영하기 위해서는 관련된 로그 레코드를 디스크(102)에 먼저 기록하여야 하므로, 트랜잭션이 종료 상태와 무관하게 갱신한 데이터 페이지의 ACID(Automicity, Consistency, Isolation, Durability)를 보장할 수 있다.
그림자 페이징(Shadow Paging)이란 로그 레코드를 생성하지 아니하고 갱신 대상이 되는 데이터 페이지에 대해 그림자 사본(shadow copy)를 생성한 후, 그림자 사본에 기초하여 데이터를 갱신하는 로깅 방법을 말한다. 그림자 페이징에 의하 면, 로그 레코드가 생성되지 않기 때문에 트랜잭션이 커밋(commit)되기 전에 그림자 사본을 디스크(102)에 기록한다.
다시 말해, 데이터 갱신부(202)는 트랜잭션이 개시되면 ARIES 정책에 따라 로그 레코드를 생성하면서 데이터 페이지를 갱신하고, 트랜잭션 수행 중에 생성된 로그 레코드의 양이 임계 값 이상이 되는 경우, 더 이상 로그 레코드를 생성하지 않고, 버퍼(103)의 특정 페이지를 새로 할당 받아 그림자 사본을 만들고, 만들어진 그림자 사본 위에서 데이터를 갱신하는 것이 가능하다.
이와 같이, 본 실시 예에 따른 로깅 장치(200)는 트랜잭션 별 또는 데이터 페이지 별 갱신 량을 파악하여 동적 또는 적응적으로 적절한 로깅 방법을 제공하므로, 로깅 연산을 위한 시간 또는 비용을 최적화시킬 수 있다.
도 3은 본 발명의 일 실시 예에 따른 로그 레코드의 포맷을 도시한다.
도 3에서, 로그 레코드(300)의 각 필드를 살펴보면 다음과 같다.
prevLSN(301)은 어떤 트랜잭션이 생성한 이전 로그 레코드의 LSN(last sequence number)을 나타낸다. txnID(302)는 트랜잭션의 식별자를 나타낸다. Type(303)은 로그 레코드의 종류를 나타낸다. 로그 레코드의 종류로는 Undo log record와 Redo log record가 있을 수 있다. pageID(304)는 갱신한 데이터 페이지의 식별자를 나타낸다. Length(305)는 갱신한 데이터의 크기를 나타낸다. Offset(306)은 갱신한 데이터 페이지 내의 오프셋을 나타낸다. before_img(307)는 갱신 전의 데이터를 나타낸다. after_img(308)는 갱신 후의 데이터를 나타낸다.
도 4는 본 발명의 일 실시 예에 따라 생성된 로그 레코드를 도시한다.
도 4에서, 먼저 데이터 페이지의 10번 오프셋 영역의 데이터가 「name」에서 「kate」로 바뀌는 경우, LR1 로그 레코드(401)가 생성될 수 있다. 그리고, 데이터 페이지의 31번 오프셋 영역의 데이터가 「0000」에서 「0021」로 바뀌는 경우, LR2 로그 레코드(402)가 생성될 수 있다.
본 실시 예에 따른 데이터 갱신 량이란 생성된 로그 레코드들의 누적 크기가 될 수 있다. 예컨대, 도 4에서, 어떤 트랜잭션에 따라 「name」이 「kate」로 바뀌고, 「0000」이 「0021」로 바뀐 경우, LR1 로그 레코드(401)의 크기와 LR2 로그 레코드(402)의 크기의 합이 본 실시 예에 따른 데이터 갱신 량이 될 수 있다. 이러한 갱신 량은 트랜잭션 별로 또는 데이터 페이지 별로 누적적으로 저장된다.
도 5a 내지 도 5f는 본 발명의 일 실시 예에 따른 적응적 로깅 장치의 동작 과정을 도시한다.
도 5a에서, 트랜잭션에 따라 LPageID_5(즉, 논리 페이지 식별자가 5인 데이터 페이지)의 갱신이 요청되면, 제어부(501)는 Page Table(502)을 참조하여 LPageID_5에 대응되는 PPageID_2(즉, 물리 페이지 식별자가 2인 데이터 페이지)를 버퍼(503)에 로드한다. 여기서, Page Table(502)이란 Logical Page ID(LPageID)에 대응되는 Physical Page ID(PPageID)를 기록하고 있는 배열 테이블이 될 수 있다. 예컨대, Page Table(502)의 index 5에 대응되는 값이 2인 경우, LPageID_5가 PPageID_2에 대응됨을 의미한다.
도 5b에서, 데이터 페이지가 버퍼(503)에 로딩되면, 제어부(501)는 갱신과 관련된 로그 레코드(504)를 생성하고, 버퍼(503) 상의 데이터 페이지를 갱신한다. 여기서, 사각형으로 표현된 A1은 데이터 페이지 내의 갱신된 데이터 또는 이미지를 나타낸다. 예컨대, 제어부(501)는 A1 로그 레코드(504)를 생성 및 저장하고 A1을 갱신하는 것이 가능하다. 이 때, A1 로그 레코드(504)는 도 3에서 나타낸 로그 레코드(300) 형식을 따를 수 있다.
그리고, 제어부(501)는 생성된 A1 로그 레코드(504)의 크기를 트랜잭션 별 또는 데이터 페이지 별로 저장한다. 예컨대, 도 2의 갱신 량 저장부(201)가 PPageID_2에 관한 A1 로그 레코드(504)의 크기를 저장하는 것이 가능하다.
또한, 제어부(501)는 생성된 A1 로그 레코드(504)의 크기를 임계 값과 비교한다. 예컨대, 도 2의 데이터 갱신부(202)가 생성된 A1 로그 레코드(504)의 크기를 임계 값과 비교하는 것이 가능하다.
비교 결과, A1 로그 레코드(504)의 크기가 임계 값 미만인 경우, 도 5c와 같이, ARIES 정책에 따라 데이터를 갱신한다.
도 5c에서, A2에 대한 갱신이 요청되면, 제어부(501)는 A2 로그 레코드(505)를 생성 및 저장하고, 버퍼(103) 상의 A2를 갱신한다. 그리고, 제어부(501)는 생성된 로그 레코드의 크기를 누적적으로 저장한다. 즉, A1 로그 레코드(504)의 크기와 A2 로그 레코드(505)의 크기를 합하여 저장하는 것이 가능하다. 또한, 제어부(501)는 누적적으로 저장된 로그 레코드의 크기, 즉 506을 임계 값과 비교한다. 생성된 로그 레코드의 크기가 임계 값 미만인 경우, 도 5b 및 도 5c에서 설명된 과정이 반복되고, 생성된 로그 레코드의 크기가 임계 값 이상인 경우, 도 5d와 같이, 그림자 페이징 정책에 따라 데이터를 갱신한다.
도 5d에서, 생성된 로그 레코드의 크기가 임계 값 이상이 되는 경우, 제어부(501)는 그림자 사본(507)을 생성한다. 예컨대, 그림자 사본(507)이란 그림자 페이징을 위해 새롭게 할당 받은 버퍼(503)의 특정 영역에 대응될 수 있다.
그림자 사본(507)을 만들기 위하여, 제어부(501)는 그림자 사본(507)을 만들기 전에 Free Page Map(508)을 갱신한다. 여기서 Free Page Map(508)은 사용 가능한 페이지를 나타내는 테이블이 될 수 있다. 예컨대, index 3에 대응되는 값이 1에서 0으로 갱신된 경우, PPgaeID_3은 사용할 수 없는 페이지임을 나타낸다. 그리고 Free Page Map(508)의 갱신 정보는 FP 로그 레코드(509)로써 저장된다.
Free Page Map(508)이 갱신되면, 제어부(501)는 그림자 사본(507)을 생성하고, Page Table(502)을 갱신한다. 예컨대, PPageID_3을 그림자 사본(507)으로 할당 받았으므로, Page Table(502)의 index 5에 대응되는 값이 3으로 변경되는 것을 알 수 있다. 그리고 Page Table(502)의 갱신 정보는 PT 로그 레코드(510)로써 저장된다.
이와 같이, 그림자 사본(507)이 만들어지면, 그 이후에 데이터 페이지 갱신은, 도 5e와 같이, 그림자 사본(507) 위에서 수행된다. 예컨대, 도 5e에서, 사각형으로 표시된 S1 내지 S3은 그림자 페이징 정책에 따라 갱신된 데이터 또는 이미지들을 나타낸다.
도 5f에서, 제어부(501)는 트랜잭션 커밋(commit) 전에 그림자 사본(507)을 디스크(511)로 플러쉬하고, 트랜잭션 커밋(commit)이 완료되면, 트랜잭션 커밋과 관련된 TxnC 로그 레코드(512)를 생성 및 저장하고, 원본을 무효화시킨다.
도 5a 내지 도 5f를 참조하면, LPageID_5에 대한 데이터 갱신이 이루어지는 경우, 갱신 량에 따라 처음에는 ARIES 로깅이 수행되다가 나중에는 그림자 페이징 로깅이 수행되는 것을 알 수 있다.
도 6 및 도 7은 본 발명의 일 실시 예에 따른 적응적 로깅 방법을 도시한다.
도 6에서, 트랜잭션에 따라 데이터 페이지 갱신 요청이 있는 경우, 갱신 량 저장부(201)는 트랜잭션 별 또는 페이지 별로 데이터 갱신 량을 저장한다(601). 여기서 데이터 갱신 량은 데이터 페이지 갱신에 따라 생성되며 누적적으로 저장된 로그 레코드의 크기가 될 수 있다.
그리고 데이터 갱신부(202)는 저장된 데이터 갱신 량을 임계 값과 비교한다(602).
비교 결과, 데이터 갱신 량이 임계 값 미만인 경우, 데이터 갱신부(202)는ARIES 정책에 따라 데이터 페이지를 갱신한다(603). 예컨대, 데이터 갱신부(202)는, 도 5b 및 도 5c에서 설명한 것과 같이, 로그 레코드를 생성하고 버퍼 상의 데이터를 갱신하는 것이 가능하다.
비교 결과, 데이터 갱신 량이 임계 값 이상인 경우, 데이터 갱신부(202)는 그림자 페이징 정책에 따라 데이터 페이지를 갱신한다(604). 예컨대, 데이터 갱신부(202)는, 도 5d 및 도 5f에서 설명한 것과 같이, 로그 레코드를 생성하지 아니하고 그림자 사본 상에서 데이터를 갱신하는 것이 가능하다.
그림자 페이징 정책에 따라 데이터 페이지를 갱신하는 과정(604)을 보다 구체적으로 살펴보면 도 7과 같다.
도 7에서, 그림자 페이징 정책에 따라 데이터 페이지를 갱신하는 경우, 데이터 갱신부(202)는 먼저 Free Page Map을 갱신한다(701). Free Page Map은 현재 할당 가능한 페이지를 나타낼 수 있다.
그리고 데이터 갱신부(202)는 그림자 사본을 만든다(702). 그림자 사본은 그림자 페이징 정책에 따라 데이터 페이지를 갱신하기 위해 새롭게 할당 받은 버퍼의 일정 부분이 될 수 있다.
그리고 데이터 갱신부(202)는 그림자 사본이 생성에 따라 Page Table을 갱신한다(703). Page Table은 논리 페이지 ID와 물리 페이지 ID 간의 매핑 정보가 될 수 있다.
그리고 데이터 갱신부(202)는 그림자 사본 상에서 데이터를 갱신하고 트랜잭션 커밋 전에 그림자 사본의 갱신된 데이터를 디스크로 플러쉬한다(704).
이상에서 살펴본 바와 같이, 개시된 실시 예에 의하면, 갱신 상황에 따라 적응적으로 또는 동적으로 적절한 로깅 방법을 지원할 수 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있 는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명의 실시를 위한 구체적인 예를 살펴보았다. 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.
도 1은 본 발명의 일 실시 예에 따른 데이터 베이스 시스템을 도시한다.
도 2는 본 발명의 일 실시 예에 따른 적응적 로깅 장치를 도시한다.
도 3은 본 발명의 일 실시 예에 따른 로그 레코드의 포맷을 도시한다.
도 4는 본 발명의 일 실시 예에 따라 생성된 로그 레코드를 도시한다.
도 5a 내지 도 5f는 본 발명의 일 실시 예에 따른 적응적 로깅 장치의 동작 과정을 도시한다.
도 6은 본 발명의 일 실시 예에 따른 적응적 로깅 방법을 도시한다.
도 7은 본 발명의 일 실시 예에 따른 그림자 페이징 로깅 방법을 도시한다.

Claims (14)

  1. 데이터 갱신 요청에 따라 트랜잭션 별 또는 데이터 페이지 별 데이터 갱신 량을 저장하는 갱신 량 저장부; 및
    상기 데이터 갱신 량을 임계 값과 비교하고, 상기 데이터 갱신 량이 상기 임계 값 미만인 경우 에이리스(ARIES, Algorithms for Recovery and Isolation Exploiting Semantics) 정책에 따라 상기 데이터 페이지를 갱신하고, 상기 데이터 갱신 량이 상기 임계 값 이상인 경우 그림자 페이징(Shadow Paging) 정책에 따라 상기 데이터 페이지를 갱신하는 데이터 갱신부; 를 포함하는 적응적 로깅 장치.
  2. 제 1 항에 있어서,
    상기 데이터 갱신 량은, 상기 갱신 요청에 따라 생성된 로그 레코드의 누적 크기로 정의되는, 적응적 로깅 장치.
  3. 제 1 항에 있어서,
    상기 데이터 갱신부는, 상기 에이리스 정책에 따라 상기 데이터 페이지를 갱신하는 경우, 상기 갱신 요청에 따라 갱신된 데이터에 관한 로그 레코드를 생성하는, 적응적 로깅 장치.
  4. 제 1 항에 있어서,
    상기 데이터 갱신부는,
    상기 그림자 페이징 정책에 따라 상기 데이터 페이지를 갱신하는 경우, 상기 데이터 페이지에 대한 그림자 사본(Shadow Copy)을 생성한 후, 상기 생성된 그림자 사본 위에서 상기 데이터 페이지를 로그 레코드 없이 갱신하는, 적응적 로깅 장치.
  5. 제 4 항에 있어서,
    상기 데이터 갱신부는,
    상기 그림자 사본이 생성됨에 따라, 논리 페이지 식별자(Logical Page ID)와 물리 페이지 식별자(Physical Page ID)가 매핑되어 있는 페이지 테이블을 갱신하는, 적응적 로깅 장치.
  6. 제 4 항에 있어서,
    상기 데이터 갱신부는,
    상기 트랜잭션이 커밋(commit)되면, 상기 그림자 사본에 대한 원본을 무효화시키는, 적응적 로깅 장치.
  7. 제 4 항에 있어서,
    상기 그림자 페이징 정책에 따라 갱신된 데이터 페이지는, 상기 트랜잭션이 커밋(commit)되기 전에 안정적인 스토리지로 플러쉬(flush)되는, 적응적 로깅 장치.
  8. 데이터 갱신 요청에 따라 트랜잭션 별 또는 데이터 페이지 별 데이터 갱신 량을 저장하는 단계;
    상기 데이터 갱신 량을 임계 값과 비교하는 단계;
    상기 데이터 갱신 량이 상기 임계 값 미만인 경우 에이리스(ARIES, Algorithms for Recovery and Isolation Exploiting Semantics) 정책에 따라 상기 데이터 페이지를 갱신하는 단계; 및
    상기 데이터 갱신 량이 상기 임계 값 이상인 경우 그림자 페이징(Shadow Paging) 정책에 따라 상기 데이터 페이지를 갱신하는 단계; 를 포함하는 적응적 로깅 방법.
  9. 제 8 항에 있어서,
    상기 데이터 갱신 량은, 상기 갱신 요청에 따라 생성된 로그 레코드의 누적 크기로 정의되는, 적응적 로깅 방법.
  10. 제 8 항에 있어서,
    상기 에이리스 정책에 따라 상기 데이터 페이지를 갱신하는 단계는, 상기 갱신 요청에 따라 갱신된 데이터에 관한 로그 레코드를 생성하는 과정을 포함하는, 적응적 로깅 방법.
  11. 제 8 항에 있어서,
    상기 그림자 페이징 정책에 따라 상기 데이터 페이지를 갱신하는 단계는,
    상기 데이터 페이지에 대한 그림자 사본(Shadow Copy)을 생성한 후, 상기 생성된 그림자 사본 위에서 상기 데이터 페이지를 로그 레코드 없이 갱신하는 과정을 포함하는, 적응적 로깅 방법.
  12. 제 11 항에 있어서,
    상기 그림자 페이징 정책에 따라 상기 데이터 페이지를 갱신하는 단계는,
    상기 그림자 사본이 생성됨에 따라, 논리 페이지 식별자(Logical Page ID)와 물리 페이지 식별자(Physical Page ID)가 매핑되어 있는 페이지 테이블을 갱신하는 과정을 포함하는, 적응적 로깅 방법.
  13. 제 11 항에 있어서,
    상기 그림자 페이징 정책에 따라 상기 데이터 페이지를 갱신하는 단계는,
    상기 트랜잭션이 커밋(commit)되면, 상기 그림자 사본에 대한 원본을 무효화시키는 과정을 포함하는, 적응적 로깅 방법.
  14. 제 11 항에 있어서,
    상기 그림자 페이징 정책에 따라 갱신된 데이터 페이지는, 상기 트랜잭션이 커밋(commit)되기 전에 안정적인 스토리지로 플러쉬(flush)되는, 적응적 로깅 방 법.
KR1020090102972A 2009-10-28 2009-10-28 적응적 로깅 장치 및 방법 KR101587995B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090102972A KR101587995B1 (ko) 2009-10-28 2009-10-28 적응적 로깅 장치 및 방법
US12/793,158 US8296270B2 (en) 2009-10-28 2010-06-03 Adaptive logging apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090102972A KR101587995B1 (ko) 2009-10-28 2009-10-28 적응적 로깅 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20110046118A KR20110046118A (ko) 2011-05-04
KR101587995B1 true KR101587995B1 (ko) 2016-01-22

Family

ID=43899241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090102972A KR101587995B1 (ko) 2009-10-28 2009-10-28 적응적 로깅 장치 및 방법

Country Status (2)

Country Link
US (1) US8296270B2 (ko)
KR (1) KR101587995B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2514563A (en) * 2013-05-28 2014-12-03 Ibm Selective purging of a log structure
EP3091451A1 (en) * 2015-04-28 2016-11-09 Micro Systemation AB Database rollback using wal
US10057350B2 (en) * 2015-12-28 2018-08-21 Netapp, Inc. Methods for transferring data based on actual size of a data operation and devices thereof
US9983817B2 (en) 2016-02-24 2018-05-29 Netapp, Inc. Adaptive, self learning consistency point triggers
US10990581B1 (en) * 2017-09-27 2021-04-27 Amazon Technologies, Inc. Tracking a size of a database change log
KR102468737B1 (ko) * 2017-12-19 2022-11-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11487714B2 (en) * 2019-05-15 2022-11-01 International Business Machines Corporation Data replication in a data analysis system
US11893041B2 (en) 2019-05-15 2024-02-06 International Business Machines Corporation Data synchronization between a source database system and target database system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381611B1 (en) 1998-04-01 2002-04-30 Cyberpulse Llc Method and system for navigation and data entry in hierarchically-organized database views
US7164676B1 (en) 2001-03-21 2007-01-16 Cisco Technology, Inc. Method and apparatus for a combined bulk and transactional database synchronous scheme

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043866A (en) * 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
US4945474A (en) * 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
US6226651B1 (en) * 1998-03-27 2001-05-01 International Business Machines Corporation Database disaster remote site recovery
JP4237354B2 (ja) * 1999-09-29 2009-03-11 株式会社東芝 トランザクション処理方法及びトランザクション処理システム
KR20010055981A (ko) 1999-12-13 2001-07-04 오길록 안전기억장치를 이용한 주기억장치 상주형 데이터베이스회복 방법
KR20020030223A (ko) * 2000-10-16 2002-04-24 주식회사 알라딘소프트 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을지원하기 위한 로깅 및 회복 방법
US7225206B2 (en) * 2001-04-09 2007-05-29 Computer Associates Think, Inc. System and method for reorganizing stored data
US6678809B1 (en) * 2001-04-13 2004-01-13 Lsi Logic Corporation Write-ahead log in directory management for concurrent I/O access for block storage
US7389308B2 (en) 2003-05-30 2008-06-17 Microsoft Corporation Shadow paging
US8095511B2 (en) 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US8762331B2 (en) 2004-06-29 2014-06-24 Microsoft Corporation Concurrent transactions and page synchronization
EP1776638B1 (en) * 2004-08-12 2008-11-19 Telecom Italia S.p.A. A system, a method and a device for updating a data set through a communication network
US7774304B2 (en) * 2005-01-31 2010-08-10 International Business Machines Corporation Method, apparatus and program storage device for managing buffers during online reorganization
US7917475B2 (en) * 2005-02-07 2011-03-29 Mimosa Systems, Inc. Enterprise server version migration through identity preservation
US7870416B2 (en) * 2005-02-07 2011-01-11 Mimosa Systems, Inc. Enterprise service availability through identity preservation
US8037056B2 (en) * 2005-02-18 2011-10-11 International Business Machines Corporation Online repair of a replicated table
US7620660B2 (en) * 2005-06-30 2009-11-17 Microsoft Corporation Pre-image logging for database recovery
KR100781515B1 (ko) 2006-01-10 2007-12-03 삼성전자주식회사 트랜잭션 처리를 위한 로그 정보 관리 시스템 및 방법
KR20080001230A (ko) 2006-06-29 2008-01-03 주식회사 케이티 공간 데이터의 크기를 고려한 트랜잭션 로그 기록 방법 및트랜잭션 철회 방법
US7599969B2 (en) 2006-12-20 2009-10-06 International Business Machines Corporation Method and system for scheduling workload in databases
US8768890B2 (en) * 2007-03-14 2014-07-01 Microsoft Corporation Delaying database writes for database consistency
KR101473344B1 (ko) * 2007-08-24 2014-12-17 삼성전자 주식회사 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
US8108356B2 (en) 2007-12-24 2012-01-31 Korea Advanced Institute Of Science And Technology Method for recovering data in a storage system
US20100188412A1 (en) * 2009-01-28 2010-07-29 Microsoft Corporation Content based cache for graphics resource management
US8190832B2 (en) * 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US8112607B2 (en) * 2009-05-07 2012-02-07 Sap Ag Method and system for managing large write-once tables in shadow page databases

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6381611B1 (en) 1998-04-01 2002-04-30 Cyberpulse Llc Method and system for navigation and data entry in hierarchically-organized database views
US7164676B1 (en) 2001-03-21 2007-01-16 Cisco Technology, Inc. Method and apparatus for a combined bulk and transactional database synchronous scheme

Also Published As

Publication number Publication date
US8296270B2 (en) 2012-10-23
US20110099149A1 (en) 2011-04-28
KR20110046118A (ko) 2011-05-04

Similar Documents

Publication Publication Date Title
KR101587995B1 (ko) 적응적 로깅 장치 및 방법
CN101784993B (zh) 使用闪存作为存储器的设备及其操作方法
US7930559B1 (en) Decoupled data stream and access structures
US7720892B1 (en) Bulk updates and tape synchronization
US7673099B1 (en) Affinity caching
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
US7640262B1 (en) Positional allocation
CN100412823C (zh) 存储系统中元数据道的原子更新的管理方法和系统
CN102999430B (zh) 处理具有非易失性存储器的系统的未完全关闭
US7640276B2 (en) Backup system, program and backup method
CN106662981A (zh) 存储设备、程序和信息处理方法
KR20080044480A (ko) 지연된 로깅 방법 및 그 장치
CN105408895A (zh) 用于多个访问方法的无锁存、日志结构化的存储
US20110078407A1 (en) Determining an end of valid log in a log of write records
CN104050094A (zh) 管理高速缓存存储区的系统、方法和计算机可读介质
TW201205286A (en) Controller, data storage device, and program product
KR101336258B1 (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
US8108356B2 (en) Method for recovering data in a storage system
US11537582B2 (en) Data access method, a data access control device, and a data access system
US9438672B2 (en) Method for client specific database change propagation
US7549029B2 (en) Methods for creating hierarchical copies
US10430341B2 (en) Log-structured storage method and server
Tait A file system for mobile computing
EP2064633B1 (en) System, method and computer program product for managing data
CN108733584A (zh) 用于优化数据缓存的方法和设备

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 5