Skip to content
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

Add support for meta commands #45

Open
QuChen88 opened this issue Dec 6, 2024 · 1 comment
Open

Add support for meta commands #45

QuChen88 opened this issue Dec 6, 2024 · 1 comment

Comments

@QuChen88
Copy link

QuChen88 commented Dec 6, 2024

Meta Commands protocol is a powerful replacement of the traditional Memcached commands including GET/SET/INCR/DECR/DELETE/CAS with support for advanced caching use cases. It was a top highlight of memcached 1.6, see https://github.com/memcached/memcached/wiki/ReleaseNotes160. However, there appears to be a lack of client support for the meta command protocol, preventing adoption for this new capability.

Currently there is interest in supporting meta command in several other memcached clients, see electrode-io/memcache#22 and pinterest/pymemcache#272. There is also a python memcached client with meta support https://github.com/RevenueCat/meta-memcache-py.

This is the tracking ticket for implementing the new Meta Commands protocol. See https://docs.memcached.org/protocols/meta/

@jonathon-geeves
Copy link

jonathon-geeves commented Mar 10, 2025

This would be of interest to us - quite a number of the features available in the new meta protocol are features which I have had experiencing building workarounds for via adding metadata into the payload stored against key values. However the direct support in the protocol would make the implementation more efficient, and allow simplification of the code.

A example of one of these is the Early Recache functionality. I've seen a workaround where clients store a refresh time in the value, and then perform a fuzzy comparison on the client side to determine who should re-cache the value (so comparing recache time against current time, with some randomised offset), and then the client must write an update to the value to indicate that it is in the process of refreshing it.

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

No branches or pull requests

2 participants