public void CommitIds() { RocksDbAtomicWrite tx = new RocksDbAtomicWrite(_dbContext); foreach (var item in _idCache) { tx.Put(EntryPrefix.VersionByHash.BuildPrefix(HexUtils.HexToBytes(item.Key)), UInt64Utils.ToBytes(item.Value)); } tx.Commit(); _idCache.Clear(); }
public void Commit() { var batch = new RocksDbAtomicWrite(_dbContext); _balanceManager.Commit(batch); _contractManager.Commit(batch); _storageManager.Commit(batch); _transactionManager.Commit(batch); _blockManager.Commit(batch); _eventManager.Commit(batch); _validatorManager.Commit(batch); batch.Commit(); ClearCache(); }
public void CommitNodes() { RocksDbAtomicWrite tx = new RocksDbAtomicWrite(_dbContext); foreach (var item in _nodeCache) { tx.Put(EntryPrefix.PersistentHashMap.BuildPrefix(item.Key), NodeSerializer.ToBytes(item.Value)); Console.WriteLine("Adding node to DB : " + item.Key); } ulong nodesCnt = UInt64Utils.FromBytes(_dbContext.Get(EntryPrefix.NodesDownloadedTillNow.BuildPrefix())); nodesCnt += (ulong)_nodeCache.Count; tx.Put(EntryPrefix.NodesDownloadedTillNow.BuildPrefix(), UInt64Utils.ToBytes(nodesCnt)); tx.Commit(); _nodeCache.Clear(); }
public void AddAndRemoveTransaction(TransactionReceipt txToAdd, TransactionReceipt txToRemove) { /* write transaction to storage */ var batch = new RocksDbAtomicWrite(_rocksDbContext); var prefixTx = EntryPrefix.TransactionByHash.BuildPrefix(txToRemove.Hash); batch.Delete(prefixTx); prefixTx = EntryPrefix.TransactionByHash.BuildPrefix(txToAdd.Hash); batch.Put(prefixTx, txToAdd.ToByteArray()); /* add transaction to pool */ var pool = GetTransactionPool(); pool.Remove(txToRemove.Hash); if (!pool.Contains(txToAdd.Hash)) { pool.Add(txToAdd.Hash); } prefixTx = EntryPrefix.TransactionPool.BuildPrefix(); batch.Put(prefixTx, pool.TransactionHashListToByteArray()); batch.Commit(); }
private void Commit() { batch.Commit(); DbShrinkUtils.ResetCounter(); UpdateBatch(); }