public void Truncate() { _currentJournaledMemTable.Close(); TableManager.Default.Close(this); foreach (var pair in _secondaryIndexes) { pair.Value.Close(FastClose); } string basePath = Path.GetFullPath(Manifest.BaseFileName); foreach (string file in Directory.GetFiles(basePath, "*.*", SearchOption.AllDirectories)) { Helper.DeleteFile(file, false, (msg) => { Manifest.LogMessage(msg); }); } foreach (string dir in Directory.GetDirectories(basePath, "*.*", SearchOption.AllDirectories)) { Helper.DeleteFolder(dir, false, (msg) => { Manifest.LogMessage(msg); }); } _manifest = new Manifest(basePath); _currentJournaledMemTable = new JournaledMemTable(_manifest.BaseFileName, _manifest.CurrentVersion(0)); _cache = new RazorCache(); _secondaryIndexes = new Dictionary <string, KeyValueStore>(StringComparer.OrdinalIgnoreCase); Manifest.LogMessage("Database Truncated."); }
#pragma warning restore 420 private void CheckForIncompleteJournalRotation(string baseFileName, int currentMemTableVersion) { int previousMemTableVersion = currentMemTableVersion - 1; // Is there a left-over journal from a previous rotation that was aborted while in rotation. if (File.Exists(Config.JournalFile(baseFileName, previousMemTableVersion))) { var memTable = new JournaledMemTable(baseFileName, previousMemTableVersion); memTable.WriteToSortedBlockTable(_manifest); memTable.Close(); } }
#pragma warning restore 420 private void CheckForIncompleteJournalRotation(string baseFileName, int currentMemTableVersion) { int previousMemTableVersion = currentMemTableVersion - 1; // Is there a left-over journal from a previous rotation that was aborted while in rotation. if (File.Exists(Config.JournalFile(baseFileName, previousMemTableVersion))) { var memTable = new JournaledMemTable(baseFileName, previousMemTableVersion); memTable.WriteToSortedBlockTable(_manifest); memTable.Close(); } }