Jonathan Feally wrote: > For hydra, you can't just do it per message as it would break sorting > with messages spread across multiple databases. The only real solution I > can see is to have a mailbox assigned to a backend database. This will > keep all of the messages for that mailbox on the same server. Header > caching, and sorting would remain on that server. I'm not sure about UID > overlap between mailboxes though. If I had a UID 1 in multiple > mailboxes, would clients go nuts? I think they would be ok, but I'm not > sure if that breaks a RFC.
It doesn't. UIDs must be unique, incremental and remain unchanged unless the UIDVALIDITY of a mailbox changes. For example, dovecot and uw-imapd/panda always use UID 1 for the first message that was ever inserted into a mailbox. I think they use an offset against the inode of the mailbox or something similar. > Front end database tables: visavis > Back end single-instance storage databases: That will need a lot more thought, and probably extensive experimentation. Do we go for backend servers per mailbox (_very_ complex), or per user (attainable). If we stick to per-user distribution we still need to handle imap-acl, but the rest becomes much simpler: no front-end/back-end distinction. All we need is an extension of the auth module to contain the URI of the database server for a particular user. For LDAP that would be a single addition attribute containing the (encrypted?) URI of the database connection. For SQL an addition field on dbmail_users would suffice. Some kind of replication of the dbmail_users table across database servers would still be required, like we do now between ldap and sql. That would allow *any* of the database backends to function as the primary backend - in fact, any of the active daemons/tools would be able to use any of the backends for it's initial database connection, switching to another if the authenticated user so requires. -- ________________________________________________________________ Paul Stevens paul at nfg.nl NET FACILITIES GROUP GPG/PGP: 1024D/11F8CD31 The Netherlands________________________________http://www.nfg.nl _______________________________________________ Dbmail-dev mailing list Dbmail-dev@dbmail.org http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev