Cyrus Patches used at FastMail.FM

Robert Mueller robm at fastmail.fm
Tue May 23 20:08:59 EDT 2006


> I know we discussed this in the past, but I can't seem to find the thread. 
> What part of the existing STATUS code causes the bottleneck?
>
> Is it STATUS_RECENT and STATUS_UNSEEN?

It's a combination of both. The main things are:

1. Status UNSEEN and RECENT both have to loop over the cyrus.index file. 
With users with many folders and large message counts that don't change that 
often, it doesn't stop their IMAP clients issuing a STATUS call on every 
folder every 5 minutes. On a busy server, even with lots of memory the 
system disk cache will be completely flushed over a 5 minute period, so 
these STATUS calls cause every cyrus.index file to be re-read into memory. 
Given most folders don't change that often, with the cache these STATUS 
calls are serviced without having to read the cyrus.index file at all.

2. Status UNSEEN was particularly slow with large seen sequences. The 
"fastindex" patch mostly fixes that is it's not as much of an issue any 
more.

Rob



More information about the Info-cyrus mailing list