KR100725415B1 - 데이터베이스의 로그병합 방법 및 장치 - Google Patents

데이터베이스의 로그병합 방법 및 장치 Download PDF

Info

Publication number
KR100725415B1
KR100725415B1 KR1020050129188A KR20050129188A KR100725415B1 KR 100725415 B1 KR100725415 B1 KR 100725415B1 KR 1020050129188 A KR1020050129188 A KR 1020050129188A KR 20050129188 A KR20050129188 A KR 20050129188A KR 100725415 B1 KR100725415 B1 KR 100725415B1
Authority
KR
South Korea
Prior art keywords
log
merging
strategy
merge
records
Prior art date
Application number
KR1020050129188A
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 KR1020050129188A priority Critical patent/KR100725415B1/ko
Application granted granted Critical
Publication of KR100725415B1 publication Critical patent/KR100725415B1/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

Landscapes

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

Abstract

본 발명은 데이터베이스에서 갱신 연산 발생시 로깅과정에서 발생하는 로그데이터의 크기를 줄이기 위한 발명으로서, 데이터 처리를 위한 전략을 적재하고 있는 로그 병합 전략 단계와 적재된 전략을 바탕으로 데이터의 병합 가능성을 분석하여 병합 계획을 생성하는 로그 분석 단계, 적재된 전략과 계획을 바탕으로 병합을 수행하는 단계를 포함한다.
데이터베이스, 로깅, 전략, 병합

Description

