FSEditLogLoader { long loadFSEdits(EditLogInputStream edits, long expectedStartingTxId) throws IOException { return loadFSEdits(edits, expectedStartingTxId, Long.MAX_VALUE, null, null); } FSEditLogLoader(FSNamesystem fsNamesys, long lastAppliedTxId); @VisibleForTesting  FSEditLogLoader(FSNamesystem fsNamesys, long lastAppliedTxId, Timer timer); long getLastAppliedTxId();  }
@Test public void setLoadFSEditLogThrottling() throws Exception { FSNamesystem namesystem = mock(FSNamesystem.class); namesystem.dir = mock(FSDirectory.class); FakeTimer timer = new FakeTimer(); FSEditLogLoader loader = new FSEditLogLoader(namesystem, 0, timer); LogCapturer capture = LogCapturer.captureLogs(FSImage.LOG); loader.loadFSEdits(getFakeEditLogInputStream(1, 10), 1); assertTrue(capture.getOutput().contains("Start loading edits file " + FAKE_EDIT_STREAM_NAME)); assertTrue(capture.getOutput().contains("Loaded 1 edits file(s)")); assertFalse(capture.getOutput().contains("suppressed")); timer.advance(FSEditLogLoader.LOAD_EDIT_LOG_INTERVAL_MS / 2); capture.clearOutput(); loader.loadFSEdits(getFakeEditLogInputStream(11, 20), 11); assertFalse(capture.getOutput().contains("Start loading edits file")); assertFalse(capture.getOutput().contains("edits file(s)")); timer.advance(FSEditLogLoader.LOAD_EDIT_LOG_INTERVAL_MS); capture.clearOutput(); loader.loadFSEdits(getFakeEditLogInputStream(21, 30), 21); assertTrue(capture.getOutput().contains("Start loading edits file " + FAKE_EDIT_STREAM_NAME)); assertTrue(capture.getOutput().contains("suppressed logging 1 times")); assertTrue(capture.getOutput().contains("Loaded 2 edits file(s)")); assertTrue(capture.getOutput().contains("total size 2.0")); }