KR100556594B1 - 데이터베이스에 관한 방법 - Google Patents

데이터베이스에 관한 방법 Download PDF

Info

Publication number
KR100556594B1
KR100556594B1 KR1020007000633A KR20007000633A KR100556594B1 KR 100556594 B1 KR100556594 B1 KR 100556594B1 KR 1020007000633 A KR1020007000633 A KR 1020007000633A KR 20007000633 A KR20007000633 A KR 20007000633A KR 100556594 B1 KR100556594 B1 KR 100556594B1
Authority
KR
South Korea
Prior art keywords
log
information
database
physiological
page
Prior art date
Application number
KR1020007000633A
Other languages
English (en)
Other versions
KR20010022064A (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 KR20010022064A publication Critical patent/KR20010022064A/ko
Application granted granted Critical
Publication of KR100556594B1 publication Critical patent/KR100556594B1/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
    • 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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

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

Abstract

본 발명은 데이터베이스에 관한 방법에 관한 것이며, 데이터베이스에서의 변경에 관련하여 로그 정보의 신뢰 가능한 수집을 제공하기 위한 것이다. 소위 퍼지 체크 포인트는 로그 정보가 실시간으로 수집되도록 하기 위해 생리적 로그와 조합하여 사용된다. 데이터베이스에 속하는 데이터 정보는 소정의 데이터 구조에 따라 보다 작은 부분으로 분할되고, 여기서 각각의 부분은 데이터베이스에 속하는 서로 동일한 페이지 또는 별개의 페이지에 분산된다. 퍼지 체크 포인트에 필요한 논리적 UNDO-정보는 부분(1) 중 하나의 변경이 발생할 시에, 페이지 중 하나에 추가적인 부분(1')을 생성함으로써 구현되고, 여기서 구 데이터 정보는 새로운 데이터 정보로 대체된다. 이러한 추가적인 부분(1')은 구조적으로 변경된 부분(1)의 복제이다. 변경된 부분(1)은 새로운 데이터 정보(A')를 포함하고, 추가적 부분(1')은 구 데이터 정보(A)를 포함한다.

Description

데이터베이스에 관한 방법{A METHOD RELATING TO DATABASES}
본 발명은 데이터베이스에 관련된 방법에 관한 것이며, 데이터베이스 변경과 관련하여 로그 정보(log-information)의 신뢰 가능한 수집을 제공하기 위한 것이다.
상기 방법은 일관성 체크 포인트에서 통상적으로 발생하는 대기 시간이 단축되도록 할 목적으로 퍼지(fuzzy) 체크 포인트를 이용하며, 여기서, 이러한 퍼지 체크 포인트는 로그 정보가 실시간으로 수집되도록 할 의도로 생리적 로그 (physiological log)와 조합된다.
데이터베이스에 속하는 데이터 정보는 소정의 데이터 구조에 따라 더욱 작은 부분으로 분할되고, 여기서 각각의 부분은 데이터베이스에 속하는 공통의 페이지 또는 별개의 페이지에 분산된다.
본 발명의 방법은 특히 위치 및 복제(replica)에 의존하지 않는 로그가 필요한 분산형 데이터베이스에 관한 애플리케이션(application)에 적용될 수 있다.
두 개의 기본 데이터베이스 구조, 즉 디스크 메모리 데이터베이스 및 일차 메모리 데이터베이스는 다수의 관련 특성과 함께 도입하여 설명된다. 디스크 메모리 데이터베이스에서, 정보 부분, 가장 최근에 사용된 정보는 일차 메모리 내에 존재하지만, 그 나머지는 디스크 메모리 내에 존재한다. 이 경우에, 원하는 정보가 일차 메모리 내에 이미 저장되어 있지 않은 경우, 그 정보는 디스크 메모리로부터 추출되어 일차 메모리 내에 입력되어야 한다. 디스크 메모리로부터 추출된 새로운 정보는 일차 메모리 내에 존재하는 정보 위에 덮어 씌워지고(written over), 이러한 덮어 씌워진 정보가 이후 단계에서 사용될 경우, 상기 정보를 디스크 메모리로부터 재수집하는 것이 필요로 된다. 메모리 내용은 페이지로 분할되고, 페이지는 서로 독립적으로 처리된다. 예컨대, 새로운 정보는 하나의 페이지로 취급되는 반면에, 다른 페이지는 영향을 받지 않는다.
디스크 메모리 데이터베이스의 경우에, 일차 메모리 내의 데이터 구조는 통상적으로 디스크 메모리 내의 구조에 1:1 매핑된다.
디스크 메모리 데이터베이스의 일차 메모리의 메모리 내용은 한번에 한 페이지씩 디스크 메모리에 갱신되므로, 상이한 페이지 간의 링크는 고장(crash) 이후에 시스템을 재시작할 때 일치하지 않는다. 따라서, 디스크 메모리 데이터베이스에 관련하여 일관성 체크 포인트가 구현되는 것이 종종 어렵다.
일관성 체크 포인트는 일차 메모리 데이터베이스에서 더욱 용이하게 달성된다. 예를 들어, 이러한 일관성은 디스크 메모리 내에 두 개의 데이터베이스 복제, 즉, 최신 또는 현행 버전(version)의 데이터베이스의 복제 및 구형 버전의 복제를 가짐으로써 용이하게 달성될 수 있다. 이것은 데이터베이스의 전체가 일차 메모리에서 동시에 발견되고, 소정의 체크 포인트에 따라 모든 페이지 사이에서 일관성이 보편화되는 것으로 공지되어 있는 상이한 버전의 데이터베이스가 디스크 메모리 내에 용이하게 저장될 수 있기 때문에 가능하다.
데이터베이스 내의 오브젝트(object)에 속하는 어떤 속성(attributes)은 일차 메모리에 기초로 하는 반면에, 동일한 오브젝트 내의 기타 속성은 디스크 메모리에 기초로 할 수 있다. 디스크 메모리 데이터베이스와 일차 메모리 데이터베이스 간의 혼합으로 이루어지는 테이블이 또한 발견될 수 있다.
데이터베이스는 상이한 방식으로 포맷되는 데이터 테이블을 포함한다. 테이블은 다수의 열(column)로 구성되며, 여기서, 각각의 열은 어떤 종류의 정보를 포함한다. 각각의 열은 특정의 속성을 할당받고, 상기 열 내의 정보는 이 속성에 따라 포맷된다.
속성의 예는 저장된 정보가 부호를 가지거나 또는 부호를 가지지 않은 정수, 부동 소수점수, 10진수, 날짜, 텍스트 등으로서 포맷된다는 것이다.
속성에 의해서 결정되는 기타의 팩터(factor)는:
- 속성이 고정 속성일 때, 즉 내용이 고정 메모리 사이즈를 차지(take up)할 때,
- 속성이 가변 속성일 때, 즉 속성의 크기가 변화할 때, 또는
- 속성이 동적 속성일 때, 즉 속성이 선택 가능하거나 또는 임의적인 속성과 같이, 존재하거나 또는 존재하지 않을 때를 포함한다.
동적 속성은 가변적일 수도 있고 고정적일 수도 있다.
테이블 내의 오브젝트는 테이블 내의 행(row) 또는 라인에 대응하고, 테이블에 존재하는 속성(열)을 포함한다. 따라서, 오브젝트는 상술한 여러 속성의 혼합을 포함할 수 있다.
한 그룹의 개인에 관한 개인 정보를 목록화하는 테이블은 이 점에서 하나의 예이다. 상이한 속성은, 세례명, 성(surname), 주소, 우편 번호, 전화 번호, 생년월일 및 기타의 임의적인 주석(comment) 등을 포함할 수 있다.
생년월일은 고정 속성(소정의 포맷에 입력되는 경우)인 반면에, 성명, 주소, 전화 번호는 가변 속성이고, 주석은 동적 가변 속성이다.
오브젝트는 개인 및 그 개인에 관한 정보이다.
이러한 예에 따른 테이블이 저장될 수 있는 다수의 방법이 존재한다. 테이블은 메모리 내에서 연속적인 시퀀스로 고정 메모리 공간에 저장될 수 있다. 이것은 대용량의 메모리 공간을 필요로 하며, 이 메모리 공간의 대부분은 가변 및 동적 속성을 위한 공간을 준비할 수 있도록 하기 위하여 비어 있을 것이다. 그리고 나서, 가변 속성은 할당된 메모리 공간의 크기에 따라 제한된 방식으로만 가변일 것이다.
대안으로, 각각의 오브젝트는 가변 속성의 크기, 또는 동적 속성의 존재 여부, 및 존재하는 경우, 이러한 속성의 크기를 개시하는 헤더를 제공받을 수 있다. 따라서, 오브젝트를 생성할 때, 각각의 속성에 필요한 메모리 공간이 할당되고, 속성이 조합되어 오브젝트를 형성한다. 헤더는 각각의 속성의 크기를 개시함으로써, 오브젝트 내의 정보가 정확하게 해석될 수 있도록 한다. 헤더는 또한 각각의 속성을 지시하는 포인터를 포함하는 인덱스를 포함할 수 있다.
실제로 메모리 내에 테이블을 저장할 때, 메모리가 테이블 전체를 저장하기 위한 연속적인 메모리 공간을 거의 갖지 않는데, 그 이유는 메모리가 종종 더 크거나 더 작은 크기로 프래그먼트되기(fragmented) 때문이다. 대부분의 경우에, 테이블은 너무 커서 한 페이지에 수용될 수 없다. 따라서, 테이블 내의 각종 오브젝트는 한 페이지 상에 분산되고, 테이블은 이러한 여러 개의 페이지에 걸쳐 분할된다.
프래그먼트(fragment)는 테이블의 일부이고, 여러 개의 상이한 페이지를 포함한다. 분산형 데이터베이스에서, 테이블은 분산형 데이터베이스 내의 여러 개의 프로세서 노드를 통하여 분산될 수 있다. 그리고 나서, 프래그먼트는 노드에서 발견되는 테이블의 일부이다. 프래그먼트는 또한 테이블의 동일한 부분의 모든 복제를 포함한다. 따라서, 프래그먼트는 하나의 노드 내에 저장되는 테이블 일부의 일차 복제, 및 다른 노드 내에 저장되는 동일한 테이블의 동일한 부분의 이차 복제를 포함할 수 있다. 동일하거나 상이한 테이블의 상이한 프래그먼트의 여러 개의 상이한 복제가 하나의 노드 내에 저장될 수 있다.
큰 오브젝트의 경우에, 통상적으로, 각종 오브젝트를 분할하여, 이러한 분할된 오브젝트를 페이지의 상이한 위치에 저장하거나, 오브젝트를 상이한 페이지 사이에 분할할 필요가 있다는 것이 발견되었다. 예컨대, 큰 오브젝트는 하나 이상의 속성이 수 천 개의 문자를 포함할 수 있는 텍스트 파일로 이루어지는 오브젝트일 수 있다.
큰 오브젝트의 경우에, 디스크 메모리 데이터베이스와 관련하여, 테이블 및 테이블 내의 오브젝트에 대해, B-트리(tree)와 같은 트리 구조를 구성하는 진보된 데이터 구조를 사용하는 것은 공지되어 있다.
그리고 나서, 오브젝트는 여러 부분으로 분할되고, 이러한 부분은 트리 구조에 따라 이용 가능한 메모리 공간 내에 저장된다. 각각의 오브젝트에 대한 헤더는 B-트리에서 아래를 지시하는 포인터를 포함함으로써, 오브젝트의 여러 부분이 발견될 수 있도록 한다. 이러한 부분은 반드시 전체의 속성을 구성할 필요는 없고, 오브젝트는 하나의 단일 연속 문자 열로서 처리될 수 있고, 이용 가능한 메모리 공간에 따라 임의의 원하는 방식으로 분할될 수 있다.
이러한 절차는 통상적으로 오브젝트가 페이지 전체를 커버할 만큼 클 때와, 변경이 디스크 메모리에 직접 기록되는 경우에 적용된다. 정보가 디스크 메모리에 직접 기록되지 않은 경우, 어떤 형태의 로그가 필요로 된다. 오브젝트가 매우 큰 이와 같은 경우에, 매우 광범위한 로그 파일이 필요로 된다.
오브젝트를 추가하거나 제거할 때, 또는 오브젝트의 속성을 변경하고, 갱신할 때와 같이 프래그먼트에 변경이 행해질 때, 변경이 디스크 메모리 데이터베이스에 관한 것인지 또는 일차 메모리 데이터베이스에 관한 것인지에 관계없이, 곧 변경을 영속적인 방법으로 저장하는 것이 필요로 될 것이다.
장기간 영속적이라고 하는 것은 예컨대, 시스템의 부분 또는 시스템 전체가 기능을 멈추더라도 정보가 저장된 채로 유지되는 것을 의미한다. 그러나, 장기간 영속적인 저장은 디스크 메모리 내에 저장할 때 일차 메모리에서는 달성되지 않는다. 디스크 메모리에 기록하고, 디스크 메모리로부터 판독하는 데에는 시간이 걸리고, 이것은 어떤 시점에서만 행해진다. 디스크 메모리는 일차 메모리에 따라 한 번에 하나의 완전 페이지씩 갱신된다.
프로세서가 기능을 멈추는 경우, 커미트되지 않은 모든 트랜잭션을 중단하면서, 커미트된 모든 트랜잭션을 실행하는 것이 필요로 된다. 이러한 이벤트(event)를 처리하기 위하여 두 가지 형태의 정보가 저장된다.
REDO-정보는 일차 메모리 내에서 실행되었으나, 디스크 메모리 내에 저장되지 않은 커미트된 변경이 프로세서가 기능을 멈출 때, 손실된 정보의 복원에 관련하여 재실행될 수 있도록 하는데 사용된다.
UNDO-정보는 프로세서가 기능을 멈출 때, 손실된 정보의 복원에 관련하여, 아직 커미트되지 않았으나, 디스크 메모리 내에 기록된 변경을 취소하는데 사용된다.
이러한 정보는 로그 정보로서 저장되고, 통상적으로 프래그먼트에 영향을 주는 모든 변경이 로그 내에 저장되는 소위 프래그먼트 로그 내에 저장된다. 로그-정보는 많은 상이한 방법으로 수집되고 저장될 수 있다.
물리적인 로그는 발생하는 모든 변경을 저장한다. 로그는 비트 레벨에서 동작하며, 변경 전과 변경 후의 정보를 저장한다. 물리적인 로그는 모든 변화, 진정한 정보 변경이 아니고, 단지 메모리 공간의 재분할인 프래그먼트된 파일 또는 프래그먼트된 메모리 공간의 디프래그먼테이션(defragmentation) 조차도 로깅(logging)한다. 이러한 로그는 메모리 공간 및 프로세서 시간 둘 모두에 대하여 상당한 용량을 필요로 한다는 것을 이해할 것이다.
생리적인 로그는 메모리 공간의 일부 내의 데이터의 변경만을 저장하고, 메모리 공간의 재분할은 저장하지 않는다. 관련 부분의 페이지 인덱스에 대한 인덱스와 같은 관련 부분의 내부 어드레스는 로그 내에 저장되고, 또한 상기 부분에서 발생하는 변경도 저장된다.
논리적인 로그는 오브젝트 내의 속성의 변경만을 저장한다.
예컨대, 키(key) "Kalle"을 가진 오브젝트 및 값 "12"를 가진 속성이 변경되어, 속성이 "14"로 되면, "Kalle" 및 속성 "12"는 UNDO-로그에 저장되고, "Kalle" 및 속성 "14"는 REDO-로그에 저장되도록 간단히 설정된다.
이것은 속성의 값이 UNDO-로그를 통하여 "12"로 리셋되고, REDO-로그를 통하여 "14"로 설정되도록 할 수 있다. 이러한 정보는 메모리 내의 특정 위치에 저장되는 키 "Kalle"를 갖는 오브젝트에 연결되지 않지만, 키 "Kalle"를 갖는 오브젝트는 로그를 사용하여 필요한 정정이 실행될 때 탐색된다.
오브젝트가 다수의 상이한 페이지로 분할될 때, 페이지 간에 일관성이 보편화되도록 하기 위하여, 모든 페이지를 디스크 메모리 내에 동시에 다운로드하는 것이 필요로 된다. 따라서, 체크 포인트, 동결 시점(frozen time point)이 디스크 메모리로의 다운로드 개시시에 생성되고 나서, 프래그먼트 내의 모든 페이지가 디스크 메모리 내에 기록된다.
두 가지 형태의 일관성 체크 포인트, 즉 동작 일관성 체크 포인트 및 트랜잭션 일관성 체크 포인트가 존재한다.
트랜잭션 일관성 체크 포인트에서, 디스크 메모리 내에 다운로드되는 프래그먼트 내의 오브젝트에 영향을 주는 모든 트랜잭션은 정지되고, 모든 실행중인 트랜잭션은 완료된다. 그리고 나서, 디스크 메모리 내에 기록하는 실제 프로세스가 실행되는데, 이것은 큰 프래그먼트의 경우에 몇 분 걸릴 수 있다. 이것은 정지된 트랜잭션에 대한 대응하는 대기 시간을 의미한다.
대응하는 동작 일관성 체크 포인트는 모든 실행중인 동작, 트랜잭션의 부분의 종료를 대기하는 동안 트랜잭션 도중에 정지가 허용된다는 차이를 가질지라도, 동일한 방법으로 실행된다. 따라서, 동작 일관성 체크 포인트와 관련된 대기 시간은 트랜잭션 일관성 체크 포인트와 관련된 대기 시간보다 짧다.
소위 퍼지 체크 포인트를 로컬 생리적 로그와 조합하여 사용하는 것이 공지되어 있다.
로컬 생리적 로그는 프래그먼트에 속하는 모든 페이지를 디스크 메모리 내에 기록하는 것과 협동하여, 디스크 메모리 내에 기록될 오브젝트에 영향을 주는 동작과 관련된 대기 시간을 제거하는 퍼지 체크 포인트의 사용을 가능하게 한다.
일차 메모리 데이터베이스에 관련하여, 오브젝트가 변경되는 경우에 오브젝트의 새로운 복제를 생성하는 것이 또한 공지되어 있으며, 여기서 새로운 복제는 변경 후의 오브젝트를 포함하고, 구 복제는 변경 전의 오브젝트를 포함하거나, 또는 두 개의 복제 간의 링크에 의해 그 반대로 된다.
두 개의 복제는 구 정보 및 새로운 정보 모두를 포함하기 때문에, 이 경우에 논리 UNDO-정보가 필요로 되지 않고, 논리 REDO-정보만이 필요로 된다. 이것은 이러한 데이터베이스가 디스크 메모리 데이터베이스에서 거의 검색되지 않는 트랜잭션 일관성 체크 포인트를 종종 사용하기 때문에, 일차 메모리 데이터베이스에서 가능할지라도, 새로운 복제가 구 복제와 상이한 페이지 상에 기록될 가능성이 있기 때문에, 디스크 메모리 데이터베이스에서 사용하는 것은 어렵다.
위치 및 복제에 관계없는 로그라는 용어가 또한 설명된다. 이것은 프래그먼트의 붕괴 또는 전 시스템의 전체 중단과 관련하여 손실된 정보의 재생성 시에 사용될 수 있는 로그를 의미하며, 여기서, 상기 정보의 이러한 재생성은 임의의 프로세서 및 (위치에 관계없는) 관련 메모리에서, 그리고 (복제에 관계없는) 로그의 일차 또는 이차 복제와 같은 임의의 복제의 개시점에서 실행될 수 있다.
이하의 문헌에는 로그 정보 및 상이한 데이터 구조의 처리를 설명한다. 이들 문헌은 공지된 기술의 일부를 제시하는 것으로 고려될 수 있다.
"ARIES: A Transaction Recovery Method Supporting Fine Granularity Locking and Partial Rollbacks Using Write-Ahead Logging", C. Mohan, Don Haderle, Bruce Lindsay, Hamid Pirahesh, Peter Schwarz, ACM Transactions on Database Systems, March, 1992, Vol. 7, No. 1, p. 94.
"The Architecture of the Dali Main-Memory Storage Manager", P. Bohannon, D. Liuwen, R. Rastogi, S. Shesadri, A. Silberschatz, S. Sudarshan, Memoranda from Lucent Technologies,
http://www.bell-labs.com/project/dali/papers.html
"Transaction Processing: Concept and Techniques", J. Grey, A. Reuter, Morgan Kaufman, 1993.
삭제
"The Lorel Query Language for Semistructured Data", S. Abiteboul, D. Quass, J. McHugh, J.Widom, J. Wiener, Technical Report from Department of Computer Science, Stanford University.
"Main Memory Database Systems: An Overview", H. Garcia-Molina, K.Salem, IEEE Transactions on Knowledge and Data Engineering, Vol.4, No.6, Dec., 1994.
"INFORMIX-Online Dynamic Server, Database Server", Informix Software, Inc., Dec., 1994.
"Recovery in Parallel Database Systems", S-O. Hvasshovd, Vieweg, ISBN 3-528-05411-5.
"An Evaluation of Starburst's Memory Resident Storage Component", T.J. Lehman, e.j. Shekida, L-F. Cabrera, IEEE Transactions on Knowledge and Data Engineering, Vol.4, No.6, Dec., 1992.
"System Support for Software Fault Tolerance in Highly Available Database Management Systems", M.P. Sullivan, Ph.D. Report.
기술적 과제
상술한 바와 같이 현재의 기술의 관점을 고려할 때, 가변적 및 동적 속성에 대한 간단한 처리가 가능하고, 초기에 공지된 경우에서보다 훨씬 적은 로그 정보를 필요로 하는 신뢰 가능한 데이터베이스를 제공하는 로그 정보 처리 방법을 제공시에 기술적인 과제가 존재하는 것을 인지할 것이다.
위치 및 복제에 의존하지 않는 로그를 제공시에, 특히 하나 이상의 프로세서 노드의 고장으로 인하여, 또는 전 시스템이 전체적으로 기능을 중단했을 때, 손실된 테이블의 부분 또는 테이블의 전체를 재생성하는데 로그가 사용될 수 있고, 테이블의 부분 또는 테이블의 전체가 원래의 노드와 전적으로 상이한 프로세서 노드에서 재생성될 수 있는 분산형 데이터베이스에 적당한 방법을 제공시에 다른 기술적 과제가 존재한다.
다른 기술적인 과제는 필요한 로그 정보를 수집할 수 있고, 일차 메모리에서의 데이터베이스 변경이 디스크 메모리 내에 실시간으로 저장될 수 있는 방법을 제공하는 것이다.
또 다른 기술적 과제는 디스크 메모리 데이터베이스 및 일차 메모리 데이터베이스 모두와 함께 동작하는 방법을 제공하는 것이다.
또 다른 기술적 과제는 생리적 로그와 조합하여 퍼지 체크 포인트를 처리하고, 필요로 되는 로그 정보의 양이 공지된 기술에 비해 상당히 감소될 수 있는 하는 방법을 제공하는 것이다.
또 다른 기술적 과제는 어떤 로그 정보를 탐색할 때 캐시-미스(cache-miss)의 수가 공지된 기술에 비해 상당히 감소될 수 있는 방법을 제공하는 것이다.
또 다른 기술적 과제는 데이터베이스의 상이한 부분에 대하여 상이할 수 있는 로컬 로그 정보를 사용하여, 로컬에 무관하고 애플리케이션에 무관한 로그를 제공할 수 있도록 하는 것이다.
해결 방안
하나 이상의 상술한 기술적 과제가 해결될 수 있도록 할 의도로, 그리고 서론에서 정의된 방법에서 시작점으로 하여, 본 발명에 따르면, 하나의 생리적 UNDO-로그 및 하나의 논리적 REDO-로그로만 관리하기 위하여, 퍼지 체크 포인트에 필요로 되고, 종래의 로그가 생성되지 않는 논리적 UNDO-정보는 구 데이터 정보가 새로운 데이터 정보로 대체되는 부분의 변경의 경우에, 하나의 페이지 상에 추가적인 부분을 생성시킴으로써 얻어지는 것이 제안되며, 상기 추가적인 부분은 구조적으로 변경된 부분의 복제이며, 이 변경된 부분 및 추가적인 부분은 서로 링크된다.
논리적 UNDO-정보는 새로운 데이터-정보를 포함하는 변경된 부분, 및 구 데이터-정보를 포함하는 추가적인 부분에 의해 구현된다.
필요한 로그를 실시간으로 유지하는 가능성은 퍼지 체크 포인트와 생리적 로그 간의 공동 작용을 통하여 제공된다. 생리적 로그가 UNDO-로그일 때, 이러한 공동 작용 또는 협동은 로컬 체크 포인트를 설정한 이후에 그리고 대응하는 디스크 메모리에 페이지가 기록되는 시간까지 한 페이지 상에서 국부적으로 발생하는 모든 이벤트를 UNDO-로그 내에 저장시에 존재한다. 대안으로, 생리적 로그가 생리적 REDO-로그일 때, 이러한 협동은 상기 페이지를 대응하는 디스크 메모리에 기록한 이후에 그리고 로컬 체크 포인트가 설정되는 시간까지 하나의 페이지 상에서 국부적으로 발생하는 모든 이벤트를 REDO-로그 내에 저장시에 존재한다.
생리적 REDO-로그의 경우에, 로그는 순수 일차 메모리 데이터베이스와 함께만 기능을 하는 반면에, 생리적 UNDO-로그는 일차 데이터베이스 및 디스크 메모리 데이터베이스 모두에 관련하여 기능을 하므로, 일차 메모리 및 디스크 메모리 데이터베이스를 조합하는 데이터베이스에 관련하여 기능을 한다는 것을 주의하라.
일차 메모리 데이터베이스 및 디스크 메모리 데이터베이스 모두 및 일차 메모리 및 디스크 메모리 데이터베이스를 조합하는 데이터베이스로 효과적으로 사용될 수 있는 방법을 제공할 의도로, 본 발명에 따르면, 생리적 로그가 생리적 UNDO-로그인 것이 제안된다. 따라서, 이하의 설명은 생리적 UNDO-로그에 관한 것이다.
메모리 공간을 절약하고, 불필요한 정보를 불필요하게 저장하지 않기 위하여, 추가적인 복제 또는 카피는 변경을 일으키는 트랜잭션이 완료되거나 커미트된 후에, 또는 이러한 완료에 관련하여 삭제된다.
이러한 추가적인 복제의 생성에 관련하여, 이 영향에 대한 정보가 생리적인 로그 내에 저장된다. 추가적인 복제가 삭제될 때 및 변경이 디스크 메모리 내에 기록될 때, 추가적인 복제가 삭제되는 영향에 대한 정보는 생리적인 로그 내에 저장된다.
변경의 로깅이 디스크 메모리 내에 아직 기록되지 않은 경우, 추가적인 복제가 삭제된 영향에 대한 정보를 삽입하는 대신에, 상기 추가적인 복제의 생성에 관한 정보가 생리적 로그에서 삭제되는 것이 제안된다. 이것은 로그의 크기를 증가시키는 대신에 로그의 크기를 감소시키고, 이것에 의해 필요로 되는 로그 정보의 양을 더 감소시킨다.
논리적 로그 중 하나를 대체하는 정보의 수집을 간략화할 의도로, 그리고, 가능한 한 적은 메모리 액세스로, 즉 캐시 메모리에 대한 가능한 한 적은 정보의 수집으로 원하는 정보를 찾아내는 능력을 강화할 의도로, 본 발명에 따르면, 특정 페이지가 임의의 추가적인 복제를 저장하는데 사용되는 것이 제안된다.
데이터베이스에서, 특히 분산형 데이터베이스에서, 다수의 상이한 로컬 체크 포인트는 데이터베이스의 상이한 영역, 예컨대 상이한 테이블 또는 상이한 프래그먼트에 대하여 생성된다. 이러한 상이한 체크 포인트는 데이터베이스의 각각의 영역 내에서 국부적으로 제어된다.
위치 및 복제에 무관한 로그는 이하의 방법으로 얻어진다. 글로벌 체크 포인트는 연속적이고 주기적으로 생성된다. 간략히 말하면, 이것은 규칙적으로 계수하는 카운터를 이용하여 달성된다. 각각의 트랜잭션은 관련 트랜잭션이 커미트되는 시간에 글로벌 체크 포인트의 값을 제공받는다.
글로벌 시스템 체크 포인트는 로그 정보가 디스크 메모리 내에 저장되는 시점이며, 이러한 로그 정보는 공통의 글로벌 체크 포인트를 갖는 모든 트랜잭션 및 선행하는 글로벌 체크 포인트에 속하는 모든 트랜잭션의 커미트먼트(commitment)에 관련된다.
데이터베이스에 속하는 하나 이상의 프로세서 노드의 고장으로 인하여, 또는 전체 데이터베이스의 전체 기능 중단으로 인하여, 손실된 프래그먼트와 같은 손실 영역은 관련 영역에 대하여 발견되는 로컬 로그 정보에 따라서, 최근에 생성된 글로벌 시스템 체크 포인트 이후 및 최근에 생성된 로컬 체크 포인트 이전에 재생성된다.
이러한 절차는 동작 일관성 체크 포인트를 실시간으로 제공하고, 이것은 차례로, 기타 페이지로의 링크를 생성을 가능하게 하며, 이러한 링크는 데이터베이스 변경의 경우에도 신뢰 가능하다.
이것은 가변적 및/또는 동적 속성을 갖는 오브젝트가 간단하고 시간 및 메모리공간 면에서 효과적인 방법으로 구현되고 처리될 수 있는 복잡한 데이터 구조를 사용할 수 있게 한다.
본 발명은 또한 B-트리 형태의 데이터 구조를 사용할 수 있게 하고, 여기서는 상기 부분이 B-트리에 속하는 리프-노드(leaf-node)로 이루어진다.
다른 가능한 데이터 구조는 구성 요소가 해시(hash) 함수와 같은 수학적 함수에 따른 구조에 따라서 배치되는 것이며, 여기서, 상기 부분이 상기 구성 요소로 이루어진다.
장점
본 발명의 방법에 의해 일차적으로 제공되는 장점은 오브젝트를 저장시, 진보된 데이터 구조를 사용함에도 불구하고, 필요한 로그 정보가 효과적인 방법으로 용이하게 이용 가능해진다는 것이다. 더욱이, 로그는 하나의 생리적 UNDO-로그 및 단지 하나의 논리적 REDO-로그를 포함하는데, 그 이유는 UNDO-정보가 변경된 부분의 복제의 생성을 통하여 얻어지고, 여기서, 복제가 오리지널과 협력하여 필요한 UNDO-정보를 포함하기 때문이다. 추가적인 복제를 사용할 때 필요로 되는 정보량은 논리적 UNDO-로그에서 필요로 되는 정보량보다 적다.
본 발명은 또한 일차 메모리 데이터베이스 및 디스크 메모리 데이터베이스 모두에 대하여 동작 일관성 체크 포인트를 제공하며, 이것은 페이지 간의 참조가 신뢰성이 있고, 차례로 디스크 메모리 데이터베이스에서도 오브젝트의 데이터 구조의 유연한 처리가 가능해진다는 것을 의미한다.
본 발명의 방법의 주요 특징은 후속의 청구항 1의 특징부에 기재되어 있다.
도 1은 B-트리의 부분, 및 이 트리의 일부의 복제의 개략도.
도 2는 도 1에 따른 트리를 다수의 상이한 페이지로 분할한 개략도.
도 3은 생리적 로그를 사용하여 동작시키는 두 가지 상이한 방법을 도시한 도면.
도 4는 생리적 로그의 부분을 간략하게 도시한 도면.
도 5는 상이한 로컬 체크 포인트와 글로벌 체크 포인트 간의 공동 작용을 도시한 도면.
도 6은 상이한 속성에 관련하여, 오브젝트 또는 오브젝트의 일부에 대한 선택적인 구조의 개략도.
도 7은 동적 속성의 취급에 관련하여, 오브젝트 또는 오브젝트의 일부에 대한 다른 선택적인 구조의 개략도.
많은 상이한 종류의 로그 정보가 종래 기술에 공지되어 있다.
분산형 데이터베이스에 대해서 위치 및 복제에 무관한 로그가 매우 필요하기 때문에, 본 발명은 논리적 로그의 사용을 기초로 한다.
논리적 로그는 일관성 체크 포인트를 필요로 하며, 이것은, 예컨대, 디스크 메모리에 기초한 데이터베이스와 관련하여 달성하기 어렵다. 선택된 체크 포인트는 동작 일관성 체크 포인트인데, 그 이유는 이것이 트랜잭션 일관성 체크 포인트가 필요로 하는 것보다 더 짧은 대기 시간을 필요로 하기 때문이다.
신뢰 가능한 로그를 실시간으로 유지하는 것이 바람직하고, 이것은 대기 시간도 허용되지 않는다는 것을 의미한다. 따라서, 퍼지 체크 포인트가 사용된다.
생리적 로그와 협력하여, 퍼지 체크 포인트는 동작 일관성 체크 포인트를 제공하는데, 이것은 차례로 상이한 페이지 간에 참조가 사용될 수 있도록 한다. 이것은 오브젝트 내에서 변경된 속성의 복제를 사용할 수 있도록 하고, 여기서, 복제는 임의의 페이지에도 배치될 수 있고, 이러한 복제는 예컨대, 논리적 UNDO-정보를 대체할 수 있다.
이것은 또한 로그가 상이한 오브젝트 구조 및 색인 구조 모두의 고장 이후의 재생성 프로세스에서 사용될 수 있도록 한다.
본 발명은 주로 이하의 세 가지 공지된 절차의 조합을 기초로 하는데, 여기서:
- 사이즈에 무관한 오브젝트는 오브젝트가 보다 작은 부분으로 분할될 수 있도록 하는 구조에 저장되고;
- 퍼지 체크 포인트 및 생리적 로그가 일차 메모리에 관련하여 디스크 메모리를 갱신시에 사용되며;
- 추가적인 부분, 부분의 새로운 복제는 관련된 부분의 변경의 경우에 생성되고, 여기서, 상기 추가적인 부분은 예컨대, 상기 변경 이전의 정보를 포함하고, 오리지널 부분은 상기 변경 이후의 정보를 포함하며;
여기서, 오리지널 부분은 예컨대, 트리-구조에서의 리프 노드, 또는 해시 함수와 같은 수학적 함수를 통하여 배치되는 구성 요소로 이루어진다.
따라서, 논리적 UNDO-로그는 상기 추가적인 부분으로 대체되기 때문에, 생략될 수 있다.
퍼지 체크 포인트가 사용될 때, 일관성 체크 포인트를 생성하는데 물리적 또는 생리적 로그뿐만 아니라, 논리적 UNDO-정보 및 REDO-정보가 필요로 된다.
도 1은 B-트리의 부분을 도시한 것으로서, 여기서 리프 노드(1)는 변경되는 데이터 정보를 포함한다. 이 경우에, 필요한 논리적 UNDO-정보는 부분(1)을 변경할 때 데이터베이스 페이지 중 하나에 추가적인 부분(1')을 생성시킴으로써, 구현될 수 있고, 여기서, 구 데이터 정보(A)는 새로운 데이터 정보(A')로 대체된다. 이러한 추가적인 부분(1')은 구조적으로 변경된 부분(1)의 복제이다. 변경된 부분(1) 및 추가적인 부분(1')은 몇 가지 방법 또는 다른 방법으로 서로 링크(2)된다.
도시된 경우에서, 변경된 부분(1)은 새로운 데이터 정보(A')를 포함하고, 추가적인 부분(1')은 구 데이터 정보(A)를 포함한다.
필요한 논리적 REDO-정보는 종래의 논리적 REDO-로그 내에 저장된다.
도 2는 도 1에 따른 트리-구조의 일부를 도시한 것이며, 여기서, 각각의 부분이 데이터베이스 내의 상이한 페이지(p1, p2, ..., pn)에 분산된다. 본 발명은 또한 임의의 추가적인 복제(1')를 저장하기 위하여 특정 페이지(pn)를 사용하는 것을 제안한다.
이것을 갖는 장점은:
- 페이지(pn)가 반복하여 사용되기 때문에, 이 페이지로의 액세스가 더 고속으로 달성된다는 것; 및
- 데이터베이스의 관련 부분이 디스크 메모리를 기초로 할지라도, 일차 메모리를 기초로 한 페이지가 사용되며, 이것은 디스크 메모리를 기초로 한 페이지의 경우에 필요로 되는 것보다 적은 생리적 UNDO-정보를 필요로 한다는 것이다.
퍼지 체크 포인트는 UNDO-로그로 이루어지는 생리적 로그와 협동한다.
도 3은 이러한 생리적 로그가 일차 메모리에서 항상 발생하는 데이터 정보의 그러한 변경에 관련하여 디스크 메모리의 갱신과 협동하는 방법을 도시한 것이다. 이러한 갱신은 특정 시점(t1, t2, t3...)에서 발생하며, 여기서 갱신은 각 시점에서 개시된다.
이러한 갱신은 다수의 상이한 페이지, 예컨대 테이블에 속하는 모든 페이지 또는 프래그먼트에 속하는 모든 페이지에 영향을 줄 수 있다. 이러한 페이지는 한 번에 하나씩 디스크 메모리 내에 순차적으로 기록된다. 영향을 받은 모든 페이지를 디스크 메모리 내에 기록하는 데에는 일정 량의 시간(t1-t1')이 든다. 로컬 체크 포인트(LC)는 각 갱신에 관련하여 설정된다.
도 3에 도시된 바와 같이, 로컬 체크 포인트(LC)는 갱신이 개시될 때(t), 설정된다. 일차 메모리 데이터베이스에서, 로컬 체크 포인트(LC)를 설정한 이후 및 페이지가 대응하는 디스크 메모리 내에 기록되는 시간까지 페이지 상에 국부적으로 발생하는 모든 것은 생리적 UNDO-로그 내에 저장된다. 이러한 것은 시점 t와 t' 사이의 어딘가에서 발생한다.
디스크 메모리 데이터베이스에서, 모든 변경은 생리적 로그에 연속적으로 기록된다. 따라서, 디스크 메모리 데이터베이스는 일차 메모리 데이터베이스보다 훨씬 많은 로그 정보를 필요로 한다.
데이터베이스가 일차 메모리 데이터베이스인지 디스크 메모리 데이터베이스인지에 관계없이, 저장된 전체 로그 정보는 논리적 REDO-로그, 생리적 REDO-로그, 및 추가적 부분(1')을 통하여 얻어진 필수적인 논리적 UNDO-정보로 이루어진다.
이러한 로그 정보는 필요한 로그 정보를 유지하기 위해 종래에 필요로 되는 것보다 상당히 적다. 논리적 UNDO-정보는 커미트 이후에 더 이상 필요로 되지 않는다. 이것은 추가적 부분(1')이 변경을 발생시킨 트랜잭션의 완료 또는 커미트한 이후에, 또는 이에 관련하여, 삭제될 수 있도록 한다. 따라서, 이것은 사용되는 메모리 공간의 추가적인 감소를 제공한다.
도 4는, 추가적인 부분(1')의 생성에 관련하여, 이러한 영향에 대한 정보(3B1)가 생리적 로그(3) 내에 저장되는 것을 도시한 것이다. 트랜잭션이 커미트되기 전에 변경의 로깅이 디스크 메모리 내에 기록될 때, 추가적인 부분(1')이 삭제되었다는 것을 나타내는 정보(3B2)가 또한 생리적 로그(3) 내에 저장된다.
한편, 변경의 로깅이 디스크 메모리 내에 아직 기록되지 않은 경우, 상기 추가적인 부분(1')이 삭제되는 영향에 대한 추가적인 정보(3B2)를 부가하는 대신에, 추가적인 부분(1')의 생성을 나타내는 정보(3B1)가 생리적 로그(3)로부터 삭제되는 것이 제안된다.
이러한 것은 생리적 로그(3)에 대한 메모리 공간을 추가로 절약한다.
상술한 바에 따른 방법을 사용함으로써, 상이한 데이터베이스 영역, 예컨대, 테이블 또는 프래그먼트에 다수의 상이한 로컬 체크 포인트가 제공된다. 도 5는 각각의 영역이 상이한 로컬 체크 포인트(LC1, LC2, LC3, ..., LCn)를 갖는 방법을 도시한 것이며, 여기서 상이한 체크 포인트는 각각의 영역에서 국부적으로 제어된다.
위치 및 복제에 무관한 로그는 이하의 방법으로 얻어진다. 글로벌 체크 포인트(GC)는 연속적이고 주기적으로(GC1, GC2, GC3, ...) 발생된다. 간단히 말하면, 이러한 것은 정기적으로 계수하는 카운터에 의하여 구현된다. 각각의 트랜잭션은 관련 트랜잭션이 커미트되는 시간에서의 글로벌 체크 포인트(GC)에 대한 값을 할당받는다.
글로벌 시스템 체크 포인트(GC1, GC2, GC3, ...)는 특정 로그 정보가 디스크 메모리 내에 저장되는 시점이고, 이러한 로그 정보는 공통의 글로벌 체크 포인트(GC)를 갖는 모든 트랜잭션에 관련되고, 선행하는 글로벌 체크 포인트에 속하는 모든 트랜잭션은 커미트된다.
데이터베이스에 속하는 하나 이상의 프로세스-노드의 고장에 관련하거나, 또는 전 데이터베이스의 전체 기능 중단의 경우에 손실된 프래그먼트와 같은 손실 영역의 재생성은 최근에 생성된 글로벌 시스템 체크 포인트(GSC) 이후 및 최근에 생성된 로컬 체크 포인트(LC) 이전의 영역에 대하여 발견되는 로컬 로그 정보(LC)에 따라서 영역을 재생성함으로써 행해진다.
그리고 나서, 로그 정보는 예컨대, 데이터베이스에 속하는 하나 이상의 프로세서 노드가 고장일 때 손실되는 프래그먼트와 같은 국부적으로 손실된 영역을 재생할 때, 최근에 생성된 글로벌 시스템 체크 포인트(GSC) 이후 및 최근에 생성된 로컬 체크 포인트(LC) 이전에 이 영역에 대하여 발견되는 로컬 로그 정보에 따라 로컬 영역을 재생성함으로써, 글로벌로 사용될 수 있다.
사용되는 데이터 구조는 B-트리인 것이 적절할 수 있으며, 여기서, 상기 부분은 B-트리에 속하는 리프 노드로 이루어지거나, 해시 함수와 같은 수학적 함수에 따라서 구성 요소를 배치하는 구조로 이루어질 수 있고, 여기서 상기 부분은 또한 구성 요소 또는 상기 구성 요소의 부분을 포함할 수 있다.
본 발명은 또한, 본 출원과 동일자로 출원된 스웨덴 특허 출원 제97 02760-1호, "데이터베이스 내에 구성 요소를 저장하는 방법(A Method for Storing Elements in a Database)", 및 제97 02761-9호, "데이터베이스에 대한 구조(Structure for a Database)"에서, 일차 메모리 데이터베이스 및 디스크 메모리 데이터베이스 모두로 기재된 발명을 사용할 수 있게 한다. 이들 출원은 또한 본 출원의 일부를 형성하는 것으로 간주된다.
상이한 페이지 간의 신뢰 가능한 링크 및 B-트리 구조와 같은 진보된 데이터 구조의 조합은 예컨대, 가변적이고 동적인 속성을 유연한 방법으로 용이하게 처리될 수 있도록 한다. 상술한 조합은 또한 고정 속성이 자신의 크기에 관계없이 분할될 수 있도록 한다.
트리-구조에서의 속성의 분할은 또한 리프 노드를 적절히 작게 함으로써, 변경에 관련하여 복제될 필요가 있는 부분이 그의 대응하는 리프 노드만큼 동등하게 작게 된다.
속성은 도 6에 따른 구조를 할당받을 수 있다. 오브젝트 헤더는 B-트리의 루트-노드(root-node)(A1)를 구성하는 정보를 포함한다. 루트 노드(A1)는 중간 노드(B1, B2)를 가리키거나, 또는 직접 리프 노드(C1)를 가리킨다. 그리고 나서, 중간 노드(B1, B2)는 차례로 추가적인 중간 노드(B3) 또는 리프 노드(C2, C3, C4, C5, C6)를 가리킨다.
리프 노드(C2, C3, C4, C5, C6)는 또한 속성을 수용할 만큼 충분히 크게 될 수 있다. 이것은 가변 속성, 즉 테이블 내에서 오브젝트마다 크기를 변화시킬 수 있는 속성을 용이하게 처리하도록 한다. 리프 노드(C1, C2, C3, C4, C5, C6)는 또한 이용 가능한 메모리 공간 내에 수용될 만큼 충분히 크게 될 수도 있다. 이것은 메모리를 유연하고 효과적으로 처리하도록 한다.
도 7은 동적 속성의 처리를 나타낸다. 오브젝트 헤더(D1)는 D12에 상이한 동적 속성을 커버하는 레지스터(D2)를 가리킨다. 레지스터(D2)의 상이한 위치(D21, D22, ..., D2n)는 추가로 기존의 동적 속성(D3)을 가리킨다. 특정 오브젝트에 대하여 속성이 발견되지 않는 경우, 헤더(D1)는 대응하는 포인터(D12)를 포함하지 않는다.
그리고 나서, 동적 속성(D3)은 차례로 도 6에 따른 트리-구조로 분할될 수 있는 가변 속성을 포함할 수 있다.
이 설명은 가변적이고 동적인 속성에 대한 구조에 대해 더 상세한 설명이 행해지지 않을 것이다. 독자는 이러한 정보에 관하여 논문, "Design and Modelling of a Parallel Data Server for Telecom Applications, Ericsson Utvecklings AB, Mikael Ronstrom, 1997"을 참조하기 바란다.
본 발명은 상기의 도시된 실시예에 한정되지 않으며, 후속 청구 범위에서 설명되는 본 발명의 개념의 범위 내에서 변경 및 변형이 이루어질 수 있다는 것을 이 해하여야 한다.

Claims (10)

  1. 데이터베이스에서의 변경에 관련하여 로그 정보의 신뢰 가능한 수집을 제공하는 데이터베이스에 관한 방법으로서, 퍼지 체크 포인트는 일관성 체크 포인트의 경우에 통상적으로 발생하는 대기 시간이 감소될 수 있도록 하기 위하여 사용되고, 상기 퍼지 체크 포인트는 로그 정보가 실시간으로 수집될 수 있도록 하기 위하여 생리적 로그와 조합되며, 상기 데이터베이스에 속하는 데이터 정보는 소정의 데이터 구조에 따라 보다 작은 부분들로 분할되고, 각각의 부분들은 상기 데이터베이스에 속하는 서로 공통의 페이지 또는 상이한 페이지에 분산되는, 데이터베이스에 관한 방법에 있어서,
    상기 퍼지 체크 포인트에 필요로 되는 논리적 UNDO-정보는 상기 보다 작은 부분들 중 하나가 변경될 때 상기 서로 공통의 페이지 또는 상이한 페이지들 중 하나의 추가적인 부분을 생성함으로써 구현되며, 여기서, 구 데이터 정보가 새로운 데이터 정보로 대체되고; 상기 추가적인 부분은 구조적으로 상기 변경된 부분의 복제이며; 상기 변경된 부분 및 상기 추가적인 부분은 서로 적절하게 링크되고; 상기 변경된 부분이 상기 새로운 데이터 정보를 포함하며; 상기 추가적인 부분이 상기 구 데이터 정보를 포함하거나, 또는 상기 변경된 부분이 상기 구 데이터 정보를 포함하며; 상기 추가적인 부분이 상기 새로운 데이터 정보를 포함하는 것을 특징으로 하는 데이터베이스에 관한 방법.
  2. 제 1 항에 있어서,
    상기 퍼지 체크 포인트 및 상기 생리적 로그는 UNDO-로그를 포함하는 상기 생리적 로그에 의하여 협력하고; 로컬 체크 포인트가 설정된 이후 및 상기 페이지가 대응하는 디스크 메모리 내에 기록되는 지점까지 하나의 페이지 상에서 국부적으로 발생하는 모든 것이 상기 UNDO-로그 내에 저장되거나, 또는 상기 생리적 로그는 생리적 REDO-로그를 포함하고, 상기 페이지를 대응하는 디스크 메모리 내에 기록한 이후 및 로컬 체크 포인트가 설정되는 시간까지 페이지 상에서 국부적으로 발생하는 모든 것이 상기 REDO-로그 내에 저장되는 것을 특징으로 하는 데이터베이스에 관한 방법.
  3. 제 2 항에 있어서,
    상기 추가적인 복제는 상기 변경을 발생시킨 트랜잭션의 완료 또는 커미트 이후 또는 이에 관련하여 삭제되는 것을 특징으로 하는 데이터베이스에 관한 방법.
  4. 제 3 항에 있어서,
    상기 추가적인 복제가 생성되는 것을 개시하는 정보는 상기 생리적 로그 내에 저장되고, 상기 추가적인 복제는 삭제되며, 상기 변경에 대한 생리적 로그가 상기 디스크 메모리 내에 기록될 때, 상기 추가적인 복제가 삭제되는 것을 개시하는 정보는 상기 생리적 로그 내에 저장되고; 상기 변경에 대한 생리적 로그가 상기 디스크 메모리 내에 아직 기록되어 있지 않을 때, 상기 추가적인 복제의 생성을 개시하는 상기 정보는 상기 생리적 로그로부터 삭제되는 것을 특징으로 하는 데이터베이스에 관한 방법.
  5. 제 4 항에 있어서,
    상기 생리적 로그는 생리적 UNDO-로그인 것을 특징으로 하는 데이터베이스에 관한 방법.
  6. 제 1 항에 있어서,
    임의의 추가적인 복제를 저장하기 위하여 특정 페이지가 사용되는 것을 특징으로 하는 데이터베이스에 관한 방법.
  7. 제 6 항에 있어서,
    상기 특정 페이지는 일차 메모리에 기초한 페이지로 이루어지는 것을 특징으로 하는 데이터베이스에 관한 방법.
  8. 제 1 항에 있어서,
    데이터베이스의 상이한 영역에 대하여 상이한 로컬 체크 포인트가 생성되고, 상이한 체크 포인트가 데이터베이스의 상기 영역 내에서 국부적으로 제어되며, 위치 및 복제에 무관한 로그는 특정 시점에서 글로벌 체크 포인트를 생성함으로써 얻어지고; 글로벌 시스템 체크 포인트는 상기 글로벌 체크 포인트를 기초로 하여 생성되며; 상기 데이터베이스에 속하는 하나 이상의 프로세스 노드의 고장에 관련하여 손실된 프래그먼트와 같은 영역은 최근에 생성된 글로벌 시스템 체크 포인트 이후 및 최근에 생성된 로컬 체크 포인트 이전의 상기 영역에 대하여 존재하는 로컬 로그 정보에 따라 상기 영역을 재생성함으로써 재생성되는 것을 특징으로 하는 데이터베이스에 관한 방법.
  9. 제 1 항에 있어서,
    상기 데이터 구조는 B-트리로 이루어지고, 상기 부분들은 상기 B-트리에 속하는 리프 노드로 이루어지는 것을 특징으로 하는 데이터베이스에 관한 방법.
  10. 제 1 항에 있어서,
    상기 데이터 구조는 해시 함수와 같은 수학적인 함수를 기초로 한 구조에 따라 배치되는 구성 요소들로 이루어지고, 상기 부분들은 상기 구성 요소들 또는 상기 구성 요소들의 부분들로 이루어지는 것을 특징으로 하는 데이터베이스에 관한 방법.
KR1020007000633A 1997-07-21 1998-07-07 데이터베이스에 관한 방법 KR100556594B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE9702759A SE510050C2 (sv) 1997-07-21 1997-07-21 Metod för insamlande av logginformation vid förändring av databas
SE9702759-3 1997-07-21

Publications (2)

Publication Number Publication Date
KR20010022064A KR20010022064A (ko) 2001-03-15
KR100556594B1 true KR100556594B1 (ko) 2006-03-06

Family

ID=20407790

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007000633A KR100556594B1 (ko) 1997-07-21 1998-07-07 데이터베이스에 관한 방법

Country Status (9)

Country Link
US (1) US6263338B1 (ko)
EP (1) EP0996880B1 (ko)
JP (1) JP2001511552A (ko)
KR (1) KR100556594B1 (ko)
CN (1) CN1271441A (ko)
AU (1) AU8364998A (ko)
BR (1) BR9811016A (ko)
SE (1) SE510050C2 (ko)
WO (1) WO1999005585A2 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7055055B1 (en) 1999-04-23 2006-05-30 Symantec Corporation Write cache flushing method for reducing data corruption
US7051055B1 (en) * 1999-07-09 2006-05-23 Symantec Corporation Optimized disk storage defragmentation with swapping capabilities
WO2001004801A1 (en) * 1999-07-09 2001-01-18 Wild File, Inc. Optimized disk storage defragmentation with swapping capabilities
US6990480B1 (en) * 2000-09-18 2006-01-24 Trancept Limited Information manager method and system
WO2003012646A1 (en) 2001-08-01 2003-02-13 Valaran Corporation Method and system for multimode garbage collection
KR100744378B1 (ko) * 2001-08-17 2007-07-30 삼성전자주식회사 해시함수를 이용한 데이터베이스 검색방법
US6983286B1 (en) 2002-05-10 2006-01-03 Oracle International Corporation Method and apparatus for accessing data as it existed at a previous point in time
US6988165B2 (en) * 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
US20040193952A1 (en) * 2003-03-27 2004-09-30 Charumathy Narayanan Consistency unit replication in application-defined systems
US20040199552A1 (en) * 2003-04-01 2004-10-07 Microsoft Corporation Transactionally consistent change tracking for databases
US7395278B2 (en) * 2003-06-30 2008-07-01 Microsoft Corporation Transaction consistent copy-on-write database
US7552149B2 (en) * 2003-09-06 2009-06-23 Oracle International Corporation Querying past versions of data in a distributed database
US7240065B2 (en) * 2004-05-27 2007-07-03 Oracle International Corporation Providing mappings between logical time values and real time values
US7251660B2 (en) 2004-06-10 2007-07-31 Oracle International Corporation Providing mappings between logical time values and real time values in a multinode system
US7949665B1 (en) 2004-11-19 2011-05-24 Symantec Corporation Rapidly traversing disc volumes during file content examination
KR100678926B1 (ko) * 2006-01-05 2007-02-06 삼성전자주식회사 로그 정보 관리 시스템 및 방법
US7840382B2 (en) * 2006-10-12 2010-11-23 Qualcomm Incorporated Methods and apparatus for network re-creation in controlled environments
US8793577B2 (en) * 2007-01-11 2014-07-29 Koninklijke Philips N.V. Method and apparatus for providing an undo/redo mechanism
US7814117B2 (en) * 2007-04-05 2010-10-12 Oracle International Corporation Accessing data from asynchronously maintained index
US8776018B2 (en) * 2008-01-11 2014-07-08 International Business Machines Corporation System and method for restartable provisioning of software components
CN101588269B (zh) * 2009-06-17 2011-10-26 中兴通讯股份有限公司 一种设备配置数据自动上载到网管的方法和系统
CN102385631A (zh) * 2011-11-23 2012-03-21 国网信息通信有限公司 建立新旧文献代替关系的方法及装置
WO2013091162A1 (zh) * 2011-12-19 2013-06-27 华为技术有限公司 一种分布式存储数据恢复方法、装置及系统
GB2515501A (en) * 2013-06-25 2014-12-31 Ibm Replication for on-line hot-standby database
US10198321B1 (en) * 2014-04-01 2019-02-05 Storone Ltd. System and method for continuous data protection
WO2017188484A1 (ko) * 2016-04-29 2017-11-02 주식회사 울프슨랩 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체
US10467196B2 (en) * 2016-09-30 2019-11-05 Napatech A/S Prevention of disc fragmentation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2718031B2 (ja) * 1987-07-17 1998-02-25 株式会社日立製作所 履歴情報取得方法
US5481694A (en) * 1991-09-26 1996-01-02 Hewlett-Packard Company High performance multiple-unit electronic data storage system with checkpoint logs for rapid failure recovery
US5721918A (en) * 1996-02-06 1998-02-24 Telefonaktiebolaget Lm Ericsson Method and system for fast recovery of a primary store database using selective recovery by data type
KR19980024086A (ko) * 1996-09-03 1998-07-06 니시무로 타이조 컴퓨터 시스템 및 화일 관리 방법
US5864849A (en) * 1996-12-16 1999-01-26 Lucent Technologies Inc. System and method for restoring a multiple checkpointed database in view of loss of volatile memory
US5933593A (en) * 1997-01-22 1999-08-03 Oracle Corporation Method for writing modified data from a main memory of a computer back to a database

Also Published As

Publication number Publication date
SE9702759D0 (sv) 1997-07-21
SE9702759L (sv) 1999-01-22
WO1999005585A2 (en) 1999-02-04
BR9811016A (pt) 2002-05-21
KR20010022064A (ko) 2001-03-15
SE510050C2 (sv) 1999-04-12
AU8364998A (en) 1999-02-16
JP2001511552A (ja) 2001-08-14
WO1999005585A3 (en) 1999-04-15
CN1271441A (zh) 2000-10-25
EP0996880B1 (en) 2011-10-19
US6263338B1 (en) 2001-07-17
EP0996880A1 (en) 2000-05-03

Similar Documents

Publication Publication Date Title
KR100556594B1 (ko) 데이터베이스에 관한 방법
US11308071B2 (en) Update and query of a large collection of files that represent a single dataset stored on a blob store
CN107835983B (zh) 使用一致的数据库快照在分布式数据库中进行备份和还原
JP4620457B2 (ja) 複数の同時にアクティブなファイルシステム
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
EP2144177B1 (en) System and method for a log-based data storage
CN103765393B (zh) 存储系统
US7769718B2 (en) Unobtrusive point-in-time consistent copies
US8768977B2 (en) Data management using writeable snapshots in multi-versioned distributed B-trees
US6651073B1 (en) Method and apparatus for insuring database data integrity without data recovery logging
CN1559041B (zh) 在计算机系统之间共享对象
US5850522A (en) System for physical storage architecture providing simultaneous access to common file by storing update data in update partitions and merging desired updates into common partition
CN109891402A (zh) 可撤销和在线模式转换
US7698319B2 (en) Database system management method, database system, database device, and backup program
WO2013083793A1 (en) Systems and methods for improving database performance
JP4575762B2 (ja) データ処理方法および装置並びにストレージ装置およびその処理プログラム
KR20030094328A (ko) 저장된 데이터를 재편성하는 시스템 및 방법
US20020174103A1 (en) System and method for updating external file referenced by database with transactional consistency using SQL
Sockut et al. A method for on-line reorganization of a database
US8452730B2 (en) Archiving method and system
Cabrera et al. Implementing atomicity in two systems: Techniques, tradeoffs, and experience
Huston et al. Peephole log optimization
JP2003263350A (ja) データベースシステム
Magalhaes et al. MM-DIRECT
Bruni et al. DB2 9 for z/OS: using the utilities suite

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130201

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140205

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150120

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 13

EXPY Expiration of term