【发布时间】:2017-11-13 11:38:07
【问题描述】:
我想将 500 万个条目从 hazelcast IMap 加载到另一张地图,但它花费了太多时间。我怎样才能优化它,所以它应该花费更少的时间,我的应用程序可以尽早出现。下面是代码 sn-p
//localMap is another map where i want to put all entries from Hazelcast
Map<Object, Object> localMap = new ConcurrentHashMap();
//imap is hazelcast map reference
Iterator<Object> itr = imap.keySet().iterator();
while (itr.hasNext()) {
Object obj = itr.next();
localMap.put(obj, imap.get(obj));
}
//returning entry set of local map
return localMap.entrySet().iterator();
【问题讨论】:
-
并行化到五个线程,每个线程只复制一百万个条目?
-
您不能在后台线程中初始化您的地图,以便您的应用程序可以更快地启动吗?
-
docs.hazelcast.org/docs/latest/javadoc/com/hazelcast/core/… 可以提供帮助。但总的来说,这看起来像是一个设计问题。与之前处理键的时间相比,如何确保在初始化逻辑完成时映射包含相同的值?
-
@Shark 感谢您的建议,但问题是我如何将它分成每个线程的 1M 条目?
-
@StephaneM 不,我不能,因为我有一些依赖于 localmap 的服务,它应该首先初始化。
标签: java hazelcast hazelcast-imap