Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
Decreased an exclusive checkpoint lock time.
-
Release Notes Required
Description
Free lists flushing optimization can block db-checkpoint-thread when it got Write lock. It might block all transactions for several hundreds milliseconds.
"db-checkpoint-thread-#334%DPL_GRID%DplGridNodeName%" #667 daemon prio=5 os_prio=0 tid=0x00007e765c123800 nid=0xee0b8 runnable [0x00007e767f535000] java.lang.Thread.State: RUNNABLE at sun.misc.Unsafe.getObjectVolatile(Native Method) at java.util.concurrent.atomic.AtomicReferenceArray.getRaw(AtomicReferenceArray.java:130) at java.util.concurrent.atomic.AtomicReferenceArray.get(AtomicReferenceArray.java:125) at org.apache.ignite.internal.processors.cache.persistence.freelist.AbstractFreeList.getBucketCache(AbstractFreeList.java:690) at org.apache.ignite.internal.processors.cache.persistence.freelist.PagesList.flushBucketsCache(PagesList.java:374) at org.apache.ignite.internal.processors.cache.persistence.freelist.PagesList.saveMetadata(PagesList.java:343) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.saveStoreMetadata(GridCacheOffheapManager.java:373) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.syncMetadata(GridCacheOffheapManager.java:336) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.syncMetadata(GridCacheOffheapManager.java:322) at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.onMarkCheckpointBegin(GridCacheOffheapManager.java:247) at org.apache.ignite.internal.processors.cache.persistence.checkpoint.CheckpointWorkflow.markCheckpointBegin(CheckpointWorkflow.java:281) at org.apache.ignite.internal.processors.cache.persistence.checkpoint.Checkpointer.doCheckpoint(Checkpointer.java:388) at org.apache.ignite.internal.processors.cache.persistence.checkpoint.Checkpointer.body(Checkpointer.java:264) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119) at java.lang.Thread.run(Thread.java:748)
We can to reduce time into Write lock if switch off optimization before the lock will be gotten and enable it after the lock will be left off.
Attachments
Issue Links
- links to