Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-22641

Introduce UpdateMinimalActiveTxTime RAFT command

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Done
    • None
    • 3.0
    • 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

          Activity

            People

              xtern Pavel Pereslegin
              korlov Konstantin Orlov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3h 40m
                  3h 40m