libmemcache and pgmemcache...
Sean Chittenden
sean at chittenden.org
Tue Nov 23 13:27:25 PST 2004
>> Howdy. Last night I gave a presentation on pgmemcache and libmemcache
>> to the San Francisco PostgreSQL User Group. For the interested
>> parties,
>> the presentation is available at:
>>
>> http://people.FreeBSD.org/~seanc/pgmemcache/pgmemcache.pdf
>
> Hi Sean / list,
>
> pgmemcache is just about exactly what I'm looking for - excellent job!
> The way I'm thinking of using it in my application is to have "for each
> row after insert/update/delete" triggers in Postgres, which do a
> memcached "delete". Thus, when the database is modified, the cache is
> automatically invalidated. The checking of the cache, and the
> population thereof, would be done elsewhere.
Ah, excellent. That's basically how I use it now[1].
> Anyway, on to my question... how mature / stable / well-tested is this
> work? I'm trying it out on my dev box here, and so far it's behaving,
> but I'm a little reluctant to install it on our production server
> without hearing maybe a few encouraging noises from other people... I'm
> timid like that ;-)
Heh, I don't blame you. I've been using it for about 2-3 weeks now
(one in a half in its current revision) without any failures. I was
exceedingly paranoid in the way that I wrote it. Assuming your
memcached server is working well and not violating the protocol (ps,
Brad: reminder: commit my patch to docs/protocol *grin*), you won't
have any problems. I've thumped on my setup without any incident,
memory leaks, or crashes. Since this is still so new, I haven't
collected a list of users or success stories, but I'm very interested
in them. If you have questions on best practices, I seem to be
settling in on a good set of policies.
> P.S. Why not call it "libmemcache*d*" / "pgmemcache*d*"? Seems more
> obvious, given the name of the thing it's all based on.
Good question, originally I had the library as libmemcached, but
realized that the library name isn't correct. The daemon is called
memcached, meaning that memcached is providing the memcache service.
libmemcache is a library for using that memory caching layer, not for
using the daemon. libmemcached means to me, an API to control
memcached (ie, invoking memcached via the command line). -sc
PS If anyone is interested in helping fund work to add ON COMMIT
triggers to PostgreSQL (would dramatically improve data synchronization
between memcached and PostgreSQL), please contact me off list.
--
Sean Chittenden
More information about the memcached
mailing list