KR950011056B1 - 트랜잭션 처리시스템의 로그/회복관리방법 - Google Patents

트랜잭션 처리시스템의 로그/회복관리방법 Download PDF

Info

Publication number
KR950011056B1
KR950011056B1 KR1019920025015A KR920025015A KR950011056B1 KR 950011056 B1 KR950011056 B1 KR 950011056B1 KR 1019920025015 A KR1019920025015 A KR 1019920025015A KR 920025015 A KR920025015 A KR 920025015A KR 950011056 B1 KR950011056 B1 KR 950011056B1
Authority
KR
South Korea
Prior art keywords
log
transaction
logging
recovery
buffer
Prior art date
Application number
KR1019920025015A
Other languages
English (en)
Other versions
KR940015902A (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 KR1019920025015A priority Critical patent/KR950011056B1/ko
Publication of KR940015902A publication Critical patent/KR940015902A/ko
Application granted granted Critical
Publication of KR950011056B1 publication Critical patent/KR950011056B1/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

Abstract

내용 없음.

Description

트랜잭션 처리시스템의 로그/회복관리방법
제 1 도는 본 발명이 적용된 트랜잭션 처리시스템의 전체 구성을 나타낸 블럭도.
제 2 도는 트랜잭션 처리시스템의 트랜잭션 모델.
제3a도 내지 제3e도는 본 발명에 따른 로그/회복관리를 설명하기 위한 흐름도.
본 발명은 UNIX System V3.1의 커널수준(kernel level)에서 트랜잭션 처리(Transaction Processing)기능이 수행될 수 있도록 하고, 다중처리 시스템에서 동작 가능한 트랜잭션 처리시스템에 관한 것으로, 특히 트랜잭션 처리시스템의 로그/ 회복관리방법에 관한 것이다.
트랜잭션 처리기능은 화일의 처리를 전부 수행하거나 또는 하나도 수행하지 않는 일관성을 가져야 한다. 이러한 특성을 위해서 트랜잭션의 일관성, 내구성, 원자성, 고립성을 제공해야 한다. 이러한 필요에 따라서, 본 발명은 트랜잭션 기능, Roll-back기능, 사전 이미지 로깅기능, Intent locking기능, 레코드 수준의 잠금기능기능, 회복기능, TPIPC(Transaction Processing Inter-Process Communication) 기능 등을 추가한 트랜잭션 처리 시스템 중 로그/회복관리방법을 제공하는 것을 목적으로 한다.
본 발명의 다른 목적은 하나의 프로세스가 하나의 트랜잭션을 형성하는 단일 트랜잭션 뿐만 아니라 여러개의 프로세스가 클라이언트(client)와 서버(server)의 관계를 이루어 하나의 트랜잭션의 특성을 지원하는 다중 트랜잭션 처리시스템을 제공하는 것이다.
상기한 목적들을 달성하기 위한 본 발명의 트랜잭션 처리시스템의 구성을 살펴보면, trans() 시스템 호출에 의해서 사용자에게 트랜잭션 시작, 종료 및 취소등을 제공하는 트랜잭션 관리 수단과, 화일 시스템의 자료에 대한 연산을 할 경우 동시성 제어를 위한 잠금획득, 해제 및 잠금 관련모드를 제공하는 잠금관리 수단과, 화일의 열기(open), 닫기(close), 읽기(read) 및 쓰기(write)와 같은 화일 연산 관련모드를 제공하는 화일관리 수단과, 다중 트랜잭션 구성시 프로세스간 자료의 교환뿐만 아니라 클라이언트/서버의 관계 형성시 클라이언트가 서버를 초정하는 통로 역할을 하는 TPIPC관리 수단과, 트랜잭션 처리 중 취소에 대비한 갱신전 이미지(Preimage)의 로깅을 수행하여 트랜잭션 취소시 또는 시스템 다운시 화일 시스템을 복구하는 로그/회복관리 수단과, 화일 시스템에 대한 연산시 발생하는 공간 할당/회수 및 디스크 자료의 버퍼링(buffering)을 함과 동시에 필요한 경우 디스크 I/O를 디스크 드라이버에 요청하는 공간/버퍼(space/buffer) 관리 수단으로 구성되는데 제 1 도에 상술한 트랜잭션 처리시스템의 구성 요소들이 도시되어 있다.
제 1 도는 본 발명이 적용된 밀결합 다중 처리 시스템의 커널에 포함되어 있는 트랜잭션 처리시스템의 블록 구조도로서, 참조 부호 U1으로 나타낸 것은 트랜잭션 관리 유니트이고, U2는 잠금관리 유니트, U3는 화일관리 유니트, U4는 TPIPC 관리 유니트, U5는 로그/회복관리 유니트, U6는 공간/버퍼관리 유니트를 각각 나타낸 것이다. 또한, 제 1 도에는 각 유니트간의 작용흐름이 도시되어 있는데 본 발명에서는 이들 중 로그/회복관리방법을 제공한다. 이제부터 첨부된 도면을 참조하면서 본 발명에 따른 로그회복관리 방법에 대해 상세히 설명하였다.
[I. 로그 모듈]
제 1 도에서 로그관리 모듈의 흐름은 아래와 같다. 로그 모듈은 화일관리 유니트(U3) 쓰기 모듈에서 갱신전 이미지의 로깅 요청이 접수되었을때 수행되며(12), 다른 로그 클라이언트의 자료에 대한 로깅 요청도 접수하여 수행된다(3). 즉 로그 클라이언트로 부터 로그 레코드(메세지, 버퍼)를 받아 로그 화일에 기록하는 기능을 하므로 크게 메시지와 버퍼 단위의 로깅을 수행한다(4).
로그관리 모듈의 기능수행 과정은 제3a도 및 제3b도에 나타낸 바와 같으며, 구체적인 설명은 아래와 같다. 제3a도는 화일관리 유니트(U3)의 오픈모듈과 트랜잭션 관리 유니트(U1)의 회복준비 모듈로 부터 로깅요청이 있는 경우 메시지 단위로 로깅을 하는 과정을 나타낸 순서도이다.
먼저 다중처리 운영체제이므로 로깅을 하기 위하여 로그에 세마포어 잠금(semaphores lock)을 건다(501).
실제로 로깅할 로그 레코드의 크기가 300바이트(byte)를 넘어서면(502) 페이지 수를 계산하여(503) 버퍼단위로 로깅을 하며, 그렇지 않으면 메시지만 로깅을 한다.
물론 로깅할 버퍼의 갯수로 로그 영역의 오버플로우를 조사해야 하며(504), 오버플로우가 발생하면(505)로그에 잠금을 풀고(506) 오류 처리로 복귀한다(507).
로그 버퍼에 내용을 모두 복사한 다음(508), 동기적(synchronous)으로 기록)(write)하라고 되어 있으면(509) 동기적 기록을 수행하고(510) 그렇지 않으면 12k의 로그 버퍼들이 다 찬 경우에만(511) 디스크의 로그 영역에 기록한다(512). 로그에 잠금을 푼 후(513)에 복귀한다.
제3b도는 화일관리 유니트(U3)의 쓰기모듈로 부터 로깅 요청이 있는 경우 버퍼 단위로 로깅하는 과정을 나타낸 순서도이다. 먼저 다중처리 운영체제이므로 로깅을 하기 위하여 로그에 세마포어 잠금을 건다(521). 로깅할 버퍼의 갯수로 로그 영역의 오버플로우를 조사해야 하며(522) 오버플로우가 발생하면(523) 로그에 잠금을 풀고(524) 오류를 복귀한다(525). 로그 버퍼에 내용을 모두 로드 주소에 복사한 다음(526), 동기적으로 기록하라고 되어 있으면(527), 동기적 기록을 수행하고(528), 그렇지 않으면 12k의 로그 버퍼들이 다찬 경우에만(529) 디스크의 로그 영역에 기록한다(530). 로그에 잠금을 푼 후(531)에 로그의 기록결과를 조사하고(523) 복귀한다.
[II. 회복 모듈]
제 1 도에서 회복관리 모듈의 흐름은 아래와 같다. 이 모듈은 회복을 위한 준비 및 회복에 관련된 자료구조등을 초기화하는 기능과 화일 시스템의 회복을 처리하는 기능을 하다. 크게 이 모듈의 기능은 세가지로 볼 수 있는데 그중 하나는 화일 시스템이 마운트(mount) 되기 전에 화일 시스템 및 트랜잭션의 상태를 복귀하는 것이고(1), 다른 하나는 시스템이 실행 상태에서 임의의 트랜잭션이 처리 도중 취소되었을때 해당되는 데이타 블록의 로그에 대한 정보를 가지고 갱신전 이미지로 복귀하는 것이며(3), 마지막으로 화일 시스템 복귀시에 사용하기 위하여 아이노드의 상태가 변화되었을때 로깅하는 기능이다(4).
회복관리 모듈만의 흐름도는 제5c도 내지 제5e도에 나타낸 바와 같으며, 구체적인 설명은 아래와 같다. 제5c도는 화일 시스템 및 트랜잭션의 상태를 복귀하는 과정을 나타낸 순서도이다. 먼저 회복시에 사용되는 로컬(local) 자료구조를 초기화하고(541) 로그 영역의 처음과 끝에 있는 로그 포인터 블록을 읽는다(542). 둘다 잘못되어 있는 경우에는(543) 복구를 할 수 없으므로 오류를 복귀한다(544). 둘중 하나라도 유효한 경우에는 로그 포인터 블록의 내용으로 화일 시스템 생성시(mkfs)인가 조사한다. 만약 mkfs 시이면(545) 시간(time)과 로그 포인터 블록의 내용을 초기화하고(546), 아니면 다음과 같이 실제적인 회복처리를 한다.
마지막 싱크지점(LS)이 최초의 갱신 트랜잭션 시점(UF)보다 더 작으면(547) LS지점부터 UF지점까지 로깅된 아이노드의 상태에 따라 갱신후 이미지 처리를 하고(548), LS가 UF보다 크면 (549) UF지점부터 LS지점까지 동작중이면 트랜잭션을 탐색하며(550), 같은 경우에는 아무 처리도 안하고 (548)이나 (550)의 처리를 끝낸 후 지점부터 CRASH지점까지 갱신후 이미지 처리와 트랜잭션 탐색처리를 함께한다(551). 그런 다음에 트랜잭션 탐색처리에서 만들어진 트랜잭션 중 종료된 트랜잭션의 엔트리를 제거하고(552), CRASH지점부터 최초의 갱신 트랜잭션 지점까지 동작중이면 트랜잭션의 데이타를 갱신전 이미지 처리를 해준다(553). 실제적인 회보거리를 한 다음에 로그 입·출력을 위해 로그상태 구조를 초기화하고(554), 로그버퍼에 내용이 있으면(555) 동기적으로 로그영역에 기록한다(556). 마지막으로 로그싱크를 한 다음에 복귀한다(557).
제5d도는 트랜잭션 취소 처리시에 해당 데이타 블록의 내용을 갱신전 이미지 내용으로 바꾸는 과정을 나타낸 순서도이다. 로그데이타를 읽어올 버퍼를 얻어서(561) 해당 로그 데이타를 읽는다(562). 만약 읽기를 실패한 경우에는(563) 로그버퍼를 해제하고(564) 오류를 복귀하며, 그렇지 않으면 복구할 디스크의 블록을 읽는다(565). 만약 읽기를 실패하면(566) 로그버퍼, 실제 디스크 버퍼등을 해제하고(567) 오류를 복귀한다. 읽기를 성공한 경우에는 로그버퍼의 내용을 해당 데이타 버퍼에 복사하여(568) 데이타 버퍼를 기록한다(569). 만약 기록에 실패하면(570) 로그버퍼를 해제하고(571) 오류를 복귀하며, 그렇지 않으면 로그버퍼를 해제하고(571) 복귀한다.
제5e도는 아이노드의 상태를 로깅하는 과정을 나타낸 순서도이다. 먼저 화일관리 로그 클라이언트의 로그레코드를 하나 얻는다(581). 로깅할 아이노드의 내용을 로그 레코드에 저장하고(582) 해당 아이노드의 수퍼블록을 얻는다(583). 그런 다음 해당 로그 레코드를 로깅하고(584) 그 결과를 조사한다(585). 로그 레코드를 해제한(586) 다음 복귀한다.

