This is an automated email from the ASF dual-hosted git repository.

chenhang pushed a commit to branch branch-4.14
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git

commit e9b5e2a620d06ab047eff467efbb12f095770fc8
Author: Yan Zhao <[email protected]>
AuthorDate: Sat Apr 22 10:25:27 2023 +0800

    Fix ReclaimedSpaceViaDeletes stats incorrect problem. (#3906)
    
    Descriptions of the changes in this PR:
    
https://github.com/apache/bookkeeper/blob/a6387d191f28a59af72f6613b633d6898980a0b0/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java#L487-L517
    
    At line 501, increases getReclaimedSpaceViaDeletes stats.
    
    
https://github.com/apache/bookkeeper/blob/a6387d191f28a59af72f6613b633d6898980a0b0/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java#L734-L767
    
    But at line 755, it didn't increase getReclaimedSpaceViaDeletes stats.
    
    (cherry picked from commit cad143637547a556a25bab4950c78e630e9b38f8)
---
 .../java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java  | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
index 31ed50d598..752f46553c 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
@@ -607,7 +607,12 @@ public class GarbageCollectorThread extends SafeRunnable {
                 EntryLogMetadata entryLogMeta = 
entryLogger.getEntryLogMetadata(entryLogId);
                 removeIfLedgerNotExists(entryLogMeta);
                 if (entryLogMeta.isEmpty()) {
-                    entryLogger.removeEntryLog(entryLogId);
+                    // This means the entry log is not associated with any 
active
+                    // ledgers anymore.
+                    // We can remove this entry log file now.
+                    LOG.info("Deleting entryLogId {} as it has no active 
ledgers!", entryLogId);
+                    removeEntryLog(entryLogId);
+                    
gcStats.getReclaimedSpaceViaDeletes().add(entryLogMeta.getTotalSize());
                 } else {
                     entryLogMetaMap.put(entryLogId, entryLogMeta);
                 }

Reply via email to