Beispiel #1
0
        /// <summary>
        /// Commit log checkpoint (snapshot and fold-over)
        /// </summary>
        /// <param name="logToken"></param>
        /// <param name="commitMetadata"></param>
        public void CommitLogCheckpoint(Guid logToken, byte[] commitMetadata)
        {
            string filename = directoryConfiguration.GetHybridLogCheckpointMetaFileName(logToken);

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

            string completed_filename = directoryConfiguration.GetHybridLogCheckpointFolder(logToken);

            completed_filename   += Path.DirectorySeparatorChar + "completed.dat";
            using FileStream file = new(completed_filename, FileMode.Create);
            file.Flush();
        }
Beispiel #2
0
 /// <inheritdoc />
 public void Purge(Guid token)
 {
     // Try both because we don't know which one
     try { new DirectoryInfo(directoryConfiguration.GetHybridLogCheckpointFolder(token)).Delete(true); } catch { }
     try { new DirectoryInfo(directoryConfiguration.GetIndexCheckpointFolder(token)).Delete(true); } catch { }
 }