Zero  0.1.0
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
restart_thread_t Class Reference

#include <restart.h>

Inheritance diagram for restart_thread_t:
worker_thread_t thread_wrapper_t

Public Member Functions

 restart_thread_t (const sm_options &options)
 
virtual void do_work ()
 
void log_analysis ()
 
void redo_log_pass ()
 
void redo_page_pass ()
 
void undo_pass ()
 
chkpt_tget_chkpt ()
 
bool hasLogAnalysisFinished ()
 
PageID get_dirty_page_count () const
 
lsn_t get_dirty_page_emlsn (PageID pid) const
 
void checkpoint_dirty_pages (chkpt_t &chkpt) const
 
void add_dirty_page (PageID pid, lsn_t lsn)
 
void notify_archived_lsn (lsn_t lsn)
 
void notify_cleaned_lsn (lsn_t lsn)
 
bool isInstant ()
 
- Public Member Functions inherited from worker_thread_t
 worker_thread_t (int inverval_ms=-1)
 
virtual ~worker_thread_t ()
 
void wakeup (bool wait=false, int rounds_to_wait=-1)
 
void stop ()
 
void wait_for_round (long round=0)
 
long get_rounds_completed () const
 
bool is_busy () const
 
- Public Member Functions inherited from thread_wrapper_t
 thread_wrapper_t ()
 
virtual ~thread_wrapper_t ()
 
virtual void before_run ()
 
virtual void after_run ()
 
void spawn ()
 
void fork ()
 
void join ()
 

Static Public Member Functions

static void dump_page_lsn_chain (std::ostream &o, const PageID &pid, const lsn_t &max_lsn)
 Pretty-prints the content of log file to the given stream in a way we can easily debug single-page recovery. More...
 

Private Member Functions

void clear_chkpt ()
 
void _redo_log_with_pid (logrec_t &r, PageID page_updated, bool &redone)
 

Private Attributes

bool log_based
 
bool instantRestart
 
bool no_db_mode
 
bool write_elision
 
bool take_chkpt
 
chkpt_t chkpt
 
bool logAnalysisFinished
 
srwlock_t chkpt_mutex
 
lsn_t clean_lsn
 

Additional Inherited Members

- Protected Member Functions inherited from worker_thread_t
bool should_exit () const
 
void notify_one ()
 
void notify_all ()
 
void quit ()
 

Constructor & Destructor Documentation

§ restart_thread_t()

restart_thread_t::restart_thread_t ( const sm_options options)

Member Function Documentation

§ _redo_log_with_pid()

void restart_thread_t::_redo_log_with_pid ( logrec_t r,
PageID  page_updated,
bool &  redone 
)
private

§ add_dirty_page()

void restart_thread_t::add_dirty_page ( PageID  pid,
lsn_t  lsn 
)

§ checkpoint_dirty_pages()

void restart_thread_t::checkpoint_dirty_pages ( chkpt_t chkpt) const

§ clear_chkpt()

void restart_thread_t::clear_chkpt ( )
private

§ do_work()

void restart_thread_t::do_work ( )
virtual

Actual working method to be implemented by derived classes.

Implements worker_thread_t.

§ get_chkpt()

chkpt_t* restart_thread_t::get_chkpt ( )
inline

§ get_dirty_page_count()

PageID restart_thread_t::get_dirty_page_count ( ) const

§ get_dirty_page_emlsn()

lsn_t restart_thread_t::get_dirty_page_emlsn ( PageID  pid) const

§ hasLogAnalysisFinished()

bool restart_thread_t::hasLogAnalysisFinished ( )
inline

§ isInstant()

bool restart_thread_t::isInstant ( )
inline

§ log_analysis()

void restart_thread_t::log_analysis ( )

§ notify_archived_lsn()

void restart_thread_t::notify_archived_lsn ( lsn_t  lsn)

§ notify_cleaned_lsn()

void restart_thread_t::notify_cleaned_lsn ( lsn_t  lsn)

§ redo_log_pass()

void restart_thread_t::redo_log_pass ( )

§ redo_page_pass()

void restart_thread_t::redo_page_pass ( )

§ undo_pass()

void restart_thread_t::undo_pass ( )

Member Data Documentation

§ chkpt

chkpt_t restart_thread_t::chkpt
private

§ chkpt_mutex

srwlock_t restart_thread_t::chkpt_mutex
mutableprivate

§ clean_lsn

lsn_t restart_thread_t::clean_lsn
private

§ instantRestart

bool restart_thread_t::instantRestart
private

§ log_based

bool restart_thread_t::log_based
private

§ logAnalysisFinished

bool restart_thread_t::logAnalysisFinished
private

§ no_db_mode

bool restart_thread_t::no_db_mode
private

§ take_chkpt

bool restart_thread_t::take_chkpt
private

§ write_elision

bool restart_thread_t::write_elision
private

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