Hi, Could you please provide thread dump from all server nodes? It will help to determine reasons of hold.
On Wed, Aug 24, 2016 at 10:32 AM, Zhengqingzheng <[email protected]> wrote: > Hi there, > > When running performance test, our system always blocked at > “GridFutureAdapter.get0”method. > > Here is the log info: > > ""busReqExecutor-thread-99" #818 daemon prio=5 os_prio=0 > tid=0x00007f972ba3c000 nid=0x1f5a5 waiting on condition [0x00007f96f9e3d000] > > java.lang.Thread.State: WAITING (parking) > > at sun.misc.Unsafe.park(Native Method) > > - parking to wait for <0x00000007a164a690> (a > org.apache.ignite.internal.processors.cache.distributed.dht. > GridPartitionedSingleGetFuture) > > at java.util.concurrent.locks.LockSupport.park(LockSupport. > java:175) > > at java.util.concurrent.locks.AbstractQueuedSynchronizer. > parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) > > at java.util.concurrent.locks.AbstractQueuedSynchronizer. > doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997) > > at java.util.concurrent.locks.AbstractQueuedSynchronizer. > acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) > > at org.apache.ignite.internal.util.future.GridFutureAdapter. > get0(GridFutureAdapter.java:159) > > at org.apache.ignite.internal.util.future.GridFutureAdapter. > get(GridFutureAdapter.java:117) > > at org.apache.ignite.internal.processors.cache.distributed. > dht.atomic.GridDhtAtomicCache.get(GridDhtAtomicCache.java:347) > > at org.apache.ignite.internal.processors.cache. > GridCacheAdapter.get(GridCacheAdapter.java:4783) > > at org.apache.ignite.internal.processors.cache. > GridCacheAdapter.get(GridCacheAdapter.java:1395) > > at org.apache.ignite.internal.processors.cache. > IgniteCacheProxy.get(IgniteCacheProxy.java:956) > > at > com.huawei.soa.daf.impl.DafContextImpl.*checkObjIsExist*(DafContextImpl.java:2348) > ---- step 2 > > at > com.huawei.soa.daf.impl.DafContextImpl.*saveOrUpdateData*(DafContextImpl.java:1896) > --step 1 > > at com.huawei.soa.daf.impl.DafContextImpl.batchSaveCreatedVo( > DafContextImpl.java:1555) > > at com.huawei.soa.daf.impl.DafContextImpl.saveCreatedVo( > DafContextImpl.java:1482) > > at com.huawei.soa.daf.impl.DafContextImpl.commit( > DafContextImpl.java:688) > > …” > > *In the step1, SaveOrUpdateData method will call putAll methods for > different caches using .withAysnc(). During this time , it seems that all > async cache is locked for put operations.* > > *However in step 2 checkObjIsExist() method, I need to call cache.get(key) > method to verify some other data (keys, values). But due to the first step, > the cache is locked. * > > *All the get operations are queued and wait for async cache put operations > to complete. * > > *Is there any way I can call get method without async put blocking?* > > > > *Please see press log for details. * > > > > *Best regards,* > > *Kevin* > > > > > > > > > -- Vladislav Pyatkov
