有没有人有在LAN(Windows或Linux)上的SMB共享上运行Sqlite数据库的实际经验?
从文档中可以清楚地看出,这并不是共享Sqlite数据库的最快方式.
显而易见的警告是它可能很慢,并且Sqlite一次只支持一个写入DB的线程.因此,您的并发性会降低很多,因为您的数据库更新现在会阻止数据库更长时间(数据在网络上传输时数据库将被锁定).
对于我的应用程序,我想要共享的数据量相当小,并且写入不太频繁(最多每隔几秒写一次).
我应该注意什么?这可以吗?
我知道这不是Sqlite的设计目标,我对基于Postgres/MySql/Sql Server的解决方案不太感兴趣,因为我试图尽可能保持我的应用程序尽可能少的依赖.
相关链接:
从sqlite邮件列表中,我想一个很大的问题是SMB(windows或linux)上的filelock apis有多不可靠
如何构建原子文件写操作?该文件由Java服务编写,并由python脚本读取.
对于记录,读取远远大于写入.但是写入分批发生并且往往很长.文件大小相当于兆字节.
现在我的方法是:
这是正确的方法吗?如何避免旧文件被删除但新文件名尚未重命名的情况?
这些编程语言(python和java)是否提供锁定和避免这种情况的构造?