Return-Path: Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: (qmail 69620 invoked from network); 13 Feb 2009 06:02:37 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 13 Feb 2009 06:02:37 -0000 Received: (qmail 24520 invoked by uid 500); 13 Feb 2009 06:02:35 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 24494 invoked by uid 500); 13 Feb 2009 06:02:35 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 24483 invoked by uid 99); 13 Feb 2009 06:02:35 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 Feb 2009 22:02:35 -0800 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of b.candler@pobox.com designates 207.106.133.19 as permitted sender) Received: from [207.106.133.19] (HELO sasl.smtp.pobox.com) (207.106.133.19) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 13 Feb 2009 06:02:26 +0000 Received: from localhost.localdomain (unknown [127.0.0.1]) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTP id BC9419876B for ; Fri, 13 Feb 2009 01:02:01 -0500 (EST) Received: from mappit (unknown [80.45.95.114]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTPSA id 680E198769 for ; Fri, 13 Feb 2009 01:02:01 -0500 (EST) Received: from brian by mappit with local (Exim 4.69) (envelope-from ) id 1LXr7f-0001aR-Pw for user@couchdb.apache.org; Fri, 13 Feb 2009 06:01:59 +0000 Date: Fri, 13 Feb 2009 06:01:59 +0000 From: Brian Candler To: user@couchdb.apache.org Subject: Re: Couch as a mail store? Message-ID: <20090213060159.GB6049@uk.tiscali.com> References: <20090212161918.GB24119@uk.tiscali.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-Pobox-Relay-ID: D4D8E672-F993-11DD-989B-8B21C92D7133-28021239!a-sasl-fastnet.pobox.com X-Virus-Checked: Checked by ClamAV on apache.org > > Of course, SMTP clients don't mind a small delay before they get > > their 250 > > OK at the end of the message; you can therefore write a number of > > batches > > and do an fsync() every second or so, as long as you remember not to > > send > > the acknowledgement back to each client until *after* the fsync has > > completed. > > CouchDB does the fsync()-a-second currently. But I don't think this is currently exposed to the client. You'd need a "wait until next fsync has completed" request, to let you know that it's safe to send back a 250 OK to the client. A couple of other thoughts: (4) E-mail systems create and delete millions of documents per day. Is it true that couchdb keeps a small amount of data around indefinitely for every deleted document, for replication purposes? If so this would keep growing. (And whilst I've seen discussion about pruning old _revs, I've not seen discussion of pruning deleted documents) (5) I believe the IMAP protocol makes some RDBMS-type demands on a mailstore, in particular the allocation of contiguous sequence numbers to each message. Some careful thought would be needed on how to do this, as it may make full replication difficult - or at least increase the likelihood of replication conflicts, so would benefit from the planned feature of being able to specify custom conflict-resolution logic. (6) Another planned/not-yet-complete feature which would be very useful for a mail store is the document-level access control logic, which could for example be used for IMAP ACLs and shared mailboxes. Regards, Brian.