forked from apache/cassandra
-
Notifications
You must be signed in to change notification settings - Fork 0
Resumable clreader #2
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
jmckenzie-dev
wants to merge
130
commits into
trunk
Choose a base branch
from
resumable_clreader
base: trunk
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Patch by Benedict Elliot Smith; reviewed by Sam Tunnicliffe for CASSANDRA-15120
Unit test added in CASSANDRA-15126 is broken on 3.11
Patch by Ted Petersson; Reviewed by Michael Shuler for CASSANDRA-15050
Patch by Jeremy Hanna, Reviewed by Michael Shuler for CASSANDRA-15150
patch by Sam Tunnicliffe; reviewed by Michael Shuler
patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for CASSANDRA-15066
patch by Aleksey Yeschenko and Benedict Elliott Smith; reviewed by Alex Petrov, Aleksey Yeschenko, and Benedict Elliott Smith for CASSANDRA-15066 Co-authored-by: Aleksey Yeschenko <aleksey@apache.org> Co-authored-by: Benedict Elliott Smith <benedict@apache.org>
…re and message expirations patch by Alex Petrov; reviewed by Aleksey Yeschenko and Benedict Elliott Smith for CASSANDRA-15066
Patch by Jeremy Hanna, Reviewed by Michael Shuler for CASSANDRA-15150
Patch by Jeremy Hanna, Reviewed by Michael Shuler for CASSANDRA-15149
patch by Hari Nukala; reviewed by Aleksey Yeschenko for CASSANDRA-15165
Patch by Jeff Jirsa; Reviewed by Chris Lohfink for CASSANDRA-15167
Closes apache#327 Patch by Nathan Jackles; Reviewed by Jeff Jirsa for CASSANDRA-15173
Patch by Per Otterström, Sumanth Pasupuleti; Reviewed by Vinay Chella for CASSANDRA-15105 Co-Authored-By: Per Otterström <per.otterstrom@gmail.com> Co-Authored-By: Sumanth Pasupuleti <sumanth.pasupuleti.is@gmail.com>
…sion's patch by Aleksey Yeschenko; reviewed for CASSANDRA-15176 by Sam Tunnicliffe an Blake Eggleston
Patch by Chris Lohfink; Reviewed by Jon Haddad for CASSANDRA-14670
Patch by Michael Shuler; Reviewed by Jon Haddad for CASSANDRA-15185
patch by Mick Semb Wever; reviewed by Robert Stupp for CASSANDRA-14757
patch by Dinesh Joshi; reviewed by Jon Meredith for CASSANDRA-15272
Patch by Josh Turner; Reviewed by Jeff Jirsa for CASSANDRA-15186
…and keyspace Patch by Josh Turner; Reviewed by Jeff Jirsa for CASSANDRA-15287
After building artifacts, a diff is left over, so let's fix that: diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 28d86fd..e776a5a 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -1341,4 +1341,4 @@ enable_sasi_indexes: false # Enables creation of transiently replicated keyspaces on this node. # Transient replication is experimental and is not recommended for production use. -enable_transient_replication: false \ No newline at end of file +enable_transient_replication: false
…hat doesn't require keyspace knowledge/existence patch by Mick Semb Wever; reviewed by Branimir Lambov for CASSANDRA-15260
Closes apache#350 Patch by xuanling.gc, reviewed by Brandon Williams for CASSANDRA-15092
…more) correctly patch by Aleksey Yeschenko; reviewed by Blake Eggleston for CASSANDRA-15163
…'s version into the existing release process documentation patch by Mick Semb Wever; reviewed by Michael Shuler for CASSANDRA-15333
…otsearch on pom.xml dependency list Closes apache#358 patch by Marvin Froeder; reviewed by Mick Semb Wever for CASSANDRA-15321
Patch by Romain Hardouin; Reviewed by Dinesh Joshi for CASSANDRA-15296
…ations Patch by James Berragan; reviewed by marcuse for CASSANDRA-15286
The original CDC implementation leaned on inheritance on multiple CLSM with an abstract base. This refactor changes that approach to isntead use composition with the segment allocation being the axis of composability. Also tidies up some scope to package private while in the area.
Adds some javadocs and tightens up package private scope on a couple things.
Adds a CommitLogTestUtils concept; initial stubbing in of ResumableCommitLogReader and ResumableCommitLogReaderTest. Squash this before merge.
Mostly consists of method renames to clarify what we're flushing and on what conditions in either naming, javadoc, or a combination of both. A touch of cleaning up unused imports too, but no functional changes.
The original CDC CommitLogReadHandler for test only handled a boolean state of whether or not a cdc mutation was seen or not. This opens that up to allow for a tracking of a MutationIdentifier to determine if the specific mutation we're seeing on replay is a duplicate and if so, how many times we've seen it. This will play into resumable clreader testing in subsequent commits (some risk of yagni here, but have a general framework of how I want to test this in my head. We'll see.)
Had a handful of variables // when /** */ would give us IDE hinting. Also added a class comment to header of CDC Allocator to give high level view of why it exists.
Adds a new Single Source of Reading Truth for CommitLogSegments. This resumable reader has a simpler API than our existing CommitLogReader and is primarily intended to be externally user-facing. Primary tradeoffs of this implementation are 1) Requiring init of a new ResumableCommitLogReader object on each CLS read, 2) taking on ownership of some complexity in SegmentReader (iterator resumability and RAR reinit) in order to provide a very simple API to external CDC users, and 3) splitting out the "Reading a CommitLog" API into both part in CommitLogReader and part in ResumableCommitLogReader. For now, for API backwards compatibility, the CommitLogReader APIs are unchanged and ResumableCommitLogReader's API is purely simplified and additive.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.