[
https://issues.apache.org/jira/browse/IGNITE-8761?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16512284#comment-16512284
]
ASF GitHub Bot commented on IGNITE-8761:
----------------------------------------
GitHub user vldpyatkov opened a pull request:
https://github.com/apache/ignite/pull/4188
IGNITE-8761
WAL fsync at rollover should be asynchronous in LOG_ONLY and BACKGROUND
modes
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gridgain/apache-ignite ignite-8761
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/4188.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #4188
----
commit 29831e48edd57bf8907f8ed74a535b23bafee014
Author: vd-pyatkov <vpyatkov@...>
Date: 2018-06-14T07:38:32Z
IGNITE-8761
WAL fsync at rollover should be asynchronous in LOG_ONLY and BACKGROUND
modes
----
> WAL fsync at rollover should be asynchronous in LOG_ONLY and BACKGROUND modes
> -----------------------------------------------------------------------------
>
> Key: IGNITE-8761
> URL: https://issues.apache.org/jira/browse/IGNITE-8761
> Project: Ignite
> Issue Type: Improvement
> Components: persistence
> Reporter: Ivan Rakov
> Assignee: Vladislav Pyatkov
> Priority: Major
> Fix For: 2.6
>
>
> Transactions may periodically hang for a few seconds in LOG_ONLY or
> BACKGROUND persistent modes. Thread dumps show that threads are hanging on
> syncing previous WAL segment during rollover:
> {noformat}
> java.lang.Thread.State: RUNNABLE
> at java.nio.MappedByteBuffer.force0(MappedByteBuffer.java:-1)
> at java.nio.MappedByteBuffer.force(MappedByteBuffer.java:203)
> at
> org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$FileWriteHandle.close(FileWriteAheadLogManager.java:2843)
> at
> org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$FileWriteHandle.access$600(FileWriteAheadLogManager.java:2483)
> at
> org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.rollOver(FileWriteAheadLogManager.java:1094)
> {noformat}
> Waiting for this fsync is not necessary action to ensure crash recovery
> guarantees. Instead of this, we should just perform fsyncs asychronously and
> ensure that they are completed prior to next checkpoint start.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)