设计问题:从低延迟C++应用程序更新数据库

Gro*_*ovy 3 c++ database performance

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

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

Moo*_*uck 6

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