[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:
> 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
> STEPS :
> 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
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
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".
Jeroen van Meeuwen
Senior Engineer, Kolab Systems AG
e: vanmeeuwen at kolabsys.com
t: +316 42 801 403
pgp: 9342 BF08
More information about the devel