MySQL 8.0.37
Source Code Documentation
pipeline_stats.h
Go to the documentation of this file.
1/* Copyright (c) 2016, 2024, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is designed to work with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have either included with
13 the program or referenced in the documentation.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License, version 2.0, for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
22 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef PIPELINE_STATS_INCLUDED
25#define PIPELINE_STATS_INCLUDED
26
27#include <map>
28#include <string>
29#include <vector>
30
32#include "my_inttypes.h"
35
36/**
37 Flow control modes:
38 FCM_DISABLED flow control disabled
39 FCM_QUOTA introduces a delay only on transactions the exceed a quota
40*/
42
43/**
44 @class Pipeline_stats_member_message
45
46 Describes all statistics sent by members.
47*/
49 public:
51 // This type should not be used anywhere.
53
54 // Length of the payload item: 4 bytes
56
57 // Length of the payload item: 4 bytes
59
60 // Length of the payload item: 8 bytes
62
63 // Length of the payload item: 8 bytes
65
66 // Length of the payload item: 8 bytes
68
69 // Length of the payload item: 8 bytes
71
72 // Length of the payload item: 8 bytes
74
75 // Length of the payload item: variable
77
78 // Length of the payload item: variable
80
81 // Length of the payload item: 8 bytes
83
84 // Length of the payload item: 1 byte
86
87 // Length of the payload item: 1 byte
89
90 // No valid type codes can appear after this one.
91 PIT_MAX = 13
92 };
93
94 /**
95 Message constructor
96
97 @param[in] transactions_waiting_certification
98 Number of transactions pending certification
99 @param[in] transactions_waiting_apply
100 Number of remote transactions waiting apply
101 @param[in] transactions_certified
102 Number of transactions already certified
103 @param[in] transactions_applied
104 Number of remote transactions applied
105 @param[in] transactions_local
106 Number of local transactions
107 @param[in] transactions_negative_certified
108 Number of transactions that were negatively certified
109 @param[in] transactions_rows_validating
110 Number of transactions with which certification will be done
111 against
112 @param[in] transaction_gtids
113 Flag to indicate whether or not the transaction ids have been
114 updated
115 @param[in] transactions_committed_all_members
116 Set of transactions committed on all members
117 @param[in] transactions_last_conflict_free
118 Latest transaction certified without conflicts
119 @param[in] transactions_local_rollback
120 Number of local transactions that were negatively certified
121 @param[in] mode
122 Flow-control mode
123 */
125 int32 transactions_waiting_certification,
126 int32 transactions_waiting_apply, int64 transactions_certified,
127 int64 transactions_applied, int64 transactions_local,
128 int64 transactions_negative_certified, int64 transactions_rows_validating,
129 bool transaction_gtids,
130 const std::string &transactions_committed_all_members,
131 const std::string &transactions_last_conflict_free,
132 int64 transactions_local_rollback, Flow_control_mode mode);
133
134 /**
135 Message constructor for raw data
136
137 @param[in] buf raw data
138 @param[in] len raw length
139 */
140 Pipeline_stats_member_message(const unsigned char *buf, size_t len);
141
142 /**
143 Message destructor
144 */
146
147 /**
148 Get transactions waiting certification counter value.
149
150 @return the counter value
151 */
153
154 /**
155 Get transactions waiting apply counter value.
156
157 @return the counter value
158 */
160
161 /**
162 Get transactions certified.
163
164 @return the counter value
165 */
167
168 /**
169 Get transactions applied.
170
171 @return the counter value
172 */
174
175 /**
176 Get local transactions that member tried to commit.
177
178 @return the counter value
179 */
181
182 /**
183 Get negatively certified transaction by member.
184
185 @return the counter value
186 */
188
189 /**
190 Get size of conflict detection database.
191
192 @return the counter value
193 */
195
196 /**
197 Returns a flag indicating whether or not the GTIDs on this stats message
198 are updated/present.
199
200 @return the flag indicating the presence of valid GTIDs on this message.
201 */
202 bool get_transation_gtids_present() const;
203
204 /**
205 Get set of stable group transactions.
206
207 @return the transaction identifier.
208 */
209 const std::string &get_transaction_committed_all_members();
210
211 /**
212 Get last positive certified transaction.
213
214 @return the transaction identifier.
215 */
216 const std::string &get_transaction_last_conflict_free();
217
218 /**
219 Get local transactions rolled back by the member.
220
221 @return the transaction identifiers.
222 */
224
225 /**
226 Get flow-control mode of member.
227
228 @return the mode value
229 */
231
232 protected:
233 /**
234 Encodes the message contents for transmission.
235
236 @param[out] buffer the message buffer to be written
237 */
238 void encode_payload(std::vector<unsigned char> *buffer) const override;
239
240 /**
241 Message decoding method
242
243 @param[in] buffer the received data
244 @param[in] end the end of the buffer
245 */
246 void decode_payload(const unsigned char *buffer,
247 const unsigned char *end) override;
248
249 private:
262};
263
264/**
265 @class Pipeline_stats_member_collector
266
267 The pipeline collector for the local member stats.
268*/
270 public:
271 /**
272 Default constructor.
273 */
275
276 /**
277 Destructor.
278 */
280
281 /**
282 Increment transactions waiting apply counter value.
283 */
285
286 /**
287 Decrement transactions waiting apply counter value.
288 */
290
291 /**
292 Set transactions waiting apply counter to 0.
293 */
295
296 /**
297 Increment transactions certified counter value.
298 */
300
301 /**
302 Increment transactions applied counter value.
303 */
305
306 /**
307 Increment local transactions counter value.
308 */
310
311 /**
312 Increment local rollback transactions counter value.
313 */
315
316 /**
317 Send member statistics to group.
318 */
320
321 /**
322 Increment local recovery transactions counter value.
323 */
325
326 /**
327 @returns transactions waiting to be applied during recovery.
328 */
330
331 /**
332 Increment delivered transactions during recovery counter value.
333 */
335
336 /**
337 Increment certified transactions during recovery counter value.
338 */
340
341 /**
342 Increment negatively certified transactions during recovery counter value.
343 */
345
346 /**
347 @returns transactions waiting to be certified during recovery.
348 */
350
351 /**
352 Compute the transactions applied during last flow-control tick
353 while the member is in recovery.
354 */
356
357 /**
358 @returns transactions applied during last flow-control tick
359 while the member is in recovery.
360 */
362
363 /**
364 @returns transactions waiting to be applied.
365 */
367
368 /**
369 @returns transactions certified.
370 */
372
373 /**
374 @returns transactions applied of local member.
375 */
377
378 /**
379 @returns local transactions proposed by member.
380 */
382
383 /**
384 @returns local transactions rollback due to Negative certification
385 */
387
388 /**
389 Send Transaction Identifiers or not.
390 Once Transactions identifiers are sent, variable will be reset to FALSE
391 So need to set each time Transactions identifiers needs to be transmitted
392 */
394
395 private:
397 std::atomic<int64> m_transactions_certified;
398 std::atomic<int64> m_transactions_applied;
399 std::atomic<int64> m_transactions_local;
401 /* Includes both positively and negatively certified. */
408
411};
412
413/**
414 @class Pipeline_member_stats
415
416 Computed statistics per member.
417*/
419 public:
420 /**
421 Default constructor.
422 */
424
425 /**
426 Constructor.
427 */
429
430 /**
431 Constructor.
432 */
434 ulonglong applier_queue, ulonglong negative_certified,
435 ulonglong certificatin_size);
436
437 /**
438 Updates member statistics with a new message from the network
439 */
441
442 /**
443 Returns true if the node is behind on some user-defined criteria
444 */
446
447 /**
448 Get transactions waiting certification counter value.
449
450 @return the counter value
451 */
453
454 /**
455 Get transactions waiting apply counter value.
456
457 @return the counter value
458 */
460
461 /**
462 Get transactions certified counter value.
463
464 @return the counter value
465 */
467
468 /**
469 Get transactions applied counter value.
470
471 @return the counter value
472 */
474
475 /**
476 Get local member transactions proposed counter value.
477
478 @return the counter value
479 */
481
482 /**
483 Get transactions negatively certified.
484
485 @return the counter value
486 */
488
489 /**
490 Get certification database counter value.
491
492 @return the counter value
493 */
495
496 /**
497 Get the stable group transactions.
498 */
499 void get_transaction_committed_all_members(std::string &value);
500
501 /**
502 Set the stable group transactions.
503 */
504 void set_transaction_committed_all_members(char *str, size_t len);
505
506 /**
507 Get the last positive certified transaction.
508 */
509 void get_transaction_last_conflict_free(std::string &value);
510
511 /**
512 Set the last positive certified transaction.
513 */
514 void set_transaction_last_conflict_free(std::string &value);
515
516 /**
517 Get local member transactions negatively certified.
518
519 @return the counter value
520 */
522
523 /**
524 Get transactions certified since last stats message.
525
526 @return the counter value
527 */
529
530 /**
531 Get transactions applied since last stats message.
532
533 @return the counter value
534 */
536
537 /**
538 Get local transactions that member tried to commit
539 since last stats message.
540
541 @return the counter value
542 */
544
545 /**
546 Get flow_control_mode of a member.
547
548 @return the mode value
549 */
551
552 /**
553 Get the last stats update stamp.
554
555 @return the counter value
556 */
558
559#ifndef NDEBUG
560 void debug(const char *member, int64 quota_size, int64 quota_used);
561#endif
562
563 private:
579};
580
581/**
582 Data type that holds all members stats.
583 The key value is the GCS member_id.
584*/
585typedef std::map<std::string, Pipeline_member_stats> Flow_control_module_info;
586
587/**
588 @class Flow_control_module
589
590 The pipeline stats aggregator of all group members stats and
591 flow control module.
592*/
594 public:
595 static const int64 MAXTPS;
596
597 /**
598 Default constructor.
599 */
601
602 /**
603 Destructor.
604 */
605 virtual ~Flow_control_module();
606
607 /**
608 Handles a Pipeline_stats_message, updating the
609 Flow_control_module_info and the delay, if needed.
610
611 @param[in] data the packet data
612 @param[in] len the packet length
613 @param[in] member_id the GCS member_id which sent the message
614
615 @return the operation status
616 @retval 0 OK
617 @retval !=0 Error on queue
618 */
619 int handle_stats_data(const uchar *data, size_t len,
620 const std::string &member_id);
621
622 /**
623 Evaluate the information received in the last flow control period
624 and adjust the system parameters accordingly
625 */
627
628 /**
629 Returns copy of individual member stats information.
630 @note Its caller responsibility to clean up allocated memory.
631
632 @param[in] member_id GCS Type Member Id, i.e. format HOST:PORT
633 @return the reference to class Pipeline_member_stats of memberID
634 storing network(GCS Broadcasted) received information
635 */
636 Pipeline_member_stats *get_pipeline_stats(const std::string &member_id);
637
638 /**
639 Compute and wait the amount of time in microseconds that must
640 be elapsed before a new message is sent.
641 If there is no need to wait, the method returns immediately.
642
643 @return the wait time
644 @retval 0 No wait was done
645 @retval >0 The wait time
646 */
647 int32 do_wait();
648
649 private:
652
654 /*
655 A rw lock to protect the Flow_control_module_info map.
656 */
658
659 /*
660 Number of members that did have waiting transactions on
661 certification and/or apply.
662 */
663 std::atomic<int32> m_holds_in_period;
664
665 /*
666 FCM_QUOTA
667 */
668 std::atomic<int64> m_quota_used;
669 std::atomic<int64> m_quota_size;
670
671 /*
672 Counter incremented on every flow control step.
673 */
675
676 /*
677 Remaining seconds to skip flow-control steps
678 */
680};
681
682#endif /* PIPELINE_STATS_INCLUDED */
This has the functionality of mysql_rwlock_t, with two differences:
Definition: rpl_gtid.h:309
The pipeline stats aggregator of all group members stats and flow control module.
Definition: pipeline_stats.h:593
Flow_control_module()
Default constructor.
Definition: pipeline_stats.cc:719
Flow_control_module_info m_info
Definition: pipeline_stats.h:653
int seconds_to_skip
Definition: pipeline_stats.h:679
std::atomic< int64 > m_quota_used
Definition: pipeline_stats.h:668
static const int64 MAXTPS
Definition: pipeline_stats.h:595
int32 do_wait()
Compute and wait the amount of time in microseconds that must be elapsed before a new message is sent...
Definition: pipeline_stats.cc:995
mysql_cond_t m_flow_control_cond
Definition: pipeline_stats.h:651
virtual ~Flow_control_module()
Destructor.
Definition: pipeline_stats.cc:736
void flow_control_step(Pipeline_stats_member_collector *)
Evaluate the information received in the last flow control period and adjust the system parameters ac...
Definition: pipeline_stats.cc:742
mysql_mutex_t m_flow_control_lock
Definition: pipeline_stats.h:650
std::atomic< int32 > m_holds_in_period
Definition: pipeline_stats.h:663
int handle_stats_data(const uchar *data, size_t len, const std::string &member_id)
Handles a Pipeline_stats_message, updating the Flow_control_module_info and the delay,...
Definition: pipeline_stats.cc:936
uint64 m_stamp
Definition: pipeline_stats.h:674
Pipeline_member_stats * get_pipeline_stats(const std::string &member_id)
Returns copy of individual member stats information.
Definition: pipeline_stats.cc:973
std::atomic< int64 > m_quota_size
Definition: pipeline_stats.h:669
Checkable_rwlock * m_flow_control_module_info_lock
Definition: pipeline_stats.h:657
Computed statistics per member.
Definition: pipeline_stats.h:418
std::string m_transaction_last_conflict_free
Definition: pipeline_stats.h:575
int64 m_delta_transactions_certified
Definition: pipeline_stats.h:567
void set_transaction_committed_all_members(char *str, size_t len)
Set the stable group transactions.
Definition: pipeline_stats.cc:685
Flow_control_mode m_flow_control_mode
Definition: pipeline_stats.h:577
void get_transaction_last_conflict_free(std::string &value)
Get the last positive certified transaction.
Definition: pipeline_stats.cc:690
int64 m_transactions_applied
Definition: pipeline_stats.h:568
uint64 get_stamp()
Get the last stats update stamp.
Definition: pipeline_stats.cc:704
int64 get_transactions_certified()
Get transactions certified counter value.
Definition: pipeline_stats.cc:656
int64 m_delta_transactions_local
Definition: pipeline_stats.h:571
int32 m_transactions_waiting_certification
Definition: pipeline_stats.h:564
void set_transaction_last_conflict_free(std::string &value)
Set the last positive certified transaction.
Definition: pipeline_stats.cc:695
int64 get_transactions_local()
Get local member transactions proposed counter value.
Definition: pipeline_stats.cc:664
int64 get_transactions_negative_certified()
Get transactions negatively certified.
Definition: pipeline_stats.cc:668
std::string m_transactions_committed_all_members
Definition: pipeline_stats.h:574
int64 get_delta_transactions_applied()
Get transactions applied since last stats message.
Definition: pipeline_stats.cc:648
int32 get_transactions_waiting_certification()
Get transactions waiting certification counter value.
Definition: pipeline_stats.cc:636
uint64 m_stamp
Definition: pipeline_stats.h:578
Flow_control_mode get_flow_control_mode()
Get flow_control_mode of a member.
Definition: pipeline_stats.cc:700
int32 get_transactions_waiting_apply()
Get transactions waiting apply counter value.
Definition: pipeline_stats.cc:640
Pipeline_member_stats()
Default constructor.
Definition: pipeline_stats.cc:525
int64 m_transactions_local
Definition: pipeline_stats.h:570
void debug(const char *member, int64 quota_size, int64 quota_used)
Definition: pipeline_stats.cc:707
void get_transaction_committed_all_members(std::string &value)
Get the stable group transactions.
Definition: pipeline_stats.cc:680
int64 m_transactions_negative_certified
Definition: pipeline_stats.h:572
int64 m_transactions_rows_validating
Definition: pipeline_stats.h:573
int64 m_transactions_certified
Definition: pipeline_stats.h:566
int32 m_transactions_waiting_apply
Definition: pipeline_stats.h:565
int64 get_transactions_rows_validating()
Get certification database counter value.
Definition: pipeline_stats.cc:672
void update_member_stats(Pipeline_stats_member_message &msg, uint64 stamp)
Updates member statistics with a new message from the network.
Definition: pipeline_stats.cc:583
int64 get_delta_transactions_certified()
Get transactions certified since last stats message.
Definition: pipeline_stats.cc:644
int64 m_transactions_local_rollback
Definition: pipeline_stats.h:576
int64 get_delta_transactions_local()
Get local transactions that member tried to commit since last stats message.
Definition: pipeline_stats.cc:652
bool is_flow_control_needed()
Returns true if the node is behind on some user-defined criteria.
Definition: pipeline_stats.cc:628
int64 m_delta_transactions_applied
Definition: pipeline_stats.h:569
int64 get_transactions_local_rollback()
Get local member transactions negatively certified.
Definition: pipeline_stats.cc:676
int64 get_transactions_applied()
Get transactions applied counter value.
Definition: pipeline_stats.cc:660
The pipeline collector for the local member stats.
Definition: pipeline_stats.h:269
int64 get_transactions_local_rollback()
Definition: pipeline_stats.cc:401
void decrement_transactions_waiting_apply()
Decrement transactions waiting apply counter value.
Definition: pipeline_stats.cc:363
std::atomic< uint64 > m_delta_transactions_applied_during_recovery
Definition: pipeline_stats.h:406
void increment_transactions_applied()
Increment transactions applied counter value.
Definition: pipeline_stats.cc:373
std::atomic< int64 > m_transactions_certified
Definition: pipeline_stats.h:397
Pipeline_stats_member_collector()
Default constructor.
Definition: pipeline_stats.cc:329
void clear_transactions_waiting_apply()
Set transactions waiting apply counter to 0.
Definition: pipeline_stats.cc:350
std::atomic< uint64 > m_transactions_certified_during_recovery
Definition: pipeline_stats.h:402
int64 get_transactions_applied()
Definition: pipeline_stats.cc:393
void increment_transactions_certified()
Increment transactions certified counter value.
Definition: pipeline_stats.cc:369
void increment_transactions_local()
Increment local transactions counter value.
Definition: pipeline_stats.cc:377
void compute_transactions_deltas_during_recovery()
Compute the transactions applied during last flow-control tick while the member is in recovery.
Definition: pipeline_stats.cc:425
void send_stats_member_message(Flow_control_mode mode)
Send member statistics to group.
Definition: pipeline_stats.cc:472
uint64 get_delta_transactions_applied_during_recovery()
Definition: pipeline_stats.cc:434
std::atomic< uint64 > m_transactions_certified_negatively_during_recovery
Definition: pipeline_stats.h:403
std::atomic< int64 > m_transactions_local_rollback
Definition: pipeline_stats.h:400
void increment_transactions_certified_during_recovery()
Increment certified transactions during recovery counter value.
Definition: pipeline_stats.cc:410
std::atomic< int64 > m_transactions_applied
Definition: pipeline_stats.h:398
void increment_transactions_waiting_apply()
Increment transactions waiting apply counter value.
Definition: pipeline_stats.cc:356
mysql_mutex_t m_transactions_waiting_apply_lock
Definition: pipeline_stats.h:410
std::atomic< uint64 > m_transactions_delivered_during_recovery
Definition: pipeline_stats.h:407
uint64 get_transactions_waiting_apply_during_recovery()
Definition: pipeline_stats.cc:439
void increment_transactions_certified_negatively_during_recovery()
Increment negatively certified transactions during recovery counter value.
Definition: pipeline_stats.cc:415
int32 get_transactions_waiting_apply()
Definition: pipeline_stats.cc:385
uint64 m_previous_transactions_applied_during_recovery
Definition: pipeline_stats.h:405
uint64 get_transactions_waiting_certification_during_recovery()
Definition: pipeline_stats.cc:465
void increment_transactions_applied_during_recovery()
Increment local recovery transactions counter value.
Definition: pipeline_stats.cc:420
void increment_transactions_local_rollback()
Increment local rollback transactions counter value.
Definition: pipeline_stats.cc:381
int64 get_transactions_local()
Definition: pipeline_stats.cc:397
bool send_transaction_identifiers
Definition: pipeline_stats.h:409
void set_send_transaction_identifiers()
Send Transaction Identifiers or not.
Definition: pipeline_stats.cc:405
std::atomic< int64 > m_transactions_local
Definition: pipeline_stats.h:399
std::atomic< int32 > m_transactions_waiting_apply
Definition: pipeline_stats.h:396
int64 get_transactions_certified()
Definition: pipeline_stats.cc:389
std::atomic< uint64 > m_transactions_applied_during_recovery
Definition: pipeline_stats.h:404
void increment_transactions_delivered_during_recovery()
Increment delivered transactions during recovery counter value.
Definition: pipeline_stats.cc:460
virtual ~Pipeline_stats_member_collector()
Destructor.
Definition: pipeline_stats.cc:346
Describes all statistics sent by members.
Definition: pipeline_stats.h:48
int64 m_transactions_rows_validating
Definition: pipeline_stats.h:256
enum_payload_item_type
Definition: pipeline_stats.h:50
@ PIT_TRANSACTIONS_CERTIFIED
Definition: pipeline_stats.h:61
@ PIT_TRANSACTIONS_COMMITTED_ALL_MEMBERS
Definition: pipeline_stats.h:76
@ PIT_TRANSACTION_LAST_CONFLICT_FREE
Definition: pipeline_stats.h:79
@ PIT_TRANSACTIONS_APPLIED
Definition: pipeline_stats.h:64
@ PIT_TRANSACTIONS_NEGATIVE_CERTIFIED
Definition: pipeline_stats.h:70
@ PIT_TRANSACTIONS_LOCAL_ROLLBACK
Definition: pipeline_stats.h:82
@ PIT_MAX
Definition: pipeline_stats.h:91
@ PIT_TRANSACTIONS_WAITING_CERTIFICATION
Definition: pipeline_stats.h:55
@ PIT_TRANSACTION_GTIDS_PRESENT
Definition: pipeline_stats.h:88
@ PIT_TRANSACTIONS_WAITING_APPLY
Definition: pipeline_stats.h:58
@ PIT_TRANSACTIONS_LOCAL
Definition: pipeline_stats.h:67
@ PIT_UNKNOWN
Definition: pipeline_stats.h:52
@ PIT_TRANSACTIONS_ROWS_VALIDATING
Definition: pipeline_stats.h:73
@ PIT_FLOW_CONTROL_MODE
Definition: pipeline_stats.h:85
int32 get_transactions_waiting_certification()
Get transactions waiting certification counter value.
Definition: pipeline_stats.cc:109
Flow_control_mode m_flow_control_mode
Definition: pipeline_stats.h:261
int64 m_transactions_local_rollback
Definition: pipeline_stats.h:260
std::string m_transaction_last_conflict_free
Definition: pipeline_stats.h:259
bool m_transaction_gtids_present
Definition: pipeline_stats.h:257
int32 get_transactions_waiting_apply()
Get transactions waiting apply counter value.
Definition: pipeline_stats.cc:119
int64 m_transactions_applied
Definition: pipeline_stats.h:253
int64 get_transactions_local_rollback()
Get local transactions rolled back by the member.
Definition: pipeline_stats.cc:148
Pipeline_stats_member_message(int32 transactions_waiting_certification, int32 transactions_waiting_apply, int64 transactions_certified, int64 transactions_applied, int64 transactions_local, int64 transactions_negative_certified, int64 transactions_rows_validating, bool transaction_gtids, const std::string &transactions_committed_all_members, const std::string &transactions_last_conflict_free, int64 transactions_local_rollback, Flow_control_mode mode)
Message constructor.
Definition: pipeline_stats.cc:67
int64 get_transactions_negative_certified()
Get negatively certified transaction by member.
Definition: pipeline_stats.cc:134
~Pipeline_stats_member_message() override
Message destructor.
void encode_payload(std::vector< unsigned char > *buffer) const override
Encodes the message contents for transmission.
Definition: pipeline_stats.cc:170
int64 get_transactions_local()
Get local transactions that member tried to commit.
Definition: pipeline_stats.cc:129
int64 get_transactions_certified()
Get transactions certified.
Definition: pipeline_stats.cc:114
std::string m_transactions_committed_all_members
Definition: pipeline_stats.h:258
void decode_payload(const unsigned char *buffer, const unsigned char *end) override
Message decoding method.
Definition: pipeline_stats.cc:227
const std::string & get_transaction_last_conflict_free()
Get last positive certified transaction.
Definition: pipeline_stats.cc:160
int32 m_transactions_waiting_certification
Definition: pipeline_stats.h:250
int32 m_transactions_waiting_apply
Definition: pipeline_stats.h:251
Flow_control_mode get_flow_control_mode()
Get flow-control mode of member.
Definition: pipeline_stats.cc:165
const std::string & get_transaction_committed_all_members()
Get set of stable group transactions.
Definition: pipeline_stats.cc:154
int64 m_transactions_certified
Definition: pipeline_stats.h:252
bool get_transation_gtids_present() const
Returns a flag indicating whether or not the GTIDs on this stats message are updated/present.
Definition: pipeline_stats.cc:144
int64 m_transactions_negative_certified
Definition: pipeline_stats.h:255
int64 m_transactions_local
Definition: pipeline_stats.h:254
int64 get_transactions_applied()
Get transactions applied.
Definition: pipeline_stats.cc:124
int64 get_transactions_rows_validating()
Get size of conflict detection database.
Definition: pipeline_stats.cc:139
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:64
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:56
unsigned char uchar
Definition: my_inttypes.h:52
int64_t int64
Definition: my_inttypes.h:68
int32_t int32
Definition: my_inttypes.h:66
uint64_t uint64
Definition: my_inttypes.h:69
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1044
Definition: buf0block_hint.cc:30
mutable_buffer buffer(void *p, size_t n) noexcept
Definition: buffer.h:420
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:192
mode
Definition: file_handle.h:60
std::map< std::string, Pipeline_member_stats > Flow_control_module_info
Data type that holds all members stats.
Definition: pipeline_stats.h:585
Flow_control_mode
Flow control modes: FCM_DISABLED flow control disabled FCM_QUOTA introduces a delay only on transacti...
Definition: pipeline_stats.h:41
@ FCM_DISABLED
Definition: pipeline_stats.h:41
@ FCM_QUOTA
Definition: pipeline_stats.h:41
An instrumented cond structure.
Definition: mysql_cond_bits.h:50
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:50