On Fri, 19 Feb 2010 13:31:15 +1300, martin f krafft <madduck@madduck.net> wrote: > also sprach Ben Gamari <bgamari@gmail.com> [2010.02.18.1810 +1300]: > > > Instead of nested subtrees, think of 16 subtrees forming > > > a level-1 hash table, or 256 for level-2, which really *ought* > > > to be enough. > > > > > > Anyway, rewriting a tree object is pretty much exactly the same > > > as removing a line (e.g. a message ID) from a file (e.g. a tag), > > > as that file would have to be fully rewritten. > > > > > This is very true, but exactly do you mean by this statement? > > That any form of tag-to-message mapping will be expensive when you > have a million messages referenced. If you used symlinks like mairix > does, any manipulation would require changes to the directory index, > which — curiously — functions much like the subtree approach you > proposed. Why do you want to store tag-to-message mapping in git? This is IMHO perfectly solved by Xapian so storing message-to-tag mapping would be sufficient, wouldn't it? Michal