Skip to content

Streams Draft PR#1460

Closed
hamdaankhalid wants to merge 6 commits intomainfrom
research
Closed

Streams Draft PR#1460
hamdaankhalid wants to merge 6 commits intomainfrom
research

Conversation

@hamdaankhalid
Copy link
Contributor

This PR aims to stabilize the experimental support for streams, and add new features to Streams that are actively needed by me (XREVRANGE, and RANGE).

I will be using memtier to benchmark stream performance.

ramananeesh and others added 6 commits July 10, 2025 11:16
* Streams API Work in progress

* Streams - sector aligned bufferpool for index work in progress

* sector aligned bufferpool integration works

* testing code wip

* bug fixed

* fixed major bug in btree

* updates

* fixed memory alloc by reverting to Marshal.AllocHGlobal

* code cleanup

* delete passes

* tying up the streams API

* added command to RespCommandsInfo

* basic test with XADD and XLEN works

* added XRANGE and XDEL - basic tests work

* fixed bug with stream id parsing/encode/decode

* added ACL Tests

* added RespStreamTests

* minor cleanup

* added cleaner command strings for incorrect arguments

* cleanup; removed TRIM code

* cleanup; added more documentation about node structure

* more cleanup

* reverted visibility change to ByteArrayComparer to instead use .Instance

* removed most of Unsafe.AsPointer() instances from BTree code

* swapped out memory allocation for B-tree to use NativeMemory.AlignedAlloc instead of Marshal.AllocHGlobal

* cleanup; removed unused imports + commented out code.

* bug fix - mismatch in allocates v/s deallocates for B-tree

* updates fixing PR comments

* reverted an earlier change in Build.props following PR comment + changes to fix build errors.

* applied changes to propagate modified RESP3 output

* added streams as an optional

* formatting fixes

* minor edit

* fixed minor bug in keeping streams optional

* cleanup

* updated XADD to return bulk string

* minor edits to error messages; used WriteAsciiBulkString for stream id output after XADD

* added back code for BTreeTrim (work in progress)

* fixed validCount bug in TrimByLength

* fuxed bug on validCount propagation + trimByID

* minor bug fix; added BTreeTrimTests

* return headValidKey as ReadOnlySpan<byte>

* cleanup

* connecting XTRIM to Streams API

* added XTrimTests

* stream commands error out in case streams is disabled

* cleanup + switched to ReadOnlySpan<byte> instead of byte[] where applicable

* matched error messages to Redis documentation

* added NOMKSTREAM support for XADD

* updated docs

* minor cleanup + refactor variable name

* minor edit

* minor bug fix - enableStreams for ACL tests in server setup

* support exact and approximate trimming of index

* added support for approximate trimming

* minor doc update
@hamdaankhalid
Copy link
Contributor Author

Clsoing this PR to work on the forked branch: #1461

@github-actions github-actions bot locked and limited conversation to collaborators Feb 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants