引言:本节讲解sqlite的并发控制框架。
概述按照之前起步阶段对sqlitebtree整体架构的分析,“页面管理模块”分为以下几个子模块:
?页面缓存管理。?页面备份,又分为以下两种实现:?journal文件。?WAL文件。?页面管理模块。
前面一节讲完了“页面缓存管理”的实现,按照自下往上的顺序,就应该到“页面备份”了。“页面备份”核心的工作是:在真正修改页面内容之前,将还未修改的页面内容备份,这样一旦系统在事务过程中宕机崩溃,就可以用这部分内容回滚还未落盘的事务修改,让系统回到一个正确的状态。
“页面备份”有两种实现方式,在早期使用的journal文件,这种方式性能不高;在3.7版本之后,sqlite引入了WAL文件来保存页面内容,这样做的效率更高。
本节就讲解这部分内容,在对这部分内容有一个总体的了解之后,继续讲解页面备份的总体流程。后面的章节再具体分析journal以及WAL的实现。
写事务的流程(以下流程分析,按照sqlite
转载请注明:http://www.0431gb208.com/sjsbszl/225.html