Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Done
-
None
-
None
Description
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.
Attachments
Issue Links
- blocks
-
IGNITE-22951 Catalog compaction. Improve minimum tx begin time propagation to replicas
- Resolved
- links to