-
Notifications
You must be signed in to change notification settings - Fork 2
perf(redis): stream entry-per-key layout for O(new) XREAD #620
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
bootjp
wants to merge
24
commits into
main
Choose a base branch
from
ops/xread-range-scan
base: main
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
Changes from all commits
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
70c65c7
perf(redis): stream entry-per-key layout for O(new) XREAD
bootjp 66a073a
fix(redis): address PR #620 review — restore XADD O(1) + migration MV…
bootjp 5ea7f5e
fix(redis,stream): address round-3 review
bootjp 50def0d
test(redis,stream): stabilise TestRedis_StreamXReadLatencyIsConstant
bootjp 8bc3eeb
fix(redis,stream): XREAD BLOCK timeout no longer surfaces as error
bootjp 01cdf5e
Merge branch 'main' into ops/xread-range-scan
bootjp a6b176d
fix(redis,stream): accept shorthand IDs + uncap full-stream scan
bootjp 96ca38d
fix(redis,stream): uncap DEL path for migrated streams
bootjp 8cf12e2
fix(redis,stream): address Copilot review
bootjp 28b5aa4
fix: apply Copilot review suggestions for scanStreamEntriesAt and del…
Copilot 4c5d48a
docs: clarify comments for scanStreamEntriesAt and deleteStreamWideCo…
Copilot b10df2c
fix(redis,stream): cap legacy blob migration at maxWideColumnItems en…
Copilot 88ffdfa
Merge branch 'main' into ops/xread-range-scan
bootjp b867709
fix(redis,stream): fail-fast on empty entry, validate afterID, precom…
Copilot 2fa9b80
fix(redis,stream): reject migration of legacy streams exceeding maxWi…
Copilot 87ac40e
Merge branch 'main' into ops/xread-range-scan
bootjp e675e4d
fix(redis,stream): MAXLEN sentinel, reject ID 0-0, hoist prefix bytes…
Copilot 45f4c1e
test(redis,stream): add TestNextXAddID_RejectsZeroID for 0-0 rejection
Copilot b1bbe09
fix: XADD MAXLEN 0 deletes own entry, parseStreamBoundID shorthand fi…
Copilot fd9281a
docs: clarify parseStreamBoundID lower-exclusive expansion comment
Copilot 3dd2f79
fix: stream entry key routing and XREAD deadline-aware context
Copilot bedb3de
refactor(redis,stream): drop migration path — legacy data is cleared,…
bootjp 7d38b20
Merge branch 'main' into ops/xread-range-scan
bootjp 428888a
fix(redis,stream): address Copilot round-3 with matching tests
bootjp 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
Oops, something went wrong.
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.
buildStreamDeletionElemsexpands each staged stream deletion into a full scan of entry keys and appends all resultingDelelems to the transaction batch. For large streams this can produce an extremely large Raft/coordinator payload (and high memory usage) during EXEC/commit. It likely needs a bounded/batched deletion strategy (or a prefix-delete operation) rather than materializing every delete as an elem in a single commit.