Atitit ACID解决方案2PC(两阶段提交) 跨越多个数据库实例的ACID保证
来源:互联网 发布:qq营销推广软件 编辑:程序博客网 时间:2024/05/16 06:27
Atitit ACID解决方案2PC(两阶段提交) 跨越多个数据库实例的ACID保证
1.1. ACID解决方案 1
1.2. 数据库厂商在很久以前就认识到数据库分区的必要性,并引入了一种称为2PC(两阶段提交)的技术来提供跨越多个数据库实例的ACID保证.这个协议分为以下两个阶段: 1
1.3. 基本上,数据库实现ACID 最关键的技术是日志和锁。 2
1.4. I- 实现事务隔离的主要手段是锁。另外一个关键技术是 MVCC (Multi-version Concurrency Control), 它可以在一些场景避免加锁, 实现同时读写。 2
1.5. 目前来看,ACID 事务处理的顶峰是 Oracle ——大概 500,000 TPS 每节点 3
1.1. ACID解决方案
ACID数据库事务极大地简化了应用开发人员的工作.正如其缩写标识所示,ACID事务提供以下几种保证:
· 原子性(Atomicity).事务中的所有操作,要么全部成功,要么全部不做.
· 一致性(Consistency).在事务开始与结束时,数据库处于一致状态.
· 隔离性(Isolation).事务如同只有这一个操作在被数据库所执行一样.
· 持久性(Durability).在事务结束时,此操作将不可逆转.(也就是只要事务提交,系统将保证数据不会丢失,即使出现系统Crash,译者补充).
1.2. 数据库厂商在很久以前就认识到数据库分区的必要性,并引入了一种称为2PC(两阶段提交)的技术来提供跨越多个数据库实例的ACID保证.这个协议分为以下两个阶段:
· 第一阶段,事务协调器要求每个涉及到事务的数据库预提交(precommit)此操作,并反映是否可以提交.
· 第二阶段,事务协调器要求每个数据库提交数据.
数据库 ACID 的实现
1.3. 基本上,数据库实现 ACID最关键的技术是日志和锁。
A- 数据库依赖 Redo / undo 日志实现事务的原子性。
简单来说,Redo 日志记录事务后的修改数据, Undo 日志记录事务前的原始数据。在恢复时,数据库先检查事务中断在什么阶段:如果事务中断在 commit 阶段,则重放 Redo 日志;如果中断在 prepare 阶段,则利用 Undo 日志进行回滚。
数据库用 检查点 (check-point)确定事务的恢复位点。检查点代表:在这一点之前提交的事务所修改的数据已经全部写回磁盘。因此,数据库故障后只要找到最近一次检查点,就可以从这个位置开始处理 Redo / undo 日志。
1.4. I- 实现事务隔离的主要手段是锁。另外一个关键技术是 MVCC (Multi-version Concurrency Control), 它可以在一些场景避免加锁, 实现同时读写。
不同的隔离级别在数据库中的加锁策略不一样:
Read uncommitted - 读不需要加锁,写仅仅需要加行锁
VCC 则优化了事务读的场景。数据库保存记录的多个版本,在进行更新时,其他只读事务 / 非事务读可以直接访问记录的上一个版本,不需要等待锁。
单机的硬件性能总是有上限的。
1.5. 目前来看,ACID 事务处理的顶峰是 Oracle ——大概 500,000 TPS 每节点
。这个数字是在小型机和高端存储设备上达到的 ——而一套这样的设备价值大约是 $30,000,000。
。
漫谈事务和分布式事务(2)-数据库 ACID的实现 -推酷.html
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
Atiend
- Atitit ACID解决方案2PC(两阶段提交) 跨越多个数据库实例的ACID保证
- 什么是ACID特性,数据库如何保证ACID特性的? 事务的传播特性与隔离级别?
- 数据库事务的4个特性ACID
- 数据库ACID的意思
- 数据库的ACID
- 数据库ACID的意思
- 谈谈数据库的ACID
- 数据库事务的ACID
- 数据库的ACID理解
- 数据库的ACID特性
- 数据库的ACID
- 谈谈数据库的ACID
- 谈谈 数据库的 acid
- 谈谈数据库的ACID
- 数据库的 ACID
- 数据库的ACID属性
- 谈谈数据库的ACID
- 谈谈数据库的ACID
- 360云盘我无语了
- 屏幕取词技术实现原理
- myelipse 调试 jdbc数据库相错误小记
- Atitit java 二维码识别 图片识别
- Modern C++(三)decltype关键字
- Atitit ACID解决方案2PC(两阶段提交) 跨越多个数据库实例的ACID保证
- CCF 201604 -3 路径解析
- Atitit 视频编码与动画原理attilax总结
- atitit。企业的价值观 员工第一 vs 客户第一.docx
- 01.猎人X测验X考官(大天使的赞美歌—妮温娜篇)
- CCF 201612-2 火车购票
- [iOS基础]应用程序设置
- cordova Minimum supported Gradle version is 2.14.1.
- CCF 201612-3 炉石传说