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

Instance config with stricter offset is compatible #30585

Merged

Conversation

antiguru
Copy link
Member

Introduce InstanceConfig::compatible_with to check if two configurations
are compatible. Two configurations are considered compatible iff the
logging configuration is equal and the expiration offset of the other
configuration is stricter than or equal to the current one.

Addresses a concern with replica expiration that didn't allow us to
strengthen the value without risking replica restarts in case of envd
restarts. This doesn't solve the problem of relaxing the expiration, which
would still cause replica restarts -- there doesn't seem to be a good
alternative because the replicas aren't actually compatible.

Checklist

  • This PR has adequate test coverage / QA involvement has been duly considered. (trigger-ci for additional test/nightly runs)
  • This PR has an associated up-to-date design doc, is a design doc (template), or is sufficiently small to not require a design.
  • If this PR evolves an existing $T ⇔ Proto$T mapping (possibly in a backwards-incompatible way), then it is tagged with a T-proto label.
  • If this PR will require changes to cloud orchestration or tests, there is a companion cloud PR to account for those changes that is tagged with the release-blocker label (example).
  • If this PR includes major user-facing behavior changes, I have pinged the relevant PM to schedule a changelog post.

@antiguru antiguru requested a review from a team as a code owner November 21, 2024 09:11
@antiguru antiguru requested a review from teskje November 21, 2024 09:11
Copy link
Contributor

@teskje teskje left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Introduce InstanceConfig::compatible_with to check if two configurations
are compatible. Two configurations are considered compatible iff the
logging configuration is equal and the expiration offset of the other
configuration is stricter than or equal to the current one.

Addresses a concern with replica expiration that didn't allow us to
strengthen the value without risking replica restarts in case of envd
restarts. This doesn't solve the problem of relaxing the expiration, which
would still cause replica restarts -- there doesn't seem to be a good
alternative because the replicas aren't actually compatible.

Signed-off-by: Moritz Hoffmann <mh@materialize.com>
@antiguru antiguru force-pushed the smarter_instance_config_check branch from b511fa3 to f0db96b Compare November 21, 2024 19:12
@antiguru antiguru enabled auto-merge (squash) November 21, 2024 19:12
@antiguru antiguru merged commit 7d35efc into MaterializeInc:main Nov 21, 2024
81 checks passed
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.

2 participants