데이터베이스의 로그병합 방법 및 장치 {Log compaction method and apparatus of Database}
도 1은 종래의 기술에 따른 데이터베이스에서 로깅 시스템 모듈이 개략적으로 도시된 도면.
도 2는 종래의 기술에 따른 로깅 시스템의 동작을 개략적으로 도시한 도면.
도 3은 종래의 기술에 따른 갱신 로그 레코드에 대한 로그 레코드 포맷을 도시한 도면.
도 4는 본 발명의 실시에에 따른 로그 병합 시스템을 개략적으로 도시한 도면.
도 5는 본 발명의 실시예에 따른 데이터베이스의 로그병합 방법을 도시한 도면.
도 6는 본 발명의 로그 병합 전략 1에 따른 병합과정이 개략적으로 도시된 도면.
도 7는 본 발명의 로그 병합 전략 2에 따른 병합과정이 개략적으로 도시된 도면.
도 8은 본 발명의 로그 병합 전략 3에 따른 병합과정이 개략적으로 도시된 도면.
도 9는 본 발명의 로그 병합 전략 4를 위해 필요한 확장된 로그 레코드 포맷이 도시된 도면.
도 10은 본 발명의 로그 병합 전략 4에 따른 병합과정이 개략적으로 도시된 도면.
도 11은 본 발명의 로그 병합 전략 5에 따른 병합과정이 개략적으로 도시된 도면.
도 12는 본 발명의 실시예에 따른 로그 병합 계획 수립 및 병합과정을 개략적으로 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
110: 로그 분석부 120: 로그 병합 전략부
130: 로그 병합부
본 발명은 데이터베이스의 로그병합 방법 및 장치에 관한 것으로, 보다 상세하게는 로깅 과정에서 생성되는 로그들을 저장매체에 기록하기전에 중복되는 로그 레코드들을 제거하여 병합하는 데이터베이스의 로그병합 방법 및 장치에 관한 것이다.
도 1은 종래 기술에 따른 데이터베이스의 로깅 시스템 모듈(Logging system module)을 개략적으로 도시하고 있다.
도시한 바와 같이 일반적인 데이터베이스의 로깅 시스템 모듈은 로그 관리자와(10) 힙파일, 목록 관리자, 다방향 탐색트리와 같은 기타 모듈(20), 버퍼 관리자(30) 및 저장매체로(40) 구성된다.
도 2는 종래 기술에 따른 로깅 시스템 모듈의 동작을 개략적으로 도시하고 있다.
사용자로부터 데이터의 갱신 요청(S10)이 발생하면 기타모듈(20)은 버퍼 관리자(30)로부터 해당 데이터를 기록하고 있는 데이터 페이지를 요청하여 가져온다.
해당 데이터를 갱신하기에 앞서 로그 관리자(10)에 로그 기록 요청을 하여(S20) 로그 페이지의 남은 공간에 기록을 한다(S30).
모든 기록이 완료되면(S40) 데이터 페이지를 변경하고(S60) 버퍼 관리자(30)에게 데이터 페이지를 반환하지만, 모든 기록이 완료되지 않을 경우는(S50) 로그 페이지를 저장매체(40)에 쓰고 저장매체(40)에서 빈 로그 페이지를 가져오고(S70), 앞서 언급한 과정을 다시 수행하게 된다.
이와 같이 데이터 페이지에서 데이터를 갱신하기에 앞서 로그를 먼저 기록하는 것을 로그 선기록 방식(Write Ahead Logging, 이하 WAL 이라 함)이라고 한다.
구현방식에 따라 로그 페이지는 로그 관리자(10)가 직접 관리하면서 저장매체에(40) 기록 할 수도 있고, 버퍼 관리자가(30) 관리하면서 로그 관리자가(10) 버퍼 관리자(30)를 통해 로그 페이지를 가져와서 사용할 수 도 있다.
도 3은 종래 기술에 따른 일반적인 로깅과 복구 방식에 사용되는 로그 레코드 포맷을 도시한 것이다.
데이터가 로그 페이지에 기록될 때 하나의 단위 로그를 로그 레코드라 하고, 로깅과 복구 방식에 따라 다양한 포맷을 갖는다.
이와 같은 로깅은 데이터베이스에서 가장 많은 시간을 차지하는 부분이며, 로그 페이지에 기록된 데이터는 실제 갱신되는 데이터의 1배에서 수십/수백배에 달하는 불필요한 중복된 데이터가 존재하게 된다.
이러한 로그의 크기 증가는 저장매체의(40) 입출력을 유발하여 갱신 연산의 반응시간을 증가시키고, 저장매체의(40) 사용성을 떨어뜨린다. 뿐만 아니라 복구 과정에서 처리해야 하는 로그 데이터들이 많아 짐으로써 복구 반응시간 역시 증가하게 된다.
본 발명은 상기한 문제점을 개선하기 위해 고안된 것으로, 로그를 저장매체에 쓰기 전에 로그 레코드를 분석하여 복수개의 중복된 로그 레코드를 제거하여 병합함으로써 로깅과정에서 생성되는 로그의 크기를 줄이고, 로깅과 복구시 안정성을 보장하기 위한 방법 및 장치를 제공하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해 되어질수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 데이터베이스의 로그 병합 방법은 데이터베이스의 갱신 연산 발생시 중복된 로그 레코드들에 대한 로 그 병합 전략을 적재하고 있는 로그 병합 전략 단계와 중복된 로그 레코드들에 대한 병합 대상과 병합 가능성을 식별하는 로그 분석 단계 그리고, 로그 분석 단계에서 식별된 로그 레코드들에서 선택된 병합 대상 및 그 선택된 대상에 대한 병합 전략을 실행하는 로그 병합단계를 포함한다.
본 발명의 실시에 따른 데이터베이스의 로그 병합 장치는 데이터베이스의 갱신 연산 발생시 중복된 로그 레코드들에 대한 로그 병합 전략을 적재하는 로그 병합 전략부와 로그 병합 전략부에 적재된 병합 전략을 바탕으로 중복된 로그 레코드들에 대한 병합 대상을 식별하고 병합 가능성을 판단하는 로그 분석부 및 로그 분석부에서 선택된 병합 대상에 대해 해당 병합 전략을 실행하는 로그 병합부를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
도 4는 본 발명의 실시예에 따른 로그 병합 장치를 개략적으로 도시한 도면 이다.
본 실시예에 따른 로그 병합 장치는 로그 분석부(110), 로그 병합 전략부(120), 로그 병합부(130)로 3개의 구성요소로 구성 되지만, 이에 국한되지 않고, 구현 방식에 따라 모듈을 통합하여 2개 혹은 하나의 모듈로 구현할 수 있으며, 각 모듈을 세분화하여 4개 이상의 모듈로도 구현 할 수 있다.
뿐만 아니라, 본 발명의 실시예의 로그 병합 장치는 구현 방식에 따라 로그 관리자(10)와 별도로 구성될수 있다.
도 4의 로그 병합 전략부(120)는 기타모듈(20)에서 로그 관리자(10)에게 갱신될 데이터에 대한 로그 기록을 요청할 경우 복수개의 중복되는 로그 레코드들을 어떻게 병합 할 것인가 하는 병합 전략을 적재하고 있다.
병합 전략은 후술하는 5개의 전략들을 포함한다.
후술하는 5개의 전략들 또한 각 병합 전략들에 조합 및 그로부터 파생될 수 있는 모든 전략들이 포함 될 수 있다.
로그 분석부(110)에서는 로그 병합 전략부(120)의 병합 전략을 바탕으로 중복된 로그 레코드들에 대한 병합 대상과 병합 가능성을 식별하며, 로그 병합부(130)은 식별된 대상과 가능성에 따라 병합을 실행한다.
로그 병합부(130)에서 병합이 실행되면, 로그 페이지에 여유 공간이 생기게 되고 이때 여유 공간의 부족으로 기록하지 못한 로그들이 기록이 된다.
이와 같이 구성된 로그 병합 시스템에서는 안정적인 병합을 실행하기 위해서 다음과 같은 기본 원칙을 준수하고 조건을 만족하는 것이 바람직하다.
첫째, 동일한 페이지 아이디를 갖는 로그 레코드는 병합 할 수 있다. 이것은 동일하지 않은 페이지 아이디를 갖는 로그 레코드는 병합을 하지 않는다는 것을 의미하는 것이다.
둘째, 동일한 페이지 아이디를 갖는 로그 레코드들을 병합 할 경우, 가장 마지막 로그 시퀀스 넘버(Log Sequence Number, 이하 LSN이라고 함)를 갖는 로그 레코드를 기준으로 병합을 수행한다. 예를들어 LSN이 0, 1, 2라고 할 때 0의 위치로 1과 2를 병합하는 것이 아니라, 2의 위치로 0과 1을 병합 하는 것을 의미한다.
셋째, 병합될 로그 레코드들의 계획들이 복수개일 경우, 각 계획들의 마지막 로그 레코드의 LSN순서에 따라 병합을 수행한다. 예를들어 페이지 6에 대한 병합 계획과 페이지 2에 대한 복수개의 병합 계획이 있을 경우 페이지 6에 대한 로그 레코드의 LSN이 1, 3, 7이고, 페이지 2에 대한 로그 레코드의 LSN이 2, 4, 8일 때, 2개의 계획중 마지막 로그 레코드의 LSN은 각각 7과 8이 된다. 이중 LSN 7 이 먼저이므로 페이지6에 대해 병합을 먼저 실행하게 된다.
병합의 기본 원칙에 의해 병합전 로그 레코드의 LSN, A와 병합후 로그 레코드의 LSN, A'에는 항상 A >= A'이라는 조건이 성립한다.
이 조건은 로그의 병합이 발생하여 LSN이 변경되더라도, 로깅과 복구가 안정적으로 수행되는 것을 보장하는 조건이다.
병합을 기록한 페이지와 원래 로그 페이지가 서로 다른 경우 LSN은 로그 레코드의 물리적 위치를 나타내므로 페이지가 다르지만 원래 페이지와 같은 페이지 번호를 유지 해야한다. 이를 위해서는 해당 로그 레코드의 이전 로그 레코드의 LSN은 원래 페이지 번호로 생성되어야한다. 즉, 원래 페이지가 L1이고 병합한 로그를 기록한 페이지를 L2라고 할 때, L2를 L1에 복사 하는 것을 반드시 수행해야 하며, 구현에 따라 포인터 교환 방법을 사용할 수 도 있다.
이 같은 방법을 사용하는 이유는 데이터 페이지에 기록된 마지막 LSN과의 일관성을 유지하기 위해서이다.
도 5는 본 발명의 실시예에 따른 데이터베이스의 로그 병합 방법을 개략적으로 도시한 도면이다.
사용자로부터 데이터의 갱신 요청이 발생하여 모든 로그의 기록 여부를 판단하기(S10~S40)까지는 관련 기술과 동일 또는 유사하지만, 중복된 로그 레코드들에 대한 병합 전략을 적재하는(S5) 저장소로써의 로그 병합 전략부(120)를 포함하고 있다. 병합 전략 적재는 데이터 페이지 변경 요청시 마다 발생하는 것이 아니라 데이터베이스가 초기화 될 때 한번 발생한다. 상황에 따라 병합 전략이 변경되거나 추가되면 변경된 시점에 적재가 발생할 수 있다. 구현에 따라 병합 전략은 소스코드에 하드 코딩되어 들어감으로써 병합 전략 적재는 데이터베이스가 초기화 되는 시점에 메모리상에서만 발생할 수도 있다. 로그 분석부(110)에서는 로그 병합 전략부(120)에 적재된 병합 전략을 바탕으로 중복된 로그 레코드들에 대한 병합 대상을 식별하고 병합 방식을 선택 하여(S140), 병합 가능성이 있다면(S150) 로그 병합부(130)에서 병합을 실행한다(S160). 로그 병합 실행으로 로그 페이지의 여유 공간에 로그가 기록되고(S30), 더 이상 기록할 로그가 없으면 데이터 페이지가 변경되고(S190) 기록 과정이 종료된다.
만약, 병합 가능성이 없다면(S150) 로그 페이지를 저장매체(40)에 쓰고(S170) 빈 로그 페이지를 가져와서(S180), 중복된 로그 레코드들이 제거 될때까지 앞선 과정을 수행하게 된다.
도 6은 본 발명의 로그 병합 전략 1에 따른 병합과정을 개략적으로 도시한 것이다.
도 6에서 로그 레코드 C(60)와 E(62) 사이의 기호 ?는 두 개의 로그 레코드의 병합 연산 수행을 의미한다.
로그 병합 전략부(120)에 적재되어 있는 로그 병합 전략 1은 복수개의 로그 레코드의 데이터 시작위치와 길이가 동일할 경우 중복된 로그 레코드를 병합하는 전략이다.
도시한 바와 같이 로그 레코드 C(60)와 E(62)는 데이터의 시작위치와 길이가 동일하다. 즉, 병합 전략 1에 의해 병합을 실행할 수 있다.
로그 레코드 C(60)의 IJKL 이미지와 E(62)의 IJKL 은 로깅의 중간과정에 있는 불필요한 이미지 이므로 제거되고, 중복된 2개의 로그 레코드C(60), E(62)가 1개의 로그 레코드E'(64)로 줄어드는 것을 확인 할 수 있다.
도 7은 본 발명의 로그 병합 전략 2에 따른 병합과정을 개략적으로 도시한 것이다.
로그 병합 전략 2는 복수개의 로그 레코드의 데이터 시작 위치가 인접하고, 길이가 연속되는 경우의 병합 전략을 말한다.
도시한 바와 같이 로그 레코드 A(70), B(72), C(74)는 데이터 길이가 4로 연 속되고, 데이터의 시작위치가 10, 14, 18로 인접해 있다.
병합 전략 2에 따라 연속되는 데이터 길이를 하나로 병합하고, 데이터의 시작위치는 가장 먼저 시작하는 10으로 병합된다. 즉, 병합된 로그 레코드C'(76)처럼 길이는 12가 되고 데이터의 시작위치는 10이 된다.
도 7 에서도 병합전 3개였던 로그 레코드가 1개로 줄었음을 알 수 있다.
도 8은 본 발명의 로그 병합 전략 3에 따른 병합을 개략적으로 도시한 것이다.
복수개의 로그 레코드가 서로 인접해 있지는 않지만 갱신한 데이터의 위치가 인접하는 경우의 병합 전략을 말한다. 로그 레코드 D(80)와 G(82)는 병합 전략 3에 따라 병합이 수행 되는데 병합 전략 2와 동일한 방식으로 병합을 실행한다.
병합 전략 2와 동일한 방식으로 병합된 로그 레코드 G'(84)는 길이 필드값은 14, 갱신 전 이미지는 01...0001, 갱신 후 이미지는 98...0002로 병합이 실행된다.
도 9는 본 발명의 로그 병합 전략 4를 위해 필요한 확장된 로그 레코드 포맷을 도시한 것이다. 확장된 로그 레코드 포맷은 도 3의 관련 기술의 업데이트 로그 레코드 포맷에서 길이, 시작위치, 갱신 전/후 이미지가 병합되는 로그 레코드 수만큼 복수 개를 유지할 수 있고, 길이 필드 앞에 합쳐진 로그 레코드들의 수를 나타내는 이미지 카운터 필드가 추가된다.
도 10은 본 발명의 로그 병합 전략 4에 따른 병합을 개략적으로 도시한 것이다.
병합 전략 4는 복수개의 로그 레코드가 동일한 페이지의 겹치지 않고 인접하 지 않는 위치의 데이터를 갱신하는 경우의 병합 전략이다.
로그 레코드 F(90), H(92)의 로그 레코드가 동일한 페이지 P3에 겹치지 않고, 인접하지 않는 위치의 데이터를 갱신하는 경우에 병합 하는 것을 말한다.
병합이 실행된 로그 레코드 H'(94)는 이미지 카운터로 두개의 로그 레코드가 병합 됐음을 의미하고, 필드(96)은 병합전의 로그 레코드 F(90)와 H(92)의 시작 위치중 먼저 위치해 있는 로그 레코드H(92)의 이미지가 기록 된다.
도 11은 본 발명의 로그 병합 전략 5에 따른 병합 과정을 개략적으로 도시한 것이다.
병합 전략 5는 복수개의 로그 레코드가 동일한 페이지의 일부 겹치는 위치의 데이터를 갱신하는 경우의 병합 전략이다.
로그 레코드 F(100)와 I(102)를 보면 두 개의 로그 레코드의 시작 위치가 23, 25로 인접해 있음을 알 수 있다.
병합이 실행된 로그 레코드 I'(104)는 데이터 시작 위치가 순서상 빠른 로그 레코드F(100)의 갱신 전 이미지 필드에서 가나다로 취하고, 갱신 후 이미지는 순서상 늦은 로그 레코드 I(102)에서 다라마로 취하여 병합한 것이다.
도 12는 본 발명의 실시예에 따른 로그 병합 계획 수립 및 병합 과정을 개략적으로 도시한 도면이다.
복수개의 로그 레코드(110) 분석결과 갱신한 데이터의 위치가 인접하는 로그 레코드A(112)와 F(120)는 로그 병합 전략부(120)에 적재되어있는 병합 전략 3에 적용되며, 로그 레코드C(114), D(116), E(118)은 로그 레코드가 인접해 있고 갱신한 데이터 위치가 인접하므로 병합 전략 2에 적용된다는 것을 확인 할 수 있다.
로그 병합부(130)에서는 병합 대상(C)를 병합 전략 2와 병합 전략 3을 바탕으로, 로그 레코드들을 처음부터 하나씩 읽어 나가면서 병합을 실행한다.
로그 레코드 A(112)는 페이지 아이디가 병합 대상에 존재하지만, 동일한 페이지 아이디를 가지는 로그 레코드 중에서 마지막 로그 레코드가 아니므로 병합 전략을 실행하지 않는다.
다음으로 읽혀지는 로그 레코드는 페이지 아이디가 병합 계획 C에 없으므로, 빈 페이지에 해당 로그 레코드를 기록한다. 이 페이지의 경우 자신이 첫 레코드이므로 이전 시퀀스 넘버가 null로 기록된다.
다음의 로그 레코드 C(114) 또한 페이지 아이디가 병합 계획 C에 있지만 동일한 페이지 아이디를 가지는 다른 로그 레코드 중에서 마지막 로그 레코드가 아니므로 병합을 수행 하지 않는다.
로그 레코드 D(116) 또한 로그 레코드 C(114)과 마찬가지로 동일한 페이지 아이디를 가지는 다른 로그 레코드 중에서 마지막 로그 레코드 가 아니므로 병합을 실행하지 않는다.
로그 레코드 E(118)은 페이지 아이디가 병합 대상 C에 있고, 동일한 페이지 아이디를 가지는 다른 로그 레코드 중에서 마지막 로그 레코드이므로 병합 대상 C에 따라 병합 전략 2를 수행한다.
병합 전략 2에 따라 로그 레코드 A(112)와 F(120)의 병합 결과는 로그 레코드 E'(122)과 같이 길이 필드가 각 로그 페이지의 길이 필드를 합한 12가 되고, 데 이터의 시작위치는 로그 레코드중 가장 빠른 위치인 10, 갱신 전 이미지는 abc...jkl, 갱신 후 이미지는 ABC...JKL로 기록된다.
로그 레코드 F(120) 또한 페이지 아이디가 병합 대상 C에 있고, 동일한 페이지 아이디를 가지는 다른 로그 레코드 중에서 마지막 로그 레코드이므로 병합 대상 C에 따라 병합 전략 3을 실행한다.
그 결과 로그 레코드 F'(124)처럼 길이 필드는 각 로그 레코드의 길이 필드를 합한 14가 되고, 데이터의 시작위치는 로그 레코드중 가장 빠른 위치에 있는 16이 되며, 갱신 전 이미지는 01...90001, 갱신 후 이미지는 98...00002로 기록된다.
로그 병합 대상 C에 더 이상의 대상이 없고, 모든 로그 레코드를 읽었으므로 로그 병합 과정이 종료된다.
병합전 6개였던 로그 레코드가 병합 과정을 거친후 3개의 로그 레코드로 줄었음을 확인 할 수 있다.
다음은 본 발명의 실시예에 따른 것으로 로깅과정에서 발생하는 로그의 크기를 종래 기술과 비교한 것이다.
전체 입력 데이터 레코드의 수가 3000개, 전체 데이터 레코드 길이의 총합이 607Kb, 데이터 레코드의 평균 길이가 202bytes, 데이터 레코드의 필드 수가 11개이고, 갱신 전/후 이미지를 제외한 로그 레코드의 길이가 36bytes인 데이터의 갱신요청이 있을 경우.
2개의 데이터 페이지에 걸쳐지는 데이터 레코드 개수는 336개, 1개의 데이터 페이지에 들어가는 데이터 레코드의 개수는 2664개가 된다. 2개의 데이터 페이지에 걸쳐서 들어가는 경우 필드당 하나의 로그 레코드가 생성되고, 이 경우 병합 전략 2를 적용하여 병합이 가능하다.
관련 기술에서는 1개의 데이터페이지에 들어가는 데이터 레코드 1개에 대한 로그 레코드 1개가 36bytes 이므로, 2664개의 데이터 레코드에 대한 로그 크기는 2664와 36bytes를 곱한 값인 93.6kb가 되고, 2개의 데이터 페이지에 걸쳐지는 데이터 레코드 1개에 대한 로그 레코드는 데이터 레코드의 필드 수 만큼 11개가 생성되므로 36bytes와 11를 곱한 396bytes가 된다. 2개의 데이터 페이지에 걸져지는 데이터 레코드는 336개 이므로 이에 대한 전체 로그 크기는 336에 396bytes를 곱한 129.9kb가 된다.
그러나, 본 발명의 로그 병합 전략 2를 적용하면 2개의 데이터 페이지에 걸쳐지는 데이터 레코드 1개에 대한 로그 레코드들 11개가 1개로 병합되어 로그 크기가 336에 36bytes를 곱한 값인 11.8kb의 크기가 된다.
즉, 하나의 병합 전략 2로도 생성된 로그의 크기가 129.9kb에서 52% 정도의 감소율인 11.8kb가 됨을 확인 할 수 있다.
상기한 바와 같은 본 발명의 데이터베이스의 로그 병합 방법 및 장치에 따르면, 로그를 저장매체에 쓰기 전에 로그 레코드를 분석하여 복수개의 중복된 로그 레코드를 제거하여 병합 함으로써 생성한 로그의 크기를 줄이고, 로깅과 복구 시간을 줄일 수 있는 장점이 있다.
상기한 바와 같은 본 발명의 데이터베이스의 로그 병합 방법 및 장치에 따르 면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 로깅과 복구 방식의 안정성을 보장하면서 생성된 로그의 크기를 줄일 수 있다는 장점이 있다.
둘째, 감소된 로그 크기가 저장매체의 입출력을 감소시키므로 로깅의 반응시간을 줄이고 저장매체의 사용성을 증대 시킬수 있다는 장점도 있다.
셋째, 병합을 통해 줄어든 로그 크기는 복구시 처리해야 하는 로그 레코드를 감소시켜 복구 반응시간을 줄일수 있다는 장점도 있다.

Claims (4)

  1. 데이터베이스의 갱신 연산 발생 시 복수의 로그 레코드들 중 데이터 위치, 데이터의 길이, 동일한 페이지에 존재 여부 및 데이터 길이의 연속성에 따라 상기 로그 레코드의 병합 가능성 및 병합 대상 식별을 위한 로그 병합 전략을 로그 병합 전략부에 적재하는 단계;
    상기 로그 병합 전략에 따라 상기 로그 레코드들에 대한 병합 가능성 및 병합 대상을 식별하기 위해 상기 로그 레코드를 분석하는 로그 분석 단계; 및
    상기 로그 레코드 분석에 따라 상기 로그 병합 전략을 바탕으로 로그 병합을 수행하는 로그 병합단계를 포함하는 데이터베이스의 로그병합 방법.
  2. 제 1항에 있어서,
    상기 로그 병합 전략은,
    상기 복수의 로그 레코드의 데이터 시작 위치와 길이가 동일한 경우에 상기 로그 병합을 실행하는 제 1 전략,
    갱신 데이터의 시작 위치가 인접한 경우에 상기 로그 병합을 실행하는 제 2 전략,
    상기 복수의 로그 레코드가 인접하지는 않지만 상기 갱신한 데이터 위치가 인접한 경우에 상기 로그 병합을 실행하는 제 3 전략,
    동일한 페이지에 존재하지만 중복되지 않고 데이터의 시작 위치가 다른 경우에 상기 로그 병합을 실행하는 전략으로 확장된 로그 레코드 포맷을 사용하는 제 4 전략 및
    상기 복수의 로그 레코드가 동일한 페이지에 존재하고, 상기 로그 레코드의 일부가 중복되는 경우에 상기 로그 병합을 실행하는 제 5 전략 중 적어도 하나의 로그 병합 전략인 데이터베이스의 로그 병합 방법.
  3. 데이터베이스의 갱신 연산 발생 시 복수의 로그 레코드들 중 로그 데이터 위치, 데이터의 길이, 동일한 페이지에 존재 여부 및 데이터 길이의 연속성에 따라 상기 로그 레코드의 병합 가능성 및 병합 대상 식별을 위한 로그 병합 전략을 적재하는 로그 병합 전략부;
    상기 적재되는 로그 병합 전략을 바탕으로 상기 로그 레코드들 중 병합 가능성을 판단하여 병합 대상을 식별하는 로그 분석부; 및
    상기 분석에 따라 상기 로그 병합 전략을 실행하는 로그 병합부를 포함하는 데이터베이스의 로그병합 장치.
  4. 제 3항에 있어서,
    상기 로그 병합 전략부는,
    상기 복수의 로그 레코드가 동일한 페이지에 존재하고, 상기 로그 레코드의 일부가 중복되는 경우에 상기 로그 병합을 실행하는 제 5 전략을 포함하는 데이터베이스의 로그병합 장치.
