void FlushFiles() { if (_pureValueFileWriter != null) { _pureValueFileWriter.FlushBuffer(); _pureValueFile.HardFlush(); } if (_hashIndexWriter != null) { _hashIndexWriter.FlushBuffer(); _hashIndexFile.HardFlush(); } }
public void Dispose() { lock (_log) { _log.WriteUInt8((byte)KVReplayOperation.KeyValueDBDispose); _log.FlushBuffer(); } var disposableLog = _log as IDisposable; if (disposableLog != null) { disposableLog.Dispose(); } _db.Dispose(); }
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(); } }
void LogSimpleOperation(KVReplayOperation operation) { lock (_log) { _log.WriteUInt8((byte)operation); _log.WriteVUInt32(TrIndex); _log.FlushBuffer(); } }