Hello! AFAIK, Checkpoint lock works like a barrier here: everyone has to wait until checkpoint starts, then they can resume operations while it is running.
If there is some long operation which blocks checkpoint start then all operations may be waiting. Regards, -- Ilya Kasnacheev пт, 12 июл. 2019 г. в 09:20, Andrey Dolmatov <[email protected]>: > 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) > > >
