4444import org .apache .hadoop .hbase .master .SplitLogManager ;
4545import org .apache .hadoop .hbase .monitoring .MonitoredTask ;
4646import org .apache .hadoop .hbase .monitoring .TaskMonitor ;
47+ import org .apache .hadoop .hbase .procedure2 .util .StringUtils ;
4748import org .apache .hadoop .hbase .regionserver .LastSequenceId ;
4849import org .apache .hadoop .hbase .regionserver .wal .WALCellCodec ;
4950import org .apache .hadoop .hbase .util .Bytes ;
5051import org .apache .hadoop .hbase .util .CancelableProgressable ;
5152import org .apache .hadoop .hbase .util .ClassSize ;
53+ import org .apache .hadoop .hbase .util .EnvironmentEdgeManager ;
5254import org .apache .hadoop .hbase .util .FSUtils ;
5355import org .apache .hadoop .hbase .wal .WAL .Entry ;
5456import org .apache .hadoop .hbase .wal .WAL .Reader ;
@@ -221,9 +223,11 @@ boolean splitLogFile(FileStatus logfile, CancelableProgressable reporter) throws
221223 "Splitting log file " + logfile .getPath () + "into a temporary staging area." );
222224 Reader logFileReader = null ;
223225 this .fileBeingSplit = logfile ;
226+ long startTS = EnvironmentEdgeManager .currentTime ();
224227 try {
225228 long logLength = logfile .getLen ();
226- LOG .info ("Splitting WAL={}, length={}" , logPath , logLength );
229+ LOG .info ("Splitting WAL={}, size={} ({} bytes)" , logPath , StringUtils .humanSize (logLength ),
230+ logLength );
227231 status .setStatus ("Opening log file" );
228232 if (reporter != null && !reporter .progress ()) {
229233 progress_failed = true ;
@@ -234,13 +238,16 @@ boolean splitLogFile(FileStatus logfile, CancelableProgressable reporter) throws
234238 LOG .warn ("Nothing to split in WAL={}" , logPath );
235239 return true ;
236240 }
241+ long openCost = EnvironmentEdgeManager .currentTime () - startTS ;
242+ LOG .info ("Open WAL={} cost {} ms" , logPath , openCost );
237243 int numOpenedFilesBeforeReporting = conf .getInt ("hbase.splitlog.report.openedfiles" , 3 );
238244 int numOpenedFilesLastCheck = 0 ;
239245 outputSink .setReporter (reporter );
240246 outputSink .startWriterThreads ();
241247 outputSinkStarted = true ;
242248 Entry entry ;
243249 Long lastFlushedSequenceId = -1L ;
250+ startTS = EnvironmentEdgeManager .currentTime ();
244251 while ((entry = getNextLogLine (logFileReader , logPath , skipErrors )) != null ) {
245252 byte [] region = entry .getKey ().getEncodedRegionName ();
246253 String encodedRegionNameAsStr = Bytes .toString (region );
@@ -324,11 +331,13 @@ boolean splitLogFile(FileStatus logfile, CancelableProgressable reporter) throws
324331 progress_failed = outputSink .finishWritingAndClose () == null ;
325332 }
326333 } finally {
327- String msg =
328- "Processed " + editsCount + " edits across " + outputSink .getNumberOfRecoveredRegions ()
329- + " regions; edits skipped=" + editsSkipped + "; log file=" + logPath +
330- ", length=" + logfile .getLen () + // See if length got updated post lease recovery
331- ", corrupted=" + isCorrupted + ", progress failed=" + progress_failed ;
334+ long processCost = EnvironmentEdgeManager .currentTime () - startTS ;
335+ // See if length got updated post lease recovery
336+ String msg = "Processed " + editsCount + " edits across " +
337+ outputSink .getNumberOfRecoveredRegions () + " regions cost " + processCost +
338+ " ms; edits skipped=" + editsSkipped + "; WAL=" + logPath + ", size=" +
339+ StringUtils .humanSize (logfile .getLen ()) + ", length=" + logfile .getLen () +
340+ ", corrupted=" + isCorrupted + ", progress failed=" + progress_failed ;
332341 LOG .info (msg );
333342 status .markComplete (msg );
334343 }
0 commit comments