草庐IT

日志:Redo Log 和 Undo Log

本篇文章主要介绍RedoLog和UndoLog:利用RedoLog和UndoLog实现本地事务的原子性、持久性RedoLog的写回策略RedoLogBuffer的刷盘时机通过写入日志来保证原子性、持久性是业界的主流做法。介绍RedoLog和UndoLogRedoLog是什么:RedoLog被称为重做日志。UndoLog是什么:UndoLog被称为撤销日志、回滚日志。技术是为了解决问题而生的,通过RedoLog我们可以实现崩溃恢复,防止数据更新丢失,保证事务的持久性。也就是说,在机器故障恢复后,系统仍然能够通过RedoLog中的信息,持久化已经提交的事务的操作结果。技术是为了解决问题而生的,Un

3000帧动画图解MySQL为什么需要binlog、redo log和undo log

全文建立在MySQL的存储引擎为InnoDB的基础上先看一条SQL如何入库的:这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQLServer层和InnoDB存储引擎。Server层就像一个产品经理,分析客户的需求,并给出实现需求的方案。InnoDB就像一个基层程序员,实现产品经理给出的具体方案。在MySQL”分析需求,实现方案“的过程中,还夹杂着内存操作和磁盘操作,以及记录各种日志。他们到底有什么用处?他们之间到底怎么配合的?MySQL又为什么要分层呢?InnoDB里面的那一块BufferPool又是什么?我们慢慢分析。分层结构MySQL为什么要分为Serv

3000帧动画图解MySQL为什么需要binlog、redo log和undo log

全文建立在MySQL的存储引擎为InnoDB的基础上先看一条SQL如何入库的:这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQLServer层和InnoDB存储引擎。Server层就像一个产品经理,分析客户的需求,并给出实现需求的方案。InnoDB就像一个基层程序员,实现产品经理给出的具体方案。在MySQL”分析需求,实现方案“的过程中,还夹杂着内存操作和磁盘操作,以及记录各种日志。他们到底有什么用处?他们之间到底怎么配合的?MySQL又为什么要分层呢?InnoDB里面的那一块BufferPool又是什么?我们慢慢分析。分层结构MySQL为什么要分为Serv

被面试官问住了,MySQL两阶段提交是什么鬼?

前言MySQL通过两阶段提交的机制,保证了redolog和binlog的逻辑一致性,进而保证了数据的不丢失以及主从库的数据一致。而说起两阶段提交,就不得不先介绍一下redolog和binlog。redologredolog即重做日志,是InnoDB引擎特有的一种日志(有的面试官经常问到这一点)。redolog主要做什么呢?以更新数据为例,我们知道,MySQL的数据是存储在磁盘上的,如果每一次更新数据,都去磁盘寻址找到要更新的数据,进行更新操作的话,这个IO成本是非常高的。如果是固态硬盘还好,如果是机械硬盘,那么MySQL的更新性能根本无法满足我们的业务需要。所以,MySQL采用了一种叫做WAL

被面试官问住了,MySQL两阶段提交是什么鬼?

前言MySQL通过两阶段提交的机制,保证了redolog和binlog的逻辑一致性,进而保证了数据的不丢失以及主从库的数据一致。而说起两阶段提交,就不得不先介绍一下redolog和binlog。redologredolog即重做日志,是InnoDB引擎特有的一种日志(有的面试官经常问到这一点)。redolog主要做什么呢?以更新数据为例,我们知道,MySQL的数据是存储在磁盘上的,如果每一次更新数据,都去磁盘寻址找到要更新的数据,进行更新操作的话,这个IO成本是非常高的。如果是固态硬盘还好,如果是机械硬盘,那么MySQL的更新性能根本无法满足我们的业务需要。所以,MySQL采用了一种叫做WAL

数据恢复技术之日志(undo、redo 和 undo/redo log)

背景事务的原子性是如何保证的?面试中不少被问到吧,这里涉及到事务以及数据的可恢复性,而数据可恢复性的基础技术就是日志,本文将讨论三种日志:undo、redo和undo/redolog。日志:一种安全的方式记录数据变更的历史说明存储介质:内存和磁盘(仅讨论本文涉及到的),认为内存是易失的,磁盘是非易失的事务:包含多个操作,具体ACID属性,所有操作要么全部成功(指数据持久化到磁盘中),要么完全失败(原子性):一条日志,表示开始事务T:一条日志,表示提交T:一条日志,表示在事务T中,对X进行了修改,X的旧值或新值为v:一条日志,表示在事务T中,对X进行了修改,X的旧值为v,新值为w:一条日志,表示

数据恢复技术之日志(undo、redo 和 undo/redo log)

背景事务的原子性是如何保证的?面试中不少被问到吧,这里涉及到事务以及数据的可恢复性,而数据可恢复性的基础技术就是日志,本文将讨论三种日志:undo、redo和undo/redolog。日志:一种安全的方式记录数据变更的历史说明存储介质:内存和磁盘(仅讨论本文涉及到的),认为内存是易失的,磁盘是非易失的事务:包含多个操作,具体ACID属性,所有操作要么全部成功(指数据持久化到磁盘中),要么完全失败(原子性):一条日志,表示开始事务T:一条日志,表示提交T:一条日志,表示在事务T中,对X进行了修改,X的旧值或新值为v:一条日志,表示在事务T中,对X进行了修改,X的旧值为v,新值为w:一条日志,表示