深入单机事务

事务的ACDI
1、原子性(一个事务要么同时成功,要同时失败)
Bob给了Smith 100元
重点:原子性只记录了undo日志,可以回滚到之前的版本。
2、一致性(对事务加了一把锁)
核心:can(happen before)
3、隔离性(以性能为理由,对一致性的破坏)
1、序列化读写
排他锁:(单位时间内只有一个事务拥有他)
读写锁:
2、 (可重复读:(读锁不能被写锁升级)读读并行)
3、(读已提交:(读锁可以被写锁升级)读读并行,读写并行(写读还不能))
4、(读未提交:(写加锁,读不加锁)读读并行,读写并行,写读并行(写写不能))

4、持久性:事务完成以后,该事务提交后,保存在数据库中。

标准不一定等于对的。

写写之间有么有可能并行?

时间: 2024-10-26 17:22:06

深入单机事务的相关文章

分布式事务如何拆解成单机事务

这段时间一直在思考分布式事务的实现,一开始的思路总是停留在应用层面上,后来经过查看相关资料才知道,要支持分布式事务得需要数据库的支持,也就还是回到了数据库层面,另外在Java里面结合javax.sql扩展包,使用两段提交协议能轻松支持分布式事务. 后来自己结合之前做过的一些项目,发现原来之前实现的功能已经利用消息队列把分布式事务拆解成单机事务了,虽然实时性可能没有那么强,但是正常情况下,这种思路还是比较好的一种解决方案.只是以前不知道这个概念,但是却是实现了这个功能. 关于分布式事务的拆解的分析

WINDOWS 下, Redis 单机事务测试

WIN 10: i5 4440, 8GB 测试REDIS的事务速度 REDIS的WATCH机制实现事务是一个乐观锁形式(应该是SPIN LOCK的一种).适用于并发度不是很高的场景,可以节约CPU资源(轻量级锁).但是当竞争激烈的情况下,失败概率会大大提升,大量失败后的重试会耗费CPU资源. 测试的逻辑 1)读取计数器 2)JAVA端自增 3)设置回REDIS 此处不可用REDIS自带的incr函数,REDIS服务器端为单线程执行,所以服务器端只执行一个incr指令的情况下,其实可以看作原子操作

Spring 事务模板

最近项目开发中需要用到单机事务,因为项目中使用了Spring和Mybatis框架,所以通过Spring来进行事务的管理,并且记录一下事务配置的过程 第一步:配置DataSource <!-- 发票服务化主数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method=&qu

OceanBase 1.0 的分布式事务

OceanBase 1.0 的分布式事务 数据库的功能强大而繁杂,其中,“事务(Transaction)”是使用者不自觉就会用到的功能.作为开发数据库的工程师,我们是倾注了大量的精力和时间在事务这个功能上,并且深知数据库系统实现事务是付出了很大代价的.这代价不仅包括数据库软件开发的工作,而且还包括数据库运行过程中的代价.换句话说,在其他情况不变的时候,如果数据库放弃事务功能,能获得更好的性能.在数据库软件刚出现时,并没有事务这个功能,但这种情况下,使用数据库开发软件很多时候无法保证数据的正确性和

Spanner分布式事务

Spanner要满足的external consistency 是指:后开始的事务一定可以看到先提交的事务的修改.所有事务的读写都加锁可以解决这个问题,缺点是性能较差.特别是对于一些workload中只读事务占比较大的系统来说不可接受.为了让只读事务不加任何锁,需要引入多版本.在单机系统中,维护一个递增的时间戳作为版本号很好办.分布式系统中,机器和机器之间的时钟有误差,并且误差范围不确定,带来的问题是如何给一个只读事务赋予一个时间戳作为版本号.Spanner通过原子钟和GPS解决了这个误差范围不

一文教你迅速解决分布式事务 XA 一致性问题

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯云数据库团队 近日,腾讯云发布了分布式数据库解决方案(DCDB),其最明显的特性之一就是提供了高于开源分布式事务XA的性能.大型业务系统有着用户多.并发高的特点,在这方面,集中式数据库(单机数据库)的性能很难支持,因此主流的互联网公司往往采用分布式(架构)数据库,物理上利用更多的低端设备,逻辑上对大表水平拆分支撑业务的需要. 虽然分布式数据库能解决性能难题,但事务一致性(Consistency)的问题,却很难在分布式数据库上

浅谈分布式事务(转)

现今互联网界,分布式系统和微服务架构盛行.一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的.在一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手.基于水平扩容能力和成本考虑,传统的强一致的解决方案(e.g.单机事务)纷纷被抛弃.其理论依据就是响当当的CAP原理.往往为了可用性和分区容错性,忍痛放弃强一致支持,转而追求最终一致性.分布式系统的特性在分布式系统中,同时满足... 现今互联网界,分布式系统和微服务架构盛行.一个简单操作,在服务端非常可能是由多个服务和数据库

分布式事务实现-Spanner

Spanner要满足的external consistency 是指:后开始的事务一定可以看到先提交的事务的修改.所有事务的读写都加锁可以解决这个问题,缺点是性能较差.特别是对于一些workload中只读事务占比较大的系统来说不可接受.为了让只读事务不加任何锁,需要引入多版本.在单机系统中,维护一个递增的时间戳作为版本号很好办.分布式系统中,机器和机器之间的时钟有误差,并且误差范围不确定,带来的问题就是很难判断事件(在本文,事件指分布式事务版本号)发生的前后关系.反应在Spanner中,就是很难

转://Oracle 事务探索与实例(二)

一数据库版本 [email protected]>select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production PL/SQL Release 11.2.0.1.0 - Product