RazorDB.KeyValueStore.Truncate C# (CSharp) Method

Truncate() public method

public Truncate ( ) : void
return void
        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.");
        }

Usage Example

コード例 #1
0
ファイル: Program.cs プロジェクト: gnoso/razordb
        public static void CrashTestOnMerge()
        {
            string path = Path.GetFullPath("TestData\\CrashTestOnMerge");
            int num_items = 50000;

            using (var db = new KeyValueStore(path)) {
                db.Truncate();

                db.Manifest.Logger = (msg) => Console.WriteLine(msg);

                for (int i = 0; i < num_items; i++) {
                    byte[] keyBytes = new byte[40];
                    Array.Copy(BitConverter.GetBytes(i).Reverse().ToArray(), keyBytes, 4);
                    Array.Copy(ByteArray.Random(36).InternalBytes, 0, keyBytes, 4, 36);
                    var randomKey = new ByteArray(keyBytes);
                    var randomValue = ByteArray.Random(256);
                    db.Set(randomKey.InternalBytes, randomValue.InternalBytes);
                }

                // Signal our test to fall through
                try {
                    ManualResetEvent.OpenExisting("CrashTestOnMerge").Set();
                } catch (WaitHandleCannotBeOpenedException e) {
                    Console.WriteLine("{0}", e);
                }
            }
        }
All Usage Examples Of RazorDB.KeyValueStore::Truncate