我的应用程序运行在一个便携式的 Debian (5和8) 计算机上。这台计算机可能会在不可预测的时候失电。该应用程序频繁更新一个特定的 SQLite3 数据库,并立即刷新到磁盘,使用 sync()
命令。这样做是为了避免在更改完全写入磁盘之前断电导致数据库损坏。
这一直很好地运作,但现在的问题是 sync()
命令会将所有打开的文件的所有缓冲更改都刷新到磁盘上,从而导致系统其他部分减速。一种可能的解决方案是仅刷新关键文件的更改,例如该特定的数据库文件。但问题是,我无法访问文件描述符,并且找不到任何可以为我完成此操作的 SQLite3 函数。你有什么想法吗?