[Dovecot] Using MySQL to store email?

Steffen Kaiser skdovecot at smail.inf.fh-bonn-rhein-sieg.de
Tue Jun 6 17:46:46 EEST 2006


On Tue, 6 Jun 2006, nodata wrote:

>> Seems to me that MySQL could somplify all the backend stuff

There are different SQL-Servers out there, e.g. Postgres.

> Putting everything in a database would provide one benefit:
> * Less storage space needed due to duplicated e-mail

Don't know, if such stuff will work out-of-the-box, but if the mails is 
broken into headers and bodies (for the message awhole and each MIME 
part), it can be very beneficial.

> NOT putting everything in a database provides plays to Linux's strengths:
> everything is a file, meaning we can use all of the standard file-focused

And limits. Why does Dovecot has so many options for locking? ;-) What are 
the files days old in the tmp/ folders?

> text processing tools. If everything is a file, backups and restores are a
> piece of cake.

Well, the problem with a file-based database (Dovecot's indexes etc. are 
in fact a database) is that you must use the same locking and/or terminate 
/ suspend the service, otherwise there is the possibility that the data 
and the indexes are out-of-sync. The transactions of a full-featured DB 
will make backups and restores reliable, however, partial restores won't 
be possible without a good toolset. Do you know the spot of time _for_ 
_sure_ Dovecot has committed all internally cached data into the index- or 
control files?

Moving away from the filesystem will introduce other problems, e.g. one 
needs to introduce a full ACL implementation. And no operation can be 
easily performed in a DB manually, as you can with files. However, for the 
Dovecot files (e.g. keywords of a message) you need a toolset even today. 
For a SQL-Server, you need to know the structure and you can built a 
toolset with any language you like.

I'm neither advocating filesystem- nor DB-based mail storage, both has 
there strength and weakness. But I'd expect that you can rely on the DB's 
strangth for indexing and storing data well and you can focus on the 
processing of mails.

BTW: Cyrus uses a DB, doesn't it?

Bye,

-- 
Steffen Kaiser


More information about the dovecot mailing list