SQLite 锁定 xFileSize 和 xTruncate

问题描述 投票:0回答:1

我正在使用APSW的VFS层为SQLite编写VFShttps://github.com/michalc/sqlite-memory-vfs,并尝试确保它允许安全地并发访问

认为 xRead 和 xWrite 受 SQLite+VFS 锁定机制保护 - xRead 受 SHARED 锁保护,xWrite 受 EXCLUSIVE 保护。

但是:xFileSize 和 xTruncate 怎么样?这些是否也受到共享锁和独占锁的保护?询问是因为 VFS 中用于存储文件的底层数据结构是不是线程安全的。

python python-3.x multithreading sqlite locking
1个回答
0
投票

经过一些测试,我只见过数据库的“-journal”文件上的 xFileSize 没有被共享锁包装,xTruncate 没有被 EXCLUSIVE 包装。

而且我认为 SQLite 主文件上的锁定机制可以保护这些。

诚然,这并不是铁证如山——只是证据。

© www.soinside.com 2019 - 2024. All rights reserved.