> TLDR: we should think about this as configset base vs per-collection diff,
> not as immutable base vs per-collection mutable.

Makes sense, I was mostly thinking of it being immutable from the current
Config APIs. Editing a configset for multiple collection is a valid and
useful feature, the problem is doing that from inside one collection's API
call.

> So then the question becomes, do we want an API that can *also* make
> collection-specific changes to a shared config?

If we feel there is no need for collection-specific config changes, I'm OK,
but again, the API should be outside of the collection, like a Configset
API. The "generate configset based on X" should also be a command of this
API. In addition, this could allow users to edit a configset that's not
currently being used by any collection.

Tomás


On Fri, May 22, 2015 at 7:10 AM, Yonik Seeley <ysee...@gmail.com> wrote:

> Makes sense Greg.
>
> Just looking at it from the ZK perspective (APIs aside), the original
> idea behind referencing a config set by name was so that you could
> change it in one place and everyone relying on it would get the
> changes.
>
> If one wants collections to have separate independent config sets they
> can already do that.
>
> So then the question becomes, do we want an API that can *also* make
> collection-specific changes to a shared config?
>
> An alternative would be a command to make a copy of a config set, and
> a command to switch a specific collection to use that new config set.
> Then any further changes would be collection specific.  That's sort of
> like SOLR-5955 - config templates - but you can "template" off of any
> other config set, at any point in time.  Actually, that type of
> functionality seems generally useful regardless.
>
> -Yonik
>
>
> On Thu, May 21, 2015 at 8:07 PM, Gregory Chanan <gcha...@cloudera.com>
> wrote:
> > I'm +1 on the general idea, but I'm not convinced about the
> > mutable/immutable separation.
> >
> > Do we not think it is valid to modify a single config(set) that affects
> > multiple collections?  I can imagine a case where my data with the same
> > config(set) is partitioned into many different collections, whether by
> date,
> > sorted order, etc. that all use the same underlying config(set).  Let's
> say
> > I have collections partitioned by month and I decide I want to add
> another
> > field; I don't want to have to modify
> > jan/schema
> > feb/schema
> > mar/schema
> > etc.
> >
> > I just want to modify the single underlying config(set).  You can imagine
> > having a configset API that let's me do that, so if I wanted to modify a
> > single collection's config I would call:
> > jan/schema
> > but if i wanted to modify the underlying config(set) I would call:
> > configset/month_partitioned_config
> >
> > My point is this: if the problem is that it is confusing to have
> configsets
> > modified when you make collection-level calls, then we should fix that
> (I'm
> > 100% in agreement with that, btw).  You can fix that by having a
> configset
> > and a per-collection diff; defining the configset as immutable doesn't
> solve
> > the problem, only locks us into a implementation that doesn't support the
> > use case above.  I'm not even saying we should implement a configset API,
> > only that defining this as an immutable vs mutable implementation blocks
> us
> > from doing that.
> >
> > TLDR: we should think about this as configset base vs per-collection
> diff,
> > not as immutable base vs per-collection mutable.
> >
> > Thoughts?
> > Greg
> >
> >
> > On Tue, May 19, 2015 at 10:52 AM, Tomás Fernández Löbbe
> > <tomasflo...@gmail.com> wrote:
> >>
> >> I created https://issues.apache.org/jira/browse/SOLR-7570
> >>
> >> On Fri, May 15, 2015 at 10:31 AM, Alan Woodward <a...@flax.co.uk>
> wrote:
> >>>
> >>> +1
> >>>
> >>> A nice way of doing it would be to make it part of the
> SolrResourceLoader
> >>> interface.  The ZK resource loader could check in the
> collection-specific
> >>> zknode first, and then under configs/, and we could add a
> writeResource()
> >>> method that writes to the collection-specific node as well.  Then all
> config
> >>> I/O goes via the resource loader, and we have a way of keeping certain
> parts
> >>> immutable.
> >>>
> >>> On 15 May 2015, at 17:39, Tomás Fernández Löbbe <tomasflo...@gmail.com
> >
> >>> wrote:
> >>>
> >>> I agree about differentiating the mutable part (configoverlay,
> generated
> >>> schema, etc) and the immutable (the configset) , but I think it would
> be
> >>> better if the mutable part is placed under /collections/x/...,
> otherwise
> >>> "/configs" would have a mix of ConfigSets and collection-specific
> >>> configuration.
> >>>
> >>> On Fri, May 15, 2015 at 6:38 AM, Noble Paul <noble.p...@gmail.com>
> wrote:
> >>>>
> >>>> I think this needs more discussion
> >>>>
> >>>> When a collection is created we should have two things
> >>>>
> >>>> an immutable part and a mutable part
> >>>>
> >>>> for instance my collection name is "x" and it uses schemaless example
> >>>> conf
> >>>>
> >>>> I must now have two conf dirs
> >>>>
> >>>> configs/schemaless and
> >>>> configs/x
> >>>>
> >>>> all the mutable stuff goes to configs/x
> >>>>
> >>>> and config/schemaless remains immutable
> >>>>
> >>>>
> >>>>
> >>>> On Tue, May 12, 2015 at 2:23 AM, Tomás Fernández Löbbe
> >>>> <tomasflo...@gmail.com> wrote:
> >>>>>
> >>>>> I think this is fine.I don't think we need a new concept of "config
> >>>>> templates", we just need to make it clear that the configset used to
> create
> >>>>> the collection is not modified by Solr, and that any change done via
> API
> >>>>> only affects the single collection where the config command is
> issued.
> >>>>>
> >>>>> I guess the schema API should start using something like
> configoverlay,
> >>>>> or maybe persist the updated schema to this new path?
> >>>>>
> >>>>> Tomás
> >>>>>
> >>>>> On Fri, May 8, 2015 at 10:28 PM, Noble Paul <noble.p...@gmail.com>
> >>>>> wrote:
> >>>>>>
> >>>>>> I agree with you on the point that it causes confusion.
> >>>>>>
> >>>>>> My suggestion would be to have something called "config templates"
> and
> >>>>>> they are immutable . So , we don't need a configset API
> >>>>>> each collection have it's own conf folder .
> >>>>>>
> >>>>>> So, when a collection is created we should go ahead and create a
> >>>>>> corresponding conf dir.
> >>>>>>
> >>>>>> Ideally, it should not copy over all configs from it's template. It
> >>>>>> should just store the configoverlay.json, params.json in the
> collection's
> >>>>>> conf directory and inherit the rest from the template
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Sat, May 9, 2015 at 9:35 AM, Tomás Fernández Löbbe
> >>>>>> <tomasflo...@gmail.com> wrote:
> >>>>>>>
> >>>>>>> I think the concept of ConfigSets has become a bit confusing with
> the
> >>>>>>> Config APIs (I'm thinking in SolrCloud mode here). Solr requires
> that a
> >>>>>>> configset is pushed to ZooKeeper before creating a collection that
> uses it.
> >>>>>>> It supports multiple collections using the same configset, which I
> think is
> >>>>>>> great. You could also have a couple of configsets that no
> collection is
> >>>>>>> currently using (who knows, maybe one that was recently
> deprecated, or that
> >>>>>>> will be used soon, etc). This gives me the idea that configsets
> are a
> >>>>>>> separate entity than the collection, not just a collection's
> configuration.
> >>>>>>>
> >>>>>>> Config APIs allow you to operate on a collection to add handlers,
> >>>>>>> change settings, etc. The problem is that you are not really
> applying the
> >>>>>>> changes to the collection but to the complete configset. All
> collections
> >>>>>>> using it will get the changes, and all of them will be reloaded
> after a
> >>>>>>> change.
> >>>>>>>
> >>>>>>> Shouldn't those APIs be at a different level/outside the
> collection?
> >>>>>>> Maybe a configset API? Or, maybe the configs (for example, the
> >>>>>>> configoverlay.json) should only apply to the collection where the
> API call
> >>>>>>> was made and not to other collections using the configset?
> >>>>>>>
> >>>>>>> Tomás
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> -----------------------------------------------------
> >>>>>> Noble Paul
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> -----------------------------------------------------
> >>>> Noble Paul
> >>>
> >>>
> >>>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org
>
>

Reply via email to