воскресенье, 6 июня 2010 г.

The beginning

Hi ALL. I'm Andrey and this is my mozilla hacking blog. Welcome!

I was chosen as a google summer of code 2010 student. I'll be working on Thunderbird, helping David Bienvenu with Pluggable Mail Store.

Historically TB was written to store emails in Berkeley mbox format (one mbox per folder). Berkeley mbox has some issues, originating from its nature - all email for a mail folder is stored in a single file. The issues are:
1. Mbox file needs to be locked by the program that modifies it. Otherwise, inconsistent writes to mbox file by different programs will damage it. The problem is even worse: not all file systems support locking, and sometimes there are multiple incompatible locking mechanisms.
2. It's very costly to delete email from mbox. Involves file copying.
3. If mbox file is damaged, you can lose all email for the folder (e.g. your Inbox). Happens sometimes with TB.

For these and other reasons it would be great to be able to store email in different formats that do not have these issues.
Rather than to rewrite code to use another format it was decided to use the power of XPCOM - interfaces - define a pluggable mail store interface that a particular mail store format can implement, as an XPCOM component.

David defined such an interface in his patch to the mailnews code. He is now working on rewriting TB code to use this interface. He moved all mbox-specific code into a new component. My task is to implement this interface for Maildir.

Комментариев нет:

Отправить комментарий