18 #ifndef FOEDUS_MEMORY_NUMA_CORE_MEMORY_HPP_
19 #define FOEDUS_MEMORY_NUMA_CORE_MEMORY_HPP_
93 return current_lock_list_memory_;
96 return current_lock_list_capacity_;
99 return retrospective_lock_list_memory_;
102 return retrospective_lock_list_capacity_;
106 return small_thread_local_memory_pieces_;
117 static ErrorCode grab_free_pages_from_node(
121 static void release_free_pages_to_node(
164 SmallThreadLocalMemoryPieces small_thread_local_memory_pieces_;
197 uint64_t current_lock_list_capacity_;
200 uint64_t retrospective_lock_list_capacity_;
239 #endif // FOEDUS_MEMORY_NUMA_CORE_MEMORY_HPP_
ErrorStack uninitialize_once() override
ErrorStack initialize_once() override
void release_free_volatile_page(PagePoolOffset offset)
Returns one free volatile page to local page pool.
uint8_t ThreadLocalOrdinal
Typedef for a local ID of Thread (core), which is NOT unique across NUMA nodes.
PagePoolOffset grab_free_volatile_page()
Acquires one free volatile page from local page pool.
Definitions of IDs in this package and a few related constant values.
Page pool for volatile read/write store (VolatilePage) and the read-only bufferpool (SnapshotPage)...
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
char * xct_write_access_memory_
uint32_t PagePoolOffset
Offset in PagePool that compactly represents the page address (unlike 8 bytes pointer).
Typedefs of ID types used in thread package.
char * xct_lock_free_write_access_memory_
Forward declarations of classes in transaction package.
Represents a pointer to a volatile page with modification count for preventing ABA.
Forward declarations of classes in root package.
Brings error stacktrace information as return value of functions.
An entry in CLL and RLL, representing a lock that is taken or will be taken.
uint64_t get_current_lock_list_capacity() const
Typical implementation of Initializable as a skeleton base class.
Definitions of IDs in this package and a few related constant values.
uint64_t get_local_work_memory_size() const
char * xct_lock_free_read_access_memory_
storage::VolatilePagePointer grab_free_volatile_page_pointer()
Wrapper for grab_free_volatile_page().
void * get_local_work_memory() const
xct::LockEntry * get_retrospective_lock_list_memory() const
Repository of memories dynamically acquired within one CPU core (thread).
AlignedMemorySlice get_log_buffer_memory() const
const SmallThreadLocalMemoryPieces & get_small_thread_local_memory_pieces() const
#define CXX11_FINAL
Used in public headers in place of "final" of C++11.
NumaNodeMemory * get_node_memory() const
Returns the parent memory repository.
void release_free_snapshot_page(PagePoolOffset offset)
Same, except it's for snapshot page.
Database engine object that holds all resources and provides APIs.
Repository of memories dynamically acquired and shared within one NUMA node (socket).
char * xct_pointer_access_memory_
xct::LockEntry * get_current_lock_list_memory() const
char * sysxct_workspace_memory_
Set of option values given to the engine at start-up.
A slice of foedus::memory::AlignedMemory.
memory::PagePool * get_volatile_pool()
void * get_block() const
Returns the memory block.
Packs pointers to pieces of small_thread_local_memory_.
Forward declarations of classes in memory package.
uint64_t get_size() const
Returns the byte size of the memory block.
PagePoolOffsetAndEpochChunk * get_retired_volatile_pool_chunk(uint16_t node)
char * xct_read_access_memory_
#define CXX11_OVERRIDE
Used in public headers in place of "override" of C++11.
PagePoolOffset grab_free_snapshot_page()
Same, except it's for snapshot page.
#define CXX11_FUNC_DELETE
Used in public headers in place of " = delete" of C++11.
static uint64_t calculate_local_small_memory_size(const EngineOptions &options)
To reduce the overhead of grabbing/releasing pages from pool, we pack this many pointers for each gra...
uint16_t ThreadId
Typedef for a global ID of Thread (core), which is unique across NUMA nodes.
Represents one memory block aligned to actual OS/hardware pages.
memory::PagePool * get_snapshot_pool()
Used to store an epoch value with each entry in PagePoolOffsetChunk.
uint64_t get_retrospective_lock_list_capacity() const
uint8_t ThreadGroupId
Typedef for an ID of ThreadGroup (NUMA node).
ErrorCode
Enum of error codes defined in error_code.xmacro.
char * xct_page_version_memory_