[
https://issues.apache.org/jira/browse/IGNITE-22641?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pavel Pereslegin reassigned IGNITE-22641:
-----------------------------------------
Assignee: Pavel Pereslegin
> Introduce UpdateMinimalActiveTxTime RAFT command
> ------------------------------------------------
>
> Key: IGNITE-22641
> URL: https://issues.apache.org/jira/browse/IGNITE-22641
> Project: Ignite
> Issue Type: Improvement
> Reporter: Konstantin Orlov
> Assignee: Pavel Pereslegin
> Priority: Major
> Labels: ignite-3
>
> When compaction of catalog will be implemented, we need to make sure that
> RAFT log contains no non-flushed (implying that these commands may be applied
> to state machine, but this state has not been persisted on disk yet) command
> referring to the compacted version. The proposed solution is as follow:
> * First, we collect minimal *begin_time* of all pending RW transactions from
> an entire cluster. Let's call it *minimal_active_tx_time*.
> * Then we add command to all raft groups available, payload of this command
> should contain *minimal_active_tx_time*; when applied, time provided in
> command should be saved to some transient state of the raft group.
> * During checkpoint, we use time saved on the previous step as minimal time
> required to process the log.
> * During compaction, catalog must take into account minimal from all such
> minimal times from every node from every raft group.
> Under this ticket let's introduce new RAFT command and corresponding handler
> in {{PartitionListener}} class.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)