Hi Dustin!
On Oct 3, 2007, at 4:17 PM, Dustin Sallings wrote:
Tags seem to be getting hot and lots of people have talked about
it fairly abstractly. I wanted to try to bring some of those
together with respect to a memcached implementation and sit back
and watch it all happen. :)
Firstly, I think there are two new commands to implement tags:
1) add_tag (key, tag_name)
2) invalidate_tag (tag_name)
I don't think there's a need for tag inspection for a given
object. There is *definitely* no command to search by tag.
It would be nice to do three additional things with tags:
1) Get a list of all active keys associated with a tag (even if it is
lossy). Two optimizations would be:
* Give me the count of objects within this tag
* For a read, take a snapshot version of the list to have read
consistency (aka take an MVCC approach)
2) Allow the "set" of an object with its tag name. This will solve
the problem of creating an object and then tagging the object.
3) Clear an object from a tag.
4) Option to invalidate a tag, and blow away all keys associated with
it (think of it as a mini-operation to save on round trips)
[It's unclear whether it's worth the effort to ever release a tag
once it's been added. If we assume that tags live forever, we
don't have to refcount them and a few things get easier. Any
opinions?]
If you invalidate a tag, the tag should go away.
Cheers,
-Brian
--
_______________________________________________________
Brian "Krow" Aker, brian at tangent.org
Seattle, Washington
http://krow.net/ <-- Me
http://tangent.org/ <-- Software
http://exploitseattle.com/ <-- Fun
_______________________________________________________
You can't grep a dead tree.