Zero  0.1.0
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
RestoreCoordinator< RestoreFunctor > Class Template Reference

Coordinator that synchronizes multi-threaded decentralized restore. More...

#include <restore.h>

Public Member Functions

 RestoreCoordinator (size_t segSize, size_t segCount, RestoreFunctor f, bool virgin_pages, bool on_demand=true, bool start_locked=false)
 
void set_lsns (lsn_t begin, lsn_t end)
 
void fetch (PageID pid)
 
bool tryBackgroundRestore (bool &done)
 
bool isPidRestored (PageID pid) const
 
bool allDone () const
 
void start ()
 

Private Types

using Ticket = std::shared_ptr< std::condition_variable >
 

Private Member Functions

Ticket getWaitingTicket (unsigned segment)
 
void doRestore (unsigned segment_begin, unsigned segment_end, Ticket ticket)
 

Private Attributes

const size_t _segment_size
 
std::mutex _mutex
 
std::unordered_map< unsigned, Ticket_waiting_table
 
std::unique_ptr< RestoreBitmap_bitmap
 
RestoreFunctor _restoreFunctor
 
const bool _virgin_pages
 
const bool _on_demand
 
const bool _start_locked
 
lsn_t _begin_lsn
 
lsn_t _end_lsn
 

Static Private Attributes

static constexpr size_t MaxRestorePages = 1024
 

Detailed Description

template<typename RestoreFunctor>
class RestoreCoordinator< RestoreFunctor >

Coordinator that synchronizes multi-threaded decentralized restore.

Member Typedef Documentation

§ Ticket

template<typename RestoreFunctor >
using RestoreCoordinator< RestoreFunctor >::Ticket = std::shared_ptr<std::condition_variable>
private

Constructor & Destructor Documentation

§ RestoreCoordinator()

template<typename RestoreFunctor >
RestoreCoordinator< RestoreFunctor >::RestoreCoordinator ( size_t  segSize,
size_t  segCount,
RestoreFunctor  f,
bool  virgin_pages,
bool  on_demand = true,
bool  start_locked = false 
)
inline

Member Function Documentation

§ allDone()

template<typename RestoreFunctor >
bool RestoreCoordinator< RestoreFunctor >::allDone ( ) const
inline

§ doRestore()

template<typename RestoreFunctor >
void RestoreCoordinator< RestoreFunctor >::doRestore ( unsigned  segment_begin,
unsigned  segment_end,
Ticket  ticket 
)
inlineprivate

§ fetch()

template<typename RestoreFunctor >
void RestoreCoordinator< RestoreFunctor >::fetch ( PageID  pid)
inline

§ getWaitingTicket()

template<typename RestoreFunctor >
Ticket RestoreCoordinator< RestoreFunctor >::getWaitingTicket ( unsigned  segment)
inlineprivate

§ isPidRestored()

template<typename RestoreFunctor >
bool RestoreCoordinator< RestoreFunctor >::isPidRestored ( PageID  pid) const
inline

§ set_lsns()

template<typename RestoreFunctor >
void RestoreCoordinator< RestoreFunctor >::set_lsns ( lsn_t  begin,
lsn_t  end 
)
inline

§ start()

template<typename RestoreFunctor >
void RestoreCoordinator< RestoreFunctor >::start ( )
inline

§ tryBackgroundRestore()

template<typename RestoreFunctor >
bool RestoreCoordinator< RestoreFunctor >::tryBackgroundRestore ( bool &  done)
inline

Member Data Documentation

§ _begin_lsn

template<typename RestoreFunctor >
lsn_t RestoreCoordinator< RestoreFunctor >::_begin_lsn
private

§ _bitmap

template<typename RestoreFunctor >
std::unique_ptr<RestoreBitmap> RestoreCoordinator< RestoreFunctor >::_bitmap
private

§ _end_lsn

template<typename RestoreFunctor >
lsn_t RestoreCoordinator< RestoreFunctor >::_end_lsn
private

§ _mutex

template<typename RestoreFunctor >
std::mutex RestoreCoordinator< RestoreFunctor >::_mutex
private

§ _on_demand

template<typename RestoreFunctor >
const bool RestoreCoordinator< RestoreFunctor >::_on_demand
private

§ _restoreFunctor

template<typename RestoreFunctor >
RestoreFunctor RestoreCoordinator< RestoreFunctor >::_restoreFunctor
private

§ _segment_size

template<typename RestoreFunctor >
const size_t RestoreCoordinator< RestoreFunctor >::_segment_size
private

§ _start_locked

template<typename RestoreFunctor >
const bool RestoreCoordinator< RestoreFunctor >::_start_locked
private

§ _virgin_pages

template<typename RestoreFunctor >
const bool RestoreCoordinator< RestoreFunctor >::_virgin_pages
private

§ _waiting_table

template<typename RestoreFunctor >
std::unordered_map<unsigned, Ticket> RestoreCoordinator< RestoreFunctor >::_waiting_table
private

§ MaxRestorePages

template<typename RestoreFunctor >
constexpr size_t RestoreCoordinator< RestoreFunctor >::MaxRestorePages = 1024
staticprivate

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