Skip to content

Commit 03192b5

Browse files
author
druidliu
committed
Add bookkeeperDeleted in topic internal stats.
1 parent 1687244 commit 03192b5

4 files changed

Lines changed: 28 additions & 0 deletions

File tree

managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4312,6 +4312,7 @@ public CompletableFuture<ManagedLedgerInternalStats> getManagedLedgerInternalSta
43124312
info.entries = li.getEntries();
43134313
info.size = li.getSize();
43144314
info.offloaded = li.hasOffloadContext() && li.getOffloadContext().getComplete();
4315+
info.bookkeeperDeleted = li.hasOffloadContext() && li.getOffloadContext().getBookkeeperDeleted();
43154316
if (includeLedgerMetadata) {
43164317
// lookup metadata from the hashmap which contains completed async operations
43174318
info.metadata = ledgerMetadataFutures.get(li.getLedgerId()).getNow(null);

pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2383,6 +2383,8 @@ public CompletableFuture<PersistentTopicInternalStats> getInternalStats(boolean
23832383
info.entries = li.getEntries();
23842384
info.size = li.getSize();
23852385
info.offloaded = li.hasOffloadContext() && li.getOffloadContext().getComplete();
2386+
info.bookkeeperDeleted =
2387+
li.hasOffloadContext() && li.getOffloadContext().getBookkeeperDeleted();
23862388
stats.ledgers.add(info);
23872389
if (includeLedgerMetadata) {
23882390
futures.add(ml.getLedgerMetadata(li.getLedgerId()).handle((lMetadata, ex) -> {

pulsar-client-admin-api/src/main/java/org/apache/pulsar/common/policies/data/ManagedLedgerInternalStats.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ public static class LedgerInfo {
7777
public boolean offloaded;
7878
public String metadata;
7979
public boolean underReplicated;
80+
public boolean bookkeeperDeleted;
8081
}
8182

8283
/**

tests/integration/src/test/java/org/apache/pulsar/tests/integration/offload/TestBaseOffload.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.apache.pulsar.client.api.Message;
3333
import org.apache.pulsar.client.api.Producer;
3434
import org.apache.pulsar.client.api.PulsarClient;
35+
import org.apache.pulsar.common.policies.data.ManagedLedgerInternalStats;
3536
import org.apache.pulsar.common.policies.data.PersistentTopicInternalStats;
3637
import org.apache.pulsar.tests.integration.suites.PulsarTieredStorageTestSuite;
3738
import org.awaitility.Awaitility;
@@ -304,12 +305,21 @@ protected void testPublishOffloadAndConsumeDeletionLag(String serviceUrl, String
304305
"namespaces", "get-offload-deletion-lag", namespace).getStdout();
305306
Assert.assertTrue(output.contains("Unset for namespace"));
306307

308+
PulsarAdmin admin = PulsarAdmin.builder().serviceHttpUrl(adminUrl).build();
309+
307310
long offloadedLedger = writeAndWaitForOffload(serviceUrl, adminUrl, topic);
308311
// give it up to 5 seconds to delete, it shouldn't
309312
// so we wait this every time
310313
Thread.sleep(5000);
311314
Assert.assertTrue(ledgerExistsInBookKeeper(offloadedLedger));
312315

316+
long finalOffloadedLedger1 = offloadedLedger;
317+
ManagedLedgerInternalStats.LedgerInfo offloadedLedgerInfo =
318+
admin.topics().getInternalStats(topic).ledgers.stream()
319+
.filter((x) -> x.ledgerId == finalOffloadedLedger1).findFirst().get();
320+
Assert.assertTrue(offloadedLedgerInfo.offloaded);
321+
Assert.assertFalse(offloadedLedgerInfo.bookkeeperDeleted);
322+
313323
pulsarCluster.runAdminCommandOnAnyBroker("namespaces", "set-offload-deletion-lag", namespace,
314324
"--lag", "0m");
315325
output = pulsarCluster.runAdminCommandOnAnyBroker(
@@ -324,6 +334,12 @@ protected void testPublishOffloadAndConsumeDeletionLag(String serviceUrl, String
324334
}
325335
Assert.assertFalse(ledgerExistsInBookKeeper(offloadedLedger));
326336

337+
long finalOffloadedLedger2 = offloadedLedger;
338+
offloadedLedgerInfo = admin.topics().getInternalStats(topic).ledgers.stream()
339+
.filter((x) -> x.ledgerId == finalOffloadedLedger2).findFirst().get();
340+
Assert.assertTrue(offloadedLedgerInfo.offloaded);
341+
Assert.assertTrue(offloadedLedgerInfo.bookkeeperDeleted);
342+
327343
pulsarCluster.runAdminCommandOnAnyBroker("namespaces", "clear-offload-deletion-lag", namespace);
328344

329345
Thread.sleep(5); // wait 5 seconds to allow broker to see update
@@ -338,6 +354,14 @@ protected void testPublishOffloadAndConsumeDeletionLag(String serviceUrl, String
338354
// so we wait this every time
339355
Thread.sleep(5000);
340356
Assert.assertTrue(ledgerExistsInBookKeeper(offloadedLedger));
357+
358+
long finalOffloadedLedger3 = offloadedLedger;
359+
offloadedLedgerInfo = admin.topics().getInternalStats(topic).ledgers.stream()
360+
.filter((x) -> x.ledgerId == finalOffloadedLedger3).findFirst().get();
361+
Assert.assertTrue(offloadedLedgerInfo.offloaded);
362+
Assert.assertFalse(offloadedLedgerInfo.bookkeeperDeleted);
363+
364+
admin.close();
341365
}
342366

343367
protected void testDeleteOffloadedTopic(String serviceUrl, String adminUrl,

0 commit comments

Comments
 (0)