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)

Reply via email to