KR100198805B1 - 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법 - Google Patents

분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법 Download PDF

Info

Publication number
KR100198805B1
KR100198805B1 KR1019960056393A KR19960056393A KR100198805B1 KR 100198805 B1 KR100198805 B1 KR 100198805B1 KR 1019960056393 A KR1019960056393 A KR 1019960056393A KR 19960056393 A KR19960056393 A KR 19960056393A KR 100198805 B1 KR100198805 B1 KR 100198805B1
Authority
KR
South Korea
Prior art keywords
transaction
checkpoint
log record
list
empty
Prior art date
Application number
KR1019960056393A
Other languages
English (en)
Other versions
KR19980037615A (ko
Inventor
이진수
김준
박순영
박영철
Original Assignee
정선종
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정선종, 한국전자통신연구원 filed Critical 정선종
Priority to KR1019960056393A priority Critical patent/KR100198805B1/ko
Priority to US08/975,213 priority patent/US5850508A/en
Publication of KR19980037615A publication Critical patent/KR19980037615A/ko
Application granted granted Critical
Publication of KR100198805B1 publication Critical patent/KR100198805B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • 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)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 트랜잭션 처리 시스템에서 고장에 대한 회복 기능 수행시 필요한 일의 양을 줄이기 위해 체크포인트를 수행하는데, 체크포인트 수행시 다른 트랜잭션들의 수행을 일시적으로도 중단시키지 않음으로써 시스템의 성능을 높이는 방식인 퍼지 체크포인트 방식에서 댕글링(dangling) 트랜잭션(들)이 발생하는 오류를 해결할 수 있는 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법에 관해 개시된다.
본 발명에서는 마지막 완성 체크포인터의 체크포인터 시작 로그 레코드가 로깅된 시점과 체크포인트 종료 로그 레코드가 로깅된 시점 사이에 종료한 트랜잭션들에 대해, 분석단계에서 트랜잭션 테이블 초기화 기법을 이용하여 댕글링 트랜잭션이 발생하는 것을 방지한다.

Description

