예제 #1
0
        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();
            }
        }
예제 #2
0
		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();
			}
		}
예제 #3
0
 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();
         }
 }
예제 #4
0
		protected void OpenDictionary()
		{
			PersistentSource = new FileBasedPersistentSource(tempPath, "test", writeThrough: true);
			database = new Database(PersistentSource);
			Table = database.Add(new Table("Test"));
			database.Initialize();
			database.BeginTransaction();
		}
예제 #5
0
 protected void OpenDictionary()
 {
     PersistentSource = new FileBasedPersistentSource(tempPath, "test", writeThrough: true);
     database         = new Database(PersistentSource);
     Table            = database.Add(new Table("Test"));
     database.Initialize();
     database.BeginTransaction();
 }
예제 #6
0
        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();
        }
예제 #7
0
        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();
        }
예제 #8
0
		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();
			}

		}