KR1020050129188A 2005-12-24 2005-12-24 데이터베이스의 로그병합 방법 및 장치 KR100725415B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050129188A KR100725415B1 (ko) 2005-12-24 2005-12-24 데이터베이스의 로그병합 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050129188A KR100725415B1 (ko) 2005-12-24 2005-12-24 데이터베이스의 로그병합 방법 및 장치

Publications (1)

Publication Number Publication Date
KR100725415B1 true KR100725415B1 (ko) 2007-06-07

Family

ID=38358467

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050129188A KR100725415B1 (ko) 2005-12-24 2005-12-24 데이터베이스의 로그병합 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100725415B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949799B2 (en) 2011-10-31 2015-02-03 International Business Machines Corporation Program log record optimization
CN108234595A (zh) * 2017-11-29 2018-06-29 山东鲁能软件技术有限公司 日志传输方法及系统
CN109992469A (zh) * 2017-12-29 2019-07-09 北京奇虎科技有限公司 一种合并日志的方法及装置
US11042453B2 (en) 2016-04-06 2021-06-22 Iucf-Hyu(Industry-University Cooperation Foundation Hanyang University) Database journaling method and apparatus
US11321354B2 (en) * 2019-10-01 2022-05-03 Huawei Technologies Co., Ltd. System, computing node and method for processing write requests

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970066947A (ko) * 1996-03-08 1997-10-13 포만 제프리 엘 공유데이타 파일의 사본 관리방법 및 데이타관리 시스템 및 컴퓨터 시스템
KR20020097291A (ko) * 2001-06-20 2002-12-31 (주)엔토시스 무선 인터넷 로그 분석 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970066947A (ko) * 1996-03-08 1997-10-13 포만 제프리 엘 공유데이타 파일의 사본 관리방법 및 데이타관리 시스템 및 컴퓨터 시스템
KR20020097291A (ko) * 2001-06-20 2002-12-31 (주)엔토시스 무선 인터넷 로그 분석 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949799B2 (en) 2011-10-31 2015-02-03 International Business Machines Corporation Program log record optimization
US11042453B2 (en) 2016-04-06 2021-06-22 Iucf-Hyu(Industry-University Cooperation Foundation Hanyang University) Database journaling method and apparatus
CN108234595A (zh) * 2017-11-29 2018-06-29 山东鲁能软件技术有限公司 日志传输方法及系统
CN109992469A (zh) * 2017-12-29 2019-07-09 北京奇虎科技有限公司 一种合并日志的方法及装置
CN109992469B (zh) * 2017-12-29 2023-08-18 三六零科技集团有限公司 一种合并日志的方法及装置
US11321354B2 (en) * 2019-10-01 2022-05-03 Huawei Technologies Co., Ltd. System, computing node and method for processing write requests

