You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexey Goncharuk (JIRA)" <ji...@apache.org> on 2018/04/09 14:07:00 UTC
[jira] [Updated] (IGNITE-5821) Implement fuzzy checkpoints
[ https://issues.apache.org/jira/browse/IGNITE-5821?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexey Goncharuk updated IGNITE-5821:
-------------------------------------
Fix Version/s: (was: 2.5)
> Implement fuzzy checkpoints
> ---------------------------
>
> Key: IGNITE-5821
> URL: https://issues.apache.org/jira/browse/IGNITE-5821
> Project: Ignite
> Issue Type: New Feature
> Components: persistence
> Affects Versions: 2.1
> Reporter: Alexey Goncharuk
> Priority: Major
>
> Currently, we are able to run only sharp checkpoints (all committed transactions are in the checkpoint, all non-committed are not included, all data structures are fully consistent).
> This has the following disadvantages:
> 1) All transactions are blocked for the markCheckpointBegin call
> 2) We have an additional overhead for checkpoint COW buffer
> 3) If checkpoint buffer is exhausted, we block all transactions and synchronously wait for the checkpoint to be finished.
> There is a technique called fuzzy checkpoints:
> 1) We keep a WAL LSN in every dirty page
> 2) When a page is being flushed to disk, we sync WAL up to the LSN
> 3) We maintain checkpoint low watermark so that WAL does not grow indefinitely
> 4) WAL logging is changed in a way that does not allow data structures updates to be mixed in WAL
> 5) The recovery procedure is changed to apply all physical deltas up to the end of WAL and have consistent memory state, then logical records revert all non-committed transactions
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)