微信移动客户端开发团队官号,分享微信在Android、iOS、Mac、Winphone、Windows等平台的开发经验、前沿技术,以及一些鲜为人知的小故事。
目录
相关文章推荐
爱在冰川  ·  zmyk ·  昨天  
爱在冰川  ·  zmyk ·  昨天  
今天看啥  ›  专栏  ›  微信客户端技术团队

WCDB 的 WAL 模式和异步 Checkpoint

微信客户端技术团队  · 公众号  ·  · 2018-01-14 18:30
    

文章预览

WAL 模式是 SQLite 3.7.0 版本推出的改进写性能和并发性的功能,至今已经7年多了,但由于WAL是默认关闭的,可能有相当多的应用并没有用上,仍然使用性能较差的传统模式。 微信 APP 开启了 WAL 模式,同时还针对 WAL 做了一点改进 —— 异步 Checkpoint。通过 A/B Test,最终相比传统 Rollback 模式写耗时减少 70% 以上,还稍稍降低了 DB 损坏率。 WAL 和异步 Checkpoint SQLite 实现  原子性提交和回滚操作  的默认方法是 rollback journal。当对 DB 进行写操作的时候,SQLite 首先将准备要修改部分的原始内容(以 Page 为单位)拷贝到“回滚日志”中,用于后续可能的 Rollback 操作以及 Crash、断电等意外造成写操作中断时恢复 DB 的原始状态,回滚日志存放于名为“DB文件名-journal”的独立文 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览