分散式事務概述

mic_saber發表於2018-12-15

      A distributed transaction is a database transaction in which two or more network hosts are involved. Usually, hosts provide transactional resources, while the transaction manager is responsible for creating and managing a global transaction that encompasses all operations against such resources. Distributed transactions, as any other transactions, must have all four ACID (atomicity, consistency, isolation, durability) properties, where atomicity guarantees all-or-nothing outcomes for the unit of work (operations bundle).

      摘自wiki百科,大致意思是分散式事務和普通事務一樣擁有ACID特性,只不過是涉及到多個網路節點的事務。其中提到了Host和Transaction manager。

       OpenGroup是一個供應商聯盟,它提出了x/open分散式事務處理(DTP)模型(x/open xa),成為事務模型元件行為的的標準。

       In practice most commercial database systems use strong strict two phase locking (SS2PL) for concurrency control, which ensures global serializability, if all the participating databases employ it. (see also commitment ordering for multidatabases.)

      這裡提到了大多數商業資料庫系統使用強嚴格的兩階段鎖定(Ss2pl)來進行併發控制,也就是俗說的二階段提交。

      但是2PC(二階段提交併不適用所有場景),比方說預定機票和預訂酒店這種,用2PC的方式並不合適,這種長時間的分散式事務會鎖定較長的時間,而且有技術層面上鎖的撤銷操作,這種可以從業務上避免分散式事務,比方說業務上新增一個撤銷操作。通常,這些長時間的事務採用補償事務、樂觀和不鎖定隔離的方案。X/Open模型不適合長期存在的DTP。

相關文章