From 6e09da3c6452b35492c769234c63d54987aaed88 Mon Sep 17 00:00:00 2001 From: horizonzy Date: Fri, 17 Mar 2023 00:26:59 +0800 Subject: [PATCH 1/5] Add log for entry log file delete. --- .../org/apache/bookkeeper/bookie/GarbageCollectorThread.java | 1 + 1 file changed, 1 insertion(+) 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 d17450426e7..4f40c4824f0 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 @@ -745,6 +745,7 @@ protected void extractMetaFromEntryLogs() throws EntryLogMetadataMapException { EntryLogMetadata entryLogMeta = entryLogger.getEntryLogMetadata(entryLogId, throttler); removeIfLedgerNotExists(entryLogMeta); if (entryLogMeta.isEmpty()) { + LOG.info("Entry log file {} is empty, delete it from disk.", entryLogId); entryLogger.removeEntryLog(entryLogId); // remove it from entrylogmetadata-map if it is present in // the map From ec866dab78b37f8c311b1b0d49871be29c70838e Mon Sep 17 00:00:00 2001 From: horizonzy Date: Fri, 17 Mar 2023 01:21:21 +0800 Subject: [PATCH 2/5] add log info. --- .../storage/directentrylogger/DirectEntryLogger.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java index 3b211b54e8c..5ecd93f1fbc 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java @@ -59,11 +59,15 @@ import org.apache.bookkeeper.common.util.nativeio.NativeIO; import org.apache.bookkeeper.slogger.Slogger; import org.apache.bookkeeper.stats.StatsLogger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * DirectEntryLogger. */ public class DirectEntryLogger implements EntryLogger { + private static final Logger LOG = LoggerFactory.getLogger(DirectEntryLogger.class); + private final Slogger slog; private final File ledgerDir; private final EntryLogIds ids; @@ -377,6 +381,9 @@ public boolean removeEntryLog(long entryLogId) { checkArgument(entryLogId < Integer.MAX_VALUE, "Entry log id must be an int [%d]", entryLogId); File file = logFile(ledgerDir, (int) entryLogId); boolean result = file.delete(); + if (!result) { + LOG.warn("Could not delete entry log file {}", file); + } slog.kv("file", file).kv("logId", entryLogId).kv("result", result).info(Events.LOG_DELETED); return result; } From 34ee89895c539623325db5f03dd88d865fc6a268 Mon Sep 17 00:00:00 2001 From: horizonzy Date: Fri, 17 Mar 2023 09:51:09 +0800 Subject: [PATCH 3/5] Address the comment. --- .../org/apache/bookkeeper/bookie/GarbageCollectorThread.java | 2 +- 1 file changed, 1 insertion(+), 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 4f40c4824f0..dec530e91b2 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 @@ -745,7 +745,7 @@ protected void extractMetaFromEntryLogs() throws EntryLogMetadataMapException { EntryLogMetadata entryLogMeta = entryLogger.getEntryLogMetadata(entryLogId, throttler); removeIfLedgerNotExists(entryLogMeta); if (entryLogMeta.isEmpty()) { - LOG.info("Entry log file {} is empty, delete it from disk.", entryLogId); + LOG.info("Entry log file {} is empty, delete it from disk.", Long.toHexString(entryLogId)); entryLogger.removeEntryLog(entryLogId); // remove it from entrylogmetadata-map if it is present in // the map From b659b438b0a3cc2843e522636211d2fe0c58be34 Mon Sep 17 00:00:00 2001 From: horizonzy Date: Fri, 17 Mar 2023 10:57:57 +0800 Subject: [PATCH 4/5] Address the comment. --- .../storage/directentrylogger/DirectEntryLogger.java | 11 ++++------- .../bookie/storage/directentrylogger/Events.java | 5 +++++ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java index 5ecd93f1fbc..86db8acd955 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java @@ -59,15 +59,11 @@ import org.apache.bookkeeper.common.util.nativeio.NativeIO; import org.apache.bookkeeper.slogger.Slogger; import org.apache.bookkeeper.stats.StatsLogger; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * DirectEntryLogger. */ public class DirectEntryLogger implements EntryLogger { - private static final Logger LOG = LoggerFactory.getLogger(DirectEntryLogger.class); - private final Slogger slog; private final File ledgerDir; private final EntryLogIds ids; @@ -381,10 +377,11 @@ public boolean removeEntryLog(long entryLogId) { checkArgument(entryLogId < Integer.MAX_VALUE, "Entry log id must be an int [%d]", entryLogId); File file = logFile(ledgerDir, (int) entryLogId); boolean result = file.delete(); - if (!result) { - LOG.warn("Could not delete entry log file {}", file); + if (result) { + slog.kv("file", file).kv("logId", entryLogId).kv("result", result).info(Events.LOG_DELETED); + } else { + slog.kv("file", file).kv("logId", entryLogId).kv("result", result).info(Events.LOG_DELETED_FAILED); } - slog.kv("file", file).kv("logId", entryLogId).kv("result", result).info(Events.LOG_DELETED); return result; } diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java index 8f473c0f3ff..84acfe5ebad 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java @@ -66,6 +66,11 @@ public enum Events { * log. */ LOG_DELETED, + + /** + * delete failed for {@link #LOG_DELETED}) + */ + LOG_DELETED_FAILED, /** * An error occurred closing an entrylog reader. This is non-fatal but it may leak the file handle From 1b027ef031ddfce72360177d46c7b49414baff55 Mon Sep 17 00:00:00 2001 From: horizonzy Date: Fri, 17 Mar 2023 10:59:43 +0800 Subject: [PATCH 5/5] revert the code. --- .../bookie/storage/directentrylogger/DirectEntryLogger.java | 6 +----- .../bookkeeper/bookie/storage/directentrylogger/Events.java | 5 ----- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java index 86db8acd955..3b211b54e8c 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectEntryLogger.java @@ -377,11 +377,7 @@ public boolean removeEntryLog(long entryLogId) { checkArgument(entryLogId < Integer.MAX_VALUE, "Entry log id must be an int [%d]", entryLogId); File file = logFile(ledgerDir, (int) entryLogId); boolean result = file.delete(); - if (result) { - slog.kv("file", file).kv("logId", entryLogId).kv("result", result).info(Events.LOG_DELETED); - } else { - slog.kv("file", file).kv("logId", entryLogId).kv("result", result).info(Events.LOG_DELETED_FAILED); - } + slog.kv("file", file).kv("logId", entryLogId).kv("result", result).info(Events.LOG_DELETED); return result; } diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java index 84acfe5ebad..8f473c0f3ff 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/Events.java @@ -66,11 +66,6 @@ public enum Events { * log. */ LOG_DELETED, - - /** - * delete failed for {@link #LOG_DELETED}) - */ - LOG_DELETED_FAILED, /** * An error occurred closing an entrylog reader. This is non-fatal but it may leak the file handle