KR100390853B1 - 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 - Google Patents

주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 Download PDF

Info

Publication number
KR100390853B1
KR100390853B1 KR10-2000-0031166A KR20000031166A KR100390853B1 KR 100390853 B1 KR100390853 B1 KR 100390853B1 KR 20000031166 A KR20000031166 A KR 20000031166A KR 100390853 B1 KR100390853 B1 KR 100390853B1
Authority
KR
South Korea
Prior art keywords
log
main memory
database
checkpointing
backup
Prior art date
Application number
KR10-2000-0031166A
Other languages
English (en)
Other versions
KR20010112529A (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
Priority to KR10-2000-0031166A priority Critical patent/KR100390853B1/ko
Application filed by 차상균, 김기홍, 이주창 filed Critical 차상균
Priority to PCT/KR2000/001542 priority patent/WO2001095640A2/en
Priority to JP2002503047A priority patent/JP4813004B2/ja
Priority to AT00987814T priority patent/ATE292304T1/de
Priority to EP00987814A priority patent/EP1320802B1/en
Priority to DE60019173T priority patent/DE60019173T2/de
Priority to AU2001224081A priority patent/AU2001224081A1/en
Priority to CNB00819629XA priority patent/CN1205550C/zh
Priority to US09/768,301 priority patent/US7065537B2/en
Publication of KR20010112529A publication Critical patent/KR20010112529A/ko
Application granted granted Critical
Publication of KR100390853B1 publication Critical patent/KR100390853B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/1474Saving, restoring, recovering or retrying in transactions
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • 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/964Database arrangement
    • Y10S707/966Distributed
    • Y10S707/967Peer-to-peer
    • Y10S707/968Partitioning
    • 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)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)

Abstract

본 발명에서는 어떤 트랜잭션 처리 시스템에서 발생한 장애를 복구할 수 있는 효율적인 로깅 방법 및 장치를 제시한다. 본 발명이 기반하고 있는 디퍼런셜 로깅은 병렬적인 회복 연산을 가능케 한다. 이 방법에서는 어떤 갱신 연산 발생시 주메모리 데이터베이스의 갱신 전 이미지와 갱신 후 이미지간의 XOR 연산 결과를 로그 레코드에 저장하며, 저장된 로그 레코드들과 데이터베이스 이미지간의 XOR 연산을 수행함으로써 리두와 언두 연산을 수행한다. XOR 연산은 교환적이고 결합적이기 때문에 로그 레코드들의 생성 순서에 관계없이 정확한 회복이 가능하다. 본 발명은 로그 레코드들의 크기를 줄이고 회복 연산의 병렬적 수행을 허용함으로써 로깅 및 회복 성능을 향상시킨다.

Description

주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디피런셜 로깅 방법 및 장치 {A Logging Method and System for Highly Parallel Recovery Operation in Main-Memory Transaction Processing Systems}
본 발명은 주 메모리 트랜잭션 처리 시스템에서 회복을 위한 로깅 방법 및 장치에 관한 것이다.트랜잭션 처리 시스템은 장애 발생 시에도 관리하고 있는 데이터의 일관성과 지속성을 보장할 수 있어야 한다. 데이터의 일관성이란, 트랜잭션들이 수행될 때 데이터들은 항상 어떤 일관된 상태에서 다른 일관된 상태로 변경되어야 한다는 성질이다. 데이터의 지속성이란, 완료(commit)된 트랜잭션에 의해 변경된 데이터들은 시스템 장애 시에도 항상 그대로 유지되어야 한다는 성질이다.데이터베이스의 일관성과 지속성을 보장하기 위해, 대부분의 트랜잭션 시스템들은 로깅이라 부르는 방법을 사용하는데, 이 방법은 각 갱신 연산에 관한 정보로부터 로그 레코드를 구성하여 로그 파일에 저장하는 방법이다. 장애가 발생하면, 완료되지 않은 트랜잭션의 로그 레코드들에 대해서는 해당 갱신 연산을 언두(undo)함으로써 데이터베이스의 일관성을 유지시키며, 완료된 트랜잭션의 로그 레코드들에 대해서는 해당 갱신 연산을 리두(redo)함으로써 데이터베이스의 지속성을 유지시킨다.로그만을 이용하여 데이터베이스를 복구할 경우 시스템이 가동된 이후 생성된 모든 레코드들에 대해 리두 또는 언두 연산을 수행해 주어야하므로 지나치게 많은 양의 로그를 읽어야 하는 단점이 있다. 따라서, 소위 체크포인팅 (checkpointing)이라는 방법을 이용해 데이터베이스를 일정한 시간 간격으로 백업 디스크에 저장하여, 시스템 재시작 시에는 가장 최근에 성공한 체크포인팅 이후에 생성된 로그들만을 읽어도 되도록 한다. 일반적인 체크포인팅의 경우에는, 데이터베이스의 각 페이지들이 더티 플래그(dirty flag)라 부르는 데이터를 관리하여 가장 최근에 성공한 체크포인팅 이후에 수행된 트랜잭션에 의해 변경된 페이지들만 백업 디스크에 저장하도록 하여, 체크포인팅 시 저장해야 하는 데이터의 양을 줄이게 된다.도 1은 데이터베이스를 모두 주 메모리 상에 저장하는 주 메모리 데이터베이스 시스템에서 사용되는 기존의 회복 구조에 관한 도면이다. 일반적으로는 두 개의 백업 디스크 (101, 102)와 하나의 로그 디스크(103)가 사용된다. 한번의 체크포인팅에 의해 단 하나의 백업 디스크만이 갱신되며, 매 체크포인팅마다 백업 디스크가 바뀌어가며 갱신된다. 이를 위해 각 데이터베이스 페이지마다 두 개의 더티 플래그가 존재하여, 한 트랜잭션이 한 페이지를 갱신시킬 때 두 플래그 모두 셋(set)한다. 그리고, 한 체크포인팅이 수행되면 그 페이지를 첫 번째 백업 디스크에 저장한 후 첫 번재 더티 플래그를 리셋(reset)한다. 마찬가지로, 뒤따르는 다른 한 체크포인팅을 그 페이지를 두 번째 백업 디스크에 저장한 후 두 번째 더티 플래그를 리셋한다.도 2는 시스템 장애 발생 시 기존의 회복 구조에서 사용하는 재시작 과정에 관한 도면이다. 도 2에 도시된 바와 같이, 재시작 과정은 가장 최근에 성공한 체크포인팅에 의해 저장된 백업을 주 메모리로 읽는 과정 (이하 "BR"이라 함) (201)과 읽혀진 백업을 이용하여 데이터베이스를 부분적으로 복구하는 과정 (이하 "BP"라 함) (202), 로그를 로그 디스크로부터 주 메모리로 읽는 과정 (이하 "LR"이라 함) (203), 그리고 읽혀진 로그 레코드들은 부분적으로 복구된 데이터베이스에 적용하는 과정 (이하 "LP"라 함) (204)으로 구성된다.도 3은 시스템 재시작 시 기존의 회복 구조에서 사용되는 이중 경로 로그 적용에 관한 도면이다.도 3에 도시된 바와 같이, 우선, 로그 앵커에 저장된 정보를 이용해 제크 포인트 시작 로그를 읽는다(300). 루저 트랜잭션을 구분하기 위해서, TID와 Last LSN이라는 필드를 갖는 루저 트랜잭션 테이블(LTT)이 관리된다. 이 테이블은 트랜잭션 시작 로그 레코드에 저장된 활동 트랜잭션들의 리스트를 이용해 초기화된다.(301). 기존의 회복 연산에서는 교환성 및 결합성이 보장되지 않으므로, 로그를 정방향으로 스캔하며 로그 레코드를 읽어들인다(302).읽어들인 로그가 트랜잭션 시작 로그인 경우(303), 루저 트랜잭션 테이블에서 대응하는 엔트리 하나를 생성하도록 한다(306).읽어들인 로그가 트랜잭션 종료 로그인 경우에는 루저 트랜잭션 테이블에서 엔트리 하나를 삭제하도록 한다(309).일관된 상태의 데이터베이스로 복구하기 위하여, 완료된 트랜잭션들의 로그 레코드들은 리두 해 주어야 하지만, 시스템 장애 시점에 활동 중이던 트랜잭션들의 로그들은 모두 언두 해 주어야 한다. 이를 위해, 체크포인팅 시작 로그 레코드로부터 로그 끝까지 스캔하면서 갱신 로그인 경우(305), 로그 레코드들에 대해 리두 연산을 수행하고 대응하는 루저 트랜잭션 테이블 엔트리의 LSN 필드를 갱신한다(308). 로그의 끝에 도달하게 되었을 때(309), LTT에 여전히 남아있는 트랜잭션들이 루저 트랜잭션들이다. 한 루저 트랜잭션의 가장 최근 로그 레코드는 대응하는 LTT 엔트리의 Last LSN 필드로부터 그 위치를 찾아낼 수 있으며, 그 트랜잭션의 다른 레코드들은 찾아낸 로그 레코드들의 Last LSN 필드로부터 연쇄적으로 그 위치들을 찾아낼 수 있다 (310).기존의 물리적 로깅 방법을 사용할 때에는, 모든 로그 레코드들은 LP 과정에서 그 생성된 순서대로 적용되어야만 한다. 즉, 먼저 생성된 로그들이 먼저 리두 되어야 한다. 이러한 조건은 리두나 언두 연산이 교환적이거나 결합적이지 않기 때문인데, 데이터베이스 시스템 설계 시 많은 제약을 가져온다.전체 데이터베이스를 주 메모리 상에 저장하는 주 메모리 데이터베이스 시스템에서는 디스크를 접근하는 로깅이 시스템 성능 상 중요한 병목이 된다. 이러한 병목을 줄이기 위해, 복수의 로그 디스크를 사용하여 병렬적으로 로깅하는 구조를 생각해 볼 수 있는데, 기존의 물리적 로깅 방법을 사용할 경우 시스템 재시작 시 LP 과정에서 로그 레코드들의 생성 순서를 파악하여 그 순서대로 적용해야 하는 오버헤드로 인해 실제로 쉽게 사용될 수 없다.따라서, 복수 개의 로그 디스크가 존재하는 환경에서 로그에 대한 효과적인 병렬적 연산을 수행할 수 있도록 하는 로깅 방법이 필요하다.
본 발명의 목적은 트랜잭션 처리 시스템에서 발생하는 장애를 복구하는데 사용도는 로깅 방법에 있어서 병렬적 연산을 가능케 하는 것이다.이러한 목적을 이용하여 본 발명에서는 교환적이고 결합적인 회복 연산을 허용할 수 있는 디퍼런셜 로깅 방법을 사용한다. 이 방법에서는 어떤 갱신 연산 발생시 주 메모리 데이터베이스의 갱신 전 이미지와 갱신 후 이미지간의 XOR 연산의 결과를 로그 레코드로 저장하며, 저장된 로그 레코드들과 데이터베이스 이미지간의 XOR 연산을 수행함으로써 리두와 언두 연산을 수행한다.
도1은 데이터베이스를 모두 주 메모리 상에 저장하는 주 메모리 데이터베이스 시스템에서 사용되는 기존의 회복 구조에 관한 도면,
도2는 시스템 장애 발생 시 기존의 회복 구조에서 사용하는 재시작 과정에 관한 도면,
도3은 시스템 재시작 시 기존의 회복 구조에서 사용되는 이중 경로 로그 적용에 관한 도면,
도4는 데이터베이스에서 발생한 갱신 연산으로부터 갱신 로그 레코드를 생성하기 위해 본 발명에서 사용하는 구조에 대한 도면,
도5는 본 발명에서 재시작 과정 중 갱신 로그 레코드를 이용하여 수행하는 리두 또는 언두 연산을 예시한 도면,
도6은 본 발명의 디퍼런셜 로깅 방법과 기존의 물리적 로깅 방식을 비교한 도면,
도7은 본 발명에서 일관성 체크포인팅 기법을 이용해 생성된 백업으로부터, 단일 경로 로그 적용을 이용하여 데이터베이스를 복구하는 과정에 관한 도면,
도8은 본 발명에서 다른 갱신 연산의 수행을 중지시키지 않은 채 백업을 만드는 퍼지 체크포인팅 과정에 관한 도면,
도9는 본 발명에서 퍼지 체크포인팅과 함께 사용되는 갱신 과정에 관한 도면,
도10은 본 발명에서 퍼지 체크포인팅에 의해 생성된 백업으로부터, 수정된 이중 경로 로그 적용을 이용하여 데이터베이스를 복구하는 과정에 관한 도면,
도11은 본 발명에서 퍼지 체크포인팅에 의해 생성된 백업으로부터, 수정된 단일 경로 로그 적용을 이용하여 데이터베이스를 복구하는 과정에 관한 도면,
도12는 본 발명에서 로그 레코드들을 복수 개의 로그 디스크들에 분배하여 병렬적 로깅을 가능케 하는 로깅 구조의 한 실시에 관한 도면,
도13은 본 발명에서 복수 개의 로그 디스크들로부터 병렬적으로 재시작 하는 재시작 구조의 한 실시에 관한 도면,
도14는 본 발명에서 복수 개의 로그 디스크 및 백업 디스크를 사용하여 가능한 신속하게 데이터베이스를 재시작 할 수 있는 병렬적 재시작 과정에 관한 도면,도15는 도14의 병렬적 재시작 과정에서 사용되는 백업 로더 (BL) 모듈의 한 실시에 관한 도면,
도16은 시스템 재시작 시 동일한 시간 동안 하나의 프로세서가 처리할 수 있는 로그량보다 하나의 디스크가 전송할 수 있는 로그량이 많을 때, 도14의 병렬적 재시작 과정에서 사용되는 로그 로더 (LL) 모듈의 한 실시에 관한 도면,
도17은 시스템 재시작 시 동일한 시간 동안 하나의 프로세서가 처리할 수 있는 로그량보다 하나의 디스크가 전송할 수 있는 로그량이 적을 때, 도14의 병렬적 재시작 과정에서 사용되는 로그 로더 (LL) 모듈의 한 실시에 관한 도면.
상기한 바와 같은 목적을 달성하기 위하여, 본 발명에 의한 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법은 데이터베이스를 주 메모리에 저장하며, 주 메모리 데이터베이스에 대한 병렬적 회복을 위해 로그 레코드들을 저장하기 위한 하나 또는 복수 개의 로드디스크들과, 주 메모리 데이터베이스를 저장하기 위한 하나 또는 복수개의 백업 디스크를 포함하고 있는 주 메모리 트랜잭션 처리 시스템의 로깅 방식에 있어서, 로그 레코드는 어떤 갱신연산이 수행될 경우 이에 대한 갱신 전 이미지와 갱신 후의 이미지간의 XOR 결과로 이루어지며, 상기 로그 레코드와 데이터베이스 이미지간의 XOR 연산을 통해 시스템을 복구하는 것을 특징으로 한다.한편 본 발명에 의한 시스템 데이터베이스를 저장하기 위한 주 메모리, 주 메모리 데이터베이스의 병렬적 회복을 위한 로그 레코드들을 저장하는 하나 또는 복수 개의 로그 디스크, 주 메모리 데이터베이스의 복사본을 저장하는 하나 또는 복수 개의 백업 디스크, 어떤 갱신 연산이 수행될 경우 이에 대한 갱신 전 이미지와 갱신 후 이미지간의 XOR 결과를 로그 본체에 저장하는 로그를 생성하기 위한 수단, 및 디피런셜 로그와 데이터베이스 이미지간의 XOR로 이루어지며, 디퍼런셜 로그 레코드와 데이터베이스 이미지간의 XOR 연산을 통해 시스템을 복구하는 수단을 포함하는 것을 특징으로 한다.이하에서 첨부된 도면을 참조하여 본 발명에 의한 주 메모리 트랜잭션 처리시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치의 바람직한 실시예를 상세하게 설명한다.도 4는 본 발명에서 사용되는 갱신 로그 레코드와 데이터베이스 페이지의 구조를 나타낸 도면이다. 본 발명은 한 데이터베이스가 고정된 크기를 갖는 복수 개의 페이지들로 구성되며, 한 페이지는 다시 여러 개의 슬롯으로 구성되는 저장 구조를 가정하고 있다. 다른 방식의 저장 구조를 갖는 시스템에 본 발명을 실시하기 위해서는 약간의 수정이 필요하나 이는 본 발명에 기술된 내용으로부터 명백히 유추할 수 있다. 본 발명의 한 실시는 다음과 같이 적어도 다섯 가지 유형의 로그 레코드들을 사용한다: 트랜잭션 시작, 트랜잭션 종료, 갱신, 체크포인트 시작, 체크포인트 종료. 트랜잭션 시작 로그 레코드와 트랜잭션 종료 로그 레코드는 한 트랜잭션의 시작과 종료를, 체크포인트 시작 로그 레코드와 체크포인트 종료 로그 레코드는 한 체크포인팅의 시작과 종료를 기록하는 데 사용된다.하나의 갱신 연산을 기록하는 데 사용되는 갱신 로그 레코드는 하나의 로그 레코드와 하나의 로그 본체로 구성된다. 도 4는 본 발명의 일 실시에서 사용되는 로그 헤더의 구조에 관한 도면이다. "LSN(Long Sequence Number)" 필드에는 로그 레코드의 인식 번호를 저장하는데 일반적으로 디스크 상에서 로그 레코드의 물리적 주소가 이용된다. "TID(Transaction ID)" 필드에는 현재 로그 레코드를 생성한 트랜잭션의 인식 번호를 저장한다. "PrevLSN" 필드에는 동일한 트랜잭션에 의해 가장 최근에 생성된 로그의 인식 번호를 저장하여 그 트랜잭션을 철회해야 할 경우 그 트랜잭션에서 발생한 이전 로그들을 빠르게 찾아낼 수 있도록 하며, "Type" 필드에는 로그 레코드의 타입을 저장한다. "Backup ID" 필드에는 로그 레코드와 갱신된 페이지 사이의 관계를 저장하는데, 이 필드는 퍼지 체크포인팅이 사용될 경우에만 필요하다. 이에 대해서는 도 8에서 자세히 설명한다. 그리고, "Page ID" 필드에는 갱신된 페이지의 일련 번호를 저장하며, "Offset" 필드에는 그 페이지 내에서 실제로 갱신된 영역까지의 옵셋을 "Size" 필드에는 실제로 갱신된 영역의 크기를 저장한다.갱신된 영역의 갱신 전 이미지와 갱신 후 이미지를 로그 본체에 저장하는 기존의 물리적 로깅과 달리, 디퍼런셜 로깅에서는 갱신 전 이미지와 갱신 후 이미지간의 XOR 결과를 로그 본체에 저장한다. 예를 들어, 갱신 전 이미지가 "0011"이고 갱신 후 이미지가 "0101"이며, 본 발명에서는 디퍼런셜 로그 본체에 "0110"이라는 XOR 결과를 저장한다.
도 5는 재시작 과정 동안에 디퍼런셜 로그 레코드를 데이터베이스에 적용하는 연산을 예시한 도면이다. "Page ID"와 "Offset" 필드로부터 로그 레코드를 적용하게 될 데이터베이스 상의 위치를 찾은 후 해당 이미지와 로그 레코드 본체를 XOR 하여 그 결과를 그 데이터베이스 위치에 저장함으로써 리두와 언두 연산을 수행하게 된다. 이 경우 기존의 물리적 로깅과는 달리, 동일한 연산에 의해 리두와 언두가 이루어진다.
도 6a 내지 도 6e는 본 발명의 디퍼런셜 로깅과 기존의 물리적 로깅을 비교한 도면이다. 기존의 물리적 로깅에서 리두 연산을 교환적이지 않고 결합적이지 않기 때문에 로그 레코드들은 생성 순서대로 적용되어야 한다. 도 6a에 도시된 바와 같이, 3개의 트랜잭션 T1, T2, T3이 처리된 후 시스템 장애가 발생한 경우를 예로 들어보자. 이 트랜잭션들은 데이터베이스 내에 있는 한 4 바이트 정수를 0, 7, 6, 14의 순서로 갱신하였다. 도 6b와 도 6c는 각각 물리적 로깅과 디퍼런셜 로깅이 사용되었을 때 슬롯의 이미지가 변경됨에 따라 생성되는 로그 레코드들을 나타낸 도면이다. 물리적 로그 레코드들은 갱신 전 이미지와 갱신 후 이미지를 포함하는 반면, 디퍼런셜 로깅은 갱신 전 이미지와 갱신 후 이미지 사이의 XOR 차이만을 포함하고 있다.도 6d에서 도시된 바와 같이, 시스템 장애 후에 로그 레코드들이 생성된 순서대로 리두된다면 양자 모두 정확한 회복이 가능하다. 이때 물리적 로깅에서의 리두 연산은 로그 본체에 저장된 갱신 후 이미지를 대응하는 슬롯에 복사함으로써 이루어진다. 하지만, 로그 레코드들이 생성된 순서와는 다르게 리두된다면, 물리적 로깅에서는 정확한 회복이 불가능한 반면, 디퍼런셜 로깅에서는 정확한 회복이 가능하다. 도 6e 각각 순서대로 로그 레코드들이 리두되는 과정을 보인 도면이다.이러한 디퍼런셜 로깅은 데이터베이스가 주 메모리에 상주하는 주 메모리 데이터베이스뿐만 아니라, 데이터베이스가 디스크에 상주하는 디스크 데이터베이스에도 적용 가능하다.일관성 체크포인팅에는 트랜잭션 일관성 체크포인팅과 연산 일관성 체크포인팅이 있다. 트랜잭션 일관성 체크포인팅은 체크포인팅 도중 어떠한 갱신 트랜잭션도 진행되지 못하도록 막아 놓는 체크포인팅 방식이다. 즉, 현재 진행 중인 갱신 트랜잭션이 모두 끝날 때까지 기다렸다가 체크포인팅을 시작시키며, 체크포인팅이 끝날 때까지는 어떠한 갱신 트랜잭션도 시작하지 못하도록 한다. 마찬가지로, 연산 일관성 체크포인팅은 체크포인팅 도중 어떠한 갱신 연산도 진행되지 못하도록 막아 놓는 체크포인팅 방식이다. 이러한 일관성 체크포인팅이 디퍼런셜 로깅과 함께 사용될 경우 도3의 이중 경로 로그 적용 역시 바로 사용될 수 있다.
도7은 본 발명에서 일관성 체크포인팅 기법을 이용해 생성된 백업으로부터, 단일 경로 로그 적용을 이용하여 데이터베이스를 복구하는 과정에 관한 도면이다.도 7에서, CTT(Committed Transaction Table)은 종료 로그가 있는 트랜잭션들의 집합을 의미하고, RTT(Rolled-back Transaction Table)은 종료 로그가 없는 루저 트랜잭션들의 집합을 의미한다. 도 7에 도시된 바와 같이, 우선 CTT를 빈 상태로 초기화한다(701). 역방향으로 로그를 스캔하며(702) 리두를 하는 경우 로그 레코드 타입을 판단하여 트랜잭션 종료 로그인 경우(704), 트랜잭션 인식 번호를 CTT에 저장하고(707), 트랜잭션 시작 로그인 경우(705) CTT로부터 해당 트랜잭션의 일련 번호를 삭제한다(708). 갱신 로그인 경우(706), CTT가 해당 트랜잭션의 일련 번호를 가지고 있으며 이를 리두한다(709). 체크포인트 종료 로그인 경우(703), 대응하는 체크포인트 시작 로그를 읽어 이에 저장된 활동 트랜잭션 리스트로 ATT(aborted transaction table)을 초기화한 후(710) ATT에 존재하는 트랜잭션들 중 CTT에도 존재하는 트랜잭션들을 삭제한다(711). ATT에 남은 각 트랜잭션에 대해서는, 체크포인트 시작 로그로부터 역방향으로 스캔하며 각 갱신 로그들을 언두한다(712).본 발명의 장점 중 한가지는 로그 적용 과정이 한 번의 로그 스캔으로 이루어지도록 한다는 점이다. 즉, 로그들은 로그 끝으로부터 로그들이 생성되었던 순서와는 반대방향으로 스캔된다. 이 경우 어떤 트랜잭션의 갱신 로그 레코드들을 만나기 전에 그 트랜잭션의 종료 로그 레코드를 먼저 만나게 되므로 철회된 트랜잭션의 로그 레코드들은 적용할 필요가 없어진다. 즉, 재시작 과정에서 단지 완료된 트랜잭션의 갱신 로그들만 적용하며 철회된 트랜잭션의 갱신 로그들은 스킵한다. 마찬가지 이유로, 트랜잭션 종료 레코드를 갖고 있지 않는 루저 트랜잭션의 갱신 로그들 역시 그냥 스킵할 수 있다.기존의 물리적 로깅에서는 로그 레코드들이 생성된 순서대로 리두를 해야 하므로 생성된 순서와 같은 방향으로 로그를 스캔한다. 어떤 트랜잭션의 종료 로그 레코드를 만나기 전에 그 트랜잭션의 갱신 로그 레코드들을 만나기 때문에, 그 트랜잭션이 완료된 트랜잭션인지 철회된 트랜잭션인지 미리 알 수 없다. 따라서, 첫 번째 스캔에서는 모두 트랜잭션의 갱신 로그들을 리두한 후, 역방향으로 진행되는 두 번째 스캔에서 철회된 트랜잭션의 로그들을 언두한다.
도 8은 본 발명에서 다른 갱신 연산의 수행을 중지시키지 않은 채 백업을 만드는 퍼지 체크포인팅 과정에 관한 도면이다. 퍼지 체크 포인팅을 상기한 일관성 체크포인팅과는 달리 체크포인팅 도중에도 다른 트랜잭션이나 연산들의 수행을 허용한다. 따라서, 퍼지 체크포인팅이 디퍼런셜 로깅과 함께 사용될 경우, 정확한 회복을 위해서는 두 가지의 동기화 문제가 고려되어야 한다.첫 번째 문제는 체크포인팅과 갱신 연산이 동시에 동일한 페이지를 백업하고 또 갱신하고 있는 경우, 그 페이지는 그 갱신 연산의 갱신 전 이미지와 갱신 후 이미지가 혼합된 채 백업 디스크에 저장되므로 정확한 회복이 불가능하다는 것이다. 이 문제를 해결하기 위해 본 발명은 체크포인팅과 갱신 연산이 접근하려는 페이지의 잠금을 잡은 상태에서 백업하거나 갱신하도록 한다.두 번째 문제는, 어떤 갱신 연산에 대한 로그 레코드가 만들어진 후 그 갱신이 발생한 페이지가 백업 디스크에 저장되었을 때, 시스템 재시작 시 그 로그 레코드를 다시 데이터베이스에 적용하게 되면 정확한 회복이 불가능하다. 즉 사전 이미지와 사후 이미지간의 디퍼런셜 로깅이 적용된 이후 사후 이미지에 다시 디퍼런셜 로깅을 적용해버리는 결과가 나올 수 있는 것이다. 이 문제를 해결하기 위해서 각 로그 레코드들에 대해 재시작 시 그 레코드를 데이터베이스에 적용해야 하는지 아난지를 판단할 수 있는 정보가 각 페이지(809)와 각 로그 레코드마다 "Backup ID"라는 이름으로 저장된다.도 8을 참조하여, 디퍼런셜 로깅을 적용하기 위한 퍼지 체크포인팅 과정을 설명하면 다음과 같다.디퍼런셜 로깅을 적용한 퍼지 체크포인팅 과정에서는 더티 페이지에 대한 이미지를 비동기적으로 백업 디스크에 비동기적으로 반영하는 과정에 있어서, 일반적인 퍼지 체크포인팅 과정과 다른 과정을 수행하게 된다. 도 8에서, 좌측 부분은 종래의 퍼지 체크포인팅 과정과 동일하므로 상세한 설명은 생략하기로 하며, 디퍼런셜 로깅을 적용하기 위해 수행되는 우측 부분에 대해 설명하기로 한다.도 8에 도시된 바와 같이, 우선, 각 페이지에 대해 잠금을 획득한다(800). 잠금을 획득한 상태에서 페이지 내의 "Backup ID" 필드를 현재의 백업 인식 번호로 세팅한다(801).현재 백업 인식 번호에 대응하는 더티 플래그가 세팅되어 있지 않은 경우에는 잠금을 해제한다(805). 현재 백업 인식 번호에 대응하는 더티 플래그가 세팅되어 있으면(802), 현재 백업 인식 번호에 대응하는 더티 플래그를 리셋하고(803), 현재 페이지를 현재 백업 디스크에 비동기적으로 기록한 후(804), 페이지에 대한 잠금을 해제한다(805). 잠금을 해제한 이후에는 종래의 퍼지 체크포인팅과 같은 과정을 진행하게 된다.도 9는 디퍼런셜 로깅이 도 8의 퍼니 체크포인팅과 함께 사용되기 위한 갱신 과정에 관한 도면이다.도 9에 도시된 바와 같이, 우선 갱신하려는 페이지에 대한 잠금을 획득한다(901). 상기한 바와 같은 두 가지 동기화 문제를 해결하기 위해, 잠금을 획득한 상태에서, 갱신 로그를 생성하고(902), 페이지 헤더의 "Backup ID" 필드를 로그 헤더로 복사한다(903). 복사가 이루어지면, 페이지를 갱신하고(904), 페이지 헤더의 더티 플래그들을 세팅한다(905). 갱신 로그를 로그 버퍼에 삽입하면(906), 페이지에 대한 잠금을 해제한다(907). 이 과정에서 두 개의 백업에 대해 두 개의 더티 플래그가 각 페이지마다 관리된다.
도10은 퍼지 체크포인팅에 의해 생성된 백업으로부터 데이터베이스를 복구하는 수정된 이중 경로 로그 적용에 관한 도면이다. 도 3의 이중 경로 로그 적용에 비해 도 10이 다른 점은 체크포인팅 시작 로그 레코드부터 동일한 체크포인팅의 체크포인팅 종료 로그 레코드 사이에 기록된 로그 레코드들에 대해 다른 연산을 수행한다는 점이다. 이 로그 레코드들에 대해서는, 페이지에 저장된 "Backup ID"와 로그 레코드에 저장된 "Backup ID"를 비교한다. 이 두 값이 동일하다면, 그 페이지가 백업되기 전에 그 로그 레코드가 생성되었다는 것을 의미하므로 로그 레코드를 페이지에 적용하지 않는다. 그러나, 만약 두 값이 다르다면, 반대의 경우를 의미하므로 로그 레코드를 페이지에 적용한다(1002). 체크포인트 종료 로그인 경우에는 도 3과 동일한 과정을 진행한다(1001).도11은 본 발명에서 퍼지 체크포인팅에 의해 생성된 백업으로부터 데이터베이스를 복구하는 수정된 단일 경로 로그 적용에 관한 도면이다. 도 7의 단일 경로 로그 적용에 비해 도 11이 다른 점은 체크포인팅 시작 로그 레코드부터 동일한 체크포인팅의 체크포인팅 종료 로그 레코드 사이에 기록된 로그 레코드들에 대해 다른 연산을 수행한다는 점이다. 이 로그 레코드들에 대해서는, 페이지에 저장된 "Backup ID"와 로그 레코드에 저장된 "Backup ID"를 비교한다(1001). 이 두 값이 동일하고 또한 그 로그 레코드가 완료된 트랜잭션의 로그라면, 그 레코드는 리두되어야 한다(1103). 만약 두 값이 서로 다르고 그 로그 레코드가 철회된 트랜잭션의 로그라면, 그 레코드는 언두되어야 한다(1002). 나머지 경우에 대해서는 로그 레코드를 스킵한다.
도12는 본 발명에서 로그 레코드들을 복수 개의 로그 디스크들에 분배하여 병렬적 로깅을 가능케 하는 로깅 구조의 한 실시에 관한 도면이다. 물리적 로깅과 달리, 디퍼런셜 로깅은 그 회복 연산이 교환적이고 결합적이기 때문에 임의의 로그 디스크로 로그 레코드들을 자유롭게 분배하더라도 오버헤드 없이 재시작할 수 있다. 이 실시에서는, 로그 레코드들이 트랜잭션 식별 번호를 기준으로 복수 개의 로그 디스크에 분배되며 각 로그 디스크(1203)들은 서로 다른 로그 관리자(1201)와 로그 버퍼(1202)를 갖는다. 어떤 트랜잭션이 시작되면, 로그 관리자는 가장 적게 부하가 걸린 로그 디스크로 그 트랜잭션을 할당하며, 추후에 그 트랜잭션에서 발생하는 로그 레코드들은 할당된 로그 디스크에 저장된다.도13은 본 발명에서 복수 개의 로그 디스크들로부터 병렬적으로 재시작 하는 재시작 구조의 한 실시에 관한 도면이다. 도 2에서 언급된 바와 같이 재시작 과정은 BR, BP, LR, LP의 네 단계로 구성된다. 이 실시에서는 재시작 속도를 높이기 위해 세 가지 종류의 병렬화를 도입한다. 첫 번째는 다른 백업 로더(BL)(1302)를 각 백업 디스크(1307)마다 생성하여 파이프라인으로 BR(1302)과 BP(1301)를 수행하는 방법이다. 이때 각 BL들을 서로 독립적으로 동작한다. 두 번째는 다른 로그 로더(LL)(1305)를 각 로그 디스크(1308)마다 생성하여 파이프라인으로 LR(1306)과 LP(1304)를 수행하는 방법이다. 이때 각 LL들을 서로 독립적으로 동작한다. 세 번째는 BL과 LL 마저도 동시에 수행되도록 하는 방법이다.도14는 본 발명에서 복수 개의 로그 디스크 및 백업 디스크를 사용하여 가능한 빠르게 데이터베이스를 재시작 할 수 있는 병렬적 재시작 과정에 관한 도면이다. 우선 데이터베이스를 0으로 초기화한다(1401). 0은 XOR 연산의 항등원이기 때문에, 백업 데이터를 주 메모리로 복사하는 대신 XOR 연산을 수행함으로써 BP 프로세스를 수행할 수 있도록 한다. 다음으로, 하나의 백업 디스크와 하나의 로그 디스크에 대해 각각 하나의 BL과 하나의 LL이 생성되어 독립적으로 동작한다 (1402, 1403).
도15는 도14의 병렬적 재시작 과정에서 사용되는 백업 로더 (BL) 모듈의 한 실시에 관한 도면이다. BL은 BR 프로세스(1504)와 BP 프로세스(1502)를 파이프라인으로 수행한다. BR 프로세스은 백업 디스크(1505)에서 각 페이지들을 읽어 페이지 버퍼(1503)에 저장하고, BP 프로세스는 그 버퍼에서 한 페이지씩 읽어서 주 메모리 데이터베이스에 XOR 연산을 통해 적용한다(1501).도16은 시스템 재시작 시 동일한 시간 동안 하나의 프로세서가 처리할 수 있는 로그량보다 하나의 디스크가 전송할 수 있는 로그량이 많을 때, 도14의 병렬적 재시작 과정에서 사용되는 로그 로더 (LL) 모듈의 한 실시에 관한 도면이다. 이 실시에서는 복수 개의 LP 프로세스들(1602)이 동시에 수행된다. LL은 LR과 LP 프로세스 외에도 LP 프로세스가 읽어들인 로그 레코드들을 복수 개의 LP 프로세스들에게 분배해주는 프로세스(1604)를 포함한다. 이때 각각의 LP 프로세스들은 이중 경로 로그 적용인 경우에는 LTT를, 단일 경로 로그 적용인 경우에는 CTT와 ATT를 독립적으로 관리한다(1601).도17은 시스템 재시작 시 동일한 시간 동안 하나의 프로세서가 처리할 수 있는 로그량보다 하나의 디스크가 전송할 수 있는 로그량이 적을 때, 도14의 병렬적 재시작 과정에서 사용되는 로그 로더(LL) 모듈의 한 실시에 관한 도면이다. 도 16의 실시에서, 디스패처 프로세서는 LP 프로세스가 증가할수록 성능상의 병목이 될 수 있다. 또한 각각의 로그 레코드 큐에 대해 로그를 입력하고 출력하는 과정에서 잠금을 잡고 풀어야 하는 오버헤드가 존재한다. 이러한 문제들을 해결하기 위해, 이 실시에서는 LP 프로세서들이 로그 버퍼에 저장된 각 로그 레코드가 포함하고 있는 트랜잭션 식별 번호를 읽어 어떤 LP 프로세스로 할당되어야 할지 결정하도록 한다. 한 예로, 3 개의 LP 프로세스가 존재할 경우 첫 번째 프로세스는 트랜잭션 식별번호를 3으로 나누어 0이 남는 로그 레코드들만 가져가도록 할 수 있다. 이 실시에서 각 로그 버퍼는 하나의 카운터를 갖는데, 이 카운터는 LR 프로세스가 로그 버퍼에 로그를 입력할 때마다 리셋하도록 한다. 그리고 LP 프로세스가 그 읽어들인 버퍼 페이지를 한 번 스캔하게 되면 1 씩 증가하도록 하는데, 카운터의 값이 LP 프로세스의 개수와 같게 되었을 때 그 버퍼 페이지를 버릴 수 있다.상기에서는 본 발명의 바람직한 실시예를 기준으로 그 내용을 기술하였지만, 본 발명은 이 실시에만 국한되지 않는다.
본 발명에서 새롭게 제안하는 기법인 디퍼런셜 로깅을 이용할 경우 로깅 성능과 재시작 성능의 현격한 향상을 기대할 수 있다. 디퍼런셜 로깅이 그러한 성능 향상을 가능케 하는 가장 큰 이유는 디퍼런셜 로깅의 교환성과 결합성에 있다. 복수의 로그 디스크와 다중 프로세서가 존재하는 환경에서 기존의 로깅 방식을 사용할 경우 정확한 회복을 위해서는 로깅 시 복수의 로그 디스크를 충분히 활용할 수 없거나 재시작 시 로그들의 생성 순서 파악을 위한 오버헤드가 존재한다. 그러나, 디퍼런셜 로깅을 사용할 경우 로그들을 임의로 로그 디스크에 분배할 수 있으므로 복수의 로그 디스크를 충분히 활용할 수 있을 뿐만 아니라 재시작 시에도 로그 생성 순서 파악을 위한 오버헤드가 없다. 그리고, 재시작 시 각 로그 디스크간의 병렬적인 재시작이 가능할 뿐만 아니라 로그를 처리하는 과정과 백업 데이터베이스를 메모리로 올리는 과정을 병렬적으로 수행할 수 있기 때문에 재시작 시간이 크게 줄어든다.
또한, 디퍼런셜 로깅에서는 리두와 언두간의 구분이 없으므로 단일 경로 재시작 기법이 가능하다. 이러한 재시작 기법을 쓸 경우 CLR을 만들 필요가 없고, 퍼지 체크포인트 중이 아니라면 트랜잭션 수행 중 취소된 것들에 대해서는 로그를 디스크에 저장할 필요가 없어진다. 따라서, 단일 경로 재시작 기법은 재시작 성능의향상 뿐만 아니라, 트랜잭션 취소율이 높은 환경에서 로깅 성능의 향상에도 기여할 수 있다.
디퍼런셜 로깅은 변경 전 이미지와 변경 후 이미지를 모두 저장하는 물리적 로깅과는 달리 이들 간의 차이만을 저장하므로 물리적 로깅에 비해 로그량을 절반 가까이 줄일 수 있다. 또한, 디퍼런셜 로그는 변경된 부분만 비트 1로 나타나기 때문에 RLE(Run Length Encoding)를 사용하면 빠른 속도로 높은 압축률을 얻을 수 있다. 이러한 로그량의 감소는 로깅 성능과 재시작 성능의 향상에 기여할 수 있다.
이상과 같은 디퍼런셜 로깅의 발명은 전자 상거래 서버, 공정 제어, 통신 시스템 등에서 사용되는 주 메모리 데이터 관리 시스템에 활용되어 로깅 및 재시작 성능을 크게 향상시킬 수 있을 것으로 기대된다.

