今天公司的系统发现一个bug:主表记录的已还款总额和还款记录表里面的偿还金额之和不一致。看到这个问题,我的第一反应是怀疑还款的时候离线锁没生效,导致并发修改主表记录。可是经过查看日志和代码,排除了这个可能性。然后又怀疑可能是由于还款之后,修改已还款总额和还款状态时只调用了jpa的save,没有flu...
分类:
其他好文 时间:
2015-04-07 21:29:01
阅读次数:
151
最近在做一个项目中使用到了MariaDB(Innodb存储引擎),系统并发性比较高需要不停的接收前端传过来的数据(每天大概400W),传过来之后系统会自动的尽快处理计算结果(分批处理,需要更新业务表)。在开发过程中经常出现死锁和锁等待的问题。翻阅了一些资料和动手验证,整理如下:..
分类:
数据库 时间:
2015-04-07 20:17:14
阅读次数:
193
一、Propagation (事务的传播属性)Propagation : key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 PROPAG....
分类:
编程语言 时间:
2015-04-07 15:14:32
阅读次数:
159
本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不...
分类:
数据库 时间:
2015-04-07 14:00:39
阅读次数:
174
演示不同隔离级别下的并发问题1.当把事务的隔离级别设置为read uncommitted时,会引发脏读、不可重复读和虚读A窗口set transaction isolation level read uncommitted;start transaction;select * from accou....
分类:
其他好文 时间:
2015-04-05 11:52:51
阅读次数:
128
转自:http://www.cnblogs.com/zemliu/archive/2012/06/17/2552301.html数据库隔离级别有四种,应用《高性能mysql》一书中的说明:然后说说修改事务隔离级别的方法:1.全局修改,修改mysql.ini配置文件,在最后加上1 #可选参数有:REA...
分类:
数据库 时间:
2015-03-20 21:39:58
阅读次数:
191
1.RR隔离级别:在此隔离级别下, DB2会锁住所有相关的纪录。在一个SQL语句执行期间,所有执行此语句扫描过的纪录都会被加上相应的锁。具体的锁的类型还是由操作的类型来决定,如果是读取,则加共享锁;如果是更新,则加独占锁。由於会锁定所有為获得SQL语句的结果而扫描的纪录,所以锁的数量可能会很庞大,这...
分类:
数据库 时间:
2015-03-20 20:18:35
阅读次数:
240
事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。
两个并发事务同时访问数据库表相同的行时,这些问题可以归结为5类:
3类数据读问题(脏读、不可重复读和幻象读)
2类数据更新问题(第一类丢失更新和第二类丢失更新)。
1、幻读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次...
分类:
数据库 时间:
2015-03-18 23:21:09
阅读次数:
586
第一篇中介绍了Redis是一个强大的键-值仓储,支持五种灵活的数据结构。事实上,Redis还支持其它的一些高级:事务、发布与订阅、管道、脚本等,本篇我们来看一下事务。
事务
前一篇中我们提到,在Redis中每个命令都是原子性的,因为Redis内部的实现是单线程的。当然Redis也支持多个命令之间的事务,不过事务在Redis中相对来说很简单,不像数据库事务那样涉及传播级别、隔离级别等特性。
...
分类:
其他好文 时间:
2015-03-17 10:36:37
阅读次数:
177
9.1事务的设置与提交较低的隔离级别可以增加并发,但会出现脏数据,降低数据的正确性。较高的隔离级别可以保证数据的正确性,但会降低并发,即影响程序的运行速度,并且易死锁。SQL Server支持4种隔离级别:未提交读(read uncommitted)相当于NOLOCK、提交读(read commit...
分类:
数据库 时间:
2015-03-15 13:41:17
阅读次数:
147