libfoedus-core
FOEDUS Core Library
foedus::EnginePimpl Class Referencefinal

Pimpl object of Engine. More...

Detailed Description

Pimpl object of Engine.

A private pimpl object for Engine. Do not include this header from a client program unless you know what you are doing.

Definition at line 52 of file engine_pimpl.hpp.

#include <engine_pimpl.hpp>

Inheritance diagram for foedus::EnginePimpl:
Collaboration diagram for foedus::EnginePimpl:

Classes

struct  ModulePtr
 pair of module pointer and its type. More...
 

Public Member Functions

 EnginePimpl ()=delete
 
 EnginePimpl (Engine *engine, const EngineOptions &options)
 
 EnginePimpl (Engine *engine, EngineType type, soc::Upid master_upid, Eid master_eid, soc::SocId soc_id)
 
bool is_master () const
 
ErrorStack initialize_once () override
 
ErrorStack initialize_modules ()
 
ErrorStack uninitialize_once () override
 
ErrorStack check_valid_options ()
 
void on_module_initialized (ModuleType module)
 Called whenever each module has completed its initialization. More...
 
void on_module_uninitialized (ModuleType module)
 Called whenever each module has completed its uninitialization. More...
 
std::vector< ModulePtrget_modules ()
 Returns in initialization order. More...
 
std::string describe_short () const
 
- Public Member Functions inherited from foedus::DefaultInitializable
 DefaultInitializable ()
 
virtual ~DefaultInitializable ()
 
 DefaultInitializable (const DefaultInitializable &)=delete
 
DefaultInitializableoperator= (const DefaultInitializable &)=delete
 
ErrorStack initialize () override final
 Typical implementation of Initializable::initialize() that provides initialize-once semantics. More...
 
ErrorStack uninitialize () override final
 Typical implementation of Initializable::uninitialize() that provides uninitialize-once semantics. More...
 
bool is_initialized () const override final
 Returns whether the object has been already initialized or not. More...
 
- Public Member Functions inherited from foedus::Initializable
virtual ~Initializable ()
 

Public Attributes

EngineOptions options_
 Options given at boot time. More...
 
Engine *const engine_
 Pointer to the enclosing object. More...
 
const EngineType type_
 
const soc::Upid master_upid_
 
const Eid master_eid_
 
const soc::SocId soc_id_
 
soc::SocManager soc_manager_
 SOC manager. More...
 
debugging::DebuggingSupports debug_
 Debugging supports. More...
 
proc::ProcManager proc_manager_
 
memory::EngineMemory memory_manager_
 
savepoint::SavepointManager savepoint_manager_
 
thread::ThreadPool thread_pool_
 
log::LogManager log_manager_
 
snapshot::SnapshotManager snapshot_manager_
 
cache::CacheManager cache_manager_
 
storage::StorageManager storage_manager_
 
xct::XctManager xct_manager_
 
restart::RestartManager restart_manager_
 

Constructor & Destructor Documentation

foedus::EnginePimpl::EnginePimpl ( )
delete
foedus::EnginePimpl::EnginePimpl ( Engine engine,
const EngineOptions options 
)

Definition at line 40 of file engine_pimpl.cpp.

40  :
41  options_(options),
42  engine_(engine),
43  type_(kMaster),
44  master_upid_(::getpid()),
45  // simply the pointer value of Engine object as identifier.
46  master_eid_(reinterpret_cast<uintptr_t>(reinterpret_cast<void*>(engine))),
47  soc_id_(0),
48  // although we give a pointer to engine, these objects must not access it yet.
49  // even the Engine object has not set the pimpl pointer.
50  soc_manager_(engine),
51  debug_(engine),
52  proc_manager_(engine),
53  memory_manager_(engine),
54  savepoint_manager_(engine),
55  thread_pool_(engine),
56  log_manager_(engine),
57  snapshot_manager_(engine),
58  cache_manager_(engine),
59  storage_manager_(engine),
60  xct_manager_(engine),
61  restart_manager_(engine) {
62 }
EngineOptions options_
Options given at boot time.
debugging::DebuggingSupports debug_
Debugging supports.
storage::StorageManager storage_manager_
restart::RestartManager restart_manager_
soc::SocManager soc_manager_
SOC manager.
snapshot::SnapshotManager snapshot_manager_
proc::ProcManager proc_manager_
savepoint::SavepointManager savepoint_manager_
thread::ThreadPool thread_pool_
const EngineType type_
xct::XctManager xct_manager_
cache::CacheManager cache_manager_
const soc::SocId soc_id_
Engine *const engine_
Pointer to the enclosing object.
memory::EngineMemory memory_manager_
The central instance that launches child engines on each NUMA node (SOC).
Definition: engine_type.hpp:41
const soc::Upid master_upid_
log::LogManager log_manager_
foedus::EnginePimpl::EnginePimpl ( Engine engine,
EngineType  type,
soc::Upid  master_upid,
Eid  master_eid,
soc::SocId  soc_id 
)

