85 #include "stopwatch.h" 99 rc_t flush(
const lsn_t& lsn,
bool block =
true,
bool signal =
true,
bool* ret_flushed =
nullptr);
159 return lsn_t(pnum, 0);
203 : base_lsn(
lsn_t::null),
422 forward_scan(forward) {}
435 #endif // __LOG_CORE_H void flush_daemon()
Log-flush daemon driver.
Definition: log_core.cpp:1031
uint32_t _fetch_buf_last
Definition: log_core.h:178
long start_byte() const
Definition: log_core.h:254
rc_t flush_all(bool block=true)
Definition: log_core.h:101
Definition: log_storage.h:160
w_rc_t & get_last_rc()
Get the return code from the last next() call.
Definition: log_core.h:430
bool _should_group_commit(unsigned long write_size)
Definition: log_core.cpp:1088
long segsize() const
Definition: log_core.h:125
Definition: log_core.cpp:192
rc_t insert(logrec_t &r, lsn_t *l=nullptr)
Definition: log_core.cpp:896
One slot in ConsolidationArray.
Definition: log_carray.h:131
#define w_assert1(x)
Level 1 should not add significant extra time.
Definition: w_base.h:198
bool forward_scan
Definition: log_core.h:416
void shutdown()
Definition: log_core.cpp:371
lsn_t base_lsn
Definition: log_core.h:195
lintel::Atomic< bool > _flush_daemon_running
Definition: log_core.h:341
lsn_t get_oldest_active_lsn()
Definition: log_core.cpp:1389
PoorMansOldestLsnTracker * get_oldest_lsn_tracker()
Definition: log_core.h:152
lsn_t _durable_lsn
Definition: log_core.h:190
lsn_t curr_lsn() const
Definition: log_core.h:115
long base
Definition: log_core.h:197
lsn_t _fetch_buf_end
Definition: log_core.h:182
PoorMansOldestLsnTracker * _oldest_lsn_tracker
Definition: log_core.h:247
pthread_mutex_t _wait_flush_lock
Definition: log_core.h:329
rc_t _join_carray(CArraySlot *&info, long &pos, int32_t size)
Definition: log_core.cpp:829
log_i(log_core &l, const lsn_t &lsn, const bool forward=true)
start a scan of the given log a the given log sequence number.
Definition: log_core.h:419
const size_t CACHELINE_TATAS_PADDING
Definition: tatas.h:140
Definition: log_core.h:194
void verify() const
Definition: w_rc.h:554
long _start
Definition: log_core.h:253
bool directIO
Definition: log_core.h:384
Header file for lintel::Atomic class.
rc_t _leave_carray(CArraySlot *info, int32_t size)
Definition: log_core.cpp:876
void _copy_raw(CArraySlot *info, long &pos, const char *data, size_t size)
Definition: log_core.cpp:923
vector< char * > _fetch_buffers
Definition: log_core.h:174
lsn_t _flush_lsn
Definition: log_core.h:265
Start-up parameters for the storage engine. See OPTIONS.
Definition: sm_options.h:24
void _acquire_buffer_space(CArraySlot *info, long size)
Definition: log_core.cpp:537
Log-scan iterator.
Definition: log_core.h:394
Definition: log_core.h:87
log_core & log
Definition: log_core.h:410
Definition: log_core.cpp:178
rc_t flush(const lsn_t &lsn, bool block=true, bool signal=true, bool *ret_flushed=nullptr)
Definition: log_core.cpp:984
epoch(lsn_t l, long b, long s, long e)
Definition: log_core.h:208
stopwatch_t _group_commit_timer
Timer object to keep track of group commit timeout.
Definition: log_core.h:357
rc_t compensate(const lsn_t &orig_lsn, const lsn_t &undo_lsn)
Definition: log_core.cpp:1229
Definition: partition.h:69
Represents a transactional log record.
Definition: logrec.h:143
flush_daemon_thread_t * _flush_daemon
Definition: log_core.h:336
w_rc_t last_rc
Definition: log_core.h:414
bool fetch_direct(lsn_t lsn, logrec_t *&lr, lsn_t &prev_lsn)
Definition: log_core.cpp:350
unsigned get_page_img_compression()
Definition: log_core.h:162
Log Sequence Number. See Log Sequence Numbers (LSN).
Definition: lsn.h:243
const T max(const T x, const T y)
Definition: w_minmax.h:45
bool _waiting_for_flush
Definition: log_core.h:334
const size_t CACHELINE_MCS_PADDING
Definition: mcs_lock.h:200
void discard_fetch_buffers(partition_number_t recycled=std::numeric_limits< partition_number_t >::max())
Definition: log_core.cpp:1363
long _end
Definition: log_core.h:258
rc_t init()
Definition: log_core.cpp:500
epoch()
Definition: log_core.h:202
lsn_t _fetch_buf_begin
Definition: log_core.h:180
a timer object.
Definition: stopwatch.h:34
Definition: log_storage.h:84
lsn_t _curr_lsn
Definition: log_core.h:188
Return code for most functions and methods.
Definition: w_rc.h:87
ConsolidationArray * _carray
Definition: log_core.h:347
string make_log_name(partition_number_t pnum) const
Definition: log_storage.cpp:485
epoch _cur_epoch
Definition: log_core.h:227
long end_byte() const
Definition: log_core.h:259
Definition: log_core.h:250
epoch _old_epoch
Definition: log_core.h:229
pthread_cond_t _flush_cond
Definition: log_core.h:332
An MCS queuing spinlock.
Definition: mcs_lock.h:61
lsn_t flush_daemon_work(lsn_t old_mark)
Flush unflushed-portion of log buffer.
Definition: log_core.cpp:1116
log_storage * get_storage()
Definition: log_core.h:148
unsigned _page_img_compression
Definition: log_core.h:382
bool _update_epochs(CArraySlot *info)
Definition: log_core.cpp:772
epoch _buf_epoch
Definition: log_core.h:225
Definition: log_core.h:140
ticker_thread_t * _ticker
Definition: log_core.h:186
A test-and-test-and-set spinlock.
Definition: tatas.h:25
rc_t fetch(lsn_t &lsn, void *buf, lsn_t *nxt, const bool forward)
Definition: log_core.cpp:228
The implementation class of Consolidation Array.
Definition: log_carray.h:203
long _segsize
Definition: log_core.h:263
long start
Definition: log_core.h:199
lsn_t _copy_to_buffer(logrec_t &rec, long pos, long size, CArraySlot *info)
Definition: log_core.cpp:760
long _group_commit_timeout
Definition: log_core.h:365
uint32_t _fetch_buf_first
Definition: log_core.h:176
log_storage * _storage
Definition: log_core.h:245
void start_flush_daemon()
Definition: log_core.cpp:206
mcs_lock _insert_lock
Definition: log_core.h:324
smlevel_0::partition_number_t partition_number_t
Definition: log_storage.h:72
Definition: log_core.cpp:92
lsn_t cursor
Definition: log_core.h:412
lsn_t durable_lsn() const
Definition: log_core.h:119
shared_ptr< fetch_buffer_loader_t > _fetch_buf_loader
Definition: log_core.h:184
rc_t load_fetch_buffers()
Definition: log_core.cpp:1299
tatas_lock _comp_lock
Definition: log_core.h:320
static const std::string IMPL_NAME
Definition: log_core.h:95
long end
Definition: log_core.h:200
virtual ~log_core()
Definition: log_core.cpp:515
char * _buf
Definition: log_core.h:168
lintel::Atomic< bool > _shutting_down
Definition: log_core.h:339
tatas_lock _flush_lock
Definition: log_core.h:317
~log_i()
Definition: log_core.h:425
epoch volatile * vthis()
Definition: log_core.h:216
This class is a strawman implementation of tracking the oldest active transaction in the system...
Definition: log_lsn_tracker.h:24
size_t _group_commit_size
Definition: log_core.h:354
log_core(const sm_options &)
Definition: log_core.cpp:404
rc_t truncate()
Definition: log_core.cpp:734
pthread_cond_t _wait_cond
Definition: log_core.h:331
string make_log_name(uint32_t p)
Definition: log_core.h:144
static lsn_t first_lsn(uint32_t pnum)
Definition: log_core.h:158
const size_t CACHELINE_SIZE
CPU Cache line size in bytes.
Definition: w_defines.h:183