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 5da68d7ff0 Improve Retention Manager Segment Lineage Clean Up (#13232)
5da68d7ff0 is described below
commit 5da68d7ff0f4d9000a03d38ae72eeabf12c5d97c
Author: aishikbh <[email protected]>
AuthorDate: Sun Jun 9 09:53:23 2024 +0530
Improve Retention Manager Segment Lineage Clean Up (#13232)
---
.../helix/core/PinotHelixResourceManager.java | 17 ++++++++++-------
.../helix/core/retention/RetentionManager.java | 2 +-
2 files changed, 11 insertions(+), 8 deletions(-)
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
index 7b2acaab89..c1d25eba16 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
@@ -999,13 +999,16 @@ public class PinotHelixResourceManager {
LOGGER.info("Trying to delete segments: {} from table: {} ",
segmentNames, tableNameWithType);
Preconditions.checkArgument(TableNameBuilder.isTableResource(tableNameWithType),
"Table name: %s is not a valid table name with type suffix",
tableNameWithType);
- HelixHelper.removeSegmentsFromIdealState(_helixZkManager,
tableNameWithType, segmentNames);
- if (retentionPeriod != null) {
- _segmentDeletionManager.deleteSegments(tableNameWithType, segmentNames,
- TimeUtils.convertPeriodToMillis(retentionPeriod));
- } else {
- TableConfig tableConfig =
ZKMetadataProvider.getTableConfig(_propertyStore, tableNameWithType);
- _segmentDeletionManager.deleteSegments(tableNameWithType,
segmentNames, tableConfig);
+
+ synchronized (getTableUpdaterLock(tableNameWithType)) {
+ HelixHelper.removeSegmentsFromIdealState(_helixZkManager,
tableNameWithType, segmentNames);
+ if (retentionPeriod != null) {
+ _segmentDeletionManager.deleteSegments(tableNameWithType,
segmentNames,
+ TimeUtils.convertPeriodToMillis(retentionPeriod));
+ } else {
+ TableConfig tableConfig =
ZKMetadataProvider.getTableConfig(_propertyStore, tableNameWithType);
+ _segmentDeletionManager.deleteSegments(tableNameWithType,
segmentNames, tableConfig);
+ }
}
return PinotResourceManagerResponse.success("Segment " + segmentNames +
" deleted");
} catch (final Exception e) {
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 dac61a3096..53075fc133 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
@@ -55,7 +55,7 @@ import org.slf4j.LoggerFactory;
*/
public class RetentionManager extends ControllerPeriodicTask<Void> {
public static final long OLD_LLC_SEGMENTS_RETENTION_IN_MILLIS =
TimeUnit.DAYS.toMillis(5L);
- private static final RetryPolicy DEFAULT_RETRY_POLICY =
RetryPolicies.exponentialBackoffRetryPolicy(5, 1000L, 2.0f);
+ private static final RetryPolicy DEFAULT_RETRY_POLICY =
RetryPolicies.randomDelayRetryPolicy(20, 100L, 200L);
private static final Logger LOGGER =
LoggerFactory.getLogger(RetentionManager.class);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]