GitHub user jrushf1239k opened a pull request:
https://github.com/apache/trafficserver/pull/321
Parent selection 2.0
This is a refactor of Parent Selection to add the following features:
1) multi-site origin - using parent selection, origin servers may be
selected using round robin or consistent hash algorithms.
2) simple retry - if the parent is an origin server and a 404 response is
received when this feature is enabled, the transaction will be retried using
another parent. The user may define a list of response codes for simple retry.
Both enabling and defining response codes may be done using header_rewrite on
a delivery service basis.
3) dead server retry - if the parent is an origin server and a 503 response
is received when this feature is enabled, the current parent is marked down for
5 minutes and the transaction will be retried using another parent. The user
may define a list of response codes for dead server retry. Both enabling and
defining response codes may be done using header_rewrite on a delivery service
basis.
4) Added a secondary_parent list to parent.config when
round_robin=consistent_hash. The secondary parents are added to a secondary
hash ring for parent selection when a primary parent is down. In a cache
hierarchy this would allow you to take advantage of another set of mid tier
caches content affinity when a primary parent is down, see TS-3418.
I refactored Parent Selection using a Strategy design pattern where the
Round robin and consistent hash implementations are in there own class. These
strategy implementations are created per row in parent.config when the traffic
server starts and reads the parent.config file. This refactor made it easier
to add the secondary hash feature.
I plan on doing a presentation of all this at the ATS summit this month.
thanks
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jrushf1239k/trafficserver parent-selection-2.0
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/trafficserver/pull/321.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #321
----
commit 451f9176bd83291c37d65a2cef4bf510b1775d9a
Author: John J. Rushford <[email protected]>
Date: 2015-11-03T17:03:54Z
parent selection refactor, multi-site-origin, simple retry and dead server
retry pull request.
commit 02b6b6b283fabdaf6174d934dc0c3cb2939a19f1
Author: John J. Rushford <[email protected]>
Date: 2015-11-03T17:04:42Z
parent selection refactor, multi-site-origin, simple retry and dead server
retry pull request.
commit 740184053671bb88b7f15708cab18d34384a1e7d
Author: John J. Rushford <[email protected]>
Date: 2015-11-03T17:41:51Z
clang format.
commit 0bd0d3dba938088ba8b5ecca94880814304fc7b2
Author: John J. Rushford <[email protected]>
Date: 2015-11-03T18:51:11Z
update documentation with multi-site-origin, simple and dead server retry
configuration information.
commit 1d9967fe12d56e15d2d6040d59c2b827b38199d2
Author: John J. Rushford <[email protected]>
Date: 2015-11-04T15:16:26Z
Fix go_direct behaviour in ParentConsistentHash.
commit e8ce2438c92650b50e39ec1dab44e6c158ec6568
Author: John J. Rushford <[email protected]>
Date: 2015-11-04T15:18:27Z
Merge branch 'master' into parent-selection-2.0
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---