Gnus development mailing list
 help / color / mirror / Atom feed
From: James Cloos <cloos@jhcloos.com>
To: ding@gnus.org
Subject: Re: More on the new nnimap
Date: Fri, 08 Oct 2010 12:00:24 -0400	[thread overview]
Message-ID: <m339sghdxr.fsf@carbon.jhcloos.org> (raw)
In-Reply-To: <m3iq1dajvq.fsf@quimbies.gnus.org> (Lars Magne Ingebrigtsen's message of "Thu, 07 Oct 2010 21:22:01 +0200")

>>>>> "LMI" == Lars Magne Ingebrigtsen <larsi@gnus.org> writes:

>> The difference is that it is not an error if the group already exists,
>> except only for the new nnimap.  So how about an nnimap-request-
>> possibly-create-group?

LMI> But what you want to do is to subscribe Gnus to a group from a server,
LMI> right?  The function to do that is `gnus-subscribe-group'.

OK.  I re-did the view to create lisp which uses (gnus-subscribe-group).
They don't automatically show up in the *Group* buffer as before, so I
have to learn to do C-uAl after rather than before, but it does work.

LMI> Anyway, there is no way in the IMAP protocol to ask "what are new
LMI> mailboxes since <DATE>", so the only way Gnus has to find new groups is
LMI> to issue a LIST, right?  (Well, or LSUB, which is kinda the same thing.)
LMI> So if you have this setup, then there's no way that Gnus can get
LMI> acceptable performance if you want auto-subscription of new IMAP groups
LMI> working.

The problem with dbmail is that it first does a SELECT to grab the group
IDs requested by a LIST/LSUB, and then iterates through those to grab
the info needed to create the reply line.

Were it instead to do a single query for all of the data it needs it
would be *fast*.

As I previously wrote, I had to patch dbmail to use dense UIDs; I'll
have to do another patch to improve LIST, once I figure out the required
SQL.  (haschildren vs hasnochildren is the hard part.)

I suspect dbmail works the way it does because it was first written for
mysql; support for sqlite and postgresql was added later.

LMI> Can't you just alter your IMAP->pg thing to make LIST fast?  :-)  Gnus
LMI> just needs the mailbox names, and doesn't care about anything else.

See above.  If I can reduce it to a single select it should blaze.

>> When the mismatch occurs, one must read a number of other articles and
>> then go back to the failed one in order to see what should be there.

LMI> This is most bizarre.  Gnus requests articles from backends by issuing
LMI> first a SELECT, and then a UID FETCH.  I can't see any way for that to
LMI> fetch an article from the wrong group, unless there's something
LMI> fundamentally wrong in the sequence Gnus does these things, and I
LMI> haven't heard anything odd in the area before.

I cannot rule out a bug in dbmail or in my patch to dbmail.  I don't see
such a bug, but it might be there.

I did go back to gnus-single-article-buffer t; I don't know whether that
is relevant.

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



  reply	other threads:[~2010-10-08 16:00 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-02 18:23 James Cloos
2010-10-04 16:36 ` Lars Magne Ingebrigtsen
2010-10-04 18:02   ` James Cloos
2010-10-04 19:48     ` Lars Magne Ingebrigtsen
2010-10-04 21:14       ` James Cloos
2010-10-05 16:39         ` Lars Magne Ingebrigtsen
2010-10-05 22:01           ` Dan Christensen
2010-10-07 19:11             ` Lars Magne Ingebrigtsen
2010-10-08 15:47               ` James Cloos
2010-10-06  9:05           ` James Cloos
2010-10-07 19:22             ` Lars Magne Ingebrigtsen
2010-10-08 16:00               ` James Cloos [this message]
2010-10-09 16:06                 ` 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=m339sghdxr.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).