MySQL  8.0.19
Source Code Documentation
member_info.h
Go to the documentation of this file.
1 /* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
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 also distributed 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 included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef MEMBER_INFO_INCLUDE
24 #define MEMBER_INFO_INCLUDE
25 
26 /*
27  The file contains declarations relevant to Member state and
28  its identification by the Protocol Client.
29 */
30 
31 /*
32  Since this file is used on unit tests includes must set here and
33  not through plugin_server_include.h.
34 */
35 
36 #include <list>
37 #include <map>
38 #include <set>
39 #include <sstream>
40 #include <string>
41 #include <vector>
42 
43 #include "my_inttypes.h"
44 #include "my_sys.h"
50 
51 /*
52  Encoding of the group_replication_enforce_update_everywhere_checks
53  config value in the member info structure.
54 */
55 #define CNF_ENFORCE_UPDATE_EVERYWHERE_CHECKS_F 0x1
56 
57 /*
58  Encoding of the group_replication_single_primary_mode config value
59  in the member info structure.
60 */
61 #define CNF_SINGLE_PRIMARY_MODE_F 0x2
62 
63 /*
64  Valid values of lower_case_table_names are 0 - 2.
65  So when member has DEFAULT_NOT_RECEIVED value, it means its
66  lower_case_table_names value is not known.
67 */
68 #define DEFAULT_NOT_RECEIVED_LOWER_CASE_TABLE_NAMES 65540
69 #ifndef DBUG_OFF
70 #define SKIP_ENCODING_LOWER_CASE_TABLE_NAMES 65541
71 #endif
72 
73 /*
74  @class Group_member_info
75 
76  Describes all the properties of a group member
77 */
79  public:
81  // This type should not be used anywhere.
83 
84  // Length of the payload item: variable
86 
87  // Length of the payload item: 2 bytes
88  PIT_PORT = 2,
89 
90  // Length of the payload item: variable
91  PIT_UUID = 3,
92 
93  // Length of the payload item: variable
95 
96  // Length of the payload item: 1 byte
98 
99  // Length of the payload item: 4 bytes
101 
102  // Length of the payload item: 2 bytes
104 
105  // Length of the payload item: variable
107 
108  // Length of the payload item: variable
110 
111  // Length of the payload item: 8 bytes
113 
114  // length of the role item: 1 byte
116 
117  // length of the configuration flags: 4 bytes
119 
120  // length of the conflict detection enabled: 1 byte
122 
123  // Length of the payload item: 2 bytes
125 
126  // Length of the payload item: 2 bytes
128 
129  // Length of the payload item: 1 bytes
131 
132  // Length of the payload item: 1 bytes
134 
135  // Length of the payload item: 1 bytes
137 
138  // Length of the payload item: variable
140 
141  // No valid type codes can appear after this one.
142  PIT_MAX = 20
143  };
144 
145  /*
146  @enum Member_recovery_status
147 
148  This enumeration describes all the states that a member can assume while in a
149  group.
150  */
151  typedef enum {
157  MEMBER_END // the end of the enum
159 
160  /*
161  @enum Group_member_role
162 
163  This enumeration describes all the roles a server can have.
164  */
165  typedef enum {
170 
171  /**
172  Group_member_info constructor
173 
174  @param[in] hostname_arg member hostname
175  @param[in] port_arg member port
176  @param[in] uuid_arg member uuid
177  @param[in] write_set_extraction_algorithm write set extraction
178  algorithm
179  @param[in] gcs_member_id_arg member GCS member
180  identifier
181  @param[in] status_arg member Recovery status
182  @param[in] member_version_arg member version
183  @param[in] gtid_assignment_block_size_arg member gtid assignment
184  block size
185  @param[in] role_arg member role within the
186  group
187  @param[in] in_single_primary_mode is member in single mode
188  @param[in] has_enforces_update_everywhere_checks has member enforce update
189  check
190  @param[in] member_weight_arg member_weight
191  @param[in] lower_case_table_names_arg lower case table names
192  @param[in] psi_mutex_key_arg mutex key
193  @param[in] default_table_encryption_arg default_table_encryption
194  */
195  Group_member_info(const char *hostname_arg, uint port_arg,
196  const char *uuid_arg, int write_set_extraction_algorithm,
197  const std::string &gcs_member_id_arg,
199  Member_version &member_version_arg,
200  ulonglong gtid_assignment_block_size_arg,
202  bool in_single_primary_mode,
204  uint member_weight_arg, uint lower_case_table_names_arg,
205  bool default_table_encryption_arg,
206  PSI_mutex_key psi_mutex_key_arg =
208 
209  /**
210  Copy constructor
211 
212  @param other source of the copy
213  */
215 
216  /**
217  * Group_member_info raw data constructor
218  *
219  * @param[in] data raw data
220  * @param[in] len raw data length
221  * @param[in] psi_mutex_key_arg mutex key
222  */
223  Group_member_info(const uchar *data, size_t len,
224  PSI_mutex_key psi_mutex_key_arg =
226 
227  /**
228  Destructor
229  */
230  virtual ~Group_member_info();
231 
232  /**
233  Update Group_member_info.
234 
235  @param[in] hostname_arg member hostname
236  @param[in] port_arg member port
237  @param[in] uuid_arg member uuid
238  @param[in] write_set_extraction_algorithm write set extraction
239  algorithm
240  @param[in] gcs_member_id_arg member GCS member
241  identifier
242  @param[in] status_arg member Recovery status
243  @param[in] member_version_arg member version
244  @param[in] gtid_assignment_block_size_arg member gtid assignment
245  block size
246  @param[in] role_arg member role within the
247  group
248  @param[in] in_single_primary_mode is member in single mode
249  @param[in] has_enforces_update_everywhere_checks has member enforce update
250  check
251  @param[in] member_weight_arg member_weight
252  @param[in] lower_case_table_names_arg lower case table names
253  @param[in] default_table_encryption_arg default table encryption
254  */
255  void update(char *hostname_arg, uint port_arg, char *uuid_arg,
257  const std::string &gcs_member_id_arg,
259  Member_version &member_version_arg,
260  ulonglong gtid_assignment_block_size_arg,
262  bool in_single_primary_mode,
264  uint member_weight_arg, uint lower_case_table_names_arg,
265  bool default_table_encryption_arg);
266 
267  /**
268  @return the member hostname
269  */
270  std::string get_hostname();
271 
272  /**
273  @return the member port
274  */
275  uint get_port();
276 
277  /**
278  @return the member uuid
279  */
280  std::string get_uuid();
281 
282  /**
283  @return the member identifier in the GCS layer
284  */
286 
287  /**
288  @return the member recovery status
289  */
291 
292  /**
293  @return the member role type code.
294  */
296 
297  /**
298  @return the member role type code in string
299  */
300  const char *get_member_role_string();
301 
302  /**
303  @return the member plugin version
304  */
306 
307  /**
308  @return the member GTID_EXECUTED set
309  */
310  std::string get_gtid_executed();
311 
312  /**
313  @return the member GTID_PURGED set
314  */
315  std::string get_gtid_purged();
316 
317  /**
318  @return the member GTID_RETRIEVED set for the applier channel
319  */
320  std::string get_gtid_retrieved();
321 
322  /**
323  @return the member algorithm for extracting write sets
324  */
326 
327  /**
328  @return the member gtid assignment block size
329  */
331 
332  /**
333  @return the member configuration flags
334  */
336 
337  /**
338  Set the primary flag
339  @param in_primary_mode is the member in primary mode
340  */
342 
343  /**
344  Set the enforces_update_everywhere_checks flag
345  @param enforce_everywhere_checks are the update everywhere checks active or
346  not
347  */
349  bool enforce_everywhere_checks);
350 
351  /**
352  @return the global-variable lower case table names value
353  */
355 
356  /**
357  @return the global-variable lower case table names value
358  */
360 
361  /**
362  @return the member state of system variable
363  group_replication_single_primary_mode
364  */
365  bool in_primary_mode();
366 
367  /**
368  @return the member state of system variable
369  group_replication_enforce_update_everywhere_checks
370  */
372 
373  /**
374  Updates this object recovery status
375 
376  @param[in] new_status the status to set
377  */
379 
380  /**
381  Updates this object GTID sets
382 
383  @param[in] executed_gtids the status to set
384  @param[in] purged_gtids the status to set
385  @param[in] retrieve_gtids the status to set
386  */
387  void update_gtid_sets(std::string &executed_gtids, std::string &purged_gtids,
388  std::string &retrieve_gtids);
389 
390  /**
391  Updates this object member role.
392 
393  @param[in] new_role the role to set.
394  */
395  void set_role(Group_member_role new_role);
396 
397  /**
398  @return the member status as string.
399  */
401 
402  /**
403  @return configuration flag as string
404  */
405  static const char *get_configuration_flag_string(
406  const uint32 configuation_flag);
407 
408  /**
409  @return the member configuration flags as string
410  */
411  static std::string get_configuration_flags_string(
412  const uint32 configuation_flags);
413 
414  /**
415  @return Compare two members using member version
416  */
418  Group_member_info *m2);
419 
420  /**
421  @return Compare two members using server uuid
422  */
424  Group_member_info *m2);
425 
426  /**
427  @return Compare two members using member weight
428  @note if the weight is same, the member is sorted in
429  lexicographical order using its uuid.
430  */
432  Group_member_info *m2);
433 
434  /**
435  Return true if member version is higher than other member version
436  */
438 
439  /**
440  Return true if server uuid is lower than other member server uuid
441  */
442  bool has_lower_uuid(Group_member_info *other);
443 
444  /**
445  Return true if member weight is higher than other member weight
446  */
448 
449  /**
450  Redefinition of operate ==, which operate upon the uuid
451  */
452  bool operator==(Group_member_info &other);
453 
454  /**
455  Sets this member as unreachable.
456  */
457  void set_unreachable();
458 
459  /**
460  Sets this member as reachable.
461  */
462  void set_reachable();
463 
464  /**
465  Return true if this has been flagged as unreachable.
466  */
467  bool is_unreachable();
468 
469  /**
470  Update this member conflict detection to true
471  */
473 
474  /**
475  Update this member conflict detection to false
476  */
478 
479  /**
480  Return true if conflict detection is enable on this member
481  */
483 
484  /**
485  Update member weight
486 
487  @param[in] new_member_weight new member_weight to set
488  */
489  void set_member_weight(uint new_member_weight);
490 
491  /**
492  Return member weight
493  */
495 
496  /**
497  @return is a group action running in this member
498  */
500 
501  /**
502  Sets if the member is currently running a group action
503  @param is_running is an action running
504  */
506 
507  /**
508  @return is a primary election running in this member
509  */
511 
512  /**
513  Sets if the member is currently running a primary election
514  @param is_running is an election running
515  */
517 
518  protected:
519  void encode_payload(std::vector<unsigned char> *buffer) const;
520  void decode_payload(const unsigned char *buffer, const unsigned char *);
521 
522  private:
523  /**
524  Internal method without concurrency control.
525 
526  @return the member state of system variable
527  group_replication_single_primary_mode
528  */
530 
531  /**
532  Return true if server uuid is lower than other member server uuid
533  Internal method without concurrency control.
534  */
536 
538  std::string hostname;
540  std::string uuid;
544  std::string executed_gtid_set;
545  std::string purged_gtid_set;
546  std::string retrieved_gtid_set;
558 #ifndef DBUG_OFF
559  public:
561 #endif
562  // Allow use copy constructor on unit tests.
564 };
565 
566 /*
567  @interface Group_member_info_manager_interface
568 
569  Defines the set of operations that a Group_member_info_manager should provide.
570  This is a component that lies on top of the GCS, on the application level,
571  providing richer and relevant information to the plugin.
572  */
574  public:
576 
577  virtual size_t get_number_of_members() = 0;
578 
579  /**
580  Is the member present in the group info
581 
582  @param[in] uuid uuid to check
583  @return true if present, false otherwise
584  */
585  virtual bool is_member_info_present(const std::string &uuid) = 0;
586 
587  /**
588  Retrieves a registered Group member by its uuid
589 
590  @param[in] uuid uuid to retrieve
591  @return reference to a copy of Group_member_info. NULL if not managed.
592  The return value must deallocated by the caller.
593  */
594  virtual Group_member_info *get_group_member_info(const std::string &uuid) = 0;
595 
596  /**
597  Retrieves a registered Group member by an index function.
598  One is free to determine the index function. Nevertheless, it should have
599  the same result regardless of the member of the group where it is called
600 
601  @param[in] idx the index
602  @return reference to a Group_member_info. NULL if not managed
603  */
605 
606  /**
607  Return lowest member version.
608 
609  @return group lowest version, if used at place where member can be OFFLINE
610  or in ERROR state, version 0xFFFFFF may be returned(not found)
611  */
613 
614  /**
615  Retrieves a registered Group member by its backbone GCS identifier
616 
617  @param[in] idx the GCS identifier
618  @return reference to a copy of Group_member_info. NULL if not managed.
619  The return value must deallocated by the caller.
620  */
622  Gcs_member_identifier idx) = 0;
623 
624  /**
625  Retrieves all Group members managed by this site
626 
627  @return a vector with copies to all managed Group_member_info
628  */
629  virtual std::vector<Group_member_info *> *get_all_members() = 0;
630 
631  /**
632  Retrieves all ONLINE Group members managed by this site, or
633  NULL if any group member version is from a version lower than
634  #TRANSACTION_WITH_GUARANTEES_VERSION.
635 
636  @return list of all ONLINE members, if all members have version
637  equal or greater than #TRANSACTION_WITH_GUARANTEES_VERSION
638  otherwise NULL
639 
640  @note the memory allocated for the list ownership belongs to the
641  caller
642  */
643  virtual std::list<Gcs_member_identifier> *get_online_members_with_guarantees(
644  const Gcs_member_identifier &exclude_member) = 0;
645 
646  /**
647  Adds a new member to be managed by this Group manager
648 
649  @param[in] new_member new group member
650  */
651  virtual void add(Group_member_info *new_member) = 0;
652 
653  /**
654  Removes all members of the group and update new local member.
655 
656  @param[in] update_local_member new Group member
657  */
658  virtual void update(Group_member_info *update_local_member) = 0;
659 
660  /**
661  Updates all members of the group. Typically used after a view change.
662 
663  @param[in] new_members new Group members
664  */
665  virtual void update(std::vector<Group_member_info *> *new_members) = 0;
666 
667  /**
668  Updates the status of a single member
669 
670  @param[in] uuid member uuid
671  @param[in] new_status status to change to
672  @param[in,out] ctx The notification context to update.
673  */
674  virtual void update_member_status(
675  const std::string &uuid,
677  Notification_context &ctx) = 0;
678 
679  /**
680  Updates the GTID sets on a single member
681 
682 
683  @param[in] uuid member uuid
684  @param[in] gtid_executed the member executed GTID set
685  @param[in] purged_gtids the server purged GTID set
686  @param[in] gtid_retrieved the member retrieved GTID set for the applier
687  */
688  virtual void update_gtid_sets(const std::string &uuid,
689  std::string &gtid_executed,
690  std::string &purged_gtids,
691  std::string &gtid_retrieved) = 0;
692  /**
693  Updates the role of a single member
694 
695  @param[in] uuid member uuid
696  @param[in] new_role role to change to
697  @param[in,out] ctx The notification context to update.
698  */
699  virtual void update_member_role(const std::string &uuid,
701  Notification_context &ctx) = 0;
702 
703  /**
704  Updates the primary/secondary roles of the group.
705  This method allows for all roles to be updated at once in the same method
706 
707  @param[in] uuid the primary member uuid
708  @param[in,out] ctx The notification context to update.
709  */
710  virtual void update_group_primary_roles(const std::string &uuid,
711  Notification_context &ctx) = 0;
712 
713  /**
714  Updates the weight of a single member
715 
716  @param[in] uuid member uuid
717  @param[in] member_weight the new weight
718 */
719  virtual void update_member_weight(const std::string &uuid,
720  uint member_weight) = 0;
721 
722  /**
723  Changes the primary flag on all members
724  @param in_primary_mode is the member in primary mode
725  */
726  virtual void update_primary_member_flag(bool in_primary_mode) = 0;
727 
728  /**
729  Set the enforces_update_everywhere_checks flag on all members
730  @param enforce_everywhere are the update everywhere checks active or not
731  */
733  bool enforce_everywhere) = 0;
734 
735  /**
736  Encodes this object to send via the network
737 
738  @param[out] to_encode out parameter to receive the encoded data
739  */
740  virtual void encode(std::vector<uchar> *to_encode) = 0;
741 
742  /**
743  Decodes the raw format of this object
744 
745  @param[in] to_decode raw encoded data
746  @param[in] length raw encoded data length
747  @return a vector of Group_member_info references
748  */
749  virtual std::vector<Group_member_info *> *decode(const uchar *to_decode,
750  size_t length) = 0;
751 
752  /**
753  Check if some member of the group has the conflict detection enable
754 
755  @return true if at least one member has conflict detection enabled
756  */
757  virtual bool is_conflict_detection_enabled() = 0;
758 
759  /**
760  Return the uuid for the for the primary
761 
762  @param[out] primary_member_uuid the uuid of the primary will be assigned
763  here.
764 
765  @note If there is no primary or the member is on error state, the returned
766  uuid is "UNDEFINED". If not on primary mode it returns an empty string.
767 
768  @return true if the member is in primary mode, false if it is not.
769  */
770  virtual bool get_primary_member_uuid(std::string &primary_member_uuid) = 0;
771 
772  /**
773  Return the group member info for the current group primary
774 
775  @note the returned reference must be deallocated by the caller.
776 
777  @return reference to a Group_member_info. NULL if not managed
778  */
780 
781  /**
782  Check if majority of the group is unreachable
783 
784  This approach is optimistic, right after return the majority can be
785  reestablish or go away.
786 
787  @return true if majority of the group is unreachable
788  */
789  virtual bool is_majority_unreachable() = 0;
790 
791  /**
792  Check if an unreachable member exists
793 
794  This approach is optimistic, right after return a member can be marked as
795  rechable/unreachable
796 
797  @return true if an unreachable member exists
798  */
799  virtual bool is_unreachable_member_present() = 0;
800 
801  /**
802  Check if a member in recovery exists in the group
803 
804  This approach is optimistic, right after return a member can enter the group
805 
806  @return true if a member in recovery exists
807  */
808  virtual bool is_recovering_member_present() = 0;
809 
810  /**
811  This method returns all ONLINE and RECOVERING members comma separated
812  host and port in string format.
813 
814  @return hosts and port of all ONLINE and RECOVERING members
815  */
816  virtual std::string get_string_current_view_active_hosts() const = 0;
817 
818  /**
819  This method returns the update lock for consistent read of member state.
820 
821  @return update_lock reference
822  */
823  virtual mysql_mutex_t *get_update_lock() = 0;
824 };
825 
826 /**
827  @class Group_member_info_manager
828 
829  Implementation of the interface Group_member_info_manager_interface
830  */
832  public:
835  PSI_mutex_key psi_mutex_key =
837 
838  virtual ~Group_member_info_manager();
839 
840  size_t get_number_of_members();
841 
842  bool is_member_info_present(const std::string &uuid);
843 
844  Group_member_info *get_group_member_info(const std::string &uuid);
845 
847 
849 
852 
853  std::vector<Group_member_info *> *get_all_members();
854 
855  std::list<Gcs_member_identifier> *get_online_members_with_guarantees(
856  const Gcs_member_identifier &exclude_member);
857 
858  void add(Group_member_info *new_member);
859 
860  void update(Group_member_info *update_local_member);
861 
862  void update(std::vector<Group_member_info *> *new_members);
863 
864  void update_member_status(const std::string &uuid,
866  Notification_context &ctx);
867 
868  void update_gtid_sets(const std::string &uuid, std::string &gtid_executed,
869  std::string &purged_gtids, std::string &gtid_retrieved);
870 
871  void update_member_role(const std::string &uuid,
873  Notification_context &ctx);
874 
875  void update_group_primary_roles(const std::string &uuid,
876  Notification_context &ctx);
877 
878  void update_member_weight(const std::string &uuid, uint member_weight);
879 
880  void update_primary_member_flag(bool in_primary_mode);
881 
882  void update_enforce_everywhere_checks_flag(bool enforce_everywhere);
883 
884  void encode(std::vector<uchar> *to_encode);
885 
886  std::vector<Group_member_info *> *decode(const uchar *to_decode,
887  size_t length);
888 
890 
891  bool get_primary_member_uuid(std::string &primary_member_uuid);
892 
894 
896 
898 
900 
901  std::string get_string_current_view_active_hosts() const;
902 
904 
905  private:
906  void clear_members();
907 
908  std::map<std::string, Group_member_info *> *members;
910 
912 };
913 
914 /**
915  This is the Group_member_info_manager message.
916  It is composed by a fixed header and 1 or more Group_member_info messages.
917  Each Group_member_info message does have its own fixed header.
918 
919  The on-the-wire representation of the message is:
920 
921  +-------------------+-----------+--------------------------------------+
922  | field | wire size | description |
923  +===================+===========+======================================+
924  | version | 4 bytes | protocol version |
925  | fixed_hdr_len | 2 bytes | length of the fixed header |
926  | message_len | 8 bytes | length of the message |
927  | cargo_type | 2 bytes | the cargo type in the payload |
928  +-------------------+-----------+--------------------------------------+
929  | payload_item_type | 2 bytes | PIT_MEMBERS_NUMBER |
930  | payload_item_len | 8 bytes | size of PIT_MEMBERS_NUMBER value |
931  | payload_item | X bytes | number of members |
932  +-------------------+-----------+--------------------------------------+
933  | payload_item_type | 2 bytes | PIT_MEMBER_DATA |
934  | payload_item_len | 8 bytes | size of CT_MEMBER_INFO_MESSAGE data |
935  | payload_item | X bytes | CT_MEMBER_INFO_MESSAGE data |
936  +-------------------+-----------+--------------------------------------+
937 
938  The last tree lines occur the number of times specified on
939  PIT_MEMBERS_NUMBER.
940 */
942  public:
944  // This type should not be used anywhere.
946 
947  // Length of the payload item: 2 bytes
949 
950  // Length of the payload item: variable
952 
953  // No valid type codes can appear after this one.
955  };
956 
957  /**
958  Group_member_info_manager_message constructor.
959  */
961 
962  /**
963  Group_member_info_manager_message constructor.
964 
965  @param[in] group_info Group_member_info_manager members information
966  */
968 
969  /**
970  Group_member_info_manager_message constructor.
971 
972  @param[in] member_info Group_member_info one member information
973  */
975 
976  /**
977  Group_member_info_manager_message destructor.
978  */
980 
981  /**
982  Retrieves all Group members on this message.
983 
984  @return a vector with copies to all members.
985  */
986  std::vector<Group_member_info *> *get_all_members();
987 
988  protected:
989  void encode_payload(std::vector<unsigned char> *buffer) const;
990  void decode_payload(const unsigned char *buffer, const unsigned char *end);
991 
992  private:
993  /**
994  Clear members and its allocated memory.
995  */
996  void clear_members();
997 
998  std::vector<Group_member_info *> *members;
999 };
1000 
1001 #endif /* MEMBER_INFO_INCLUDE */
Group_member_info::encode_payload
void encode_payload(std::vector< unsigned char > *buffer) const
Encodes the contents of this instance payload into the buffer.
Definition: member_info.cc:184
Group_member_info::PIT_RETRIEVED_GTID
@ PIT_RETRIEVED_GTID
Definition: member_info.h:109
Group_member_info::has_greater_version
bool has_greater_version(Group_member_info *other)
Return true if member version is higher than other member version.
Definition: member_info.cc:686
Group_member_info::PIT_GCS_ID
@ PIT_GCS_ID
Definition: member_info.h:94
PSI_mutex_key
unsigned int PSI_mutex_key
Instrumented mutex key.
Definition: psi_mutex_bits.h:49
Group_member_info::PIT_UNKNOWN
@ PIT_UNKNOWN
Definition: member_info.h:82
Group_member_info_manager::is_recovering_member_present
bool is_recovering_member_present()
Check if a member in recovery exists in the group.
Definition: member_info.cc:1161
Group_member_info::set_is_primary_election_running
void set_is_primary_election_running(bool is_running)
Sets if the member is currently running a primary election.
Definition: member_info.cc:608
Group_member_info::get_member_status_string
static const char * get_member_status_string(Group_member_status status)
Definition: member_info.cc:618
Group_member_info::PIT_LOWER_CASE_TABLE_NAME
@ PIT_LOWER_CASE_TABLE_NAME
Definition: member_info.h:127
Group_member_info_manager_message
This is the Group_member_info_manager message.
Definition: member_info.h:941
Group_member_info::PIT_CONFLICT_DETECTION_ENABLE
@ PIT_CONFLICT_DETECTION_ENABLE
Definition: member_info.h:121
Group_member_info_manager_interface::encode
virtual void encode(std::vector< uchar > *to_encode)=0
Encodes this object to send via the network.
Group_member_info::PIT_MEMBER_ROLE
@ PIT_MEMBER_ROLE
Definition: member_info.h:115
Group_member_info::set_reachable
void set_reachable()
Sets this member as reachable.
Definition: member_info.cc:563
Group_member_info::get_port
uint get_port()
Definition: member_info.cc:410
Group_member_info_manager_interface::is_member_info_present
virtual bool is_member_info_present(const std::string &uuid)=0
Is the member present in the group info.
Group_member_info_manager_interface::get_group_member_info
virtual Group_member_info * get_group_member_info(const std::string &uuid)=0
Retrieves a registered Group member by its uuid.
Group_member_info_manager_interface::get_string_current_view_active_hosts
virtual std::string get_string_current_view_active_hosts() const =0
This method returns all ONLINE and RECOVERING members comma separated host and port in string format.
Group_member_info::update
void update(char *hostname_arg, uint port_arg, char *uuid_arg, int write_set_extraction_algorithm, const std::string &gcs_member_id_arg, Group_member_info::Group_member_status status_arg, Member_version &member_version_arg, ulonglong gtid_assignment_block_size_arg, Group_member_info::Group_member_role role_arg, bool in_single_primary_mode, bool has_enforces_update_everywhere_checks, uint member_weight_arg, uint lower_case_table_names_arg, bool default_table_encryption_arg)
Update Group_member_info.
Definition: member_info.cc:135
Group_member_info::PIT_MAX
@ PIT_MAX
Definition: member_info.h:142
Group_member_info_manager::is_conflict_detection_enabled
bool is_conflict_detection_enabled()
Check if some member of the group has the conflict detection enable.
Definition: member_info.cc:1045
Group_member_info_manager::update_member_weight
void update_member_weight(const std::string &uuid, uint member_weight)
Updates the weight of a single member.
Definition: member_info.cc:998
Group_member_info_manager_interface::add
virtual void add(Group_member_info *new_member)=0
Adds a new member to be managed by this Group manager.
Group_member_info::PIT_WRITE_SET_EXTRACTION_ALGORITHM
@ PIT_WRITE_SET_EXTRACTION_ALGORITHM
Definition: member_info.h:103
Group_member_info_manager_interface::update_group_primary_roles
virtual void update_group_primary_roles(const std::string &uuid, Notification_context &ctx)=0
Updates the primary/secondary roles of the group.
uint64
uint64_t uint64
Definition: my_inttypes.h:68
Group_member_info::PIT_PRIMARY_ELECTION_RUNNING
@ PIT_PRIMARY_ELECTION_RUNNING
Definition: member_info.h:133
Group_member_info
Definition: member_info.h:78
Group_member_info_manager::get_group_member_info
Group_member_info * get_group_member_info(const std::string &uuid)
Retrieves a registered Group member by its uuid.
Definition: member_info.cc:746
Group_member_info_manager_message::enum_payload_item_type
enum_payload_item_type
Definition: member_info.h:943
Group_member_info::MEMBER_ROLE_SECONDARY
@ MEMBER_ROLE_SECONDARY
Definition: member_info.h:167
Group_member_info_manager::is_unreachable_member_present
bool is_unreachable_member_present()
Check if an unreachable member exists.
Definition: member_info.cc:1144
Group_member_info_manager::is_member_info_present
bool is_member_info_present(const std::string &uuid)
Is the member present in the group info.
Definition: member_info.cc:732
Group_member_info::get_default_table_encryption
bool get_default_table_encryption()
Definition: member_info.cc:553
mysql_mutex_t
An instrumented mutex structure.
Definition: mysql_mutex_bits.h:49
Group_member_info_manager_message::decode_payload
void decode_payload(const unsigned char *buffer, const unsigned char *end)
Decodes the contents of the buffer and sets the payload field values according to the values decoded.
Definition: member_info.cc:1266
Group_member_info_manager::local_member_info
Group_member_info * local_member_info
Definition: member_info.h:909
Group_member_info::member_version
Member_version * member_version
Definition: member_info.h:543
Group_member_info::PIT_PURGED_GTID
@ PIT_PURGED_GTID
Definition: member_info.h:139
Group_member_info_manager_message::~Group_member_info_manager_message
virtual ~Group_member_info_manager_message()
Group_member_info_manager_message destructor.
Definition: member_info.cc:1219
Group_member_info::has_lower_uuid
bool has_lower_uuid(Group_member_info *other)
Return true if server uuid is lower than other member server uuid.
Definition: member_info.cc:697
Group_member_info_manager_message::get_all_members
std::vector< Group_member_info * > * get_all_members()
Retrieves all Group members on this message.
Definition: member_info.cc:1235
Group_member_info::get_uuid
std::string get_uuid()
Definition: member_info.cc:415
Group_member_info_manager_message::PIT_UNKNOWN
@ PIT_UNKNOWN
Definition: member_info.h:945
Group_member_info::MEMBER_OFFLINE
@ MEMBER_OFFLINE
Definition: member_info.h:153
Group_member_info::Group_member_role
Group_member_role
Definition: member_info.h:165
Group_member_info_manager::decode
std::vector< Group_member_info * > * decode(const uchar *to_decode, size_t length)
Decodes the raw format of this object.
Definition: member_info.cc:1068
Group_member_info::psi_mutex_key
PSI_mutex_key psi_mutex_key
Definition: member_info.h:563
Group_member_info::get_gtid_executed
std::string get_gtid_executed()
Definition: member_info.cc:477
Group_member_info::set_enforces_update_everywhere_checks_flag
void set_enforces_update_everywhere_checks_flag(bool enforce_everywhere_checks)
Set the enforces_update_everywhere_checks flag.
Definition: member_info.cc:517
Group_member_info_manager::update_member_status
void update_member_status(const std::string &uuid, Group_member_info::Group_member_status new_status, Notification_context &ctx)
Updates the status of a single member.
Definition: member_info.cc:919
Group_member_info_manager_interface::get_online_members_with_guarantees
virtual std::list< Gcs_member_identifier > * get_online_members_with_guarantees(const Gcs_member_identifier &exclude_member)=0
Retrieves all ONLINE Group members managed by this site, or NULL if any group member version is from ...
Group_member_info_manager_interface::get_number_of_members
virtual size_t get_number_of_members()=0
Group_member_info::PIT_EXECUTED_GTID
@ PIT_EXECUTED_GTID
Definition: member_info.h:106
Group_member_info_manager::add
void add(Group_member_info *new_member)
Adds a new member to be managed by this Group manager.
Definition: member_info.cc:874
Group_member_info::decode_payload
void decode_payload(const unsigned char *buffer, const unsigned char *)
Decodes the contents of the buffer and sets the payload field values according to the values decoded.
Definition: member_info.cc:270
Group_member_info::PIT_MEMBER_WEIGHT
@ PIT_MEMBER_WEIGHT
Definition: member_info.h:124
Group_member_info::unreachable
bool unreachable
Definition: member_info.h:549
Group_member_info_manager_interface::update
virtual void update(Group_member_info *update_local_member)=0
Removes all members of the group and update new local member.
Group_member_info_manager::get_number_of_members
size_t get_number_of_members()
Definition: member_info.cc:728
key_GR_LOCK_group_member_info_update_lock
PSI_mutex_key key_GR_LOCK_group_member_info_update_lock
Definition: plugin_psi.h:123
Group_member_info::MEMBER_UNREACHABLE
@ MEMBER_UNREACHABLE
Definition: member_info.h:156
Group_member_info::get_hostname
std::string get_hostname()
Definition: member_info.cc:405
Group_member_info::set_is_group_action_running
void set_is_group_action_running(bool is_running)
Sets if the member is currently running a group action.
Definition: member_info.cc:598
Group_member_info_manager_interface::update_member_role
virtual void update_member_role(const std::string &uuid, Group_member_info::Group_member_role new_role, Notification_context &ctx)=0
Updates the role of a single member.
Group_member_info::PIT_DEFAULT_TABLE_ENCRYPTION
@ PIT_DEFAULT_TABLE_ENCRYPTION
Definition: member_info.h:136
Group_member_info::purged_gtid_set
std::string purged_gtid_set
Definition: member_info.h:545
is_running
int is_running(task_env *t)
Definition: task.c:1633
Group_member_info_manager::update_lock
mysql_mutex_t update_lock
Definition: member_info.h:911
Group_member_info::has_lower_uuid_internal
bool has_lower_uuid_internal(Group_member_info *other)
Return true if server uuid is lower than other member server uuid Internal method without concurrency...
Definition: member_info.cc:693
Group_member_info::PIT_GTID_ASSIGNMENT_BLOCK_SIZE
@ PIT_GTID_ASSIGNMENT_BLOCK_SIZE
Definition: member_info.h:112
Group_member_info::in_primary_mode_internal
bool in_primary_mode_internal()
Internal method without concurrency control.
Definition: member_info.cc:529
Group_member_info::is_group_action_running
bool is_group_action_running()
Definition: member_info.cc:593
Group_member_info::is_unreachable
bool is_unreachable()
Return true if this has been flagged as unreachable.
Definition: member_info.cc:548
Group_member_info_manager_interface::get_primary_member_info
virtual Group_member_info * get_primary_member_info()=0
Return the group member info for the current group primary.
notification.h
Group_member_info::conflict_detection_enable
bool conflict_detection_enable
Definition: member_info.h:552
plugin_psi.h
my_inttypes.h
Group_member_info_manager_interface::update_enforce_everywhere_checks_flag
virtual void update_enforce_everywhere_checks_flag(bool enforce_everywhere)=0
Set the enforces_update_everywhere_checks flag on all members.
Group_member_info_manager::get_all_members
std::vector< Group_member_info * > * get_all_members()
Retrieves all Group members managed by this site.
Definition: member_info.cc:831
Group_member_info::update_gtid_sets
void update_gtid_sets(std::string &executed_gtids, std::string &purged_gtids, std::string &retrieve_gtids)
Updates this object GTID sets.
Definition: member_info.cc:458
Group_member_info_manager
Definition: member_info.h:831
member_version.h
Group_member_info::operator==
bool operator==(Group_member_info &other)
Redefinition of operate ==, which operate upon the uuid.
Definition: member_info.cc:613
Group_member_info::comparator_group_member_version
static bool comparator_group_member_version(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:671
Group_member_info::gtid_assignment_block_size
uint64 gtid_assignment_block_size
Definition: member_info.h:548
Group_member_info_manager_interface::decode
virtual std::vector< Group_member_info * > * decode(const uchar *to_decode, size_t length)=0
Decodes the raw format of this object.
Group_member_info_manager_interface::get_group_member_info_by_member_id
virtual Group_member_info * get_group_member_info_by_member_id(Gcs_member_identifier idx)=0
Retrieves a registered Group member by its backbone GCS identifier.
Group_member_info_manager_message::PIT_MEMBERS_NUMBER
@ PIT_MEMBERS_NUMBER
Definition: member_info.h:948
Gcs_member_identifier
Definition: gcs_member_identifier.h:39
Group_member_info::hostname
std::string hostname
Definition: member_info.h:538
Group_member_info::write_set_extraction_algorithm
uint write_set_extraction_algorithm
Definition: member_info.h:547
Group_member_info::update_lock
mysql_mutex_t update_lock
Definition: member_info.h:537
Group_member_info::get_member_version
Member_version get_member_version()
Definition: member_info.cc:472
Group_member_info::lower_case_table_names
uint lower_case_table_names
Definition: member_info.h:554
uint
unsigned int uint
Definition: uca-dump.cc:29
Group_member_info::enum_payload_item_type
enum_payload_item_type
Definition: member_info.h:80
Group_member_info_manager::update
void update(Group_member_info *update_local_member)
Removes all members of the group and update new local member.
Definition: member_info.cc:882
Group_member_info_manager_interface
Definition: member_info.h:573
Group_member_info_manager_interface::get_update_lock
virtual mysql_mutex_t * get_update_lock()=0
This method returns the update lock for consistent read of member state.
gcs_plugin_messages.h
Group_member_info::get_member_weight
uint get_member_weight()
Return member weight.
Definition: member_info.cc:588
Group_member_info::get_member_role_string
const char * get_member_role_string()
Definition: member_info.cc:431
Group_member_info::enable_conflict_detection
void enable_conflict_detection()
Update this member conflict detection to true.
Definition: member_info.cc:568
Group_member_info::MEMBER_ONLINE
@ MEMBER_ONLINE
Definition: member_info.h:152
Group_member_info_manager_interface::is_unreachable_member_present
virtual bool is_unreachable_member_present()=0
Check if an unreachable member exists.
uchar
unsigned char uchar
Definition: my_inttypes.h:51
Group_member_info_manager::get_primary_member_info
Group_member_info * get_primary_member_info()
Return the group member info for the current group primary.
Definition: member_info.cc:1109
Group_member_info::is_conflict_detection_enabled
bool is_conflict_detection_enabled()
Return true if conflict detection is enable on this member.
Definition: member_info.cc:578
Group_member_info_manager_message::members
std::vector< Group_member_info * > * members
Definition: member_info.h:998
Group_member_info::MEMBER_IN_RECOVERY
@ MEMBER_IN_RECOVERY
Definition: member_info.h:154
Group_member_info_manager::get_group_lowest_online_version
Member_version get_group_lowest_online_version()
Return lowest member version.
Definition: member_info.cc:792
Group_member_info_manager::get_primary_member_uuid
bool get_primary_member_uuid(std::string &primary_member_uuid)
Return the uuid for the for the primary.
Definition: member_info.cc:1081
Group_member_info::retrieved_gtid_set
std::string retrieved_gtid_set
Definition: member_info.h:546
rules_table_service::end
Cursor end()
A past-the-end Cursor.
Definition: rules_table_service.cc:188
Group_member_info::Group_member_info
Group_member_info(const char *hostname_arg, uint port_arg, const char *uuid_arg, int write_set_extraction_algorithm, const std::string &gcs_member_id_arg, Group_member_info::Group_member_status status_arg, Member_version &member_version_arg, ulonglong gtid_assignment_block_size_arg, Group_member_info::Group_member_role role_arg, bool in_single_primary_mode, bool has_enforces_update_everywhere_checks, uint member_weight_arg, uint lower_case_table_names_arg, bool default_table_encryption_arg, PSI_mutex_key psi_mutex_key_arg=key_GR_LOCK_group_member_info_update_lock)
Group_member_info constructor.
Definition: member_info.cc:37
Group_member_info::PIT_UUID
@ PIT_UUID
Definition: member_info.h:91
uint32
uint32_t uint32
Definition: my_inttypes.h:66
Group_member_info::PIT_GROUP_ACTION_RUNNING
@ PIT_GROUP_ACTION_RUNNING
Definition: member_info.h:130
Group_member_info::comparator_group_member_weight
static bool comparator_group_member_weight(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:681
Group_member_info::PIT_CONFIGURATION_FLAGS
@ PIT_CONFIGURATION_FLAGS
Definition: member_info.h:118
Group_member_info::has_greater_weight
bool has_greater_weight(Group_member_info *other)
Return true if member weight is higher than other member weight.
Definition: member_info.cc:702
Group_member_info::port
uint port
Definition: member_info.h:539
Group_member_info_manager::~Group_member_info_manager
virtual ~Group_member_info_manager()
Definition: member_info.cc:722
Group_member_info::MEMBER_ROLE_END
@ MEMBER_ROLE_END
Definition: member_info.h:168
Group_member_info::get_role
Group_member_role get_role()
Definition: member_info.cc:426
Group_member_info::update_recovery_status
void update_recovery_status(Group_member_status new_status)
Updates this object recovery status.
Definition: member_info.cc:453
Group_member_info_manager::clear_members
void clear_members()
Definition: member_info.cc:1032
Group_member_info_manager_message::clear_members
void clear_members()
Clear members and its allocated memory.
Definition: member_info.cc:1225
Group_member_info::get_configuration_flag_string
static const char * get_configuration_flag_string(const uint32 configuation_flag)
Definition: member_info.cc:636
Group_member_info::MEMBER_END
@ MEMBER_END
Definition: member_info.h:157
Group_member_info_manager::encode
void encode(std::vector< uchar > *to_encode)
Encodes this object to send via the network.
Definition: member_info.cc:1061
Group_member_info::set_unreachable
void set_unreachable()
Sets this member as unreachable.
Definition: member_info.cc:558
Group_member_info::~Group_member_info
virtual ~Group_member_info()
Destructor.
Definition: member_info.cc:129
Group_member_info_manager_message::Group_member_info_manager_message
Group_member_info_manager_message()
Group_member_info_manager_message constructor.
Definition: member_info.cc:1198
Group_member_info::get_lower_case_table_names
uint get_lower_case_table_names()
Definition: member_info.cc:543
Group_member_info::set_role
void set_role(Group_member_role new_role)
Updates this object member role.
Definition: member_info.cc:467
Group_member_info_manager_interface::update_member_status
virtual void update_member_status(const std::string &uuid, Group_member_info::Group_member_status new_status, Notification_context &ctx)=0
Updates the status of a single member.
Group_member_info::comparator_group_member_uuid
static bool comparator_group_member_uuid(Group_member_info *m1, Group_member_info *m2)
Definition: member_info.cc:676
Group_member_info::default_table_encryption
bool default_table_encryption
Definition: member_info.h:555
Group_member_info::in_primary_mode
bool in_primary_mode()
Definition: member_info.cc:533
Group_member_info_manager_message::encode_payload
void encode_payload(std::vector< unsigned char > *buffer) const
Encodes the contents of this instance payload into the buffer.
Definition: member_info.cc:1248
Group_member_info::get_write_set_extraction_algorithm
uint get_write_set_extraction_algorithm()
Definition: member_info.cc:492
Group_member_info::set_member_weight
void set_member_weight(uint new_member_weight)
Update member weight.
Definition: member_info.cc:583
Group_member_info_manager_interface::is_majority_unreachable
virtual bool is_majority_unreachable()=0
Check if majority of the group is unreachable.
Group_member_info_manager::members
std::map< std::string, Group_member_info * > * members
Definition: member_info.h:908
Group_member_info::uuid
std::string uuid
Definition: member_info.h:540
Group_member_info::primary_election_running
bool primary_election_running
Definition: member_info.h:557
Group_member_info::disable_conflict_detection
void disable_conflict_detection()
Update this member conflict detection to false.
Definition: member_info.cc:573
key_GR_LOCK_group_member_info_manager_update_lock
PSI_mutex_key key_GR_LOCK_group_member_info_manager_update_lock
Definition: plugin_psi.h:122
Group_member_info_manager::get_update_lock
mysql_mutex_t * get_update_lock()
This method returns the update lock for consistent read of member state.
Definition: member_info.h:903
Group_member_info::get_configuration_flags_string
static std::string get_configuration_flags_string(const uint32 configuation_flags)
Definition: member_info.cc:650
Group_member_info_manager_message::PIT_MEMBER_DATA
@ PIT_MEMBER_DATA
Definition: member_info.h:951
Group_member_info::PIT_STATUS
@ PIT_STATUS
Definition: member_info.h:97
Group_member_info_manager::update_primary_member_flag
void update_primary_member_flag(bool in_primary_mode)
Changes the primary flag on all members.
Definition: member_info.cc:1013
Group_member_info_manager_interface::update_primary_member_flag
virtual void update_primary_member_flag(bool in_primary_mode)=0
Changes the primary flag on all members.
Group_member_info_manager::is_majority_unreachable
bool is_majority_unreachable()
Check if majority of the group is unreachable.
Definition: member_info.cc:1127
Group_member_info_manager_interface::update_gtid_sets
virtual void update_gtid_sets(const std::string &uuid, std::string &gtid_executed, std::string &purged_gtids, std::string &gtid_retrieved)=0
Updates the GTID sets on a single member.
Group_member_info::set_primary_mode_flag
void set_primary_mode_flag(bool in_primary_mode)
Set the primary flag.
Definition: member_info.cc:507
gis::length
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
Group_member_info::get_gtid_retrieved
std::string get_gtid_retrieved()
Definition: member_info.cc:487
Group_member_info::gcs_member_id
Gcs_member_identifier * gcs_member_id
Definition: member_info.h:542
Group_member_info_manager::update_gtid_sets
void update_gtid_sets(const std::string &uuid, std::string &gtid_executed, std::string &purged_gtids, std::string &gtid_retrieved)
Updates the GTID sets on a single member.
Definition: member_info.cc:940
Group_member_info_manager_interface::~Group_member_info_manager_interface
virtual ~Group_member_info_manager_interface()
Definition: member_info.h:575
Group_member_info::status
Group_member_status status
Definition: member_info.h:541
Group_member_info_manager_interface::update_member_weight
virtual void update_member_weight(const std::string &uuid, uint member_weight)=0
Updates the weight of a single member.
Group_member_info::role
Group_member_role role
Definition: member_info.h:550
ulonglong
unsigned long long int ulonglong
Definition: my_inttypes.h:55
gcs_member_identifier.h
Group_member_info_manager::get_group_member_info_by_index
Group_member_info * get_group_member_info_by_index(int idx)
Retrieves a registered Group member by an index function.
Definition: member_info.cc:769
Group_member_info::has_enforces_update_everywhere_checks
bool has_enforces_update_everywhere_checks()
Definition: member_info.cc:538
Group_member_info::is_primary_election_running
bool is_primary_election_running()
Definition: member_info.cc:603
Group_member_info::MEMBER_ERROR
@ MEMBER_ERROR
Definition: member_info.h:155
Group_member_info_manager_interface::get_all_members
virtual std::vector< Group_member_info * > * get_all_members()=0
Retrieves all Group members managed by this site.
Group_member_info_manager_interface::get_primary_member_uuid
virtual bool get_primary_member_uuid(std::string &primary_member_uuid)=0
Return the uuid for the for the primary.
Group_member_info::configuration_flags
uint32 configuration_flags
Definition: member_info.h:551
Group_member_info_manager::update_member_role
void update_member_role(const std::string &uuid, Group_member_info::Group_member_role new_role, Notification_context &ctx)
Updates the role of a single member.
Definition: member_info.cc:957
Group_member_info_manager::update_group_primary_roles
void update_group_primary_roles(const std::string &uuid, Notification_context &ctx)
Updates the primary/secondary roles of the group.
Definition: member_info.cc:977
Group_member_info::get_configuration_flags
uint32 get_configuration_flags()
Definition: member_info.cc:502
Group_member_info::member_weight
uint member_weight
Definition: member_info.h:553
Group_member_info_manager::get_string_current_view_active_hosts
std::string get_string_current_view_active_hosts() const
This method returns all ONLINE and RECOVERING members comma separated host and port in string format.
Definition: member_info.cc:1178
Group_member_info::PIT_PORT
@ PIT_PORT
Definition: member_info.h:88
Group_member_info_manager::Group_member_info_manager
Group_member_info_manager(Group_member_info *local_member_info, PSI_mutex_key psi_mutex_key=key_GR_LOCK_group_member_info_manager_update_lock)
Definition: member_info.cc:712
Group_member_info_manager_interface::get_group_member_info_by_index
virtual Group_member_info * get_group_member_info_by_index(int idx)=0
Retrieves a registered Group member by an index function.
Group_member_info_manager::get_group_member_info_by_member_id
Group_member_info * get_group_member_info_by_member_id(Gcs_member_identifier idx)
Retrieves a registered Group member by its backbone GCS identifier.
Definition: member_info.cc:813
Group_member_info::PIT_VERSION
@ PIT_VERSION
Definition: member_info.h:100
Notification_context
A convenience context class used to share information between the event handlers and the notifier.
Definition: notification.h:34
buffer
char buffer[STRING_BUFFER]
Definition: test_sql_9_sessions.cc:57
Group_member_info::Group_member_status
Group_member_status
Definition: member_info.h:151
my_sys.h
Group_member_info::executed_gtid_set
std::string executed_gtid_set
Definition: member_info.h:544
Group_member_info_manager_interface::is_conflict_detection_enabled
virtual bool is_conflict_detection_enabled()=0
Check if some member of the group has the conflict detection enable.
Group_member_info::group_action_running
bool group_action_running
Definition: member_info.h:556
Group_member_info_manager_interface::is_recovering_member_present
virtual bool is_recovering_member_present()=0
Check if a member in recovery exists in the group.
Group_member_info::get_gcs_member_id
Gcs_member_identifier get_gcs_member_id()
Definition: member_info.cc:448
Group_member_info::get_recovery_status
Group_member_status get_recovery_status()
Definition: member_info.cc:421
Group_member_info::PIT_HOSTNAME
@ PIT_HOSTNAME
Definition: member_info.h:85
Group_member_info_manager::update_enforce_everywhere_checks_flag
void update_enforce_everywhere_checks_flag(bool enforce_everywhere)
Set the enforces_update_everywhere_checks flag on all members.
Definition: member_info.cc:1022
Group_member_info_manager::get_online_members_with_guarantees
std::list< Gcs_member_identifier > * get_online_members_with_guarantees(const Gcs_member_identifier &exclude_member)
Retrieves all ONLINE Group members managed by this site, or NULL if any group member version is from ...
Definition: member_info.cc:846
Plugin_gcs_message
This is the base GCS plugin message.
Definition: gcs_plugin_messages.h:63
Group_member_info::skip_encode_default_table_encryption
bool skip_encode_default_table_encryption
Definition: member_info.h:560
Group_member_info::get_gtid_assignment_block_size
ulonglong get_gtid_assignment_block_size()
Definition: member_info.cc:497
Group_member_info_manager_message::PIT_MAX
@ PIT_MAX
Definition: member_info.h:954
Member_version
Definition: member_version.h:30
Group_member_info_manager_interface::get_group_lowest_online_version
virtual Member_version get_group_lowest_online_version()=0
Return lowest member version.
Group_member_info::MEMBER_ROLE_PRIMARY
@ MEMBER_ROLE_PRIMARY
Definition: member_info.h:166
Group_member_info::get_gtid_purged
std::string get_gtid_purged()
Definition: member_info.cc:482