sijie closed pull request #1805: Expose offload deletion lag in broker
configuration
URL: https://github.com/apache/incubator-pulsar/pull/1805
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/conf/broker.conf b/conf/broker.conf
index 39523cd3cb..2a3d45767f 100644
--- a/conf/broker.conf
+++ b/conf/broker.conf
@@ -323,6 +323,10 @@ managedLedgerMinLedgerRolloverTimeMinutes=10
# Maximum time before forcing a ledger rollover for a topic
managedLedgerMaxLedgerRolloverTimeMinutes=240
+# Delay between a ledger being successfully offloaded to long term storage
+# and the ledger being deleted from bookkeeper (default is 4 hours)
+managedLedgerOffloadDeletionLagMs=14400000
+
# Max number of entries to append to a cursor ledger
managedLedgerCursorMaxEntriesPerLedger=50000
diff --git
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/ManagedLedgerConfig.java
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/ManagedLedgerConfig.java
index 566701c1dd..fc5499b867 100644
---
a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/ManagedLedgerConfig.java
+++
b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/ManagedLedgerConfig.java
@@ -395,7 +395,7 @@ public long getRetentionSizeInMB() {
* @param lagTime period to wait before deleting offloaded ledgers from
bookkeeper
* @param unit timeunit for lagTime
*/
- public ManagedLedgerConfig setOffloadLedgerDeletionLag(int lagTime,
TimeUnit unit) {
+ public ManagedLedgerConfig setOffloadLedgerDeletionLag(long lagTime,
TimeUnit unit) {
this.offloadLedgerDeletionLagMs = unit.toMillis(lagTime);
return this;
}
diff --git
a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
index d28ff4c846..0cdaec853a 100644
---
a/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
+++
b/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
@@ -23,6 +23,7 @@
import java.util.Optional;
import java.util.Properties;
import java.util.Set;
+import java.util.concurrent.TimeUnit;
import org.apache.bookkeeper.client.api.DigestType;
import org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider;
@@ -334,6 +335,9 @@
private int managedLedgerMinLedgerRolloverTimeMinutes = 10;
// Maximum time before forcing a ledger rollover for a topic
private int managedLedgerMaxLedgerRolloverTimeMinutes = 240;
+ // Delay between a ledger being successfully offloaded to long term storage
+ // and the ledger being deleted from bookkeeper
+ private long managedLedgerOffloadDeletionLagMs =
TimeUnit.HOURS.toMillis(4);
// Max number of entries to append to a cursor ledger
private int managedLedgerCursorMaxEntriesPerLedger = 50000;
// Max time before triggering a rollover on a cursor ledger
@@ -1224,6 +1228,14 @@ public void
setManagedLedgerMaxLedgerRolloverTimeMinutes(int managedLedgerMaxLed
this.managedLedgerMaxLedgerRolloverTimeMinutes =
managedLedgerMaxLedgerRolloverTimeMinutes;
}
+ public long getManagedLedgerOffloadDeletionLagMs() {
+ return managedLedgerOffloadDeletionLagMs;
+ }
+
+ public void setManagedLedgerOffloadDeletionLag(long amount, TimeUnit unit)
{
+ this.managedLedgerOffloadDeletionLagMs = unit.toMillis(amount);
+ }
+
public int getManagedLedgerCursorMaxEntriesPerLedger() {
return managedLedgerCursorMaxEntriesPerLedger;
}
diff --git
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
index 115c30c88c..3dee3a0416 100644
---
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
+++
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
@@ -723,6 +723,8 @@ public void openLedgerFailed(ManagedLedgerException
exception, Object ctx) {
managedLedgerConfig.setRetentionSizeInMB(retentionPolicies.getRetentionSizeInMB());
managedLedgerConfig.setLedgerOffloader(pulsar.getManagedLedgerOffloader());
+
managedLedgerConfig.setOffloadLedgerDeletionLag(serviceConfig.getManagedLedgerOffloadDeletionLagMs(),
+
TimeUnit.MILLISECONDS);
future.complete(managedLedgerConfig);
}, (exception) -> future.completeExceptionally(exception)));
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services