Skip to content

WIP v3#3035

Merged
mgravell merged 15 commits intov3from
marc/v3
Mar 26, 2026
Merged

WIP v3#3035
mgravell merged 15 commits intov3from
marc/v3

Conversation

@mgravell
Copy link
Copy Markdown
Collaborator

@mgravell mgravell commented Mar 13, 2026

V3 tranche 1 is the reader-core, to resolve the OOM-related memory/corruption issue with V2

  • merge the V3 core (Refactor IO "read" core logic #3014) on top of the V2/V3 pre-work (V3 pre-merge; all the early bits, for V2 #3028)
    • refactor all "read" logic to use RespReader instead of RawResult
    • nuke RawResult and CommandBytes
  • consolidate refs (V2 SE.Redis does not have a RESPite ref for AsciiHash etc, so imports the files directly)
  • resolve the stall on the 'sync'/'async' writer engines (the default 'pipe' reader engine is solid); this stall can generally be seen in the MovedTests which has a [Theory] usage for all-modes
    • emphasis for the reader: this stall is limited to modes that are only currently used in tests; they are the preferred option when stable, but I will not expose them until then
    • what this does: remove a thread-switch on the outbound path, by using the CycleBuffer core (think Pipe, but with discreet control over the read/write thread model); this includes the ability to use fully-sync dedicated writer; since tranche 1 is primarily reader-focused, I'm OK for this to slip unresolved to tranche 2, which is writer-focused
  • remove trailing Pipelines.Sockets.Unofficial usage (marc/de-psu branch; compiles, needs testing)
  • reimplement simulate-connection-failure
  • replace the semaphoreslim replacement on netfx
  • allow dedicated-thread sync read usage?
    • heh, turns out I forgot I already did this; it is tied to the write-engine (IsSync), so we know that it isn't part of the stall mentioned above (since that stalls on both 'sync' and 'async', and works fine for 'pipe')

@mgravell mgravell changed the title WIP v3 merge attempt WIP v3 Mar 26, 2026
@mgravell mgravell changed the base branch from main to v3 March 26, 2026 15:51
@mgravell mgravell marked this pull request as ready for review March 26, 2026 15:51
@mgravell mgravell merged commit e12c1b7 into v3 Mar 26, 2026
2 of 8 checks passed
@mgravell mgravell deleted the marc/v3 branch March 26, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant