Konstantin Orlov created IGNITE-22641:
-----------------------------------------
Summary: Introduce UpdateMinimalActiveTxTime RAFT command
Key: IGNITE-22641
URL: https://issues.apache.org/jira/browse/IGNITE-22641
Project: Ignite
Issue Type: Improvement
Reporter: Konstantin Orlov
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)