/// <summary> /// Recover info from token /// </summary> /// <param name="token"></param> /// <param name="directoryConfiguration"></param> /// <returns></returns> internal bool Recover(Guid token, DirectoryConfiguration directoryConfiguration) { string checkpointInfoFile = directoryConfiguration.GetHybridLogCheckpointMetaFileName(token); using (var reader = new StreamReader(checkpointInfoFile)) { Initialize(reader); } int num_threads = numThreads; for (int i = 0; i < num_threads; i++) { var guid = guids[i]; using (var reader = new StreamReader(directoryConfiguration.GetHybridLogCheckpointContextFileName(token, guid))) { var ctx = new SerializedFasterExecutionContext(); ctx.Load(reader); continueTokens.Add(ctx.guid, ctx.serialNum); } } if (continueTokens.Count == num_threads) { return(true); } else { return(false); } }
protected void WriteHybridLogContextInfo() { string filename = DirectoryConfiguration.GetHybridLogCheckpointContextFileName(_hybridLogCheckpointToken, prevThreadCtx.guid); using (var file = new StreamWriter(filename, false)) { prevThreadCtx.Write(file); file.Flush(); } }