brenton at everyone-here.is-a-geek.com
Thu Oct 4 07:54:30 UTC 2007
Dustin Sallings wrote:
> Firstly, I think there are two new commands to implement tags:
> 1) add_tag (key, tag_name)
> 2) invalidate_tag (tag_name)
Using these commands, would that mean that adding a key with tags, would
require 2 commands from the client, or are there "internal" commands,
and the tags would be passed as part of the set request (as discussed in
previous threads on the topic)?
>> Third point. I am also assuming that we can assign more than one tag
>> to a key. If I could only add one tag to a key, then that would limit
>> its usefulness to me. I see you mention pointers (and not just
>> pointer) so I am sure that this is correct, just clarifying.
> Absolutely. Each item may have zero or more tags.
> Dustin Sallings
Multiple tags per key would make them _much_ more useful for me also,
but I can also see that this may be a sticking point for the
implementation when adhering to the goal that memcache operations should
be O(1), it was in my client-side (script, not memcache-client)
Using the algorithm you described, I think that would make a get
operation O(n), because it would need to check each tag for each key to
ensure it hasn't been invalidated. This could, of course, be quite
significant for multi-gets with many keys. Unless there is some trick
I'm unaware of (quite possible, I'm a scripter, not a C coder).
More information about the memcached