LiteDB 是一个 ACID (原子性、一致性、隔离性、持久性) 数据库,因此在并发访问时数据操作总是一致的。

日志

在 v4 中,不再有外部的日志文件。脏页面先被存储到相同数据文件的扩展区域,当然,是在已用位置末端之后。这样,LiteDB 运行得更快。毕竟不再需要同时打开/锁定/关闭2个文件,用一个单独的文件比两个运行地更好。

要保证数据完整性和对失败的宽容,在写入到正确数据位置以前,LiteDB 用文件的扩展区域来写入所有变化。

日志默认是启用的。你可以在连接字符串中禁用它以获得快速写操作,不过有一些风险!

  1. var db = new LiteDatabase("filename=mydata.db; journal=false");

还原

当引擎将页面写到磁盘时,数据文件并不是完整的。如果在写操作的过程中发生任何问题,那么在下次访问时,数据库引擎必须执行还原过程以退回到上一个完整的状态 (在开始写之前)。在这个过程中,日志页面先被写入到相同的磁盘文件已使用区域的后面,而在恢复到原始状态之后,这个扩展区域将被压缩。