On Mon, Jul 31, 2017 at 2:50 PM, Luis E. Muñoz <luisemu...@gmail.com> wrote:
> On 31 Jul 2017, at 13:21, Ryan Harris via mailop wrote: > > Not that we're the best neighbors in this regard, but we don't reuse > connections for the vast majority of endpoints, just the highest by volume, > and we only keep connections open for potential reuse for 30s. > > Have you considered turning the problem around? > > If your volume is high enough, queueing the message and delivering in > batch will give you better throughput in most cases, provided that you can > afford to retain the messages for a while. If your volume is that high, > perhaps queueing for 30 seconds and then pipelining all pending messages > through a couple of SMTP connections could work well enough and not upset > neighbors. > If we were doing mostly "bulk" mail, that would be an interesting optimization. In practice, people treat email like instant messaging, and delaying mail deliberately is not the best choice. We're also heavily distributed (why use just one server when you can use 7 may be the Google motto), so collecting all messages for a domain to a single point would also imply some level of single point of failure which could then cause a retry for a whole batch (which causes delays on the order of minutes). We used to do more work to optimize for the smaller hosts, but it ultimately helped very little and skewed our resource usage way more than was worth it. I want to say the cut-off for us is in the range of 100k messages/day, and when you split that across our 20 datacenters, the chances of reuse where just not that high. Brandon
_______________________________________________ mailop mailing list mailop@mailop.org https://chilli.nosignal.org/cgi-bin/mailman/listinfo/mailop