> > 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.
