/// <exception cref="System.IO.IOException"/> internal static void RollForwardByApplyingLogs(RemoteEditLogManifest manifest, FSImage dstImage, FSNamesystem dstNamesystem) { NNStorage dstStorage = dstImage.GetStorage(); IList <EditLogInputStream> editsStreams = Lists.NewArrayList(); foreach (RemoteEditLog log in manifest.GetLogs()) { if (log.GetEndTxId() > dstImage.GetLastAppliedTxId()) { FilePath f = dstStorage.FindFinalizedEditsFile(log.GetStartTxId(), log.GetEndTxId ()); editsStreams.AddItem(new EditLogFileInputStream(f, log.GetStartTxId(), log.GetEndTxId (), true)); } } Log.Info("Checkpointer about to load edits from " + editsStreams.Count + " stream(s)." ); dstImage.LoadEdits(editsStreams, dstNamesystem); }