-
Notifications
You must be signed in to change notification settings - Fork 572
RespServerSession RESP3 update #1223
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
base: main
Are you sure you want to change the base?
Conversation
2159e54
to
2b77659
Compare
This is a lot of refactoring and depending on .NET's force inlining capability. We need to make sure there are no performance regressions due to e.g. saturating the inline limits that .NET places internally. Also, see the BDN results here and identify any regressions: ee395dc#comments There seems to be general degradations all over the place. |
Would it be possible to break this PR up into two parts: (1) the force-inlined-method version of |
Yes, I was already working on that, will update the PR a bit later. |
In some sorted set commands, Garnet should emit double in RESP3.
Emit RESP3 "txt" where appropriate. CLIENT INFO should emit Bulkstring in RESP2, not simple. Use this to add final newline to make output easier to read.
… functions to previous RespServerSession.cs file.
…ix a few error messages.
…t specialized functions can be useful.
ACL WHOAMI should return bulk, not simple string. Latency help doesn't accept subarguments.
…ng ASCII, so UTF8 output is pointless. A few more AbortWith.. replacements where there are no performance implications for the main path and the resulting code is clearer.
This PR has two main goals:
The former is done by fixing various cases for RESP3 null/double and adding verbatim string support. The latter is done by adding output functions to RespServerSession (in a separate file), but the PR holds off on use till performance implications are fully checked. Also some misc. RESP2 updates (redis-cli expects an extra newlines in CLIENT INFO/LIST, these commands should emit Bulk, not simple strings).