- 浏览: 498905 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
原文参考:http://blog.csdn.net/bluishglc/article/details/7612811
数据库要求:ACID
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
原子性:所有的改变要么都做了,要么都没做。
一致性:数据保持一致性状态。
隔离性:其它用户看不到部分改变。
持久性:一旦向用户确认了事务,数据就处于安全的状态(通常存在硬盘上)。
一阶段提交
一阶段提交非常直白,就是从应用程序向数据库发出提交请求到数据库完成提交或回滚之后将结果返回给应用程序的过程。一阶段提交不需要“协调者”角色,各结点之间不存在协调操作,因此其事务执行时间比两阶段提交要短,但是提交的“危险期”是每一个事务的实际提交时间,相比于两阶段提交,一阶段提交出现在“不一致”的概率就变大了。但是我们必须注意到:只有当基础设施出现问题的时候(如网络中断,当机等),一阶段提交才可能会出现“不一致”的情况,相比它的性能优势,很多团队都会选择这一方案。
可以通过事务补偿机制使数据达到最终一致性(就是数据已经记录在部分节点上了,在后面的一个时间段后进行数据同步更新到所有的节点上,使所有的节点上的数据是一致的)。
两阶段提交
两阶段提交主要保证了分布式事务的原子性:即所有结点要么全做要么全不做
所谓的两个阶段是指:
第一阶段:准备阶段。
第二阶段:提交阶段。
1.准备阶段:事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo和undo日志,但不提交,到达一种“万事俱备,只欠东风”的状态。
2.提交阶段:如果协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。(注意:必须在最后阶段释放锁资源)
三阶段提交
就是在两阶段提交中间再放一个prepare_commit的过程保证各个节点的数据的一致性。
数据库要求:ACID
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
原子性:所有的改变要么都做了,要么都没做。
一致性:数据保持一致性状态。
隔离性:其它用户看不到部分改变。
持久性:一旦向用户确认了事务,数据就处于安全的状态(通常存在硬盘上)。
一阶段提交
一阶段提交非常直白,就是从应用程序向数据库发出提交请求到数据库完成提交或回滚之后将结果返回给应用程序的过程。一阶段提交不需要“协调者”角色,各结点之间不存在协调操作,因此其事务执行时间比两阶段提交要短,但是提交的“危险期”是每一个事务的实际提交时间,相比于两阶段提交,一阶段提交出现在“不一致”的概率就变大了。但是我们必须注意到:只有当基础设施出现问题的时候(如网络中断,当机等),一阶段提交才可能会出现“不一致”的情况,相比它的性能优势,很多团队都会选择这一方案。
可以通过事务补偿机制使数据达到最终一致性(就是数据已经记录在部分节点上了,在后面的一个时间段后进行数据同步更新到所有的节点上,使所有的节点上的数据是一致的)。
两阶段提交
两阶段提交主要保证了分布式事务的原子性:即所有结点要么全做要么全不做
所谓的两个阶段是指:
第一阶段:准备阶段。
第二阶段:提交阶段。
1.准备阶段:事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo和undo日志,但不提交,到达一种“万事俱备,只欠东风”的状态。
2.提交阶段:如果协调者收到了参与者的失败消息或者超时,直接给每个参与者发送回滚(Rollback)消息;否则,发送提交(Commit)消息;参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。(注意:必须在最后阶段释放锁资源)
三阶段提交
就是在两阶段提交中间再放一个prepare_commit的过程保证各个节点的数据的一致性。
发表评论
-
SQL常用语句
2022-07-21 19:09 216delete from cacherefresh where ... -
ES数据同步方案
2022-06-24 10:57 2319//============================= ... -
SQL存储过程例子和有用的SQL
2022-02-19 09:20 207delete from cacherefresh where ... -
SQL优化对比与总结
2021-01-09 14:44 38219000000 b表 SELECT * from b w ... -
执行存储过程测试
2020-12-30 16:47 389--执行存储过程创建 if (exists (select * ... -
mysql提高insert into 插入速度的方法
2018-12-14 17:26 6118mysql提高insert into 插入 ... -
Mysql并发时经典常见的死锁原因及解决方法
2018-12-08 09:30 3071Mysql并发时经典常见的死锁原因及解决方法 MySQL有 ... -
数据库沉余实现方式
2018-12-04 17:30 1027数据库沉余实现方式 canal 原理相对比较简单: (1)c ... -
最终一致性的常用做法
2018-12-01 22:28 646最终一致性的常用做法 ... -
库存扣减和锁
2018-11-29 16:19 2库存扣减和锁 在对数据库的值进行修改时,如果在多线程情况下 ... -
Spring Boot中整合Sharding-JDBC
2018-11-26 18:03 3450Spring Boot中整合Sharding-JDBC ... -
MYSQL 主从、读写分离、分库分表、高可用、数据安全
2018-11-19 18:03 1740MYSQL 主从、读写分离、分库分表、高可用、数据安全 ... -
mybatis-generator 使用
2018-05-19 11:29 565http://www.cnblogs.com/Jason-Xi ... -
eclipse JPA Tools 使用
2018-05-14 17:11 782https://blog.csdn.net/guoxin91/ ... -
mybatis 通用查询实现
2018-03-26 10:04 1429package com.oceano.modity.entit ... -
存储过程 函数
2017-10-27 17:59 484存储过程 函数 存储过 ... -
分页查询例子
2017-10-19 10:22 784分页查询例子 Mybatis分页插件PageHelper的 ... -
数据库同步工具
2017-10-14 14:27 1345数据库同步工具 goden gate Oracle Go ... -
ETL工具
2017-09-01 15:14 773ETL工具 ETL,是英文 Extract-Transfor ... -
PowerDesigner 对比pdm文件内容变化工具
2017-08-06 14:24 709PowerDesigner 对比pdm文件内容变化工具
相关推荐
【一阶段提交】 一阶段提交(One-Phase ...为了克服这些局限,后续出现了更复杂的分布式事务协议,如三阶段提交(Three-Phase Commit, 3PC)、柔性事务等。这些协议在一定程度上平衡了事务的一致性和系统的可用性。
两阶段提交(2PC)概述 两阶段提交(2PC)是一种分布式事务提交算法,在分布式环境下,所有节点进行事务提交...* 分布式事务的其他解决方案:除了2PC 算法外,还有其他解决方案,例如三阶段提交(3PC)和分布式锁等。
在阅读《CSE550BHG-Ch7.pdf》这样的文件时,你可能会了解到更多关于2PC的细节,包括如何处理各种异常情况、优化策略以及替代方案,如三阶段提交(3PC)、Paxos、Raft等分布式一致性算法。 总的来说,了解和掌握两...
MySQL是世界上最流行的关系型数据库管理系统之一,其第三阶段的学习通常涉及深入理解数据类型、表的操作以及数据完整性约束。在这个阶段,我们将重点讨论如何创建数据表、应用约束、插入和查找记录,以及各种类型的...
【分布式系统一致性发展史(二)】:两阶段与三阶段提交 在分布式系统中,一致性是确保系统在面临各种网络、硬件故障时仍然能够保持数据一致性的关键特性。本篇将探讨两种早期用于解决一致性问题的协议:两阶段提交...
两阶段提交(Two-Phase Commit, 2PC)是一种...为了解决这些问题,后续出现了如三阶段提交(Three-Phase Commit)、Paxos、Raft等更复杂的分布式一致性算法。这些算法在保证一致性的同时,提高了系统的可用性和性能。
#### 三、两阶段提交的基本概念 两阶段提交协议包括两个主要阶段: 1. **准备阶段**(Prepare Phase):在这个阶段,事务协调者向所有参与事务的资源管理器发送“准备”命令。每个资源管理器执行事务操作,并记录...
三阶段提交协议(3PC)是在2PC协议的基础上增加了一个“预备提交”阶段。这一阶段的目的是让参与者在正式提交前进行预备,确认是否准备好提交,以此减少协调者崩溃后的不确定状态。即使协调者在预备提交阶段崩溃,...
【标题】:“中国石油大学(北京)2024年春大学英语(三)第一阶段在线作业”这一标题表明这是一份学术性质的作业,针对的是中国石油大学(北京)2024年春季学期的学生,课程是大学英语的第三阶段,而作业形式则是...
在本文中,我们将深入探讨几种重要的理论和实践方法,包括ACID特性、CAP定理、BASE原则,以及几种常见的分布式事务处理协议:二段提交、三段提交和TCC(Try-Confirm-Cancel)模式,同时也会提到幂等性这一关键概念。...
二阶段提交是一种基于两阶段协议的分布式事务协调机制,其中binlog担当协调者角色,确保了即使数据库系统崩溃,事务也能够正确地提交或回滚。 在引入二阶段提交后,binlog的刷新也成为性能瓶颈,原先的Redo Log组...
在处理用户交互时,尤其是表单提交,一个常见的问题是防止表单的重复提交。这可能导致数据的不一致性和其他问题。本文将深入探讨如何在Struts框架中利用Token机制来解决这个问题。 一、表单重复提交问题 表单重复...
为了缓解2PC的问题,提出了三阶段提交协议,分为预准备、预备和提交三个阶段。3PC增加了确认阶段,降低了阻塞概率,但仍然存在网络延迟和单点故障的风险。 四、Java与MySQL交互 Java是常用的数据库操作语言,通过...
"jQuery三步骤表单内容提交特效"就是一个典型的例子,它将表单提交过程分为三个阶段,通过视觉提示提升用户的使用体验。本文将深入探讨这一特效的实现原理和应用技巧。 一、jQuery基础与表单操作 jQuery库简化了...
本项目聚焦于"第一、第二和第三阶段报告",这可能指的是项目的初期规划、中期实施以及后期评估。报告中提到的"二阶和三阶ODE的相图"是数学建模中的一个重要部分,特别是对于物理、工程和生物系统等领域,这些系统的...
教练技术三阶段是一种个人发展和团队建设的训练课程,旨在帮助参与者提升自我认知,增强领导力,以及提高团队协作能力。整个过程分为三个主要阶段,每个阶段都有特定的目标和活动,以逐步深化学习者的体验。 第一...
三阶段提交协议(3PC)是对2PC协议的一种改进,增加了预提交阶段以解决阻塞问题,即在提交或回滚之前,先进行一轮预提交,确保各个参与者已经准备好,并且不会有阻塞发生。尽管3PC减少了阻塞的可能性,但实现起来更为...
SVN中的钩子是一系列可执行脚本,它们在提交代码的不同阶段被调用,以执行特定的任务。主要的钩子类型包括: - **pre-commit**:在提交之前被调用,用于验证即将提交的数据。 - **post-commit**:在提交完成后被...
- **提交阶段**: 用户提交表单时,服务器会检查表单中包含的令牌与会话中存储的令牌是否一致。 - **响应阶段**: 如果令牌一致,则处理表单数据;如果不一致,则视为重复提交,通常返回错误提示。 - **更新令牌**: 在...
【JavaWeb作业提交系统】是一个基于Java技术构建的在线作业提交平台,主要用于教育环境中方便教师布置、学生提交以及批改作业。这个系统采用Tomcat 9.0作为应用服务器,展示了JavaWeb开发中的核心概念和技术。 一、...