Skip to content

Commit

Permalink
untrack the segment out of TTL (apache#12449)
Browse files Browse the repository at this point in the history
  • Loading branch information
klsince authored Feb 21, 2024
1 parent 8932df3 commit 16e97c5
Showing 1 changed file with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -513,13 +513,16 @@ public void removeSegment(IndexSegment segment) {
_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()) {
Expand All @@ -530,7 +533,9 @@ public void removeSegment(IndexSegment segment) {
_snapshotLock.readLock().lock();
}
try {
doRemoveSegment(segment);
if (!skipRemoveMetadata) {
doRemoveSegment(segment);
}
_trackedSegments.remove(segment);
} finally {
if (_enableSnapshot) {
Expand Down Expand Up @@ -708,8 +713,7 @@ protected void doTakeSnapshot() {
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);
}
Expand Down

0 comments on commit 16e97c5

Please sign in to comment.