我知道不建议在网络驱动器上使用Sqlite,原因有两个:性能和由于网络文件系统执行不良导致的数据损坏.
不过,我想探讨使用Sqlite支持具有中央数据库的多用户应用程序的可能性.我们已经在单用户计算机和多个数据库服务器(Oracle,PostgreSQL)上支持Sqlite以进行多用户设置.使用Sqlite进行多用户设置可以方便地在具有Windows共享驱动器(SMB)的现有IT基础架构上进行轻量级安装.
我们不太关心绩效,所以我们愿意为避免腐败付出代价.引用http://www.sqlite.org/atomiccommit.html,第9.1节:
但是,如果必须使用网络文件系统来存储SQLite数据库文件,请考虑使用辅助锁定机制来防止同时写入同一数据库,即使本机文件系统锁定机制出现故障也是如此.
我正在寻找实现这种机制的提示和建议,或者更一般地说,是关于避免Sqlite通过Windows共享驱动器出现问题的提示.
例如,我正在考虑以下大脑死锁方法:在任何(非只读)SQLite查询之前,尝试在同一个共享文件夹上创建一个空文件并保持打开直到查询结束; 通常,任何其他尝试在仍处于打开状态时创建具有相同名称的文件的Windows进程都会阻塞或失败.那会有用吗?还有什么更好的?
归档时间: |
|
查看次数: |
2829 次 |
最近记录: |