[POLL] Development guidance

Ken Murchison murch at andrew.cmu.edu
Fri Nov 2 12:42:37 EDT 2007


I'm getting ready to implement the QRESYNC extension for the upcoming 
LEMONADE interop.

http://www.ietf.org/internet-drafts/draft-ietf-lemonade-reconnect-client-06.txt

The major hurdle in implementing this extension is that we need to store 
state for expunged messages.  Currently I see two ways to do this:

1. Leverage delayed expunge which already stores state for expunged 
messages in cyrus.expunge (up until the records are purged by cyr_expire).

2. Create a separate database, or cyrus.index/cyrus.cache entry for 
storing expunged UID-sets and MODSEQs.

My gut tells me to just leverage cyrus.expunge.  The only downside that 
I can see is that QRESYNC now requires the admin to enable delayed 
expunge, and the length of the availability of the expunge data depends 
on how frequently the admin decides to purge with cyr_expire.  However, 
as long as we document this dependency, and give some recommended 
guidelines for QRESYNC, this might be a good tradeoff.

Thoughts?  Any other implementation ideas?

-- 
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University


More information about the Cyrus-devel mailing list