You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexey Gidaspov (Jira)" <ji...@apache.org> on 2021/07/01 09:43:00 UTC

[jira] [Updated] (IGNITE-14140) Checkpointer thread holds write lock too long

     [ https://issues.apache.org/jira/browse/IGNITE-14140?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexey Gidaspov updated IGNITE-14140:
-------------------------------------
    Ignite Flags: Release Notes Required  (was: Docs Required,Release Notes Required)

> Checkpointer thread holds write lock too long
> ---------------------------------------------
>
>                 Key: IGNITE-14140
>                 URL: https://issues.apache.org/jira/browse/IGNITE-14140
>             Project: Ignite
>          Issue Type: Bug
>          Components: persistence
>            Reporter: Vladislav Pyatkov
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>             Fix For: 2.11
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Free lists flushing optimization can block db-checkpoint-thread when it got Write lock. It might block all transactions for several hundreds milliseconds.
> {noformat}
> "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)
> {noformat}
> 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.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)