Ple Io Budget#

class PleIoBudget : public std::enable_shared_from_this<PleIoBudget>#

Bounds the simultaneously live PLE I/O buffers within one runtime.

Public Functions

std::unique_ptr<Reservation> reserve(
PleIoConfig const &io,
size_t sourceRowBytes,
size_t maxRows,
size_t pageBytes,
bool cached
)#

Validates requested sizes before reducing batches and reader buffers to fit the remaining budget.

size_t usedBytes() const#

Public Static Attributes

static constexpr size_t kLIMIT_BYTES = 64U << 20#
class Reservation#

Must outlive the buffers charged to it. Destruction returns its bytes to the shared budget.

Public Functions

~Reservation() noexcept#
Reservation(Reservation const&) = delete#
Reservation &operator=(Reservation const&) = delete#
Reservation(Reservation&&) = delete#
Reservation &operator=(Reservation&&) = delete#
inline size_t rows() const noexcept#
inline size_t readBytes() const noexcept#
inline size_t readers() const noexcept#
inline size_t hostBytes() const noexcept#
inline bool adjusted() const noexcept#
class Reservation

Must outlive the buffers charged to it. Destruction returns its bytes to the shared budget.

Public Functions

~Reservation() noexcept
Reservation(Reservation const&) = delete
Reservation &operator=(Reservation const&) = delete
Reservation(Reservation&&) = delete
Reservation &operator=(Reservation&&) = delete
inline size_t rows() const noexcept
inline size_t readBytes() const noexcept
inline size_t readers() const noexcept
inline size_t hostBytes() const noexcept
inline bool adjusted() const noexcept
struct PleIoConfig#

Public Members

size_t fillBytes = {4U << 20}#

Packed source payload per cached upload, excluding slot IDs.

size_t preloadBytes = {16U << 20}#

Sequential source payload per resident upload.

size_t readBytes = {1U << 20}#

Maximum buffered read size per reader.

size_t readers = {4}#