Skip to content

Remove unnecessary replication calls & make them retry on different instances #18564

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

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

sandhose
Copy link
Member

@sandhose sandhose commented Jun 17, 2025

This should be reviewed commit by commit.

Nowadays it's trivial to propagate cache invalidations, which means we can move some things off the main process, and not go through HTTP replication.

ReplicationGetQueryRestServlet appeared to be unused, and was very weird, as it was being called if the current instance is the main one… to RPC to the main one (if no instance is set on a replication client, it makes it to the main process)

The other two handlers could be relatively trivially moved to any workers, moving some methods to the worker store.

Then the main feature here is that retries are done with a round-robin across writer instances. This means that if a writer is temporarily down, it will try on another (potentially healthy) one.

I've intentionally not removed the replication servlets yet so that it's safe to rollout, and will do another PR that clean those up to remove on the N+1 version

@sandhose sandhose force-pushed the quenting/replication-round-robin branch from 2d90089 to a3962ac Compare June 17, 2025 15:33
@sandhose sandhose marked this pull request as ready for review June 17, 2025 15:34
@sandhose sandhose requested a review from a team as a code owner June 17, 2025 15:34
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.

1 participant