분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
본 발명은 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링(dangling) 트랜잭션 발생 방지 방법에 관한 것으로, 특히 다수 사용자 환경의 트랜잭션 처리 시스템에서 정전 등과 같은 시스템 고장(system failure) 및 디스크가 깨지는 등의 미디어 고장(media failure)에 대한 회복 기능에 관한 것이다.
고장 회복시 필요한 일의 양을 줄이기 위해 체크포인트를 수행하는데, 특히 본 발명은 체크포인트 수행시 다른 트랜잭션들의 수행을 일시적으로도 중단시키지 않음으로써 시스템의 성능을 높이는 방식인 퍼지 체크포인트 방식에 적용된다.
이 분야에서 사용된 종래의 기술들 중에서 TOC(Transaction Oriented Checkpoint)방식, TCC(Transaction Consistent Checkpoint)방식, ACC(ACtion Consistent Checkpoint) 방식 등은 체크포인트가 수행되는 동안에는 다른 트랜잭션 들의 수행이 중단되는 방식들이므로 고려 대상에서 제외키로 한다.
종래에 사용된 퍼지 체크포인트 방식에서는 고장(시스템 고장 및 미디어 고장)에 대한 회복 기능을 수행할 때, 이미 완료한 트랜잭션들 중 일부 트랜잭션(들)의 수행 결과를 취소시키는 오류가 발견되는 데 이런 트랙잭션을 댕글링(dangling) 트랜잭션이라 한다. 이 방식의 오류 동작을 구체적으로 설명하면 다음과 같다.
퍼지 체크포인트는 시스템의 성능 향상을 위하여 트랜잭션들의 수행과 체크포인트 수행을 비동기로 수행할 수 있게 하는 방법이다. 이 방식은 체크포인트 수행시 제일 처음에 체크포인트 시작 로그 레코드를 기록(로깅)하고, 그 후 필요한 작업들을 수행한 뒤 마지막으로 체크포인트 종료 로그 레코드를 기록하고, 회복 기능 지원을 위한 매스터 페이지를 수정/기록함으로써 체크 포인트 프로세스를 끝낸다. 체크포인트를 수행하는 과정에서 트랜잭션 테이블을 검사하여 현재 수행중인(완료 미준비 상태이거나 완료 준비 상태인)트랜잭션들을 취합하여 이를 체크포인트 종료 로그 레코드의 트랜잭션 리스트로 수록하고 그 로그 레코드를 로깅한다. 트랜잭션 테이블에 대한 검사 작업이 트랜잭션들의 간섭(interleaving)없이 수행되는 경우는 정확하게 동작한다. 그러나, 퍼지 체크포인트에서는 그렇지 않은 경우가 발생할 수 있다. 예를 들어, 퍼지 체크포인트 수행과 트랜잭션 T_i의 수행이 아래의 시나리오와 같이 상호 간섭을 일으킬 수 있다.
1. 체크포인트 프로세스가 체크포인트 시작 로그 레코드를 로깅했다.
2. 체크포인트 프로세스가 트랜잭션 테이블에서 트랜잭션 T_i의 수행 상태를 검사하여 트랜잭션 리스트에 등록한 후, 다른 트랜잭션 T_j의 상태를 검사한다.
3. 문맥 교환(context switching)이 발생하여 트랜잭션 T_i를 수행하는 프로세스가 수행되고 T_i는 트랜잭션 종료 로그 레코드를 로깅했다.
4. 체크포인트 프로세스가 다시 수행을 시작하여 트랜잭션 테이블에서 나머지 엔트리들의 검사를 완료하고 체크포인트 종료 로그 레코드를 완성하여 이 로그 레코드를 로그 파일에 기록했다.
5. 체크포인트 프로세스가 매스터 페이지를 변경했다.
6. 정전이 발생했다.
상기 예의 경우, 시스템 고장(정전)에 대한 회복 함수 수행은 다음과 같다. 우선 분석 단계에서 마지막 완성 체크포인트의 체크포인트 시작 로그 레코드부터 로그 레코드들을 분석하며, 트랜잭션 T_i의 트랜잭션 종료 로그 레코드를 만나면 트랜잭션 테이블에서 T_i의 항목을 삭제한다. 그 후 체크포인트 종료 로그 레코드를 만나면 그 로그 레코드의 트랜잭션 리스트에 수록되어 있는 T_i의 상태(완료미준비 상태 또는 완료 준비 상태)로 트랜잭션 테이블에 다시 등록한다. 트랜잭션 T_i에 대한 로그 레코드는 체크포인트 종료 로그 레코드 이후에는 나타나지 않는다. 따라서 회복 함수의 분석 단계를 완료했을 때 T_i는 체크포인트 프로세스가 트랜잭션 테이블에서 T_i의 상태를 검사했을 때의 상황에 따라서 그 상태가 완료 미준비 상태이면 전체 철회 해야 할 트랜잭션으로, 완료 준비 상태이면 완료 준비된 트랜잭션으로 분류된다. 전체 철회 해야 할 트랜잭션으로 분류된 경우, 트랜잭션 T_i는 회복 함수의 취소 단계에서 체크포인트를 수행할 당시에 검사된 T_i의 마지막 로그 레코드부터 차례로(로그의 반대 방향 순서로) 모든 취소 가능한 로그 레코드들을 취소하여 T_i를 강제 종료(abort)시킨다. 즉, 이미 종료(완료 또는 전체 철회)한 트랜잭션을 그 트랜잭션 수행의 중간 과정에서부터 취소시키거나 완료 준비 상태로 만들므로 트랜잭션의 원자성, 일관성, 그리고 지속성이 보장되지 않는다.
이런 트랜잭션(들)(T_i)을 댕글링 트랜잭션이라 부르며, 종래의 퍼지 체크포인트 방식에서는 댕글링 트랜잭션(들)이 생기는 오류가 존재한다.
따라서, 본 발명은 트랜잭션 처리 시스템에서 고장에 대한 회복 기능 수행시 필요한 일의 양을 줄이기 위해 체크포인트를 수행하는데, 체크포인트 수행시 다른 트랜잭션들의 수행을 일시적으로도 중단시키지 않음으로써 시스템의 성능을 높이는 방식인 퍼지 체크포인트 방식에서 댕글링 트랜잭션(들)이 발생하는 오류를 해결해야 하는 기술적 과제를, 분석단계에서 트랜잭션 테이블 초기화 기법을 이용하여 댕글링 트랜잭션 발생 방지 방법을 제공 하는 데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명으로, 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법은 회복 함수의 분석 단계에서 마지막 완성 체크포인트의 체크포인트 종료 로그 레코드 내에 있는 트랜잭션 리스트의 내용으로 트랜잭션 테이블을 초기화하는 단계와, 트랜잭션 테이블에 빈 엔트리가 없을 때 트랜잭션의 수행 상태를 임시로 저장해 두기 위한 Overflow_Trans_list를 빈 상태로 초기화 해 두는 단계와, 처음 나타나는 트랜잭션에 대한 로그 레코드에 대해, 트랜잭션 테이블에 빈 엔트리가 하나도 존재하지 않으면 Overflow_Trans_list 내에 현재 로그 레코드에 대한 트랜잭션의 수행 상태를 임시로 기억시켜 두는 단계와, 미완성 체크포인트 혹은 완성 체크포인트의 체크포인트 종료 로그 레코드내에 들어있는 트랜잭션 리스트는 무시해 버리는 단계와, 분석 단계의 마지막 시점에서 Overflow_Trans_list 가 빈 상태가 아니면, 여기에 기록되어 있는 내용을 트랜잭션 테이블에 등록하는 단계로 이루어진 것을 특징으로 한다.
제1도는 본 발명이 적용되는 하드웨어의 구성도.
제2도는 본 발명이 적용되는 시스템 모듈의 구성도.
제3도는 본 발명이 적용되는 트랜잭션 처리 시스템에서 각 트랜잭션 프로세스의 로깅 동작에 대한 동작 흐름도.
제4도는 본 발명이 적용되는 트랜잭션 처리 시스템에서 체크포인트의 프로세스의 동작 흐름도.
제5도는 본 발명이 적용되는 트랜잭션 처리 시스템에서 회복 함수의 동작 흐름도.
제6도는 본 발명이 사용되는 회복 함수 중 분석 단계의 동작 흐름도.
* 도면의 주요부분에 대한 부호의 설명
11 : 프로세서 12 : 메모리영역
13 : 공유 메모리 영역 14 : 입출력 전용 처리기
15 : 디스크 21 : 사용자
22 : 인터페이스 관리 모듈 23 : 데이터 저장/접근 관리 모듈
24 : 트랜잭션 관리 모듈 25 : 데이터 베이스
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
제1도는 본 발명이 적용되는 하드웨어의 구성도이다.
제1도에서 Pi(i= i = n)(11)는 프로세서, Mem(12)은 주기억장치의 메모리 영역, SM(13)은 메모리내의 공유 메모리 영역, IOP(14)는 입출력 전용 처리기 및 DISK(15)는 보조 기억장치인 디스크이다. 이와 같이 본 발명은 단일 프로세서 혹은 다중 프로세서와 공유 메모리 영역을 포함하는 일반적인 하드웨어 환경에서 작동이 가능하다.
제2도는 본 발명이 적용되는 트랜잭션 처리 시스템 모듈의 구성도이다. 기본적으로 사용자(21)와 시스템을 연결하는 인터페이스 관리 모듈(22), 디스크에 데이터 베이스(25)를 생성하고 처리하는 데이터 저장/접근 관리 모듈(23), 트랜잭션의 동시성 제어와 회복을 담당하는 트랜잭션 관리 모듈(24)로 구성된다.
제3도는 본 발명이 적용되는 트랜잭션 처리 시스템에서 트랜잭션 프로세스(들)의 동작 흐름 중 본 발명을 설명하기 위해 필요한 로깅 동작 부분만을 보여 준다. 로그 레코드를 기록(로깅)하기 위해서는 이 작업의 무결성을 보장해주는 로그 래치를 배타적 모드로 획득한 후(31), 로깅을 수행하고(32), 로그 래치를 해제(반환)한다(33). 그 후 이 로깅 작업의 결과를 트랜잭션 테이블의 해당 엔트리의 해당 부분에 반영해야 하는데, 이를 위해 먼저 해당 트랜잭션 테이블 엔트리의 무결성을 보장해 주는 트랜잭션 래치를 배타적 모드로 획득한 후(34), 엔트리 내의 변경이 필요한 부분을 수정하고(35), 트랜잭션 래치를 해제(반환)한다(36).
제4도는 본 발명이 적용되는 트랜잭션 처리 시스템에서 체크포인트 프로세스의 동작 흐름도이다. 본 발명을 설명하기 위해 필요한 부분만을 보여준다. 체크포인트에서는 먼저 체크포인트 시작 로그 레코드를 로깅한 후, 트랜잭션 테이블의 내용을 검사하여 필요한 것을 수집하여 트랜잭션 리스트로 만들고, 이것을 체크포인트 종료 로그 레코드 내에 포함시켜 로깅한다. 체크포인트 시작 로그 레코드를 로깅할때는 먼저 로깅 작업의 무결성을 보장해주는 로그 래치를 배타적 모드로 획득한 후(41), 체크포인트 시작 로그 레코드를 로깅하고(42), 로그 래치를 해제(반환)한다(43). 그리고 트랜잭션 리스트를 만드는 과정은 트랜잭션 테이블의 각 엔트리에 대해 다음을 수행한다. 먼저 해당 트랜잭션 테이블 엔트리의 무결성을 보장해주는 트랜잭션 래치를 배타적 모드로 획득한 후(44), 엔트리 내의 내용을 검사하여 필요한 부분을 수집하여 트랜잭션 리스트에 등록하고(45), 트랜잭션 래치를 해제(반환)한다(46). 트랜잭션 테이블의 모든 엔트리에 대한 검사(50)을 하여 모든 엔트리에 대한 검사가 끝나면, 완성된 트랜잭션 리스트를 체크포인트 종료 로그 레코드 내에 포함시켜 로깅을 해야 하는데, 먼저 로깅 작업의 무결성을 보장해주는 로그 래치를 배타적 모드로 획득한 후(47), 체크포인트 종료 로그 레코드를 로깅하고(48), 로그 래치를 해제(반환)한다(49).
제5도는 본 발명이 적용되는 트랜잭션 처리 시스템에서 회복 함수에 대한 동작 흐름도이다. 회복 함수는 분석 단계(51), 재수행 단계(52), 취소 단계(53)의 3단계가 순서대로 수행된다.
제1단계는 분석 단계를 수행한다(51). 분석 단계에서 수행하는 작업은 첫째, 다음 단계인 재수행 단계를 시작할 지점(로그레코드)을 결정하는 것과, 둘째, 마지막 단계인 취소 단계에서 취소시킬 트랜잭션(들)을 결정하여 트랜잭션 테이블에 등록해 두는 것인데, 이를 자세히 설명하면 다음과 같다. 마지막 완성 체크포인트의 체크포인트 시작 로그 레코드부터 로그 파일에 기록되어 있는 로그 레코드 들을 순서대로 끝까지 읽어가면서 각 로그 레코드에 대해, 현재 로그 레코드에 해당되는 트랜잭션 테이블엔트리가 존재하지 않으면 트랜잭션 테이블에 엔트리를 만들고, 만약 현재 로그가 트랜잭션 종료 로그 레코드이면 트랜잭션 테이블에서 해당되는 엔트리를 삭제한다.
제2단계는 재수행 단계를 수행한다(52). 앞 단계인 분석 단계의 결과로 본 재수행 단계를 시작할 로그 레코드의 식별자(RedoLSN)가 결정되는데, 식별자는 마지막 완성 체크포인트의 체크포인트 시작 로그 레코드의 LSN(Begin_ChkptLSN)보다 작거나 같은 값이다. 본 재수행 단계Dp서는 식별자(REdoLSN)로부터 시작하여 로그 화일에 기록되어 있는 로그 레코드들을 차례로 끝까지 읽으면서 각 로그 레코드에 대해 만약 재수행 가능한 타입이면 해당 연산을 재수행한다.
제3단계는 취소(undo) 단계를 수행한다(53). 이 단계에서 트랜잭션 테이블에 아직 남아있는 트랜잭션(들)을 취소(rollback)시키는 것이다.
제6도는 본 발명이 적용되는 트랜잭션 처리 시스템에서 회복 함수 중의 분석 단계에 대한 동작 흐름도이다. 본 발명을 설명하기 위해 필요한 부분인, 댕글링 트랜잭션이 발생되는 오류를 없애기 위해 수행하는 동작만을 자세히 설명한다. 그 이외의 부분은 제5도의 설명과 같다.
제1단계; 마지막 완성 체크포인트의 체크포인트 종료 로그 레코드내에 있는 트랜잭션 리스트의 내용으로 트랜잭션 테이블을 초기화 한다(61).
제2단계; 트랜잭션 테이블에 빈 엔트리가 없을 때 트랜잭션의 수행 상태를 임시로 저장해 두기 위한 Overflow_Trans_list를 빈 상태로 초기화 한다(62).
제3단계; 마지막 완성 체크포인트의 체크포인트 종료 로그 레코드부터 시작하여(63) 로그 파일에 기록되어 있는 로그 레코드들을 차례로 끝까지 읽으면서(64) 다음 단계(65)를 수행한다.
제4단계; 현재 로그 레코드가 미완성 체크포인트 혹은 완성 체크포인트의 체크포인트 종료 로그 레코드인가를 검사(65)하여 미완성 체크포인트 혹은 완성 체크포인트의 체크 포인트 종료 로그 레코드이면, 이 로그레코드내에 들어있는 트랜잭션 리스트는 무시해 버린다(66).
제5단계; 현재 로그 레코드가 처음 나타나는 트랜잭션에 대한 로그 레코드인가를 검사(67)하여 처음 나타나는 트랜잭션에 대한 로그 레코드이면, 다음 단계(68)를 수행한다.
제6단계; 트랜잭션 테이블에 빈 엔트리가 존재하면, 현재 로그 레코드에 대한 트랜잭션의 수행 상태를 트랜잭션 테이블의 빈 엔트리에 등록한다(70). 만약 빈 엔트리가 존재하지 않으면, Overflow_Trans_list 내에 현재 로그 레코드에 대한 트랜잭션의 수행상태를 기억시킨다(69). 그리고 다음 로그 레코드를 처리하기 위해 제3단계부터 재수행한다.
제7단계; 제5단계에서 처음 나타나는 트랜잭션에 대한 로그 레코드가 아니면, 다음 단계(71)를 수행한다. 처리할 로그 레코드가 남아 있지 않으면 다음단계(72)를 수행하고, 처리할 로그 레코드가 아직 남아 있으면 이를 처리하기 위해 제3단계부터 재수행한다.
제8단계; 단계(72)에서 Overflow_Trans_list 가 빈(empty)상태가 아니면, 여기에 기록되어 있는 내용을 트랜잭션 테이블에 등록한 후(73) 종료하고, 빈 상태이면 바로 종료하게 된다.
종래의 퍼지 체크포인트 방식에서는 이미 종료(완료 또는 전체 철회)한 트랜잭션을 그 트랜잭션 수행의 중간 과정에서부터 취소 시키거나 완료 준비 상태로 만들므로 트랜잭션의 원자성, 일관성, 그리고 지속성이 보장되지 않는 오류가 존재하였으나, 본 발명을 통해 이러한 댕글링 트랜잭션(들)이 생기는 오류를 제거하였다.
상술한 바와 같이 본 발명에 의하면 다음과 같은 효과를 얻을 수 있다.
1. 퍼지 체크포인트 방식의 장점을 그대로 취할 수 있다. 즉, 체크포인트 수행시 다른 트랜잭션들의 수행을 일시적으로도 중단시키지 않으므로써 트랜잭션 처리시스템의 성능을 높일 수 있다.
2. 종래의 퍼지 체크포인트 방식에서 발생하던 오류인 댕글링 트랜잭셔이 발생하지 않게 함으로써, 고장에 대한 회복을 퍼지 체크포인트 방식으로 정확하게 수행한다.

