事务实现原理

原创 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 ...

关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)

原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies 紧接上一篇文章,本文翻译了如下章节: ...

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

java事务 深入Java事务的原理与应用 一、什么是JAVA事务     通常的观念认为,事务仅与数据库相关。     事务必须服从ISO/IEC所制定的ACID原则。ACI...

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

首先,说说什么事务 (Transaction)。 事务,就是一组操作数据库的动作集合。 事务是现代数据库理论中的核心概念之一。如果一组处理步骤或者全部发生或者一步也不执行,我们称该组处理步骤为一个...

深入Java事务的原理与应用

 一、什么是JAVA事务    通常的观念认为,事务仅与数据库相关。    事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔...

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

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

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

Spring+Hibernate的实质: 就是把Hibernate用到的数据源Datasource,Hibernate的SessionFactory实例,事务管理器HibernateTransact...

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

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

深入理解 Spring 事务原理

一、事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: ...

Java中事务的处理

原文链接:http://zhenchengchagangzi.iteye.com/blog/1159493 2013.8.29号在家时阿里巴巴的电话面试里面问了一个关于java 事务的问题,...
  • mukun060
  • mukun060
  • 2013年09月04日 15:33
  • 57237
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:事务实现原理
举报原因:
原因补充:

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