[Q: libmemcache] mirroring with *server_add*

Sean Chittenden sean at gigave.com
Tue Aug 9 11:01:00 PDT 2005

> >I have this logic and code available, though I haven't released it
> >yet.  If you're interested, I can arrange to get you a tarball.  I
> >can currently sync keys to disk and to other memcache servers.
> >There's even support to dump specific keys that are tagged in
> >advance, on a per-key basis on a given operation, as well as the
> >entire set of valid items.
> When do you think will be the your code released?

Not sure.  I may pop something out in time for Leenox World this week.
By and large, it's just an issue of me tying up some loose code and
deciding to throw the work out for consumption.  Without a doubt, I've
bastardized the concept of memcache.  It's rather gimpy, incomplete,
and dangerously close to exactly what it shouldn't be.  The following
commands/changes could be relatively easily ported back to
memcached(8), however.

listen [key] >= 5
listen [key]
log.open file:tmp/foo as:[log_tag]
log to:[log_tag] [key1[ key2[ key3[...]]]] [default]
log.close [opts]
log.rotate [opts]
log.open memcache:[host]:[port] as:[log_tag]
log.tag name:[tag_name] [list_of_keys]
log to:[log_tag] tag:[tag_name]
options.discard_older_expire true
<cmd>+log [normal add/set/replace syntax]
<cmd>+touch [updates ttl]
<cmd>+touch+log [updates ttl and logs a key to the default log handler, defaults to the connection's fd]
namespace.new [namespace]
options.namespace_separator (.|::)
namespace.global_default [namespace]
namespace.conn_default [namespace]
namespace.reset [namespace]

There are a handful of others, but that's what I can think of/have
time to type out at the moment.  I've got a simplified memcache(4)
syntax that lets you test and operate on multiple keys atomically.
Inside of batch you can throw assertions and roll back a set of
commands so that none of them apply.

I'd be a bit more concrete on my language, but I just busted namespace
support recently and think it's a change that snuck in on the
batch/execute side of things.  I've got a series of item manipulation
functions that I need to make a sweep through the code to make sure
that everything is linked in/removed/unlinked, etc.  I have a feeling
I'm traversing the item list off into the abyss with an improperly
unlinked item.


Sean Chittenden

More information about the memcached mailing list