[imp] login slowness with large inboxes after upgrade from Horde 3.0.10+IMP 4.0.4 to Horde 3.3.8 + IMP 4.3.7
Alan Kong
kkkong at ee.cuhk.edu.hk
Thu Nov 4 09:08:55 UTC 2010
Are you using Dovecot as imap server? Might be the index file(s) get
corrupted.
Alan
On 11/4/2010 4:34 PM, Jose Manuel Blanco wrote:
> Thank you all for your replies
>
> Regarding the IMAP server side suggestions, the thing is that my old
> webmail (Horde 3.0.10+IMP 4.0.4) is connecting to the same IMAP
> server, and it has no problems dealing with large inboxes -1 or 2
> seconds max. for displaying inboxes with more than 40000 mails never
> been cached-, so my question remains: has the imp code changed in a
> way that would explain that behaviour? For example, when I click in
> the Date tab to reorder my messages, my old webmail only reorders the
> ones that are visible, while the new one goes to the first (or last)
> page instead. This suggests that the old one is only dealing with the
> ones that are visible, but I can't be sure. The settings are the same
> in both webmails as far as I can see.
>
> Thanks again for your help.
>
> Jose Manuel
>
>
> On 11/03/2010 07:12 PM, Michael M Slusarz wrote:
>> Quoting Aria Bamdad <aria at bsc.gwu.edu>:
>>
>>> I have the same problem with my setup. I use an IBM IMAP server and
>>> after
>>> running several traces, we found that IMP tends to request specific
>>> detailed
>>> information about every mail item in the inbox at logon. When you have
>>> 1000's of messages and if your IMAP server is not local or is not super
>>> fast, this results in the slow login problem reported here. My
>>> solution to
>>> this was to set the $conf[server][sort_limit] variable (IMP
>>> configuration,
>>> Server tab) to a small number and basically turn off sorting if
>>> there are
>>> too many messages in a mailbox. Doing this, resulted in
>>> eliminating the
>>> massive request at login.
>>
>> The bottleneck here is your IMAP server then, not IMP. RFC 3501 is
>> unfortunately limited in that it does not allow server side sorting
>> for anything other than arrival time. So to perform sorting on ANY
>> other field requires the IMAP client to download all of the necessary
>> headers from EVERY message in the mailbox to do the sorting on the
>> client-side. For a disconnected client, this is a potentially brutal
>> operation (it is especially brutal for threaded sort, since it relies
>> on several messages headers at once). IMP mediates this by being
>> able to cache header data, but you have to enable caching.
>>
>> This is not a problem with IMP because EVERY client has to do this.
>> You won't see this in desktop clients, however, since they can do
>> things like download message headers in the background and cache
>> these headers. It is difficult, if not impossible, to do this for a
>> webmail client, however.
>>
>> Exacerbating the problem is that IMP uses the c-client library to
>> interact with the IMAP server. Unfortunately, the c-client library
>> is known to be HORRIBLY inefficient when it comes to querying the
>> IMAP server. To view a single header (say, for example, the "from"
>> header) c-client downloads the entire message envelope of every
>> message in the mailbox, rather than just the header requested. There
>> is *nothing* we can do about this in IMP 4 since we don't control the
>> IMAP commands being sent to the server.
>>
>> So now the good news. First, many modern IMAP servers now support
>> server-side sorting and threading (RFC 5256 - only formally adopted
>> in June 2008). This eliminates issues related to sorting delays.
>> Better yet, many of these IMAP servers cache the header information
>> internally so they don't have to parse all mail messages in the
>> mailbox every time a sort request happens. This drastically speeds
>> up mailbox accesses.
>>
>> Additionally, c-client is no longer an issue in IMP 5 since we have
>> replaced the c-client library with a native Horde IMAP library that
>> is magnitudes faster.
>>
>>> What would be nice is if IMP only requested specifics about messages
>>> that
>>> appear in the current window rather than ask for every message in the
>>> mailbox. The problem is that if a user selects any sort field other
>>> than by
>>> arrival order, then at login, IMP asks for detailed information
>>> about every
>>> mail item in the mailbox, slowing down login to a crawl.
>>
>> This is (unfortunately) correct behavior. You can't sort a single
>> "message view". To sort a mailbox requires processing *every*
>> message in the mailbox - or else how would you determine what
>> messages a view entails? We can work around this a bit - namely,
>> once we get a sorted list for a mailbox, we can continue to use this
>> sort until the mailbox structure changes. But that only provides
>> partial relief. The only way to truly remedy this situation is to
>> use an IMAP server that supports RFC 5256.
>>
>> michael
>>
>
>
More information about the imp
mailing list