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

Galera connection monitor service #662

Open
janlindstrom opened this issue Aug 12, 2024 · 0 comments
Open

Galera connection monitor service #662

janlindstrom opened this issue Aug 12, 2024 · 0 comments
Assignees
Labels

Comments

@janlindstrom
Copy link
Contributor

Description

Keep track of connections created inside a galera library and report them to server. Ideally we should gather
remote_uuid, connection scheme and remote address for both created connections as well as disconnected
connections.

High-level implementation

Create a new connection monitor service API on wsrep-API and implement this API on galera library.
To know remote UUID we should track gcmcast::Proto object lifetimes. Connections can be tracked in
AsioTcpStreamEngine and AsioSslStreamEngine objects.

Idea is to use connection monitor service update callback when connection is connected. After we
know UUID for remote node we use connection monitor service update callback again with updated
information. Finally, when connection is disconnected we use same connection monitor service update
callback to notify server.

Implementation

Implementation requires updaring wsrep-API submodule, wsrep-lib submodule and Galera library code.
To show this information to user this needs adding a INFORMATION_SCHEMA plugin to server code where
current Galera library connections are cached on in-memory object that is updated by connection monitor
service update callback.

Reference

Ref: https://jira.mariadb.org/browse/MDEV-26851 : Provide means to verify Galera using TLS from SQL level

@janlindstrom janlindstrom self-assigned this Aug 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant