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;