Claims (8)

  1. 밀결합 다중처리시스템에서 로그관리 및 그 회복관리 방법에 있어서, 화일관리 유니트의 오픈모듈과 트랜잭션 관리유니트의 회복준비모듈로 부터 로깅요청이 있는 경우 메세지 단위로 로깅처리를 수행하는 단계와, 상기 화일관리유니트의 쓰기모듈로부터 로깅요청이 있는 경우 버퍼 단위로 로깅처리를 수행하는 단계와, 회복을 위한 준비 및 자료구조의 초기화를 수행하고 화일시스템의 회복을 처리하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
  2. 제 1 항에 있어서, 상기 메세지단위로깅처리단계는 로그에 세마포어 잠금을 걸고 로그레코드의 크기가 300바이트 이상인지 여부를 조사하는 단계와, 상기 로그레코드가 300바이트 이상이면 페이지수를 계산하여 버퍼단위로 로깅하고 그렇지 않으면 메세지만 로깅하는 단계와, 상기 버퍼로깅 및 메세지로깅에서 오버플로우가 발생하면 로그잠금을 풀고 오류 처리로 복귀하는 단계와, 로그 버퍼에 내용을 복사한 다음 동기적으로 기록하라고 되어 있으면 동기적기록을 수행하고 그렇지 않으면 로그 버퍼들이 찬 경우에만 디스크의 로그 영역에 기록한 후 로그잠금을 해제하고 복구하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
  3. 제 1 항에 있어서, 상기 버퍼단위로깅처리단계는 로그에 세마포어 잠금을 걸고 로깅할 버퍼의 갯수로 로그영역의 오버플로우를 조사하여 오버플로우가 발생하면 로그잠금을 풀고 오류로 복귀하는 단계와, 로그주소에 모든 내용을 복사한 다음 동기적으로 기록하라고 되어 있으면 동기적기록을 수행하고 그렇지 않으면 로그버퍼들이 다 찬 경우에만 디스크의 로그영역에 기록하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
  4. 제 1 항에 있어서, 상기 회복처리단게는 화일시스템 및 트랜잭션의 상태를 복구하는 단계와, 트랜잭션 취소처리시 해당데이타블록의 내용을 갱신된 이미지내용으로 변경단계와, 아이노드의 상태를 로깅하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
  5. 제 4 항에 있어서, 상기 화일시스템 및 트랜잭션상태복구단계는 로컬자료구조를 초기화하고 두개의 로그포인터블록을 읽는 단계와, 상기 두 로그포인터블록이 잘못되어 있으면 오류처리하고 어느 하나라도 유효한 경우에는 화일시스템생성시인가 조사하는 단계와, 상기 화일시스템생성시이면 시간과 로그포인터블록의 내용을 초기화하고 아니면 실제 회복처리를 수행하는 단계와, 로그입출력을 위해 로그상태구조를 초기화하고 로그버퍼에 내용이 있으면 동기적으로 로그에 기록한 후 로그싱크를 수행하고 복귀하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
  6. 제 5 항에 있어서, 상기 실제회복처리는 최후의 싱크지점(LS)이 최초의 갱신트랜잭션지점(UF)보다 작은지 여부를 판단하여 작으면 상기 최후싱크지점부터 상기 최초갱신트랜잭션지점까지 로깅된 아이노드의 상태에 따라 갱신한 후 이미지처리를 수행하는 단계와, 상기 최후싱크지점이 사익 최초갱신트랜잭션지점보다 크면 상기 최초갱신트랜잭션지점부터 상기 최후싱크지점까지 이미지처리와 트랜잭션탐색처리를 수행하는 단계와, 상기 트랜잭션탐색처리단계에서 만들어진 트랜잭션중 종료된 트랜잭션의 엔트리를 제거하고 트랜잭션의 갱신전 이미지처리를 수행하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
  7. 제 4 항에 있어서, 상기 해당 데이타블록내용변경단계는 로그데이타를 읽어올 버퍼를 얻어서 해당 로그 데이타를 읽는 단계와, 읽기 실패의 경우 로그버퍼를 해제하고 오류처리하며, 실패가 아닌 경우 복구할 디스크의 블록을 읽는 단계와, 상기 디스크블록의 읽기를 실패하면 로그버퍼, 실제 디스크버퍼등을 해제한 후 오류처리하고 읽기성공이면 로그버퍼의 내용을 해당 데이타버퍼에 복사하여 데이타 버퍼를 기록하는 단계와, 기록실패이면 로그버퍼를 해제한 후 오류처리하고 기록성공이면 로그버퍼를 해제하고 복귀하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
  8. 제 4 항에 있어서, 상기 아이노드상태로깅단계는 화일관리로그클라이언트의 로그레코드를 하나 얻고 상기 로그레코드에 로깅할 아이노드의 내용을 저장한 후 해당 아이노드의 수퍼블록을 얻는 단계와, 해당 로그레코드를 로깅하여 그 결과를 조사하고 로그레코드를 해제한 다음 복귀하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리시스템의 로그/회복관리방법.
