This is an automated email from the ASF dual-hosted git repository.
xiangfu0 pushed a commit to branch xiangfu0/codex2/table-size-retention
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to
refs/heads/xiangfu0/codex2/table-size-retention by this push:
new d521496c3f7 Use simple long accumulation for table retention size
d521496c3f7 is described below
commit d521496c3f7293c038979e51ee782d10414b25e0
Author: Xiang Fu <[email protected]>
AuthorDate: Thu Oct 8 13:18:43 2026 -0700
Use simple long accumulation for table retention size
Remove the checked-addition guard and synthetic overflow case. Totals
beyond Long.MAX_VALUE are outside realistic table sizes.
---
.../helix/core/retention/RetentionManager.java | 7 +------
.../helix/core/retention/RetentionManagerTest.java | 18 ------------------
2 files changed, 1 insertion(+), 24 deletions(-)
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/retention/RetentionManager.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/retention/RetentionManager.java
index 8a207a4b72d..4ff5f4b6954 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/retention/RetentionManager.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/retention/RetentionManager.java
@@ -210,12 +210,7 @@ public class RetentionManager extends
ControllerPeriodicTask<Void> {
LOGGER.warn("Unknown size for segment: {} in table: {}, skip size
retention", segmentName, tableNameWithType);
return false;
}
- try {
- retainedBytes = Math.addExact(retainedBytes, size);
- } catch (ArithmeticException e) {
- LOGGER.warn("Segment size overflow for table: {}, skip size
retention", tableNameWithType);
- return false;
- }
+ retainedBytes += size;
completedSegments.add(metadata);
completedSegmentSizes.put(segmentName, size);
}
diff --git
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/RetentionManagerTest.java
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/RetentionManagerTest.java
index ac6dfced991..89bb50ce1ad 100644
---
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/RetentionManagerTest.java
+++
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/retention/RetentionManagerTest.java
@@ -1739,24 +1739,6 @@ public class RetentionManagerTest {
assertEquals(segments.stream().map(SegmentZKMetadata::getSegmentName).toList(),
List.of("newest"));
}
- @Test
- public void testSizeRetentionSkipsTableWhenSegmentSizeTotalOverflows() {
- for (TableType tableType : List.of(TableType.OFFLINE, TableType.REALTIME))
{
- TableConfig tableConfig = createSizeRetentionTableConfig(tableType,
"100B");
- long now = System.currentTimeMillis();
- List<SegmentZKMetadata> segments =
List.of(createSizeRetentionSegment("oldest", Long.MAX_VALUE, now - 1),
- createSizeRetentionSegment("newest", 1, now));
- PinotHelixResourceManager resourceManager =
mock(PinotHelixResourceManager.class);
- ControllerMetrics metrics = mock(ControllerMetrics.class);
- RetentionManager retentionManager =
createSizeRetentionManager(tableConfig, segments, resourceManager, metrics);
-
- retentionManager.manageSizeBasedRetention(tableConfig);
-
- verify(resourceManager, never()).deleteSegments(anyString(), anyList());
- verifySizeRetentionGauge(metrics, tableConfig.getTableName(), 1);
- }
- }
-
@Test
public void testSizeRetentionSkipsTableWhenActiveMetadataIsMissing() {
TableConfig tableConfig =
createSizeRetentionTableConfig(TableType.OFFLINE, "50B");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]