diff --git a/fdbserver/KeyValueStoreMemory.actor.cpp b/fdbserver/KeyValueStoreMemory.actor.cpp index e3b768d421b..99e2ed4b476 100644 --- a/fdbserver/KeyValueStoreMemory.actor.cpp +++ b/fdbserver/KeyValueStoreMemory.actor.cpp @@ -83,10 +83,12 @@ class KeyValueStoreMemory : public IKeyValueStore, NonCopyable { int64_t uncommittedBytes = queue.totalSize() + transactionSize; //Check that we have enough space in memory and on disk - int64_t availableSize = std::min(getAvailableSize(), diskQueueBytes.free / 4 - uncommittedBytes); + int64_t freeSize = std::min(getAvailableSize(), diskQueueBytes.free / 4 - uncommittedBytes); + int64_t availableSize = std::min(getAvailableSize(), diskQueueBytes.available / 4 - uncommittedBytes); int64_t totalSize = std::min(memoryLimit, diskQueueBytes.total / 4 - uncommittedBytes); - return StorageBytes(std::max((int64_t)0, availableSize), std::max((int64_t)0, totalSize), diskQueueBytes.used, diskQueueBytes.available); + return StorageBytes(std::max((int64_t)0, freeSize), std::max((int64_t)0, totalSize), diskQueueBytes.used, + std::max((int64_t)0, availableSize)); } void semiCommit() {