You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by xb...@apache.org on 2024/02/21 03:06:07 UTC
(pinot) branch master updated: untrack the segment out of TTL (#12449)
This is an automated email from the ASF dual-hosted git repository.
xbli 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 16e97c5668 untrack the segment out of TTL (#12449)
16e97c5668 is described below
commit 16e97c5668379d304fa052ca8183d9f4f2a402e3
Author: Xiaobing <61...@users.noreply.github.com>
AuthorDate: Tue Feb 20 19:06:01 2024 -0800
untrack the segment out of TTL (#12449)
---
.../local/upsert/BasePartitionUpsertMetadataManager.java | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java
index cdf2a61fe9..47dd64f49d 100644
--- a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java
+++ b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/upsert/BasePartitionUpsertMetadataManager.java
@@ -513,13 +513,16 @@ public abstract class BasePartitionUpsertMetadataManager implements PartitionUps
_logger.info("Skip removing untracked (replaced or empty) segment: {}", segmentName);
return;
}
- // Skip removing segment that has max comparison value smaller than (largestSeenComparisonValue - TTL)
+ // Skip removing the upsert metadata of segment that has max comparison value smaller than
+ // (largestSeenComparisonValue - TTL), i.e. out of metadata TTL. The expired metadata is removed while creating
+ // new consuming segment in batches.
+ boolean skipRemoveMetadata = false;
if (_metadataTTL > 0 && _largestSeenComparisonValue.get() > 0) {
Number maxComparisonValue =
(Number) segment.getSegmentMetadata().getColumnMetadataMap().get(_comparisonColumns.get(0)).getMaxValue();
if (maxComparisonValue.doubleValue() < _largestSeenComparisonValue.get() - _metadataTTL) {
_logger.info("Skip removing segment: {} because it's out of TTL", segmentName);
- return;
+ skipRemoveMetadata = true;
}
}
if (!startOperation()) {
@@ -530,7 +533,9 @@ public abstract class BasePartitionUpsertMetadataManager implements PartitionUps
_snapshotLock.readLock().lock();
}
try {
- doRemoveSegment(segment);
+ if (!skipRemoveMetadata) {
+ doRemoveSegment(segment);
+ }
_trackedSegments.remove(segment);
} finally {
if (_enableSnapshot) {
@@ -708,8 +713,7 @@ public abstract class BasePartitionUpsertMetadataManager implements PartitionUps
ServerGauge.UPSERT_VALID_DOC_ID_SNAPSHOT_COUNT, numImmutableSegments);
_serverMetrics.setValueOfPartitionGauge(_tableNameWithType, _partitionId,
ServerGauge.UPSERT_PRIMARY_KEYS_IN_SNAPSHOT_COUNT, numPrimaryKeysInSnapshot);
- _logger.info(
- "Finished taking snapshot for {} immutable segments with {} primary keys (out of {} total segments, "
+ _logger.info("Finished taking snapshot for {} immutable segments with {} primary keys (out of {} total segments, "
+ "{} are consuming segments) in {} ms", numImmutableSegments, numPrimaryKeysInSnapshot, numTrackedSegments,
numConsumingSegments, System.currentTimeMillis() - startTimeMs);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org