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

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

Info

Publication number
KR20010022064A
KR20010022064A KR1020007000633A KR20007000633A KR20010022064A KR 20010022064 A KR20010022064 A KR 20010022064A KR 1020007000633 A KR1020007000633 A KR 1020007000633A KR 20007000633 A KR20007000633 A KR 20007000633A KR 20010022064 A KR20010022064 A KR 20010022064A
Authority
KR
South Korea
Prior art keywords
information
log
database
physiological
checkpoint
Prior art date
Application number
KR1020007000633A
Other languages
English (en)
Other versions
KR100556594B1 (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

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

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

Description

데이터베이스에 관한 방법{A METHOD RELATING TO DATABASES}
두 개의 데이터베이스 구조, 즉 디스크 메모리 데이터베이스와 일차 메모리 데이터베이스, 및 몇 가지 관련 특성을 소개 형식으로 설명한다. 디스크 메모리 데이터베이스에서, 정보 부분인, 가장 최근에 사용된 정보는 일차 메모리에 존재하지만 그 나머지는 디스크 메모리에 존재한다. 이 경우에, 원하는 정보가 일차 메모리에 이미 저장되어 있지 않으면 정보는 디스크 메모리로부터 출력되어 일차 메모리에 입력되어야 한다. 디스크 메모리로부터 출력된 새로운 정보는 일차 메모리에 존재하는 정보에 덮어씌워지고, 덮어씌워진 정보가 이후 단계에서 사용될 것이라면, 상기 정보를 디스크 메모리로부터 재수집하는 것이 필요하다. 메모리 내용은 페이지로 분할되고 페이지는 서로 독립적으로 처리된다. 예로서, 새로운 정보는 하나의 페이지로 취급되는 반면에 또 다른 페이지는 영향을 받지 않는다.
디스크 메모리 데이터베이스의 경우에, 일차 메모리의 데이터 구조는 통상적으로 디스크 메모리의 구조에 1:1 매핑(mapping)되어 있다.
디스크 메모리 데이터베이스의 일차 메모리의 메모리 내용은 디스크 메모리에 한 번에 1페이지 갱신되므로 상이한 페이지 간의 링크(link)는 고장 이후에 시스템을 재시작할 때 일치하지 않는다. 따라서 일관적인 체크포인트는 디스크 메모리 데이터베이스에 관련하여 실행시키는 것이 때때로 어렵다.
일관적인 체크포인트는 일차 메모리 데이터베이스에서 더욱 용이하게 달성된다. 예로서, 이러한 일관성은 디스크 메모리에 두개의, 데이터베이스 복제, 즉, 가장 최근의 또는 현재 버전(version)의 데이터베이스의 복제, 및 구형 버전의 복제를 갖춤으로써 용이하게 이루어진다. 이것은 데이터베이스 전체가 일차 메모리에서 즉시 검색되고, 이어서 소정의 체크포인트에 따라서 모든 페이지 간에 일관성이 잘 이루어지는 것으로 공지된 상이한 버전의 데이터베이스가 디스크 메모리에 용이하게 저장될 수 있기 때문에 가능하다.
데이터베이스에서 오브젝트(object)에 속하는 특정의 속성은 일차 메모리를 기준으로 하는 반면에, 동일한 오브젝트 내의 기타 속성은 디스크 메모리를 기준으로 할 수도 있다. 디스크 메모리 데이터베이스와 일차 메모리 데이터베이스와의 사이에서 혼합된 테이블이 또한 구성될 수도 있다.
데이터베이스는 상이한 방법으로 포맷팅되는 데이터 테이블을 포함한다. 테이블은 다수의 열(column)을 포함하며, 각각의 열은 어떤 종류의 정보를 포함한다. 각각의 열에는 특정의 속성이 할당되고 상기 열의 정보는 이 속성에 따라서 포맷팅된다. 저장되는 정보가 부호가 있거나 또는 없는 정수(整數), 부동(浮動) 수, 10진수, 날짜, 텍스트 등으로서 포맷팅되는 것이 속성의 예이다.
속성에 의해서 결정되는 기타의 요인은,
- 속성이 고정적인 속성일 때, 즉 내용이 고정된 메모리 크기를 점유할 때,
- 속성이 가변적인 속성, 즉 속성의 크기가 변화할 때, 또는
- 속성이 다이내믹한 속성일 때, 즉 선택 가능하거나 또는 임의적인 속성 등, 속성이 존재하거나 또는 존재하지 않을 때를 포함한다.
다이내믹한 속성은 가변적일 수도 있고 고정적일 수도 있다.
테이블에서의 오브젝트는 테이블의 행(row) 또는 줄에 해당하고, 테이블에 존재하는 속성(열)을 포함한다. 따라서 오브젝트는 상기의 혼합된 상이한 속성을 포함한다.
이러한 관점에서 하나의 예는 일군의 인원에 관한 개인 정보를 열거하는 테이블이다. 상이한 속성은 세례명, 성(姓), 주소, 우편 번호, 전화 번호, 생년월일 및 기타의 선택적인 특기 사항 등을 포함할 수도 있다.
생년월일은 고정적인 속성인 반면에(만일 소정의 포맷에 입력되면), 성명, 주소, 전화 번호는 가변적인 속성이고, 특기 사항은 다이내믹한 가변 속성이다.
이어서 오브젝트는 개인, 및 개인에 관한 정보이다.
이러한 예에 따라서 테이블이 저장될 수 있는 다수의 방법이 있다. 테이블은 메모리 내의 연속 시퀀스로서 고정 메모리 스페이스에 저장될 수 있다. 이로 인하여 대량의 메모리 스페이스를 필요로 하며, 더욱 큰 부분의 메모리 스페이스가 가변 및 다이내믹 속성을 위한 스페이스를 마련하기 위하여 공백으로 되어 있다. 이어서 가변적 속성은 할당된 메모리 스페이스에 따라서 한정된 방법으로써만 가변으로 된다.
또 다른 방법으로는, 각각의 오브젝트에는 가변적 속성의 크기, 또한 다이내믹 속성의 존재 여부, 및 존재한다면 이러한 속성의 크기를 나타내는 헤더(header)가 구성될 수 있다. 따라서, 오브젝트를 구성할 때 각각의 속성에 필요한 메모리 스페이스가 할당되고, 속성이 결합되어 오브젝트를 형성한다. 헤더는 각각의 속성의 크기를 나타내고, 이에 따라서 오브젝트 내의 정보가 정확하게 판독될 수 있도록 한다. 헤더는 또한 각각의 속성을 지적하는 포인터(pointer)를 포함하는 지표 (index)를 포함할 수도 있다.
실제로 메모리에 테이블을 저장할 때, 메모리는 때때로 더욱 큰 또는 더욱 작은 크기로 단편화되기 때문에, 메모리가 테이블 전체를 저장하기 위한 연속적인 메모리 스페이스를 갖는 것은 드물다. 대부분의 경우에, 테이블은 너무 커서 한 페이지에 수용될 수 없다. 따라서 테이블 내의 각종의 오브젝트가 한 페이지에서 분산되고, 테이블은 이러한 여러 개의 페이지에 걸쳐서 분할된다.
프래그먼트(fragment)는 테이블의 일부이고 또한 여러 개의 상이한 페이지를 포함한다. 분산형 데이터베이스에서, 테이블은 여러 개의 프로세서 노드를 통하여 분산형 데이터베이스에 분산될 수 있다. 이어서 프래그먼트는 노드에서 검색되는 테이블의 일부이다. 프래그먼트는 또한 테이블의 동일한 부분의 모든 복제를 포함한다. 따라서 프래그먼트는 하나의 노드에 저장되는 테이블 일부의 일차적인 복제, 및 또 다른 노드에 저장되는 동일한 테이블의 동일한 부분의 이차적인 복제를 포함한다. 동일한 또는 상이한 테이블의 상이한 프래그먼트에 대한 여러 개의 상이한 복제가 하나의 노드에 저장될 수도 있다.
대형 오브젝트의 경우에, 각종 오브젝트를 분할하여 이 분할된 오브젝트부를 하나의 페이지의 상이한 위치에 저장하거나, 또는 오브젝트를 상이한 페이지 간에 분할할 필요가 있다는 것은 정상적이다. 예로서, 대형 오브젝트는 하나 이상의 속성이, 수 천개의 문자를 포함할 수 있는 텍스트 파일을 포함하는 오브젝트일 수도 있다.
대형 오브젝트의 경우에, 테이블, 및 테이블 내의 오브젝트에 사용하는 디스크 메모리 데이터베이스에 관련하여, B-트리(tree) 등 트리 구조를 구성하는 고급 데이터 구조가 공지되어 있다.
이어서 오브젝트는 상이한 부분들로 분할되고, 이 부분들은 트리 구조에 따라서 이용 가능한 메모리 스페이스에 저장된다. 이어서 각각의 오브젝트에 대한 헤더는 B-트리에서 하향으로 가리키는 포인터를 포함함에 따라서, 오브젝트의 상이한 부분을 검색할 수 있게 된다. 이러한 부분은 반드시 전체의 속성을 구성할 필요는 없고, 오브젝트는 하나의, 단일 연속 문자 열로서 취급되며 또한 이용 가능한 메모리 스페이스에 따라서 어떠한 원하는 방법으로도 분할될 수 있다.
이러한 절차는 통상적으로 오브젝트가 페이지 전체를 가득 채울 만큼 매우 클 때 또한 변경이 디스크 메모리에 직접 기록되는 곳에 사용된다. 정보가 디스크 메모리에 직접 기록되지 않으면, 어떤 형태의 로그가 필요하다. 오브젝트가 매우 큰 이러한 경우에는, 매우 포괄적인 로그 파일을 필요로 한다.
오브젝트를 추가하거나 제거할 때, 또는 오브젝트의 속성을 변경하고, 갱신할 때 등, 프래그먼트에 변경이 이루어질 때에는, 변경이 디스크 메모리 데이터베이스에 관련되는 것인가 또는 일차 메모리 데이터베이스에 관련되는 것인가에 관계없이 조만간 영속적인 방법으로 변경을 저장할 필요가 있다.
영속적이라고 하는 것은, 예로서, 시스템의 부분 또는 시스템 전체가 기능을 멈추더라도 정보가 저장된 채로 유지되는 것을 의미한다. 그러나, 디스크 메모리에 저장할 때 일차 메모리에서는 영속적인 저장이 이루어지지 않는다. 디스크 메모리에 기록하고 디스크 메모리로부터 판독하는 것은 시간이 걸리고, 이것은 특정의 시점에서만 이루어진다. 디스크 메모리는 일차 메모리에 따라서 한 번에 완전한 한 페이지 씩 갱신된다.
프로세서가 기능을 멈추면, 모든 커미트(commit)되지 않은 트랜잭션 (tranjection)은 중단하는 반면에 모든 커미트된 트랜잭션은 실행하는 것이 필요하다. 이러한 사건을 처리하기 위하여 두 가지 형태의 정보가 저장된다.
REDO(재실행)-정보는 프로세서가 기능을 멈출 때 상실된 정보의 복구에 관련하여, 일차 메모리에서 실행되었으나 디스크 메모리에 아직 저장되지 않은 커미트된 변경을 재실행될 수 있게 하는 데에 사용된다.
UNDO(취소)-정보는 프로세서가 기능을 멈출 때 상실된 정보의 복구에 관련하여, 아직 실행되지 않았으나 디스크 메모리에 기록되지 않은 변경을 취소하는 데에 사용된다.
이러한 정보는 로그 정보로서 저장되고, 또한 프래그먼트에 영향을 주는 모든 변경이 로그에 저장되는, 소위 프래그먼트 로그에 통상적으로 저장된다. 로그 정보는 많은 상이한 방법으로 수집되고 저장된다.
물리적 로그는 발생하는 모든 변경을 저장한다. 로그는 비트 레벨로서 작용하며 정보를 변경전의 있는 그대로, 또한 변경후의 있는 그대로 저장한다. 물리적 로그는 단편화된 파일 또는 단편화된 메모리 스페이스의 비단편화 (defragmentation)일지라도, 진정한 정보 변경이 아니고, 다만 메모리 스페이스의 재분산인 모든 변경을 기록한다. 이러한 로그는 메모리 스페이스 및 프로세서 시간 모두에 대하여 용량을 매우 필요로 한다는 것을 이해하여야 한다.
생리적 로그는 메모리 스페이스의 일부에 있는 데이터의 변경만을 저장하고, 메모리 스페이스의 재분산은 저장하지 않는다. 관련 부분의 페이지 인덱스에 대한 지표 등, 상기 관련 부분의 내부 번지는 로그에 저장되고, 또한 상기 부분에서 발생하는 변경도 저장된다.
논리적 로그는 오브젝트 내의 속성의 변경만을 저장한다.
예로서, 키(key)가 "Kalle"인 오브젝트, 및 값이 "12"인 속성이 변경되어 속성이 "14"가 되면, "Kalle" 및 속성 "12"는 UNDO-로그에 저장되고, "Kalle" 및 속성 "14"는 REDO-로그에 단순히 입력되어 저장된다.
이것으로 인하여 속성의 값이 UNDO-로그를 통하여 "12"에 재설정되고, REDO-로그를 통하여 "14"에 설정될 수 있다. 이러한 정보는 메모리의 특정 위치에 저장되는 키 "Kalle"를 갖는 오브젝트에 연결되지 않고, 키 "Kalle"를 갖는 오브젝트가 로그를 사용할 때 탐색되며 필요한 정정이 실행된다.
오브젝트가 상이한 여러 페이지로 분할될 때, 페이지 간에 일관성이 잘되게 하기 위하여, 모든 페이지를 디스크 메모리에 동시에 다운로드할 필요가 있다. 따라서, 체크포인트인, 고정 시점(frozen time point)은 디스크 메모리에 다운로딩하는 시점에 생성되고, 이어서 프래그먼트 내의 모든 페이지는 디스크 메모리에 기록된다.
두 가지 방식의 일관적인 체크포인트, 즉 동작 일관적(action consistent)인 체크포인트, 및 트랜잭션 일관적인 체크포인트가 있다.
트랜잭션 일관적인 체크포인트에서, 디스크 메모리에 다운로딩되는 프래그먼트 내의 오브젝트에 영향을 주는 모든 트랜잭션은 중단되고, 모든 진행중인 트랜잭션은 완료된다. 이어서 디스크 메모리에 기록하는 실제적인 과정이 실행되고, 이것은 대형 프래그먼트의 경우에 몇 분 걸릴 수도 있다. 이것은 중단된 트랜잭션에 해당하는 대기 시간을 의미한다.
대응하는 동작 일관적인 체크포인트는, 트랜잭션의 부분인, 모든 진행중인 동작의 완료를 대기하는 동안 트랜잭션 도중에 중단이 허용되는 차이가 있지만, 동일한 방식으로 실행된다. 따라서, 동작 일관적인 체크포인트에 관련하는 대기 시간은 트랜잭션 일관적인 체크포인트에 관련되는 대기 시간보다 짧다.
국부적인 생리적 로그와 함께 소위 퍼지 체크포인트를 사용하는 것은 공지되어 있다.
국부적인 생리적 로그는, 프래그먼트에 속하는 모든 페이지를 디스크 메모리에 기록하는 것과 함께 오브젝트를 디스크 메모리에 기록되도록 영향을 주는 동작에서의 대기 시간을 제거하는 퍼지 체크포인트의 사용을 가능하게 한다.
일차 메모리 데이터베이스에 관련하여 오브젝트 변경의 경우에 오브젝트의 새로운 복제를 작성하는 것은 또한 공지되어 있으며, 여기서 새로운 복제는 변경 후의 오브젝트를 포함하고 이전의 구(舊) 복제는 변경 전의 복제를 포함하며, 또는 두 개의 복제 간의 링크로써 그 반대로 된다.
두 가지 복제는 이전의 구 정보 및 새로운 정보 모두를 포함하므로, 이 경우에는 아무런 논리적 UNDO-정보를 필요로 하지 않고, 논리적 REDO-정보만을 필요로 한다. 이러한 것은 새로운 복제가 이전의 구 복제에 상이한 페이지에 기록될 수도 있으므로 디스크 메모리 데이터베이스에서 사용하는 것은 어렵지만, 이들 데이터베이스가 때때로 디스크 메모리 데이터베이스에서는 드문, 트랜잭션 일관적인 체크포인트를 사용하기 때문에 일차 메모리 데이터베이스에서는 가능하다.
항(term) 위치 및 복제에 관계없는 로그도 또한 설명한다. 이것은 프래그먼트의 붕괴 또는 전 시스템의 고장에 관련하여 상실된 정보의 재작성에 필요한 로그를 의미하며, 이러한 상기 정보의 재작성은 어떠한 프로세서 및 관련 메모리(위치에 관계없는)에서도, 또한 로그(복제에 관계없는)의 일차 또는 이차 복제 등, 어떠한 복제로부터도 시작점으로 하여 실행될 수 있다.
이하의 문헌에는 로그-정보 및 상이한 데이터 구조의 취급에 대하여 기재되어 있다. 이들 문헌은 공지된 기술의 지침이라고 간주할 수 있다.
"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.
본 발명은 데이터베이스 변경에 관련하여 로그-정보(log-information)를 신뢰성있게 수집하는 것을 목적으로 하는, 데이터베이스에 관한 방법에 대한 것이다.
본 방법은 일관적인 체크포인트에서 통상적으로 발생하는 대기 시간을 감소시키는 목적으로써 퍼지(fuzzy) 체크포인트를 이용하며, 여기서, 이러한 퍼지 체크포인트는 로그-정보가 실시간으로 수집되도록 하는 목적으로써 생리적 로그 (physiological log)에 결합된다.
데이터베이스에 속하는 데이터 정보는 소정의 데이터 구조에 따라서 더욱 작은 부분으로 분할되고, 여기서 각각의 부분은 공통의 페이지 또는 데이터베이스에 속하는 별개의 페이지에 분산된다.
본 발명에 의한 방법은 특히 위치 및 복제(replica)에 무관한 로그에 대한 필요가 있는 분산형 데이터베이스에 관련하는 애플리케이션(application)으로써 적용될 수 있다.
도 1은 B-트리의 부분, 및 이 트리의 일부의 복제의 개략도.
도 2는 도 1의 트리를 다수의 상이한 페이지로 분할하는 개략도.
도 3은 생리적 로그를 사용하여 동작시키는 두 가지 상이한 방법
도 4는 생리적 로그의 부분 간이도.
도 5는 상이한 국부적 체크포인트와 전역적 체크포인트와의 사이의 공동 작용을 나타내는 도면.
도 6은 상이한 속성에 관련하여, 오브젝트 또는 오브젝트의 일부에 대한 변형 구조의 개략도.
도 7은 상이한 속성에 관련하여, 오브젝트 또는 오브젝트의 일부에 대한 또 다른 변형 구조의 개략도.
기술적 과제
상기에서와 같이 현재의 기술의 관점에서 볼 때, 가변적 및 다이내믹한 속성에 대한 단순한 취급이 가능하고, 초기에 공지된 경우에 비해서 훨씬 적은 로그 정보를 필요로 하는, 신뢰성있는 데이터베이스를 구성하는, 로그 정보의 취급 방법의 제공에는 기술적인 과제가 존재하는 것을 알 수 있다.
위치에 무관계하고 복제에 무관계한 로그를 구성함에 있어서, 및 이어서, 특히, 하나 이상의 포로세서 노드의 고장으로 인하여, 또는 전체 시스템이 모두 기능을 중단했을 때 테이블 또는 테이블 전체 부분을 재작성하는 데에 로그가 사용될 수 있는, 또한 원래의 노드에 전적으로 상이한 포로세서 노드에서 테이블 부분 및 전체 테이블이 재작성될 수 있는, 분산형 데이터베이스에 적합한 방법을 제공함에 있어서 또 하나의 기술적 과제가 존재한다.
또 다른 기술적인 과제는 필요한 로그 정보가 수집될 수 있고, 또한 일차 메모리에서의 데이터베이스 변경이 디스크 메모리에 실시간으로 저장될 수 있는 방법을 제공하는 것이다.
또 다른 기술적 과제는 디스크 에모리 데이터베이스 및 일차 메모리 데이터베이스 모두에 대하여 운영될 수 있는 방법을 제공하는 것이다.
추가적인 또 다른 기술적인 과제는 생리적 로그와 함께 퍼지 체크포인트를 취급하고, 또한 필요한 로그 정보의 양이 공지된 기술에 대해서 크게 감소될 수 있도록 하는 방법을 제공하는 것이다.
또 다른 기술적인 과제는 특정의 로그 정보를 탐색할 때 캐시-미스(miss)의 수가 공지된 기술에 대하여 크게 감소될 수 있는 방법을 제공하는 것이다.
추가적인 또 다른 기술적인 과제는 데이터베이스의 상이한 부분에 대하여 상이할 수도 있는 국부적인 로그 정보를 사용하여, 국부적인 것에 무관계하고 애플리케이션에 무관계한 로그를 제공할 수 있도록 하는 것이다.
해결 방안
하나 이상의 상기의 기술적인 과제가 해결될 수 있도록 하는 목적으로서, 또한 서론에서 정의된 방법의 시작점으로서, 하나의 생리적 UNDO-로그 및 하나의 논리적 REDO-로그로써만 관리하기 위하여, 이전의 구 데이터-정보가 새로운 데이터-정보로써 대체되는 부분의 변경의 경우에 페이지 중의 하나에 추가적인 부분을 작성함으로써, 퍼지 체크포인트에 필요하고 또한 아무런 종래의 로그가 작성되지 않는 논리적 UNDO-정보를 얻을 수 있고, 상기의 추가적인 부분은 구조적으로 변경된 부분의 복제이며, 또한 변경된 부분 및 추가적인 부분은 함께 링크(link)되는 것이 본 발명에 의해서 제안되어 있다.
논리적 UNDO-정보는 새로운 데이터-정보를 포함하는 변경된 부분, 및 이전의 구 데이터-정보를 포함하는 추가적인 부분때문에 실행된다.
필요한 로그의 실시간 유지 가능성은 퍼지 체크포인트 및 생리적 로그 사이의 공동 작용을 통하여 부여된다. 생리적 로그가 UNDO-로그일 때, 이러한 공동 작용 또는 공동 동작은, 국부적인 체크포인트를 설정한 이후, 대응하는 디스크 메모리에 하나의 페이지가 기록되는 시간까지 하나의 페이지에서 국부적으로 발생하는 모든 사건을 UNDO-로그에 저장하는 것이다. 또 다른 방법으로는, 생리적 로그가 생리적 REDO-로그일 때, 이러한 공동 작용은, 대응하는 디스크 메모리에 하나의 페이지를 기록한 이후, 국부적인 체크포인트가 설정되는 시간까지, 상기 페이지에서 국부적으로 발생하는 모든 사건을 REDO-로그에 저장하는 것이다.
생리적 REDO-로그의 경우에, 로그는 순수한 일차 메모리 데이터베이스에 관련하여 기능을 할뿐이지만, 생리적 UNDO-로그는 일차 데이터베이스와 디스크 메모리 데이터베이스의 관점에서, 또한 일차 메모리 데이터베이스와 디스크 메모리 데이터베이스가 결합된 데이터베이스의 관점에서 모두 기능을 하는 것을 주목하여야 한다.
일차 메모리 데이터베이스와 디스크 메모리 데이터베이스 모두로써, 또한 일차 메모리 데이터베이스와 디스크 메모리 데이터베이스가 결합된 데이터베이스에서 효과적으로 사용될 수 있는 방법을 제공하는 목적으로서, 생리적 로그가 생리적 UNDO-로그인 것이 본 발명에 의해서 제안된다. 따라서 이하의 설명은 생리적 UNDO-로그에 관한 것이다.
메모리 스페이스를 절약하고 불필요한 정보를 불필요하게 저장하지 않기 위하여, 변경을 일으키는 트랜잭션이 완료되거나 커미트된 이후에, 또는 이러한 완료에 관련하여 추가적인 복제, 또는 카피(copy)가 제거된다.
이러한 추가적인 복제의 작성에 관련하여, 이러한 실행에 대한 정보가 생리적인 로그에 저장된다. 추가적인 복제가 제거될 때, 또한 변경이 디스크 메모리에 기록될 때, 추가적인 복제가 제거된 결과에 대한 정보는 생리적인 로그에 저장된다.
변경에 대한 로깅이 디스크 메모리에 아직 기록되지 않았다면, 추가적인 복제가 제거된 결과에 대한 정보를 삽입하는 대신에 상기 추가적인 복제의 작성에 대한 정보를 생리적 로그로부터 제거하는 것이 제안된다. 이것으로 인하여 로그의 크기가 증가되는 대신에 로그의 크기가 감소되며, 또한 필요한 로그-정보의 양이 추가로 감소된다.
하나의 논리적 로그를 대체하는 정보의 수집을 단순화할 목적으로서, 또한 가능한 한 적은 메모리 접속으로써, 즉 캐시 메모리에 가능한 한 적은 정보의 수집으로써 필요한 정보를 탐색하는 능력을 강화하는 목적으로서, 본 발명에서는 어떠한 추가적인 정보를 저장하기 위하여 특정의 페이지를 사용하는 것을 제안한다.
데이터베이스에서, 및 특히 분산형 데이터베이스에서, 데이터베이스의 상이한 영역에 대하여, 예로서 상이한 테이블 또는 상이한 프래그먼트에 대하여 다수의 상이한 국부적 체크포인트가 작성된다. 이러한 상이한 체크포인트는 데이터베이스의 각각의 영역 내에서 국부적으로 제어된다.
위치 및 복제에 무관계한 로그는 이하의 방법으로 이루어진다. 전역적(全域的) 체크포인트는 계속적으로 및 주기적으로 생성된다. 간단한 항에서는, 이것은 규칙적으로 계수하는 계수기를 이용하여 이루어진다. 관련되는 트랜잭션이 커미트되는 시간에 각각의 트랜잭션에는 전역적 체크포인트의 값이 부여된다.
전역적 시스템 체크포인트는 로그-정보가 디스크 메모리에 저장되는 시점이고, 이러한 로그-정보는 공통의 전역적 체크포인트를 갖는 모든 트랜잭션 및 선행의 전역적 체크포인트를 갖는 모든 트랜잭션의 커미트먼트(commitment)에 관한 것이다.
데이터베이스에 속하는 하나 이상의 포로세서 노드의 고장으로 인하여, 또는 전체 데이터베이스의 전적인 기능 중단 때문에 상실된 프래그먼트 등, 상실 영역은, 가장 최근에 작성된 전역 시스템 체크포인트 이후 및 가장 최근에 작성된 국부적 체크포인트에 선행해서, 관련 영역에 대하여 탐색되는 국부적인 로그-정보에 따라서 재작성된다.
이러한 절차는 동작 일관적인 체크포인트를 실시간으로 구성하고, 이어서, 기타 페이지에 대한 링크를 작성할 수 있게 하며, 이 들 링크는 데이터베이스의 변경의 경우에도 신뢰할 수 있다.
이것으로 인하여 가변적 및/또는 다이내믹한 속성을 갖는 오브젝트가 간단하고, 시간적으로 및 메모리 스페이스 면에서 효과적인 방법으로 실행될 수 있고 취급될 수 있는 복잡한 데이터 구조를 사용할 수 있게 된다.
본 발명으로 인하여 또한 B-트리 형태의 데이터 구조를 사용할 수 있게 되고, 상기 부분은 B-트리에 속하는 리프(leaf) 노드를 포함한다.
또 하나의 가능한 데이터 구조는 해시(hash) 함수 등, 수학적인 함수로써 구성하는 구조에 따라서 구성 요소가 배치되는 데이터 구조이며, 여기서 상기 부분은 상기 구성 요소를 포함한다.
장점
본 발명에 의해서 일차적으로 제공되는 장점은, 오브젝트의 저장에 있어서 고급 데이터 구조의 사용에도 불구하고, 필요한 로그 정보가 효과적인 방법으로 용이하게 이용 가능하게 되는 것이다. 더욱이, UNDO-정보는 변경된 부분의 복제의 작성을 통하여 획득되고, 복제는 원래의 부분과 함께 필요한 UNDO-정보를 포함하므로, 로그는 하나의 생리적 UNDO-로그, 및 다만 하나의 논리적 REDO-로그를 포함한다. 추가적인 복제를 사용할 때 필요한 정보량은 논리적 UNDO-로그에서 필요로 하는 정보량보다 적다.
본 발명은 또한 일차 메모리 데이터베이스 및 디스크 메모리 데이터베이스 모두에 대하여 동작 일관적인 체크포인트를 부여하며, 이것은 페이지 간의 참조가 신뢰성이 있으며, 이어서 디스크 메모리 데이터베이스에서도 오브젝트의 데이터 구조를 융통성있게 취급할 수 있게 한다는 것을 의미한다.
본 발명에 의한 방법의 주요한 특징은 후속의 청구항 1의 특징절에 기재된다.
많은 상이한 종류의 로그 정보가 기술적으로 공지되어 있다.
분산형 데이터베이스에 대해서 위치 및 복제에 무관계한 로그가 매우 필요하기 때문에, 본 발명은 논리적 로그의 사용을 기초로 한다.
논리적 로그는 일관적인 로그를 필요로 하며, 이것은, 예로서, 디스크 메모리에 의한 데이터베이스로서는 달성하기가 어렵다. 동작 일관적인 체크포인트가 트랜잭션 일관적인 체크포인트에 의한 대기 시간보다 대기 시간이 더욱 짧기 때문에, 선택되는 체크포인트는 동작 일관적인 체크포인트이다.
신뢰성있는 로그를 실시간으로 유지하는 것이 바람직하고, 이것은 아무런 대기 시간도 허용되지 않는다는 것을 의미한다. 따라서 퍼지 체크포인트가 사용된다.
생리적 로그와 함께, 퍼지 체크포인트는 이어서 상이한 페이지 간에 참조가 사용될 수 있도록 하는 동작 일관적인 체크포인트를 구성한다. 이것으로 인하여 오브젝트에서 변경된 속성의 복제를 사용할 수 있게 되고, 여기서 복제는 어떤 페이지에든지 배치될 수 있고, 또한 이러한 복제는, 예로서, 논리적 UNDO-정보를 대체할 수 있다.
이것으로 인하여 상이한 오브젝트 구조 및 색인 구조 모두의 고장(crash)에 이어서 재작성 절차에 로그가 사용될 수 있다.
본 발명은 주로 이하의 세 가지 공지된 절차의 조합을 기초로 한다, 즉,
- 오브젝트가 더욱 작은 부분으로 분할될 수 있는 구조에, 크기에 관계없는 오브젝트가 저장된다.
- 일차 메모리에 대하여 디스크 메모리를 갱신하는 데에 퍼지 체크포인트 및 생리적 로그가 사용된다.
- 관련 부분의 변경의 경우에, 추가적인 부분, 즉 이 부분의 새로운 복제가 작성되고, 상기의 추가적인 부분은, 예로서, 상기 변경 이전의 구 정보를 포함하고, 원래의 부분은 상기 변경 이후의 정보를 포함한다.
상기의 원래 부분은, 예로서, 트리-구조에서의 리프 노드, 또는 해시 함수 등 수학적 함수를 통하여 배치되는 구성 요소를 포함한다.
따라서 논리적 UNDO-로그는 상기의 추가적인 부분으로써 대체되기 때문에, 생략된다.
퍼지 체크포인트가 사용될 때, 일관적인 체크포인트를 작성하는 데에 논리적 UNDO-정보 및 REDO-정보와 함께, 물리적 또는 생리적 로그를 필요로 한다.
도 1은 B-트리 내부의 리프 노드(1)가 변경될 정보를 포함하는 B-트리 부분을 나타낸다. 이 경우에, 필요한 논리적 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-정보를 필요로 하는 일차 메모리에 의한 페이지가 사용되는 것이다.
퍼지 체크포인트는 UNDO-로그를 포함하는 생리적 로그와 공동으로 작용한다.
도 3은 일차 메모리에서 계속적으로 발생하는 데이터 정보의 변경에 대하여 이러한 생리적 로그가, 디스크 메모리의 갱신과 공동 작용하는 방법을 나타낸다. 이러한 갱신은 각각의 시점에서 갱신이 개시되는 특정의 시점, t1, t2, ...,에서 발생한다.
이러한 갱신은 다수의 상이한 페이지, 예로서 테이블에 속하는 모든 페이지 또는 프래그먼트에 속하는 모든 페이지에 영향을 준다. 이 들 페이지는 한 번에 한 페이지씩 디스크 메모리에 순차적으로 기록된다. 모든 관련 페이지를 디스크 메모리에 기록하는 데에는 특정의 시간, t1-t1'이 걸린다. 각각의 갱신에 대하여 국부적 체크포인트(LC; local check-point)가 설정된다.
도 3에 나타낸 바와 같이, 국부적 체크포인트(LC)는 갱신이 시작되는 t일 때 설정된다. 일차 메모리 데이터베이스에서, 국부적 체크포인트(LC)를 설정한 이후 대응하는 디스크 메모리에 페이지가 기록되는 시간까지 페이지에서 국부적으로 발생하는 모든 것은 생리적 UNDO-로그에 저장된다. 이러한 것은 시점 t와 t' 사이의 어디에선가 일어난다.
디스크 메모리 데이터베이스에서, 모든 변경은 생리적 로그에 연속적으로 기록된다. 따라서, 디스크 메모리 데이터베이스는 일차 메모리 데이터베이스에 비해서 훨씬 많은 로그 정보를 필요로 한다.
데이터베이스가 일차 메모리 데이터베이스인가 또는 디스크 메모리 데이터베이스인가에 관계없이, 저장되는 전체의 로그 정보는 논리적 REDO-로그, 생리적 REDO-로그, 및 추가적 부분(1')을 통하여 획득한 필수적인 논리적 UNDO-정보를 포함한다.
이러한 로그 정보는 종래에 필요한 로그 정보를 유지하는 데에 필요되는 것에 비해서 훨씬 적다. 논리적 UNDO-정보는 커미트 후에는 더 이상 필요하지 않다. 이로 인하여 변경을 일으키는 트랜잭션의 완료 또는 커미트 후에, 또는 이에 관련하여, 추가적 부분(1')이 제거될 수 있다. 따라서 이로 인하여 사용되는 메모리 스페이스의 추가적인 감소가 이루어진다.
도 4는 추가적인 부분(1')의 작성에 관련하여, 이러한 결과에 대한 정보(3B1)가 생리적 로그(3)에 저장되는 것을 나타낸다. 트랜잭션이 커미트되기 전에 변경에 대한 로깅이 디스크 메모리에 기록될 때, 추가적인 부분(1')이 제거되었다는 것을 나타내는 정보(3B2)가 생리적 로그(3)에 또한 저장된다.
다른 한편으로는, 변경에 대한 로깅이 디스크 메모리에 아직 기록되지 않았다면, 상기의 추가적인 부분(1')이 제거된 결과에 추가 정보(3B2)를 부가하는 대신에, 추가적 부분(1')의 작성을 나타내는 정보(3B2)를 생리적 로그(3)로부터 제거하는 것이 제안되어 있다.
이러한 것은 생리적 로그(3)에 대한 메모리 스페이스를 추가로 절약한다.
상기에 의한 방법의 사용은 상이한 데이터베이스 영역에 대하여, 예로서, 테이블 또는 프래그먼트에 대하여 다수의 상이한 국부적 체크포인트를 부여한다. 도 5는 각각의 영역이 어떻게 상이한 국부적 체크포인트, LC1, LC2, LC3, ..., LCn을 갖는가를 나타내며, 여기서 상이한 체크포인트는 각각의 영역에서 국부적으로 제어된다.
위치 및 복제에 무관계한 로그는 이하의 방법으로 획득된다. 전역적 체크포인트(GC; global check-point), GC1, GC2, GC3, ...은 계속적으로 및 주기적으로 발생된다. 간단한 항에서, 이러한 것은 규칙적으로 계수하는 계수기에 의하여 실행된다. 각각의 트랜잭션에는 관련 트랜잭션이 커미트되는 시간에서의 전역적 체크포인트(GC)에 대한 값이 할당된다.
전역적 시스템 체크포인트인, GC1, GC2, GC3, ...은 특정의 로그 정보가 디스크 메모리에 저장되는 시점이고, 이러한 로그 정보는 공통의 전역적 체크포인트 GC를 갖는 모든 트랜잭션에 관련되고, 또한 선행의 전역적 체크포인트에 속하는 모든 트랜잭션은 커미트된다.
데이터베이스에 속하는 하나 이상의 포로세스-노드의 고장에 관련되는, 또는 전체 데이터베이스의 전적인 기능 중단의 경우에 상실된 프래그먼트 등, 상실 영역의 재작성은, 가장 최근에 작성된 전역 시스템 체크포인트(GSC; global system check-point)이후 및 가장 최근에 작성된 국부적 체크포인트(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) 노드(A1)를 구성하는 정보를 포함한다. 루트 노드(A1)는 중간 노드(B1, B2) 또는 리프 노드(C1)를 가리킨다. 이어서, 중간 노드(B1, B2)는 추가적인 중간 노드(B3) 또는 리프 노드(C2, C3, C4, C5, C6)를 가리킨다.
리프 노드(C2, C3, C4, C5, C6)는 또한 속성을 수용하기에 충분히 크게 구성될 수도 있다. 이로 인하여 가변적 속성, 즉 테이블 내의 속성마다 크기를 변경할 수 있는 속성이 용이하게 처리될 수 있다. 리프 노드(C2, C3, C4, C5, C6)는 또한 이용 가능한 메모리 스페이스 내에 수용되기에 충분히 크게 구성될 수도 있다. 이로 인하여 메모리를 융통성있고 효과적으로 관리할 수 있다.
도 7은 다이내믹 속성의 처리를 나타낸다. 오브젝트 헤더(D1)는 D12를 상이한 다이내믹 속성을 포함하는 레지스터(register)(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
SE9702759-3 1997-07-21
SE9702759A SE510050C2 (sv) 1997-07-21 1997-07-21 Metod för insamlande av logginformation vid förändring av databas

Publications (2)

Publication Number Publication Date
KR20010022064A true KR20010022064A (ko) 2001-03-15
KR100556594B1 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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100744378B1 (ko) * 2001-08-17 2007-07-30 삼성전자주식회사 해시함수를 이용한 데이터베이스 검색방법
WO2017188484A1 (ko) * 2016-04-29 2017-11-02 주식회사 울프슨랩 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체

Families Citing this family (27)

* 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
WO2001004801A1 (en) * 1999-07-09 2001-01-18 Wild File, Inc. Optimized disk storage defragmentation with swapping capabilities
US7051055B1 (en) * 1999-07-09 2006-05-23 Symantec Corporation 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
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
JP5898830B2 (ja) * 2007-01-11 2016-04-06 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. アンドゥ/リドゥ機構を提供する方法及び装置
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 国网信息通信有限公司 建立新旧文献代替关系的方法及装置
CN103262042B (zh) * 2011-12-19 2016-03-30 华为技术有限公司 一种分布式存储数据恢复方法、装置及系统
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
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100744378B1 (ko) * 2001-08-17 2007-07-30 삼성전자주식회사 해시함수를 이용한 데이터베이스 검색방법
WO2017188484A1 (ko) * 2016-04-29 2017-11-02 주식회사 울프슨랩 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체

Also Published As

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

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
US11288252B2 (en) Transactional key-value store
US8386431B2 (en) Method and system for determining database object associated with tenant-independent or tenant-specific data, configured to store data partition, current version of the respective convertor
CN109891402B (zh) 可撤销和在线模式转换
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
EP2590086B1 (en) Columnar database using virtual file data objects
CN1559041B (zh) 在计算机系统之间共享对象
US6651073B1 (en) Method and apparatus for insuring database data integrity without data recovery logging
CN100476710C (zh) 在数据存储器中保持临时数据的系统和方法
US7769718B2 (en) Unobtrusive point-in-time consistent copies
US7587429B2 (en) Method for checkpointing a main-memory database
US20170351543A1 (en) Heap data structure
US20180011892A1 (en) Foster twin data structure
US20080282057A1 (en) Database Heap Management System With Variable Page Size and Fixed Instruction Set Address Resolution
Hvasshovd Recovery in parallel database systems
Faria et al. Towards generic fine-grained transaction isolation in polystores
JP2004062759A (ja) データベースログの管理方法、その装置およびそのプログラム
Choi et al. Two-step backup mechanism for real-time main memory database recovery
Mejia Alvarez et al. Database Systems: Real Examples
Magalhaes et al. MM-DIRECT
Bhattacharjee et al. Efficient Bulk Deletes for Multi Dimensionally Clustered Tables in DB2.
Mittra Internal Level of an Oracle Database
Yoon et al. Recovery techniques for Main-Memory database system: A Survey: A Survey
Kruckenberg et al. Storage Engines and Data Types

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