Claims (36)

  1. 데이터베이스를 주 메모리에 저장하며, 주 메모리 데이터베이스에 대한 병렬적 회복을 위해 로그 레코드들을 저장하기 위한 하나 또는 복수 개의 로그디스크들과, 주 메모리 데이터베이스를 저장하기 위한 하나 또는 복수개의 백업 디스크를 포함하고 있는 주 메모리 트랜잭션 처리 시스템의 로깅 방식에 있어서, 로그 레코드는 어떤 갱신 연산이 수행될 경우 이에 대한 갱신 전 이미지와 갱신 후 이미지간의 XOR 결과로 이루어지며, 상기 로그 레코드와 데이터베이스 이미지간의 XOR 연산을 통해 시스템을 복구하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  2. 제 1항에 있어서, 상기 데이터베이스는 복수 개의 고정 크기를 가진 페이지들로 구성되는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법.
  3. 제 1항에 있어서, 상기 로그 레코드의 로그 헤더는 로그 순차 번호를 저장하는 "LSN(Log Sequence Number)", 해당 로그 레코드를 생성한 트랜잭션의 일련 번호를 저장하는 "TID(Transaction ID)", 동일한 트랜잭션에 의해 가장 최근에 생성된 로그의 일련 번호를 저장하는 "Previous LSN", 로그 레코드의 타입을 저장하는 "Type", 퍼지 체크포인팅과의 사용을 가능하게 하기 위해 로그 레코드와 갱신된 페이지 사이의 관계를 저장하는 "Backup ID", 갱신된 페이지의 일련 번호를 저장하는 "Page ID", 갱신된 페이지 내에서 갱신된 영역을 나타내기 위한 시작 옵셋을 저장하는 "Offset", 및 갱신된 영역의 크기를 저장하는 "Size"를 포함하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  4. 제 1항에 있어서, 상기 XOR 연산을 통한 시스템 복구는 체크포인팅 기법을 이용하여 이루어지는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  5. 제 4항에 있어서 상기 체크포인팅은 트랜잭션 일관성 체크포인팅 방식임을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  6. 제 4항에 있어서 상기 체크포인팅은 연산 일관성 체크포인딩 방식임을 특징으로 하는 주 메모리 데이터베이스를 복구하는 것을 특징으로 하는 방법.
  7. 제 4항에 있어서, 상기 체크포인팅은 퍼지 체크포인팅 방식임을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  8. 제 4항에 있어서, 상기 체크포인팅을 이용한 시스템 복구 과정은 하나 또는 복수 개의 백업 디스크로부터 백업 데이터를 주 메모리로 로딩하는 단계 및 하나 또는 복수 개의 로그 디스크로부터 로그를 주 메모리로 로딩하는 단계를 포함하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  9. 제 8항에 있어서, 상기 백업 데이터를 주 메모리로 로딩하는 단계 및 로그를 주 메모리로 로딩하는 단계는 데이터베이스를 파티셔닝(partitioning)하여 복수 개의 백업 디스크에 병렬적으로 체크포인팅을 수행하고 또한 병렬적으로 로딩하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  10. 제 8항에 있어서, 상기 백업 데이터를 주메모리로 로딩하는 단계 및 로그를 주 메모리로 로딩하는 단계는 하나 또는 복수개의 로그 디스크로부터 로그 레코드들을 읽고, 이들을 이중 경로 방식으로 적용하여 주 메모리 데이터베이스를 복구하는 것을 특징으로 하는 방법.
  11. 제 10항에 있어서, 상기 이중 경로 방식을 적용하여 로그 레코드들을 읽는 단계는 파이프라인으로 수행하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법..
  12. 제 10항에 있어서, 상기 로그 레코드들을 읽는 단계와 이들을 적용하는 과정은 파티셔닝에 의해 병렬적으로 수행하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  13. 제 10항에 있어서, 상기 로그 레코드들을 읽는 단계와 이들을 적용하는 단계는 파이프라인으로 수행되고, 파티셔닝에 의해 병렬적으로 수행되는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  14. 제 8항에 있어서, 상기 로그를 주 메모리로 로딩하는 단계는 하나 또는 복수 개의 로그 디스크로부터 로그 레코드들을 읽고, 이들을 단일 경로 방식으로 적용하며 주 메모리 데이터베이스를 복구하는 것을 특징으로 하는 방법.
  15. 제 14항에 있어서 로그 레코드들을 읽고, 단일 경로 방식으로 이들을 적용하는 단계는 파이프라인으로 수행하는 것을 특징으로 하는 주 메모리 데이터베이스를 복구하는 것을 특징으로 하는 방법.
  16. 제 14항에 있어서 상기 로그 레코드들을 읽고 단일 경로 방식으로 이들을 적용하는 단계는 파티셔닝에 의해 병렬적으로 수행하는 것을 특징으로 하는 주 메모리 데이터베이스를 복구하는 것을 특징으로 하는 방법.
  17. 제 14항에 있어서 상기 로그 레코드들을 읽고 이들을 적용하는 단계는 파이프라인으로 수행되고, 파티셔닝에 의해 병렬적으로 수행되는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  18. 제 8항에 있어서, 상기 체크포인팅을 이용한 시스템 복구 과정 전에 미리 주 메모리 데이터베이스 영역을 0으로 초기화하는 단계를 더 포함하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  19. 제 18항에 있어서, 상기 백업 데이터를 주 메모리로 로딩하는 단계는 하나 또는 복수개의 백업 디스크로부터 백업 데이터들을 읽고, 이들을 백업 데이터와 주 메모리 데이터베이스간의 XOR 연산을 통해 적용하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  20. 제 19항에 있어서, 상기 백업 데이터를 읽고 백업 데이터를 적용하는 단계는 파이프라인으로 수행하는 것을 특징으로 하는 주 메모리 데이터베이스를 복구하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적 회복연산을 위한 디퍼런셜 로깅 방법.
  21. 제 19항에 있어서, 상기 백업 데이터를 읽고 이를 적용하는 단계는 파티셔닝에 의해 병렬적으로 수행하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적으로 회복연산을 위한 디퍼런셜 로깅 방법.
  22. 제 19항에 있어서, 상기 백업 데이터를 읽고 이를 적용하는 단계는 파티셔닝에 의해 병렬적으로 수행하고, 파이프라인으로 수행하는 것을 특징으로 하는 주 메모리 데이터 관리 시스템에서 병렬적으로 회복연산을 위한 디퍼런셜 로깅 방법.
  23. 제 19항에 있어서, 상기 백업 데이터를 로딩하는 단계 및 로그를 로딩하는 단계는 병렬화하는 것을 특징으로 하는 방법.
  24. 데이터베이스를 저장하기 위한 주 메모리, 주 메모리 데이터베이스의 병렬적 회복을 위한 로그 레코드들을 저장하는 하나 또는 복수 개의 로그 디스크, 주 메모리 데이터베이스의 복사본을 저장하는 하나 또는 복수 개의 백업 디스크, 어떤 갱신 연산이 수행될 경우 이에 대한 갱신 전 이미지와 갱신 후 이미지간의 XOR 결과를 로그 본체에 저장하는 로그를 생성하기 위한 수단, 및 디퍼런셜 로그와 데이터베이스 이미지간의 XOR로 이루어지며, 디퍼런셜 로그 레코드와 데이터베이스 이미지간의 XOR 연산을 통해 시스템을 복구하는 수단을 포함하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  25. 제 24항에 있어서, 상기 데이터베이스는 복수 개의 고정 크기를 가진 페이지들을 포함하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  26. 제 24항에 있어서, 하나 또는 복수 개의 백업 디스크에 데이터베이스를 백업하는 체크포인팅 수단을 더 포함하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  27. 제 26항에 있어서, 상기 체크포인팅 수단은 트랜잭션 일관성 체크포인팅 방식을 사용하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  28. 제 26항에 있어서, 상기 체크포인팅 수단을 연산 일관성 체크포인팅 방식을 사용하는 것을 특징으로 하는 주메모리 트랜잭션 처리 시스템.
  29. 제 26항에 있어서, 상기 체크포인팅 수단은 퍼지 체크포인팅 방식을 사용하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  30. 제 26항에 있어서, 상기 체크포인팅 수단은 재시작 과정 시 하나 또는 복수 개의 백업 디스크로부터 백업 데이터를 주 메모리로 로딩하는 수단 및 하나 또는 복수 개의 로그 디스크로부터 로그를 주 메모리로 로딩하는 수단을 포함하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  31. 제 30항에 있어서, 상기 백업 데이터를 주 메모리로 로딩하는 수단을 하나 또는 복수 개의 백업 디스크로부터 백업 데이터들을 읽는 수단과, 이들을 백업 데이티와 주 메모리 데이터베이스간의 XOR 연산을 통해 적용하는 수단을 포함하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  32. 제 30항에 있어서, 상기 로그를 로딩하는 수단은 로그 레코드들을 하나 또는 복수 개의 로그 디스크로부터 읽는 수단과 읽은 로그 레코드들을 이중 경로로 주 메모리 데이터베이스에 적용하는 수단을 포함하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  33. 제 30항에 있어서 상기 로그를 로딩하는 수단은 로그 레코드들을 하나 또는 복수 개의 로그 디스크로부터 읽는 수단과 읽은 로그 레코드들을 단일 경로로 주 메모리 데이터베이스에 적용하는 수단을 포함하는 것을 특징으로 하는 주 메모리 트랜잭션 처리 시스템.
  34. 주 메모리 데이터베이스의 병렬적 회복을 위한 로그 레코드들을 저장하는 하나 또는 복수 개의 로그 디스크들과 주 메모리 데이터베이스의 한 복사본을 저장하는 하나 또는 복수 개의 백업 디스크를 구비한 시스템에서 그리고 주 메모리 트랜잭션 처리 시스템에서 어떤 갱신 연산이 수행될 경우 이에 대한 갱신 전 이미지와 갱신 후 이미지간의 XOR 결과를 로그 본체에 저장하는 로그를 생성하는 기능 및 상기 생성된 로그 레코드와 데이터베이스 이미지간의 XOR 연산을 통해 시스템을 복구하는 기능을 실현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  35. 제 34항에 있어서 상기 기록 매체가 CD임을 특징으로 하는 매체.
  36. 제 34항에 있어서 상기 기록 매체가 자기 테이프임을 특징으로 하는 매체.
