I've just merged in a changeset that makes Sup store message body
content in the Ferret index. (They've always been indexed, but now
they're stored as well.) This means that changing the labels on a
message can be a copy operation of the previous Ferret document, rather
than requiring downloading and parsing the original message to create a
new Ferret document.

So, this should have two effects:

1. The Ferret index size will expand by about 50%. Sorry.
2. Tweaking message labels should be much, much faster, since the
   message no longer has to be downloaded from the source in order to
   change the labels. If you've ever tried to label a large IMAP thread,
   you no longer have to wait 5 minutes just to save. :)

The index size increase is unfortunate, but it's something that has to
happen anyways if we want search-results-mode to have matching text in
the snippets, which is in the future TODO.

The change was made in such a way that it's incrementally applied
whenever a message is saved or changed in the Ferret index. So, if you
want the above behavior on all messages immediately, you must do
sup-sync --all on a source (which will require downloading each
message). Otherwise, you will get the slow behavior (message body needs
to be downloaded from the source) the first time you save a message
after merging this change, and the fast behavior (no downloading
required) on all subsequent times.

I'm planning on committing another change in the near future that will
also require a sup-sync --all, so you might want to hold out for that if
you have a lot of messages. (I'm planning to have message state be
duplicated outside the Ferret index, so that Ferret index corruption is
a nuisance rather than a nightmare.)

There's also a potential next step here where no interaction with
external sources is *ever* required except at poll time, which would
mean IMAP would become actually useable. (The other option being just
figure out why the Ruby IMAP library is so incredibly slow.)




-- 
William <[EMAIL PROTECTED]>
_______________________________________________
sup-talk mailing list
sup-talk@rubyforge.org
http://rubyforge.org/mailman/listinfo/sup-talk

Reply via email to