KR20020090520A - 트랜잭션 처리 시스템의 병렬 로깅 방법 - Google Patents

트랜잭션 처리 시스템의 병렬 로깅 방법 Download PDF

Info

Publication number
KR20020090520A
KR20020090520A KR1020010029393A KR20010029393A KR20020090520A KR 20020090520 A KR20020090520 A KR 20020090520A KR 1020010029393 A KR1020010029393 A KR 1020010029393A KR 20010029393 A KR20010029393 A KR 20010029393A KR 20020090520 A KR20020090520 A KR 20020090520A
Authority
KR
South Korea
Prior art keywords
log
transaction
request
manager
queue manager
Prior art date
Application number
KR1020010029393A
Other languages
English (en)
Other versions
KR100625595B1 (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 KR1020010029393A priority Critical patent/KR100625595B1/ko
Priority to US10/057,938 priority patent/US6769003B2/en
Publication of KR20020090520A publication Critical patent/KR20020090520A/ko
Application granted granted Critical
Publication of KR100625595B1 publication Critical patent/KR100625595B1/ko

Links

Classifications

    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 다수 응용 프로그램들의 트랜잭션을 동시에 수행하는 트랜잭션 처리 시스템의 병렬 로깅 방법에 관한 것이다.
본 발명에서는, 응용 프로그램들의 트랜잭션을 처리하는 트랜잭션 처리 시스템의 병렬 로깅 방법에 있어서, 트랜잭션 연산을 수행한 상기 응용 프로그램들의 트랜잭션 종료 요청에 따라, 트랜잭션 조정부가 트랜잭션 준비(prepare)단계 및 승인(commit)단계를 트랜잭션 참여자들에게 지시하는 제 1 단계; 상기 트랜잭션 조정부로부터 요청된 상기 트랜잭션의 상태정보에 관한 로그 기록 요청을 로그 큐 관리기가 접수하는 제 2 단계 및; 상기 로그 기록 요청을 접수한 상기 로그 큐 관리기의 요청에 따라, 다수 개의 로그 관리기를 통해 해당 트랜잭션에 관한 로그 기록을 병렬로 동시에 수행하는 제 3 단계를 포함한다.
이로 인해, 로그 기록 시 발생하는 병목 현상을 방지할 수 있을 뿐만 아니라, 해당 로그 기록 시간을 단축시킬 수 있어, 시스템의 성능을 향상시킨다.

Description

트랜잭션 처리 시스템의 병렬 로깅 방법 {Parallel Logging Method of Transaction Processing System}
본 발명은 트랜잭션 처리 시스템의 병렬 로깅 방법에 관한 것으로서, 보다 자세하게 설명하면, 다수의 로그 관리기(Log Manager)를 이용하여 응용 트랜잭션들의 로그(트랜잭션의 상태정보) 기록을 동시에 병렬로 실행할 수 있는 트랜잭션 처리 시스템의 병렬 로깅 방법에 관한 것이다.
트랜잭션의 상태정보를 기록하는 트랜잭션 로그는 트랜잭션 복구를 위한 트랜잭션 상태정보를 디스크와 같은 저장장치에 기록하는 작업을 수행하는데, 이러한 트랜잭션 상태정보를 저장하기 위한 입출력 작업은 컴퓨터 프로세서의 연산처리 작업보다 상대적으로 많은 시간이 소요되기 때문에, 트랜잭션 처리 시스템의 전체적인 성능을 저하시킬 뿐만 아니라, 한 개의 트랜잭션 로그저장장치 사용 시, 로그 기록 작업은 직렬 로그 기록만 가능하여, 트랜잭션 처리 시스템의 전체적인 성능은 트랜잭션 로그에 종속된다는 문제점이 발생한다.
이러한 특징을 포함하는 기존의 트랜잭션 처리는 주로 데이터베이스 서버를 중심으로 한 중앙 집중의 형태에서 클라이언트-서버 형태의 분산처리 형태로 바뀌어져 왔으며, 요즘 들어, 트랜잭션 처리 응용들은 분산 트랜잭션 처리를 위해서 주로 클라이언트-서버 모델을 따르고 있다. 이와 같은 특징의 클라이언트-서버 모델의 지원 및 트랜잭션 처리 성능을 향상시키기 위한 방법으로서, 범용 업무에서는트랜잭션 처리 모니터를 도입, 적용해 오고 있다.
트랜잭션 처리 모니터(Transaction Processing Monitor)란, 클라이언트서버 환경 아래서 운용체계가 다른 컴퓨터 환경이나 응용소프트웨어 등의 호환장애 등으로 발생할 수 있는 시스템 정지 등과 같은 문제점을 해결하기 위해 개발된 시스템 소프트웨어의 하나로서 미들웨어(Middle ware)로 잘 알려져 있다.
또한, 종래 기술에 따른 트랜잭션 처리 시스템은 주로 트랜잭션 처리 시스템에 종속하는 단일 로그저장장치를 독자적으로 가지고 있는데, 이는 트랜잭션 승인 처리 시, 트랜잭션들의 상태정보를 하나씩 순차적으로 단일 로그저장장치에 기록함으로 인해, 로그 기록시의 병목현상을 초래한다.
이와 같은 특징의 트랜잭션 처리 시스템에 관한 종래 기술로는, 권리권자가 한국전자통신연구소인 [특허명칭 : 트랜잭션 처리 시스템의 로그/회복 관리 방법, 등록번호 : 10-092811-0000, 등록년도 : 1995년]의 특허가 있는데, 이는, 트랜잭션에서 갱신하는 데이터블록의 사전 이미지를 로그파일에 기록, 트랜잭션이 처리도중 취소되었을 때의 해당 데이터 블록을 로그에 있는 갱신전 이미지로 복귀시킴으로써, 트랜잭션 데이터의 일치성을 보장하는 것에 관한 것이다. 그러나, 트랜잭션에서 갱신되는 데이터의 사전 이미지를 하나의 로그 파일에 직렬로 기록함으로써, 사전 이미지를 이용한 기록 수행 시, 그 기록으로 인한 병목현상이 발생할 수 있는 단점이 있다.
또한, 위와 같은 특징을 포함하는 트랜잭션 처리 시스템의 경우, 기존의 데이터베이스 관리 시스템과 같이 트랜잭션 데이터의 일치성을 보장하기 위해, 갱신되는 데이터의 사전 이미지를 로그(화일 또는 디스크)에 기록하지만, 트랜잭션 처리 모니터를 이용하여 트랜잭션을 처리하는 고성능 트랜잭션 처리 시스템에서는 데이터베이스의 데이터와 같이, 해당 트랜잭션 데이터를 직접 관리하지 않고, 인포믹스(Informix), 오라클(Oracle)등과 같은 여러 종류의 데이터베이스에 저장된 데이터가 하나의 트랜잭션 내에서 갱신되었을 때, 이러한 데이터들의 일치성을 보장하기 위하여 트랜잭션 처리 모니터는 트랜잭션의 상태정보만을 로그에 기록한다.
상기한 종래 기술의 문제점을 해결하기 위한 본 발명의 목적은 로그 큐 관리기로부터 수신되는 로그기록 요청 메시지에 따라 해당 로그 기록을 실행하는 다수개의 로그 관리기들이, 구비된 다수개의 로그 저장부를 통해, 해당 로그 기록을 동시에 병렬로 수행함으로써, 로그 저장부에 발생하는 병목현상을 방지할 수 있을 뿐만 아니라, 다수 트랜잭션의 상태를 로그에 기록하는 시간을 단축하여 전체 시스템의 성능을 향상시킬 수 있는 트랜잭션 처리 시스템의 병렬 로깅 방법을 제공하기 위한 것이다.
도 1은 본 발명에 따른 트랜잭션 처리 시스템의 병렬 로깅 방법을 설명하기 위한 트랜잭션 처리 시스템의 구성도,
도 2는 본 발명에 따른 트랜잭션 처리 시스템의 병렬 로깅 방법 중, 로그 기록 요청에 대한 접수 및 그에 따른 처리 과정을 도시한 흐름도,
도 3은 본 발명에 따른 트랜잭션 처리 시스템의 병렬 로깅 방법 중, 로그 기록 실행 및 그에 따른 응답 과정을 도시한 흐름도이다.
※ 도면의 주요 부분에 대한 부호의 설명 ※
100 : 트랜잭션 처리 시스템 110 : 응용(Application) 프로그램
120 : 트랜잭션 관리기 121 : 트랜잭션 조정부
130 : 트랜잭션 140 : 로그 큐 관리기
141 : 로그 요청 큐 저장부 142 : 로그 응답 큐 저장부
150 : 로그 관리기 160 : 로그 저장부
상기한 목적을 달성하기 위한 본 발명은 응용 프로그램들의 트랜잭션을 처리하는 트랜잭션 처리 시스템의 병렬 로깅 방법에 있어서, 트랜잭션 연산을 수행한상기 응용 프로그램들의 트랜잭션 종료 요청에 따라, 트랜잭션 조정부가 트랜잭션 준비(prepare)단계 및 승인(commit)단계를 트랜잭션 참여자들에게 지시하는 제 1 단계; 상기 트랜잭션 조정부로부터 요청된 상기 트랜잭션의 상태정보에 관한 로그 기록 요청을 로그 큐 관리기가 접수하는 제 2 단계 및; 상기 로그 기록 요청을 접수한 상기 로그 큐 관리기의 요청에 따라, 다수 개의 로그 관리기를 통해 해당 트랜잭션에 관한 로그 기록을 병렬로 동시에 수행하는 제 3 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템의 병렬 로깅 방법이 제공된다.
양호하게는, 응용 프로그램들의 트랜잭션을 처리하는 트랜잭션 처리 시스템에 있어서, 상기 응용 프로그램들의 트랜잭션 처리 요청에 따라, 다수 개의 트랜잭션들을 생성 관리하는 트랜잭션 관리기, 상기 트랜잭션 관리기로부터 요청된 트랜잭션 준비 및 승인 단계를 트랜잭션 참여자들에 지시하는 트랜잭션 조정부, 상기 트랜잭션 조정부로부터 요청된 해당 트랜잭션의 상태정보에 관한 로그 기록을 접수 및 관리하는 로그 큐 관리기, 상기 로그 큐 관리기가 송신한 로그기록 요청 메시지에 따라, 상기 로그 기록을 동시에 병렬로 수행한 후, 수행한 결과값을 상기 로그 큐 관리기로 제공하는 다수 개의 로그 관리기를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템이 제공된다.
보다 양호하게는, 응용 프로그램들의 트랜잭션을 처리하는 트랜잭션 처리 시스템의 병렬 로깅 방법을 수행하기 위해 컴퓨터로 실행할 수 있는 프로그램을 저장한 기록매체에 있어서, 트랜잭션 연산을 수행한 상기 응용 프로그램들의 트랜잭션 종료 요청에 따라, 트랜잭션 조정부가 트랜잭션 준비(prepare)단계 및승인(commit)단계를 트랜잭션 참여자들에게 지시하고, 상기 트랜잭션 조정부로부터 요청된 상기 트랜잭션의 상태정보에 관한 로그 기록 요청을 로그 큐 관리기가 접수하고, 상기 로그 기록 요청을 접수한 상기 로그 큐 관리기의 요청에 따라, 다수 개의 로그 관리기를 통해 해당 트랜잭션에 관한 로그 기록을 병렬로 동시에 수행하는 것을 실행시킬 수 있는 프로그램을 저장한 컴퓨터로 판독할 수 있는 기록매체가 제공된다.
본 발명에 따른 트랜잭션 처리 시스템의 병렬 로깅 방법에 대해 알아보기에 앞서, 본 발명에서의 트랜잭션에 대해 알아보면 다음과 같다.
트랜잭션(Transaction)이란, 관련된 여러 가지 작업들이 하나의 작업으로 통합 수행됨으로 인해, 갑작스러운 문제(온도, 전자파, 습기, 과전류, 전원의 불안정, 케이블들의 접촉 불량 및 여러 가지 복합적인 원인 등)에 의해 일어날 수 있는 상황들에 대해 해결책을 줄 수 있는 것으로서, 데이터의 무결성(Data Integrity) 보장과 해당 처리 데이터의 고속 일괄처리(concurrency) 및 동시성 등이 향상된다.
즉, 여러 개의 연산들로 구성된 작업들이 완전히 수행되어 종료되든지, 아니면 수행되기 이전의 초기상태로 되돌아가게 함으로써, 트랜잭션 데이터의 일치성을 보장하도록 하는 단위작업이다.
또한, 단말기 장치와 컴퓨터 시스템의 통신회선으로 결합해 처리하는 데이터의 집배신처리, 메시지교환처리, 조회응답처리 등과 함께 트랜잭션 처리도 온라인으로 처리되며, 오더 엔트리(order entry)의 대표적인 서비스인 트랜잭션 서비스로예약주문처리 등을 하는 홈쇼핑과 홈뱅킹을 비롯해 호텔, 극장, 열차, 항공기 등의 예약주문 처리에도 활용된다.
이하 첨부된 도면을 참조하면서 본 발명의 일 실시예에 따른 트랜잭션 처리 시스템의 병렬 로깅 방법을 보다 자세하게 알아보기로 한다.
도 1은 본 발명의 일 실시예에 따른 트랜잭션 처리 시스템의 병렬 로깅 방법을 설명하기 위한 트랜잭션 처리 시스템의 구성도로서, 도시된 바와 같이, 트랜잭션 처리 시스템(100)은 트랜잭션 관리기(120)와 트랜잭션 조정부(121), 트랜잭션(130), 로그 큐 관리기(140), 로그 요청큐 저장부(141), 로그 응답큐 저장부(142), 로그 관리기(150) 및 로그 저장부(160)로 구성된다.
트랜잭션 관리기(120)는 응용 프로그램(110)들의 트랜잭션 시작 요청으로 인한 다수개의 트랜잭션(130)을 생성 관리하며, 트랜잭션 조정부(121)는 트랜잭션 처리를 위해 트랜잭션 참여자들이 수행해야할 임무들을 지시하며, 그 지시에 대한 트랜잭션 참여자들로부터의 해당 처리 결과를 수신 관리한다. 로그 큐 관리기(141)는 수신된 로그 요청큐 및 로그 응답큐를 저장 관리하며, 다수개의 로그 관리기(150)는 구비된 자신의 로그 저장부(160)를 통해, 해당 로그 기록들을 병렬로 동시에 수행한다.
이와 같은 구성을 특징으로 하는 트랜잭션 처리 시스템(100)의 병렬 로깅 방법은 다음과 같다. 우선, AP1, ..., APn(110)과 같은 다수의 응용 프로그램(예를들어, 은행의 입출금 및 자동이체와 같은 트랜잭션 처리가 포함된 프로그램)들은 해당 트랜잭션의 시작을 위해, 트랜잭션 관리기(120)로 해당 트랜잭션의 시작을 요청한다.
이 때, 트랜잭션 처리 시스템내의 트랜잭션 관리기(120)는 응용 프로그램(110)들이 호출할 수 있는 API(Application Programming Interface : 응용 프로그래밍 인터페이스)를 해당 응용 프로그램에게 제공한다. 이로 인해, 해당 응용 프로그램(110)들은 트랜잭션이 제공하는 begin()함수를 호출함으로써, 트랜잭션 시작을 요청한다. 이를 수신한 트랜잭션 관리기(120)는 트랜잭션의 상태 및 정보를 관리하기 위해, 다수의 트랜잭션(130)을 생성한 후, 트랜잭션 식별자를 생성한다. 이후, 각각의 트랜잭션(130)에 트랜잭션 식별자를 할당한 후, 트랜잭션 관리기(120)가 관리하는 트랜잭션 테이블에 다수의 트랜잭션(130)을 삽입함으로써, 트랜잭션 시작단계를 완료한다.
이와 같은 과정을 특징으로 하는 트랜잭션 시작 단계가 완료되면, 이후, 다수의 응용 프로그램(AP1, ..., APn, 110)들은 응용 프로그램에 정의된 대로 트랜잭션 연산(예를 들어, credit(), debit() 등과 같은 은행의 입출금 또는 계좌이체 연산 등)을 수행한 후, 이후, 트랜잭션 관리기(120)로 트랜잭션 종료를 요청한다. 이를 수신한 트랜잭션 관리기(120)는 트랜잭션 관리기(120)내의 트랜잭션 조정부(121)로 트랜잭션 승인프로토콜 2 단계인, 준비(prepare) 단계와 승인(commit) 단계의 수행을 지시한다.
트랜잭션 관리기(130)로부터 트랜잭션 승인프로토콜 2 단계 수행을 지시받은트랜잭션 조정부(121)는 트랜잭션 참여자인, 트랜잭션 데이터를 관리하는 인포믹스(Informix) 또는 오라클(Oracle) 등과 같이, X/Open DTP(Distributed Transaction Processing : 분산형 데이터 통신 처리)표준의 XA 인터페이스를 지원하는 DBMS(Database Management System : 데이터베이스 관리 시스템, 이하 DBMS 라 함) 또는 자원관리자들에게 준비단계와 승인단계를 순서대로 지시하여 트랜잭션 승인프로토콜 2 단계 수행을 완료함으로써, 다수 응용 프로그램의 트랜잭션 처리를 종료시킨다.
이 때, 트랜잭션 참여자들에게의 트랜잭션 승인프로토콜 2 단계 지시에 있어, 예를 들어, Informix DBMS 계좌에서 Oracle DBMS 계좌로 이체할 경우, 두 DBMS에서 변경된 계좌의 내용을 데이터의 일치성 보장을 위해, DBMS의 갱신된 데이터의 내용을 디스크에 저장하도록, 준비 단계시, 인포믹스(Informix)와 오라클(Oracle)에 각각 prepare()를 호출하여 준비를 지시한 후, 승인단계에서는 DBMS의 로컬(local)트랜잭션을 처리하는 데 자체적으로 사용했던 잠금정보 및 자원을 해제하도록 인포믹스와 오라클에 각각 commit()을 호출하여 승인단계를 처리토록 한다.
이 때, 트랜잭션의 상태정보에 관한 로그 기록은 트랜잭션 승인프로토콜 2 단계 중, 트랜잭션 조정부(121)가 트랜잭션 참여자들에게 준비단계와 승인단계를 지시한 후, 모든 트랜잭션 참여자들로부터 트랜잭션 승인프로토콜 2 단계의 처리 결과를 수신하는 시점인 트랜잭션 승인프로토콜 2 단계 완료 시점에서 수행한다.
해당 트랜잭션의 상태정보에 관한 로그 기록인, 준비단계 완료 시점의 로그는 LOG_COMMIT 로그(준비단계 완료 후, 로그 저장부에 기록되는 자료구조의 명칭 또는 형태로서, 준비를 완료한 트랜잭션 상태 및 정보)로서, 트랜잭션 조정부(121)가 로그 큐 관리기(140)로 로그 기록을 요청하면, 로그 큐 관리기(140)는 이를 접수한 후, 로그기록 요청 메시지를 로그 요청큐 저장부(141)에 삽입한다. 이후, 다수의 로그 관리기(150)는 로그 큐 관리기(140)로부터의 로그기록 요청 메시지를 수신한 후, 수신된 로그기록 요청 메시지에 따라, 로그기록을 실행한다. 이후, 로그 관리기(150)는 로그 기록 실행에 대한 결과값을 로그 큐 관리기(140)에게 제공하며, 이와 동시에 로그 큐 관리기(140)로부터의 응답(reply)을 요청한다. 이를 수신한 로그 큐 관리기(140)는 로그 관리기(150)로부터 수신한 로그 기록 실행에 대한 결과값을 트랜잭션 조정부(121)에게 반환하게 되는데, 이로 인해, 트랜잭션 승인프로토콜 2 단계 중, 준비단계를 완료하게 된다.
이와 같은 과정을 거쳐 준비단계의 LOG_COMMIT 로그가 완료되면, 트랜잭션 조정부(121)는 트랙잭션 참여자들에게 트랜잭션 승인프로토콜 2 단계의 마지막 단계인 승인단계 수행을 지시한 후, 승인단계의 완료 시점에서 LOG_DONE 로그(승인 단계 완료 후, 로그 저장부에 기록되는 자료구조의 명칭 또는 형태로서, 승인을 완료한 트랜잭션 상태 및 정보)를 수행함으로써, 트랜잭션 승인프로토콜 2 단계를 완료한다.
이 때, 승인단계 완료 시점에서의 LOG_DONE 로그는 트랜잭션의 상태만이 COMMIT(트랜잭션 승인프로토콜 2 단계 처리 중에 존재하는 트랜잭션의 상태들 중의 하나로서, 준비단계가 완료되었을 때의 상태)에서 DONE(트랜잭션 승인프로토콜 2단계 처리 중에 존재하는 트랜잭션의 상태들 중의 하나로서, 승인단계가 완료되었을 때의 상태)으로 바뀐 것으로서, 준비단계의 완료 시점에서 수행하는 LOG_COMMIT 로그 과정과 동일한 과정이므로 생략하기로 한다.
도 2는 준비/승인 단계의 완료시점에서 트랜잭션 조정부로부터 요청된 로그기록 요청을 접수 처리하는 로그 큐 관리기의 동작 과정을 도시한 흐름도이다. 먼저, 트랜잭션 조정부가 로그 큐 관리기에게 LOG_COMMIT 또는 LOG_DONE과 같은 로그 기록을 요청(S210)하면, 로그 큐 관리기는 이를 LOG_DATA(로그 관리기가 로그에 기록할 정보를 나타내는 자료구조의 명칭 또는 형태)로 접수한다(S220). 이후, 로그 큐 관리기는 LOG_REQ_MSG(로그 관리기가 로그에 기록할 정보인 LOG_DATA를 포함하고 있는 로그 요청 메시지를 나타내는 자료구조의 명칭 또는 형태), 메시지 ID, 타임 스탬프(time stamp, 메시지가 생성된 시간 값)를 생성한 후, LOG_REQ_MSG에 메시지 ID와 타임 스탬프를 삽입(S230)한 후, LOG_DATA를 추가한다(S240). 이후, 로그 큐 관리기는 LOG_REQ_MSG를 로그 기록 요청 메시지 저장소인 로그 요청 큐 저장부(LRQQ)에 삽입(S250)한 후, 트랜잭션 조정부를 해당 메시지 ID로 하여 로그 응답 큐 저장부(LRPQ)에 대기시킨다(S260).
즉, 트랜잭션 조정부로부터의 로그 기록 요청에 대한 접수 결과로서, 로그 요청큐 저장부(LRQQ)에는 로그 큐 관리기에 의해, LOG_REQ_MSG가 삽입되어 존재하게 되고, 다수의 로그 관리자들은 해당 로그 기록을 실행함으로써, 로그 요청 큐 저장부(LRQQ) 내의 LOG_REQ_MSG를 처리하게 된다.
도 3은 본 발명에 따른 트랜잭션 처리 시스템내의 병렬 로깅 방법 중, 로그 관리기가 수행하는 로그 기록 과정(요청/로그기록 수행)을 도시한 흐름도이다.
먼저, 다수의 로그 관리기(LM1, LMn)는 해당 로그 기록을 실행하기 위해 로그 큐 관리기에게 LOG_REQ_MSG를 요청한 후, 대기한다(S311).
로그 관리기로부터 LOG_REQ_MSG를 수신한 로그 큐 관리기는 로그 요청큐 저장부에 해당 LOG_REQ_MSG가 있는지를 확인(S312)한 후, 확인 결과, 로그 요청큐 저장부에 LOG_REQ_MSG가 존재하면, 로그 큐 관리기는 로그 요청큐 저장부에서 LOG_REQ_MSG를 삭제한 후, 가장 오랜 시간동안 대기상태에 있던 로그 관리기(LM1 이라 가정함), LM1에게 삭제한 LOG_REQ_MSG를 넘긴다(S313).
이후, 가장 오랜 시간 대기상태에 있었던 로그 관리기(LM1)는 로그 큐 관리기로부터 상기 LOG_REQ_MSG를 수신(S314)한 후, 수신된 LOG_REQ_MSG를 메시지 ID, 타임스탬프, LOG_DATA로 해석한다(S315). 이후, 로그 관리기(LM1)는 해석한 타임 스탬프와 LOG_DATA를 자신의 로그 저장부에 기록(S316)한 후, 로그 큐 관리기로의 메시지 ID와 로그기록 반환값으로서, 해당 로그 기록을 성공한 경우에는 LOG_OK, 해당 로그 기록을 실패한 경우에는 LOG_ERR을 송신함으로써, 로그 큐 관리기로 응답을 요청(S317)하면, 로그 큐 관리기는 로그 관리기로터 수신되는 LOG_OK(로그 기록을 수행한 상태가 정상임을 의미하는 상수값을 나타내는 코드) 또는 LOG_ERR(로그 기록을 수행한 상태가 오류임을 의미하는 상수값을 나타내는 코드)를 LOG_RETVAL(로그 기록을 수행한 결과 상태, 즉 LOG_OK 또는 LOG_ERR 값 중 하나로 지정된 반환값을 나타냄)로서 수신한다(S318).
LOG_RETVAL를 수신한 로그 큐 관리기는 LOG_REP_MSG(로그 관리기가 로그에 기록을 수행한 후, 그 결과를 로그 큐 관리기에게 회신/응답할때의 메시지를 나타내는 자료구조의 명칭 또는 형태)를 생성한 후, 생성된 LOG_REP_MSG에 LOG_RETVAL를 추가한다(S319). 이후, 로그 큐 관리기가 LOG_REQ_MSG를 로그 요청큐 저장부에 삽입함으로써, 가장 오랜 시간 동안 대기상태에 머물렀던 로그 관리기(LM1)가 로그기록 실행을 완료하게 된다(S320). 이후, 로그 관리기는 다음 로그기록 요청을 처리하기 위하여 로그 큐 관리기에게 LOG_REQ_MSG를 요청함으로써 대기상태로 들어간다.
위에서 언급한 바와 같이, 응용 프로그램들의 트랜잭션 종료 처리 요청으로 인해, 트랜잭션 조정부가 트랜잭션 준비/승인 단계 완료 시점에서 요청한 LOG_COMMIT로그와 LOG_DONE 로그를 도 2 및 도 3에서와 같이 완료함으로써, 트랜잭션 조정부는 트랜잭션 승인프로토콜 2 단계를 모두 완료하여 이를 트랜잭션 관리기에게 반환함으로써, 응용 프로그램들의 트랜잭션 종료 처리 요청을 완료한다.
위에서 양호한 실시예에 근거하여 이 발명을 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것이다. 이 발명이 속하는 분야의 숙련자에게는 이 발명의 기술사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이 아니며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.
이상과 같이 본 발명에 의하면, 로그 큐 관리기와 자신의 로그 저장 장치에 로그 기록을 실행하는 다수의 로그 관리기가 트랜잭션 승인프로토콜 2 단계 과정 수행 시, 해당 트랜잭션의 로그 기록을 병렬로 동시에 수행함으로써, 트랜잭션 처리 시스템의 전체적인 성능을 향상시킬 뿐만 아니라, 트랜잭션의 로그 기록 시, 발생하는 병목 현상을 제거할 수 있는 효과가 있다.

Claims (11)

  1. 응용 프로그램들의 트랜잭션을 처리하는 트랜잭션 처리 시스템의 병렬 로깅 방법에 있어서,
    트랜잭션 연산을 수행한 상기 응용 프로그램들의 트랜잭션 종료 요청에 따라, 트랜잭션 조정부가 트랜잭션 준비(prepare)단계 및 승인(commit)단계를 트랜잭션 참여자들에게 지시하는 제 1 단계;
    상기 트랜잭션 조정부로부터 요청된 상기 트랜잭션의 상태정보에 관한 로그 기록 요청을 로그 큐 관리기가 접수하는 제 2 단계 및;
    상기 로그 기록 요청을 접수한 상기 로그 큐 관리기의 요청에 따라, 다수 개의 로그 관리기를 통해 해당 트랜잭션에 관한 로그 기록을 병렬로 동시에 수행하는 제 3 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템의 병렬 로깅 방법.
  2. 제 1 항에 있어서,
    상기 제 2 단계는,
    상기 트랜잭션 조정부로부터 수신된 로그기록 요청 메시지를 LOG_DATA로 접수하는 단계;
    접수된 상기 로그기록 요청 메시지를 포함하는 LOG_REQ_MSG를 생성한 후, 생성된 상기 LOG_REQ_MSG를 메시지 저장수단에 삽입하는 단계 및;
    삽입된 상기 LOG_REQ_MSG에 따라, 상기 다수 개의 로그 관리기가 로그 기록을 실행하는 단계를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템의 병렬 로깅 방법.
  3. 제 2 항에 있어서,
    상기 로그 기록은 대기 상태가 가장 길었던 로그 관리기부터 수행하는 것을 특징으로 하는 트랜잭션 처리 시스템의 병렬 로깅 방법.
  4. 제 2 항에 있어서,
    상기 LOG_REQ_MSG는,
    상기 로그 큐 관리기가 생성한 메시지 ID, 타임스탬프(Time stamp) 및 상기 LOG_DATA를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템의 병렬 로깅 방법.
  5. 제 1 항에 있어서,
    상기 다수 개의 로그 관리기는,
    상기 로그 기록 실행에 대한 결과값을 상기 로그 큐 관리기로 제공하는 것을특징으로 하는 트랜잭션 처리 시스템의 병렬 로깅 방법.
  6. 제 5 항에 있어서,
    상기 다수 개의 로그 관리기는,
    상기 로그 기록이 실패이면, LOG_ERR를 전송하며,
    상기 로그 기록이 성공이면, LOG_OK를 상기 로그 큐 관리기로 전송하는 것을 특징으로 하는 트랜잭션 처리 시스템의 병렬 로깅 방법.
  7. 응용 프로그램들의 트랜잭션을 처리하는 트랜잭션 처리 시스템에 있어서,
    상기 응용 프로그램들의 트랜잭션 처리 요청에 따라, 다수 개의 트랜잭션을 생성 관리하는 트랜잭션 관리기,
    상기 트랜잭션 관리기로부터 요청된 트랜잭션 준비 및 승인 단계를 트랜잭션 참여자들에 지시하는 트랜잭션 조정부,
    상기 트랜잭션 조정부로부터 요청된 해당 트랜잭션의 상태정보에 관한 로그 기록을 접수 및 관리하는 로그 큐 관리기,
    상기 로그 큐 관리기로부터 수신된 로그기록 실행 요청에 따라, 상기 로그 기록을 동시에 병렬로 수행한 후, 수행한 결과값을 상기 로그 큐 관리기로 제공하는 다수 개의 로그 관리기를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템.
  8. 제 7 항에 있어서,
    상기 로그 큐 관리기는 상기 트랜잭션 조정부로부터 수신된 로그기록 요청 메시지를 저장하는 로그 요청큐 저장부(LRQQ),
    상기 로그기록 요청에 대한 처리 결과를 상기 트랜잭션 조정부로 제공하기 위한 응답 메시지를 저장하는 로그 응답큐 저장부(LRPQ)를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템.
  9. 제 7 항에 있어서,
    상기 다수 개의 로그 관리기는 상기 로그 기록에 대한 관련 정보를 저장 및 관리하는 다수 개의 로그 저장부를 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템.
  10. 제 7 항에 있어서,
    상기 트랜잭션 참여자는 DBMS(Database Management System : 데이터베이스 관리 시스템)을 포함하는 것을 특징으로 하는 트랜잭션 처리 시스템.
  11. 응용 프로그램들의 트랜잭션을 처리하는 트랜잭션 처리 시스템의 병렬 로깅 방법을 수행하기 위해 컴퓨터로 실행할 수 있는 프로그램을 저장한 기록매체에 있어서,
    트랜잭션 연산을 수행한 상기 응용 프로그램들의 트랜잭션 종료 요청에 따라, 트랜잭션 조정부가 트랜잭션 준비(prepare)단계 및 승인(commit)단계를 트랜잭션 참여자들에게 지시하고,
    상기 트랜잭션 조정부로부터 요청된 상기 트랜잭션의 상태정보에 관한 로그 기록 요청을 로그 큐 관리기가 접수하고,
    상기 로그 기록 요청을 접수한 상기 로그 큐 관리기의 요청에 따라, 다수 개의 로그 관리기를 통해 해당 트랜잭션에 관한 로그 기록을 병렬로 동시에 수행하는 것을 실행시킬 수 있는 프로그램을 저장한 컴퓨터로 판독할 수 있는 기록매체.
KR1020010029393A 2001-05-28 2001-05-28 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템 KR100625595B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020010029393A KR100625595B1 (ko) 2001-05-28 2001-05-28 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템
US10/057,938 US6769003B2 (en) 2001-05-28 2002-01-29 Parallel logging method for transaction processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010029393A KR100625595B1 (ko) 2001-05-28 2001-05-28 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템

Publications (2)

Publication Number Publication Date
KR20020090520A true KR20020090520A (ko) 2002-12-05
KR100625595B1 KR100625595B1 (ko) 2006-09-20

Family

ID=19710044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010029393A KR100625595B1 (ko) 2001-05-28 2001-05-28 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템

Country Status (2)

Country Link
US (1) US6769003B2 (ko)
KR (1) KR100625595B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101120235B1 (ko) * 2008-07-18 2012-03-16 (주)디에프아이비즈 트랜잭션 로그의 병렬처리를 이용한 변경 데이타 추출방법
CN108664340A (zh) * 2018-04-16 2018-10-16 北京酷我科技有限公司 一种多线程日志发送管理的方法

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030163562A1 (en) * 2002-02-26 2003-08-28 Ford Daniel E. Remote information logging and selective reflections of loggable information
US7007197B2 (en) * 2002-05-31 2006-02-28 Microsoft Corporation Virtual logging system and method
US20040215594A1 (en) * 2003-01-24 2004-10-28 Bea Systems, Inc. System for transaction processing with parallel execution
ATE471846T1 (de) * 2003-07-03 2010-07-15 Netshape Energy Man Llc Stossfängersystem mit thermogeformtem energieaufnehmer
US7490084B2 (en) * 2004-09-24 2009-02-10 Oracle Corporation Deferred incorporation of updates for spatial indexes
US8024355B2 (en) * 2004-12-29 2011-09-20 Sap Ag Dynamic capacity demand profile construction with a persisted capacity demand profile and a collision buffer
US7624308B2 (en) * 2005-03-28 2009-11-24 Microsoft Corporation Failed message error recovery using application specific error queues
US7480672B2 (en) * 2005-03-31 2009-01-20 Sap Ag Multiple log queues in a database management system
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
US8504526B2 (en) 2010-06-04 2013-08-06 Commvault Systems, Inc. Failover systems and methods for performing backup operations
US9069704B2 (en) * 2011-11-07 2015-06-30 Sap Se Database log replay parallelization
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US10706009B2 (en) * 2013-03-14 2020-07-07 Oracle International Corporation Techniques to parallelize CPU and IO work of log writes
US9483364B2 (en) 2013-05-08 2016-11-01 Commvault Systems, Inc. Synchronization of local secondary copies with a remote storage management component
CN103729442B (zh) 2013-12-30 2017-11-24 华为技术有限公司 记录事务日志的方法和数据库引擎
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
US10496630B2 (en) 2015-10-01 2019-12-03 Microsoft Technology Licensing, Llc Read-write protocol for append-only distributed databases
CN105656694B (zh) * 2016-03-15 2018-09-28 上海缔安科技股份有限公司 一种设备日志处理方法
US10747630B2 (en) 2016-09-30 2020-08-18 Commvault Systems, Inc. Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including operations by a master monitor node
US10509921B2 (en) * 2017-05-31 2019-12-17 Intuit Inc. System for managing transactional data
CN110019502B (zh) * 2017-08-29 2023-03-21 阿里巴巴集团控股有限公司 在主数据库和备数据库之间的同步方法、数据库系统和设备
CN109783200B (zh) * 2017-11-13 2023-09-22 阿里云计算有限公司 数据处理方法、装置及设备
CN108153598B (zh) * 2017-12-25 2021-06-25 东软集团股份有限公司 基于微服务架构的数据一致性方法以及装置
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
CN112783903B (zh) * 2019-11-07 2024-04-05 北京沃东天骏信息技术有限公司 生成更新日志的方法和装置
US11099956B1 (en) 2020-03-26 2021-08-24 Commvault Systems, Inc. Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations
US11645175B2 (en) 2021-02-12 2023-05-09 Commvault Systems, Inc. Automatic failover of a storage manager
CN114116665B (zh) * 2021-11-22 2023-07-25 北京海量数据技术股份有限公司 数据库中并行写入事务日志以提升处理效率的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544359A (en) * 1993-03-30 1996-08-06 Fujitsu Limited Apparatus and method for classifying and acquiring log data by updating and storing log data
US6728879B1 (en) * 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6341285B1 (en) * 1999-06-28 2002-01-22 Lucent Technologies Inc. Serial protocol for transaction execution in main-memory database systems
JP4237354B2 (ja) * 1999-09-29 2009-03-11 株式会社東芝 トランザクション処理方法及びトランザクション処理システム
US6691115B2 (en) * 2001-06-15 2004-02-10 Hewlett-Packard Development Company, L.P. System and method for purging database update image files after completion of associated transactions for a database replication system with multiple audit logs

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101120235B1 (ko) * 2008-07-18 2012-03-16 (주)디에프아이비즈 트랜잭션 로그의 병렬처리를 이용한 변경 데이타 추출방법
CN108664340A (zh) * 2018-04-16 2018-10-16 北京酷我科技有限公司 一种多线程日志发送管理的方法
CN108664340B (zh) * 2018-04-16 2022-02-08 北京酷我科技有限公司 一种多线程日志发送管理的方法

Also Published As

Publication number Publication date
US6769003B2 (en) 2004-07-27
US20020178177A1 (en) 2002-11-28
KR100625595B1 (ko) 2006-09-20

Similar Documents

Publication Publication Date Title
KR100625595B1 (ko) 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템
US6738971B2 (en) Using a resource manager to coordinate the comitting of a distributed transaction
US7624112B2 (en) Asynchronously storing transaction information from memory to a persistent storage
KR102072726B1 (ko) 데이터베이스로의 미들-티어 트랜잭션 로그들의 인라인 위임을 지원하는 시스템들 및 방법들
US5768587A (en) Operating a transaction manager with a non-compliant resource manager
US7366738B2 (en) Method and system for object cache synchronization
US5581753A (en) Method for providing session consistency guarantees
US7328213B2 (en) Transaction processing method, transaction control apparatus and program thereof
US20070043726A1 (en) Affinity-based recovery/failover in a cluster environment
US20090300017A1 (en) Transaction Parallel Control Method, and Database Managemet System
US8606833B2 (en) Method and system of committing operations of a synchronized transaction
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
US6141679A (en) High performance distributed transaction processing methods and apparatus
US6330686B1 (en) Handling protected conversation messages across IMS restart in shared queues environment
US7752225B2 (en) Replication and mapping mechanism for recreating memory durations
US11288263B2 (en) Change service for shared database object
US7228455B2 (en) Transaction branch management to ensure maximum branch completion in the face of failure
US6092166A (en) Cross-system data piping method using an external shared memory
WO2023103340A1 (zh) 一种区块数据提交的方法及装置
US20060123069A1 (en) Method and system for deferred synchronisation of data
CN107102901B (zh) 一种任务处理方法和装置
US6539434B1 (en) UOWE's retry process in shared queues environment
CN109857523A (zh) 一种用于实现数据库高可用性的方法及装置
JPH04199339A (ja) 分散処理システムの分散トランザクションファイル制御方法
JPH10232809A (ja) トランザクション処理システム

Legal Events

Date Code Title Description
A201 Request for examination
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: 20120903

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130829

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee