It's not just differing types, it's anything that affects the parent.config 
which also includes the, qstring configuration, MSO parents/config, etc. as 
well.

Jonathan G


On 1/22/19, 2:33 PM, "Dave Neuman" <neu...@apache.org> wrote:

    -1 on the one DS to Origin limitation.  I think there are legit use cases
    for it.
    I would be +1 on the idea if we include type though.  Two DSs can share the
    same origin as long as they are of the same type (DNS, HTTP, HTTP_LIVE),
    etc.  You shouldn't be able to have two DSs with the same origin but
    different types.
    
    On Mon, Jan 14, 2019 at 7:53 AM Fieck, Brennan <brennan_fi...@comcast.com>
    wrote:
    
    > I don't see this as a complicated use case or a barrier to entry, an
    > extremely basic introduction to ATC would only make use of one DS
    > (shameless CDN-in-a-Box plug).
    > It seems far more complicated for a user to be using many DSes to serve a
    > single origin - we can easily make it clear in the docs that the two have 
a
    > 1:1 relationship, with a footnote about CNAME records for users with the
    > knowledge, resources, and need for such workarounds.
    > ________________________________________
    > From: Mark Torluemke <mtorlue...@apache.org>
    > Sent: Friday, January 11, 2019 1:21 PM
    > To: dev@trafficcontrol.apache.org
    > Subject: Re: [EXTERNAL] Re: Origins assigned to Multipe Delivery Services
    > produces indeterminate parent.config
    >
    > >> 1. Prohibit creating new delivery services that would share an
    > existing origin and prohibit updating a delivery service to a shared
    > origin
    > In case my position has been lost, I'm still -1 on this. :) IMO, we
    > shouldn't let the few  complicated use cases increase the barrier to entry
    > (to using ATC) for the masses.
    >
    >
    >
    >
    > On Fri, Jan 11, 2019 at 11:53 AM Rawlin Peters <rawlin.pet...@gmail.com>
    > wrote:
    >
    > > Alright, I'm trying to sum up this discussion so far since it seems
    > > like everyone went on vacation and didn't really get a chance to wrap
    > > this one up:
    > > - duplicate origins cause undefined behavior
    > > - we need a way to migrate to a future that is free of duplicate
    > > origins in Traffic Control
    > > - we need a visual and easy way to determine if Traffic Ops currently
    > > contains duplicate origins, so that operators are incentivized to fix
    > > them rather than let it slide indefinitely
    > > - operators should have a fair amount of time to fix their duplicate
    > > origins
    > >
    > > I believe this is what we've mostly agreed upon but haven't clearly 
voted
    > > on:
    > >
    > > In release N we will:
    > > 1. Prohibit creating new delivery services that would share an
    > > existing origin and prohibit updating a delivery service to a shared
    > > origin
    > > 2. Add some kind of visual indicator that duplicate origins are a
    > > problem that need to be fixed before release N+1; otherwise, an
    > > upgrade to N+1 will be prohibited.
    > >
    > > In release N+1 we will:
    > > 3. Include a DB migration that adds a uniqueness constraint on origin
    > > FQDN, removing the API-level checks for that.
    > > 4. Prevent an upgrade to N+1 if duplicate origins are found (this
    > > might occur as a byproduct of step 3).
    > >
    > > I am +1 on this plan and believe this would hit on all the summarized
    > > points above. Please provide a clear vote on this plan so that we can
    > > dive deeper in the details (i.e. what release 'N' is, the best visual
    > > indicator for step 2, and a friendly way to handle step 4).
    > >
    > > Thanks,
    > > Rawlin
    > >
    > > On Wed, Dec 19, 2018 at 3:39 PM Jeremy Mitchell <mitchell...@gmail.com>
    > > wrote:
    > > >
    > > > Not sure TP is the right place for a warning like "clean up this
    > > > 'duplicate' origin or your next upgrade will fail". Most users of our
    > > > system will be like "not my problem".
    > > >
    > > > On Wed, Dec 19, 2018 at 11:58 AM Fieck, Brennan <
    > > brennan_fi...@comcast.com>
    > > > wrote:
    > > >
    > > > > Probably. It would impact load times by a bit, but the page for an
    > > > > individual object is not our bottleneck.
    > > > > ________________________________________
    > > > > From: Robert Butts <r...@apache.org>
    > > > > Sent: Wednesday, December 19, 2018 11:50 AM
    > > > > To: dev@trafficcontrol.apache.org
    > > > > Subject: Re: [EXTERNAL] Re: Origins assigned to Multipe Delivery
    > > Services
    > > > > produces indeterminate parent.config
    > > > >
    > > > > > - Including a warning on startup and an API constraint preventing
    > > adding
    > > > > more bad data in the next 3.0.0 Release Candidate
    > > > > > - Adding a database constraint immediately into master that won't
    > be
    > > > > cherry-picked into 3.0.0 but should be included in 3.1.0
    > > > >
    > > > > +1
    > > > >
    > > > > I understand Jonathan's objection, but at some point, we have to be
    > > able to
    > > > > move forward. This is a good compromise: deprecate, then remove. 
