tag proposal
Dustin Sallings
dustin at spy.net
Thu Oct 4 08:17:14 UTC 2007
On Oct 4, 2007, at 1:07, BUSTARRET, Jean-francois wrote:
> It would be nice to be able to add multiple tags with a single
> commands : add_tag(key, tag1, tag2, ..., tagN), to avoid multiple
> roudtrips, or add a tag list as an optionnal parameter to the set/
> add/replace commands. ie : set <key> <flags> <exptime> <bytes>
> <tag1>,<tag2>,<tag3>...\r\n
I don't think there's a problem with multi-tag. I'd expect people
would want to have more than one anyway.
Adding tags to all of the existing commands is a tough one, though.
The cost of one more round trip is trivial compared to having to
change the server processing of mutation commands and updating all of
the client APIs to be able to handle this. In a particular client,
you can still send both commands as a single stream and then just
expect two lines of response.
> AFAIAC, I think tags need to be released. My use for tags would be
> to tag cache entries by content id/user id/channel id. Having to
> store every id used (even deleted content/content not accessed for
> a long time) since the last start of memcached would be a problem...
OK, it's worth considering, then.
Each tag will have a reference count that is increment every time
the tag is successfully added to an item (i.e. must not increment if
an item lookup fails or the item already has the tag).
When the item is deallocated, all tags should be decremented for
that item.
When the tags reference count hits zero, we'll pull it from the
global map.
Memory churn may be an issue. Someone who knows allocators better
than I do can decide what to do here.
--
Dustin Sallings
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.danga.com/pipermail/memcached/attachments/20071004/546066b0/attachment.htm
More information about the memcached
mailing list