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

Ivan Rakov updated IGNITE-8057:
-------------------------------
    Description: 
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 preventively, 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.

  was:
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.


> 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 preventively, 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)

Reply via email to