On 10/28/07, Jacob Burkhart <igotimac / gmail.com> wrote:
> So alter memcached to accept a 'query' in the form of arbitrary ruby (or
> perhaps a pre-defined ruby) that a peer-daemon is to execute over the set of
> results a particular memcached node contains.

Yeah, I thought of writing a Ruby daemon that "wraps" memcached.

But then the wrapper would have to deal with all the performance
challenges that a full replacement to memcached has to deal with,
namely: handling multiple concurrent clients, multiple simultaneous
read/write requests
(race conditions etc.) and heavy loads.

A naive implementation of memcached itself would be trivial to write;
memcached's  real merits are not its rather limited featureset, but
its performance, stability, and robustness - i.e., its capability to
overcome the above challenges.

The only way I could use memcached to do complex queries is by
patching memcached to accept and handle complex queries. Such a patch
won't have anything to do with Ruby itself, would probably be very
non-trivial, and will have to significantly extend memcached's
architecture. I doubt I have the time to roll out something like that.

-Tom