Drizzled Public API Documentation

slave::QueueConsumer Class Reference
Inheritance diagram for slave::QueueConsumer:
slave::QueueThread slave::SQLExecutor

Public Member Functions

bool init ()
 
bool process ()
 
void shutdown ()
 
void setSleepInterval (uint32_t seconds)
 
uint32_t getSleepInterval ()
 
void setIgnoreErrors (bool value)
 
void setApplierState (const std::string &err_msg, bool status)
 
void addMasterId (uint32_t id)
 
bool processSingleMaster (const std::string &master_id)
 
void run (void)
 
void markInErrorState ()
 
void clearErrorState ()
 
const std::string & getErrorMessage () const
 
bool executeSQL (std::vector< std::string > &sql)
 

Protected Attributes

drizzled::Session::shared_ptr _session
 

Private Types

typedef std::vector< uint64_t > TrxIdList
 

Private Member Functions

bool getListOfCompletedTransactions (const std::string &master_id, TrxIdList &list)
 
bool getMessage (drizzled::message::Transaction &transaction, std::string &commit_id, const std::string &master_id, uint64_t trx_id, std::string &originating_server_uuid, uint64_t &originating_commit_id, uint32_t segment_id)
 
bool convertToSQL (const drizzled::message::Transaction &transaction, std::vector< std::string > &aggregate_sql, std::vector< std::string > &segmented_sql)
 
bool executeSQLWithCommitId (std::vector< std::string > &sql, const std::string &commit_id, const std::string &originating_server_uuid, uint64_t originating_commit_id, const std::string &master_id)
 
bool deleteFromQueue (const std::string &master_id, uint64_t trx_id)
 
bool isEndStatement (const drizzled::message::Statement &statement)
 

Private Attributes

uint32_t _check_interval
 
std::vector< uint32_t > _master_ids
 
bool _ignore_errors
 

Detailed Description

Definition at line 39 of file queue_consumer.h.

Member Function Documentation

bool slave::QueueConsumer::convertToSQL ( const drizzled::message::Transaction transaction,
std::vector< std::string > &  aggregate_sql,
std::vector< std::string > &  segmented_sql 
)
private

Convert the given Transaction message into equivalent SQL.

Parameters
[in]transactionTransaction protobuf message to convert.
[in,out]aggregate_sqlBuffer for total SQL for this transaction.
[in,out]segmented_sqlBuffer for carried over segmented statements.
Return values
trueSuccess
falseFailure

Definition at line 264 of file queue_consumer.cc.

bool slave::QueueConsumer::deleteFromQueue ( const std::string &  master_id,
uint64_t  trx_id 
)
private

Remove messages for a given transaction from the queue.

Parameters
trx_idTransaction ID for the messages to remove.
Return values
trueSuccess
falseFailure

Definition at line 448 of file queue_consumer.cc.

bool slave::SQLExecutor::executeSQL ( std::vector< std::string > &  sql)
inherited

Execute a batch of SQL statements.

Parameters
sqlBatch of SQL statements to execute.
Return values
trueSuccess
falseFailure

Definition at line 49 of file sql_executor.cc.

bool slave::QueueConsumer::executeSQLWithCommitId ( std::vector< std::string > &  sql,
const std::string &  commit_id,
const std::string &  originating_server_uuid,
uint64_t  originating_commit_id,
const std::string &  master_id 
)
private

Execute a batch of SQL statements.

Parameters
sqlBatch of SQL statements to execute.
commit_idCommit ID value to store in state table.
originating_server_uuidServer ID of the master where this SQL was originally applied.
originating_commit_idCommit ID of the master where this SQL was originally applied.
Return values
trueSuccess
falseFailure

Definition at line 422 of file queue_consumer.cc.

bool slave::QueueConsumer::getListOfCompletedTransactions ( const std::string &  master_id,
TrxIdList &  list 
)
private

Get a list of transaction IDs from the queue that are complete.

A "complete" transaction is one in which we have received the end segment of the transaction.

Parameters
[in]master_idIdentifier of the master we are interested in.
[out]listThe list to populate with transaction IDs.
Return values
trueSuccess
falseError

Definition at line 230 of file queue_consumer.cc.

bool slave::QueueConsumer::init ( void  )
virtual

Do any initialization work.

Return values
trueSuccess
falseFailure

Reimplemented from slave::QueueThread.

Definition at line 40 of file queue_consumer.cc.

bool slave::QueueConsumer::isEndStatement ( const drizzled::message::Statement statement)
private

Determine if a Statement message is an end message.

Return values
trueIs an end Statement message
falseIs NOT an end Statement message

Definition at line 341 of file queue_consumer.cc.

bool slave::QueueConsumer::process ( )
virtual

Method that actually does the work around the queue.

Returning 'false' from this method currently causes the thread to shutdown.

Return values
trueSuccess
falseFailure

Implements slave::QueueThread.

Definition at line 53 of file queue_consumer.cc.

void slave::QueueConsumer::setApplierState ( const std::string &  err_msg,
bool  status 
)

Update applier status in state table.

Parameters
err_msgError message string
statusfalse = STOPPED, true = RUNNING

Definition at line 380 of file queue_consumer.cc.

void slave::QueueConsumer::setIgnoreErrors ( bool  value)
inline

Determines if we should ignore errors from statements pulled from masters.

Definition at line 66 of file queue_consumer.h.

void slave::QueueConsumer::shutdown ( )
virtual

Work to do at thread shutdown time.

Reimplemented from slave::QueueThread.

Definition at line 47 of file queue_consumer.cc.

Member Data Documentation

uint32_t slave::QueueConsumer::_check_interval
private

Number of seconds to sleep between checking queue for messages

Definition at line 90 of file queue_consumer.h.


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