diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java index f0a002f4583..3f16d22a375 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieImpl.java @@ -1082,7 +1082,8 @@ public ByteBuf readEntry(long ledgerId, long entryId) LOG.trace("Reading {}@{}", entryId, ledgerId); } ByteBuf entry = handle.readEntry(entryId); - bookieStats.getReadBytes().add(entry.readableBytes()); + entrySize = entry.readableBytes(); + bookieStats.getReadBytes().add(entrySize); success = true; return entry; } finally { diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java index 2c054a1d93b..4d7059d0cdd 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Journal.java @@ -379,9 +379,9 @@ public int process(boolean shouldForceWrite) throws IOException { return 0; } + long startTime = MathUtils.nowInNano(); try { if (shouldForceWrite) { - long startTime = MathUtils.nowInNano(); this.logFile.forceWrite(false); journalStats.getJournalSyncStats() .registerSuccessfulEvent(MathUtils.elapsedNanos(startTime), TimeUnit.NANOSECONDS); @@ -397,6 +397,10 @@ public int process(boolean shouldForceWrite) throws IOException { } return forceWriteWaiters.size(); + } catch (IOException e) { + journalStats.getJournalSyncStats() + .registerFailedEvent(MathUtils.elapsedNanos(startTime), TimeUnit.NANOSECONDS); + throw e; } finally { closeFileIfNecessary(); }