public void DatabaseShouldBeDropped() { _env.MaxDatabases = 2; _env.Open(); _txn = _env.BeginTransaction(); var db = _txn.OpenDatabase("notmaster", new DatabaseConfiguration { Flags = DatabaseOpenFlags.Create }); _txn.Commit(); _txn.Dispose(); db.Dispose(); _txn = _env.BeginTransaction(); db = _txn.OpenDatabase("notmaster"); db.Drop(_txn); _txn.Commit(); _txn.Dispose(); _txn = _env.BeginTransaction(); var ex = Assert.Throws <LightningException>(() => _txn.OpenDatabase("notmaster")); Assert.Equal(ex.StatusCode, -30798); }
private void CommitInternal(ITransaction transaction) { Stopwatch sw = new Stopwatch(); ValidateTransaction(transaction); LightningTransaction lmdbTransaction = (LightningTransaction)transaction.InnerObject; sw.Start(); lmdbTransaction.Commit(); sw.Stop(); ChangeDataSize(((LMDBTransaction)transaction).Size); if (!transaction.IsReadOnly) { if (_readerTransaction != null) { lock (_readerTransactionLock) { if (_readerTransaction != null) { _readerTransaction.MarkForCommit(); //_readerTransaction = null; } } } } if (LoggerManager.Instance.StorageLogger != null) { LoggerManager.Instance.StorageLogger.Debug("LMDBPersistanceProvider", "LMDB Commit Time: " + sw.ElapsedMilliseconds + " (ms)"); } }
public void Cleanup() { _txn.Commit(); _env.Close(); if (Directory.Exists(_path)) { Directory.Delete(_path, true); } }
public void TransactionShouldChangeStateOnCommit() { //arrange _txn = _env.BeginTransaction(); //act _txn.Commit(); //assert Assert.AreEqual(LightningTransactionState.Commited, _txn.State); }
private void SaveKV(LightningTransaction tx, byte[] key, double value) { var byteValue = BitConverter.GetBytes(value); using (var db = tx.OpenDatabase("kv", new DatabaseConfiguration { Flags = DatabaseOpenFlags.Create })) { tx.Put(db, key, byteValue); tx.Commit(); } }
public void ChildTransactionShouldBeAbortedIfParentIsCommited() { //arrange _txn = _env.BeginTransaction(); var child = _txn.BeginTransaction(); //act _txn.Commit(); //assert Assert.AreEqual(LightningTransactionState.Aborted, child.State); }
public void TruncatingTheDatabase() { _env.Open(); _txn = _env.BeginTransaction(); var db = _txn.OpenDatabase(); _txn.Put(db, "hello", "world"); _txn.Commit(); _txn.Dispose(); _txn = _env.BeginTransaction(); db = _txn.OpenDatabase(); db.Truncate(_txn); _txn.Commit(); _txn.Dispose(); _txn = _env.BeginTransaction(); db = _txn.OpenDatabase(); var result = _txn.Get(db, UTF8.GetBytes("hello")); Assert.Equal(MDBResultCode.NotFound, result.resultCode); }
public void TruncatingTheDatabase() { _env.Open(); _txn = _env.BeginTransaction(); var db = _txn.OpenDatabase(); _txn.Put(db, "hello", "world"); _txn.Commit(); _txn.Dispose(); _txn = _env.BeginTransaction(); db = _txn.OpenDatabase(); db.Truncate(_txn); _txn.Commit(); _txn.Dispose(); _txn = _env.BeginTransaction(); db = _txn.OpenDatabase(); var result = _txn.Get(db, UTF8.GetBytes("hello")); Assert.Null(result); }
public void CanCommitTransactionToNamedDatabase() { using (var db = _txn.OpenDatabase("test", new DatabaseConfiguration { Flags = DatabaseOpenFlags.Create })) { _txn.Put(db, "key1", "value"); _txn.Commit(); } using (var txn2 = _env.BeginTransaction()) { using (var db = txn2.OpenDatabase("test")) { var value = txn2.Get(db, "key1"); Assert.Equal("value", value); } } }
public static bool PutVulnerabilities(List <OSSIndexVulnerability> vulnerabilities) { if (!Environment.IsOpened) { Environment.MapSize = 2L * 1024L * 1024L * 1024L; Environment.Open(EnvironmentOpenFlags.None); } using (LightningTransaction tx = Environment.BeginTransaction()) using (LightningDatabase db = tx.OpenDatabase(null, new DatabaseConfiguration { Flags = DatabaseOpenFlags.Create })) { try { foreach (OSSIndexVulnerability v in vulnerabilities) { /* * using (MemoryStream ms = new MemoryStream()) * using (BsonWriter writer = new BsonWriter(ms)) * { * JsonSerializer serializer = new JsonSerializer(); * serializer.Serialize(writer, v); * } */ tx.Put(db, Encoding.UTF8.GetBytes(string.IsNullOrEmpty(v.Vid) ? v.Url : v.Vid + "#" + v.Group), Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(v))); } tx.Commit(); logger.Debug("Committed {0} vulnerabilities to database.", vulnerabilities.Count); return(true); } catch (LightningException e) { logger.Error("Exception thrown attempting to write vulnerabilities to database."); logger.Error(e); return(false); } } }
public void Commit() => _tx.Commit();
void ITransaction.Commit() { using (_transaction) _transaction.Commit(); }
public void Commit() { TraceStart("mdb_txn_commit"); _tx.Commit(); TraceStop("mdb_txn_commit"); }
public void DatabaseShouldBeDropped() { _env.MaxDatabases = 2; _env.Open(); _txn = _env.BeginTransaction(); var db = _txn.OpenDatabase("notmaster", new DatabaseConfiguration {Flags = DatabaseOpenFlags.Create}); _txn.Commit(); _txn.Dispose(); db.Dispose(); _txn = _env.BeginTransaction(); db = _txn.OpenDatabase("notmaster"); db.Drop(_txn); _txn.Commit(); _txn.Dispose(); _txn = _env.BeginTransaction(); var ex = Assert.Throws<LightningException>(() => _txn.OpenDatabase("notmaster")); Assert.Equal(ex.StatusCode, -30798); }