Undo 日志用什么存储结构支持无锁并发写入?

网友投稿 534 2023-06-10

Undo 日志用什么存储结构支持无锁并发写入?

Undo 日志用什么存储结构支持无锁并发写入?

redo 日志只有崩溃恢复的时候才能派上用场,undo 日志不一样,它承担着多重职责,MySQL 崩溃恢复、以及正常提供服务期间,都有它的身影。

按照使用频次,undo 日志的多重职责如下:

职责 1,为 MVCC 服务,减少读写事务之间的相互影响,提升数据库的并发能力。

职责 2,保证数据库运行过程中的数据一致性。事务回滚时,把事务中被修改的数据恢复到修改之前的状态。

职责 3,保证数据库崩溃之后的数据一致性。崩溃恢复过程中,恢复没有完成提交的事务,并根据事务的状态和 binlog 日志是否写入了该事务的 xid 信息,共同决定事务是提交还是回滚。

undo 日志需要为数据一致性和 MVCC 服务,除了要支持多事务同时写入日志,还要支持多事务同时读取日志。

为了有更好的读写并发性能,它拥有与 redo 日志完全不一样的存储结构。

本文我们就来聊聊 undo 日志的存储结构,它是怎么写入 undo 日志文件的,以及事务二阶段提交过程中和它有关的操作。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:面试问了分布式锁,你会答吗?
下一篇:面试突击:MySQL 中如何去重?
相关文章