跨多个节点自动分片Java映射
我有一个问题,我需要组装一个最终大小为GBs(超过64GB)的地图,我不能假设程序的用户会有这种怪物机器。一个很好的解决方案是将此映射分布到多台机器上,以使每个实例的内存占用量小得多
有人知道可以执行此切分的工具库/套件吗?我不关心复制或事务;只是把内存需求分散开来
你可以在下面搜索框中键入要查询的问题!
我有一个问题,我需要组装一个最终大小为GBs(超过64GB)的地图,我不能假设程序的用户会有这种怪物机器。一个很好的解决方案是将此映射分布到多台机器上,以使每个实例的内存占用量小得多
有人知道可以执行此切分的工具库/套件吗?我不关心复制或事务;只是把内存需求分散开来
# 1 楼答案
Gigaspaces Datagrid听起来像是你在寻找的那种东西。(但不是免费的)
# 2 楼答案
您可以通过使用数据库来解决问题,例如http://hsqldb.org/可以提供所需的功能,将数据写入磁盘,而不是将整个数据保存在内存中
我肯定会退一步问问自己,地图是否是GBs数据的正确数据结构
# 3 楼答案
兵马俑可能有用看看这里
http://www.terracotta.org/
它是一个集群jvm,这取决于您更新映射的频率,我猜取决于它的性能
# 4 楼答案
它必须是开源的吗?如果没有,那么Oracle Coherence可以这样做
# 5 楼答案
我建议您从hazelcast开始:
http://www.hazelcast.com/
它是开源的,在我看来,它非常容易使用,因此它是快速原型的最佳框架
据我所知,它的性能比商业替代品快,所以我也不担心性能
(我自己还没有正式进行基准测试)