That
    > > gives
    > > > > people a full major version to fix their data.
    > > > >
    > > > > I would be ideal if it were more than just a logged warning, though.
    > > Can we
    > > > > add a big red banner in Traffic Portal, on the Delivery Service page
    > > for
    > > > > any DS with a duplicate origin, telling users to fix it, and that
    > they
    > > > > won't be able to upgrade to the next major version until it's fixed?
    > > > >
    > > > >
    > > > > On Wed, Dec 19, 2018 at 10:57 AM Fieck, Brennan <
    > > brennan_fi...@comcast.com
    > > > > >
    > > > > wrote:
    > > > >
    > > > > > So it seems like nobody has a problem with the "how" - disallowing
    > > > > > duplicate origin FQDNs on Delivery Services - but we never reached
    > a
    > > > > > consensus on "when".
    > > > > >
    > > > > > I stand by my previous proposal:
    > > > > > - Including a warning on startup and an API constraint preventing
    > > adding
    > > > > > more bad data in the next 3.0.0 Release Candidate
    > > > > > - Adding a database constraint immediately into master that won't
    > be
    > > > > > cherry-picked into 3.0.0 but should be included in 3.1.0
    > > > > > ________________________________________
    > > > > > From: Rawlin Peters <rawlin.pet...@gmail.com>
    > > > > > Sent: Tuesday, December 18, 2018 4:59 PM
    > > > > > To: dev@trafficcontrol.apache.org
    > > > > > Subject: Re: [EXTERNAL] Re: Origins assigned to Multipe Delivery
    > > Services
    > > > > > produces indeterminate parent.config
    > > > > >
    > > > > > Also, building more around DS types will make it even harder to 
get
    > > > > > away from DS types in the future too, which I know is something
    > we've
    > > > > > discussed on this mailing list before. It also adds to the 
overhead
    > > of
    > > > > > Delivery Service Topologies, since a lot of the DS types won't
    > > > > > carryover into that world.
    > > > > >
    > > > > > - Rawlin
    > > > > >
    > > > > > On Tue, Dec 18, 2018 at 2:42 PM Fieck, Brennan
    > > > > > <brennan_fi...@comcast.com> wrote:
    > > > > > >
    > > > > > > +1.
    > > > > > > If there's a simple way to work around duplicate origins being
    > > > > > prohibited,
    > > > > > > then we should rely on that instead of "enumerating all those
    > > possible
    > > > > > conflicting
    > > > > > > settings, which are not only highly complex and confusing, but
    > also
    > > > > > further
    > > > > > > entrench us in only supporting ATS as a caching proxy (hurting
    > > efforts
    > > > > to
    > > > > > > integrate e.g. Grove, nginx etc.)
    > > > > > > ________________________________________
    > > > > > > From: Rawlin Peters <rawlin.pet...@gmail.com>
    > > > > > > Sent: Tuesday, December 18, 2018 2:20 PM
    > > > > > > To: dev@trafficcontrol.apache.org
    > > > > > > Subject: Re: [EXTERNAL] Re: Origins assigned to Multipe Delivery
    > > > > > Services produces indeterminate parent.config
    > > > > > >
    > > > > > > There are a number of different DS settings at play that can
    > > > > > > potentially cause conflicts. The question is: do we want to get
    > > into
    > > > > > > the business of enumerating all those possible conflicting
    > > settings or
    > > > > > > just simply prohibit duplicate origins altogether? I think we 
can
    > > dig
    > > > > > > in and get that "sufficiently advanced sql query" to check for
    > > > > > > conflicting origins, but is that something we want to carry 
along
    > > for
    > > > > > > the foreseeable future? Aren't CNAMEs relatively cheaper than
    > > > > > > developing and maintaining that code and the mental overhead
    > > required
    > > > > > > in understanding why you're getting an error that says your
    > > requested
    > > > > > > DS would cause an origin conflict? I think at the point you've
    > > > > > > requested a DS that would create a conflict, you've chosen those
    > > > > > > settings for a reason and would probably prefer to just
    > create/use
    > > a
    > > > > > > CNAME in your new DS and keep the rest of your settings the 
same.
    > > > > > >
    > > > > > > Thinking in terms of errors, I'm imagining:
    > > > > > > "cannot create delivery service: origin fqdn 'foo.example.com'
    > > already
    > > > > > in use"
    > > > > > > vs
    > > > > > > "cannot create delivery service: origin fqdn 'foo.example.com'
    > > already
    > > > > > > in use as type DNS_LIVE_NATNL, which is incompatible with your
    > > chosen
    > > > > > > type of HTTP_NO_CACHE"
    > > > > > >
    > > > > > > At that point you'd probably say to yourself, "uh, I need
    > > > > > > HTTP_NO_CACHE, so what am I supposed to do now?"
    > > > > > >
    > > > > > > As a lazy developer I'm +1 on prohibiting duplicate origin fqdns
    > > > > > > because the resulting code will be simpler, but I think
    > eliminating
    > > > > > > the mental overhead for operators could be worthwhile too. If we
    > > can
    > > > > > > agree on an end state of prohibiting duplicate origins
    > altogether,
    > > we
    > > > > > > can start working on a design to smoothly transition us to that
    > > point.
    > > > > > > Are we willing to live with "just CNAME your origin fqdn" as the
    > > > > > > standard solution to duplicates?
    > > > > > >
    > > > > > > - Rawlin
    > > > > > >
    > > > > > >
    > > > > > > On Tue, Dec 18, 2018 at 1:27 PM Gelinas, Derek
    > > > > > > <derek_geli...@comcast.com> wrote:
    > > > > > > >
    > > > > > > > The only situation in which they can share origins is if a) 
the
    > > > > > origins are shared in an MSO configuration but still have 
different
    > > > > defined
    > > > > > origin fields in the delivery service, or if they're assigned to
    > > > > completely
    > > > > > different cachegroups.  It's when two delivery services share the
    > > same
    > > > > > edges that there's an issue, because you end up with parent.config
    > > > > issues.
    > > > > > Actually you could even get away with it in mids as long as you
    > > weren't
    > > > > > doing anything like MSO to it.
    > > > > > > >
    > > > > > > > Could get messy real fast, though.  Best to just create a
    > second
    > > > > FQDN.
    > > > > > > >
    > > > > > > > Derek
    > > > > > > >
    > > > > > > > On 12/18/18, 3:23 PM, "Fieck, Brennan" <
    > > brennan_fi...@comcast.com>
    > > > > > wrote:
    > > > > > > >
    > > > > > > >     So no two Delivery Services may share an origin 
*regardless
    > > of
    > > > > > cache hierarchy* ? I've been told that DNS Delivery Services can
    > > have the
    > > > > > same origin as HTTP Delivery Services because they obey the same
    > > cache
    > > > > > hierarchy. You're saying that would still produce invalid output
    > > and/or
    > > > > is
    > > > > > explicitly disallowed by ATS?
    > > > > > > >     ________________________________________
    > > > > > > >     From: Robert Butts <r...@apache.org>
    > > > > > > >     Sent: Tuesday, December 18, 2018 1:09 PM
    > > > > > > >     To: dev@trafficcontrol.apache.org
    > > > > > > >     Subject: Re: [EXTERNAL] Re: Origins assigned to Multipe
    > > Delivery
    > > > > > Services produces indeterminate parent.config
    > > > > > > >
    > > > > > > >     >can you give an example of what parent.config looks like
    > > when 2
    > > > > > ds's share
    > > > > > > >     an origin and have different a different topology?
    > > > > > > >
    > > > > > > >     Answering because I encountered this directly, when
    > rewriting
    > > > > > parent.config.
    > > > > > > >
    > > > > > > >     For example: Suppose you have one Delivery Service:
    > > > > > > >     XML_ID: foo
    > > > > > > >     Type: HTPT_LIVE_NATL
    > > > > > > >     Query String Handling: 1 - ignore in cache key, and pass 
