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)