|
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().
