我正在开发一个C++低延迟应用程序。我还需要更新处理的数据库和所有状态更改。为了节省调用数据库更新所涉及的延迟,我在我的应用程序中使用本地数据结构(内存中)。但是我仍然需要更新数据库。我应该为更新数据库使用单独的线程吗?如何节省数据库延迟并保持数据库最新?
有一个绝对好的解决方案:尽可能少地保存到数据库。你不必每秒钟都调用保存,大多数情况下,你可以安全地每分钟甚至更少地调用一次DB。
结合给出的答案并应用我的想法,我正在考虑实施以下策略: - 在运行时更新本地数据结构并将其转储到文件而不是数据库 - 一个单独的线程用于从文件读取并将其转储到数据库(实际上必须获取锁定并移动现有文件并将内容复制到数据库)
你怎么看? 这种解决方案是否存在漏洞?