public void MultipleThreadsCanSafelyWriteandCommit() { var tempPath = Path.GetTempPath(); var dbPath = Path.Combine(tempPath, "test" + ".ravendb"); Log("Saving db in: " + dbPath); File.Delete(dbPath); var persistentSource = new FileBasedPersistentSource(tempPath, "test", writeThrough: true); var database = new Database(persistentSource); var tableOne = database.Add(new Table("Test1")); var tableTwo = database.Add(new Table("Test2")); database.Initialize(); try { Parallel.For(0, 10, counter => { Table table = counter % 2 == 0 ? tableOne : tableTwo; ProcessTask(counter, database, table); }); } catch (AggregateException aggEx) { Assert.False(true, aggEx.Message + " : " + aggEx.InnerException.Message); } finally { persistentSource.Dispose(); } }
public void Compact(InMemoryRavenConfiguration compactConfiguration) { using (var ps = new FileBasedPersistentSource(compactConfiguration.DataDirectory, "Raven", configuration.TransactionMode == TransactionMode.Safe)) using (var storage = new TableStorage(ps)) { storage.Compact(); } }
protected void OpenDictionary() { PersistentSource = new FileBasedPersistentSource(tempPath, "test", writeThrough: true); database = new Database(PersistentSource); Table = database.Add(new Table("Test")); database.Initialize(); database.BeginTransaction(); }
protected void OpenDictionary() { persistentSource = new FileBasedPersistentSource(Path.GetTempPath(), "test_", writeThrough: false); Database = new Database(persistentSource); tableOne = Database.Add(new Table("Test1")); tableTwo = Database.Add(new Table("Test2")); Database.Initialze(); Database.BeginTransaction(); }