KR10-2000-0031166A 2000-06-07 2000-06-07 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치 KR100390853B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR10-2000-0031166A KR100390853B1 (ko) 2000-06-07 2000-06-07 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
JP2002503047A JP4813004B2 (ja) 2000-06-07 2000-12-28 主メモリートランザクション処理システムで並列的な回復演算のためのディファレンシャルロギング方法及び装置
AT00987814T ATE292304T1 (de) 2000-06-07 2000-12-28 Verfahren und system zum hochparallelen protokollierungs- und wiederherstellungsbetrieb in hauptspeicher- transaktionsverarbeitungssystemen
EP00987814A EP1320802B1 (en) 2000-06-07 2000-12-28 A method and system for highly-parallel logging and recovery operation in main-memory transaction processing systems
PCT/KR2000/001542 WO2001095640A2 (en) 2000-06-07 2000-12-28 A method and system for highly-parallel logging and recovery operation in main-memory transaction processing systems
DE60019173T DE60019173T2 (de) 2000-06-07 2000-12-28 Verfahren und system zum hochparallelen protokollierungs- und wiederherstellungsbetrieb in hauptspeicher-transaktionsverarbeitungssystemen
AU2001224081A AU2001224081A1 (en) 2000-06-07 2000-12-28 A method and system for highly-parallel logging and recovery operation in main-memory transaction processing systems
CNB00819629XA CN1205550C (zh) 2000-06-07 2000-12-28 主存储器事务处理系统中的高度并行日志和恢复操作的方法和系统
US09/768,301 US7065537B2 (en) 2000-06-07 2001-01-25 Method and system for highly-parallel logging and recovery operation in main-memory transaction processing systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0031166A KR100390853B1 (ko) 2000-06-07 2000-06-07 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20010112529A KR20010112529A (ko) 2001-12-20
KR100390853B1 true KR100390853B1 (ko) 2003-07-10

