-
Notifications
You must be signed in to change notification settings - Fork 840
Description
Is your feature request related to a problem? Please describe.
In addition to the changes made in #7082 and #7130, there should be extra validation steps in the compaction process to abort a duplicate partition compaction that starts immediately after a completed partition group has been cleaned.
Describe the solution you'd like
This validation could be done by storing the partition group creation time in the the visit marker. If in the heartbeat loop the visit marker manager detects that the partition group creation time is different than the time on the visit marker, then there must be a new version of the partition group info file and the current compaction is invalid. As such, the visit marker should be deleted and the compaction context should be cancelled to let the compaction fail.
Describe alternatives you've considered
This could also be done by adding a new goroutine that repeatedly checks for the change in or existence of partition group creation time but since the visit marker already heartbeats until the end of the compaction job, we can reuse that and add the partition group creation time to the marker itself.
Additional context