SQL database backend

Bron Gondwana brong at fastmail.fm
Mon Oct 10 19:04:38 EDT 2011


Hi,

Is there anyone out there using the SQL backend in production?

Would you be really sad if I redesigned it?

Here's what I'm thinking:

a) split into per-DB backends, i.e. "sqlite", "mysql", "pgsql".

b) one sqlite file per database (same path as current DBs)

c) one connection per database (both sqlite and others) - so transactions
   are separate per database, but only one transaction per database per
   process.  Same as every other backend.

d) configurable DSN rather than 'file name' in the fname parameter, so
   you can use different databases for different things.  In sqlite's case,
   it would be a standard table name in the given file instead.

That about covers it.

And if anyone has put together any other backends, I'm interested.  I think
a memcached backend would be particularly popular, especially if you wanted
to share tlscache around and stuff.

I have some initial work standarising APIs a bit more and adding documentation
of the cyrusdb "interface", nailing down some more behaviours, at:

https://github.com/brong/cyrus-imapd/tree/cyrusdb

Bron.


More information about the Info-cyrus mailing list