Beispiel #1
0
        /// <summary>
        /// Commit index checkpoint
        /// </summary>
        /// <param name="indexToken"></param>
        /// <param name="commitMetadata"></param>
        public void CommitIndexCheckpoint(Guid indexToken, byte[] commitMetadata)
        {
            string filename = directoryConfiguration.GetIndexCheckpointMetaFileName(indexToken);

            using (BinaryWriter writer = new(new FileStream(filename, FileMode.Create)))
            {
                writer.Write(commitMetadata.Length);
                writer.Write(commitMetadata);
                writer.Flush();
            }

            string completed_filename = directoryConfiguration.GetIndexCheckpointFolder(indexToken);

            completed_filename   += Path.DirectorySeparatorChar + "completed.dat";
            using FileStream file = new(completed_filename, FileMode.Create);
            file.Flush();
        }
Beispiel #2
0
        public void Recover(Guid guid, DirectoryConfiguration directoryConfiguration)
        {
            string indexInfoFile = directoryConfiguration.GetIndexCheckpointMetaFileName(guid);

            using (var reader = new StreamReader(indexInfoFile))
            {
                Initialize(reader);
            }
        }
Beispiel #3
0
        protected void WriteIndexMetaFile()
        {
            string filename = DirectoryConfiguration.GetIndexCheckpointMetaFileName(_indexCheckpointToken);

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