Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/Disks/IDisk.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ class Space : public std::enable_shared_from_this<Space>
virtual const String & getName() const = 0;

/// Reserve the specified number of bytes.
/// Returns valid reservation or nullptr when failure.
virtual ReservationPtr reserve(UInt64 bytes) = 0;

virtual ~Space() = default;
Expand Down
3 changes: 3 additions & 0 deletions src/Disks/VolumeJBOD.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,9 @@ class VolumeJBOD : public IVolume
ReservationPtr reserve(uint64_t bytes)
{
ReservationPtr reservation = disk->reserve(bytes);
if (!reservation)
return {};

/// Not just subtract bytes, but update the value,
/// since some reservations may be done directly via IDisk, or not by ClickHouse.
free_size = reservation->getUnreservedSpace();
Expand Down