KR1019920025015A 1992-12-22 1992-12-22 트랜잭션 처리시스템의 로그/회복관리방법 KR950011056B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019920025015A KR950011056B1 (ko) 1992-12-22 1992-12-22 트랜잭션 처리시스템의 로그/회복관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019920025015A KR950011056B1 (ko) 1992-12-22 1992-12-22 트랜잭션 처리시스템의 로그/회복관리방법

Publications (2)

Publication Number Publication Date
KR940015902A KR940015902A (ko) 1994-07-22
KR950011056B1 true KR950011056B1 (ko) 1995-09-27

Family

ID=19346203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920025015A KR950011056B1 (ko) 1992-12-22 1992-12-22 트랜잭션 처리시스템의 로그/회복관리방법

Country Status (1)

Country Link
KR (1) KR950011056B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100390853B1 (ko) * 2000-06-07 2003-07-10 차상균 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
KR20030035122A (ko) * 2001-10-30 2003-05-09 포디홈네트 인터넷 정보 가전용 내장형 데이터베이스 관리시스템에서의 다중 버전을 이용한 동시성 제어 방법
US9110851B2 (en) * 2011-09-29 2015-08-18 Oracle International Corporation System and method for persisting transaction records in a transactional middleware machine environment

Also Published As

Publication number Publication date
KR940015902A (ko) 1994-07-22

