一马平川
不积跬步无以至千里,后继才能薄发

本地事务实现笔记

2022年06月05日
0
未分类
未设置标签

本地事务高效实现

事务需要处理以下情况

  1. 未提交事务,写入后崩溃
  2. 已提交事务,写入后崩溃

事务实现方式

提前写入技术(Write-Ahead Logging)

写入raw data的时机:

  1. 在写commit record之前就写raw data**(steal)**
  2. 在写commit record时**(force)**
  3. 在写commit record之后才写raw data。(no-force)

recovery过程

  1. 前滚

    出现已提交未入库的数据,在commit record之后未入库就出现崩溃,需要通过读取redo log中的checkpoint到commit recored之间的日志进行入库落盘。

  2. 后滚

    出现未提交已落库的数据,在commit record之前因为steal写入了数据,需要根据undo log进行获取到最后一个commit record到checkpoint之间的日志进行回滚。

如果喜欢这篇文章,可以给作者评个份哦~

原文声明: "转载本站文章请注明作者和出处Nothinglin ,请勿用于任何商业用途"

公众号:苦逼的学生仔