libfoedus-core
FOEDUS Core Library
|
To reduce the overhead of grabbing/releasing pages from pool, we pack this many pointers for each grab/release. More...
To reduce the overhead of grabbing/releasing pages from pool, we pack this many pointers for each grab/release.
The pointers themselves might not be contiguous. This is just a package of pointers.
Definition at line 47 of file page_pool.hpp.
#include <page_pool.hpp>
Public Types | |
enum | Constants { kMaxSize = (1 << 12) - 1 } |
Public Member Functions | |
PagePoolOffsetChunk () | |
uint32_t | capacity () const |
uint32_t | size () const |
bool | empty () const |
bool | full () const |
void | clear () |
PagePoolOffset | pop_back () |
void | push_back (PagePoolOffset pointer) |
void | push_back (const PagePoolOffset *begin, const PagePoolOffset *end) |
void | move_to (PagePoolOffset *destination, uint32_t count) |
Enumerator | |
---|---|
kMaxSize |
Max number of pointers to pack. -1 for size_ (make the size of this class power of two). |
Definition at line 49 of file page_pool.hpp.
|
inline |
Definition at line 56 of file page_pool.hpp.
|
inline |
Definition at line 58 of file page_pool.hpp.
References kMaxSize.
Referenced by foedus::memory::PagePoolPimpl::grab(), foedus::memory::RoundRobinPageGrabBatch::grab(), and foedus::memory::DivvyupPageGrabBatch::grab().
|
inline |
Definition at line 62 of file page_pool.hpp.
Referenced by foedus::snapshot::SnapshotManagerPimpl::drop_volatile_pages(), and foedus::snapshot::SnapshotManagerPimpl::drop_volatile_pages_parallel().
|
inline |
Definition at line 60 of file page_pool.hpp.
Referenced by foedus::storage::Composer::DropVolatilesArguments::drop(), foedus::snapshot::SnapshotManagerPimpl::drop_volatile_pages_parallel(), foedus::memory::RoundRobinPageGrabBatch::grab(), foedus::memory::NumaCoreMemory::grab_free_snapshot_page(), foedus::memory::NumaCoreMemory::grab_free_volatile_page(), pop_back(), foedus::memory::PagePoolOffsetAndEpochChunk::push_back(), and foedus::memory::RoundRobinPageGrabBatch::release_all().
|
inline |
Definition at line 61 of file page_pool.hpp.
References kMaxSize.
Referenced by foedus::storage::sequential::SequentialStoragePimpl::drop(), foedus::storage::Composer::DropVolatilesArguments::drop(), push_back(), foedus::memory::PagePoolOffsetAndEpochChunk::push_back(), foedus::memory::NumaCoreMemory::release_free_snapshot_page(), and foedus::memory::NumaCoreMemory::release_free_volatile_page().
void foedus::memory::PagePoolOffsetChunk::move_to | ( | PagePoolOffset * | destination, |
uint32_t | count | ||
) |
Definition at line 40 of file page_pool.cpp.
References ASSERT_ND.
|
inline |
Definition at line 64 of file page_pool.hpp.
References ASSERT_ND, and empty().
Referenced by foedus::memory::RoundRobinPageGrabBatch::grab(), foedus::memory::NumaCoreMemory::grab_free_snapshot_page(), and foedus::memory::NumaCoreMemory::grab_free_volatile_page().
|
inline |
Definition at line 68 of file page_pool.hpp.
References ASSERT_ND, and full().
Referenced by foedus::storage::sequential::SequentialStoragePimpl::drop(), foedus::storage::Composer::DropVolatilesArguments::drop(), foedus::memory::PagePoolPimpl::grab(), foedus::memory::PageReleaseBatch::release(), foedus::memory::NumaCoreMemory::release_free_snapshot_page(), and foedus::memory::NumaCoreMemory::release_free_volatile_page().
void foedus::memory::PagePoolOffsetChunk::push_back | ( | const PagePoolOffset * | begin, |
const PagePoolOffset * | end | ||
) |
Definition at line 34 of file page_pool.cpp.
References ASSERT_ND, and kMaxSize.
|
inline |
Definition at line 59 of file page_pool.hpp.
Referenced by foedus::storage::sequential::SequentialStoragePimpl::drop(), foedus::storage::Composer::DropVolatilesArguments::drop(), foedus::snapshot::SnapshotManagerPimpl::drop_volatile_pages_parallel(), foedus::memory::PagePoolPimpl::grab(), foedus::memory::RoundRobinPageGrabBatch::release_all(), and foedus::memory::NumaCoreMemory::uninitialize_once().