Add meta command methods to MemcacheSocket#14
Merged
Conversation
This was referenced Mar 13, 2026
Merged
Member
Author
bf04b6e to
e6bb63a
Compare
978f263 to
e10435b
Compare
e10435b to
6ebdcec
Compare
e6bb63a to
7fc665e
Compare
xmartinez
approved these changes
Mar 24, 2026
xmartinez
left a comment
There was a problem hiding this comment.
Awesome!
Added some nits (nothing blocking, so also approved it).
6ebdcec to
7815d98
Compare
7815d98 to
f30afc3
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Motivation / Description
This pull request implements comprehensive memcache meta command support with both pipelining and blocking APIs. The implementation adds two tiers of functionality:
send_meta_*methods for pipelining (send commands and read responses separately) andmeta_*methods for blocking operations (send and receive in one call). Theget_response()method is enhanced to automatically read value data for Value responses, eliminating the need for separateget_value()calls.Changes introduced
send_meta_get,send_meta_set,send_meta_delete, andsend_meta_arithmeticmethods for pipelining supportmeta_get,meta_set,meta_delete, andmeta_arithmeticmethods for blocking operationsget_response()to automatically read and include value bytes in Value responsessend_all_with_noop()with more flexiblesend_iovecs()function supporting multiple buffers viawritev()get_response_with_value()internal method that handles both header parsing and value reading in a single GIL-released blockis_no_reply()helper method toRequestFlagsfor internal useget_value()method as value data is now included automatically in Value responses