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

Consider supporting multiple read end points and throttling on the slowest one #220

Open
sjmudd opened this issue Oct 24, 2023 · 2 comments
Assignees
Labels
help wanted Extra attention is needed

Comments

@sjmudd
Copy link

sjmudd commented Oct 24, 2023

Thanks for sharing this new tool. It looks interesting.

I see a DSN is provided for a single replica. It would be useful to provide a way to provide multiple replicas to check and to check them all at once, using the slowest one as the throttling bottleneck. This allows for wider deployments with more systems and perhaps where there's a wider geographical usage. Other tools (pt-online-schema-change at least) provide such a facility and that's provided to be very useful. For small clusters you may not think this is needed but for larger MySQL clusters it can be very helpful.

@morgo morgo added the help wanted Extra attention is needed label Oct 24, 2023
@morgo
Copy link
Collaborator

morgo commented Oct 24, 2023

Thank you for the feature request - I agree that it's a good idea to support multiple.

We don't have this requirement ourselves, so I can't commit to when it will be implemented. However, a contribution that adds it will be most welcome.

In terms of implementation suggestions:

  • Change ReplicaDSN support multiple DSNs. I am not sure if comma separated is the best way, or if there's a specific feature in the option parser (Kong) to do this.
  • Change throttler in the Runner to instead be []throttler
  • Rather than throttle on the slowest (as in the description) throttle on all the throttlers. The value is cached, so this is effectively the same outcome.
  • We need to modify the tests to make sure we are testing this. Currently the dbdeployer install does configure 2 replicas, so it should be a good starting point. The ENV variables to specify the replica for tests might need changing though.

@sjmudd
Copy link
Author

sjmudd commented Oct 24, 2023

Hi Morgan,

Thanks for the comments and pointers. I wasn't suggesting you necessarily fix this and agree that if someone else does they should possibly consider doing the work to resolve the feature request. Making this feature visible also shows some possible changes that could be done.

@sahilm sahilm self-assigned this Jun 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants