[Kolab-devel] Z-push optimization

Jeroen van Meeuwen (Kolab Systems) vanmeeuwen at kolabsys.com
Fri Oct 1 21:44:18 CEST 2010

Alain Abbas wrote:
> Hello
> i ve got a big problem :
> Each time that a mobile synchronize i must read all the annotations of
> all the folders to know if a folder is for sync or not
> i ve got some customers with big trees ( arround 300 folders in Inbox)
> become a bottleneck.
> 1) how to do not read at each time all the annotation folders ?
> even if i cache some informations that become the hell
> and i must know if the annotations are changed or not
> to put or remove the folder to the sync
> I thought to make that ,to make a special flag in the INBOX annotation a
> counter :
> If the user modify the annotation of one folder this number could be
> incremented
> 1 when the user modify  an annotation  the  "ANNOVERSION"  is
> incremented in the INBOX folder
> Zpush would check this ANNOVERSION and compare with the old one
> if ANNOVERSION is not equal Zpush read again the annotations
> Stay now the problem of the user space where to put this ANNOVERSION ?
> I think at this step we see the limitation for this method (annotations
> per folder) and a simple
> list in LDAP should be
> more efficient and simple .
> I waiting your feedback and ideas to resolve this big performance issue
> Alain

Hi Alain,

I understand your problem is the iteration of (many) IMAP folders and the 
inherent cost of having to use the IMAP protocol to get to the data that you 
actually require.

I understand this to result in great performance penalties, and hence I was 
thinking the following scenario might make sense to pursue for the future;

If Cyrus were enabled to keep it's mailboxes.db, annotations.db, seen.db, and 
possibly even it's .index, .cache and .header in a true SQL database backend, 
Kolab_Z-Push would be able to use Cyrus' SQL backend as if it were cache.

I've got several threads going on this approach already, so please let me know 
what you think of using Cyrus' "live" as your "cache".

Kind regards,

Jeroen van Meeuwen
Senior Engineer, Kolab Systems AG

e: vanmeeuwen at kolabsys.com
t: +316 42 801 403
w: http://www.kolabsys.com

pgp: 9342 BF08

More information about the devel mailing list