2016-12-09 6 views
-1

40000 개가 넘는 항목으로지도를로드하려고 할 때 Hazelcast에 문제가 있습니다.Hazelcast가 "큰"항목 수의지도를로드하지 못함

항목 수를 대략 40000 개로 제한하면 Hazelcast에서지도를 잘로드합니다. 그 이상의 경우 결과가 반복적으로 throw되는 다음 예외가 발생합니다. 나는 Hazelcast MapLoader를 사용하고있다. MapLoader.getAllKeys는 결과 크기에 관계없이 성공적으로 실행됩니다. 로드 될 객체의 각 일괄 처리에 대해 예외가 발생합니다.
단일 노드에서 Hazelcast 버전 3.7.2를 사용하고 있습니다. 어떤 도움이나지도도 크게 감사드립니다.

09-Dec-2016 12:38:19.885 WARNING [http-nio-8088-exec-3] com.hazelcast.util.FutureUtil.null Exception occurred 
java.util.concurrent.ExecutionException: java.lang.NullPointerException 
    at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolveAndThrow(InvocationFuture.java:85) 
    at com.hazelcast.spi.impl.AbstractInvocationFuture.get(AbstractInvocationFuture.java:186) 
    at com.hazelcast.util.FutureUtil.executeWithDeadline(FutureUtil.java:326) 
    at com.hazelcast.util.FutureUtil.waitWithDeadline(FutureUtil.java:310) 
    at com.hazelcast.util.FutureUtil.waitWithDeadline(FutureUtil.java:284) 
    at com.hazelcast.map.impl.proxy.MapProxySupport.waitUntilLoaded(MapProxySupport.java:583) 
    at com.hazelcast.map.impl.proxy.MapProxyImpl.waitUntilLoaded(MapProxyImpl.java:82) 
    at com.hazelcast.map.impl.proxy.MapProxySupport.initializeMapStoreLoad(MapProxySupport.java:225) 
    at com.hazelcast.map.impl.proxy.MapProxySupport.initialize(MapProxySupport.java:217) 
    at com.hazelcast.map.impl.proxy.MapProxyImpl.initialize(MapProxyImpl.java:82) 
    at com.hazelcast.spi.impl.proxyservice.impl.ProxyRegistry.doCreateProxy(ProxyRegistry.java:180) 
    at com.hazelcast.spi.impl.proxyservice.impl.ProxyRegistry.createProxy(ProxyRegistry.java:170) 
    at com.hazelcast.spi.impl.proxyservice.impl.ProxyRegistry.getOrCreateProxy(ProxyRegistry.java:139) 
    at com.hazelcast.spi.impl.proxyservice.impl.ProxyServiceImpl.getDistributedObject(ProxyServiceImpl.java:147) 
    at com.hazelcast.instance.HazelcastInstanceImpl.getDistributedObject(HazelcastInstanceImpl.java:372) 
    at com.hazelcast.instance.HazelcastInstanceImpl.getMap(HazelcastInstanceImpl.java:178) 
    at com.hazelcast.instance.HazelcastInstanceProxy.getMap(HazelcastInstanceProxy.java:92) 
    at com.df.repository.hazelcast.MapFactory.getOrCreateMap(DataFabricMapFactory.java:16) 
Caused by: java.lang.NullPointerException 
    at com.hazelcast.internal.partition.impl.InternalPartitionServiceImpl.getPartitionId(InternalPartitionServiceImpl.java:834) 
    at com.hazelcast.map.impl.MapKeyLoaderUtil$2.apply(MapKeyLoaderUtil.java:113) 
    at com.hazelcast.map.impl.MapKeyLoaderUtil$2.apply(MapKeyLoaderUtil.java:110) 
    at com.hazelcast.util.IterableUtil$2.next(IterableUtil.java:60) 
    at com.hazelcast.map.impl.MapKeyLoaderUtil.nextBatch(MapKeyLoaderUtil.java:86) 
    at com.hazelcast.map.impl.MapKeyLoaderUtil$1.next(MapKeyLoaderUtil.java:76) 
    at com.hazelcast.map.impl.MapKeyLoaderUtil$1.next(MapKeyLoaderUtil.java:65) 
    at com.hazelcast.map.impl.MapKeyLoader.sendKeysInBatches(MapKeyLoader.java:309) 
    at com.hazelcast.map.impl.MapKeyLoader.access$200(MapKeyLoader.java:72) 
    at com.hazelcast.map.impl.MapKeyLoader$1.call(MapKeyLoader.java:192) 
    at com.hazelcast.map.impl.MapKeyLoader$1.call(MapKeyLoader.java:189) 
    at com.hazelcast.util.executor.CompletableFutureTask.run(CompletableFutureTask.java:67) 
    at com.hazelcast.util.executor.CachedExecutorServiceDelegate$Worker.run(CachedExecutorServiceDelegate.java:212) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
    at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76) 
    at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:92) 
    at ------ submitted from ------.(Unknown Source) 
    at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolve(InvocationFuture.java:111) 
    at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolveAndThrow(InvocationFuture.java:74) 
    ... 58 more 
+0

문제를 재현하는 샘플 코드를 게시 할 수 있습니까? 저장하는 개체의 크기는 얼마입니까? –

+0

개체가 크지 않습니다. 6 개 문자열 속성을 가진 단순한 pojo. 샘플 코드를 제공하는 것이 어려울 수 있습니다. 그러나 이것은 스프링 구성된 맵입니다. – bneuman

답변

0

null ID를 가진 80000 개의 레코드 중 하나가 나타납니다. 열이 NULL이 아니라고 가정 할 때의 나의 잘못. 나쁜 데이터를 제거한 후에 모두 잘 작동하는 것 같습니다.