-
Notifications
You must be signed in to change notification settings - Fork 21
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
cassandra-11565 Prevents replaying commit log segments with invalid mutations from being replayed over and over #1587
base: main
Are you sure you want to change the base?
Conversation
Checklist before you submit for review
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the patch would be cleaner and simpler if we didn't introduce the InvalidMutationRelocator
abstraction here, as relocating mutations is really a CNDB concern, and as a proof of that, your default implementation here does nothing (which is confusing, since the name suggests differently).
I would rather "promote" the concept of "replayed segments handler" to its own abstraction. Practically speaking that means something along the lines of:
- Introduce a new (say)
CommitLogSegmentHandler
abstraction. - Make it "injectable", similarly to how you've done already.
- Invoke the new abstraction from
AbstractCommitLogSegmentManager#handleReplayedSegment
, basically moving its current logic into the new abstraction.
This would leave the C* code functionally the same, but with a new abstraction we can override on the CNDB side.
WDYT?
Yeah I agree that I'll introduce If yes, I'm thinking that the logic for these methods on the Cassandra side will still stay as a no-op. Lmk if I'm missing something here. |
|
❌ Build ds-cassandra-pr-gate/PR-1587 rejected by Butler3 new test failure(s) in 4 builds Found 3 new test failures
Found 8 known test failures |
What is the issue
Fixes #11565
What does this PR fix and why was it fixed
...