Skip to content

Commit a7aab8b

Browse files
committed
add recover log
1 parent e41f8b4 commit a7aab8b

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

fluss-server/src/main/java/org/apache/fluss/server/log/LogLoader.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,22 @@ private int recoverSegment(LogSegment segment) throws IOException {
145145
// Additionally, using 0 versus using logStartOffset does not affect correctness—they both
146146
// can restore the complete WriterState. The only difference is that using logStartOffset
147147
// can potentially skip over more segments.
148+
long rebuildWriterStataStart = System.currentTimeMillis();
148149
LogTablet.rebuildWriterState(
149150
writerStateManager, logSegments, 0, segment.getBaseOffset(), false);
151+
long rebuildWriterStateEnd = System.currentTimeMillis();
152+
LOG.info(
153+
"Rebuilt writer state for bucket {} in {} ms",
154+
logSegments.getTableBucket(),
155+
rebuildWriterStateEnd - rebuildWriterStataStart);
156+
long segmentRecoverStart = System.currentTimeMillis();
150157
int bytesTruncated = segment.recover();
158+
long segmentRecoverEnd = System.currentTimeMillis();
159+
LOG.info(
160+
"Segment recover {} for bucket {} in {} ms",
161+
segment.getBaseOffset(),
162+
logSegments.getTableBucket(),
163+
segmentRecoverEnd - segmentRecoverStart);
151164
// once we have recovered the segment's data, take a snapshot to ensure that we won't
152165
// need to reload the same segment again while recovering another segment.
153166
writerStateManager.takeSnapshot();
@@ -174,6 +187,7 @@ private Tuple2<Long, Long> recoverLog() throws IOException {
174187
boolean truncated = false;
175188
int numFlushed = 1;
176189

190+
long recoveryStart = System.currentTimeMillis();
177191
while (unflushedIter.hasNext() && !truncated) {
178192
LogSegment segment = unflushedIter.next();
179193
LOG.info(
@@ -185,7 +199,14 @@ private Tuple2<Long, Long> recoverLog() throws IOException {
185199

186200
int truncatedBytes = -1;
187201
try {
202+
long recoverySegmentStart = System.currentTimeMillis();
188203
truncatedBytes = recoverSegment(segment);
204+
long recoverySegmentEnd = System.currentTimeMillis();
205+
LOG.info(
206+
"Recovered segment {} for bucket {} in {} ms",
207+
segment.getBaseOffset(),
208+
logSegments.getTableBucket(),
209+
recoverySegmentEnd - recoverySegmentStart);
189210
} catch (Exception e) {
190211
if (e instanceof InvalidOffsetException) {
191212
long startOffset = segment.getBaseOffset();
@@ -213,6 +234,11 @@ private Tuple2<Long, Long> recoverLog() throws IOException {
213234
numFlushed += 1;
214235
}
215236
}
237+
long recoveryEnd = System.currentTimeMillis();
238+
LOG.info(
239+
"Recovery for bucket {} completed in {} ms",
240+
logSegments.getTableBucket(),
241+
recoveryEnd - recoveryStart);
216242
}
217243

218244
if (logSegments.isEmpty()) {

fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletServer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ protected void startServices() throws Exception {
284284
@Override
285285
protected CompletableFuture<Result> closeAsync(Result result) {
286286
if (isShutDown.compareAndSet(false, true)) {
287-
287+
LOG.info("Shutting down Tablet server ({}).", result);
288288
controlledShutDown();
289289

290290
CompletableFuture<Void> serviceShutdownFuture = stopServices();

0 commit comments

Comments
 (0)