5

我有一个问题,我需要组装一个最终大小为 GB(超过 64GB)的 Map,我不能假设该程序的用户会有这种怪物机器闲逛。一个不错的解决方案是将此映射分布在多台机器上,以使每个实例的内存占用要少得多。

有谁知道可以执行此分片的库/工具套件?我不关心复制或事务;只是分散这个内存需求。

4

5 回答 5

3

兵马俑可能有用看看这里

http://www.terracotta.org/

它是一个集群的 jvm 将取决于您更新地图的频率,我猜它的性能如何。

于 2010-01-29T17:24:26.183 回答
2

它必须是开源的吗?如果没有,Oracle Coherence可以做到。

于 2010-01-29T17:26:09.193 回答
2

我建议你从 hazelcast 开始:

http://www.hazelcast.com/

它是开源的,在我看来它很容易使用,因此它是快速原型设计的最佳框架。

据我所知,它的性能比商业替代品更快,所以我也不担心性能。
(我自己还没有正式对其进行基准测试)

于 2010-01-29T17:28:58.373 回答
1

您可能可以通过使用数据库来解决您的问题,例如http://hsqldb.org/可以提供您需要的功能,能够将数据写入磁盘而不是将整个数据保存在内存中。

我肯定会退后一步,问问自己地图是否是 GB 数据的正确数据结构。

于 2010-01-29T17:31:07.100 回答
0

Gigaspaces Datagrid听起来像是您正在寻找的那种东西。(虽然不是免费的)

于 2010-01-29T23:03:34.900 回答