示例#1
0
文件: Contexts.cs 项目: manhvu/FASTER
        /// <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);
            }
        }
示例#2
0
        protected void WriteHybridLogContextInfo()
        {
            string filename = DirectoryConfiguration.GetHybridLogCheckpointContextFileName(_hybridLogCheckpointToken, prevThreadCtx.guid);

            using (var file = new StreamWriter(filename, false))
            {
                prevThreadCtx.Write(file);
                file.Flush();
            }
        }