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

Persist cluster info in manticore.json and migrate to the new protection schema #2822

Open
1 of 6 tasks
sanikolaev opened this issue Dec 5, 2024 · 1 comment
Open
1 of 6 tasks
Assignees

Comments

@sanikolaev
Copy link
Collaborator

Proposal:

The current split-brain protection mechanism for writing to a replicated table when the cluster is suddenly unavailable relies on using the cluster:table syntax. If the cluster becomes inaccessible, any write operations will fail.

This approach is straightforward and has some advantages, such as making it immediately clear from looking in the application code that it’s working with a replicated table. However, it also has a few drawbacks:

  • Special handling is required when dumping the table with mysqldump.
  • Migrating to a replicated table requires changes to the application.

As discussed during the "Dev call on Dec 5, 2024," we could improve this by:

  1. making the cluster information for each replicated table persistent in manticore.json, so it doesn't get removed when the cluster disappears for some reason
  2. and implementing a similar write protection based on that.

Checklist:

To be completed by the assignee. Check off tasks that have been completed or are not applicable.

  • Implementation completed
  • Tests developed
  • Documentation updated
  • Documentation reviewed
  • Changelog updated
  • OpenAPI YAML updated and issue created to rebuild clients
@tomatolog
Copy link
Contributor

tomatolog commented Dec 9, 2024

more details about the change is at the conversation https://manticoresearch.slack.com/archives/D5J0WAQRM/p1733410100928309

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants