It might be possible to create an MSO delivery service with an `orgServerFqdn` that doesn't match the [hostname + domain name] of a server it's assigned to, but I'm not sure it would work as expected. In a bug I recently fixed, I found a bit of code [1] that makes me think that scenario would lead to a bad parent.config. The issue [2] was that having a trailing slash in `orgServerFqdn` led to an empty parent field in parent.config (because before the fix, TO didn't find an origin Server that matched the `orgServerFqdn` of the MSO delivery service.
- Rawlin [1] https://github.com/apache/incubator-trafficcontrol/blob/master/traffic_ops/app/lib/API/Configs/ApacheTrafficServer.pm#L2407 [2] https://github.com/apache/incubator-trafficcontrol/issues/2062 On Fri, Jun 1, 2018 at 6:57 AM, Vijay Anand <vijayanand.jayaman...@gmail.com> wrote: > Hi Rawlin, > > I thought, we can always create an origin server group (for MSO) which wont > necessarily contain the origin server which we configure while creating a > DS and that is the logic behind adding this conflict. " MSO = true and > go_direct = true". IF that is not the case, we dont need this conflict. > > Thanks, > Vijayanand S > > > > On Thu, May 31, 2018 at 9:08 PM, Rawlin Peters <rawlin.pet...@gmail.com> > wrote: > >> When configuring MSO currently (note this will change soon once I get >> the MSO implementation refactored to use Origins rather than Servers), >> you have to set `orgServerFqdn` to an FQDN that matches at least one >> Server with a combined (hostname, domain_name) matching that >> `orgServerFqdn` used in the Delivery Service. That Delivery Service is >> then assigned to that Server and any other Server acting as an origin. >> So the request flow for an MSO Delivery Service should still flow to >> both the origin Server matching the DS's `orgServerFqdn` and any other >> origin Server that is assigned that DS. >> >> - Rawlin >> >> On Thu, May 31, 2018 at 9:12 AM, Vijay Anand >> <vijayanand.jayaman...@gmail.com> wrote: >> > Hi Rawlin, >> > >> > Adding CNAME Alias for sharing an origin to resolve the conflicts looks >> > good and it should work. So that , if a conflict is detected, the >> operator >> > has to setup up CNAME alias for that particular origin. >> > >> > For MSO, when some one configures an MSO, he would probably meant to use >> an >> > origin server(s) which is different from Delivery service's orgin_fqdn. >> So >> > when go_direct is true and mid cache is offline, Edge will go to Delivery >> > service configured orgin_fqdn which is not an intented behaviour if some >> > one configured MSO. >> > >> > Thanks, >> > Vijayanand S >> > >> > On Thu, May 31, 2018 at 3:17 AM, Rawlin Peters <rawlin.pet...@gmail.com> >> > wrote: >> > >> >> Hi Vijayanand S, >> >> >> >> Generally we've found it's bad practice to have multiple delivery >> >> services sharing the same origin due to the conflicts in configuration >> >> on the caches serving those delivery services like you mentioned. But >> >> this can be fixed by setting up CNAME DNS records for the shared >> >> origin and using a distinct CNAME in each delivery service. In fact >> >> I've discussed duplicate origins here fairly recently due to my effort >> >> to refactor the Origin implementation, and the tentative plan was to >> >> phase-in a uniqueness constraint on Origin FQDN so that there will be >> >> no possibility of conflicts that we experience today with duplicate >> >> Origin FQDNs. >> >> >> >> Would that fix your issue? >> >> >> >> The `go_direct` option isn't hardcoded per se but is determined by the >> >> delivery service type in order to bypass or use the mid tier. So for >> >> HTTP_NO_CACHE, HTTP_LIVE, and DNS_LIVE, we bypass the mid tier because >> >> that's what those types are for. Why do you want to bypass the mid >> >> tier for MSO? >> >> >> >> - Rawlin >> >> >> >> On Wed, May 30, 2018 at 8:58 AM, Vijay Anand >> >> <vijayanand.jayaman...@gmail.com> wrote: >> >> > Hi All, >> >> > >> >> > Planning for a PR on making parent.config's go_direct directive >> >> > configurable via Delivery service. Right now, go_direct is >> >> > being hard coded. >> >> > >> >> > Given below is a brief write up on the implementing the same. >> >> > >> >> > Assumption: >> >> > All DS-es sharing an origin server should have same value for >> go_direct. >> >> > >> >> > Implementation: >> >> > Add a new column 'go_direct' in Deliveryservice table. Its value >> defaults >> >> > to False. >> >> > Delivery service UI (Traffic Ops) and API will be enhanced to support >> >> this >> >> > new column. >> >> > >> >> > Conflicts: >> >> > 1. DS Type HTTP_NO_CACHE and go direct False >> >> > 2. DS Type HTTP_LIVE and go direct False >> >> > 3. DS Type DNS_LIVE and go direct False >> >> > 4. MSO = true and go_direct = true >> >> > >> >> > >> >> > When we have more than 2 DS-es sharing same origin, then updating one >> >> > particular DS's go_direct value will result >> >> > in conflict, since all DS-es sharing an origin should have same value >> for >> >> > go_direct. >> >> > >> >> > Such conflicts should be resolved by deleting and recreating these >> DS-es >> >> > with new value for go_direct. >> >> > >> >> > This method of deleting and recreating DS-es is preferred over >> updating >> >> all >> >> > the affected DS-es implicitly. >> >> > >> >> > would like your comments on this. >> >> > >> >> > Thanks, >> >> > Vijayanand S >> >> >>