Wiki, information on database back ends.

Patrick Goetz pgoetz at mail.utexas.edu
Tue Sep 14 15:24:17 EDT 2010


On 09/14/2010 12:26 PM, Dave McMurtrie wrote:
>
> The Cyrus wiki's content has been mostly moved to
> http://www.cyrusimap.org/ except for what I considered to be useless or
> outdated content.
>

Hmmm, the take away message is the wiki is rather light on useful, 
timely content.  <:)

There's been some discussion on the Debian cyrus list about how to 
automate upgrades from cyrus 2.n.k to cyrus 2.m.j.  Jeroen van Meeuwen 
(on both lists) suggested that the cyrus RPM package features a utility 
called cyrus-imapd.cvt_cyrusdb_all which might be useful for this.

I've been looking at this script, and it mostly appears to be using 
cvt_cyrusdb to convert particular db files to Cyrus skiplists and then 
back again to the original db backend format.  I can't follow the script 
completely as it seems to rely on DB configuration details found in the 
imapd.conf file I don't have in my Debian 2.1.16 imap server, and it's 
also not clear how the script is run.

This raises a number of questions, though:

1.
Cyrus skiplists?  I thought all the DB files were in Berkeley DB format. 
  I tried to find some documentation on skiplists, but only found an old 
message to the developer list from Bron Gondwana discussing skiplist 
bugs (http://markmail.org/message/zbaq765brbg2acfj).

On the other hand, this guy talks about converting all Berkeley DB files 
to skiplists because of perceived libdb bugs:
http://www.mail-archive.com/info-cyrus@lists.andrew.cmu.edu/msg31953.html

Skiplists: what are they, when and why use them?  Either I'm a bad 
googler or documentation seems to be lacking.

2.
The Redhat cvt_cyrusdb_all script seems to assume a specific set of 
database files.  Is the set of cyrus imap DB files fixed, and if so what 
are they?  Is there any documentation on what each database file 
contains? This would be very useful to people trying to convert older 
cyrus IMAP installations to new ones.

3.
The dicussion of DB backends leads one to wonder if this means Berkeley 
DB or skiplists, or if other backends are used, too?  Is there any 
documentation on this?




More information about the Cyrus-devel mailing list