MySQL 8.4.0
Source Code Documentation
gcs_xcom_statistics_storage_impl.h
Go to the documentation of this file.
1/* Copyright (c) 2023, 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 GCS_XCOM_STATISTICS_STORAGE_IMPL_H
25#define GCS_XCOM_STATISTICS_STORAGE_IMPL_H
26
29
30/**
31 * @brief GCS implementation of the statistics storage of XCom
32 *
33 */
36 public:
39 : m_stats_manager_interface(manager_interface) {}
40 virtual ~Gcs_xcom_statistics_storage_impl() override = default;
41
42 void add_sucessful_paxos_round() override;
43 void add_empty_proposal_round() override;
44 void add_bytes_sent(uint64_t bytes_sent) override;
45 void add_proposal_time(unsigned long long proposal_time) override;
46 void add_three_phase_paxos() override;
47 void add_message() override;
48 void add_bytes_received(uint64_t bytes_received) override;
49 void set_last_proposal_time(unsigned long long proposal_time) override;
50
51 private:
53};
54#endif // GCS_XCOM_STATISTICS_STORAGE_IMPL_H
This class is the storage and provider of all statistics coming from either XCom and GCS.
Definition: gcs_xcom_statistics_manager.h:65
GCS implementation of the statistics storage of XCom.
Definition: gcs_xcom_statistics_storage_impl.h:35
void add_bytes_sent(uint64_t bytes_sent) override
Adds to bytes sent to all members.
Definition: gcs_xcom_statistics_storage_impl.cc:34
void set_last_proposal_time(unsigned long long proposal_time) override
Sets the last proposal time.
Definition: gcs_xcom_statistics_storage_impl.cc:58
Gcs_xcom_statistics_manager_interface * m_stats_manager_interface
Definition: gcs_xcom_statistics_storage_impl.h:52
virtual ~Gcs_xcom_statistics_storage_impl() override=default
void add_message() override
Adds one message sent.
Definition: gcs_xcom_statistics_storage_impl.cc:48
void add_empty_proposal_round() override
Adds one Noop proposal round.
Definition: gcs_xcom_statistics_storage_impl.cc:30
void add_proposal_time(unsigned long long proposal_time) override
Adds to the cumulative proposal time.
Definition: gcs_xcom_statistics_storage_impl.cc:38
void add_sucessful_paxos_round() override
Adds one successful PAXOS round.
Definition: gcs_xcom_statistics_storage_impl.cc:26
void add_bytes_received(uint64_t bytes_received) override
Adds to bytes received in this member.
Definition: gcs_xcom_statistics_storage_impl.cc:52
void add_three_phase_paxos() override
Adds one 3-Phase PAXOS round.
Definition: gcs_xcom_statistics_storage_impl.cc:44
Gcs_xcom_statistics_storage_impl(Gcs_xcom_statistics_manager_interface *manager_interface)
Definition: gcs_xcom_statistics_storage_impl.h:37
Interface class for all statistics that XCom will provide.
Definition: statistics_storage_interface.h:33