Similar Documents

Publication Publication Date Title
KR100862661B1 (ko) 지연된 로깅 방법 및 그 장치
JP5211514B2 (ja) 更新装置、更新方法および更新プログラム
CN107665219B (zh) 一种日志管理方法及装置
JP4916892B2 (ja) トランザクション処理のためのログ情報管理システムおよび方法
KR20110032343A (ko) 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
CN103744936A (zh) 一种数据库中的多版本并发控制方法及数据库系统
JP2007012056A (ja) データ保全の先送りされた認証を有するファイルシステム
US20070112892A1 (en) Non-disruptive backup copy in a database online reorganization environment
KR100725415B1 (ko) 데이터베이스의 로그병합 방법 및 장치
US8433871B2 (en) Data copy management for faster reads
US7225206B2 (en) System and method for reorganizing stored data
CN110597663A (zh) 一种事务处理方法及装置
CN109491834B (zh) 一种应用于数据库的数据恢复方法及装置
WO2006095356A1 (en) A method of logging transactions and a method of reversing a transaction
US20030225585A1 (en) System and method for locating log records in multiplexed transactional logs
JP5108252B2 (ja) インデクス更新方法及びそのシステム
CN104169981B (zh) Pos设备
JP2018085042A (ja) データベース管理装置、情報処理システム、データベース管理方法及びデータベース管理プログラム
JP2001229063A (ja) データ管理システム
US20230409608A1 (en) Management device, database system, management method, and computer program product
JP2822869B2 (ja) ライブラリファイル管理装置
CN113821485A (zh) 一种数据变更方法、装置、设备及计算机可读存储介质
US11567671B2 (en) Method, electronic device, and computer program product for storage management
CN117170942B (zh) 一种基于文件系统快照的数据库备份方法以及相关设备
US20220113886A1 (en) Extent operation processing

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
G170 Publication of correction
LAPS Lapse due to unpaid annual fee