Definition at line 63 of file engine_pimpl.cpp.

68  :
69  engine_(engine),
70  type_(type),
71  master_upid_(master_upid),
72  master_eid_(master_eid),
73  soc_id_(soc_id),
74  soc_manager_(engine),
75  debug_(engine),
76  proc_manager_(engine),
77  memory_manager_(engine),
78  savepoint_manager_(engine),
79  thread_pool_(engine),
80  log_manager_(engine),
81  snapshot_manager_(engine),
82  cache_manager_(engine),
83  storage_manager_(engine),
84  xct_manager_(engine),
85  restart_manager_(engine) {
86 }
debugging::DebuggingSupports debug_
Debugging supports.
storage::StorageManager storage_manager_
restart::RestartManager restart_manager_
soc::SocManager soc_manager_
SOC manager.
snapshot::SnapshotManager snapshot_manager_
proc::ProcManager proc_manager_
savepoint::SavepointManager savepoint_manager_
thread::ThreadPool thread_pool_
const EngineType type_
xct::XctManager xct_manager_
cache::CacheManager cache_manager_
const soc::SocId soc_id_
Engine *const engine_
Pointer to the enclosing object.
memory::EngineMemory memory_manager_
const soc::Upid master_upid_
log::LogManager log_manager_

Member Function Documentation

ErrorStack foedus::EnginePimpl::check_valid_options ( )

Definition at line 213 of file engine_pimpl.cpp.

References CHECK_ERROR, foedus::kRetOk, options_, and foedus::EngineOptions::prescreen().

Referenced by initialize_once().

213  {
214  CHECK_ERROR(options_.prescreen(&std::cerr));
215  CHECK_ERROR(check_minimal_pool_size());
216  CHECK_ERROR(check_transparent_hugepage_setting());
217  return kRetOk;
218 }
EngineOptions options_
Options given at boot time.
ErrorStack prescreen(std::ostream *details_out) const
Checks the machine environment and raises as many errors as possible before the engine starts up...
#define CHECK_ERROR(x)
This macro calls x and checks its returned value.
const ErrorStack kRetOk
Normal return value for no-error case.

Here is the call graph for this function:

Here is the caller graph for this function:

std::string foedus::EnginePimpl::describe_short ( ) const

Definition at line 88 of file engine_pimpl.cpp.

References foedus::kMaster, soc_id_, and type_.

Referenced by foedus::Engine::describe_short(), initialize_once(), and uninitialize_once().

88  {
89  if (type_ == kMaster) {
90  return "MASTER";
91  }
92  std::string ret("CHILD-");
93  return ret + std::to_string(soc_id_);
94 }
const EngineType type_
const soc::SocId soc_id_
The central instance that launches child engines on each NUMA node (SOC).
Definition: engine_type.hpp:41

Here is the caller graph for this function:

std::vector< ModulePtr > foedus::EnginePimpl::get_modules ( )
inline

Returns in initialization order.

Definition at line 127 of file engine_pimpl.hpp.

References foedus::kCache, foedus::kDebug, foedus::kLog, foedus::kMemory, foedus::kProc, foedus::kRestart, foedus::kSavepoint, foedus::kSnapshot, foedus::kStorage, foedus::kThread, and foedus::kXct.

Referenced by initialize_modules(), and uninitialize_once().

127  {
128  std::vector< ModulePtr > modules;
129  // modules.push_back(ModulePtr(&soc_manager_, kSoc)); SOC Manager is specially inited/uninited
130  modules.push_back(ModulePtr(&debug_, kDebug));
131  modules.push_back(ModulePtr(&proc_manager_, kProc));
132  modules.push_back(ModulePtr(&memory_manager_, kMemory));
133  modules.push_back(ModulePtr(&savepoint_manager_, kSavepoint));
134  modules.push_back(ModulePtr(&thread_pool_, kThread));
135  modules.push_back(ModulePtr(&log_manager_, kLog));
136  modules.push_back(ModulePtr(&snapshot_manager_, kSnapshot));
137  modules.push_back(ModulePtr(&cache_manager_, kCache));
138  modules.push_back(ModulePtr(&storage_manager_, kStorage));
139  modules.push_back(ModulePtr(&xct_manager_, kXct));
140  modules.push_back(ModulePtr(&restart_manager_, kRestart));
141  return modules;
142  }
debugging::DebuggingSupports debug_
Debugging supports.
storage::StorageManager storage_manager_
restart::RestartManager restart_manager_
snapshot::SnapshotManager snapshot_manager_
proc::ProcManager proc_manager_
savepoint::SavepointManager savepoint_manager_
thread::ThreadPool thread_pool_
xct::XctManager xct_manager_
cache::CacheManager cache_manager_
memory::EngineMemory memory_manager_
log::LogManager log_manager_

Here is the caller graph for this function:

ErrorStack foedus::EnginePimpl::initialize_modules ( )

Definition at line 162 of file engine_pimpl.cpp.

References ASSERT_ND, CHECK_ERROR, get_modules(), foedus::soc::SocManager::is_initialized(), is_master(), foedus::kRetOk, on_module_initialized(), soc_manager_, foedus::soc::SocManager::wait_for_children_module(), and foedus::soc::SocManager::wait_for_master_module().

Referenced by initialize_once().

162  {
164  for (ModulePtr& module : get_modules()) {
165  // During initialization, SOCs wait for master's initialization before their init.
166  if (!is_master()) {
167  CHECK_ERROR(soc_manager_.wait_for_master_module(true, module.type_));
168  }
169  CHECK_ERROR(module.ptr_->initialize());
170  on_module_initialized(module.type_);
171  // Then master waits for SOCs before moving on to next module.
172  if (is_master()) {
174  }
175  }
176  return kRetOk;
177 }
ErrorStack wait_for_children_module(bool init, ModuleType module)
Wait for other engines to finish init/uninit the module.
Definition: soc_manager.cpp:57
void on_module_initialized(ModuleType module)
Called whenever each module has completed its initialization.
bool is_master() const
ErrorStack wait_for_master_module(bool init, ModuleType module)
Wait for master engine to finish init/uninit the module.
Definition: soc_manager.cpp:61
soc::SocManager soc_manager_
SOC manager.
std::vector< ModulePtr > get_modules()
Returns in initialization order.
bool is_initialized() const override
Returns whether the object has been already initialized or not.
Definition: soc_manager.cpp:35
#define CHECK_ERROR(x)
This macro calls x and checks its returned value.
const ErrorStack kRetOk
Normal return value for no-error case.
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...
Definition: assert_nd.hpp:72

Here is the call graph for this function:

Here is the caller graph for this function:

ErrorStack foedus::EnginePimpl::initialize_once ( )
overridevirtual

Implements foedus::DefaultInitializable.

Definition at line 96 of file engine_pimpl.cpp.

References foedus::soc::SharedMemoryRepo::change_master_status(), CHECK_ERROR, check_valid_options(), foedus::soc::NodeMemoryAnchors::child_status_memory_, describe_short(), engine_, ERROR_STACK, foedus::soc::SharedMemoryRepo::get_node_memory_anchors(), foedus::Engine::get_options(), foedus::soc::SocManager::get_shared_memory_repo(), foedus::thread::ThreadOptions::group_count_, foedus::soc::SocManager::initialize(), initialize_modules(), foedus::ErrorStack::is_error(), is_master(), foedus::kErrorCodeSocChildInitFailed, foedus::soc::ChildEngineStatus::kFatalError, foedus::kRetOk, foedus::soc::MasterEngineStatus::kRunning, foedus::soc::ChildEngineStatus::kRunning, foedus::kSoc, foedus::assorted::memory_fence_acq_rel(), on_module_initialized(), foedus::soc::SocManager::report_engine_fatal_error(), soc_manager_, foedus::fs::status(), foedus::soc::ChildEngineStatus::status_code_, and foedus::EngineOptions::thread_.

