A patch that I made to the Ruby memcache client to optionally accept packets greater than 1 MB has been accepted by the package maintainer and should be included in the next release. This change adds a new configuration option to specify if the client should check the size of the incoming packet. Previous versions of the Ruby memcached client raised an error if the packet size was over 1 MB. This made sense with the traditional memcached server as it has a 1MB slab size by default. This limit doesn’t make sense with Tokyo Tyrant, which is a daemon allowing access to a Tokyo Cabinet key-value database via the Memcached protocol.
I’m still not confident that the semantics of the ruby memcache client are what one would want for use with persistent key-value stores. In particular, I haven’t delved into the code enough to figure out if the cases where failure occurs in the memcache client should be different based on the type of key-value storage system being used. Since the ruby memcache client is so widely installed, it seems like being able to specify different behavior for failure cases would be a great help for people using different forms of key-value storage systems with the memcached protocol.
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.