Similar Documents

Publication Publication Date Title
KR100390853B1 (ko) 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
US5724581A (en) Data base management system for recovering from an abnormal condition
EP0541381B1 (en) Managing database recovery from failure
KR940008605B1 (ko) 언두 로그 사용을 최적화하는 방법 및 장치
JP2558052B2 (ja) 仮定コミット2フェーズコミットプロトコルを用いるトランザクション処理システム及びその動作方法
US4868744A (en) Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
KR940005826B1 (ko) 효과적인 회복을 위한 상태 식별자의 관리방법 및 장치
US6571259B1 (en) Preallocation of file system cache blocks in a data storage system
Kazar et al. DEcorum File System Architectural Overview.
EP0642079B1 (en) Fault tolerant transaction-oriented data processing
US4945474A (en) Method for restoring a database after I/O error employing write-ahead logging protocols
US7467330B2 (en) System and method for journal recovery for multinode environments
US7200620B2 (en) High availability data replication of smart large objects
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
US6873995B2 (en) Method, system, and program product for transaction management in a distributed content management application
AU2010333716B2 (en) Reliable writing of database log data
US5740434A (en) System for maintenance of database integrity
JPH10283228A (ja) マルチシステム環境のログ・ストリームを圧縮するシステム
KR950011056B1 (ko) 트랜잭션 처리시스템의 로그/회복관리방법
JP3476973B2 (ja) 分散コンピューティングシステム
Strom et al. A recoverable object store
Rastogi et al. Distributed multi-level recovery in main-memory databases
Molesky et al. Recovery protocols for shared memory database systems
JPH0443441A (ja) データベースのログ管理処理方式
JP2933011B2 (ja) ファイルの排他制御システム

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19980616

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee