Hi! We call cache.get method using services and we found, that it acquires checkpoint read lock. If we have done many updates and chckpointing process has started (checkpoint write lock has acquired), then business critical read operations are waiting for lock! Is it by design?
SimpleService proxy = ignite.services(ignite.cluster().forServers()).serviceProxy(....) proxy.callSomeMethod() callSomeMethod(){ ... cache.get(K); } at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryAcquireShared(ReentrantReadWriteLock.java:481) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1327) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.tryLock(ReentrantReadWriteLock.java:871) at o.a.i.i.processors.cache.persistence.GridCacheDatabaseSharedManager.checkpointReadLock(GridCacheDatabaseSharedManager.java:1483) at o.a.i.i.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setResult(GridPartitionedSingleGetFuture.java:685) at o.a.i.i.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.localGet(GridPartitionedSingleGetFuture.java:477) at o.a.i.i.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.mapKeyToNode(GridPartitionedSingleGetFuture.java:354) at o.a.i.i.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.map(GridPartitionedSingleGetFuture.java:225) at o.a.i.i.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.init(GridPartitionedSingleGetFuture.java:217) at o.a.i.i.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.getAsync(GridDhtColocatedCache.java:272) at o.a.i.i.processors.cache.GridCacheAdapter.get0(GridCacheAdapter.java:4716) at o.a.i.i.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4697) at o.a.i.i.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1415) at o.a.i.i.processors.cache.IgniteCacheProxyImpl.get(IgniteCacheProxyImpl.java:928) at o.a.i.i.processors.cache.GatewayProtectedCacheProxy.get(GatewayProtectedCacheProxy.java:640)