Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跨多个节点自动分片Java映射_Java_Map_Sharding - Fatal编程技术网

跨多个节点自动分片Java映射

跨多个节点自动分片Java映射,java,map,sharding,Java,Map,Sharding,我有一个问题,我需要组装一个最终大小为GBs(超过64GB)的地图,我不能假设程序的用户会有这种怪物机器。一个很好的解决方案是将此映射分布到多台机器上,以使每个实例的内存占用量小得多 有人知道可以执行此切分的工具库/套件吗?我不关心复制或事务;只要把这个内存需求分散开来就行了。陶土可能很有用,看看这里 它是一个集群jvm,这取决于您更新映射的频率,我猜取决于它的性能。它必须是开源的吗?如果没有,可以这样做。我建议您从hazelcast开始: 它是开源的,在我看来,它非常容易使用,因此它是快速

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


有人知道可以执行此切分的工具库/套件吗?我不关心复制或事务;只要把这个内存需求分散开来就行了。

陶土可能很有用,看看这里


它是一个集群jvm,这取决于您更新映射的频率,我猜取决于它的性能。

它必须是开源的吗?如果没有,可以这样做。

我建议您从hazelcast开始:

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

据我所知,它的性能比商业替代品快,因此我也不担心性能。

(我自己还没有正式对其进行基准测试)

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


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

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

如果你正在构建一个商业产品,Terracotta的开源许可可能是一件痛苦的事情,主要是因为属性条款许可不是一个问题,因为该项目是开源的;Terracotta看起来有点像OTT,而且我更担心Terracotta能否很好地共享数据。eHcache看起来似乎可以做到。嘿,凯文,你是对的,这就是为什么我很快添加了一句插入语:)不幸的是,HSQLDB太慢了&数据被很好地排列成键值对。这个问题源于需要非常快速的查找,而不能预测查找顺序。这就是为什么基于散列的解决方案似乎比使用RDBMSAgreed更好,这正是(而且更多)他想要的。。。不过这可能有点过分了。