49 <<
"<dropped_all_>" << v.
dropped_all_ <<
"</dropped_all_>"
57 storage_id_(storage_id),
58 storage_type_(engine_->get_storage_manager()->get_storage(storage_id_)->meta_.type_) {}
62 switch (storage_type_) {
73 switch (storage_type_) {
84 switch (storage_type_) {
95 switch (storage_type_) {
118 ASSERT_ND(node < engine->get_soc_count());
void drop_root_volatile(const Composer::DropVolatilesArguments &args)
ErrorStack construct_root(const Composer::ConstructRootArguments &args)
void drop_root_volatile(const Composer::DropVolatilesArguments &args)
memory::PagePoolOffsetChunk * dropped_chunks_
Caches dropped pages to avoid returning every single page.
Epoch max_observed_
the largest Epoch it observed recursively.
ErrorStack construct_root(const ConstructRootArguments &args)
Construct root page(s) for one storage based on the ouputs of compose().
Page pool for volatile read/write store (VolatilePage) and the read-only bufferpool (SnapshotPage)...
DropResult drop_volatiles(const DropVolatilesArguments &args)
Drops volatile pages that have not been modified since the snapshotted epoch.
Represents a logic to compose a new version of data pages for one storage.
uint32_t StorageId
Unique ID for storage.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Composer for an sequential storage.
const GlobalVolatilePageResolver & get_global_volatile_page_resolver() const
Returns the page resolver to convert volatile page ID to page pointer.
void drop_root_volatile(const Composer::DropVolatilesArguments &args)
Composer::DropResult drop_volatiles(const Composer::DropVolatilesArguments &args)
Represents a pointer to a volatile page with modification count for preventing ABA.
ErrorStack compose(const Composer::ComposeArguments &args)
Composer::DropResult drop_volatiles(const Composer::DropVolatilesArguments &args)
drop_volatiles and related methods
Brings error stacktrace information as return value of functions.
StorageId get_storage_id() const
Composer(Engine *engine, StorageId storage_id)
ErrorStack construct_root(const Composer::ConstructRootArguments &args)
Composer::DropResult drop_volatiles(const Composer::DropVolatilesArguments &args)
drop_volatiles and related methods
ErrorStack construct_root(const Composer::ConstructRootArguments &args)
memory::PagePoolOffset get_offset() const
Composer for an array storage.
Composer::DropResult drop_volatiles(const Composer::DropVolatilesArguments &args)
drop_volatiles and related methods
Database engine object that holds all resources and provides APIs.
NumaNodeMemoryRef * get_node_memory(foedus::thread::ThreadGroupId group) const
ErrorStack compose(const Composer::ComposeArguments &args)
ErrorStack compose(const ComposeArguments &args)
Construct snapshot pages from sorted run files of one storage.
Just a marker to denote that the memory region represents a data page.
Retrun value of drop_volatiles()
const char * to_storage_type_name(StorageType type)
Gives a string representation of StorageType.
bool dropped_all_
Whether all volatile pages under the page was dropped.
void release(uint32_t desired_release_count, PagePoolOffsetChunk *chunk)
Returns the specified number of free pages from the chunk.
ErrorStack compose(const Composer::ComposeArguments &args)
Composer for an masstree storage.
ErrorStack construct_root(const Composer::ConstructRootArguments &args)
void push_back(PagePoolOffset pointer)
ErrorStack compose(const Composer::ComposeArguments &args)
To reduce the overhead of grabbing/releasing pages from pool, we pack this many pointers for each gra...
const ErrorStack kRetOk
Normal return value for no-error case.
PagePool * get_volatile_pool()
Composer for a hash storage.
std::ostream & operator<<(std::ostream &o, const Composer &v)
void drop_root_volatile(const DropVolatilesArguments &args)
This is additionally called when no partitions observed any new modifications.
StorageType get_storage_type() const
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
uint8_t get_numa_node() const
void drop(Engine *engine, VolatilePagePointer pointer) const
Returns (might cache) the given pointer to volatile pool.
memory::EngineMemory * get_memory_manager() const
See Memory Manager.
Arguments for drop_volatiles()
Arguments for construct_root()