Claims (3)

  1. 회복 함수의 분석 단계에서 마지막 완성 체크포인트의 체크포인트 종료 로그 레코드내에 있는 트랜잭션 리스트의 내용으로 트랜잭션 테이블을 초기화하는 제1단계와, 트랜잭션 테이블에 빈 엔트리가 없을 때 트랜잭션의 수행 상태를 임시로 저장해 두기 위한 Overflow_Trans_list를 빈 상태로 초기화 하는 제2단계와, 마지막 완성 체크포인트의 체크포인트 종료 로그 레코드부터 시작하여 로그 파일에 기록되어 있는 로그 레코드들을 차례로 끝까지 읽으면서 현재 로그 레코드가 미완성 체크포인트 혹은 완성 체크포인트의 체크포인트 종료 로그 레코드인가를 검사하는 제3단계와, 상기 검사 결과 미완성 체크포인트 혹은완성 체크포인트의 체크포인트 종료 로그 레코드이면, 이 로그 레코드 내에 들어있는 트랜잭션 리스트는 무시해 버리고, 로그 레코드가 아니면, 처음 나타나는 트랜잭션에 대한 로그 레코드인가를 검사하는 제4단계와, 상기 검사 결과 처음나타나는 트랜잭션에 대한 로그 레코드가 아니면, 로그 레코드가 모두 처리되었나를 확인하고, 로그 레코드이면, 트랜잭션 테이블에 빈 엔트리가 있는지를 확인하는 제5단계와, 상기 확인 결과 트랜잭션 테이블에 빈 엔트리가 존재하면, 현재 로그 레코드에 대한 트랜잭션의 수행상태를 트랜잭션 테이블의 빈 엔트리에 등록하고, 빈 엔트리가 존재하지 않으면, Overflow_Trans_list 내에 현재 로그 레코드에 대한 트랜잭션의 수행 상태를 기억시킨 후, 다음 로그 레코드를 처리하기 위해 제3단계부터 재 수행하는 제6단계와, 상기 제5단계에서 처음 나타나는 트랜잭션에 대한 로그 레코드가 남아 있지 않으면 Overflow_Trans_list가 빈 상태 인가를 확인하고, 처리할 로그 레코드가 아직 남아 있으면 이를 처리하기 위해 제3단계부터 재수행하는 제7단계와, 상기 Overflow_Trans_list가 빈(empty)상태가 아니면, 여기에 기록되어 있는 내용을 트랜잭션 테이블에 등록한 후 종료하고, 빈 상태이면 바로 종료하는 제8단계로 이루어진 것을 특징으로 하는 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법.
  2. 제1항에 있어서, 상기 제1단계는 마지막 완성 체크포인트의 체크포인트 종료 로그 레코드 내의 트랜잭션 리스트의 내용으로 먼저 트랜잭션 테이블을 초기화 시키는 단계와, 로그 파일의 로그 레코드들을 검색해 갈 때 상기 미완성 체크포인트 혹은 완성 체크 포인트의 체크포인트 종료 로그 레코드 내에 들어있는 트랜잭션 리스트를 무시해 버리는 단계로 이루어진 것을 특징으로 하는 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법.
  3. 제1항에 있어서, 상기 제2단계는 트랜잭션 테이블에 빈 엔트리가 없을 때 트랜잭션의 수행 상태를 임시로 저장해 두기 위한 Overflow_Trans_list를 빈 상태로 초기화 시키는 단계와, 상기 처음 나타나는 트랜잭션에 대한 로그 레코드에 대해, 트랜잭션 테이블에 빈 엔트리가 하나도 존재하지 않으면 Overflow_Trans_list 내에 현재 로그 레코드에 대한 트랜잭션의 수행 상태를 임시로 기억시켜 두는 단계와, 상기 분석 단계의 마지막 시점에서 Overflow_Trans_list가 빈 상태가 아니면, 여기에 기록되어 있는 내용을트랜잭션 테이블에 등록하도록 하는 것을 특징으로 하는 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법.
