我有一个问题,我需要组装一个最终大小为 GB(超过 64GB)的 Map,我不能假设该程序的用户会有这种怪物机器闲逛。一个不错的解决方案是将此映射分布在多台机器上,以使每个实例的内存占用要少得多。
有谁知道可以执行此分片的库/工具套件?我不关心复制或事务;只是分散这个内存需求。
它必须是开源的吗?如果没有,Oracle Coherence可以做到。
我建议你从 hazelcast 开始:
它是开源的,在我看来它很容易使用,因此它是快速原型设计的最佳框架。
据我所知,它的性能比商业替代品更快,所以我也不担心性能。
(我自己还没有正式对其进行基准测试)
您可能可以通过使用数据库来解决您的问题,例如http://hsqldb.org/可以提供您需要的功能,能够将数据写入磁盘而不是将整个数据保存在内存中。
我肯定会退后一步,问问自己地图是否是 GB 数据的正确数据结构。
Gigaspaces Datagrid听起来像是您正在寻找的那种东西。(虽然不是免费的)