Exemplo n.º 1
0
 void FlushFiles()
 {
     if (_pureValueFileWriter != null)
     {
         _pureValueFileWriter.FlushBuffer();
         _pureValueFile.HardFlush();
     }
     if (_hashIndexWriter != null)
     {
         _hashIndexWriter.FlushBuffer();
         _hashIndexFile.HardFlush();
     }
 }
Exemplo n.º 2
0
        public void Dispose()
        {
            lock (_log)
            {
                _log.WriteUInt8((byte)KVReplayOperation.KeyValueDBDispose);
                _log.FlushBuffer();
            }
            var disposableLog = _log as IDisposable;

            if (disposableLog != null)
            {
                disposableLog.Dispose();
            }
            _db.Dispose();
        }
Exemplo n.º 3
0
 public void Dispose()
 {
     _compactorScheduler?.RemoveCompactAction(_compactFunc);
     lock (_writeLock)
     {
         if (_writingTransaction != null)
         {
             throw new BTDBException("Cannot dispose KeyValueDB when writting transaction still running");
         }
         while (_writeWaitingQueue.Count > 0)
         {
             _writeWaitingQueue.Dequeue().TrySetCanceled();
         }
     }
     if (_writerWithTransactionLog != null)
     {
         _writerWithTransactionLog.WriteUInt8((byte)KVCommandType.TemporaryEndOfFile);
         _writerWithTransactionLog.FlushBuffer();
         _fileWithTransactionLog.HardFlush();
         _fileWithTransactionLog.Truncate();
     }
 }
Exemplo n.º 4
0
 void LogSimpleOperation(KVReplayOperation operation)
 {
     lock (_log)
     {
         _log.WriteUInt8((byte)operation);
         _log.WriteVUInt32(TrIndex);
         _log.FlushBuffer();
     }
 }