KR20140047230A - 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 - Google Patents

분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 Download PDF

Info

Publication number
KR20140047230A
KR20140047230A KR1020120112508A KR20120112508A KR20140047230A KR 20140047230 A KR20140047230 A KR 20140047230A KR 1020120112508 A KR1020120112508 A KR 1020120112508A KR 20120112508 A KR20120112508 A KR 20120112508A KR 20140047230 A KR20140047230 A KR 20140047230A
Authority
KR
South Korea
Prior art keywords
commit
transaction
node
participant
coordinator
Prior art date
Application number
KR1020120112508A
Other languages
English (en)
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 KR1020120112508A priority Critical patent/KR20140047230A/ko
Priority to US13/665,004 priority patent/US20140108484A1/en
Priority to CN201310349452.6A priority patent/CN103731465A/zh
Publication of KR20140047230A publication Critical patent/KR20140047230A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 다수의 노드를 포함하고, 각각의 노드가 복제본을 갖는 분산 시스템에서 트랜잭션을 처리하는 방법에 관련된다. 본 발명의 방법은, 하나의 조정자 노드에서, 그의 복제본에게 상기 트랜잭션의 커밋 로그를 전달하는 단계와, 상기 조정자 노드에서, 상기 복제본으로부터 상기 커밋 로그에 대한 답변을 수신하는 단계와, 상기 조정자 노드에서, 모든 참여자 노드들에게 상기 트랜잭션의 커밋을 요청하는 커밋 메시지를 전송하는 단계와, 각각의 상기 참여자 노드에서, 상기 커밋 메시지에 기반하여 상기 트랜잭션의 커밋을 수행하는 단계를 포함한다.

Description

분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 {METHOD FOR OPTIMIZING DISTRIBUTED TRANSACTION IN DISTRIBUTED SYSTEM AND DISTRIBUTED SYSTEM WITH OPTIMIZED DISTRIBUTED TRANSACTION}
본 발명은 분산 시스템에서 수행되는 분산 트랜잭션의 최적화에 관한 것으로, 더욱 상세하게는 분산 시스템에서 분산 트랜잭션의 커밋을 최적화하는 방법 및 트랜잭션을 최적화한 분산 시스템에 관한 것이다.
분산 시스템은 두 개 이상의 네트워크에 상호 연결된 다수의 노드들, 예를 들어, 독립적인 서버, 컴퓨터 또는 데이터베이스 시스템들을 포함한다. 분산 시스템은 네트워크로 연결된 여러 노드들에서 하나의 작업 단위인 트랜잭션을 분산시켜 실행함으로써 마치 하나의 작업이 실행되는 것처럼 보이도록 하는 시스템이다. 따라서 분산 시스템에서 각각의 로컬 리소스에서 발생하는 트랜잭션의 내용이나 결과는 네트워크에 연결된 다른 노드들과 동기화된다. 여러 노드들 중 전체 트랜잭션을 통합하여 관리하는 어느 하나의 노드는 트랜잭션의 조정자(coordinator) 또는 마스터(master)가 되며, 나머지 노드들은 참여자(participant) 또는 슬레이브(slave)가 된다. 이때, 여러 노드들 중 트랜잭션을 발생한 어느 하나의 노드는 트랜잭션의 조정자가 되며, 나머지 시스템들은 참여자가 된다.
분산 시스템에서 수행되는 분산 트랜잭션은 네트워크에 분산되어 있는 리소스들에서 트랜잭션을 수행하는 것을 말하며, 통상적으로 각각의 노드에서 트랜잭션의 일관성(atomicity)을 위한 2-단계 커밋 프로토콜(2-phase commit protocol)을 이용하여 처리된다. 2-단계 커밋 프로토콜에서는 조정자가 참여자에게 각각의 로컬 트랜잭션(local transaction)을 처리하도록 요청한다. 조정자는 각 단계에서 모든 참여자들로부터 성공이라는 답변(reply)를 받은 후에 트랜잭션의 성공 여부를 결정한다. 모든 참여자들이 트랜잭션을 성공했다면 그 단계는 성공이고, 그렇지 못했다면 그 단계는 실패이다. 트랜잭션이 성공한 경우에는 커밋(commit)에 대한 답변을 사용자에게 보내고, 실패한 경우에는 전체 참여자에게 각각의 로컬 트랜잭션을 취소(abort)하도록 요청한다.
2단계 커밋 프로토콜은 일반적으로 두 단계로 나뉘어 실행된다. 첫 번째 단계는 처리준비(prepare) 단계이다. 이 단계에서, 조정자는 로컬 트랜잭션을 준비하라는 메시지를 자신의 로그에 기록하고, 각 참여자에게 처리준비 메시지를 전송한다. 각각의 참여자는 처리준비 메시지를 수신하고 각자 로컬 트랜잭션을 수행할 수 있을 경우, 처리준비라는 메시지를 자신의 로그에 기록하고, 조정자에게 처리준비라는 메시지를 보낸다.
이와 같이, 전체 참여자 및 조정자는 각각의 로컬 트랜잭션이 처리준비 단계에 도달했다는 것을 영구적으로 로그를 통해 남긴다. 이 과정에서 일부 참여자가 로컬 트랜잭션의 처리가 불가능하다면, 조정자는 로컬 트랜잭션의 실패를 인식하고 전체 참여자에게 각각의 로컬 트랜잭션을 취소하도록 요청한다.
두 번째 단계는 커밋(commit) 단계이다. 이 단계는, 모든 참여자 및 조정자가 처리준비 단계에 있음이 확인된 다음에 진행된다. 조정자는 전체 참여자에게 커밋을 수행하도록 요청하며, 각 참여자는 커밋을 수행한 후 이에 대한 답변을 조정자에게 전송한다. 이 때 영속성을 위하여 각 참여자는 커밋에 대한 정보를 자신의 로그에 남긴다.
모든 참여자로부터 커밋이 성공했다는 답변을 수신하면, 조정자는 글로벌 커밋(global commit)이 성공되었다고 판단한다. 만일 일부 참여자에서 로컬 트랜잭션의 커밋이 실패하더라도 다른 일부 참여자에서 로컬 트랜잭션의 커밋이 성공했을 수도 있기 때문에, 커밋의 성패를 바로 판단할 수 없다. 이런 경우 분산 트랜잭션의 일관성을 위하여 후처리 작업이 수행되어야 한다. 후처리 작업은 분산 시스템의 구성을 따르며, 이러한 후처리 작업은, 예를 들어, 철회 가정(presumed abort)과 커밋 가정(presumed commit) 방식을 들 수 있다.
첫 번째 단계가 성공하고 두 번째 단계로 진행되기 전에 각 참여자에서는 로컬 트랜잭션의 커밋 여부를 결정할 수가 없다. 이럴 때 로컬 트랜잭션이 수정한 데이터에 접근하게 되면 데이터를 볼 수가 없다. 다시 말해서, 두 번째 단계인 커밋이 되어야 각 트랜잭션들이 성공하였다고 판단할 수 있으므로 처리준비 단계의 트랜잭션들은 아무것도 안 한 상태와 같기 때문이다.
2-단계 커밋 프로토콜은 모든 참여자와의 요청-답변 셋이 두 번 발생하게 되어 분산 시스템의 성능상의 걸림돌이 되어왔다. 이를 해결하기 위하여 프로토콜을 단순화시키는 다양한 방법들이 제안되었다.
그 중 한가지 방법은 1-단계 커밋 프로토콜이다. 1-단계 커밋은 조정자 로그와 참여자 측에서 트랜잭션이 진행될 때마다 미리 준비단계로 만드는 Implicit yes-vote를 도입하였다. 이 경우 추가 로그가 남고, 매번 새로운 작업이 들어올 때마다 참여자의 상태 변경이 필요하였다.
또한 조정자의 로그는 하드디스크와 같은 데이터 저장 장치에 기록되는 것이 보장되어야 하므로 데이터 저장 장치의 성능 및 속도가 상대적으로(?) 낮거나 느린 경우 커밋의 수행 시간이 오래 걸리게 된다.
근래 대용량 시스템에 대한 요구가 많아짐에 따라, 분산 시스템 환경은 데이터의 영속성(durability)과 가용성(availability)을 보장하기 위하여 시스템에 복제본(replica)을 도입하는 경우가 많다. 구체적으로, 특정 데이터나 머신에 대하여 복제본을 두어, 원본의 데이터나 머신에 접근할 수 없는 상황이 되어도, 복제본을 이용하여 원본과 동일한 데이터와 서비스를 제공하도록 한다.
그러나, 복제본을 갖는 분산 시스템 환경에서는 기존의 분산 트랜잭션의 처리 방식을 적용하는 데 많은 어려움이 있다. 즉, 이러한 분산 시스템은 분산 트랜잭션을 처리하기 위해 2단계 커밋 프로토콜을 지원하도록 구성되어야 할 뿐만 아니라 원본-복제본과의 통신을 수행하는데 필요한 부하까지 더해져야 하기 때문이다.
그러므로, 본 발명은 분산 시스템에서 분산 트랜잭션의 커밋 절차를 줄임으로써 분산 트랜잭션의 커밋을 최적화하는 방법을 제공하는 것을 그 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 실시예에 따르면, 분산 시스템에서 트랜잭션을 처리하는 방법, 및 이를 위한 분산 시스템이 제공된다.
본 발명의 실시예에서, 분산 시스템은 다수의 노드를 포함하고, 각각의 노드가 자기의 복제본을 갖는다. 이러한 분산 시스템에서 트랜잭션을 처리하는 방법은, 각각의 노드에서, 그의 복제본에게 상기 트랜잭션의 커밋 로그를 전달하는 단계와, 각각의 노드에서, 상기 복제본으로부터 상기 커밋 로그에 대한 답변을 수신하여 상기 트랜잭션의 커밋을 완료하는 단계를 포함한다.
본 발명의 실시예에서, 상기 트랜잭션은 로컬 트랜잭션이며, 각각의 상기 노드는 상기 분산 시스템에서 영속성을 보장하기 위하여 하나 이상의 복제본을 갖는다.
본 발명의 실시예에서, 분산 시스템은 다수의 노드를 포함하고, 각각의 노드가 복제본을 갖는다. 이러한 분산 시스템에서 트랜잭션을 처리하는 방법은, 하나의 조정자 노드에서, 그의 복제본에게 상기 트랜잭션의 커밋 로그를 전달하는 단계와, 상기 조정자 노드에서, 상기 복제본으로부터 상기 커밋 로그에 대한 답변을 수신하는 단계와, 상기 조정자 노드에서, 모든 참여자 노드들에게 상기 트랜잭션의 커밋을 요청하는 커밋 메시지를 전송하는 단계와, 각각의 상기 참여자 노드에서, 상기 커밋 메시지에 기반하여 상기 트랜잭션의 커밋을 수행하는 단계를 포함한다.
본 발명의 실시예에서, 상기 조정자 노드에서 각각의 참여자 노드에게 전송된 커밋 메시지는 상기 각각의 참여자로부터 상기 커밋 메시지에 대한 응답을 필요로 하지 않는 커밋 요청이다.
본 발명의 실시예에서, 상기 방법은, 상기 조정자 노드로부터 전송된 상기 커밋 메시지를 받지 못했거나 상기 커밋에 실패한 참여자 노드는 상기 조정자 노드에게 상기 트랜잭션의 커밋에 대해 추후 확인을 받는 단계를 더 포함하며,
상기 추후 확인을 받는 단계는, 각각의 참여자 노드에서, 주기적으로 상기 커밋 메시지가 수신되었는지를 체크하는 단계와, 각각의 참여자 노드에서, 상기 커밍 메시지가 수신되지 않은 경우, 상기 조정자 노드에게 상기 커밋 메시지의 전송 여부를 문의하는 단계와, 각각의 참여자 노드에서, 상기 조정자로부터의 상기 문의에 대한 답변에 따라 상기 트랜잭션의 커밋 또는 취소를 수행하는 단계를 포함한다.
본 발명의 실시예에서, 상기 복제본은 그의 원본 노드가 기능을 할 수 없을 때 상기 원본 노드를 대신하여 상기 트랜잭션을 처리하도록 구성된다.
본 발명의 실시예에서, 상기 분산 시스템은, 다수의 노드, 및 각각의 상기 노드에 속하는 복제본을 포함하며, 각각의 상기 노드는 그의 복제본에게 트랜잭션의 커밋 로그를 전달하고, 상기 복제본으로부터 상기 커밋 로그에 대한 답변을 수신하여 로컬 트랜잭션을 완료하도록 구성된다.
본 발명의 실시예에서, 상기 노드들 중 하나의 조정자 노드는 상기 트랜잭션에 참가한 나머지 참여자 노드들에게 상기 트랜잭션의 커밋을 요청하는 커밋 메시지를 전송하도록 구성되며, 각각의 상기 참여자 노드는 상기 커밋 메시지에 기반하여 상기 트랜잭션의 커밋을 수행하여 글로벌 트랜잭션을 완료하도록 구성된다.
본 발명의 실시예에서, 각각의 상기 참여자 노드는 상기 조정자 노드에서 전송된 커밋 메시지에 대해 응답하지 않도록 구성된다.
본 발명의 실시예에서, 상기 조정자 노드로부터 전송된 상기 커밋 메시지를 받지 못했거나 상기 커밋에 실패한 참여자 노드는 주기적으로 상기 커밋 메시지가 수신되었는지를 체크하고, 상기 커밍 메시지가 수신되지 않은 경우, 상기 조정자 노드에게 상기 커밋 메시지의 전송 여부를 문의하고, 상기 조정자로부터의 상기 문의에 대한 답변에 따라 상기 트랜잭션의 커밋 또는 취소를 수행하도록 구성된다.
본 발명의 실시예에서, 상기 복제본은 그의 원본 노드가 기능을 할 수 없을 때 상기 원본 노드를 대신하여 상기 트랜잭션을 처리하도록 구성된다.
본 발명에 따르면, 데이터의 영속성을 보장하기 위해 복제본을 구비한 분산 시스템에서 2단계 커밋 절차의 단점인 반응 속도를 개선할 수 있다.
도 1은 본 발명이 적용되는 분산 시스템의 개략적인 블록도를 도시한다.
도 2는 도 1에 도시된 각 노드의 상세 블록도이다.
도 3은 본 발명의 실시예에 따라서 분산 트랜잭션의 커밋을 최적화하는 방법을 설명하는 시퀀스 다이어그램이다.
도 4는 본 발명의 실시예에 따라서 유실된 커밋 메시지에 대처하기 위해 조정자 노드로부터 트랜잭션 커밋의 추후 확인을 받기 위한 방법을 설명하는 시퀀스 다이어그램을 도시한다.
도 1은 본 발명이 적용되는 분산 시스템의 개략적인 블록도를 도시한다.
도시된 바와 같이, 분산 시스템은 네트워크(120)에 상호 연결된 다수의 노드들(100, 200), 예컨대, 서버, 컴퓨터 시스템 또는 데이터베이스 시스템들을 포함한다.
다수의 노드들(100, 200) 중 전체 트랜잭션을 통합하여 관리하는 어느 하나의 노드, 예를 들면, 노드(100)는 트랜잭션의 조정자(coordinator) 또는 마스터(master)의 역할을 담당하며, 나머지 노드들(200)은 트랜잭션에 참여하는 참여자(participant) 또는 슬레이브(slave)의 역할을 담당한다.
또한, 각각의 노드들(100, 200)은 자기의 복제본(replica)(110, 210)을 가지고 있다. 노드들(100, 200)과 복제본(110, 210)은 각기 동일한 컴퍼넌트들을 가지며, 복제본(110, 210)은 자기의 원본 노드(100 또는 200)와 실시간으로 트랜잭션을 동기화 한다. 각각의 노드들(100, 200)이 모두 원본 및 복제본으로 구성되어 있기 때문에, 원본 노드(100, 200)에서 데이터의 수정이 발생하면 이에 대한 로그가 생성되고, 해당 로그가 복제본(110, 210)으로 전달된다. 따라서, 복제본(110, 210)에서는 원본 노드(100, 200)와 데이터의 동일성을 유지할 수도 있다.
복제본(110, 210)은 분산 시스템의 데이터 영속성과, 원본 노드(100, 200)에서 수행되는 로컬 트랜잭션의 커밋 성능을 높이기 위하여 존재한다. 원본 노드(100, 200)에서 로컬 트랜잭션의 수행 시 발생하는 로그는 예컨대, 원본 노드(100, 200)의 하드디스크 등과 같은 영속적인 기록 매체에 기록되는 대신, 복제본(110, 210)에 전달되어 영속성을 보장한다. 또한, 복제본(110, 210)은 원본의 노드(100, 200)가 고장 등으로 인해 제 기능을 상실할 때 원본의 노드(100, 200)를 대신하여 분산 트랜잭션의 관리를 위하여 사용된다. 즉, 원본의 노드(100, 200)가 고장이 나더라도 복제본(110, 210)은 원본 노드(100, 200)의 역할을 대행하여, 원본 노드(100, 200)로부터 전달된 로그를 이용하여 데이터를 생성할 수 있음으로써 분산 시스템에서 데이터의 영속성을 보장할 수 있다.
따라서, 분산 시스템이 하드디스크의 성능보다 우월한 네트워크 구성을 가지는 경우 커밋 성능이 향상될 수 있다. 원본 노드(100, 200)에 속하는 복제본의 개수는 로그를 영구히 보존할 수 있도록 분산 시스템에 따라 설정될 수 있다. 예를 들면, 복제본의 개수는 시스템에 설정된 안전도에 따라서 대개의 경우 2 내지 3 개 정도로 설정된다.
도 2는 도 1에 도시된 각 노드의 상세 블록도이다.
노드(100, 200)는 각기 트랜잭션 관리자(TX manager(transaction manager)(102, 202), 데이터 스토리지(104, 204), 로그(106, 206)를 포함한다. 마찬가지로, 노드(100, 200)의 복제본(110, 210)도 각기 트랜잭션 매니저(112, 212), 데이터 스토리지(114, 214), 로그(116, 216)를 포함한다.
노드(100, 200)의 데이터 스토리지(104, 204)는 분산 시스템에서 수행되는 트랜잭션에 관련한 데이터를 저장한다.
노드(100, 200)의 로그(106, 206)에는 노드에 언제 접속했는지 무엇을 작업했는지와 같은 정보가 저장되는 파일 또는 저장 장소이다.
복제본(110, 210)의 데이터 스토리지(114, 214)는 노드(100, 200)의 데이터 스토리지(104, 204)에 저장된 데이터와 동기화된 데이터가 저장된다.
복제본(110, 210)의 로그(116, 216)는 노드(100, 200)의 로그(106, 206)와 동일한 기능을 수행한다.
노드(100, 200)의 트랜잭션 관리자(102, 202)는 조정자 또는 참여자의 역할에 따라 그 기능이 달라진다. 예를 들어, 노드(100)가 조정자의 역할을 하는 경우, 조정자(100)의 트랜잭션 관리자(102)는 조정자(100)와 모든 트랜잭션 참여자들(200)과의 통신을 조정하는 역할을 담당한다. 따라서, 조정자(100)의 트랜잭션 관리자(102)는 참여자(200)에서 수행되는 트랜잭션에 대한 정보뿐만 아니라 참여자들(200)의 시스템에 대한 정보를 필요로 한다. 반면, 노드(200)가 참여자의 역할을 하는 경우, 참여자(200)의 트랜잭션 관리자(202)는 조정자(100)의 시스템 정보를 필요로 한다.
도 3은 본 발명의 실시예에 따라서 커밋을 최적화하는 방법을 설명하는 시퀀스 다이어그램이다. 도 3에서, 노드(100)는 조정자 노드이며, 노드(200)는 참여자 노드라고 가정한다.
먼저, 단계(302)에서, 조정자 노드(100)의 트랜잭션 관리자(102)는 트랜잭션의 커밋 로그를 조정자(100)의 복제본(110)에게 전달한다. 조정자 노드(100)의 커밋 로그는 조정자 노드(100)의 하드디스크와 같은 저장 매체에 기록되지 않는 대신 복제본(110)에 전달되어 영구히 보존된다. 그러므로, 조정자에서 생성된 로그를 영구히 보존하는 부담을 덜 수 있다. 그러나, 이와 달리, 조정자의 커밋 로그는 조정자 노드(100)의 저장 매체에 기록되도록 구성될 수도 있다.
그 다음 단계(304)에서, 조정자 노드(100)의 트랜잭션 관리자(102)는 복제본(110)의 트랜잭션 관리자(112)로부터 커밋 로그의 수신을 나타내는 응답을 받는다.
그 다음 단계(306)에서, 조정자 노드(100)의 트랜잭션 관리자(102)는 사용자에게 트랜잭션에 대한 커밋 응답을 보냄으로써 사용자가 요청한 트랜잭션의 완료를 통지한다. 이러한 통지를 통해 사용자 입장에서 커밋은 완료된 것으로 간주될 수 있다.
그러므로, 조정자와 그의 복제본과의 전술한 한 셋의 커밋 요청과 응답을 1회 수행하는 것으로 로컬 트랜잭션의 커밋이 완료될 수 있다.
그 다음 단계(308)에서, 글로벌 트랜잭션을 위해 조정자 노드(100)의 트랜잭션 관리자(102)는 트랜잭션의 커밋을 요청하는 트랜잭션 커밋 메시지를 모든 참여자 노드(200)에게 전송한다. 실시예에 따르면, 조정자 노드(100)에서 참여자 노드(200)에 전송된 트랜잭션 커밋 메시지는 참여자 노드(200)로부터 응답을 필요로 하지 않는 커밋 요청이다. 이러한 트랜잭션 커밋 메시지는 참여자 노드들에 전달되어 분산 시스템에서 최소한의 정합성을 유지하는 목적으로 사용된다.
그 다음 단계(310)에서, 트랜잭션 커밋 메시지에 응답하여, 각 참여자 노드(200)는 스스로 커밋을 진행한다. 그러나, 전술한 바와 같이 각각의 참여자 노드(200)는 조정자 노드(100)에게 커밋에 대한 응답은 보내지 않는다.
각 참여자 노드(200)에서 트랜잭션의 커밋을 진행할 때, 각 참여자 노드(200)는 전술한 단계(302)에서 수행된 것과 같은 동일한 방식으로 각자의 복제본(210)에 커밋 로그를 전달함으로써 로컬 트랜잭션의 커밋을 보장한다. 그러므로, 전술한 방식을 통하여 분산 시스템에서 수행되는 로컬 및 글로벌 트랜잭션의 커밋 절차를 최적화할 수 있다.
한편, 전술한 단계(308)에서 조정자 노드(100)로부터 각 참여자 노드(200)에게 커밋 메시지를 전달하는 중에 커밋 메시지의 유실이 발생할 수도 있다. 커밋 메시지의 유실은 조정자 노드(100)로부터 전송된 커밋 메시지가 일부의 참여자 노드에게 도달하지 못할 때 및 참여자 노드가 커밋 메시지를 받았더라도 그 참여자 노드에서 커밋이 진행될 수 없을 때 발생할 수 있다. 참여자 노드에서 커밋이 진행될 수 없을 때는, 예를 들면, 조정자 노드와의 세션이 끊어졌거나, 참여자 노드에서 전원 고장 등을 들 수 있다.
도 4는 본 발명의 실시예에 따라서 커밋 메시지의 유실에 대처하기 위해 조정자 노드로부터 트랜잭션 커밋의 추후 확인을 받기 위한 방법을 설명하는 시퀀스 다이어그램을 도시한다.
도 4와 관련하여, 참여자 노드(200)는 조정자 노드(100)로부터 전송된 커밋 메시지를 받지 못하였거나 커밋을 진행할 수 없었던 참여자 노드라고 가정한다.
트랜잭션 커밋의 추후 확인에 앞서, 참여자 노드에서의 문제 해결이 선행되어야 한다. 예컨대, 조정자 노드와의 세션을 복구하거나 참여자 노드의 전원 고장을 복구하는 절차가 선행될 필요가 있다.
그러면, 단계(402)에서, 참여자 노드(200)의 트랜잭션 관리자(202)는 주기적으로 커밋 메시지가 수신되었는지를 체크한다. 커밋 메시지가 수신되지 않았다고 체크되면, 참여자 노드(200)의 트랜잭션 관리자(202)는 참여자 노드에서 수행되었을지도 모를 미지의 트랜잭션의 커밋 메시지가 있었을 것으로 예상할 수 있다.
그러면, 단계(406)에서, 참여자 노드(200)의 트랜잭션 관리자(202)는 조정자 노드(100)의 트랜잭션 관리자(102)에게 트랜잭션의 커밋 메시지의 전송 여부를 문의한다.
그 다음 단계(408)에서, 조정자 노드(100)의 트랜잭션 관리자(102)는 각각의 참여자 노드(200)의 트랜잭션 관리자(202)의 상태를 파악하여 참여자 노드(200)로부터 문의된 트랜잭션이 커밋 또는 취소되어야 하는지를 판단한다. 만일 참여자 노드(200)에서 수행될 트랜잭션이 커밋되어야 한다고 판단되면, 조정자 노드(100)의 트랜잭션 관리자(102)는 참여자 노드(200)의 트랜잭션 관리자(202)에게 커밋하라는 메시지를 전송한다. 그러나, 참여자 노드(200)에서 수행될 트랜잭션이 취소되어야 한다고 판단되면, 조정자 노드(100)의 트랜잭션 관리자(102)는 참여자 노드(200)의 트랜잭션 관리자(202)에게 취소하라는 메시지를 전송한다.
그러면 단계(410)에서, 참여자 노드(200)의 트랜잭션 관리자(202)는 조정자 노드(100)의 트랜잭션 관리자(102)로부터 전송된 메시지를 확인하고, 메시지에 따라 트랜잭션의 커밋 또는 취소를 수행한다.
참여자 노드(200)에서 커밋 또는 취소를 진행할 때, 도 3에서 설명된 바와 같이 참여자 노드(200)는 그의 복제본(210)에게 커밋 로그를 전달하고, 복제본(210)으로부터 응답을 받는 방식으로 트랜잭션의 커밋을 보장한다.
그러므로, 일부의 참여자 노드가 조정자 노드로부터 커밋 요청을 받지 못하였거나 커밋에 실패하였을 때, 조정자 노드로부터 추후 확인을 받음으로써, 분산 시스템의 완벽한 정합성을 맞출 수 있게 된다.
전술한 바와 같이, 본 발명의 실시예에 따르면, 데이터의 영속성을 보장하기 위해 복제본을 구비한 분산 시스템에서 2단계 커밋 절차의 단점인 반응 속도를 개선할 수 있다. 또한, 본 발명의 실시예에 의한 방법을 통하여 종래 기술의 커밋 절차보다 빠르고, 참여자들의 상태 변경을 위하여 새로운 로그를 매번 생성하는 부담을 덜어줄 수 있다.
100: 조정자 노드
200: 참여자 노드
110, 210 : 복제본
102, 202: 트랜잭션 관리자
104, 204: 데이터 스토리지
106, 206: 로그

Claims (13)

  1. 다수의 노드를 포함하고, 각각의 노드가 자기의 복제본을 갖는 분산 시스템에서 트랜잭션을 처리하는 방법에 있어서,
    각각의 노드에서, 그의 복제본에게 상기 트랜잭션의 커밋 로그를 전달하는 단계와,
    각각의 노드에서, 상기 복제본으로부터 상기 커밋 로그에 대한 답변을 수신하여 상기 트랜잭션의 커밋을 완료하는 단계를 포함하는,
    분산 시스템의 트랜잭션 처리 방법.
  2. 제1항에 있어서, 상기 트랜잭션은 로컬 트랜잭션인 분산 시스템의 트랜잭션 처리 방법.
  3. 제1항에 있어서, 각각의 상기 노드는 상기 분산 시스템에서 영속성을 보장하기 위하여 하나 이상의 복제본을 갖는 분산 시스템의 트랜잭션 처리 방법.
  4. 다수의 노드를 포함하고, 각각의 노드가 복제본을 갖는 분산 시스템에서 트랜잭션을 처리하는 방법에 있어서,
    하나의 조정자 노드에서, 그의 복제본에게 상기 트랜잭션의 커밋 로그를 전달하는 단계와,
    상기 조정자 노드에서, 상기 복제본으로부터 상기 커밋 로그에 대한 답변을 수신하는 단계와,
    상기 조정자 노드에서, 모든 참여자 노드들에게 상기 트랜잭션의 커밋을 요청하는 커밋 메시지를 전송하는 단계와,
    각각의 상기 참여자 노드에서, 상기 커밋 메시지에 기반하여 상기 트랜잭션의 커밋을 수행하는 단계
    를 포함하는 분산 시스템의 트랜잭션 처리 방법.
  5. 제4항에 있어서, 상기 조정자 노드에서 각각의 참여자 노드에게 전송된 커밋 메시지는 상기 각각의 참여자로부터 상기 커밋 메시지에 대한 응답을 필요로 하지 않는 커밋 요청인 분산 시스템의 트랜잭션 처리 방법.
  6. 제4항에 있어서, 상기 조정자 노드로부터 전송된 상기 커밋 메시지를 받지 못했거나 상기 커밋에 실패한 참여자 노드는 상기 조정자 노드에게 상기 트랜잭션의 커밋에 대해 추후 확인을 받는 단계를 더 포함하는 분산 시스템의 트랜잭션 처리 방법.
  7. 제6항에 있어서, 상기 추후 확인을 받는 단계는,
    각각의 참여자 노드에서, 주기적으로 상기 커밋 메시지가 수신되었는지를 체크하는 단계와,
    각각의 참여자 노드에서, 상기 커밍 메시지가 수신되지 않은 경우, 상기 조정자 노드에게 상기 커밋 메시지의 전송 여부를 문의하는 단계와,
    각각의 참여자 노드에서, 상기 조정자로부터의 상기 문의에 대한 답변에 따라 상기 트랜잭션의 커밋 또는 취소를 수행하는 단계를 포함하는 분산 시스템의 트랜잭션 처리 방법.
  8. 제4항에 있어서, 상기 복제본은 그의 원본 노드가 기능을 할 수 없을 때 상기 원본 노드를 대신하여 상기 트랜잭션을 처리하도록 구성된 분산 시스템의 트랜잭션 처리 방법.
  9. 분산 시스템에 있어서,
    다수의 노드, 및
    각각의 상기 노드에 속하는 복제본을 포함하며,
    각각의 상기 노드는 그의 복제본에게 트랜잭션의 커밋 로그를 전달하고, 상기 복제본으로부터 상기 커밋 로그에 대한 답변을 수신하여 로컬 트랜잭션을 완료하도록 구성된 분산 시스템.
  10. 제9항에 있어서,
    상기 노드들 중 하나의 조정자 노드는 상기 트랜잭션에 참가한 나머지 참여자 노드들에게 상기 트랜잭션의 커밋을 요청하는 커밋 메시지를 전송하도록 구성되며,
    각각의 상기 참여자 노드는 상기 커밋 메시지에 기반하여 상기 트랜잭션의 커밋을 수행하여 글로벌 트랜잭션을 완료하도록 구성된 분산 시스템.
  11. 제10항에 있어서, 각각의 상기 참여자 노드는 상기 조정자 노드에서 전송된 커밋 메시지에 대해 응답하지 않도록 구성된 분산 시스템.
  12. 제10항에 있어서, 상기 조정자 노드로부터 전송된 상기 커밋 메시지를 받지 못했거나 상기 커밋에 실패한 참여자 노드는 주기적으로 상기 커밋 메시지가 수신되었는지를 체크하고,
    상기 커밍 메시지가 수신되지 않은 경우, 상기 조정자 노드에게 상기 커밋 메시지의 전송 여부를 문의하고,
    상기 조정자로부터의 상기 문의에 대한 답변에 따라 상기 트랜잭션의 커밋 또는 취소를 수행하도록 구성된 분산 시스템.
  13. 제9항에 있어서, 상기 복제본은 그의 원본 노드가 기능을 할 수 없을 때 상기 원본 노드를 대신하여 상기 트랜잭션을 처리하도록 구성된 분산 시스템.
KR1020120112508A 2012-10-10 2012-10-10 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 KR20140047230A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120112508A KR20140047230A (ko) 2012-10-10 2012-10-10 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
US13/665,004 US20140108484A1 (en) 2012-10-10 2012-10-31 Method and system for optimizing distributed transactions
CN201310349452.6A CN103731465A (zh) 2012-10-10 2013-08-12 分布式系统及其事务处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120112508A KR20140047230A (ko) 2012-10-10 2012-10-10 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템

Publications (1)

Publication Number Publication Date
KR20140047230A true KR20140047230A (ko) 2014-04-22

Family

ID=50455391

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120112508A KR20140047230A (ko) 2012-10-10 2012-10-10 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템

Country Status (3)

Country Link
US (1) US20140108484A1 (ko)
KR (1) KR20140047230A (ko)
CN (1) CN103731465A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050930A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786592A (zh) * 2014-12-15 2016-07-20 北大方正集团有限公司 一种分布式事务的处理方法及装置
CN104504130A (zh) * 2014-12-31 2015-04-08 天津南大通用数据技术股份有限公司 应用于分布式数据库的解决2pc模型单点故障问题的方法
CN104767737A (zh) * 2015-03-23 2015-07-08 贵阳朗玛信息技术股份有限公司 插入式事务管理器及其应用方法
US10678445B2 (en) 2015-06-10 2020-06-09 Microsoft Technology Licensing, Llc Recovery in data centers
CN106168915A (zh) * 2016-04-25 2016-11-30 云南电网有限责任公司昆明供电局 分布式系统架构数据处理一致性保障方法
CN109697110B (zh) * 2017-10-20 2023-01-06 阿里巴巴集团控股有限公司 事务协调处理系统、方法、装置及电子设备

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095421A (en) * 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
US5423037A (en) * 1992-03-17 1995-06-06 Teleserve Transaction Technology As Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
US5687363A (en) * 1994-03-30 1997-11-11 Siemens Stromberg-Carlson Distributed database architecture and distributed database management system for open network evolution
JP3593366B2 (ja) * 1994-09-19 2004-11-24 株式会社日立製作所 デ−タベ−ス管理方法
US5799323A (en) * 1995-01-24 1998-08-25 Tandem Computers, Inc. Remote duplicate databased facility with triple contingency protection
US5799322A (en) * 1995-01-24 1998-08-25 Tandem Computer, Inc. System and method for stopping updates at a specified timestamp in a remote duplicate database facility
US5729733A (en) * 1995-05-05 1998-03-17 Harris Corporation Method of operating a distributed databse based on object ownership and transaction classification utilizing an aggressive reverse one phase commit protocol
US5956489A (en) * 1995-06-07 1999-09-21 Microsoft Corporation Transaction replication system and method for supporting replicated transaction-based services
US5819020A (en) * 1995-10-16 1998-10-06 Network Specialists, Inc. Real time backup system
US5878434A (en) * 1996-07-18 1999-03-02 Novell, Inc Transaction clash management in a disconnectable computer and network
US5790789A (en) * 1996-08-02 1998-08-04 Suarez; Larry Method and architecture for the creation, control and deployment of services within a distributed computer environment
JP2001513926A (ja) * 1997-02-28 2001-09-04 シーベル システムズ,インコーポレイティド 複数レベルのリモート・クライアントを持つ部分的複製分散データベース
US6286011B1 (en) * 1997-04-30 2001-09-04 Bellsouth Corporation System and method for recording transactions using a chronological list superimposed on an indexed list
SE521041C2 (sv) * 1997-05-28 2003-09-23 Ericsson Telefon Ab L M Metod för optimering av transaktionsprotokoll inom en distribuerad databas
US6012059A (en) * 1997-08-21 2000-01-04 Dataxel Corporation Method and apparatus for replicated transaction consistency
US6438582B1 (en) * 1998-07-21 2002-08-20 International Business Machines Corporation Method and system for efficiently coordinating commit processing in a parallel or distributed database system
US6529921B1 (en) * 1999-06-29 2003-03-04 Microsoft Corporation Dynamic synchronization of tables
US6675205B2 (en) * 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6785696B2 (en) * 2001-06-01 2004-08-31 Hewlett-Packard Development Company, L.P. System and method for replication of distributed databases that span multiple primary nodes
US7401084B1 (en) * 2001-06-14 2008-07-15 Oracle International Corporation Two-phase commit with queryable caches
US7356550B1 (en) * 2001-06-25 2008-04-08 Taiwan Semiconductor Manufacturing Company Method for real time data replication
US20050114285A1 (en) * 2001-11-16 2005-05-26 Cincotta Frank A. Data replication system and method
US7076508B2 (en) * 2002-08-12 2006-07-11 International Business Machines Corporation Method, system, and program for merging log entries from multiple recovery log files
US8041735B1 (en) * 2002-11-01 2011-10-18 Bluearc Uk Limited Distributed file system and method
US7188125B1 (en) * 2002-12-19 2007-03-06 Veritas Operating Corporation Replication using a special off-host network device
US7177886B2 (en) * 2003-02-07 2007-02-13 International Business Machines Corporation Apparatus and method for coordinating logical data replication with highly available data replication
US7203863B2 (en) * 2003-05-09 2007-04-10 Oracle International Corporation Distributed transaction state management through application server clustering
US7178055B2 (en) * 2003-06-06 2007-02-13 Hewlett-Packard Development Company, L.P. Method and system for ensuring data consistency after a failover event in a redundant data storage system
US7188273B2 (en) * 2003-11-24 2007-03-06 Tsx Inc. System and method for failover
US7478400B1 (en) * 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
KR100926880B1 (ko) * 2007-05-21 2009-11-16 엔에이치엔(주) Dbms에서의 데이터 복제 방법 및 시스템
JP5088734B2 (ja) * 2007-11-22 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 耐障害性トランザクション処理システム及び処理方法
US8054819B2 (en) * 2007-12-06 2011-11-08 Harris Corporation System and method for setting a data rate in TDMA communications
US20090157766A1 (en) * 2007-12-18 2009-06-18 Jinmei Shen Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
US8650155B2 (en) * 2008-02-26 2014-02-11 Oracle International Corporation Apparatus and method for log based replication of distributed transactions using globally acknowledged commits
US20090276754A1 (en) * 2008-05-01 2009-11-05 Kabira Technologies, Inc. Java virtual machine having integrated transaction management system
US8671074B2 (en) * 2010-04-12 2014-03-11 Microsoft Corporation Logical replication in clustered database system with adaptive cloning
CN102693324B (zh) * 2012-01-09 2015-03-18 西安电子科技大学 一种分布式数据库同步系统、同步方法和节点管理方法
CN102710790B (zh) * 2012-06-20 2015-06-10 深圳市远行科技有限公司 一种基于元数据管理的分布式缓存实现方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050930A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 대용량 분산 파일 시스템에서 데이터의 수정을 포함하는 트랜잭션 처리 장치 및 컴퓨터로 읽을 수 있는 기록매체

Also Published As

Publication number Publication date
CN103731465A (zh) 2014-04-16
US20140108484A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
US8185493B2 (en) Solution method of in-doubt state in two-phase commit protocol of distributed transaction
US10255343B2 (en) Initialization protocol for a peer-to-peer replication environment
KR20140047230A (ko) 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
KR101863398B1 (ko) 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법
CA2205725C (en) Preventing conflicts in distributed systems
JP6059216B2 (ja) 分散構成管理のための方法および装置
US20120011100A1 (en) Snapshot acquisition processing technique
US8898191B2 (en) Method for providing connections for application processes to a database server
CN111277616A (zh) 一种基于rdma的数据传输方法和分布式共享内存系统
US10581966B2 (en) Cloud services integrated backup and restore
CN108347455B (zh) 元数据交互方法及系统
CN111158949A (zh) 容灾架构的配置方法、切换方法及装置、设备和存储介质
US11030220B2 (en) Global table management operations for multi-region replicated tables
CN112596801B (zh) 事务处理方法、装置、设备、存储介质、数据库
US8627412B2 (en) Transparent database connection reconnect
US20080276117A1 (en) End-to-end transactional protection for requests in a web application
US11669516B2 (en) Fault tolerance for transaction mirroring
CN111596953B (zh) 版本管理系统、开发数据传输控制方法及相关装置
CN108347454B (zh) 元数据交互方法及系统
Arika et al. A survey on efficient concurrency control algorithm in distributed database systems
JP7016389B1 (ja) システム及びプログラム
JPH11110365A (ja) ネットワーク計算機システム、該システムで用いる計算機、および該システムに係る方法
CN115934006A (zh) Io接入点和数据处理任务管理方法、装置、设备和介质
JP3878881B2 (ja) 非同期エージェントシステム、該システムにおける資源利用方法、資源利用プログラム、および該プログラムを記録した記録媒体
CN117828160A (zh) 数据处理方法和数据处理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment