156 const int asf,
const char* adatadir)
171 virtual void work() = 0;
199 template <
class TableDesc>
200 class index_loading_smt_t :
public thread_t 208 table_manager* _pmanager;
216 table_tuple* _ptuple;
219 bool _has_to_consume;
224 index_loading_smt_t(std::string tname,
ss_m* assm, table_manager* aptable_manager,
226 :
thread_t(tname), _pssm(assm), _pmanager(aptable_manager),
227 _pindex(apindex), _t_count(0), _ptuple(aptuple),
228 _has_to_consume(
false), _start(
false), _finish(
false)
236 ~index_loading_smt_t()
239 inline int rv() {
return (_rv); }
246 char* pdest =
nullptr;
250 bool cons_happened =
false;
273 if (_has_to_consume) {
282 key_sz = _pmanager->format_key(_pindex, _ptuple, *_ptuple->_rep);
286 vec_t(pdest, key_sz),
287 vec_t(&(_ptuple->_rid),
sizeof(rid_t))));
289 _has_to_consume =
false;
290 cons_happened =
true;
300 if (_t_count >= mark) {
303 if ((_t_count % 100000) == 0) {
305 _pindex->
name(), _t_count);
309 _pindex->
name(), _t_count);
315 cons_happened =
false;
354 int count() {
return (_t_count); }
369 class table_checking_smt_t :
public thread_t 378 table_checking_smt_t(std::string tname,
ss_m* pssm,
380 :
thread_t(tname), _pssm(pssm), _ptable(atable)
386 virtual ~table_checking_smt_t() { }
389 virtual void work()=0;
394 template <
class TableDesc>
395 class table_checking_smt_impl :
public table_checking_smt_t
402 table_checking_smt_impl(std::string tname,
ss_m* pssm,
405 : table_checking_smt_t(tname, pssm, atable), _pmanager(amanager)
410 ~table_checking_smt_impl() { }
439 class close_smt_t :
public thread_t {
446 close_smt_t(
ShoreEnv* env, std::string tname)
458 inline int retval() {
return (_rv); }
481 dump_smt_t(
ShoreEnv* env, std::string tname)
493 inline int retval() {
return (_rv); }
525 #endif // __DAEMONS_H crasher_t(int t)
Definition: daemons.h:123
vector< xct_t * > * _toabort
Definition: daemons.h:514
w_error_codes err_num() const
Definition: w_rc.h:510
bool _active
Definition: daemons.h:92
Definition: table_desc.h:122
Definition: daemons.h:508
const w_rc_t RCOK
Definition: w_rc.h:239
bool is_error() const
True if this return code is not RCOK or equivalent. This must be called for every w_rc_t before destr...
Definition: w_rc.h:505
static rc_t begin_xct(int timeout=timeout_t::WAIT_SPECIFIED_BY_THREAD)
Begin a transaction.
Definition: sm.cpp:522
Definition: latches.h:461
static rc_t create_assoc(StoreID stid, const w_keystr_t &key, const vec_t &el)
Create an entry in a B+-Tree index.
Definition: smindex.cpp:52
int _timeout
Definition: daemons.h:120
int _rv
Definition: daemons.h:55
table_desc_t * table()
Definition: daemons.h:177
Definition: daemons.h:139
int _rv
Definition: daemons.h:150
const char * _datadir
Definition: daemons.h:148
Definition: kits_thread.h:134
static rc_t abort_xct(sm_stats_t *&stats)
Abort an instrumented transaction and get its statistics.
Definition: sm.cpp:583
: Definition of a Shore environment (database)
static rc_t commit_xct(bool lazy=false, lsn_t *plastlsn=nullptr)
Commit a transaction.
Definition: sm.cpp:567
#define TRACE_TRX_FLOW
Definition: trace_types.h:55
void set_active(bool active)
Definition: daemons.h:100
This is the SHORE Storage Manager API.
Definition: sm.h:405
Definition: daemons.h:118
ShoreEnv * _env
Definition: daemons.h:53
#define TRACE_DEBUG
Definition: trace_types.h:58
checkpointer_t(ShoreEnv *env)
Definition: daemons.h:95
ss_m * _pssm
Definition: daemons.h:142
db_init_smt_t(std::string tname, ShoreEnv *db)
Definition: daemons.cpp:43
void work()
Definition: daemons.cpp:51
thread_t(const std::string &name)
Definition: kits_thread.cpp:93
Return code for most functions and methods.
Definition: w_rc.h:87
~db_init_smt_t()
Definition: daemons.cpp:49
Definition: index_desc.h:60
StoreID & stid()
Definition: index_desc.h:117
An MCS queuing spinlock.
Definition: mcs_lock.h:61
table_desc_t * _ptable
Definition: daemons.h:144
const int SHORE_NUM_OF_RETRIES
Definition: shore_env.h:52
ShoreEnv * _env
Definition: daemons.h:90
table_loading_smt_t(std::string tname, ss_m *assm, table_desc_t *atable, const int asf, const char *adatadir)
Definition: daemons.h:154
#define TRACE
Other modules in our program use this macro for reporting. We can use preprocessor macros like FILE a...
Definition: trace.h:91
Vector: a set of {pointer,length} pairs for memory manipulation.
Definition: vec_t.h:313
ShoreEnv * _env
Definition: daemons.h:510
int rv()
Definition: daemons.h:173
#define W_DO(x)
Call a method or function x. This macro is the normal idiom for calling a method or function...
Definition: w_rc.h:304
: Base class for tables stored in Shore
string name() const
Definition: index_desc.h:101
#define TRACE_ALWAYS
Definition: trace_types.h:41
virtual ~table_loading_smt_t()
Definition: daemons.h:168
Definition: shore_env.h:349
uint _aborted
Definition: daemons.h:516
const int _sf
Definition: daemons.h:146
int rv()
Definition: daemons.cpp:67
Definition: table_man.h:117
const unsigned int COMMIT_ACTION_COUNT
Definition: file_desc.h:51