111#define SLAVE_INIT_DBS_IN_GROUP 4
269template <
typename Element_type>
333 if (
empty())
return nullptr;
346 static constexpr size_t error_result = std::numeric_limits<size_t>::max();
435template <
typename Element_type>
441 const auto ret = (avail++) % capacity;
444 assert(len == avail -
entry);
445 assert(
entry < avail);
456template <
typename Element_type>
461 *item = m_Q[
entry++];
463 assert(len == avail -
entry);
464 assert(
entry <= avail);
468 if (
entry == capacity) {
471 assert(avail < capacity);
472 assert(avail == len);
477template <
typename Element_type>
483 assert(avail >
entry);
484 *item = m_Q[(--avail) % capacity];
486 assert(len == avail -
entry);
514 uint param_id,
const char *param_channel);
618 event.common_header->data_written);
620 event.get_type_code()))
834 bool in_active_multi_stmt =
839 (
"Setting gtid_next.type to NOT_YET_DETERMINED_GTID"));
841 }
else if (in_active_multi_stmt) {
842 my_error(ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION,
MYF(0),
928 const char *start_event_relay_log_name,
930 const char *end_event_relay_log_name);
979 va_list v_args)
const override
980 MY_ATTRIBUTE((format(printf, 4, 0)));
984 va_list v_args)
const override
985 MY_ATTRIBUTE((format(printf, 5, 0)));
1004 const char *start_event_relay_log_name,
1006 const char *end_event_relay_log_name);
Contains the classes representing events occurring in the replication stream.
Class representing an error.
Definition: error.h:48
Stores information to monitor a transaction during the different replication stages.
Definition: rpl_gtid.h:1413
This is the abstract base class for binary log events.
Definition: log_event.h:538
ulong mts_group_idx
Index in rli->gaq array to indicate a group that this event is purging.
Definition: log_event.h:693
Definition: rpl_rli.h:206
Format_description_log_event * get_rli_description_event() const
Return the current Format_description_log_event.
Definition: rpl_rli.h:1731
bool is_in_group() const
A group is defined as the entire range of events that constitute a transaction or auto-committed stat...
Definition: rpl_rli.h:1520
Log_event * current_event
Reference to being applied event.
Definition: rpl_rli.h:2009
Slave_committed_queue * gaq
Definition: rpl_rli.h:1208
ulong adapt_to_master_version_updown(ulong master_version, ulong current_version)
The method compares two supplied versions and carries out down- or up- grade customization of executi...
Definition: rpl_rli.cc:2612
Format_description_log_event * rli_description_event
Definition: rpl_rli.h:1807
Definition: rpl_info_handler.h:58
bool is_transactional() const
Definition: rpl_info.h:107
THD * info_thd
Definition: rpl_info.h:78
Group Assigned Queue whose first element identifies first gap in committed sequence.
Definition: rpl_rli_pdb.h:354
void free_dynamic_items()
Method should be executed at slave system stop to cleanup dynamically allocated items that remained a...
Definition: rpl_rli_pdb.cc:1519
bool de_queue(Slave_job_group *item)
Dequeue from head.
Definition: rpl_rli_pdb.h:413
Slave_committed_queue(size_t max, uint n)
Definition: rpl_rli_pdb.cc:1318
bool inited
Definition: rpl_rli_pdb.h:356
bool count_done(Relay_log_info *rli)
Definition: rpl_rli_pdb.cc:1336
ulong assigned_group_index
Definition: rpl_rli_pdb.h:370
bool de_tail(Slave_job_group *item)
Similar to de_queue() but removing an item from the tail side.
Definition: rpl_rli_pdb.h:423
size_t move_queue_head(Slave_worker_array *ws)
The queue is processed from the head item by item to purge items representing committed groups.
Definition: rpl_rli_pdb.cc:1380
Prealloced_array< ulonglong, 1 > last_done
Definition: rpl_rli_pdb.h:367
Slave_job_group * get_job_group(size_t ind)
Definition: rpl_rli_pdb.h:393
~Slave_committed_queue()
Definition: rpl_rli_pdb.h:374
void update_current_binlog(const char *post_rotate)
size_t find_lwm(Slave_job_group **, size_t)
Finds low-water mark of committed jobs in GAQ.
Definition: rpl_rli_pdb.cc:1482
size_t en_queue(Slave_job_group *item)
Assigns assigned_group_index to an index of enqueued item and returns it.
Definition: rpl_rli_pdb.h:402
Slave_job_group lwm
Definition: rpl_rli_pdb.h:364
Definition: rpl_rli_pdb.h:490
Slave_jobs_queue()
Definition: rpl_rli_pdb.h:492
bool overfill
Definition: rpl_rli_pdb.h:497
ulonglong waited_overfill
Definition: rpl_rli_pdb.h:498
Error const & last_error() const
Definition: rpl_reporting.h:143
Definition: rpl_rli_pdb.h:501
ulonglong get_master_log_pos()
Definition: rpl_rli_pdb.h:701
ulong underrun_level
Definition: rpl_rli_pdb.h:638
char checkpoint_relay_log_name[FN_REFLEN]
Definition: rpl_rli_pdb.h:648
Prealloced_array< db_worker_hash_entry *, SLAVE_INIT_DBS_IN_GROUP > curr_group_exec_parts
Definition: rpl_rli_pdb.h:524
ulong excess_cnt
Definition: rpl_rli_pdb.h:643
bool m_is_worker_metric_collection_enabled
Is worker metric collection enabled.
Definition: rpl_rli_pdb.h:572
bool read_and_apply_events(my_off_t start_relay_pos, const char *start_event_relay_log_name, my_off_t end_relay_pos, const char *end_event_relay_log_name)
Read events from relay logs and apply them.
Definition: rpl_rli_pdb.cc:1963
bool curr_group_seen_sequence_number
Definition: rpl_rli_pdb.h:527
void reset_gaq_index()
Definition: rpl_rli_pdb.h:865
ulong overrun_level
Definition: rpl_rli_pdb.h:633
bool commit_positions() override
The method is a wrapper to provide uniform interface with STS and is to be called from Relay_log_info...
Definition: rpl_rli_pdb.h:708
ulong bitmap_shifted
Definition: rpl_rli_pdb.h:563
longlong sequence_number()
Definition: rpl_rli_pdb.h:947
void reset_commit_order_deadlock()
Set the flag the signals a deadlock to false.
Definition: rpl_rli_pdb.cc:1787
int flush_info(bool force=false)
Definition: rpl_rli_pdb.cc:479
int set_rli_description_event(Format_description_log_event *fdle) override
The method runs at Worker initialization, at runtime when Coordinator supplied a new FD event for exe...
Definition: rpl_rli_pdb.h:761
ulonglong checkpoint_master_log_pos
Definition: rpl_rli_pdb.h:651
Slave_jobs_queue jobs
Definition: rpl_rli_pdb.h:518
volatile bool relay_log_change_notified
Definition: rpl_rli_pdb.h:547
MY_BITMAP group_shifted
Definition: rpl_rli_pdb.h:653
ulong worker_checkpoint_seqno
Definition: rpl_rli_pdb.h:655
bool worker_sleep(ulong seconds)
Sleep for a given amount of seconds or until killed.
Definition: rpl_rli_pdb.cc:1765
void copy_values_for_PFS(ulong worker_id, en_running_state running_status, THD *worker_thd, const Error &last_error, Gtid_monitoring_info *monitoring_info_arg)
Definition: rpl_rli_pdb.cc:562
std::tuple< bool, bool, uint > check_and_report_end_of_retries(THD *thd)
Checks if the transaction can be retried, and if not, reports an error.
Definition: rpl_rli_pdb.cc:1812
ulong gaq_index
Definition: rpl_rli_pdb.h:988
void post_commit(bool on_rollback) override
See the comments for STS version of this method.
Definition: rpl_rli_pdb.h:718
void do_report(loglevel level, int err_code, const char *msg, va_list v_args) const override
Definition: rpl_rli_pdb.cc:1537
const char * get_for_channel_str(bool upper_case=false) const override
return an extension "for channel channel_name" for error messages per channel
Definition: rpl_rli_pdb.cc:2722
void report_commit_order_deadlock()
Called when replica-preserve-commit-order is enabled, by the worker processing an earlier transaction...
Definition: rpl_rli_pdb.cc:1795
Slave_worker(const Slave_worker &info)
std::atomic< int > curr_jobs
Definition: rpl_rli_pdb.h:541
Slave_worker(Relay_log_info *rli, PSI_mutex_key *param_key_info_run_lock, PSI_mutex_key *param_key_info_data_lock, PSI_mutex_key *param_key_info_sleep_lock, PSI_mutex_key *param_key_info_thd_lock, PSI_mutex_key *param_key_info_data_cond, PSI_mutex_key *param_key_info_start_cond, PSI_mutex_key *param_key_info_stop_cond, PSI_mutex_key *param_key_info_sleep_cond, uint param_id, const char *param_channel)
Definition: rpl_rli_pdb.cc:246
void set_worker_metric_collection_status(bool status)
Sets the metric collection as on or off This should be done at the worker start.
Definition: rpl_rli_pdb.h:578
bool write_info(Rpl_info_handler *to) override
Definition: rpl_rli_pdb.cc:584
int init_worker(Relay_log_info *, ulong)
Method is executed by Coordinator at Worker startup time to initialize members parly with values supp...
Definition: rpl_rli_pdb.cc:318
static uint get_channel_field_index()
Returns the index of the Channel_name field of the table repository.
Definition: rpl_rli_pdb.cc:2730
bool read_info(Rpl_info_handler *from) override
Definition: rpl_rli_pdb.cc:510
void assign_partition_db(Log_event *ev)
Definition: rpl_rli_pdb.cc:2084
const char * get_master_log_name()
Definition: rpl_rli_pdb.cc:634
static void set_nullable_fields(MY_BITMAP *nullable_fields)
Sets bits for columns that are allowed to be NULL.
Definition: rpl_rli_pdb.cc:628
cs::apply::instruments::Dummy_worker_metrics m_disabled_worker_metrics
Placehold for stats when metric collection is disabled.
Definition: rpl_rli_pdb.h:569
bool set_info_search_keys(Rpl_info_handler *to) override
To search in the slave repositories, each slave info object (mi, rli or worker) should use a primary ...
Definition: rpl_rli_pdb.cc:573
ulong server_version
Definition: rpl_rli_pdb.h:657
ulong id
Definition: rpl_rli_pdb.h:529
int64_t m_events_applied_in_transaction
The number of events applied in an ongoing transaction, used to collect statistics when the transacti...
Definition: rpl_rli_pdb.h:596
void prepare_for_retry(Log_event &event)
Make the necessary changes to both the Slave_worker and current Log_event objects,...
Definition: rpl_rli_pdb.cc:1801
Slave_worker & operator=(const Slave_worker &info)
ulonglong master_log_pos
Definition: rpl_rli_pdb.h:989
int slave_worker_exec_event(Log_event *ev)
MTS worker main routine.
Definition: rpl_rli_pdb.cc:1674
ulong get_master_server_version()
Definition: rpl_rli_pdb.h:971
bool retry_transaction(my_off_t start_relay_pos, const char *start_event_relay_log_name, my_off_t end_relay_pos, const char *end_event_relay_log_name)
It is called after an error happens.
Definition: rpl_rli_pdb.cc:1869
bool end_group_sets_max_dbs
Definition: rpl_rli_pdb.h:545
bool exit_incremented
Definition: rpl_rli_pdb.h:687
volatile ulong last_group_done_index
Definition: rpl_rli_pdb.h:538
Relay_log_info * c_rli
Definition: rpl_rli_pdb.h:521
bool found_commit_order_deadlock()
Return true if replica-preserve-commit-order is enabled and an earlier transaction is waiting for a r...
Definition: rpl_rli_pdb.cc:1791
Relay_log_info * get_c_rli() override
Get coordinator's RLI.
Definition: rpl_rli_pdb.h:939
bool reset_recovery_info()
Clean up a part of Worker info table that is regarded in in gaps collecting at recovery.
Definition: rpl_rli_pdb.cc:615
mysql_mutex_t jobs_lock
Definition: rpl_rli_pdb.h:519
en_running_state
Definition: rpl_rli_pdb.h:658
@ NOT_RUNNING
Definition: rpl_rli_pdb.h:659
@ STOP_ACCEPTED
Definition: rpl_rli_pdb.h:663
@ RUNNING
Definition: rpl_rli_pdb.h:660
@ STOP
Definition: rpl_rli_pdb.h:662
@ ERROR_LEAVING
Definition: rpl_rli_pdb.h:661
void rollback_positions(Slave_job_group *ptr_g)
Definition: rpl_rli_pdb.cc:722
long wq_overrun_cnt
Definition: rpl_rli_pdb.h:627
static const uint * get_table_pk_field_indexes()
Returns an array with the expected column numbers of the primary key fields of the table repository.
Definition: rpl_rli_pdb.cc:2726
void slave_worker_ends_group(Log_event *, int)
Deallocation routine to cancel out few effects of map_db_to_worker().
Definition: rpl_rli_pdb.cc:1146
ulonglong set_master_log_pos(ulong val)
Definition: rpl_rli_pdb.h:702
bool m_flag_positions_committed
This flag indicates whether positions were already modified during the event processing,...
Definition: rpl_rli_pdb.h:998
std::atomic< bool > m_commit_order_deadlock
Definition: rpl_rli_pdb.h:993
long usage_partition
Definition: rpl_rli_pdb.h:543
void set_gaq_index(ulong val)
Definition: rpl_rli_pdb.h:866
void increment_worker_metrics_for_event(const Log_event &event)
Update per-event worker metrics.
Definition: rpl_rli_pdb.h:616
char checkpoint_master_log_name[FN_REFLEN]
Definition: rpl_rli_pdb.h:650
ulonglong last_groups_assigned_index
Definition: rpl_rli_pdb.h:540
void end_info()
Definition: rpl_rli_pdb.cc:465
cs::apply::instruments::Worker_metrics & get_worker_metrics()
gets a reference to the worker statistics.
Definition: rpl_rli_pdb.cc:2732
en_running_state volatile running_status
Definition: rpl_rli_pdb.h:681
void copy_worker_metrics(Slave_worker *other)
Copies data and sets the metric collection flag.
Definition: rpl_rli_pdb.h:588
ulonglong checkpoint_relay_log_pos
Definition: rpl_rli_pdb.h:649
bool fd_change_notified
Definition: rpl_rli_pdb.h:562
volatile bool checkpoint_notified
Definition: rpl_rli_pdb.h:548
bool m_is_after_metrics_breakpoint
True if this transaction occurred after the metrics breakpoint in the relay log.
Definition: rpl_rli_pdb.h:602
mysql_cond_t jobs_cond
Definition: rpl_rli_pdb.h:520
cs::apply::instruments::Mta_worker_metrics m_worker_metrics
worker statistics
Definition: rpl_rli_pdb.h:567
static size_t get_number_worker_fields()
Definition: rpl_rli_pdb.cc:624
~Slave_worker() override
Definition: rpl_rli_pdb.cc:288
MY_BITMAP group_executed
Definition: rpl_rli_pdb.h:652
volatile bool master_log_change_notified
Definition: rpl_rli_pdb.h:550
int rli_init_info(bool)
A part of Slave worker initializer that provides a minimum context for MTS recovery.
Definition: rpl_rli_pdb.cc:418
ulong transactions_handled
Number of transaction handled - incremented at slave_worker_ends_group.
Definition: rpl_rli_pdb.h:535
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:36
Relay_log_info * rli_slave
Definition: sql_class.h:1077
System_variables variables
Definition: sql_lexer_thd.h:64
bool in_active_multi_stmt_transaction() const
true if the session is in a multi-statement transaction mode (
Definition: sql_class.h:3253
The class defines a type of queue with a predefined max capacity that is implemented using the circul...
Definition: rpl_rli_pdb.h:270
bool in(size_t i)
Definition: rpl_rli_pdb.h:338
bool empty() const
Definition: rpl_rli_pdb.h:343
static constexpr size_t error_result
Definition: rpl_rli_pdb.h:346
std::atomic< size_t > len
Actual length.
Definition: rpl_rli_pdb.h:292
size_t en_queue(Element_type *item)
return the index where the arg item locates or an error encoded as a value circular_buffer_queue::err...
Definition: rpl_rli_pdb.h:436
size_t capacity
The capacity and maximum length of the queue in terms of element.
Definition: rpl_rli_pdb.h:276
size_t get_length() const
Definition: rpl_rli_pdb.h:342
circular_buffer_queue()
Definition: rpl_rli_pdb.h:305
Element_type * head_queue()
return the value of data member of the head of the queue.
Definition: rpl_rli_pdb.h:332
size_t avail
Its value modulo capacity is index of the element where the next element will be enqueued.
Definition: rpl_rli_pdb.h:282
circular_buffer_queue(size_t max)
Definition: rpl_rli_pdb.h:295
bool de_queue(Element_type *item)
Content of the being dequeued item is copied to the arg-pointer location.
Definition: rpl_rli_pdb.h:457
size_t entry
The head index of the queue.
Definition: rpl_rli_pdb.h:288
bool full() const
Definition: rpl_rli_pdb.h:344
bool inited_queue
Definition: rpl_rli_pdb.h:293
Prealloced_array< Element_type, 1 > m_Q
Definition: rpl_rli_pdb.h:272
bool de_tail(Element_type *item)
Similar to de_queue but extracting happens from the tail side.
Definition: rpl_rli_pdb.h:478
~circular_buffer_queue()=default
Class that intends to be a dummy end point for worker metrics.
Definition: dummy_worker_metrics.h:33
This class contains metrics transaction execution in replica MTA workers.
Definition: mta_worker_metrics.h:33
void copy_stats_from(const Mta_worker_metrics &other)
Copies stats from the given object into this one.
Definition: mta_worker_metrics.cc:82
Abstract class for classes that contain metrics related to transaction execution in applier workers.
Definition: worker_metrics.h:33
virtual void inc_transaction_ongoing_progress_size(int64_t amount)=0
increment the executed size of the ongoing transaction.
const int64_t SEQ_UNINIT
Uninitialized timestamp value (for either last committed or sequence number).
Definition: binlog_event.h:150
void my_error(int nr, myf MyFlags,...)
Fill in and print a previously registered error message.
Definition: my_error.cc:216
#define MTS_WORKER_UNDEF
Definition: rpl_replica.h:91
unsigned int PSI_mutex_key
Instrumented mutex key.
Definition: psi_mutex_bits.h:52
static constexpr unsigned PSI_INSTRUMENT_ME
Definition: psi_bits.h:43
Binary log event definitions.
Header for compiler-dependent features.
#define DBUG_PRINT(keyword, arglist)
Definition: my_dbug.h:181
#define DBUG_TRACE
Definition: my_dbug.h:146
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
ulonglong my_off_t
Definition: my_inttypes.h:72
long long int longlong
Definition: my_inttypes.h:55
#define MYF(v)
Definition: my_inttypes.h:97
Common #defines and includes for file and socket I/O.
#define FN_REFLEN
Definition: my_io.h:83
Definition of the global "loglevel" enumeration.
loglevel
Definition: my_loglevel.h:41
void my_free(void *ptr)
Frees the memory pointed by the ptr.
Definition: my_memory.cc:81
Defines various enable/disable and HAVE_ macros related to the performance schema instrumentation sys...
#define HAVE_PSI_INTERFACE
Definition: my_psi_config.h:39
Instrumentation helpers for conditions.
ABI for instrumented mutexes.
struct MasterPos master_pos
bool load(THD *, const dd::String_type &fname, dd::String_type *buf)
Read an sdi file from disk and store in a buffer.
Definition: sdi_file.cc:308
bool empty(const Histogram &histogram)
Return true if 'histogram' was built on an empty table.
Definition: histogram.h:693
Performance schema instrumentation interface.
Instrumentation helpers for mutexes.
required uint32 status
Definition: replication_asynchronous_connection_failover.proto:61
required string event
Definition: replication_group_member_actions.proto:32
enum_mts_parallel_type
Definition: rpl_mta_submode.h:47
TABLE * mts_move_temp_tables_to_thd(THD *, TABLE *)
Relocation of the list of temporary tables to thd->temporary_tables.
Definition: rpl_rli_pdb.cc:820
Slave_worker * get_least_occupied_worker(Relay_log_info *rli, Slave_worker_array *workers, Log_event *ev)
Get the least occupied worker.
Definition: rpl_rli_pdb.cc:1130
bool set_max_updated_index_on_stop(Slave_worker *worker, Slave_job_item *job_item)
This function is called by both coordinator and workers.
Definition: rpl_rli_pdb.cc:172
bool init_hash_workers(Relay_log_info *rli)
Definition: rpl_rli_pdb.cc:753
void destroy_hash_workers(Relay_log_info *)
Definition: rpl_rli_pdb.cc:764
Slave_worker * get_thd_worker(const THD *thd)
Definition: rpl_rli_pdb.h:1038
ulong w_rr
Definition: rpl_rli_pdb.cc:81
int slave_worker_exec_job_group(Slave_worker *w, Relay_log_info *rli)
apply one job group.
Definition: rpl_rli_pdb.cc:2453
TABLE * mts_move_temp_table_to_entry(TABLE *, THD *, db_worker_hash_entry *)
Relocating temporary table reference into entry's table list head.
Definition: rpl_rli_pdb.cc:786
bool handle_slave_worker_stop(Slave_worker *worker, Slave_job_item *job_item)
This function is called by both coordinator and workers.
Definition: rpl_rli_pdb.cc:108
Slave_worker * map_db_to_worker(const char *dbname, Relay_log_info *rli, db_worker_hash_entry **ptr_entry, bool need_temp_tables, Slave_worker *w)
The function produces a reference to the struct of a Worker that has been or will be engaged to proce...
Definition: rpl_rli_pdb.cc:915
bool append_item_to_jobs(slave_job_item *job_item, Slave_worker *w, Relay_log_info *rli)
Coordinator enqueues a job item into a Worker private queue.
Definition: rpl_rli_pdb.cc:2109
This struct represents a specification of a GTID for a statement to be executed: either "AUTOMATIC",...
Definition: rpl_gtid.h:3999
Definition: my_bitmap.h:43
Definition: rpl_rli_pdb.h:113
Slave_job_group()=default
my_off_t master_log_pos
Definition: rpl_rli_pdb.h:192
my_off_t checkpoint_log_pos
Definition: rpl_rli_pdb.h:195
Format_description_log_event * new_fd_event
Definition: rpl_rli_pdb.h:234
Slave_job_group(const Slave_job_group &other)
Definition: rpl_rli_pdb.h:120
bool notified
Definition: rpl_rli_pdb.h:204
time_t ts
Definition: rpl_rli_pdb.h:202
longlong last_committed
Definition: rpl_rli_pdb.h:207
std::atomic< int32 > done
Definition: rpl_rli_pdb.h:200
Slave_job_group & operator=(const Slave_job_group &other)
Definition: rpl_rli_pdb.h:145
Slave_worker * worker
Definition: rpl_rli_pdb.h:189
my_off_t checkpoint_relay_log_pos
Definition: rpl_rli_pdb.h:198
ulong worker_id
Definition: rpl_rli_pdb.h:188
uint checkpoint_seqno
Definition: rpl_rli_pdb.h:194
void reset(my_off_t master_pos, ulonglong seqno)
Definition: rpl_rli_pdb.h:239
my_off_t group_master_log_pos
Definition: rpl_rli_pdb.h:175
char * group_master_log_name
Definition: rpl_rli_pdb.h:171
char * checkpoint_log_name
Definition: rpl_rli_pdb.h:196
ulong shifted
Definition: rpl_rli_pdb.h:201
longlong sequence_number
Definition: rpl_rli_pdb.h:208
char * checkpoint_relay_log_name
Definition: rpl_rli_pdb.h:199
char * group_relay_log_name
Definition: rpl_rli_pdb.h:186
ulonglong total_seqno
Definition: rpl_rli_pdb.h:190
my_off_t group_relay_log_pos
Definition: rpl_rli_pdb.h:187
Definition: completion_hash.h:35
Legends running throughout the module:
Definition: rpl_rli_pdb.h:77
TABLE *volatile temporary_tables
Definition: rpl_rli_pdb.h:93
uint db_len
Definition: rpl_rli_pdb.h:78
long usage
Definition: rpl_rli_pdb.h:85
const char * db
Definition: rpl_rli_pdb.h:79
Slave_worker * worker
Definition: rpl_rli_pdb.h:80
static bool is_any_gtid_event(const Log_event_type &type)
Helps to identify any GTID event - returns true for GTID_LOG_EVENT, GTID_TAGGED_LOG_EVENT and ANONYMO...
Definition: binlog_event.h:391
An instrumented cond structure.
Definition: mysql_cond_bits.h:50
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50
double seconds()
Definition: task.cc:310
Include file for Sun RPC to compile out of the box.
int n
Definition: xcom_base.cc:509