-
Notifications
You must be signed in to change notification settings - Fork 180
RUST-522 Implement resume functionality for change streams #547
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
Merged
abr-egn
merged 26 commits into
mongodb:master
from
abr-egn:RUST-522/change-stream-resume
Jan 14, 2022
Merged
Changes from all commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
d8a527f
is_resumable
abr-egn b4ef05c
wip
abr-egn cd677e0
annotate error with wire version
abr-egn 82f15e4
wip resume
abr-egn 7bc1d46
introduce ChangeStreamAggregate
abr-egn 6726bc0
update cursor on resume
abr-egn c419a4e
construct ChangeStreamData in ChangeStreamAggregate
abr-egn 0f3786e
use client from cursor
abr-egn 4fa09cc
save initial operation time
abr-egn faa1d0e
wip
abr-egn 43976eb
move resume token into data
abr-egn 0e8a4e4
split WatchArgs out of ChangeStreamData
abr-egn 1f71772
adjust options for resume
abr-egn e8fb51d
rustfmt
abr-egn 875326c
kill old cursor on new cursors server
abr-egn 46f8e29
wip
abr-egn 7e809aa
streamless implementation of session change streams
abr-egn 23887d6
strip out SessionChangeStreamValues
abr-egn ad24a1c
rustfmt
abr-egn eee5197
clippy
abr-egn 640b0ad
rustfmt
abr-egn cf03fb5
remove unused imports
abr-egn 9e6a3cb
more import tidy
abr-egn cf86504
preserve implicit session
abr-egn 455b858
clippy and rustfmt
abr-egn 637e33a
review tweaks
abr-egn File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
Oops, something went wrong.
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.
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.
This is essentially the manual state machine version of
SessionChangeStream::next_if_any
. Hopefully at some point Rust gets reasonable first-class syntax for streams.I considered trying to write this by wrapping an async function in a stream adaptor for clarity, but that ended up needing to be self-referential.