Ivan Rakov created IGNITE-8761: ---------------------------------- Summary: 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 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)