我正在用 C++ 开发一个低延迟应用程序。我还需要更新我的处理和所有状态更改的数据库。为了节省调用数据库更新所涉及的延迟,我在我的应用程序中使用本地数据结构(内存中)。

但我仍然需要更新数据库。我应该使用单独的线程来更新数据库吗?如何节省数据库延迟并保持数据库最新。

最佳答案

为了最小的延迟,您肯定需要一个数据库线程(我称之为 DBT)。
但是,如果更新频繁,您将需要缓冲更改,并让 DBT 在将更新推送到实际数据库之前合并它可以合并的任何更新。如果 player.x = 1,那么 player.x = 2,DBT 可以跳过第一个。
如果更新速度非常快,并且数据集不是很大,您可以考虑定期完整转储而不是运行更新。例如,就像每 60 秒“保存”一次您正在做的事情一样,而不是向数据库发送已完成的每个操作的列表。
答案很大程度上取决于你在做什么。这里没有一刀切的答案。

关于c++ - 设计问题 : Updating database from a low latency C++ application,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7070366/

10-13 08:39