[squid-dev] [PATCH] Happy Eyeballs: Use each fully resolved destination ASAP

Alex Rousskov rousskov at measurement-factory.com
Tue May 16 04:33:32 UTC 2017


Hello,

    The attached patch is the first in a short series of patches that
improve Squid support for the Happy Eyeballs principle. The motivation
for these patches has been discussed on the dns_wait_for_all thread:
http://lists.squid-cache.org/pipermail/squid-dev/2016-September/006831.html

With this change, Squid no longer waits for all request forwarding
destinations to be resolved. Instead, it uses each fully resolved
destination as soon as it is needed. More info is in the patch preamble.

The next planned step is to deliver A and AAAA answers to the peer
selection code independently and ASAP. When both changes are combined,
the FwdState/tunneling code will receive IPvX addresses without waiting
for IPvY addresses (and/or other destination names) to be resolved,
making user eyeballs happier and, hence, facilitating IPv6 deployments.


This patch also adds reporting of peer type when dumping Connection
info. I removed operator "<<" definition from Connection.h header
because we should not burden all Connection users with these low-level
(and performance-unrelated) details. I also removed associated comments
because they were partially misleading (or perhaps outdated) and
partially misplaced (Connection.h is not the right place to state basic
C++ operator overloading rules). If there are no objections, I will
commit this minor improvement separately.

No changes to FwdServer class but its declaration has been moved from
the PeerSelectState.h header to peer_select.cc because FwdServer is
unused by peerSelect() users.

No changes to peerCountMcastPeers functionality. I only documented the
abuse and marked the abused ps_state field with XXX to prevent future
abuses.


Cheers,

Alex.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SQUID69-use-destination-asap-t2.patch
Type: text/x-diff
Size: 78543 bytes
Desc: not available
URL: <http://lists.squid-cache.org/pipermail/squid-dev/attachments/20170515/2cf82c34/attachment-0001.patch>


More information about the squid-dev mailing list