Hi all,
The 2.0 branch of dbmail is becoming "stable". A lot of code has been
changed, almost all of it in the database layer.
* merging db code
As I mentioned about1 1/2, 2 months ago, the database code has been
merged together, leaving only 2 (MySQL and PostgreSQL) database
specific .c files of about 300 lines of C-code each. Implementing code
for additional database
systems (Oracle, DB2, Firebird, SAPdb etc) should be quite trivial.
* extra table
There is an extra table in the database (physmessage, for 'physical
message', as opposed to virtual message) which links messageblocks and
messages. This gives us great speed up with regard to copying messages.
In the old database scheme, copying a message meant copying all
messageblocks, which is slow. Now, only a new entry in the messages
table has to be made, which points to the same physmessage record.
This speed up was needed because copying occurs quite frequently; IMAP
has no MOVE command, so a move is done by a COPY followed by a delete.
This occurs often, for instance when a client does not really delete,
but moves a message to the Trash folder
The messages tables has been changed like this: it holds an extra
physmessage_id field. The messagesize, rfcsize and internal_date fields
have
been removed.
the physmessage table holds: messagesize, rfcsize and internal_date
the messageblks table now holds a physmessage_id instead of a
message_idnr
* extra column in users table
The users table now holds the column "currmail_size", which holds the
current
mailsize of a user. This prevents the calculation of the used quotum
every
time this figure is needed. currmail_size is now calculated every time
the
size of a user's mailbox changes.
I've done quite a lot of testing, using the MySQL backend. PostgreSQL
should be
tested further.
DBMail 2.0 is now ready to be tested by more people to squash all
remaining bugs.
Please pull the latest revision from cvs* and test it!
cheers,
Ilja
*
use: "cvs -d :pserver:cvs@lightning.fastxs.net:/cvsroot-dbmail co -r
dbmail_2_0 dbmail" to get dbmail 2.0
The 2.0 branch of dbmail is becoming "stable". A lot of code has been
changed, almost all of it in the database layer.
* merging db code
As I mentioned about1 1/2, 2 months ago, the database code has been
merged together, leaving only 2 (MySQL and PostgreSQL) database
specific .c files of about 300 lines of C-code each. Implementing code
for additional database
systems (Oracle, DB2, Firebird, SAPdb etc) should be quite trivial.
* extra table
There is an extra table in the database (physmessage, for 'physical
message', as opposed to virtual message) which links messageblocks and
messages. This gives us great speed up with regard to copying messages.
In the old database scheme, copying a message meant copying all
messageblocks, which is slow. Now, only a new entry in the messages
table has to be made, which points to the same physmessage record.
This speed up was needed because copying occurs quite frequently; IMAP
has no MOVE command, so a move is done by a COPY followed by a delete.
This occurs often, for instance when a client does not really delete,
but moves a message to the Trash folder
The messages tables has been changed like this: it holds an extra
physmessage_id field. The messagesize, rfcsize and internal_date fields
have
been removed.
the physmessage table holds: messagesize, rfcsize and internal_date
the messageblks table now holds a physmessage_id instead of a
message_idnr
* extra column in users table
The users table now holds the column "currmail_size", which holds the
current
mailsize of a user. This prevents the calculation of the used quotum
every
time this figure is needed. currmail_size is now calculated every time
the
size of a user's mailbox changes.
I've done quite a lot of testing, using the MySQL backend. PostgreSQL
should be
tested further.
DBMail 2.0 is now ready to be tested by more people to squash all
remaining bugs.
Please pull the latest revision from cvs* and test it!
cheers,
Ilja
*
use: "cvs -d :pserver:cvs@lightning.fastxs.net:/cvsroot-dbmail co -r
dbmail_2_0 dbmail" to get dbmail 2.0