Hi! Nicola Ranaldo wrote:
I use postgresql for the same reasons, in alpha and x86. And I can't see any accountable performance difference between mysql and postgresql in *my* setup's :)I use PostgreSQL because it's very stable on True64 (!), and there is an historic consolidation of transactions and referential integrity. These make MySQL immature for my purpose! Howewer at first look it seems porting C code from PostgreSQL to MySQL is very easy :)
Anyway, returning to the topic:
A database backend would be very, very nice because you have more freedom (choices) and because, in some setup's, it could be much faster (the DB server can be in another machine).
Of course the files backend is still the obvious choice for some setup's and the way some people like it the most (it's, in some extent, the unix way of doing this :).
So, I don't think it's a waste of time :)
You talk about 1 connection per imapd/pop3d process... This may not be very good because you can have 1000 imapd processes in big setups. IMHO the right-thing to do is create a daemon that has 5 DB connections and the imapd's talk to this daemon via sockets or something.
IIRC someone implemented such a daemon and patched cyrus to use it. This daemon's backend was a text-file but the "protocol" is there.
a drawing :)
imapd1 imapd2 imapd3 ... imap1000
| | | |
-------------------------------
|
daemon
|
-----------------------
| | | | | | |
1 2 3 4 5 6 7
1 to 7 would be postgresql connections. This number may vary... maybe 1 connection per 100 imapds? Or a user defined number. IMMV...
Just searched a bit and found a reference to the mailbox-daemon here:
http://asg.web.cmu.edu/archive/message.php?mailbox=archive.info-cyrus&msg=8712
As Noll Janos points, even cache can be implemented because data always goes through this daemon.
I'm sorry for the long email.
Regards,
Nuno Silva