up
    > > > > > > >     Origin Server Base URL: http://foo.example.net
    > > > > > > >
    > > > > > > >     And another Delivery Service:
    > > > > > > >     XML_ID: bar
    > > > > > > >     Type: HTPT_LIVE_NATL
    > > > > > > >     Query String Handling: 1 - ignore in cache key, and pass 
up
    > > > > > > >     Origin Server Base URL: http://foo.example.net
    > > > > > > >
    > > > > > > >     ATS only supports unique `dest_domain` entries in
    > > parent.config.
    > > > > > Therefore,
    > > > > > > >     the parent.config generated for a server assigned to both
    > of
    > > > > these
    > > > > > Delivery
    > > > > > > >     Services with either be:
    > > > > > > >
    > > > > > > >     dest_domain=foo.example.net port=80 go_direct=true
    > > > > > > >
    > > > > > > >     Or
    > > > > > > >
    > > > > > > >     dest_domain=foo.example.net port=80 go_direct=false
    > > > > > qstring=consider
    > > > > > > >
    > > > > > > >     Right now, it's arbitrary which Perl Traffic Ops inserts,
    > and
    > > > > Perl
    > > > > > provides
    > > > > > > >     no warning or error of any kind (the pending Go
    > > parent.config PR
    > > > > > logs an
    > > > > > > >     error).
    > > > > > > >
    > > > > > > >     Whichever is arbitrarily inserted, the resulting remaps 
for
    > > the
    > > > > > other
    > > > > > > >     delivery service will be wrong. Either `foo` requests will
    > > drop
    > > > > > the query
    > > > > > > >     string when they shouldn't, and go to the mid when they
    > > > > shouldn't;
    > > > > > or `bar`
    > > > > > > >     requests will use the query string and skip the mid when 
it
    > > > > > shouldn't.
    > > > > > > >
    > > > > > > >
    > > > > > > >     Does that make sense? The only correct solution, is to
    > > somehow
    > > > > > prevent
    > > > > > > >     different DSes having the same origin, and tell tenants
    > they
    > > must
    > > > > > use
    > > > > > > >     CNAMEs if they need.
    > > > > > > >
    > > > > > > >     This isn't a bug in Traffic Control. ATS fundamentally
    > > doesn't
    > > > > > support
    > > > > > > >     multiple remap rules with the same parent FQDN with
    > different
    > > > > > > >     configurations. Hence, Traffic Control needs to prohibit
    > > that.
    > > > > > > >
    > > > > > > >
    > > > > > > >     On Tue, Dec 18, 2018 at 12:24 PM Jeremy Mitchell <
    > > > > > mitchell...@gmail.com>
    > > > > > > >     wrote:
    > > > > > > >
    > > > > > > >     > brennan,
    > > > > > > >     >
    > > > > > > >     > can you give an example of what parent.config looks like
    > > when 2
    > > > > > ds's share
    > > > > > > >     > an origin and have different a different topology?
    > > > > > > >     >
    > > > > > > >     > jeremy
    > > > > > > >     >
    > > > > > > >     > On Tue, Dec 18, 2018 at 11:39 AM Fieck, Brennan <
    > > > > > brennan_fi...@comcast.com
    > > > > > > >     > >
    > > > > > > >     > wrote:
    > > > > > > >     >
    > > > > > > >     > > To be clear, the "Warning" I'm talking about would
    > > happen at
    > > > > > startup, but
    > > > > > > >     > > I'd like a UI-only constraint to come with that to
    > > disallow
    > > > > > using the API
    > > > > > > >     > > to bind the same origin to multiple Delivery Services
    > > with
    > > > > > varying
    > > > > > > >     > > topography requirements. It wouldn't change the
    > existing
    > > > > data,
    > > > > > but
    > > > > > > >     > prevent
    > > > > > > >     > > users from creating more bad data.
    > > > > > > >     > >
    > > > > > > >     > > "warning" doesn't really sufficiently describe that, 
