Re: IMAP sync tool (rsync for IMAP)

2007-01-19 Thread Simon Matter
 --syncinternaldates stopped working at imapsync 1.200 (current is
 1.204), as a side effect of the append_string-append_file change
 suggested by John Capo and Florin Andrei earlier in this thread, on Dec
 26, 2006. That change was made to avoid memory exhaustion, see
 http://www.mail-archive.com/info-cyrus@lists.andrew.cmu.edu/msg31296.html

 The underlying problem is that at least as of Mail::IMAPClient 2.2.9,
 the append_file function doesn't handle INTERNALDATE at all.

 A bunch of people here have talked about minor patches to
 Mail::IMAPClient. Has anyone added the $d argument to append_file and
 verified functionality?

 Most clients display Date: header, but some may show or use
 INTERNALDATE. For example, the Zimbra web interface is incapable of
 showing or sorting by Date:.

 See also http://www.zimbra.com/forums/showthread.php?p=33880#post33880

I already mailed the author of imapsync about that some days ago but
without having an idea how to fix it. I also checked Mail::IMAPClient and
found that it lacked the functionality needed here but it seems
Mail::IMAPClient isn't maintained anymore (at least there is no
development for long time now).

Simon

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: Delayed expunge / undeleting messages

2007-01-19 Thread Simon Matter
 A bunch of people already pointed out unexpunge, so I'll point out
 that the delayed expunge / unexpunge functionality doesn't help if
 the user deletes a whole folder.  See:

   https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2871

 for the problem report and a patch for a proposed solution.

I also found out that delayed_expunge doesn't help if a whole folder got
deleted. So if something like your proposed solution gets included that
would really be a very nice feature.

Simon

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: DB type comparison

2007-01-19 Thread FORMER 03 | Baltasar Cevc


On 19.01.2007, at 01:02, Blake Hudson wrote:


I know I've seen it before, but I've been having a hard time finding a
good comparison of the different db types supported by cyrus and their
respective strengths/weaknesses. Does anyone have a link they could 
share?


There's a short information about all the supported backends and their
features in the wiki:
http://cyrusimap.web.cmu.edu/twiki/bin/view/Cyrus/WhatDatabaseBackend

Hope that's helps,
Baltasar


Baltasar Cevc

_ FORMER 03 GmbH
_ infanteriestraße 19 haus 6 eg
_ D-80797 muenchen

_ http://www.former03.de


Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: Delayed expunge / undeleting messages

2007-01-19 Thread Rob Mueller


https://bugzilla.andrew.cmu.edu/show_bug.cgi?id=2871


I also found out that delayed_expunge doesn't help if a whole folder got
deleted. So if something like your proposed solution gets included that
would really be a very nice feature.


Agreed. This would also allow for complete backups of all emails and all 
folders. Currently there's a window of emails uploaded/delivered between the 
last backup and a folder being deleted that can never be restored.


I know David Carter implemented a patch for this in 2.2. I'm not sure if 
Wesley's patch is related to it or a completely separate implementation.


Rob


Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: IMAP sync tool (rsync for IMAP)

2007-01-19 Thread Rob Mueller

I already mailed the author of imapsync about that some days ago but
without having an idea how to fix it. I also checked Mail::IMAPClient and
found that it lacked the functionality needed here but it seems
Mail::IMAPClient isn't maintained anymore (at least there is no
development for long time now).


I don't know how much work it would be, but you could look at 
re-implementing using Mail::IMAPTalk. It's the IMAP client I built for use 
at FastMail.FM after finding problems with the other ones available at the 
time (about 4-5 years ago now). It definitely allows capturing a literal 
response into a file handle, and sending a file handle as a literal response 
to avoid storing everything in memory.


Rob


Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: using skiplist for quotas.db

2007-01-19 Thread Rob Mueller



so I wonder, will skiplist be a better choice?  obviously running
quota(8) will be a very cheap operation, but I'm worried about
contention on the quota database during delivery etc.  (these users are
for the most part not actively using the system -- they get less than
one message per day each(!) -- so I probably worry too much.)


The problem I saw was that accessing a skiplist db involves locking the 
entire file I believe. This felt like a huge point of contention, especially 
since every email delivered would lock it. I never did end up trying it out 
to test that though, so I wouldn't quote me on that, Ken could confirm.


