[Zope3-dev] ZOPE3 Maildir implementation

Gary Poster gary at zope.com
Fri Apr 7 10:53:00 EDT 2006


On Apr 7, 2006, at 10:37 AM, Pjotr Prins wrote:

> I have a few questions regarding the ZOPE mailer implementation:

I didn't write it.  I have some pretty good guesses, though.   
Hopefully the author can confirm.

> 1. Why did you go for a file system implementation - as ZODB objects
> are being made into a mail queue anyway? The Maildir step could have
> been skipped, I suppose, just the connection to a mail server directly
> over the network interface would suffice. Is there a specific reason
> for the Maildir implementation?

Typically you have this kind of design because Zope only has a  
limited number if threads (usu. 4) that you don't want to tie up  
waiting for network traffic.  So the intent is to not block.

> 2. The current implementation can only handle between 30-60 E-mail's a
> minute. This is mostly due to the naming convention used for maildir
> files (one a second - actually the Maildir naming allows in between
> numbers, but you don't use that).

Ow.  I wish you would fix that, or at least put in a collector issue  
with some good hints.

> 30 E-mails a minute is not really
> scalable and has the (apparent) downside it (effectively) blocks the
> Zope webserver for the duration (it should not, but it does, possibly
> a locked ZODB?).

Possibly because it's waiting for an available filename given its  
naming conventions.

> We have that experience sending out bulk E-mail reminders using that
> module. Sending out 200 mails made the main ZOPE server inaccessible
> for 3-4 minutes.
>
> The reason I am asking is not so much an interest in fixing it for
> mail

I wish you would.

> , as we can live with that performance issue, but I am looking to
> implement a similar functionality for storing xParrot/ZOPE objects in
> version control in a seperate thread. So I would like to understand
> the reason behind the Maildir choice.

"Don't block."

:-)


More information about the Zope3-dev mailing list