Re: split the load?

Top Page
Delete this message
Reply to this message
Author: Chris Thompson
Date:  
To: exim-users
Subject: Re: split the load?
I've been looking back through this thread, and can't find anyone making
the following point...

The "round-robin" algorithm in current BINDs can have a distinctly non-
random effect on clients unless they re-randomise. Consider the four MX
records for cus.cam.ac.uk:

  cus.cam.ac.uk           MX      5 taurus.cus.cam.ac.uk
  cus.cam.ac.uk           MX      5 ursa.cus.cam.ac.uk
  cus.cam.ac.uk           MX      7 ppsw3.cam.ac.uk
  cus.cam.ac.uk           MX      7 ppsw4.cam.ac.uk


BIND is equally likely to present any of the four orders:

  MX 5 taurus.cus   MX 5 ursa.cus     MX 7 ppsw3        MX 7 ppsw4
  MX 5 ursa.cus     MX 7 ppsw3        MX 7 ppsw4        MX 5 taurus.cus
  MX 7 ppsw3        MX 7 ppsw4        MX 5 taurus.cus   MX 5 ursa.cus
  MX 7 ppsw4        MX 5 taurus.cus   MX 5 ursa.cus     MX 7 ppsw3


The client sees the record for taurus.cus before that for ursa.cus 3/4 of
the time. What this implies for the choice of which to try first depends
on how the MTA does its sorting, of course: first-among-equals and last-
among-equals are both quite possible.

In practice I have seen the effects of this sort of asymmetry more often
in connection with telnet, imap, etc. services with multiple A or CNAME
records, where simple-minded clients always try them in the order presented.
If there are three servers, the load may appear well balanced: but when one
of them goes down the one *after* it in the cyclic order gets overloaded
relative to the remaining one by a 2:1 ratio.

Chris Thompson               Cambridge University Computing Service,
Email: cet1@???    New Museums Site, Cambridge CB2 3QG,
Phone: +44 1223 334715       United Kingdom.