MySQL 9.0.0
Source Code Documentation
Gcs_statistics_interface Class Referenceabstract

This interface represents all statistics that a binding implementation should provide. More...

#include <gcs_statistics_interface.h>

Inheritance diagram for Gcs_statistics_interface:
[legend]

Public Member Functions

virtual uint64_t get_all_sucessful_proposal_rounds () const =0
 Sum of all proposals that were initiated and terminated in this node. More...
 
virtual uint64_t get_all_empty_proposal_rounds () const =0
 Sum of all empty proposal rounds that were initiated and terminated in this node. More...
 
virtual uint64_t get_all_bytes_sent () const =0
 Sum of all socket-level bytes that were sent to all group nodes originating on this node. More...
 
virtual unsigned long long get_cumulative_proposal_time () const =0
 The sum of elapsed time of all consensus rounds started and finished in this node. More...
 
virtual void get_suspicious_count (std::list< Gcs_node_suspicious > &suspicious) const =0
 A list of pairs between a group member address and the number of times the local node has seen it as suspected. More...
 
virtual uint64_t get_all_full_proposal_count () const =0
 The number of full 3-Phase PAXOS that this node initiated. More...
 
virtual uint64_t get_all_messages_sent () const =0
 The number of high-level messages that this node sent to the group. More...
 
virtual uint64_t get_all_message_bytes_received () const =0
 The sum of all socket-level bytes that were received to from group nodes having as a destination this node. More...
 
virtual unsigned long long get_last_proposal_round_time () const =0
 The time in which our last consensus proposal was approved. More...
 
virtual ~Gcs_statistics_interface ()=default
 

Detailed Description

This interface represents all statistics that a binding implementation should provide.

Constructor & Destructor Documentation

◆ ~Gcs_statistics_interface()

virtual Gcs_statistics_interface::~Gcs_statistics_interface ( )
virtualdefault

Member Function Documentation

◆ get_all_bytes_sent()

virtual uint64_t Gcs_statistics_interface::get_all_bytes_sent ( ) const
pure virtual

Sum of all socket-level bytes that were sent to all group nodes originating on this node.

Socket-level bytes mean that we will report more data here than in the sent messages, because they are multiplexed and sent to each member.

As an example, if we have a group with 3 members and we send a 100 bytes message, this value will account for 300 bytes, since we send 100 bytes to each node.

Returns
uint64_t the value of all bytes sent

Implemented in Gcs_xcom_statistics.

◆ get_all_empty_proposal_rounds()

virtual uint64_t Gcs_statistics_interface::get_all_empty_proposal_rounds ( ) const
pure virtual

Sum of all empty proposal rounds that were initiated and terminated in this node.

Returns
uint64_t the value of empty proposal rounds

Implemented in Gcs_xcom_statistics.

◆ get_all_full_proposal_count()

virtual uint64_t Gcs_statistics_interface::get_all_full_proposal_count ( ) const
pure virtual

The number of full 3-Phase PAXOS that this node initiated.

If this number grows, it means that at least of the node is having issues answering to Proposals, either by slowliness or network issues. Use togheter with count_member_failure_suspicions to try and do some diagnose.

Returns
uint64_t the value of all 3-phase PAXOS runs

Implemented in Gcs_xcom_statistics.

◆ get_all_message_bytes_received()

virtual uint64_t Gcs_statistics_interface::get_all_message_bytes_received ( ) const
pure virtual

The sum of all socket-level bytes that were received to from group nodes having as a destination this node.

Returns
uint64_t the value for all message bytes received

Implemented in Gcs_xcom_statistics.

◆ get_all_messages_sent()

virtual uint64_t Gcs_statistics_interface::get_all_messages_sent ( ) const
pure virtual

The number of high-level messages that this node sent to the group.

These messages are the ones the we receive via the API to be proposed to the group. XCom has a batching mechanism, that will gather these messages and propose them all togheter. This will acocunt the number of message before being batched.

Returns
uint64_t the value for all messages sent

Implemented in Gcs_xcom_statistics.

◆ get_all_sucessful_proposal_rounds()

virtual uint64_t Gcs_statistics_interface::get_all_sucessful_proposal_rounds ( ) const
pure virtual

Sum of all proposals that were initiated and terminated in this node.

Returns
uint64_t the value of all sucessful proposal rounds

Implemented in Gcs_xcom_statistics.

◆ get_cumulative_proposal_time()

virtual unsigned long long Gcs_statistics_interface::get_cumulative_proposal_time ( ) const
pure virtual

The sum of elapsed time of all consensus rounds started and finished in this node.

Togheter with count_all_consensus_proposals, we can identify if the individual consensus time has a trend of going up, thus signaling a possible problem.

Returns
unsigned long long the aggregated value of all proposal times

Implemented in Gcs_xcom_statistics.

◆ get_last_proposal_round_time()

virtual unsigned long long Gcs_statistics_interface::get_last_proposal_round_time ( ) const
pure virtual

The time in which our last consensus proposal was approved.

Reported in a timestamp format. This is an indicator if the group is halted or making slow progress.

Returns
unsigned long long the timestamp value of the last proposal round

Implemented in Gcs_xcom_statistics.

◆ get_suspicious_count()

virtual void Gcs_statistics_interface::get_suspicious_count ( std::list< Gcs_node_suspicious > &  suspicious) const
pure virtual

A list of pairs between a group member address and the number of times the local node has seen it as suspected.

It contains all the suspicious from all nodes that belong or belonged to the group. This means that it might contain MORE information that just the current members. It also only contains ONLY the members that were UNREACHABLE in any given moment. Any member that was never faulty, will not be presented in this list.

Any client calling this API must filter out or add in any information that finds suitable to present to an end user.

Implemented in Gcs_xcom_statistics.


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