聊聊日志即数据库

《数据库故障恢复机制的前世今生》[1]一文中介绍过,由于磁盘的的顺序访问性能远好于随机访问,数据库设计中通常都会采用WAL的方式,将随机访问的数据库请求转换为顺序的日志IO,并通过Buffer Pool尽量的合并并推迟真正的数据修改落盘。如果发生故障,可以通过日志的重放恢复故障发生前未刷盘的修改信息。也就是说Log中包含数据库恢复所需要的全部信息。 现代数据库为了追求更高的事务并发度,会显式地区分用户可见的逻辑内容和维护内部的物理结构,在并发控制上支持了Lock和Latch