本文介绍SQLite的rollback journal机制,即写前拷贝的原子提交方式。它通过五级锁状态机管理写事务,将原始页备份到-journal文件,提交点通过删除、截断或清零journal头部实现。只有发生cache spill时才会产生hot journal,崩溃后下次打开数据库时自动恢复。与WAL模式不同,rollback journal写会短暂阻塞读。
本文介绍SQLite 3.0的锁状态机,五态为UNLOCKED、SHARED、RESERVED、PENDING、EXCLUSIVE。RESERVED允许新读者,PENDING拒绝新读者以防写者饿死。Pager仅跟踪四态,PENDING是瞬时状态。实测验证RESERVED唯一性,读写可共存。shared cache已过时,WAL模式另用独立锁机制。
完成下面两步后,将自动完成登录并继续当前操作。