Ejemplo n.º 1
0
        public void Truncate()          // Truncates a current database.
        {
            _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))
            {
                File.Delete(file);
            }
            foreach (string dir in Directory.GetDirectories(basePath, "*.*", SearchOption.AllDirectories))
            {
                Directory.Delete(dir, true);
            }

            _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.");
        }
Ejemplo n.º 2
0
        void CheckForIncompleteJournalRotation(string baseFileName, int currentMemTableVersion)
        {
            int previousMemTableVersion = currentMemTableVersion - 1;

            if (File.Exists(Config.JournalFile(baseFileName, previousMemTableVersion)))                 // Is there a left-over journal from a previous rotation that was aborted while in rotation?
            {
                var memTable = new JournaledMemTable(baseFileName, previousMemTableVersion);
                memTable.WriteToSortedBlockTable(_manifest);
                memTable.Close();
            }
        }
Ejemplo n.º 3
0
 void CheckForIncompleteJournalRotation(string baseFileName, int currentMemTableVersion)
 {
     int previousMemTableVersion = currentMemTableVersion - 1;
     if (File.Exists (Config.JournalFile (baseFileName, previousMemTableVersion))) { // Is there a left-over journal from a previous rotation that was aborted while in rotation?
         var memTable = new JournaledMemTable (baseFileName, previousMemTableVersion);
         memTable.WriteToSortedBlockTable (_manifest);
         memTable.Close ();
     }
 }