my
    > > bad.
    > > > > > > >     > > ________________________________________
    > > > > > > >     > > From: Fieck, Brennan <brennan_fi...@comcast.com>
    > > > > > > >     > > Sent: Tuesday, December 18, 2018 11:24 AM
    > > > > > > >     > > To: dev@trafficcontrol.apache.org
    > > > > > > >     > > Subject: Re: [EXTERNAL] Re: Origins assigned to 
Multipe
    > > > > > Delivery Services
    > > > > > > >     > > produces indeterminate parent.config
    > > > > > > >     > >
    > > > > > > >     > > Well the cost of fixing this bug is a constraint on 
the
    > > data.
    > > > > > Unless we
    > > > > > > >     > > make it a UI-only constraint - which I'm personally
    > > against -
    > > > > > there must
    > > > > > > >     > be
    > > > > > > >     > > some point in the future where ATC cannot reasonably 
be
    > > > > > expected to work
    > > > > > > >     > > with data that violates that constraint. The question
    > is
    > > when
    > > > > > that should
    > > > > > > >     > > occur, which should likely happen at a minor version
    > > release.
    > > > > > Minor not
    > > > > > > >     > > major because it doesn't involve a change in data
    > > structures,
    > > > > > merely
    > > > > > > >     > > relationships between them - in my opinion that's a
    > minor
    > > > > > version change
    > > > > > > >     > > but that's definitely up for debate. With several
    > release
    > > > > > candidates for
    > > > > > > >     > > 3.0.0 that _doesn't_ include this restriction already
    > in
    > > the
    > > > > > wild, I
    > > > > > > >     > > wouldn't recommend putting it in there. That means to
    > > fix the
    > > > > > bug as soon
    > > > > > > >     > > as possible it should go in 3.1.0 which should be the
    > > target
    > > > > > of "master"
    > > > > > > >     > > after the 3.0.0 release is cut from it.
    > > > > > > >     > >
    > > > > > > >     > > So I'd recommend immediately implementing the
    > constraint
    > > in
    > > > > > master with a
    > > > > > > >     > > refusal to upgrade with bad data, and backport a
    > warning
    > > > > about
    > > > > > the future
    > > > > > > >     > > behavior into 3.0.0 or as part of a 3.0.1 provided we
    > had
    > > > > more
    > > > > > changes
    > > > > > > >     > that
    > > > > > > >     > > would warrant a micro version bump.
    > > > > > > >     > > ________________________________________
    > > > > > > >     > > From: Gray, Jonathan <jonathan_g...@comcast.com>
    > > > > > > >     > > Sent: Tuesday, December 18, 2018 9:34 AM
    > > > > > > >     > > To: dev@trafficcontrol.apache.org
    > > > > > > >     > > Subject: Re: [EXTERNAL] Re: Origins assigned to 
Multipe
    > > > > > Delivery Services
    > > > > > > >     > > produces indeterminate parent.config
    > > > > > > >     > >
    > > > > > > >     > > -1 Holding an ATC upgrade hostage to data cleanup 