96  {
97  if (is_master()) {
99  }
100  // SOC manager is special. We must initialize it first.
103  ErrorStack module_initialize_error = initialize_modules();
104  if (module_initialize_error.is_error()) {
105  LOG(ERROR) << "*******************************************************************************";
106  LOG(ERROR) << "*** ERROR while module initailization in " << describe_short() << ". "
107  << module_initialize_error << "";
108  LOG(ERROR) << "*******************************************************************************";
110  CHECK_ERROR(module_initialize_error);
111  }
112 
113  // The following can assume SOC manager is already initialized
114  if (is_master()) {
115  soc::SharedMemoryRepo* repo = soc_manager_.get_shared_memory_repo();
117  // wait for children's kRunning status
118  // TASK(Hideaki) should be a function in soc manager
119  uint16_t soc_count = engine_->get_options().thread_.group_count_;
120  while (true) {
121  std::this_thread::sleep_for(std::chrono::milliseconds(5));
123  bool error_happened = false;
124  bool remaining = false;
125  for (uint16_t node = 0; node < soc_count; ++node) {
126  soc::ChildEngineStatus* status = repo->get_node_memory_anchors(node)->child_status_memory_;
127  if (status->status_code_ == soc::ChildEngineStatus::kFatalError) {
128  error_happened = true;
129  break;
130  }
131  if (status->status_code_ == soc::ChildEngineStatus::kRunning) {
132  continue; // ok
133  }
134  remaining = true;
135  }
136 
137  if (error_happened) {
138  LOG(ERROR) << "[FOEDUS] ERROR! error while waiting child kRunning";
141  } else if (!remaining) {
142  break;
143  }
144  }
145  }
146  LOG(INFO) << "================================================================================";
147  LOG(INFO) << "================== FOEDUS ENGINE ("
148  << describe_short() << ") INITIALIZATION DONE ===========";
149  LOG(INFO) << "================================================================================";
150 
151  // In a few places, we check if we are running under valgrind and, if so, turn off
152  // optimizations valgrind can't handle (eg hugepages).
153  bool running_on_valgrind = RUNNING_ON_VALGRIND;
154  if (running_on_valgrind) {
155  LOG(INFO) << "=============== ATTENTION: VALGRIND MODE! ==================";
156  LOG(INFO) << "This Engine is running under valgrind, which disables several optimizations";
157  LOG(INFO) << "If you see this message while usual execution, something is wrong.";
158  LOG(INFO) << "=============== ATTENTION: VALGRIND MODE! ==================";
159  }
160  return kRetOk;
161 }
ErrorStack initialize() override
Acquires resources in this object, usually called right after constructor.
Definition: soc_manager.cpp:34
void change_master_status(MasterEngineStatus::StatusCode new_status)
void on_module_initialized(ModuleType module)
Called whenever each module has completed its initialization.
#define ERROR_STACK(e)
Instantiates ErrorStack with the given foedus::error_code, creating an error stack with the current f...
ErrorStack check_valid_options()
bool is_master() const
void report_engine_fatal_error()
Announce fatal error state of this (either master or child) engine if possible.
Definition: soc_manager.cpp:64
FileStatus status(const Path &p)
Returns the status of the file.
Definition: filesystem.cpp:45
soc::SocManager soc_manager_
SOC manager.
0x0C0B : "SOC : Child SOC failed to initialize a module." .
Definition: error_code.hpp:230
const EngineOptions & get_options() const
Definition: engine.cpp:39
std::string describe_short() const
Done all initialization and running transactions.
Engine *const engine_
Pointer to the enclosing object.
uint16_t group_count_
Number of ThreadGroup in the engine.
thread::ThreadOptions thread_
#define CHECK_ERROR(x)
This macro calls x and checks its returned value.
const ErrorStack kRetOk
Normal return value for no-error case.
ErrorStack initialize_modules()
Done all initialization and running transactions.
The child engine observed some unrecoverable error and has exit.
SharedMemoryRepo * get_shared_memory_repo()
Returns the shared memories maintained across SOCs.
Definition: soc_manager.cpp:38
void memory_fence_acq_rel()
Equivalent to std::atomic_thread_fence(std::memory_order_acq_rel).

Here is the call graph for this function:

bool foedus::EnginePimpl::is_master ( ) const
inline

Definition at line 71 of file engine_pimpl.hpp.

References foedus::kMaster, and type_.

Referenced by initialize_modules(), initialize_once(), on_module_initialized(), on_module_uninitialized(), and uninitialize_once().

71 { return type_ == kMaster; }
const EngineType type_
The central instance that launches child engines on each NUMA node (SOC).
Definition: engine_type.hpp:41

Here is the caller graph for this function:

void foedus::EnginePimpl::on_module_initialized ( ModuleType  module)

Called whenever each module has completed its initialization.

Definition at line 261 of file engine_pimpl.cpp.

References foedus::soc::MasterEngineStatus::change_init_atomic(), foedus::soc::ChildEngineStatus::change_init_atomic(), foedus::soc::NodeMemoryAnchors::child_status_memory_, foedus::soc::SharedMemoryRepo::get_global_memory_anchors(), foedus::soc::SharedMemoryRepo::get_node_memory_anchors(), foedus::soc::SocManager::get_shared_memory_repo(), is_master(), foedus::soc::GlobalMemoryAnchors::master_status_memory_, soc_id_, and soc_manager_.

Referenced by initialize_modules(), and initialize_once().

261  {
262  soc::SharedMemoryRepo* repo = soc_manager_.get_shared_memory_repo();
263  if (is_master()) {
265  } else {
266  repo->get_node_memory_anchors(soc_id_)->child_status_memory_->change_init_atomic(module);
267  }
268 }
GlobalMemoryAnchors * get_global_memory_anchors()
bool is_master() const
soc::SocManager soc_manager_
SOC manager.
const soc::SocId soc_id_
void change_init_atomic(ModuleType value)
MasterEngineStatus * master_status_memory_
This tiny piece of memory contains the current status of the master engine and its synchronization me...
SharedMemoryRepo * get_shared_memory_repo()
Returns the shared memories maintained across SOCs.
Definition: soc_manager.cpp:38

Here is the call graph for this function:

Here is the caller graph for this function:

void foedus::EnginePimpl::on_module_uninitialized ( ModuleType  module)

Called whenever each module has completed its uninitialization.

Definition at line 270 of file engine_pimpl.cpp.

References foedus::soc::MasterEngineStatus::change_uninit_atomic(), foedus::soc::ChildEngineStatus::change_uninit_atomic(), foedus::soc::NodeMemoryAnchors::child_status_memory_, foedus::soc::SharedMemoryRepo::get_global_memory_anchors(), foedus::soc::SharedMemoryRepo::get_node_memory_anchors(), foedus::soc::SocManager::get_shared_memory_repo(), is_master(), foedus::soc::GlobalMemoryAnchors::master_status_memory_, soc_id_, and soc_manager_.

Referenced by uninitialize_once().

270  {
271  soc::SharedMemoryRepo* repo = soc_manager_.get_shared_memory_repo();
272  if (is_master()) {
274  } else {
275  repo->get_node_memory_anchors(soc_id_)->child_status_memory_->change_uninit_atomic(module);
276  }
277 }
GlobalMemoryAnchors * get_global_memory_anchors()
bool is_master() const
soc::SocManager soc_manager_
SOC manager.
const soc::SocId soc_id_
MasterEngineStatus * master_status_memory_
This tiny piece of memory contains the current status of the master engine and its synchronization me...
void change_uninit_atomic(ModuleType value)
SharedMemoryRepo * get_shared_memory_repo()
Returns the shared memories maintained across SOCs.
Definition: soc_manager.cpp:38

Here is the call graph for this function:

Here is the caller graph for this function:

ErrorStack foedus::EnginePimpl::uninitialize_once ( )
overridevirtual

Implements foedus::DefaultInitializable.

Definition at line 178 of file engine_pimpl.cpp.

References foedus::soc::SharedMemoryRepo::change_master_status(), describe_short(), foedus::ErrorStackBatch::emprace_back(), get_modules(), foedus::soc::SocManager::get_shared_memory_repo(), foedus::soc::SocManager::is_initialized(), is_master(), foedus::soc::MasterEngineStatus::kWaitingForChildTerminate, on_module_uninitialized(), soc_manager_, SUMMARIZE_ERROR_BATCH, foedus::soc::SocManager::uninitialize(), foedus::soc::SocManager::wait_for_children_module(), and foedus::soc::SocManager::wait_for_master_module().

