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 Bessonov (Jira)" <ji...@apache.org> on 2025/03/20 07:23:00 UTC

[jira] [Created] (IGNITE-24877) Dirty pages count calculation is wrong

Ivan Bessonov created IGNITE-24877:
--------------------------------------

             Summary: Dirty pages count calculation is wrong
                 Key: IGNITE-24877
                 URL: https://issues.apache.org/jira/browse/IGNITE-24877
             Project: Ignite
          Issue Type: Bug
            Reporter: Ivan Bessonov


In checkpointer, we have a separate entities for "dirty pages" and "dirty partitions". We mark partition dirty by calling {{{}"markPartitionAsDirty"{}}}.

Bad thing happen if some pages are updated, but partitions was not explicitly marked as dirty.  In such a case we write more pages to the storage than we initially calculated. The reason is simple - every delta file also has a meta page, that's rarely marked dirty in an explicit manner.

This might happen in tests. The probability of it happening in real case is low, because we constantly update safe time in replicator's state machine. Nonetheless, this is a ticking time bomb.

The reason why it's dangerous is throttling. Throttling estimates the time until checkpoint completion by comparing dirty pages count and written pages count. If the latter is larger, we'll get a negative time, which breaks everything.

Rather than accounting for bugs, I suggest having a proper dirty pages count calculation, by accounting for all dirty partitions even if they were not explicitly marked as dirty.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)