Family

ID=19671343

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0031166A KR100390853B1 (ko) 2000-06-07 2000-06-07 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치

Country Status (9)

Country Link
US (1) US7065537B2 (ko)
EP (1) EP1320802B1 (ko)
JP (1) JP4813004B2 (ko)
KR (1) KR100390853B1 (ko)
CN (1) CN1205550C (ko)
AT (1) ATE292304T1 (ko)
AU (1) AU2001224081A1 (ko)
DE (1) DE60019173T2 (ko)
WO (1) WO2001095640A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130106258A (ko) * 2012-03-19 2013-09-27 삼성전자주식회사 이동식 저장 장치 및 이를 포함하는 시스템
US9075758B2 (en) 2012-03-19 2015-07-07 Samsung Electronics Co., Ltd. Removable storage device with transactional operation support and system including same

Families Citing this family (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7114049B2 (en) 1997-01-08 2006-09-26 Hitachi, Ltd. Adaptive remote copy in a heterogeneous environment
JP4689137B2 (ja) 2001-08-08 2011-05-25 株式会社日立製作所 リモートコピー制御方法、及びストレージシステム
US7167962B2 (en) 1999-08-19 2007-01-23 Hitachi, Ltd. Remote copy for a storage controller with reduced data size
US7194590B2 (en) * 2001-02-28 2007-03-20 Hitachi, Ltd. Three data center adaptive remote copy
US7213114B2 (en) 2001-05-10 2007-05-01 Hitachi, Ltd. Remote copy for a storage controller in a heterogeneous environment
US7143252B2 (en) * 2001-05-10 2006-11-28 Hitachi, Ltd. Storage apparatus system and method of data backup
US20030041097A1 (en) * 2001-07-11 2003-02-27 Alexander Tormasov Distributed transactional network storage system
US7565379B2 (en) * 2002-08-01 2009-07-21 Edwina Lu Preventing change cycling using rules and redo tags in a redo log
JP3974538B2 (ja) 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
CA2422176C (en) * 2003-03-14 2009-07-21 Ibm Canada Limited - Ibm Canada Limitee Method and apparatus for interrupting updates to a database to provide read-only access
US7380082B2 (en) * 2003-03-25 2008-05-27 Emc Corporation Reading virtual ordered writes at local storage device
US7181476B2 (en) 2003-04-30 2007-02-20 Oracle International Corporation Flashback database
US7484096B1 (en) 2003-05-28 2009-01-27 Microsoft Corporation Data validation using signatures and sampling
US7457791B1 (en) 2003-05-30 2008-11-25 Microsoft Corporation Using invariants to validate applications states
US8365193B2 (en) * 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US7281023B2 (en) * 2003-12-15 2007-10-09 At&T Knowledge Ventures, L.P. Architecture of database application with robust online recoverability
US8140348B2 (en) * 2004-01-30 2012-03-20 International Business Machines Corporation Method, system, and program for facilitating flow control
US7366801B2 (en) * 2004-01-30 2008-04-29 International Business Machines Corporation Method for buffering work requests
US7650606B2 (en) * 2004-01-30 2010-01-19 International Business Machines Corporation System recovery
US20050181789A1 (en) * 2004-02-10 2005-08-18 Yach David P. Apparatus, and associated method, for locking and identifying a change list used pursuant to database synchronization operations in a radio communication system
US7334002B2 (en) * 2004-02-27 2008-02-19 Microsoft Corporation System and method for recovery units in databases
CN100375047C (zh) * 2004-03-17 2008-03-12 联想(北京)有限公司 一种计算机日志的管理方法
JP4452533B2 (ja) * 2004-03-19 2010-04-21 株式会社日立製作所 システムおよび記憶装置システム
US7484051B2 (en) * 2004-06-14 2009-01-27 International Business Machines Corporation Apparatus, system and method for reliably updating a data group in a read-before-write data replication environment using a comparison file
US7797483B1 (en) * 2004-06-23 2010-09-14 Emc Corporation Write interceptor for tracking changes to disk image
US20060020594A1 (en) * 2004-07-21 2006-01-26 Microsoft Corporation Hierarchical drift detection of data sets
US7613875B2 (en) * 2004-12-29 2009-11-03 Intel Corporation Apparatus and method for incremental package deployment
CN100369038C (zh) * 2005-02-24 2008-02-13 中兴通讯股份有限公司 一种实时数据库事务操作的实现方法
US8380686B2 (en) * 2005-03-14 2013-02-19 International Business Machines Corporation Transferring data from a primary data replication appliance in a primary data facility to a secondary data replication appliance in a secondary data facility
US8396746B1 (en) * 2005-03-18 2013-03-12 Google Inc. Privacy preserving personalized advertisement delivery system and method
US7555502B2 (en) * 2006-03-10 2009-06-30 Oracle International Corporation Detecting database events using recovery logs
CA2652115C (en) * 2006-05-12 2015-11-17 Goldengate Software, Inc. Apparatus and method for read consistency in a log mining system
JP4842703B2 (ja) * 2006-05-18 2011-12-21 株式会社日立製作所 ストレージシステム及びそのリカバリボリューム作成方法
CN100449501C (zh) * 2006-09-21 2009-01-07 上海交通大学 计算机网络数据恢复的方法
US7765361B2 (en) * 2006-11-21 2010-07-27 Microsoft Corporation Enforced transaction system recoverability on media without write-through
EP2102748B1 (en) * 2006-12-22 2012-02-01 International Business Machines Corporation System and method for recovery of memory transactions
WO2008084488A2 (en) * 2007-01-11 2008-07-17 Red Bend Ltd. Method and system for in-place updating content stored in a storage device
US20080222111A1 (en) * 2007-03-07 2008-09-11 Oracle International Corporation Database system with dynamic database caching
US7925630B1 (en) * 2007-03-30 2011-04-12 Symantec Corporation Method of inserting a validated time-image on the primary CDP subsystem in a continuous data protection and replication (CDP/R) subsystem
US9027025B2 (en) * 2007-04-17 2015-05-05 Oracle International Corporation Real-time database exception monitoring tool using instance eviction data
CN100464334C (zh) * 2007-06-06 2009-02-25 中国工商银行股份有限公司 应用于数据仓库的数据增量备份与恢复的方法
CN100454265C (zh) * 2007-06-07 2009-01-21 华为技术有限公司 镜像恢复方法、存储设备及网络系统
CN101251814B (zh) * 2008-02-04 2010-04-07 浙江大学 一种在操作系统中实现可信恢复系统的方法
EP2248027A4 (en) * 2008-02-29 2011-05-18 Toshiba Kk STORAGE SYSTEM
JP2009211215A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
CN101282207B (zh) * 2008-06-05 2012-06-27 成都市华为赛门铁克科技有限公司 数据更新的记录方法、装置和数据备份系统
KR101583716B1 (ko) * 2009-01-30 2016-01-08 삼성전자주식회사 비트 로깅을 이용한 데이터 복구 방법 및 그 장치
US9128895B2 (en) * 2009-02-19 2015-09-08 Oracle International Corporation Intelligent flood control management
US8281185B2 (en) * 2009-06-30 2012-10-02 Oracle America, Inc. Advice-based feedback for transactional execution
CN101625655B (zh) * 2009-08-20 2011-05-25 华中科技大学 一种内存数据库的并行恢复方法
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US8504526B2 (en) 2010-06-04 2013-08-06 Commvault Systems, Inc. Failover systems and methods for performing backup operations
US11449394B2 (en) 2010-06-04 2022-09-20 Commvault Systems, Inc. Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources
US8930321B2 (en) 2010-06-30 2015-01-06 Microsoft Corporation Logical recovery with unbundled transaction services
US8589361B2 (en) 2010-08-30 2013-11-19 Oracle International Corporation Reduced disk space standby
US8458530B2 (en) 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
IL208641A0 (en) * 2010-10-12 2010-12-30 Eci Telecom Ltd Method for accelerating start up of a computerized system
CN102456036A (zh) * 2010-10-20 2012-05-16 金蝶软件(中国)有限公司 一种操作撤销方法及系统
US8527546B2 (en) 2010-11-25 2013-09-03 International Business Machines Corporation Generating a checkpoint image for use with an in-memory database
US8688645B2 (en) * 2010-11-30 2014-04-01 Netapp, Inc. Incremental restore of data between storage systems having dissimilar storage operating systems associated therewith
US8868514B2 (en) 2011-01-07 2014-10-21 Microsoft Corporation Transaction support for distributed data
US8818960B2 (en) 2011-03-18 2014-08-26 Microsoft Corporation Tracking redo completion at a page level
US8719232B2 (en) * 2011-06-30 2014-05-06 Verisign, Inc. Systems and methods for data integrity checking
US9155320B2 (en) 2011-07-06 2015-10-13 International Business Machines Corporation Prefix-based leaf node storage for database system
CN103092742B (zh) 2011-10-31 2015-08-19 国际商业机器公司 程序日志记录优化方法和系统
US9092499B2 (en) 2012-01-20 2015-07-28 Blackberry Limited Synchronizing endpoint data stores having disparate schemas
US9003162B2 (en) 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
US9619539B2 (en) * 2012-09-28 2017-04-11 Vmware, Inc. Automated document replication in a distributed computing system
US9129416B2 (en) * 2012-11-14 2015-09-08 Microsoft Technology Licensing, Llc Digital art undo and redo
US9304998B2 (en) 2012-12-19 2016-04-05 Microsoft Technology Licensing, Llc Main-memory database checkpointing
US9501501B2 (en) * 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US9477557B2 (en) * 2013-03-28 2016-10-25 Microsoft Technology Licensing, Llc Transaction processing using torn write detection
US9483361B2 (en) 2013-05-08 2016-11-01 Commvault Systems, Inc. Information management cell with failover management capability
US9519591B2 (en) * 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
CN105900073B (zh) * 2013-08-29 2020-04-10 慧与发展有限责任合伙企业 用于维护事务日志的系统、计算机可读介质和方法
US9246935B2 (en) 2013-10-14 2016-01-26 Intuit Inc. Method and system for dynamic and comprehensive vulnerability management
US9313281B1 (en) 2013-11-13 2016-04-12 Intuit Inc. Method and system for creating and dynamically deploying resource specific discovery agents for determining the state of a cloud computing environment
US9558229B2 (en) * 2013-11-26 2017-01-31 Sap Se Transaction private log buffering for high performance of transaction processing
US9390239B2 (en) 2013-12-20 2016-07-12 Sap Se Software system template protection
US9501345B1 (en) 2013-12-23 2016-11-22 Intuit Inc. Method and system for creating enriched log data
US9323926B2 (en) 2013-12-30 2016-04-26 Intuit Inc. Method and system for intrusion and extrusion detection
CN103793297B (zh) * 2014-01-14 2017-10-20 上海上讯信息技术股份有限公司 基于分发模式的日志保护方法
US20150304343A1 (en) 2014-04-18 2015-10-22 Intuit Inc. Method and system for providing self-monitoring, self-reporting, and self-repairing virtual assets in a cloud computing environment
US9325726B2 (en) 2014-02-03 2016-04-26 Intuit Inc. Method and system for virtual asset assisted extrusion and intrusion detection in a cloud computing environment
US10757133B2 (en) 2014-02-21 2020-08-25 Intuit Inc. Method and system for creating and deploying virtual assets
US9866581B2 (en) 2014-06-30 2018-01-09 Intuit Inc. Method and system for secure delivery of information to computing environments
US9276945B2 (en) 2014-04-07 2016-03-01 Intuit Inc. Method and system for providing security aware applications
US9471439B2 (en) * 2014-03-13 2016-10-18 Sybase, Inc. Systems and methods for reducing load database time
WO2015140842A1 (ja) * 2014-03-20 2015-09-24 日本電気株式会社 システムを監視する情報処理装置及び監視方法
US9245117B2 (en) 2014-03-31 2016-01-26 Intuit Inc. Method and system for comparing different versions of a cloud based application in a production environment using segregated backend systems
US9563518B2 (en) 2014-04-02 2017-02-07 Commvault Systems, Inc. Information management by a media agent in the absence of communications with a storage manager
US11294700B2 (en) 2014-04-18 2022-04-05 Intuit Inc. Method and system for enabling self-monitoring virtual assets to correlate external events with characteristic patterns associated with the virtual assets
CN105022676B (zh) * 2014-04-22 2018-08-17 大唐软件技术股份有限公司 一种内存数据库重做日志文件的恢复方法和装置
US9374389B2 (en) 2014-04-25 2016-06-21 Intuit Inc. Method and system for ensuring an application conforms with security and regulatory controls prior to deployment
US9319415B2 (en) 2014-04-30 2016-04-19 Intuit Inc. Method and system for providing reference architecture pattern-based permissions management
US9900322B2 (en) 2014-04-30 2018-02-20 Intuit Inc. Method and system for providing permissions management
US9330263B2 (en) 2014-05-27 2016-05-03 Intuit Inc. Method and apparatus for automating the building of threat models for the public cloud
US9934008B2 (en) * 2014-06-18 2018-04-03 Netapp, Inc. Methods for facilitating persistent storage of in-memory databases and devices thereof
US20160019117A1 (en) 2014-07-16 2016-01-21 Commvault Systems, Inc. Creating customized bootable image for client computing device from backup copy
US9514211B2 (en) 2014-07-20 2016-12-06 Microsoft Technology Licensing, Llc High throughput data modifications using blind update operations
US10102082B2 (en) 2014-07-31 2018-10-16 Intuit Inc. Method and system for providing automated self-healing virtual assets
US9473481B2 (en) 2014-07-31 2016-10-18 Intuit Inc. Method and system for providing a virtual asset perimeter
CN105376269B (zh) * 2014-08-11 2019-11-26 中国电信股份有限公司 虚拟机存储系统及其实现方法和装置
KR101690282B1 (ko) * 2014-11-12 2016-12-27 주식회사 알티베이스 테이블스페이스 속성 변경 방법 및 그 장치
CN105045679B (zh) * 2015-07-08 2018-01-30 安徽兆尹信息科技股份有限公司 一种用于金融管理网络系统的数据库备份与恢复方法
US9858310B2 (en) * 2015-09-14 2018-01-02 Sap Se Maintaining in-memory database consistency by parallelizing persistent data and log entries
CN105335098B (zh) * 2015-09-25 2019-03-26 华中科技大学 一种基于存储级内存的日志文件系统性能提高方法
US9747174B2 (en) 2015-12-11 2017-08-29 Microsoft Technology Licensing, Llc Tail of logs in persistent main memory
US9965538B2 (en) 2016-01-19 2018-05-08 Microsoft Technology Licensing, Llc Early thread return with secondary event writes
US10140150B2 (en) 2016-02-08 2018-11-27 Microsoft Technology Licensing, Llc Thread diversion awaiting log call return
US10417102B2 (en) 2016-09-30 2019-09-17 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic
CN108228678B (zh) 2016-12-22 2020-10-16 华为技术有限公司 一种多副本数据恢复方法及装置
CN108228382B (zh) * 2018-01-11 2021-08-10 成都信息工程大学 一种针对evenodd码单盘故障的数据恢复方法
US10572184B2 (en) * 2018-01-11 2020-02-25 International Business Machines Corporation Garbage collection in data storage systems
US20190354470A1 (en) * 2018-05-16 2019-11-21 Sap Se Reduced Database Backup Memory Usage
US11200124B2 (en) 2018-12-06 2021-12-14 Commvault Systems, Inc. Assigning backup resources based on failover of partnered data storage servers in a data storage management system
US11416485B2 (en) 2019-03-28 2022-08-16 Sap Se Dynamic query expressions
US11360977B2 (en) 2019-04-01 2022-06-14 Sap Se Selectively allowing query optimization in query processing
CN110543386B (zh) * 2019-09-16 2022-06-10 上海达梦数据库有限公司 一种数据存储方法、装置、设备和存储介质
US11237924B2 (en) 2019-12-11 2022-02-01 Commvault Systems, Inc. Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11635914B2 (en) 2020-07-30 2023-04-25 International Business Machines Corporation Locating data within tape systems using sub dataset headers
US11645175B2 (en) 2021-02-12 2023-05-09 Commvault Systems, Inc. Automatic failover of a storage manager
CN113805798A (zh) * 2021-08-06 2021-12-17 卡斯柯信号有限公司 车载日志的空间优化存储方法、装置、电子设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940015902A (ko) * 1992-12-22 1994-07-22 양승택 트랜잭션 처리시스템의 로그/회복관리방법
JPH0736829A (ja) * 1993-07-19 1995-02-07 Nec Corp トランザクション処理システム
KR19980049353A (ko) * 1996-12-19 1998-09-15 양승택 분산 트랜잭션의 회복방법
US5878414A (en) * 1997-06-06 1999-03-02 International Business Machines Corp. Constructing a transaction serialization order based on parallel or distributed database log files
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
US5375128A (en) * 1990-10-18 1994-12-20 Ibm Corporation (International Business Machines Corporation) Fast updating of DASD arrays using selective shadow writing of parity and data blocks, tracks, or cylinders
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
JPH06266597A (ja) * 1993-03-11 1994-09-22 Fujitsu Ltd ログ取得方式
US5594862A (en) * 1994-07-20 1997-01-14 Emc Corporation XOR controller for a storage subsystem
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
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
US6185577B1 (en) * 1998-06-23 2001-02-06 Oracle Corporation Method and apparatus for incremental undo
US6269381B1 (en) * 1998-06-30 2001-07-31 Emc Corporation Method and apparatus for backing up data before updating the data and for restoring from the backups
US6449623B1 (en) * 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
US6327671B1 (en) * 1998-11-18 2001-12-04 International Business Machines Corporation Delta compressed asynchronous remote copy
US6513093B1 (en) * 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
US6618822B1 (en) * 2000-01-03 2003-09-09 Oracle International Corporation Method and mechanism for relational access of recovery logs in a database system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940015902A (ko) * 1992-12-22 1994-07-22 양승택 트랜잭션 처리시스템의 로그/회복관리방법
JPH0736829A (ja) * 1993-07-19 1995-02-07 Nec Corp トランザクション処理システム
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
KR19980049353A (ko) * 1996-12-19 1998-09-15 양승택 분산 트랜잭션의 회복방법
US5878414A (en) * 1997-06-06 1999-03-02 International Business Machines Corp. Constructing a transaction serialization order based on parallel or distributed database log files

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130106258A (ko) * 2012-03-19 2013-09-27 삼성전자주식회사 이동식 저장 장치 및 이를 포함하는 시스템
US9075758B2 (en) 2012-03-19 2015-07-07 Samsung Electronics Co., Ltd. Removable storage device with transactional operation support and system including same
KR101984495B1 (ko) 2012-03-19 2019-05-31 삼성전자 주식회사 이동식 저장 장치 및 이를 포함하는 시스템

Also Published As

Publication number Publication date
KR20010112529A (ko) 2001-12-20
US7065537B2 (en) 2006-06-20
CN1454349A (zh) 2003-11-05
AU2001224081A1 (en) 2001-12-17
WO2001095640A2 (en) 2001-12-13
ATE292304T1 (de) 2005-04-15
CN1205550C (zh) 2005-06-08
DE60019173D1 (de) 2005-05-04
US20020116404A1 (en) 2002-08-22
EP1320802A2 (en) 2003-06-25
WO2001095640A3 (en) 2002-11-14
DE60019173T2 (de) 2006-01-26
EP1320802B1 (en) 2005-03-30
JP2004501449A (ja) 2004-01-15
JP4813004B2 (ja) 2011-11-09

Similar Documents

Publication Publication Date Title
KR100390853B1 (ko) 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
EP0465019B1 (en) Method and apparatus for managing state identifiers for efficient recovery
EP0465018B1 (en) Method and apparatus for optimizing undo log usage
US6647510B1 (en) Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction
US6154847A (en) Method and system for performing resource updates and recovering operational records within a fault-tolerant transaction-oriented data processing system
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
US5857204A (en) Restoring the state of a set of files
US6873995B2 (en) Method, system, and program product for transaction management in a distributed content management application
US4498145A (en) Method for assuring atomicity of multi-row update operations in a database system
US4945474A (en) Method for restoring a database after I/O error employing write-ahead logging protocols
EP1618475B1 (en) Flashback database
Spector et al. Transactions: A construct for reliable distributed computing
US5745674A (en) Management of units of work on a computer system log
US6944635B2 (en) Method for file deletion and recovery against system failures in database management system
Lee et al. Differential logging: A commutative and associative logging scheme for highly parallel main memory database
US7051051B1 (en) Recovering from failed operations in a database system
US5497487A (en) Merge, commit recovery protocol for real-time database management systems
US6076095A (en) Method of one system of a multisystem environment taking over log entries owned by another system
Paris et al. Voting with regenerable volatile witnesses
KR950011056B1 (ko) 트랜잭션 처리시스템의 로그/회복관리방법
EP0834128B1 (en) Data set backup in a shared environment
Chong et al. Rapid Recovery of Very Large Memory Resident Data Objects
Gukal et al. LU Logging-An E cient Transaction Recovery Method
Ozsu Notes on Database System Reliability
Lewis Redo and Undo

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: 20120619

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20130603

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee