Ple Row Store#

class PleRowStore#

Embedding table with resident or synchronous SSD-to-GPU cached storage. The stream outlives this store, and the store outlives its leases. All engine consumers use this stream and release leases only after their GPU work completes.

Public Types

enum class Residency#

Values:

enumerator kCACHED#
enumerator kRESIDENT#

Public Functions

PleRowStore(
PleTable table,
int32_t slotCount,
cudaStream_t stream,
PleIoConfig io = {},
Residency residency = Residency::kCACHED,
std::shared_ptr<PleIoBudget> ioBudget = nullptr
)#

Resident mode requires slotCount == rowCount + 1 and finishes bounded preload before returning.

~PleRowStore() noexcept#
PleRowStore(PleRowStore const&) = delete#
PleRowStore &operator=(PleRowStore const&) = delete#
std::vector<RequestLease> prepare(
std::vector<std::vector<int64_t>> const &requests
)#
Tensor &pool()#
inline Stats const &stats() const noexcept#

Counters for the most recent admitted prepare, including partial reads on failure.

inline Stats const &preloadStats() const noexcept#
class RequestLease#

Ordered row mapping and optional cache pins. The store outlives this handle.

Public Functions

RequestLease(RequestLease const&) = delete#
RequestLease &operator=(RequestLease const&) = delete#
RequestLease(RequestLease &&other) noexcept#
RequestLease &operator=(RequestLease &&other) noexcept#
std::vector<int32_t> const &mapping() const#
void release() noexcept#
struct Resources#

Public Functions

inline Resources(
PleTable const &table,
int32_t slots,
std::unique_ptr<PleIoBudget::Reservation> reservation
)#

Public Members

Tensor pool#
std::unique_ptr<Staging> staging#
struct Staging#

Public Functions

inline Staging(
int64_t rowBytes,
std::unique_ptr<PleIoBudget::Reservation> reservation
)#
inline ~Staging()#

Public Members

std::unique_ptr<PleIoBudget::Reservation> budget#
Tensor host#
Tensor device#
std::vector<PleFileHandle> files#
std::vector<int64_t> shardEnds#
std::unique_ptr<PleReadExecutor> reader#
struct Stats#

Public Members

size_t uniqueRows = {}#

Computed for cached admission; resident queries do not deduplicate.

size_t misses = {}#
size_t readCalls = {}#
size_t usefulBytes = {}#

Requested miss payload, excluding page amplification.

size_t readBytes = {}#

Bytes returned by pread; not physical SSD traffic for buffered I/O.

size_t fillWaves = {}#
class RequestLease

Ordered row mapping and optional cache pins. The store outlives this handle.

Public Functions

RequestLease(RequestLease const&) = delete
RequestLease &operator=(RequestLease const&) = delete
RequestLease(RequestLease &&other) noexcept
RequestLease &operator=(RequestLease &&other) noexcept
std::vector<int32_t> const &mapping() const
void release() noexcept
struct Stats

Public Members

size_t uniqueRows = {}

Computed for cached admission; resident queries do not deduplicate.

size_t misses = {}
size_t readCalls = {}
size_t usefulBytes = {}

Requested miss payload, excluding page amplification.

size_t readBytes = {}

Bytes returned by pread; not physical SSD traffic for buffered I/O.

size_t fillWaves = {}