Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-14140

Checkpointer thread holds write lock too long

Agile BoardAttach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.11
    • Component/s: persistence
    • Labels:
      None
    • Release Note:
      Decreased an exclusive checkpoint lock time.
    • Ignite Flags:
      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

          Activity

            People

            • Assignee:
              v.pyatkov Vladislav Pyatkov
              Reporter:
              v.pyatkov Vladislav Pyatkov

              Dates

              • Created:
                Updated:
                Resolved:

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - 0h
              0h
              Logged:
              Time Spent - 20m
              20m

                Issue deployment