You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by GitBox <gi...@apache.org> on 2020/08/03 16:42:50 UTC

[GitHub] [trafficserver] jrushford opened a new issue #7076: Need the capability to disable loop detection.

jrushford opened a new issue #7076:
URL: https://github.com/apache/trafficserver/issues/7076


   #7069 fixes loop detection in ATS 9.  However, there are some circumstances where loop detection detection is not desirable and would like an overridable configuration parameter to disable the loop detection.
   
   In our use case  we want a peering edge cache group. Say we have an edge cache group of cache1, cache2, and cache3. Upstream, there is a mid-tier cache group in front of the origins, mid-tier1, and mid-tier2. We want to send a client to an edge in the edge cache group where the parent's are an edge's peers and itself so as to cache a large video across the edge cache group and reduce lookups to the mid-tier using two remaps and two parent.config entries.
   
   remap.config on cache1:
   map http://cache1.foo.com http://cdn-back-remap.foo.com
   map http://cdn-back-remap.foo.com http://cdn-origin.foo.com
   
   remap.config on cache2:
   map http://cache2.foo.com http://cdn-back-remap.foo.com
   map http://cdn-back-remap.foo.com http://cdn-origin.foo.com
   
   remap.config on cache3:
   map http://cache3.foo.com http://cdn-back-remap.foo.com
   map http://cdn-back-remap.foo.com http://cdn-origin.foo.com
   
   parent.config on cache1, cache2, cache3
   dest_domain=cdn-origin.foo.com parent="mid-tier1:80|1.0;mid-tier2:80|1.0" round_robin=consistent_hash go_direct=false
   dest_domain=cdn-back-remap.foo.com parent="cache1:80|1.0;cache2:80|1.0;cache3:80|1.0" round_robin=consistent_hash go_direct=false ignore_self_detect=true
   
   With the above parent.configs, each edge, cache1, cache2, and cache3 will mark themselves down for SELF DETECTION but we say ignore the SELF DETECTION because ignore_self_detect for the parent.config entry is true.
   
   A request comes into cache1 on the first remap and is remapped to cdn-back-remap.foo.com. it misses and hashes to one of the parents in the local edge cache group, possibly to itself. when the request is forwarded to the back-remap, it gets remapped to the origin and if it misses, goes upstream to the mid-tiers and possibly the origin and gets cached locally on the edge. In the end, a large asset is spread across the 3 edge caches drastically reducing the necessity to go to the higher tier or origin and makes better use of the cache in the edge group. With the two remaps it does not cause any looping issues as long as you're careful. In 8.1 a host will get marked down by parent selection if it detects itself in the parent list so, that's the reasoning for the ignore_self_detect flag. Normally the self detection in parent selection prevents looping.
   
   This scenario also required setting proxy.config.http.insert_request_via_str INT 0 to prevent loop detection in HttpTransact.
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] jrushford commented on issue #7076: Need the capability to disable loop detection.

Posted by GitBox <gi...@apache.org>.
jrushford commented on issue #7076:
URL: https://github.com/apache/trafficserver/issues/7076#issuecomment-807011875


   @pbchou as I mentioned to Jeremy Payne, I was going to provide for peering in the strategies.yaml which is the configuration file for NextHopSelectionStrategy.  See the documentation here, [strategies.yaml](https://docs.trafficserver.apache.org/en/latest/admin-guide/files/strategies.yaml.en.html?highlight=strategies%20yaml#std:configfile-strategies.yaml), by adding a new ring mode where you'll define 2 groups of hosts.  A cache's peers and itself would be defined in the first ring from which parents would always be selected except in the case where the cache's chosen parent is itself.  When itself, a new parent would be selected from the 2nd ring, your upstream parents.  I'll probably have a PR up for this with a couple of weeks.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] pbchou commented on issue #7076: Need the capability to disable loop detection.

Posted by GitBox <gi...@apache.org>.
pbchou commented on issue #7076:
URL: https://github.com/apache/trafficserver/issues/7076#issuecomment-806213042


   Second the need for this capability. We found that coming from ATS 7.1.x that our edge peering is broken by #5767. One possibility besides simply disabling the loop detection is to allow a threshold of times a node may see itself in the via string. For this application, it would be set to a maximum of one time. I think that if we see increasingly complex parent selection strategies that there might be more chances for unintended looping so perhaps some cycle checking should be in kept place.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [trafficserver] SolidWallOfCode closed issue #7076: Need the capability to disable loop detection.

Posted by GitBox <gi...@apache.org>.
SolidWallOfCode closed issue #7076:
URL: https://github.com/apache/trafficserver/issues/7076


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org