2016-12-09 2 views
-1

J'ai un problème avec Hazelcast lorsque vous essayez de charger une carte avec plus de 40000 entrées. Hazelcast charge la carte très bien si je limite le nombre d'entrées à environ 40000. Beaucoup plus que cela fait que l'exception suivante est levée à plusieurs reprises. J'utilise un MapLoader Hazelcast. MapLoader.getAllKeys s'exécute avec succès quelle que soit la taille du résultat. L'exception est levée pour chaque lot d'objets à charger.
J'utilise Hazelcast version 3.7.2 avec un seul noeud. Toute aide ou conseil grandement apprécié.Hazelcast ne parvient pas à charger la carte avec "grand" nombre d'entrées

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

Pouvez-vous poster un exemple de code pour reproduire le problème? Quelle est la taille des objets que vous stockez? –

+0

Les objets ne sont pas volumineux. Juste pojo simple avec une demi-douzaine de propriétés de la chaîne. Fournir un exemple de code pourrait être difficile. Mais ceci est une carte configurée au printemps. – bneuman

Répondre

0

L'un de ces 80000 enregistrements a un ID nul. Ma faute pour supposer que la colonne ne serait pas NULL. Après avoir supprimé les mauvaises données, tout semble bien fonctionner.