On 17.7.2010, at 18.55, Brandon Lamb wrote:
What is the default mailbox file size (the m* files?),
mdbox_rotate_size = 2M
what actually happens when a message is delivered, when is a new file created,
It tries to find an existing file to append to, and creates a new one if it can't. The details of this aren't really perfect yet and the code should be rewritten.
when a user deletes a single mail what happens, or if they delete multiple mails,
A few bytes are written to index files.
if a users client does the move to trash then mark as deleted then purge, what happens inside?
That's a COPY + delete. Same as above.
There was mention of no file truncating, so does that mean if a user deletes mails, and they are in 3 different mail storage files, that those messages are written to 3 new (or existing with free space?) mail storage files and the old ones just sit around using space?
doveadm purge goes through all files that have expunged messages. It writes them to other files the exactly the same way as any other new messages are written (so they can be written to other existing files). After it's finished writing them, the old files are deleted.
And if you never run a purge or expunge script, will your data store just keep growing, is there no self cleanup? With maildir, you delete a message and the file goes away.
There is currently no self cleanup. There used to be for a while, but its performance sucked.
I guess if someone had time to write a slightly more detailed explanation of how mdbox works than what is on the wiki that would be cool.
Maybe some day :)
Also maybe a "if you run mdbox, you are going to want to know this and that, and do this and this and this"
Purging is pretty much the only important part. Then there are the couple of mdbox_* settings.