A closure that can free the memory associated with a mapped page.
A thread-safe cache of column pages.
std::vector< std::int32_t > fReferences
std::vector< RPageDeleter > fDeleters
void PreloadPage(const RPage &page, const RPageDeleter &deleter)
Like RegisterPage() but the reference counter is initialized to 0.
RPagePool & operator=(const RPagePool &)=delete
void ReturnPage(const RPage &page)
Give back a page to the pool and decrease the reference counter.
RPagePool(const RPagePool &)=delete
RPage GetPage(ColumnId_t columnId, NTupleSize_t globalIndex)
Tries to find the page corresponding to column and index in the cache.
std::vector< RPage > fPages
TODO(jblomer): should be an efficient index structure that allows.
void RegisterPage(const RPage &page, const RPageDeleter &deleter)
Adds a new page to the pool together with the function to free its space.
A page is a slice of a column that is mapped into memory.