hazelcast IMap에서 5 백만 항목을 다른 맵으로로드하려고하지만 너무 많은 시간이 걸립니다. 내가 그것을 최적화 할 수 있습니다 어떻게 적은 시간을 소요하고 possible.Below이 코드응용 프로그램 시작시 hazelcast 맵에서 5 백만 항목을 다른 맵으로로드해야합니다.
//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();
다섯 개 스레드로 병렬 처리, 각 복사 만 만 항목 : 사용 사례는 다음과 같은 경우
좀 더 세부 사항에 대한 페이징 술어의 문서를 참조하십시오, 당신은 또한 당신의 결과는 작은 덩어리에서 설정 한 페이지로 볼 제안? – Shark
응용 프로그램을 더 빨리 시작할 수 있도록 백그라운드 스레드에서 맵을 초기화 할 수 없습니까? – StephaneM
http://docs.hazelcast.org/docs/latest/javadoc/com/hazelcast/core/IMap.html#executeOnEntries-com.hazelcast.map.EntryProcessor-가 도움이 될 수 있습니다. 그러나 일반적으로 이것은 디자인 문제처럼 보입니다. 이전에 키를 처리 한 시간과 비교하여 초기화 논리가 완료 될 때 맵에 동일한 값이 포함되어 있는지 어떻게 확인할 수 있습니까? – SpaceTrucker