事务实现原理

原创 2015年11月21日 16:42:32

1. 每个事务都有个事务id

 2. 最终落到 每一个块的原子性。 

     写一个块,部分写完部分未写完。如何判断是否全写完,如何回滚 如何重写,如何幂等重写?

和mysql的事务比较起来:

1. 对page的写是加锁串行的.  (这样lsn大小判断幂等法才有意义)

2. 回滚操作是要实现的.回滚后才能执行下一个对page的改动.

     每次操作有事务id,放在块最后。重写的时候发现有就不重写。没有,部分写了怎么办?double write。如果大事务回滚,只不过改成原来的操作逆写。对块来说另外一种写。省磁盘,只double write,不备份之前的。


正常思考逻辑.

  

    1. 写undo log

    2. 对字段更新

    3. 如回滚,利用undo回滚

    4. 如提交,不做任何操作.

问题: 回滚到一半宕机了怎么办?

我的理解是

    1. update了就加锁了,  加锁以后就可以串行了, 可以大小判断幂等法进行幂等重试.

    其他点: 查看源代码,是否在rollback的时候修改了事务的持久化信息.

事务一旦到达终态.(commit 或者roll back完毕)就,可以从持久化中删除.


考虑性能问题后的改造以及引发的一致性问题解决--:

解决性能问题,引入redo日志

    不时时刷新. 为了保持持久性,引入redo, 这样就引入了脏页的刷新. 和多次刷新问题. 引入lsn进行幂等刷新.



版权声明:本文为博主原创文章,未经博主允许不得转载。

【Spring】——事务实现过程及原理

1、Spring中事务处理的作用:   Spring事务处理,是将事务处理的工作统一起来,并为事务处理提供通用的支持。   2、工作原理及实现   a、划分处理单元——IOC ...
  • hanxintong9
  • hanxintong9
  • 2016年09月06日 11:15
  • 7402

浅析Mysql InnoDB存储引擎事务原理

innoDB存储引擎事务与日志,日志在系统恢复过程中的作用剖析
  • tangkund3218
  • tangkund3218
  • 2015年08月23日 11:01
  • 6735

事务处理原理(第2版)

  • 2011年06月03日 22:37
  • 14.58MB
  • 下载

事务处理原理 第2版

  • 2012年12月30日 10:49
  • 50.38MB
  • 下载

数据库中,什么是事务,可以简述,事务机制如何实现的吗

数据库事务是指作为单个逻辑单元执行的一系列操作,要么完全执行,玩么完全地不执行。事务的四个特性(ACID):原子性、一致性、隔离性和持久性。 事务实现原理(网友答案,百度不好找):事...
  • deguotiantang
  • deguotiantang
  • 2017年02月27日 16:44
  • 1226

事务的定义,事务的作用以及Spring事务原理

(1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起...
  • zhikun518
  • zhikun518
  • 2012年01月08日 14:35
  • 16165

回滚机制——《亿级流量》

回滚是指当程序或数据出错时,将程序或数据恢复到最近一个正确版本的行为。最常见的如事务回滚、代码库回滚、部署版本回滚、数据版本回滚、静态资源版本回滚等。通过回滚机制保证系统某些场景下的高可用。   事...
  • jek123456
  • jek123456
  • 2017年05月12日 17:51
  • 711

数据库的事务,事务的特性以及回滚

事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这...
  • IWantToHitRen
  • IWantToHitRen
  • 2015年09月24日 22:13
  • 3670

java事务 深入Java事务的原理与应用

java事务 深入Java事务的原理与应用 一、什么是JAVA事务     通常的观念认为,事务仅与数据库相关。     事务必须服从ISO/IEC所制定的ACID原则。ACI...
  • sinat_33536912
  • sinat_33536912
  • 2016年04月20日 14:34
  • 9285

spring的事务管理有几种方式实现,如何实现

Spring+Hibernate的实质: 就是把Hibernate用到的数据源Datasource,Hibernate的SessionFactory实例,事务管理器HibernateTransact...
  • yanghaitao_1990
  • yanghaitao_1990
  • 2016年06月25日 20:49
  • 12066
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:事务实现原理
举报原因:
原因补充:

(最多只允许输入30个字)