Използвам Infinispan в Разпределен Async режим с 4 възли на 4 различни системи. Всеки възел работи с 3 GB размер на куп.
Само един възел играе ролята на товарач и се опитвада заредим 50 милиона записи в парчета (в цикъл, където 5 милиона записи отиват в кеш 10 пъти). Според моите изчисления, 4 възли могат да се справят с голяма част от данните, така че пространството не е проблем.
Когато стартирам всичките 4 възли, клъстерните формиуспешно и данните започват да се зареждат в кеша. Но тъй като данните са много големи, след като някой възел не може да получи отговор от друг възел и не успее с изключение по-долу:
2013-11-01 05:35:14 ERROR org.infinispan.interceptors.InvocationContextInterceptor - ISPN000136: Execution error
org.infinispan.util.concurrent.TimeoutException: Timed out after 15 seconds waiting for a response from INUMUU410-54463
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processCalls(CommandAwareRpcDispatcher.java:459)
at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:154)
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:534)
INUMUU410-54463 е името на машината.
Отговори:
1 за отговор № 1(копирани от Флавий коментар по-горе :)
Това, което правя във вашия случай, е да го разделя на такиваче един putAll не съдържа повече от напр. 1MB данни и след това ги изпращате синхронно (използвайки cache.getAdvancedCache ().) С полета (FORCE_SYNCHRONOUS)). Или по друг начин да задействате броя на съобщенията, които са в ефир (вижте също метода putAllAsync в разширения кеш).