/// <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(); }
public void Recover(Guid guid, DirectoryConfiguration directoryConfiguration) { string indexInfoFile = directoryConfiguration.GetIndexCheckpointMetaFileName(guid); using (var reader = new StreamReader(indexInfoFile)) { Initialize(reader); } }
protected void WriteIndexMetaFile() { string filename = DirectoryConfiguration.GetIndexCheckpointMetaFileName(_indexCheckpointToken); using (var file = new StreamWriter(filename, false)) { _indexCheckpoint.info.Write(file); file.Flush(); } }