Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge of several PRs into single one #4295

Conversation

JavierJF
Copy link
Collaborator

@JavierJF JavierJF commented Jul 19, 2023

This PR supersedes and integrates the following PRs:

All the others PRs should be in a state in which they could be reviewed individually, this PR makes the effort of integrating them, and include the following changes:

rahim-kanji and others added 30 commits April 6, 2023 11:55
* Added separate fetching of mysql_server_incoming and runtime_mysql_server records based on algorithm selection.
* Few memory leaks fix
* Code refactoring
* Changed commit signature.
* Few fixes
* Few issues fixed
* Fetching mysql_servers_v2 records from admin
* Added comments.
* Added detailed comments.
…ed ahead of the 'mysql_servers' code block. This ensures that the most recent value of 'admin-cluster_mysql_servers_sync_algorithm' is available in mysql_servers sync.

* Reset global checksum if 'admin-cluster_mysql_servers_sync_algorithm' is changed.
…sql_servers' and 'mysql_servers_v2' across all nodes. The test involves creating two replica nodes, one with a monitor enabled and the other with a monitor disabled. The test verifies that the correct records are synced among these nodes based on the value of 'admin-cluster_mysql_servers_sync_algorithm'.
* Cleared duplicate code.
* Added comments
…se."

* In the event of any failure, it's crucial to call the cleanup function to prevent any orphaned replica instances from remaining active.
…_mysql_servers

# Conflicts:
#	include/ProxySQL_Cluster.hpp
#	include/proxysql_admin.h
#	lib/MySQL_HostGroups_Manager.cpp
#	lib/ProxySQL_Admin.cpp
#	lib/ProxySQL_Cluster.cpp
…_mysql_servers

# Conflicts:
#	lib/MySQL_HostGroups_Manager.cpp
…ers' into v2.x_refactor_cluster_mysql_servers
 - Add support for autodiscovery for GR for MySQL8.
 - Allow to configure autodiscovered servers defaults via
   'mysql_hostgroup_attributes'.
 - Add support for GR autodiscovery for Cluster Simulator.
 - Improve server 'viable_candidate' detection for MySQL 8,
   'RECOVERING' state is now also considered.
…rvers

In case an autodiscovered server is found 'OFFLINE_HARD', the recovery
logic now properly updates the 'servers_defaults' values for the server,
in the same way as for a new discovered server.
- Introduced multiple new command line options
- Gave additional meaning to 'mysql-default_collation_connection'
Session 'status' and 'client_myds->DSS' should never be modified for a
regular session prior to calling 'RequestEnd'. It's 'RequestEnd'
responsibility to appropriately change these statuses after the rest of
cleanup operations for the request has taken place, including logging.
Setting 'MySQL_Session::status', and 'client_myds::DSS' flags before a
call to 'RequestEnd' is redundant, and in some scenarios even dangerous.
'RequestEnd' should handle this for regular sessions.
JavierJF added 16 commits July 11, 2023 17:54
- Resultsets for 'runtime_mysql_servers' and 'mysql_servers_v2' are now
  directly generated by the SQL query.
- Checksum computations are simplified to 'SQLite3_result::raw_checksum'
  and equivalent function 'mysql_raw_checksum'.
Config should only be used for checksum computation and cluster
resultset generation for 'LOAD MYSQL SERVERS TO RUNTIME'. Otherwise
user config ('main.mysql_servers') would be promoted at each 'commit'
call, and propagated through the cluster members.
…wn/proxysql into v2.x-aurora_autodiscovery-refactor_cluster_mysql_servers
…refactor_cluster_mysql_servers-gr_bootstrap_mode
If 'MySQL_HostGroups_Manager::incoming_mysql_servers' happens to be
empty when a 'CLUSTER_QUERY_MYSQL_SERVERS_V2' request is received in
Admin, since there wasn't any user config promoted to runtime yet, the
response should be an empty resulset.
- Simplified checksum computation for monitoring actions
- Refactored checksum computation for 'mysql_servers' and
  'mysql_servers_v2' modules in 'commit'.
@mirostauder
Copy link
Collaborator

retest this please

5 similar comments
@mirostauder
Copy link
Collaborator

retest this please

@mirostauder
Copy link
Collaborator

retest this please

@renecannao
Copy link
Contributor

retest this please

@renecannao
Copy link
Contributor

retest this please

@mirostauder
Copy link
Collaborator

retest this please

JavierJF and others added 3 commits December 19, 2023 18:53
…todiscovery-refactor_cluster_mysql_servers-gr_bootstrap_mode
… env

Current GitHub actions testing environment lacks of a ProxySQL cluster.
This change allows the test to gracefully exit when the env conditions
for it are not met.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants