libfoedus-core
FOEDUS Core Library

System On Chip (SOC) and interprocess communication (IPC). More...

Detailed Description

System On Chip (SOC) and interprocess communication (IPC).

This module is special in many ways. SOC might be spawned as a local or remote process, so we first instantiate SOCs before everything else with a special manner (partially because linux's tricky process handling semantics).

See also
foedus::EngineType
Collaboration diagram for SOC and IPC:

Files

file  fwd.hpp
 Forward declarations of classes in SOC package.
 
file  soc_id.hpp
 Typedefs of ID types used in SOC package.
 

Classes

class  foedus::soc::SharedCond
 A conditional variable that can be placed in shared memory and used from multiple processes. More...
 
struct  foedus::soc::MasterEngineStatus
 Current status of master engine. More...
 
struct  foedus::soc::ChildEngineStatus
 Current status of a child SOC engine. More...
 
struct  foedus::soc::GlobalMemoryAnchors
 Just a set of pointers within global_memory_ for ease of use. More...
 
struct  foedus::soc::NodeMemoryAnchors
 Same as GlobalMemoryAnchors except this is for node_memories_. More...
 
struct  foedus::soc::ThreadMemoryAnchors
 Part of NodeMemoryAnchors for each thread. More...
 
class  foedus::soc::SharedMemoryRepo
 Repository of all shared memory in one FOEDUS instance. More...
 
class  foedus::soc::SharedMutex
 A mutex that can be placed in shared memory and used from multiple processes. More...
 
class  foedus::soc::SharedMutexScope
 Auto-lock scope object for SharedMutex. More...
 
class  foedus::soc::SharedPolling
 A polling-wait mechanism that can be placed in shared memory and used from multiple processes. More...
 
class  foedus::soc::SharedRendezvous
 A one-time single-producer multiple-consumer event synchronization in shared memory for multiple processes. More...
 
class  foedus::soc::SocManager
 SOC manager, which maintains the shared resource across SOCs and, if this engine is a master engine, manages child SOCs. More...
 
class  foedus::soc::SocManagerPimpl
 Pimpl object of SocManager. More...
 
struct  foedus::soc::SocOptions
 Set of options for SOC manager. More...
 

Typedefs

typedef uint16_t foedus::soc::SocId
 Represents an ID of an SOC, or NUMA node. More...
 
typedef uint64_t foedus::soc::Upid
 Universal (or Unique) ID of a process. More...
 

Variables

const uint16_t foedus::soc::kMaxSocs = 256U
 Maximum number of SOCs. More...
 

Typedef Documentation

typedef uint16_t foedus::soc::SocId

Represents an ID of an SOC, or NUMA node.

Definition at line 41 of file soc_id.hpp.

typedef uint64_t foedus::soc::Upid

Universal (or Unique) ID of a process.

This is so far what getpid() returns, but might be something else when we support remote nodes.

Definition at line 48 of file soc_id.hpp.

Variable Documentation

const uint16_t foedus::soc::kMaxSocs = 256U

Maximum number of SOCs.

Definition at line 35 of file soc_id.hpp.

Referenced by foedus::soc::SharedMemoryRepo::allocate_shared_memories().