18 #ifndef FOEDUS_THREAD_THREAD_REF_HPP_
19 #define FOEDUS_THREAD_THREAD_REF_HPP_
55 const void* task_input,
56 uint64_t task_input_size,
89 void* task_input_memory_;
90 void* task_output_memory_;
132 std::vector<ThreadRef> threads_;
138 #endif // FOEDUS_THREAD_THREAD_REF_HPP_
ThreadRef * get_thread(ThreadLocalOrdinal ordinal)
Returns Thread object for the given ordinal in this group.
uint64_t get_snapshot_cache_hits() const
uint8_t ThreadLocalOrdinal
Typedef for a local ID of Thread (core), which is NOT unique across NUMA nodes.
A view of Thread group object for other SOCs and master engine.
void get_mcs_rw_blocks(xct::McsRwExtendedBlock **out) const
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Typedefs of ID types used in thread package.
Engine * get_engine() const
xct::McsRwAsyncMapping * get_mcs_rw_async_mapping(xct::UniversalLockId lock_id)
Shared data of ThreadPimpl.
Forward declarations of classes in transaction package.
Forward declarations of classes in root package.
Reader-writer (RW) MCS lock classes.
Engine * get_engine() const
ThreadRef get_thread_ref(ThreadLocalOrdinal ordinal) const
Returns a copied instance.
A user session running on an impersonated thread.
ThreadGroupId get_numa_node() const
friend std::ostream & operator<<(std::ostream &o, const ThreadRef &v)
uintptr_t UniversalLockId
Universally ordered identifier of each lock.
friend std::ostream & operator<<(std::ostream &o, const ThreadGroupRef &v)
void get_mcs_rw_blocks(xct::McsRwSimpleBlock **out) const
void * get_task_input_memory() const
Pre-allocated MCS block for WW-locks.
Definitions of IDs in this package and a few related constant values.
#define CXX11_FINAL
Used in public headers in place of "final" of C++11.
Pre-allocated MCS block for extended version of RW-locks.
Database engine object that holds all resources and provides APIs.
Typedefs of ID types used in procedure package.
A view of Thread object for other SOCs and master engine.
ThreadControlBlock * get_control_block() const
ThreadGroupId decompose_numa_node(ThreadId global_id)
Extracts NUMA node ID from the given globally unique ID of Thread (core).
bool try_impersonate(const proc::ProcName &proc_name, const void *task_input, uint64_t task_input_size, ImpersonateSession *session)
Conditionally try to occupy this thread, or impersonate.
uint16_t ThreadId
Typedef for a global ID of Thread (core), which is unique across NUMA nodes.
xct::McsRwExtendedBlock * get_mcs_rw_extended_blocks() const
ThreadGroupId get_group_id() const
Epoch get_min_in_commit_epoch() const
Returns the oldest in-commit epoch of the threads in this group.
Epoch get_in_commit_epoch() const
void * get_task_output_memory() const
xct::McsRwSimpleBlock * get_mcs_rw_simple_blocks() const
Forward declarations of classes in thread package.
uint64_t get_snapshot_cache_misses() const
uint8_t ThreadGroupId
Typedef for an ID of ThreadGroup (NUMA node).
xct::McsWwBlock * get_mcs_ww_blocks() const
ThreadId get_thread_id() const
void reset_snapshot_cache_counts() const