seems
    > > like
    > > > > a
    > > > > > bad idea.
    > > > > > > >     > > The issue isn't great, but it's also not new.  We
    > should
    > > > > allow
    > > > > > teams to
    > > > > > > >     > fix
    > > > > > > >     > > their data at their normal paces if it doesn't create
    > > > > > significant
    > > > > > > >     > overhead
    > > > > > > >     > > or an inherant blocker for new functionality or
    > > correction of
    > > > > > other major
    > > > > > > >     > > problems imho.
    > > > > > > >     > >
    > > > > > > >     > > Jonathan G
    > > > > > > >     > >
    > > > > > > >     > >
    > > > > > > >     > > On 12/18/18, 9:28 AM, "Fieck, Brennan" <
    > > > > > brennan_fi...@comcast.com>
    > > > > > > >     > wrote:
    > > > > > > >     > >
    > > > > > > >     > >     Another option is we could detect collisions at
    > > startup
    > > > > > and simply
    > > > > > > >     > > refuse to continue with the upgrade until the data is
    > > fixed.
    > > > > > That would
    > > > > > > >     > > allow people using the now-unsupported data format to
    > > > > continue
    > > > > > to use
    > > > > > > >     > their
    > > > > > > >     > > old versions of Traffic Ops without wrecking their
    > > database,
    > > > > > but also
    > > > > > > >     > > provide an incentive to clean up the data.
    > > > > > > >     > >     ________________________________________
    > > > > > > >     > >     From: Gray, Jonathan <jonathan_g...@comcast.com>
    > > > > > > >     > >     Sent: Tuesday, December 18, 2018 5:12 AM
    > > > > > > >     > >     To: dev@trafficcontrol.apache.org
    > > > > > > >     > >     Subject: Re: [EXTERNAL] Re: Origins assigned to
    > > Multipe
    > > > > > Delivery
    > > > > > > >     > > Services produces indeterminate parent.config
    > > > > > > >     > >
    > > > > > > >     > >     I'm generally a fan of constrain your data in your
    > > > > > database, but not
    > > > > > > >     > > necessarily exclusively.  I see this as a one-way
    > > > > > cleanup/conversion so
    > > > > > > >     > it
    > > > > > > >     > > doesn't need to be configurable; otherwise you have to
    > > ask
    > > > > the
    > > > > > question
    > > > > > > >     > > what happens if someone turns it off.  That said,
    > > something
    > > > > in
    > > > > > the UI
    > > > > > > >     > layer
    > > > > > > >     > > would be nice to prevent spending significant
    > quantities
    > > of
    > > > > > time
    > > > > > > >     > building a
    > > > > > > >     > > complex DS only to have it fail to post for reasons
    > that
    > > > > could
    > > > > > have been
    > > > > > > >     > > known earlier.
    > > > > > > >     > >
    > > > > > > >     > >     The way my brain works in this case:
    > > > > > > >     > >     If !unique_constraint_exists_query()
    > > > > > > >     > >             If has_duplicates_query()
    > > > > > > >     > >                     show_warning()
    > > > > > > >     > >             else
    > > > > > > >     > >                     add_unique_constraint()
    > > > > > > >     > >
    > > > > > > >     > >     to which the API and UI configuration could also
    > > make use
    > > > > > of
    > > > > > > >     > > unique_constraint_exists_query() to drive additional
    > > layer
    > > > > > constraints if
    > > > > > > >     > > desired.
    > > > > > > >     > >
    > > > > > > >     > >     Jonathan G
    > > > > > > >     > >
    > > > > > > >     > >     On 12/17/18, 1:11 PM, "Rawlin Peters" <
    > > > > > rawlin.pet...@gmail.com>
    > > > > > > >     > wrote:
    > > > > > > >     > >
    > > > > > > >     > >         That is an interesting idea...detect at TO
    > > startup
    > > > > > whether or not
    > > > > > > >     > >         there are duplicate origins and operate in a
    > > "prevent
    > > > > > duplicate
    > > > > > > >     > >         origins" state if no duplicates are found or
    > > "prevent
    > > > > > conflicting
    > > > > > > >     > > DS
    > > > > > > >     > >         topologies" state if duplicates are found? So
    > > once
    > > > > > operators have
    > > > > > > >     > >         replaced all the duplicate origins with 
CNAMEs,
    > > TO
    > > > > will
    > > > > > > >     > essentially
    > > > > > > >     > >         operate in a "prohibit all duplicate origins"
    > > state.
    > > > > > That would
    > > > > > > >     > >         probably make for a simpler transition, but 
I'd
    > > want
    > > > > > to remove
    > > > > > > >     > that
    > > > > > > >     > >         logic in a following release that strictly
    > > prohibits
    > > > > > duplicate
    > > > > > > >     > > origins
    > > > > > > >     > >         (assuming that the community agrees we should
    > > > > prohibit
    > > > > > duplicate
    > > > > > > >     > >         origins altogether).
    > > > > > > >     > >
    > > > > > > >     > >         As for DB constraints vs UI, I was thinking
    > those
    > > > > > DS-type
    > > > > > > >     > > constraints
    > > > > > > >     > >         I pointed out would live in the API. It would
    > > > > > basically be added
    > > > > > > >     > >         validation in the deliveryservices POST/PUT
    > > endpoint
    > > > > > that checks
    > > > > > > >     > > the
    > > > > > > >     > >         DB for existing DSes that conflict with the
    > > requested
    > > > > > DS.
    > > > > > > >     > >
    > > > > > > >     > >         - Rawlin
    > > > > > > >     > >
    > > > > > > >     > >         On Mon, Dec 17, 2018 at 12:35 PM Gray, 