KR1019960056393A 1996-11-22 1996-11-22 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법 KR100198805B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019960056393A KR100198805B1 (ko) 1996-11-22 1996-11-22 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
US08/975,213 US5850508A (en) 1996-11-22 1997-11-20 Method of prevention of dangling transaction occurrence using a transaction table initialization technique at an analysis step

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960056393A KR100198805B1 (ko) 1996-11-22 1996-11-22 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법

Publications (2)

Publication Number Publication Date
KR19980037615A KR19980037615A (ko) 1998-08-05
KR100198805B1 true KR100198805B1 (ko) 1999-06-15

Family

ID=19483021

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960056393A KR100198805B1 (ko) 1996-11-22 1996-11-22 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법

Country Status (2)

Country Link
US (1) US5850508A (ko)
KR (1) KR100198805B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020030223A (ko) * 2000-10-16 2002-04-24 주식회사 알라딘소프트 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을지원하기 위한 로깅 및 회복 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100212447B1 (ko) * 1996-11-22 1999-08-02 정선종 재수행 단계에서 종료한 트랜잭션 처리 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
WO2000079415A2 (en) * 1999-06-18 2000-12-28 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US20030004970A1 (en) * 2001-06-28 2003-01-02 Watts Julie Ann Method for releasing update locks on rollback to savepoint
US7499924B2 (en) * 2001-06-28 2009-03-03 International Business Machines Corporation Method for releasing update locks on rollback to savepoint
US6959401B2 (en) * 2001-09-04 2005-10-25 Microsoft Corporation Recovery guarantees for software components
US7047441B1 (en) * 2001-09-04 2006-05-16 Microsoft Corporation Recovery guarantees for general multi-tier applications
US6721815B1 (en) * 2001-09-27 2004-04-13 Intel Corporation Method and apparatus for iTD scheduling
CA2419883A1 (en) * 2003-02-26 2004-08-26 Ibm Canada Limited - Ibm Canada Limitee Discriminatory replay of log files during table space recovery in a database management system
US7181476B2 (en) * 2003-04-30 2007-02-20 Oracle International Corporation Flashback database
US7644050B2 (en) * 2004-12-02 2010-01-05 International Business Machines Corporation Method and apparatus for annotation-based behavior extensions
KR100767599B1 (ko) * 2006-11-13 2007-10-17 (주)제이브이엠 약제 자동 포장기의 정전보상 운전방법 및 장치
AU2014253672B2 (en) 2013-04-19 2019-05-30 Commonwealth Scientific And Industrial Research Organisation Checking undoability of an API-controlled computing system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4697266A (en) * 1983-03-14 1987-09-29 Unisys Corp. Asynchronous checkpointing system for error recovery
US4868744A (en) * 1986-03-03 1989-09-19 International Business Machines Corporation Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
US4878167A (en) * 1986-06-30 1989-10-31 International Business Machines Corporation Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data
JPS63307551A (ja) * 1987-06-08 1988-12-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 先書きロギング型のトランザクシヨン向けシステム中のロールバツク方法
JP2718031B2 (ja) * 1987-07-17 1998-02-25 株式会社日立製作所 履歴情報取得方法
US4945474A (en) * 1988-04-08 1990-07-31 Internatinal Business Machines Corporation Method for restoring a database after I/O error employing write-ahead logging protocols
US5043866A (en) * 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery
US5317731A (en) * 1991-02-25 1994-05-31 International Business Machines Corporation Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
US5333303A (en) * 1991-03-28 1994-07-26 International Business Machines Corporation Method for providing data availability in a transaction-oriented system during restart after a failure
US5280611A (en) * 1991-11-08 1994-01-18 International Business Machines Corporation Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type
JPH07319738A (ja) * 1994-05-23 1995-12-08 Nec Commun Syst Ltd 差分記録方式
JP3593366B2 (ja) * 1994-09-19 2004-11-24 株式会社日立製作所 デ−タベ−ス管理方法
GB2301910B (en) * 1995-06-07 1999-07-21 Ibm Management of units of work on a computer system log
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020030223A (ko) * 2000-10-16 2002-04-24 주식회사 알라딘소프트 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을지원하기 위한 로깅 및 회복 방법

