1.请问observer源码中,在写memtable之前会写redo日志吗?
2.如果会写redo日志,那么写redo的入口函数是什么?
我的理解是如何是写redo日志,那么应该是在写memtable之前,那么写redo的入口函数是什么或者是哪个模块。
3.ob中redo日志与传统的WAL之间的区别是什么?
望解答,谢谢。
1.请问observer源码中,在写memtable之前会写redo日志吗?
2.如果会写redo日志,那么写redo的入口函数是什么?
我的理解是如何是写redo日志,那么应该是在写memtable之前,那么写redo的入口函数是什么或者是哪个模块。
3.ob中redo日志与传统的WAL之间的区别是什么?
望解答,谢谢。
您好,我后续看了下代码。写REDO日志的接口应该是PALF模块的这个地方吧。
LogStorage::writev:
LogBlockMgr::writev:
LogBlockHandler::writev
好像理论都相同吧,都是事务提交基本就罗盘了
学习
学习学习
谢谢分享
底层原理没有任何区别,wal是预写,日志序号会一直往下走,redo也是预分配写的,但会重新用之前用过的日志。wal日志可以一次性初始化n多个,redo就那么几个重复使用。如果从恢复重做这个概念上理解,就没什么区别了。