What filesystem are you using? Have you considered trying reiserfs with 
tails enabled. It's quite impressive how little disk space it actually uses 
(don't believe du output). We used to use NVRAM cards, and even with 100,000 
users, it was only about 30 megabytes for the quota files if memory serves 
me right (300 bytes each for directory entry, stat data, and file data), and 
I imagine the entire thing ends up in the OS buffer cache in pretty short 
order...


Rob


Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: using skiplist for quotas.db

2007-01-19 Thread Ken Murchison

Rob Mueller wrote:



so I wonder, will skiplist be a better choice?  obviously running
quota(8) will be a very cheap operation, but I'm worried about
contention on the quota database during delivery etc.  (these users are
for the most part not actively using the system -- they get less than
one message per day each(!) -- so I probably worry too much.)


The problem I saw was that accessing a skiplist db involves locking the 
entire file I believe. This felt like a huge point of contention, 
especially since every email delivered would lock it. I never did end up 
trying it out to test that though, so I wouldn't quote me on that, Ken 
could confirm.


This is true.  If you want to use a single database, I would consider 
using BDB (as painful as it sounds), since it does localized locking.  I 
don't believe that either choice has been tested thoroughly however.


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

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: using skiplist for quotas.db

2007-01-19 Thread Kjetil Torgrim Homme
On Fri, 2007-01-19 at 21:58 +1100, Rob Mueller wrote:
 What filesystem are you using? Have you considered trying reiserfs with 
 tails enabled. It's quite impressive how little disk space it actually uses 
 (don't believe du output). We used to use NVRAM cards, and even with 100,000 
 users, it was only about 30 megabytes for the quota files if memory serves 
 me right (300 bytes each for directory entry, stat data, and file data), and 
 I imagine the entire thing ends up in the OS buffer cache in pretty short 
 order...

we're using ext3.  reiserfs is not an option, thank-you-very-much.  it
has hosed our spool way too many times.  an FS which can't handle
hardware failure (e.g. a flaky fiber cable) should be taken out and
shot.

I appreciate your taking the time to make suggestions, though :-)
-- 
Kjetil T.



Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: using skiplist for quotas.db

2007-01-19 Thread Kjetil Torgrim Homme
On Fri, 2007-01-19 at 07:49 -0500, Ken Murchison wrote:
 Rob Mueller wrote:
  The problem I saw was that accessing a skiplist db involves locking the 
  entire file I believe. This felt like a huge point of contention, 
  especially since every email delivered would lock it. I never did end up 
  trying it out to test that though, so I wouldn't quote me on that, Ken 
  could confirm.
 
 This is true.  If you want to use a single database, I would consider 
 using BDB (as painful as it sounds), since it does localized locking.  I 
 don't believe that either choice has been tested thoroughly however.

hmmm.

*reads cyrusdb_skiplist.c*

there's an interesting comment in mycommit about moving the unlock to
before the fsync.  that would be a very nice performance hack, but
should preferably be settable per database, e.g. adding a
skiplist_nosync to mimic berkeley_nosync.  after all, the quota
database isn't critical information, it's updated from an authoritative
source, anyway.

I'll see if I can muster the courage to try this out.  the worst that
can happen is that users don't have any quota limits at all, right? :)

thanks for the input, Rob and Ken.
-- 
Kjetil T.



Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


RE: using skiplist for quotas.db

2007-01-19 Thread Ken Murchison
Or things get mangled and people end up over quota.

(from my Treo)
-- 
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University

-Original Message-
From: Kjetil Torgrim Homme [EMAIL PROTECTED]
To: Ken Murchison [EMAIL PROTECTED]
Cc: Rob Mueller [EMAIL PROTECTED]; info-cyrus@lists.andrew.cmu.edu
Sent: 1/19/07 9:42 AM
Subject: Re: using skiplist for quotas.db

On Fri, 2007-01-19 at 07:49 -0500, Ken Murchison wrote:
 Rob Mueller wrote:
  The problem I saw was that accessing a skiplist db involves locking the 
  entire file I believe. This felt like a huge point of contention, 
  especially since every email delivered would lock it. I never did end up 
  trying it out to test that though, so I wouldn't quote me on that, Ken 
  could confirm.
 
 This is true.  If you want to use a single database, I would consider 
 using BDB (as painful as it sounds), since it does localized locking.  I 
 don't believe that either choice has been tested thoroughly however.

hmmm.

*reads cyrusdb_skiplist.c*

there's an interesting comment in mycommit about moving the unlock to
before the fsync.  that would be a very nice performance hack, but
should preferably be settable per database, e.g. adding a
skiplist_nosync to mimic berkeley_nosync.  after all, the quota
database isn't critical information, it's updated from an authoritative
source, anyway.

I'll see if I can muster the courage to try this out.  the worst that
can happen is that users don't have any quota limits at all, right? :)

thanks for the input, Rob and Ken.
-- 
Kjetil T.





Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: DB type comparison

2007-01-19 Thread Blake Hudson
Thanks, this is exactly what I was looking for. Now, can someone please
explain what the annotations and pts databases are used for?

I've had some locking issues with the deliver.db and would like to
switch all of the berkeley databases over to skiplist. Once this is
completed will there still be a berkeley db environment stored in db?
Also, are there any foreseeable problems making this move?

Thanks,
-Blake


FORMER 03 | Baltasar Cevc wrote:

 On 19.01.2007, at 01:02, Blake Hudson wrote:

 I know I've seen it before, but I've been having a hard time finding a
 good comparison of the different db types supported by cyrus and their
 respective strengths/weaknesses. Does anyone have a link they could
 share?

 There's a short information about all the supported backends and their
 features in the wiki:
 http://cyrusimap.web.cmu.edu/twiki/bin/view/Cyrus/WhatDatabaseBackend

 Hope that's helps,
 Baltasar


 Baltasar Cevc

 _ FORMER 03 GmbH
 _ infanteriestraße 19 haus 6 eg
 _ D-80797 muenchen

 _ http://www.former03.de



Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: Can murder be used for IMAP server migration?

2007-01-19 Thread Ken Murchison

Gary Mills wrote:

On Thu, Jan 04, 2007 at 07:47:54AM -0500, Ken Murchison wrote:

Gary Mills wrote:

On Wed, Jan 03, 2007 at 08:18:15AM -0500, Ken Murchison wrote:

Gary Mills wrote:

Can I use the old server as both a front end and one of the back ends
for a murder configuration, with the new server as the second back end?
Will that allow me to migrate mailboxes at my convenience?  How do I
prevent a port conflict between the IMAP server and the proxy on the
old server?

You'll have to run the frontend + mupdate master on a separate machine.

so the frontend has to run there.  Of course, the old IMAP server has
to run there too.  Is there not a way to have the old IMAP server listen
on different ports, so that only the frontend connects to it?  If not,
could it listen on a secondary IP address only?
It *might* make sense to upgrade the existing server to 2.3.x, since 
imapd can both proxy and serve local mailboxes (a unified Murder).


Is there any documentation on how to configure and manage a unified
Murder?  I couldn't find anything in the 2.3.7 source that described


Bascially build your config using both the backend and frontend 
instructions and set mupdate_config:unified




it.  In fact, the examples in the documentation still show the proxy
daemons, which no longer exist.


True, but we make hardlinks from proxyd - imapd, etc so that older 
cyrus.conf continue to work as expected.


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

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: Can murder be used for IMAP server migration?

2007-01-19 Thread Wesley Craig

On 18 Jan 2007, at 20:16, Gary Mills wrote:

Is there any documentation on how to configure and manage a unified
Murder?


See the man page for imapd.conf:

   mupdate_config: standard
The configuration of the mupdate servers in the Cyrus  
Murder.  The
standard config is one in  which  there  are   
discreet  frontend
(proxy) and backend servers.  The unified config is  
one in which
a server can be both a frontend  and  backend.   The   
replicated
config is one in which multiple backend servers all  
share the same
mailspool, but each have their  own  replicated  copy   
of  mail-

boxes.db.

Allowed values: standard, unified, replicated

AFAIK, that's all there is to it.

:wes

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html


Re: Delayed expunge / undeleting messages

2007-01-19 Thread Wesley Craig

On 19 Jan 2007, at 05:50, Rob Mueller wrote:
I know David Carter implemented a patch for this in 2.2. I'm not  
sure if Wesley's patch is related to it or a completely separate  
implementation.


Completely separate, tho my is based on comment from David suggesting  
how he would do it if he were to do it again, i.e., very simply.  I  
like simple, it's easier to write :)


:wes

Cyrus Home Page: http://cyrusimap.web.cmu.edu/
Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html