Skip to content

Commit 8e29d01

Browse files
committed
rename VersionStalenessFilter to trigger
1 parent ac257e2 commit 8e29d01

4 files changed

Lines changed: 19 additions & 10 deletions

File tree

internal/venice-common/src/main/java/com/linkedin/venice/ConfigKeys.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -415,14 +415,23 @@ private ConfigKeys() {
415415
public static final String REPUSH_ORCHESTRATOR_CLASS_NAME = "controller.repush.orchestrator.class.name";
416416

417417
/**
418-
* Class names of the implementation of interface {@link com.linkedin.venice.controller.logcompaction.RepushCandidateFilter} in {@link com.linkedin.venice.controller.logcompaction.CompactionManager}
419-
* These are prerequisite filters evaluated with AND logic (all must pass).
418+
* Class names of the implementation of interface
419+
* {@link com.linkedin.venice.controller.logcompaction.RepushCandidateFilter} used by
420+
* {@link com.linkedin.venice.controller.logcompaction.CompactionManager}.
421+
*
422+
* <p>Filters are chained with AND logic: <b>all</b> filters must pass for a store to remain a candidate.
423+
* They enforce exclusion criteria such as cluster config, store eligibility, and migration status.</p>
420424
*/
421425
public static final String REPUSH_CANDIDATE_FILTER_CLASS_NAMES = "controller.repush.candidate.filter.class.names";
422426

423427
/**
424-
* Class names of the implementation of interface {@link com.linkedin.venice.controller.logcompaction.RepushCandidateTrigger} in {@link com.linkedin.venice.controller.logcompaction.CompactionManager}
425-
* These are trigger conditions evaluated with OR logic (any must pass).
428+
* Class names of the implementation of interface
429+
* {@link com.linkedin.venice.controller.logcompaction.RepushCandidateTrigger} used by
430+
* {@link com.linkedin.venice.controller.logcompaction.CompactionManager}.
431+
*
432+
* <p>Triggers are chained with OR logic: at least <b>one</b> trigger must pass for a store to be scheduled.
433+
* They represent conditions that independently justify compaction (e.g., version staleness,
434+
* high duplicate key ratio). A store is scheduled when all filters pass AND any trigger passes.</p>
426435
*/
427436
public static final String REPUSH_CANDIDATE_TRIGGER_CLASS_NAMES = "controller.repush.candidate.trigger.class.names";
428437

services/venice-controller/src/main/java/com/linkedin/venice/controller/VeniceHelixAdmin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
import com.linkedin.venice.controller.logcompaction.RepushCandidateFilter;
7575
import com.linkedin.venice.controller.logcompaction.RepushCandidateTrigger;
7676
import com.linkedin.venice.controller.logcompaction.StoreRepushCandidateFilter;
77-
import com.linkedin.venice.controller.logcompaction.VersionStalenessFilter;
77+
import com.linkedin.venice.controller.logcompaction.VersionStalenessTrigger;
7878
import com.linkedin.venice.controller.multitaskscheduler.MultiTaskSchedulerService;
7979
import com.linkedin.venice.controller.multitaskscheduler.StoreMigrationManager;
8080
import com.linkedin.venice.controller.repush.RepushJobRequest;
@@ -928,7 +928,7 @@ private Set<RepushCandidateTrigger> getRepushCandidateTriggersFromControllerConf
928928
Set<RepushCandidateTrigger> candidateTriggers = new HashSet<>();
929929

930930
// Default trigger: version staleness
931-
candidateTriggers.add(new VersionStalenessFilter(multiClusterConfigs));
931+
candidateTriggers.add(new VersionStalenessTrigger(multiClusterConfigs));
932932

933933
// Additional triggers from config
934934
for (String candidateTriggerClassName: multiClusterConfigs.getRepushCandidateTriggerClassNames()) {

services/venice-controller/src/main/java/com/linkedin/venice/controller/logcompaction/VersionStalenessFilter.java renamed to services/venice-controller/src/main/java/com/linkedin/venice/controller/logcompaction/VersionStalenessTrigger.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
* As a {@link RepushCandidateTrigger}, this participates in OR logic with other triggers — if any
1717
* trigger passes, the store is scheduled for compaction (provided all prerequisite filters also pass).
1818
*/
19-
public class VersionStalenessFilter implements RepushCandidateTrigger {
20-
private static final Logger LOGGER = LogManager.getLogger(VersionStalenessFilter.class);
19+
public class VersionStalenessTrigger implements RepushCandidateTrigger {
20+
private static final Logger LOGGER = LogManager.getLogger(VersionStalenessTrigger.class);
2121

2222
private final Map<String, Long> versionStalenessThresholdsByCluster = new HashMap<>();
2323

24-
public VersionStalenessFilter(VeniceControllerMultiClusterConfig multiClusterConfig) {
24+
public VersionStalenessTrigger(VeniceControllerMultiClusterConfig multiClusterConfig) {
2525
for (String clusterName: multiClusterConfig.getClusters()) {
2626
VeniceControllerClusterConfig config = multiClusterConfig.getControllerConfig(clusterName);
2727
this.versionStalenessThresholdsByCluster.put(clusterName, config.getLogCompactionVersionStalenessThresholdMS());

services/venice-controller/src/test/java/com/linkedin/venice/controller/logcompaction/CompactionManagerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public void setUp() {
7676
Set<RepushCandidateFilter> candidateFilters =
7777
Collections.singleton(new StoreRepushCandidateFilter(multiClusterConfig));
7878
Set<RepushCandidateTrigger> candidateTriggers =
79-
Collections.singleton(new VersionStalenessFilter(multiClusterConfig));
79+
Collections.singleton(new VersionStalenessTrigger(multiClusterConfig));
8080

8181
testCompactionManager =
8282
new CompactionManager(mockRepushOrchestrator, candidateFilters, candidateTriggers, statsMap);

0 commit comments

Comments
 (0)