This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 0801b89b0b1777edff7b12277ceb8c4bfa63ea69 Author: Lei Zhang <[email protected]> AuthorDate: Thu Sep 14 11:45:48 2023 +0800 [enhancement](fe) Add more detail log for replayJournal (#24218) --- fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java | 10 ++++++++++ .../src/main/java/org/apache/doris/journal/JournalEntity.java | 9 +++++++++ .../java/org/apache/doris/journal/bdbje/BDBJournalCursor.java | 1 + 3 files changed, 20 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java index a6c06056f8..1437660a2c 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java @@ -2516,6 +2516,7 @@ public class Env { long startTime = System.currentTimeMillis(); boolean hasLog = false; while (true) { + long entityStartTime = System.currentTimeMillis(); Pair<Long, JournalEntity> kv = cursor.next(); if (kv == null) { break; @@ -2527,6 +2528,7 @@ public class Env { } hasLog = true; EditLog.loadJournal(this, logId, entity); + long loadJournalEndTime = System.currentTimeMillis(); replayedJournalId.incrementAndGet(); LOG.debug("journal {} replayed.", replayedJournalId); if (feType != FrontendNodeType.MASTER) { @@ -2536,6 +2538,14 @@ public class Env { // Metric repo may not init after this replay thread start MetricRepo.COUNTER_EDIT_LOG_READ.increase(1L); } + + long entityCost = System.currentTimeMillis() - entityStartTime; + if (entityCost >= 1000) { + long loadJournalCost = loadJournalEndTime - entityStartTime; + LOG.warn("entityCost:{} loadJournalCost:{} logId:{} replayedJournalId:{} code:{} size:{}", + entityCost, loadJournalCost, logId, replayedJournalId, entity.getOpCode(), + entity.getDataSize()); + } } long cost = System.currentTimeMillis() - startTime; if (cost >= 1000) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java b/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java index 8feb3022fa..1fd1b2c51f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java +++ b/fe/fe-core/src/main/java/org/apache/doris/journal/JournalEntity.java @@ -138,6 +138,7 @@ public class JournalEntity implements Writable { private short opCode; private Writable data; + private long dataSize; public short getOpCode() { return this.opCode; @@ -159,6 +160,14 @@ public class JournalEntity implements Writable { return " opCode=" + opCode + " " + data; } + public void setDataSize(long dataSize) { + this.dataSize = dataSize; + } + + public long getDataSize() { + return this.dataSize; + } + @Override public void write(DataOutput out) throws IOException { out.writeShort(opCode); diff --git a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJournalCursor.java b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJournalCursor.java index 8939251925..5466df71dd 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJournalCursor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJournalCursor.java @@ -113,6 +113,7 @@ public class BDBJournalCursor implements JournalCursor { JournalEntity entity = new JournalEntity(); try { entity.readFields(in); + entity.setDataSize(retData.length); } catch (Exception e) { LOG.error("fail to read journal entity key={}, will exit", currentKey, e); System.exit(-1); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