Also Published As

Publication number Publication date
KR19980037615A (ko) 1998-08-05
US5850508A (en) 1998-12-15

Similar Documents

Publication Publication Date Title
US4868744A (en) Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
EP0457473B1 (en) Method for accessing shared data
US5581750A (en) System and method for improving data recovery performance
KR100198805B1 (ko) 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
JP2531776B2 (ja) デ―タベ―スを回復する方法
KR100212447B1 (ko) 재수행 단계에서 종료한 트랜잭션 처리 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
US6578041B1 (en) High speed on-line backup when using logical log operations
US6067550A (en) Database computer system with application recovery and dependency handling write cache
US6185699B1 (en) Method and apparatus providing system availability during DBMS restart recovery
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
JPH0833860B2 (ja) データベースの回復方法
AU2006275736A1 (en) Direct-update software transactional memory
US8108627B2 (en) Array comparison and swap operations
KR20080005387A (ko) 데이터베이스 손상 복구 시스템 및 방법
US5497487A (en) Merge, commit recovery protocol for real-time database management systems
KR100212464B1 (ko) 분석 단계에서 종료한 트랜잭션 리스트를 도입한 댕글링 트랜잭 션 발생 방지 방법
JPH06149485A (ja) データ完結性保証処理方法
US8224798B2 (en) Reducing the number of operations performed by a persistence manager against a persistent store of data items
KR100246540B1 (ko) 허상 트랜잭션의 발생 방지를 위한 트랜잭션로깅 방법 및퍼지 체크포인트 방법
JP2708610B2 (ja) データベースのログ管理処理方式
JPH10232809A (ja) トランザクション処理システム
JPH06214848A (ja) データベース管理システム
JPS63196958A (ja) 障害回復処理方法
GB2301205A (en) Data set backup in a shared environment
dos Santos Evaluation and Demonstration of Instant Recovery Techniques for Transactional Database Systems

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

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee