`
- 浏览:
495743 次
- 性别:
- 来自:
北京
-
分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。为了实现分布式事务,需要使用下面将介绍的两阶段提交协议。 * 阶段一:开始向事务涉及到的全部资源发送提交前信息。此时,事务涉及到的资源还有最后一次机会来异常结束事务。如果任意一个资源决定异常结束事务,则整个事务取消,不会进行资源的更新。否则,事务将正常执行,除非发生灾难性的失败。为了防止会发生灾难性的失败,所有资源的更新都会写入到日志中。这些日志是永久性的,因此,这些日志会幸免遇难并且在失败之后可以重新对所有资源进行更新。 * 阶段二:只在阶段一没有异常结束的时候才会发生。此时,所有能被定位和单独控制的资源管理器都将开始执行真正的数据更新。 在分布式事务两阶段提交协议中,有一个主事务管理器负责充当分布式事务协调器的角色。事务协调器负责整个事务并使之与网络中的其他事务管理器协同工作。 为了实现分布式事务,必须使用一种协议在分布式事务的各个参与者之间传递事务上下文信息,IIOP便是这种协议。这就要求不同开发商开发的事务参与者必须支持一种标准协议,才能实现分布式的事务。
分布式查询和分布式事务
Microsoft® SQL Server™ 允许创建与称为链接服务器的 OLE DB 数据源的链接。在链接到 OLE DB 数据源之后,可以:
● 从 OLE DB 数据源引用行集,作为 Transact-SQL 语句中的表。
● 将命令传递给 OLE DB 数据源,并包含结果行集,作为 Transact-SQL 语句中的表。
每个分布式查询都可以引用多个链接的服务器,而且可以对每个链接的服务器分别执行更新或读取操作。单个分布式查询可以对某些链接的服务器执行读取操作,并且对其它链接的服务器执行更新操作。通常情况下,每当某个事务可能更新多个链接服务器中的数据时,Microsoft SQL Server 都要求相应的 OLE DB 提供程序支持分布式事务。因此,链接服务器上所支持的查询类型取决于 OLE DB 提供程序中对事务的支持级别。OLE DB 为事务管理定义了两个可选的接口:
● ITransactionLocal 支持 OLE DB 数据源中的本地事务。
● ITransactionJoin 允许提供程序联结包含其它资源管理器的分布式事务。
● 所有支持 ITransactionJoin 的提供程序也都支持 ITransactionLocal。
如果在连接是自动提交模式时执行分布式查询,则应用以下规则:
● 对于不支持 ItransactionLocal 的提供程序,只允许执行读取操作。
● 对于支持 ITransactionLocal 的提供程序,允许执行所有更新操作。
● 主控 SQL Server 会自动调用每个参与更新操作的链接的服务器中的 ITransactionLocal,以启动本地事务,并在语句执行成功时提交或在语句执行失败时回滚。
如果分布式查询是针对分布式分区视图或者是在连接为显式或隐性事务时执行,则应用下列规则:
● 对于不支持 ITransactionJoin 的提供程序,只允许执行读取操作。不支持任何事务或只支持 ITransactionLocal 的提供程序不能参与更新操作。
● 如果 SET XACT_ABORT 设置为 ON,则对于支持 ITransactionJoin 的任意提供程序都允许执行所有的更新操作。主控 SQL Server 会自动调用每个参与更新操作的链接服务器中的 ITransactionJoin,以便在分布式事务中登记该服务器。然后当主控服务器表示要提交或回滚事务时,MS DTC 将提交或者回滚。
● 如果 SET XACT_ABORT 设置为 OFF,则链接服务器还必须支持嵌套事务,才能对其执行更新操作。当会话已经有一个现有事务时,如果提供程序支持调用 ITransactionLocal::StartTransaction,则支持嵌套事务。这使 SQL Server 得以回滚分布式查询中的单个语句,而不是回滚整个事务。
上述规则意味着提供程序的下列限制不支持嵌套事务:仅在 XACT_ABORT 选项设置为 ON 时,分布式事务中才允许更新操作。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
#### 一、分布式事务概述 分布式事务是指在分布式系统中,为了保持事务的ACID(原子性、一致性、隔离性、持久性)特性,需要跨越多个资源管理器(如数据库、消息队列等)进行协调的一系列操作。在分布式系统中,...
腾讯TDSQL分布式事务处理技术概述 腾讯TDSQL分布式事务处理技术是指在分布式系统中对事务的处理和管理,以确保事务的一致性和可靠性。该技术的核心是多级一致性技术(强一致性),它可以确保在分布式系统中所有节点...
本文的目的是要提供一个关于的Java事务处理API(JTA)的高级的概述,以及与分布式事务相关的内容。一个事务处理定义了一个工作逻辑单元,要么彻底成功要么不产生任何结果。 一个分布式事务处理只是一个在两个或更多...
【分布式事务概述】 分布式事务是指在分布式环境下,跨越多个数据源的操作需要保证一致性,即所有操作要么全部成功,要么全部失败。这是因为业务功能往往需要横跨多个服务和数据库,而这些服务和数据库可能位于不同...
用生动的PPT动画演示和配套总结性文字,讲述分布式事务数据库的教科书式技术架构、三种主流金融行业技术架构、金标委定义技术架构、行业专业术语,及重点围绕分布式事务数据库的核心技术之分布式事务的原理、功能和...
### 分布式数据库系统概述 #### 一、逻辑集中与物理分散 分布式数据库系统的核心特性在于其能够实现**逻辑集中与物理分散**。这意在让数据能够在不同的地理位置上存储,但逻辑上仍然视为一个整体。 - **物理分散*...
腾讯TDSQL分布式事务处理技术概述 分布式数据库系统在面对大规模并发事务时,保证数据的一致性、事务的隔离性以及系统的高性能是设计上的重要挑战。腾讯的TDSQL作为一款分布式事务型数据库,通过实现多级一致性技术...
OceanBase分布式数据库技术概述 OceanBase分布式数据库技术概述是原生分布式数据库,具有良好的扩展性和容灾能力。 OceanBase给用户透明的体验,像使用单机数据库一样使用分布式数据库。没有分库分表的烦恼,支持...
分布式事务解决方案概述 分布式事务是指在分布式系统中,事务操作跨越多个节点或服务器,需要保持事务的一致性和可靠性。分布式事务的解决方案有很多,常见的有XA、Saga、TCC和MQ补偿等。 XA(eXtended ...
### 分布式事务概述 在微服务架构下,一个业务操作可能涉及多个服务之间的数据操作,这就引入了分布式事务的问题。分布式事务是指在一个分布式系统中,一组跨越多个节点的操作作为一个整体来执行:要么全部成功,...
一、分布式事务概述 分布式事务是指跨越多个独立的数据存储系统的事务,这些系统可能位于不同的网络节点上。它涉及多个操作,这些操作必须全部成功或全部失败,以保持数据的一致性。分布式事务通常由事务管理器协调...
1. **分布式事务概述**:在分布式系统中,事务需要满足ACID(原子性、一致性、隔离性和持久性)属性,确保数据的一致性。但传统的两阶段提交(2PC)等方案在面对大规模分布式环境时性能瓶颈明显,因此诞生了如TX-LCN...
#### 一、分布式事务概述 分布式事务是指跨越多个数据库系统或节点的事务处理过程。在现代计算环境中,随着Java EE组件化架构的普及,分布式事务的应用变得越来越广泛。尽管分布式事务的概念和技术已经存在多年(X/...
综上所述,微服务架构下的分布式事务处理机制是保证系统稳定性、提升用户体验的关键因素之一。通过合理选择和运用TCC型分布式事务方案、最大努力通知方案、可靠消息服务等技术手段,结合Dubbo等成熟框架的支持,可以...
- **内容覆盖**:文档深入介绍了X/Open DTP模型、关键概念定义、接口概述、以及相关的头文件等内容,为读者提供了一个全面的理解分布式事务处理机制的基础。 #### 标签:DistributedTP - **标签含义**:...
TiDB 是一个开源的分布式 NewSQL 数据库,支持混合事务和分析处理(HTAP),并使用 MySQL 协议与客户端通信。TiDB 架构包括 TiDB、TiKV、Spark Driver、Metadata 和 TiSpark 等组件。TiDB Worker 负责处理客户端请求...
分布式数据库系统概述 分布式数据库系统是现代信息技术领域中一个重要的组成部分,它涉及到多个地理位置分散的节点,这些节点通过网络连接并共享数据资源。本课程旨在深入理解和掌握分布式数据库系统的关键技术和...
《分布式事务设计文档》 ...以上内容仅为简要概述,实际分布式事务的设计和实现可能涉及更多细节,如异常处理、超时策略、幂等性设计等。在开发过程中,还需要充分考虑系统的可扩展性、性能和容错性。