Jonathan
    > > > > > > >     > >         <jonathan_g...@comcast.com> wrote:
    > > > > > > >     > >         >
    > > > > > > >     > >         > These kinds of conditions should be
    > detectable
    > > > > with a
    > > > > > > >     > > sufficiently advanced SQL query.  Is it possible to 
add
    > > the
    > > > > > constraint if
    > > > > > > >     > > it passes and emit a warning during TO startup
    > otherwise?
    > > > > > That would let
    > > > > > > >     > > you know the condition exists at startup but not
    > getting
    > > in
    > > > > > your way and
    > > > > > > >     > > keep you out of trouble once you've cleaned up.  We
    > made
    > > a
    > > > > > mistake early
    > > > > > > >     > > on, but this would acknowledge it was bad and 
encourage
    > > it to
    > > > > > be fixed at
    > > > > > > >     > > the speed of operations teams.  Also this puts the
    > > constraint
    > > > > > in the
    > > > > > > >     > > database rather than the UI which is really where the
    > > > > > contention is for
    > > > > > > >     > > usability.
    > > > > > > >     > >         >
    > > > > > > >     > >         > Jonathan G
    > > > > > > >     > >         >
    > > > > > > >     > >         >
    > > > > > > >     > >         > On 12/17/18, 11:38 AM, "Rawlin Peters" <
    > > > > > > >     > rawlin.pet...@gmail.com>
    > > > > > > >     > > wrote:
    > > > > > > >     > >         >
    > > > > > > >     > >         >     We occasionally discuss this issue but
    > > haven't
    > > > > > tackled it
    > > > > > > >     > > yet. I think
    > > > > > > >     > >         >     the main issue is just that duplicate
    > > origins
    > > > > > have been
    > > > > > > >     > > allowed since
    > > > > > > >     > >         >     the beginning, and now everyone's 
Traffic
    > > Ops
    > > > > > could be
    > > > > > > >     > > littered with
    > > > > > > >     > >         >     duplicate origins. Also, depending on 
the
    > > > > config
    > > > > > of the
    > > > > > > >     > > duplicate
    > > > > > > >     > >         >     delivery services, the origins might not
    > > be in
    > > > > > conflict at
    > > > > > > >     > > all (if
    > > > > > > >     > >         >     they don't have different topology
    > > > > constraints).
    > > > > > I would
    > > > > > > >     > > love for us
    > > > > > > >     > >         >     to just add a uniqueness constraint, but
    > > there
    > > > > > would need
    > > > > > > >     > to
    > > > > > > >     > > be a fair
    > > > > > > >     > >         >     amount of warning to the community 
before
    > > doing
    > > > > > so and
    > > > > > > >     > might
    > > > > > > >     > >         >     invalidate a significant amount of valid
    > > use
    > > > > > cases.
    > > > > > > >     > > Operators would
    > > > > > > >     > >         >     need time to make DNS CNAME records for
    > the
    > > > > > duplicate
    > > > > > > >     > > origins and
    > > > > > > >     > >         >     update their DSes to use the different
    > > CNAMEs.
    > > > > > > >     > >         >
    > > > > > > >     > >         >     I think as a good first step to
    > > eliminating the
    > > > > > use of
    > > > > > > >     > > duplicate
    > > > > > > >     > >         >     origins altogether, we should identify
    > > which
    > > > > > "topology
    > > > > > > >     > > constraints"
    > > > > > > >     > >         >     actually cause conflicting config when
    > used
    > > > > with
    > > > > > duplicate
    > > > > > > >     > > origins and
    > > > > > > >     > >         >     prevent creating DSes with duplicate
    > > origins
    > > > > _if
    > > > > > it would
    > > > > > > >     > > cause a
    > > > > > > >     > >         >     conflict with an existing DS that uses
    > the
    > > same
    > > > > > origin_.
    > > > > > > >     > >         >
    > > > > > > >     > >         >     For instance, I believe an HTTP and
    > > DNS-type DS
    > > > > > can live
    > > > > > > >     > > happily
    > > > > > > >     > >         >     side-by-side using the same origin
    > > (probably
    > > > > > need different
    > > > > > > >     > >         >     routing_names?), but scenarios like HTTP
    > > and
    > > > > > HTTP_LIVE, or
    > > > > > > >     > > DNS and
    > > > > > > >     > >         >     HTTP_NO_CACHE sharing the same origin
    > will
    > > > > cause
    > > > > > conflicts
    > > > > > > >     > > for sure.
    > > > > > > >     > >         >     So maybe we can start by making sure the
    > DS
    > > > > > types "match"
    > > > > > > >     > > when using
    > > > > > > >     > >         >     the same origin:
    > > > > > > >     > >         >     HTTP + DNS: possibly good, if they have
    > > > > > different routing
    > > > > > > >     > > names?
    > > > > > > >     > >         >     HTTP_LIVE + HTTP_LIVE_NATNL: bad
    > > > > > > >     > >         >     HTTP_NO_CACHE + [any other type]: bad
    > > > > > > >     > >         >     HTTP_LIVE + HTTP: bad
    > > > > > > >     > >         >     etc.
    > > > > > > >     > >         >
    > > > > > > >     > >         >     There are most likely other conflict
    > > scenarios
    > > > > > that don't
    > > > > > > >     > > involve the
    > > > > > > >     > >         >     DS types, but I think this would be a
    > good
    > > > > > start. In the
    > > > > > > >     > > future with
    > > > > > > >     > >         >     Delivery Service Topologies (aka 
Flexible
    > > > > > Cachegroups aka
    > > > > > > >     > > Bring Your
    > > > > > > >     > >         >     Own Topology), we might be able to
    > prohibit
    > > > > > assigning a DS
    > > > > > > >     > > to a
    > > > > > > >     > >         >     Topology if the DS's origin is already
    > > used by
    > > > > > another DS
    > > > > > > >     > in
    > > > > > > >     > > a
    > > > > > > >     > >         >     different Topology.
    > > > > > > >     > >         >
    > > > > > > >     > >         >     - Rawlin
    > > > > > > >     > >         >
    > > > > > > >     > >         >     On Mon, Dec 17, 2018 at 10:52 AM Fieck,
    > > Brennan
    > > > > > > >     > >         >     <brennan_fi...@comcast.com> wrote:
    > > > > > > >     > >         >     >
    > > > > > > >     > >         >     > As some of you may be aware,
    > > `parent.config`
    > > > > > files
    > > > > > > >     > > generated by Traffic Ops can vary wildly when an 
origin
    > > is
    > > > > > assigned to
    > > > > > > >     > > multiple Delivery Services. This results in undefined
    > > > > > behavior. I'm told
    > > > > > > >     > > that the conflict only happens when two Delivery
    > Services
    > > > > with
    > > > > > different
    > > > > > > >     > > "topology requirements" use the same origin, whatever
    > > that
    > > > > > means (content
    > > > > > > >     > > routing type?). Regardless, the issue should be
    > > addressed.
    > > > > The
    > > > > > obvious
    > > > > > > >     > > solution is to put in place a database constraint that
    > > > > > prevents an origin
    > > > > > > >     > > from being assigned to more that one Delivery Service
    > > with
    > > > > API
    > > > > > checks in
    > > > > > > >     > > place that would provide helpful error messages when 
an
    > > > > > attempt is made
    > > > > > > >     > to
    > > > > > > >     > > violate the constraint. However, would that mess with
    > > things
    > > > > > like
    > > > > > > >     > > Multi-Site Origin? Or is it just not viable for some
    > > other
    > > > > > reason? If it
    > > > > > > >     > is
    > > > > > > >     > > a good solution, I'm prepared to work on a fix that
    > > utilizes
    > > > > > it.
    > > > > > > >     > >         >
    > > > > > > >     > >         >
    > > > > > > >     > >
    > > > > > > >     > >
    > > > > > > >     > >
    > > > > > > >     > >
    > > > > > > >     > >
    > > > > > > >     >
    > > > > > > >
    > > > > > > >
    > > > > >
    > > > >
    > >
    >
    

Reply via email to