[prev in list] [next in list] [prev in thread] [next in thread] 

List:       qmail
Subject:    Re: Possible qmail development - Long Mail
From:       Manvendra Bhangui <mbhangui () gmail ! com>
Date:       2009-04-15 3:25:04
Message-ID: 95c27c8c0904142013n652c00b0qb6908d726de2da2a () mail ! gmail ! com
[Download RAW message or body]

On Wed, Apr 15, 2009 at 2:59 AM, Marcus Bointon
<marcus@synchromedia.co.uk>wrote:

> Nearly - I have no problem with how it deals with individual IPs - but I
> want it to to do the same thing per domain, as that's how the ISPs work it.
> Hotmail and yahoo may have thousands of IPs, and throttling only per IP
> means we react far too slowly to their deferral policy changes.
>
> Since there is so much similarity in there, would it make the patch easier?


The patch would not be difficult as I already have made changes to get these
values from the smtproutes control file. However there are flaws in doing
this against  a domain. Let me first explain what can be done in the code.
Second I will explain the flaw in doing this against a domain.

I already have the code where the values can be given in the smtproutes file
against any domain for which you want to have a different value than the
defaults. But here we are speaking of domains where the destination IP is
picked up from the dns rather than the smtproutes file. So it has to be from
a different control file. The control file can have the following format

domain:min_backoff:max_tolerance

If all connections to the domain fail for a max_tolerance seconds further
connections to the same server, are avoided for a period of at least penalty
seconds.  The  default maximum  period  of failures  that will be tolerated
max_tolerance is 120 seconds and the minimum penalty is 1 hour.  By setting
the penalty to 0, connections to the server will be attempted inspite of
failures.

it can be of the form

domain::

in which case the values could be set automatically to some optimal value
(??)

The flaw in doing this domain wise is like this.
------------------------------------------------------------

Each domain can have multiple servers which serve as MX (or can have
multiple servers behind a single MX behind a load balancer). Now if a single
server fails to respond within the timeout period or responds with a
temporary error due to any issue like disk full, temporary resource issue,
the entire domain gets penalized due to problem with a single IP address. In
such cases delivery of mails would get delayed. So how do we handle such
issues?

[Attachment #3 (text/html)]

On Wed, Apr 15, 2009 at 2:59 AM, Marcus Bointon <span dir="ltr">&lt;<a \
href="mailto:marcus@synchromedia.co.uk">marcus@synchromedia.co.uk</a>&gt;</span> \
wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" \
style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; \
padding-left: 1ex;"> Nearly - I have no problem with how it deals with individual IPs \
- but I want it to to do the same thing per domain, as that&#39;s how the ISPs work \
it. Hotmail and yahoo may have thousands of IPs, and throttling only per IP means we \
react far too slowly to their deferral policy changes.<br>

<br>
Since there is so much similarity in there, would it make the patch \
easier?</blockquote><div> </div><div>The patch would not be difficult as I already \
have made changes to get these values from the smtproutes control file. However there \
are flaws in doing this against  a domain. Let me first explain what can be done in \
the code. Second I will explain the flaw in doing this against a domain.<br> <br>I \
already have the code where the values can be given in the smtproutes file against \
any domain for which you want to have a different value than the defaults. But here \
we are speaking of domains where the destination IP is picked up from the dns rather \
than the smtproutes file. So it has to be from a different control file. The control \
file can have the following format<br> <br>domain:min_backoff:max_tolerance<br> \
<br></div></div>If all connections to the domain fail for a max_tolerance seconds \
further connections to the same server, are avoided for a period of at least penalty \
seconds.  The  default maximum  period  of failures  that will be tolerated \
max_tolerance is 120 seconds and the minimum penalty is 1 hour.  By setting the \
penalty to 0, connections to the server will be attempted inspite of failures.<br> \
<br>it can be of the form<br><br>domain::<br><br>in which case the values could be \
set automatically to some optimal value (??)<br><br>The flaw in doing this domain \
wise is like this.<br>------------------------------------------------------------<br>
 <br>Each domain can have multiple servers which serve as MX (or can have multiple \
servers behind a single MX behind a load balancer). Now if a single server fails to \
respond within the timeout period or responds with a temporary error due to any issue \
like disk full, temporary resource issue, the entire domain gets penalized due to \
problem with a single IP address. In such cases delivery of mails would get delayed. \
So how do we handle such issues?<br> <br><br>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic