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

yong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 8085f66ece Make slogger use current class (#3994)
8085f66ece is described below

commit 8085f66ecefbc6159ba3e8cc2fc04ac5dcd56d72
Author: Hang Chen <[email protected]>
AuthorDate: Tue Jun 20 09:10:41 2023 +0800

    Make slogger use current class (#3994)
    
    ### Motivation
    We use Slogger to support DirectIO Entrylogger and create the slogger 
instance in DbLedgerStorage and passed down to DirectIOEntrylogger. However, in 
the subclasses, we generate a new Slogger instance without setting the context, 
which leads to the Slogger instance belonging to DbLedgerStorage or Slf4j. The 
broker logs are as follows.
    ```
    2023-06-19T15:21:56,518+0800 [main] INFO  
org.apache.bookkeeper.bookie.storage.ldb.DbLedgerStorage - 
ENTRYLOG_IDS_CANDIDATES_SELECTED
    2023-06-19T15:21:56,561+0800 [main] INFO  
org.apache.bookkeeper.slogger.slf4j.Slf4jSlogger 
{directory=data/bookkeeper/ledgers/current, event=ENTRYLOGGER_CREATED, 
maxCachedReaders=32, maxCachedReadersPerThread=4, maxFileSize=1073741824, 
maxSaneEntrySize=5252620, perThreadBufferSize=33554432, readBufferSize=8388608, 
singleWriteBufferSize=33554432, totalReadBufferSize=268435456, 
totalWriteBufferSize=268435456} - ENTRYLOGGER_CREATED
    ```
    
    Without the specific slogger instance name, it will be hard to configure a 
specific class to enable KV logger configuration.
    
    ### Modification
    Set the specific class context for each subclass slogger instance.
    After this change, the broker logs are as follows.
    ```
    2023-06-19T16:01:56,685+0800 [main] INFO  
org.apache.bookkeeper.bookie.storage.directentrylogger.EntryLogIdsImpl 
{dirs=[data/bookkeeper/ledgers/current], durationMs=0, 
event=ENTRYLOG_IDS_CANDIDATES_SELECTED, maxId=21474836
    47, nextId=0} - ENTRYLOG_IDS_CANDIDATES_SELECTED
    2023-06-19T16:01:56,721+0800 [main] INFO  
org.apache.bookkeeper.bookie.storage.directentrylogger.DirectEntryLogger 
{directory=data/bookkeeper/ledgers/current, event=ENTRYLOGGER_CREATED, 
maxCachedReaders=32, maxCachedReader
    sPerThread=4, maxFileSize=1073741824, maxSaneEntrySize=5252620, 
perThreadBufferSize=33554432, readBufferSize=8388608, 
singleWriteBufferSize=33554432, totalReadBufferSize=268435456, 
totalWriteBufferSize=268435456} - ENTRYLO
    GGER_CREATED
    ```
---
 .../bookie/storage/directentrylogger/DirectCompactionEntryLog.java  | 2 +-
 .../bookie/storage/directentrylogger/DirectEntryLogger.java         | 3 +--
 .../bookkeeper/bookie/storage/directentrylogger/DirectWriter.java   | 6 ++++--
 .../bookie/storage/{ => directentrylogger}/EntryLogIdsImpl.java     | 6 +++---
 .../org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java   | 2 +-
 .../org/apache/bookkeeper/bookie/storage/EntryLogTestUtils.java     | 1 +
 .../bookie/storage/{ => directentrylogger}/TestEntryLogIds.java     | 6 +++---
 .../directentrylogger/TestTransactionalEntryLogCompactor.java       | 1 -
 8 files changed, 14 insertions(+), 13 deletions(-)

diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectCompactionEntryLog.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectCompactionEntryLog.java
index fadde648de..58ac98fec5 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectCompactionEntryLog.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectCompactionEntryLog.java
@@ -87,7 +87,7 @@ public abstract class DirectCompactionEntryLog implements 
CompactionEntryLog {
         this.srcLogId = srcLogId;
         this.dstLogId = dstLogId;
 
-        this.slog = slog.kv("dstLogId", dstLogId).kv("srcLogId", 
srcLogId).ctx();
+        this.slog = slog.kv("dstLogId", dstLogId).kv("srcLogId", 
srcLogId).ctx(DirectCompactionEntryLog.class);
     }
 
     @Override
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 f5b74d1265..0d2d509598 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
@@ -53,7 +53,6 @@ import org.apache.bookkeeper.bookie.Bookie.NoEntryException;
 import org.apache.bookkeeper.bookie.EntryLogMetadata;
 import org.apache.bookkeeper.bookie.storage.CompactionEntryLog;
 import org.apache.bookkeeper.bookie.storage.EntryLogIds;
-import org.apache.bookkeeper.bookie.storage.EntryLogIdsImpl;
 import org.apache.bookkeeper.bookie.storage.EntryLogScanner;
 import org.apache.bookkeeper.bookie.storage.EntryLogger;
 import org.apache.bookkeeper.common.util.nativeio.NativeIO;
@@ -112,7 +111,7 @@ public class DirectEntryLogger implements EntryLogger {
         this.maxSaneEntrySize = maxSaneEntrySize;
         this.readBufferSize = Buffer.nextAlignment(readBufferSize);
         this.ids = ids;
-        this.slog = slogParent.kv("directory", ledgerDir).ctx();
+        this.slog = slogParent.kv("directory", 
ledgerDir).ctx(DirectEntryLogger.class);
 
         this.stats = new DirectEntryLoggerStats(stats);
 
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
index be411982d3..20a3d855b4 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/DirectWriter.java
@@ -45,6 +45,7 @@ class DirectWriter implements LogWriter {
     final ExecutorService writeExecutor;
     final Object bufferLock = new Object();
     final List<Future<?>> outstandingWrites = new ArrayList<Future<?>>();
+    final Slogger slog;
     Buffer nativeBuffer;
     long offset;
     private static volatile boolean useFallocate = true;
@@ -60,6 +61,7 @@ class DirectWriter implements LogWriter {
         this.filename = filename;
         this.writeExecutor = writeExecutor;
         this.nativeIO = nativeIO;
+        this.slog = slog.ctx(DirectWriter.class);
 
         offset = 0;
 
@@ -76,7 +78,7 @@ class DirectWriter implements LogWriter {
         if (useFallocate) {
             if (!SystemUtils.IS_OS_LINUX) {
                 disableUseFallocate();
-                slog.warn(Events.FALLOCATE_NOT_AVAILABLE);
+                this.slog.warn(Events.FALLOCATE_NOT_AVAILABLE);
             } else {
                 try {
                     int ret = nativeIO.fallocate(fd, 
NativeIO.FALLOC_FL_ZERO_RANGE, 0, maxFileSize);
@@ -85,7 +87,7 @@ class DirectWriter implements LogWriter {
                     // fallocate(2) is not supported on all filesystems.  
Since this is an optimization, disable
                     // subsequent usage instead of failing the operation.
                     disableUseFallocate();
-                    slog.kv("message", ex.getMessage())
+                    this.slog.kv("message", ex.getMessage())
                         .kv("file", filename)
                         .kv("errno", ex.getErrno())
                         .warn(Events.FALLOCATE_NOT_AVAILABLE);
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/EntryLogIdsImpl.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/EntryLogIdsImpl.java
similarity index 96%
rename from 
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/EntryLogIdsImpl.java
rename to 
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/EntryLogIdsImpl.java
index 704d07ed6c..6b43fca47a 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/EntryLogIdsImpl.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/directentrylogger/EntryLogIdsImpl.java
@@ -18,7 +18,7 @@
  * under the License.
  *
  */
-package org.apache.bookkeeper.bookie.storage;
+package org.apache.bookkeeper.bookie.storage.directentrylogger;
 
 import java.io.File;
 import java.io.IOException;
@@ -29,7 +29,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.apache.bookkeeper.bookie.LedgerDirsManager;
-import org.apache.bookkeeper.bookie.storage.directentrylogger.Events;
+import org.apache.bookkeeper.bookie.storage.EntryLogIds;
 import org.apache.bookkeeper.slogger.Slogger;
 import org.apache.commons.lang3.tuple.Pair;
 /**
@@ -48,7 +48,7 @@ public class EntryLogIdsImpl implements EntryLogIds {
     public EntryLogIdsImpl(LedgerDirsManager ledgerDirsManager,
                            Slogger slog) throws IOException {
         this.ledgerDirsManager = ledgerDirsManager;
-        this.slog = slog;
+        this.slog = slog.ctx(EntryLogIdsImpl.class);
         findLargestGap();
     }
 
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java
index a941aeb3be..c80ef7c42f 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java
@@ -54,9 +54,9 @@ import org.apache.bookkeeper.bookie.LedgerCache;
 import org.apache.bookkeeper.bookie.LedgerDirsManager;
 import org.apache.bookkeeper.bookie.LedgerStorage;
 import org.apache.bookkeeper.bookie.StateManager;
-import org.apache.bookkeeper.bookie.storage.EntryLogIdsImpl;
 import org.apache.bookkeeper.bookie.storage.EntryLogger;
 import 
org.apache.bookkeeper.bookie.storage.directentrylogger.DirectEntryLogger;
+import org.apache.bookkeeper.bookie.storage.directentrylogger.EntryLogIdsImpl;
 import 
org.apache.bookkeeper.bookie.storage.ldb.KeyValueStorageFactory.DbConfigType;
 import 
org.apache.bookkeeper.bookie.storage.ldb.SingleDirectoryDbLedgerStorage.LedgerLoggerProcessor;
 import org.apache.bookkeeper.common.util.MathUtils;
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/EntryLogTestUtils.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/EntryLogTestUtils.java
index 8fa4bb9f84..f88e3883af 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/EntryLogTestUtils.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/EntryLogTestUtils.java
@@ -32,6 +32,7 @@ import java.util.Arrays;
 import org.apache.bookkeeper.bookie.DefaultEntryLogger;
 import org.apache.bookkeeper.bookie.LedgerDirsManager;
 import 
org.apache.bookkeeper.bookie.storage.directentrylogger.DirectEntryLogger;
+import org.apache.bookkeeper.bookie.storage.directentrylogger.EntryLogIdsImpl;
 import org.apache.bookkeeper.common.util.nativeio.NativeIOImpl;
 import org.apache.bookkeeper.conf.ServerConfiguration;
 import org.apache.bookkeeper.slogger.Slogger;
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/TestEntryLogIds.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestEntryLogIds.java
similarity index 98%
rename from 
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/TestEntryLogIds.java
rename to 
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestEntryLogIds.java
index 8b0d7f68bd..787a0514be 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/TestEntryLogIds.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestEntryLogIds.java
@@ -18,7 +18,7 @@
  * under the License.
  *
  */
-package org.apache.bookkeeper.bookie.storage;
+package org.apache.bookkeeper.bookie.storage.directentrylogger;
 
 import static 
org.apache.bookkeeper.bookie.storage.EntryLogTestUtils.logIdFromLocation;
 import static org.apache.bookkeeper.bookie.storage.EntryLogTestUtils.makeEntry;
@@ -33,8 +33,8 @@ import com.google.common.collect.Lists;
 import io.netty.buffer.ByteBuf;
 import java.io.File;
 import org.apache.bookkeeper.bookie.LedgerDirsManager;
-import 
org.apache.bookkeeper.bookie.storage.directentrylogger.DirectCompactionEntryLog;
-import 
org.apache.bookkeeper.bookie.storage.directentrylogger.DirectEntryLogger;
+import org.apache.bookkeeper.bookie.storage.EntryLogIds;
+import org.apache.bookkeeper.bookie.storage.EntryLogger;
 import org.apache.bookkeeper.slogger.Slogger;
 import org.apache.bookkeeper.test.TmpDirs;
 import org.apache.commons.lang3.tuple.Pair;
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestTransactionalEntryLogCompactor.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestTransactionalEntryLogCompactor.java
index db79988af3..86d760d459 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestTransactionalEntryLogCompactor.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/storage/directentrylogger/TestTransactionalEntryLogCompactor.java
@@ -49,7 +49,6 @@ import org.apache.bookkeeper.bookie.EntryLogMetadata;
 import org.apache.bookkeeper.bookie.MockLedgerStorage;
 import org.apache.bookkeeper.bookie.TransactionalEntryLogCompactor;
 import org.apache.bookkeeper.bookie.storage.CompactionEntryLog;
-import org.apache.bookkeeper.bookie.storage.EntryLogIdsImpl;
 import org.apache.bookkeeper.bookie.storage.EntryLogScanner;
 import org.apache.bookkeeper.bookie.storage.EntryLogger;
 import org.apache.bookkeeper.common.util.nativeio.NativeIOImpl;

Reply via email to