This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 3ca14f9b134 Add support for selecting all segments at once for moving
to different tier (#17812)
3ca14f9b134 is described below
commit 3ca14f9b13401071e4f469674e5ae429fab2909b
Author: RAGHVENDRA KUMAR YADAV <[email protected]>
AuthorDate: Wed Mar 4 13:19:11 2026 -0800
Add support for selecting all segments at once for moving to different tier
(#17812)
---
.../pinot/common/tier/FixedTierSegmentSelector.java | 10 ++++++++--
.../pinot/common/tier/TierSegmentSelectorTest.java | 16 ++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/tier/FixedTierSegmentSelector.java
b/pinot-common/src/main/java/org/apache/pinot/common/tier/FixedTierSegmentSelector.java
index 69c6c18f3d5..052b5009990 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/tier/FixedTierSegmentSelector.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/tier/FixedTierSegmentSelector.java
@@ -27,9 +27,12 @@ import
org.apache.pinot.common.metadata.segment.SegmentZKMetadata;
*/
public class FixedTierSegmentSelector implements TierSegmentSelector {
private final Set<String> _segmentsToSelect;
+ // ["*"] means select all completed segments
+ private final boolean _selectAllSegments;
public FixedTierSegmentSelector(Set<String> segmentsToSelect) {
_segmentsToSelect = segmentsToSelect;
+ _selectAllSegments = segmentsToSelect.contains("*");
}
@Override
@@ -39,8 +42,11 @@ public class FixedTierSegmentSelector implements
TierSegmentSelector {
@Override
public boolean selectSegment(String tableNameWithType, SegmentZKMetadata
segmentZKMetadata) {
- return _segmentsToSelect.contains(segmentZKMetadata.getSegmentName()) &&
segmentZKMetadata.getStatus()
- .isCompleted();
+ if (_selectAllSegments) {
+ return segmentZKMetadata.getStatus().isCompleted();
+ }
+ return _segmentsToSelect.contains(segmentZKMetadata.getSegmentName())
+ && segmentZKMetadata.getStatus().isCompleted();
}
public Set<String> getSegmentsToSelect() {
diff --git
a/pinot-common/src/test/java/org/apache/pinot/common/tier/TierSegmentSelectorTest.java
b/pinot-common/src/test/java/org/apache/pinot/common/tier/TierSegmentSelectorTest.java
index 71743669a70..6b3166c8e6f 100644
---
a/pinot-common/src/test/java/org/apache/pinot/common/tier/TierSegmentSelectorTest.java
+++
b/pinot-common/src/test/java/org/apache/pinot/common/tier/TierSegmentSelectorTest.java
@@ -138,4 +138,20 @@ public class TierSegmentSelectorTest {
realtimeSegmentZKMetadata.setStatus(Status.IN_PROGRESS);
Assert.assertFalse(segmentSelector.selectSegment(tableNameWithType,
realtimeSegmentZKMetadata));
}
+
+ @Test
+ public void testFixedSegmentSelectorWithWildcardSelectsAllCompleted() {
+ String segmentName = "segment_0";
+ String tableNameWithType = "myTable_OFFLINE";
+ SegmentZKMetadata segmentZKMetadata = new SegmentZKMetadata(segmentName);
+ segmentZKMetadata.setStatus(Status.DONE);
+
+ // ["*"] selects all completed segments (no time column required)
+ FixedTierSegmentSelector segmentSelector = new
FixedTierSegmentSelector(Set.of("*"));
+ Assert.assertTrue(segmentSelector.selectSegment(tableNameWithType,
segmentZKMetadata));
+
+ // Consuming segments are not selected
+ segmentZKMetadata.setStatus(Status.IN_PROGRESS);
+ Assert.assertFalse(segmentSelector.selectSegment(tableNameWithType,
segmentZKMetadata));
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]