在内存数据结构中

时间:2011-01-24 08:51:08

标签: c++

我有一个分布式应用程序。这里有一组进程,遍布多台计算机,相互通信。我有一个数据结构,在这些过程中进行了修改。这不存储在数据库中。

现在的问题是如何在所有流程中保持对此数据结构的相同视图

即,在任何时候,所有进程都应该看到相同的数据结构

3 个答案:

答案 0 :(得分:1)

你说你没有数据库。这是一种耻辱,因为数据库作者已经解决了您的问题。您需要在项目中加入等效技术。显然,采用数据库技术的最快速,最简单的方法是合并数据库。

答案 1 :(得分:1)

Redis旨在解决您的问题。它是一个键值存储,用于在不同计算机上运行但共享数据的程序之间共享。它是您在某处运行的服务器,您的程序都使用它提供的客户端库连接到此服务器。

您也可以使用mysql这样的数据库,但使用in-memory表。

如果您的数据结构不能很好地适应键值或关系模型,那么您就会遇到与多玩家游戏相同的情况。同步多人游戏并不是一件容易的事情,但可以做到这一点,这里有一个很好的介绍:gafferongames.com

答案 2 :(得分:0)

我会推荐像数据分发服务平台这样的东西(开源版本是OpenDDS)。他们的关键卖点是,它旨在将数据的变化传播给所有对此类变化感兴趣的人。而且表现也不错。

该协议的商业实现用于各种实时系统,主要是军用级应用。

需要考虑的更多选项,分布式缓存(例如memcached) - 虽然我自己没有玩过这个 - 但它看起来很直接起来并且正在运行。