事务以及undo/redo日志

事务与数据库交互时,有三个地址空间数据库

(1)保存DB元素的磁盘ide

(2)内存缓冲区管理的虚存或者主存地址空间日志

(3)事务的局部地址空间事务

事务读取DB2元素时,首先从磁盘读取数据到主存的一个或者多个缓冲区中,接下来,缓冲区的内容能够被读到其局部地址空间中。内存

事务为DB元素写入一个新值要沿相反的方向。it

所以,事务原语包括:class

(1) INPUT(x) 将X从DISK拷贝到BUFFER变量

(2) READ(X , t) 将X拷贝到事务的局部变量t数据

(3) WRITE(X, t) 将事务的局部变量t的值拷贝到内存缓冲区Xdi

(4) OUTPUT(X) 将X从缓冲区拷贝回磁盘

Redo日志规则:

将修改数据库元素X写到磁盘以前,保证全部与X这一新修改相关的日志记录,包括更新记录<T,X,v>以及<COMMIT T>等都必须出如今磁盘上。

写顺序:

(1)指出被修改元素的记录

(2)COMMIT记录

(3)改变的DBS元素自己

Undo日志规则:

(1)若是T改变了X,那么<T,X,v>必须在X的新值写到DISK以前写到DISK

(2)若是事务提交,则COMMIT日志必须在事务改变的全部数据库元素写到DISK以后写到DISK,但应该尽快。

写顺序:

(1)指出被修改的数据库元素的记录

(2)改变的数据库元素自己

(3)COMMIT日志记录

相关文章
相关标签/搜索