You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Rakov (JIRA)" <ji...@apache.org> on 2018/03/27 11:52:00 UTC

[jira] [Updated] (IGNITE-8057) Execute WAL fsync preventively before checkpoint beginCheckpoint started

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

Ivan Rakov updated IGNITE-8057:
-------------------------------
    Summary: Execute WAL fsync preventively before checkpoint beginCheckpoint started  (was: Execute WAL fsync preventively before checkpoint begin)

> Execute WAL fsync preventively before checkpoint beginCheckpoint started
> ------------------------------------------------------------------------
>
>                 Key: IGNITE-8057
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8057
>             Project: Ignite
>          Issue Type: Improvement
>    Affects Versions: 2.5
>            Reporter: Ivan Rakov
>            Priority: Major
>
> After fix of IGNITE-7754, we execute explicit WAL fsync on checkpoint begin:
> {noformat}
> if (hasPages) {
>     assert cpPtr != null;
>     tracker.onWalCpRecordFsyncStart();
>     // Sync log outside the checkpoint write lock.
>     cctx.wal().flush(cpPtr, true);
>     tracker.onWalCpRecordFsyncEnd();
> {noformat}
> It's executed outside of checkpoint write lock. However, it still can decrease overall throughput by suspending writing of dirty pages by checkpoint threads.
> We can decrease time of this fsync by executing it preemptevely, before acquiring checkpoint write lock. 
> We should prioritize this ticket if value of walCpRecordFsyncDuration metric in "Checkpoint started" message will be too big.
> Note: it's possible to give a fsync hint to WAL manager in single-writer mode.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)