ietf-smtp
[Top] [All Lists]

sequential processing (was Re: Abort data transfer?)

2009-11-18 02:07:03

seems like the topic is a long way from the original and therefore worthy of
subject change.


Murray S. Kucherawy wrote:
I don't understand how running the filters in series requires that the entire message be in a buffer.

MTA buffers the entire message, sends it to filter #1.  Filter #1 changes the
body.  MTA sends the modified message to #2, including the new body.  This
can only happen if they're in series, and I can't see how it would be
possible if there's not a buffer involved.

Here's an even better example:  MTA buffers the entire message, sends it to
filter #1.  Filter #1 orders the message to be rejected (or discarded).
Filter #2 is told "nevermind", and never has to go through the processing of
the body.  For a very large message, this can be a big performance win, and
again can only happen if they're in series.

Strictly speaking either fully-buffered or partial buffering allows processes to
be staged in sequence just fine. The only issue is whether the filters are staged in sequence with early filters feeding later ones.

What full buffering does is to allow the current filter to change an earlier
part of the message, based on a later part.  You can't do that in a partial
buffering (hot potato) model whether the processing is done only on the current
chunk and is then passed back.

Simple example would be wanting to a header field to the message, based on
something in the body.

d/

--

  Dave Crocker
  Brandenburg InternetWorking
  bbiw.net

<Prev in Thread] Current Thread [Next in Thread>