2

我什至不确定正确的术语,所以让我从我的目标开始:拥有一个简单的应用程序(“Data Doler”),它只会将大量数据从文件读取到内存中,然后提供服务将该数据切片到名为“Data Lapper”的单个多线程应用程序,或多个 Data Lapper 实例。

Data Doler 只需要启动并读取一次数据块,因此我希望它至少在世界末日之前一直存在。Data Doler 应该坐在那里闲置,等待 Data Lapper(s) 连接并开始请求数据。Data Doler 将始终在具有 > 50 GB 内存的多核计算机上运行。

数据是静态的和只读的,并且它被索引,因此 Data Lapper 需要做的就是给 Data Doler 一个内存地址,它会立即取回所请求的确切数据片段。

Data Doler 可以用任何语言(C、C++、AtariBasic 等)编写。

我有 Data Lapper 的 C 源代码,所以我连接到 Data Doler 的方式是完全开放的。

我已经开始自学 SqlLite、共享内存应用程序、命名管道、ipc 等。但我希望有人可以告诉我应该叫哪棵树,或者我是否如此无能,从而节省我一些时间关于这些东西,我最好呆在门廊上。

4

1 回答 1

0

可能有一些比自己滚动更简单的解决方案,具体取决于吞吐量和数据保留多长时间。

如果符合您的要求,像memcached这样的东西会非常好。它在整个网络上都在使用。

如果您正在手工制作代码解决方案,您可能会考虑boost interprocess。对于IPC来说是相当合理的。

于 2012-09-17T20:15:11.163 回答