178  {
179  LOG(INFO) << "================================================================================";
180  LOG(INFO) << "=================== FOEDUS ENGINE ("
181  << describe_short() << ") EXITTING...... ================";
182  LOG(INFO) << "================================================================================";
186  }
187  ErrorStackBatch batch;
188  // uninit in reverse order of initialization
189  auto modules = get_modules();
190  std::reverse(modules.begin(), modules.end());
191  for (ModulePtr& module : modules) {
192  if (!module.ptr_->is_initialized()) {
193  continue;
194  }
195  // During uninitialization, master waits for SOCs' uninitialization before its uninit.
196  if (is_master()) {
197  batch.emprace_back(soc_manager_.wait_for_children_module(false, module.type_));
198  }
199  batch.emprace_back(module.ptr_->uninitialize());
200  on_module_uninitialized(module.type_);
201  // Then SOCs wait for master before moving on to next module.
202  if (!is_master()) {
203  batch.emprace_back(soc_manager_.wait_for_master_module(false, module.type_));
204  }
205  }
206 
207  // SOC manager is special. We must uninitialize it at last.
208  batch.emprace_back(soc_manager_.uninitialize());
209  // after that, we can't even set status. shared memory has been detached.
210  return SUMMARIZE_ERROR_BATCH(batch);
211 }
ErrorStack wait_for_children_module(bool init, ModuleType module)
Wait for other engines to finish init/uninit the module.
Definition: soc_manager.cpp:57
void change_master_status(MasterEngineStatus::StatusCode new_status)
void on_module_uninitialized(ModuleType module)
Called whenever each module has completed its uninitialization.
The master is waiting for child engines to terminate.
bool is_master() const
ErrorStack uninitialize() override
An idempotent method to release all resources of this object, if any.
Definition: soc_manager.cpp:36
ErrorStack wait_for_master_module(bool init, ModuleType module)
Wait for master engine to finish init/uninit the module.
Definition: soc_manager.cpp:61
soc::SocManager soc_manager_
SOC manager.
std::vector< ModulePtr > get_modules()
Returns in initialization order.
std::string describe_short() const
bool is_initialized() const override
Returns whether the object has been already initialized or not.
Definition: soc_manager.cpp:35
#define SUMMARIZE_ERROR_BATCH(x)
This macro calls ErrorStackBatch::summarize() with automatically provided parameters.
SharedMemoryRepo * get_shared_memory_repo()
Returns the shared memories maintained across SOCs.
Definition: soc_manager.cpp:38

Here is the call graph for this function:

Member Data Documentation

cache::CacheManager foedus::EnginePimpl::cache_manager_

Definition at line 121 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_cache_manager().

debugging::DebuggingSupports foedus::EnginePimpl::debug_

Debugging supports.

Attention
Because this module initializes/uninitializes basic debug logging support, EnginePimpl::initialize_once() must initialize it at the beginning, and EnginePimpl::uninitialize_once() must uninitialize it at the end. We should not use glog (except when we have to, in which case glog will give warnings) before and after that.

Definition at line 114 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_debug().

Engine* const foedus::EnginePimpl::engine_

Pointer to the enclosing object.

Few places would need it, but hold it in case.

Definition at line 86 of file engine_pimpl.hpp.

Referenced by initialize_once().

log::LogManager foedus::EnginePimpl::log_manager_
const Eid foedus::EnginePimpl::master_eid_

Definition at line 90 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_master_eid().

const soc::Upid foedus::EnginePimpl::master_upid_

Definition at line 89 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_master_upid().

memory::EngineMemory foedus::EnginePimpl::memory_manager_

Definition at line 116 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_memory_manager().

EngineOptions foedus::EnginePimpl::options_

Options given at boot time.

Immutable once launched

Definition at line 83 of file engine_pimpl.hpp.

Referenced by check_valid_options(), foedus::Engine::get_nonconst_options(), foedus::Engine::get_options(), and foedus::Engine::get_soc_count().

proc::ProcManager foedus::EnginePimpl::proc_manager_

Definition at line 115 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_proc_manager().

restart::RestartManager foedus::EnginePimpl::restart_manager_

Definition at line 124 of file engine_pimpl.hpp.

savepoint::SavepointManager foedus::EnginePimpl::savepoint_manager_
snapshot::SnapshotManager foedus::EnginePimpl::snapshot_manager_

Definition at line 120 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_snapshot_manager().

const soc::SocId foedus::EnginePimpl::soc_id_
soc::SocManager foedus::EnginePimpl::soc_manager_

SOC manager.

This is a quite special module that launches child SOC engines. We have to initialize this module before everything else, even before debug_ (glog 0.3.3 has an issue across fork(), see https://code.google.com/p/google-glog/issues/detail?id=101 https://code.google.com/p/google-glog/issues/detail?id=82 ).

Definition at line 105 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_soc_manager(), initialize_modules(), initialize_once(), on_module_initialized(), on_module_uninitialized(), and uninitialize_once().

storage::StorageManager foedus::EnginePimpl::storage_manager_

Definition at line 122 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_storage_manager().

thread::ThreadPool foedus::EnginePimpl::thread_pool_

Definition at line 118 of file engine_pimpl.hpp.

Referenced by foedus::Engine::get_thread_pool().


The documentation for this class was generated from the following files: