自动在多个节点上分割Java Map

时间:2010-01-29 17:20:22

标签: java map sharding

我有一个问题,我需要组装一个Map,其最终大小在GB中(超过64GB),我不能假设程序的用户会有这种怪物机器闲置。一个很好的解决方案是将这个映射分布在多个机器上,以便为每个实例提供更加适度的内存占用。

有谁知道可以执行此分片的库/工具套件?我不关心复制或交易;只是传播这种记忆要求。

5 个答案:

答案 0 :(得分:3)

兵马俑可能有用看看

http://www.terracotta.org/

它的群集jvm将取决于你更新地图的频率,我猜它的表现如何。

答案 1 :(得分:2)

一定是开源吗?如果没有,Oracle Coherence可以做到。

答案 2 :(得分:2)

我建议你从hazelcast开始:

http://www.hazelcast.com/

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

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

答案 3 :(得分:1)

您可以通过使用数据库来解决您的问题,类似http://hsqldb.org/之类的东西可以提供您将数据写入磁盘而不是将整个内容保留在内存中所需的功能。

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

答案 4 :(得分:0)

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