분산 트랜잭션

Distributed transaction

분산 트랜잭션은 두 개 이상의 네트워크 호스트가 관련된 데이터베이스 트랜잭션입니다.일반적으로 호스트는 트랜잭션 리소스를 제공하는 반면 트랜잭션 관리자는 이러한 리소스에 대한 모든 작업을 포함하는 글로벌 트랜잭션을 생성하고 관리합니다.분산 트랜잭션은 다른 트랜잭션과 마찬가지로 네 가지 ACID(원자성, 일관성, 격리, 내구성) 속성을 모두 가져야 합니다. 여기서 원자성은 작업 단위(운영 번들)에 대한 모든 결과 또는 모든 결과를 보장합니다.

벤더 컨소시엄인 Open Group은 트랜잭션 모델 구성요소의 동작에 대한 사실상의 표준이 된 X/Open Distributed Transaction Processing(DTP) Model(X/Open XA)을 제안했습니다.

데이터베이스는 일반적인 트랜잭션 리소스이며, 종종 트랜잭션이 이러한 데이터베이스 몇 개에 걸쳐 있습니다.이 경우 분산 트랜잭션은 서로 다른 물리적 위치 간에 분산된 여러 참여 데이터베이스 간에 동기화(또는 ACID 속성 제공)되어야 하는 데이터베이스 트랜잭션으로 간주될 수 있습니다.격리 속성(ACID의 I)은 (글로벌)시리얼라이제빌리티 속성을 위반할 가능성이 있기 때문에 다중 데이터베이스 트랜잭션에 특별한 과제가 됩니다(글로벌시리얼라이제빌리티도 참조).실제로 대부분의 상용 데이터베이스 시스템은 강력한 2단계 잠금(SS2PL)동시성 제어에 사용합니다.이것에 의해, 모든 참가 데이타베이스가 채용되고 있는 경우, 글로벌한 시리얼라이제이션이 보증됩니다(멀티 데이타베이스의 커밋 순서도 참조).

분산 트랜잭션을 올바르게 완료하기 위한 일반적인 알고리즘은 2단계 커밋(2PC)입니다.이 알고리즘은 보통 몇 밀리초에서 몇 분 사이에 커밋할 수 있는 업데이트에 적용됩니다.

장기 분산 거래도 있습니다. 예를 들어 비행기, 렌터카, 호텔을 예약하는 거래입니다.항공편 예약은 확인을 받는 데 하루까지 걸릴 수 있기 때문에, 2단계 커밋은 여기에 적용되지 않으며, 이 기간 동안 자원을 잠급니다.이 경우 여러 실행 취소 수준을 포함하는 보다 정교한 기술이 사용됩니다.데스크에 전화를 걸어 예약을 취소함으로써 호텔 예약을 취소할 수 있는 방법으로 특정 작업을 취소하도록 시스템을 설계할 수 있습니다(복귀할 수 없는 작업이 완료되지 않은 경우).

실제로 장기간의 분산 트랜잭션은 웹 서비스를 기반으로 시스템에 구현됩니다.통상, 이러한 거래에서는, 「낙관성」과 「잠금 없는 격리」의 보상 원칙을 이용합니다.X/Open 규격은 장기간의 DTP에는 적용되지 않습니다.

EJB(Enterprise Java Beans) 및 Microsoft Transaction Server(MTS)를 비롯한 여러 최신 기술이 분산 트랜잭션 표준을 완벽하게 지원합니다.

「 」를 참조해 주세요.

레퍼런스

  • "Web-Services Transactions". Archived from the original on May 11, 2008. Retrieved May 2, 2005.
  • "Nuts And Bolts Of Transaction Processing". Article about Transaction Management. Retrieved May 3, 2005.
  • "A Detailed Comparison of Enterprise JavaBeans (EJB) & The Microsoft Transaction Server (MTS) Models".

추가 정보

  • Gerhard Weikum, Gottfried Vossen, 트랜잭션 정보 시스템: 이론, 알고리즘, 동시 제어회복의 실천, Morgan Kaufmann, 2002, ISBN 1-55860-508-8