xiangfu0 commented on code in PR #19770:
URL: https://github.com/apache/pinot/pull/19770#discussion_r4225628995
##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/retention/RetentionManager.java:
##########
@@ -122,6 +126,123 @@ protected void processTable(String tableNameWithType) {
// Delete segments based on segment lineage and clean up segment lineage
metadata.
manageSegmentLineageCleanupForTable(tableConfig);
+
+ // Re-read active segments after time and lineage cleanup so
already-deleted bytes do not cause extra eviction.
+ manageSizeBasedRetention(tableConfig);
+ }
+
+ /// Enforces the optional compressed-segment size limit independently of
time retention. The limit counts one
Review Comment:
Updated in 7ee85f72324e0a80b45094b0f8b74f5f9d10980b to keep size retention
independent for each typed table, as requested. A configured REALTIME size
limit expires its own oldest eligible completed data without looking up the
OFFLINE time boundary, even when hybrid time retention is enabled; this
intentionally allows size expiry newer than the routing cutoff. Hybrid time
retention keeps its existing boundary behavior. Lineage barriers and
last-completed LLC recovery protection still apply. The regression tests verify
independent size eviction and no OFFLINE boundary lookup. All 78 targeted tests
passed. Scoped formatting, Checkstyle, license checks, and added-line
compiler-warning checks passed. The two new eviction regressions failed against
the prior hybrid guard before passing with this change.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]