Gnus development mailing list
 help / color / mirror / Atom feed
From: James Cloos <cloos@jhcloos.com>
To: ding@gnus.org
Subject: fast list
Date: Sun, 17 Oct 2010 01:15:41 -0400	[thread overview]
Message-ID: <m3zkudpffu.fsf@carbon.jhcloos.org> (raw)

I fixed my modification of dbmail-2.2 to need only a single sql SELECT
to do an IMAP LIST/LSUB.  Previously it grabbed the UIDVALIDITY values
for the to-be-listed-groups in one SELECT, then iterated through that
list SELECTing the info required for LIST.

Now that latter data is returned as part of the initial SELECT.

That improved LIST from ~1k seconds for ~20k groups to about 1/2 second.

Nice.

But gnus still needs to do an EXAMINE Or STATUS or SELECT on each
returned group, and that is slow.

Ir turns out that the IMAP working group already thought of that,
though.

RFC 5819 defines an extension to LIST which returns STATUS replies
interleaved with the normal LIST replies.  Using that should speed
gnus startup considerably.

Gnus needs to note the LIST-STATUS capability; when it exists gnus
should send commands akin to:

   C: A01 LIST "" % RETURN (STATUS (MESSAGES UNSEEN))

specifying what status info it wants for each group.

 RETURN (STATUS (MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN))

would be OK here.

The reply includes w/in the untagged part of the reply status info after
each line of the list info, specifying the status info for that mailbox.

With that my startup time should get down to something which doesn't
involve stepping away for a pot of tea.  Or three. :-/

I expect to have the dbmail side of LIST-STATUS done tomorrow (it
doesn't look too difficult; at least not after I just finished a dbmail
hacking session) and should be able to test out any gnus support.

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6



             reply	other threads:[~2010-10-17  5:15 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-17  5:15 James Cloos [this message]
2010-10-17 22:02 ` Lars Magne Ingebrigtsen
2010-10-17 22:58   ` James Cloos
2010-10-18 19:10     ` Lars Magne Ingebrigtsen
2010-10-18 20:49       ` James Cloos
2010-10-18 21:03         ` Lars Magne Ingebrigtsen
2010-10-18 23:17           ` James Cloos
2010-10-18 23:38             ` Lars Magne Ingebrigtsen
2010-10-19 16:00               ` James Cloos
2010-10-19 16:13                 ` Steinar Bang
2010-10-19 18:12                   ` Lars Magne Ingebrigtsen
2010-10-19 20:56                   ` James Cloos
2010-10-19 18:12                 ` Lars Magne Ingebrigtsen
2010-10-19 21:05                   ` James Cloos
2010-10-20  0:07                     ` Lars Magne Ingebrigtsen
2010-10-20 18:47                       ` James Cloos
2010-10-21 15:59                         ` Lars Magne Ingebrigtsen
2010-10-21 19:13                           ` James Cloos
2010-10-22 14:51                             ` Lars Magne Ingebrigtsen
2010-10-19  5:58           ` Steinar Bang
2010-10-19 18:11             ` Lars Magne Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3zkudpffu.fsf@carbon.jhcloos.org \
    --to=cloos@jhcloos.com \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).