[ 
https://issues.apache.org/jira/browse/SOLR-16305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17764689#comment-17764689
 ] 

Vincent Primault commented on SOLR-16305:
-----------------------------------------

I found this ticket while trying to understand the difference between 
MODIFYCOLLECTION and COLLECTIONPROP and the propagation flow of property.* 
properties. I was also surprised by the semantics of COLLECTIONPROP, which does 
not store the properties in cluster state, as opposed to similar user-defined 
properties for replicas which are indeed stored in cluster state (despite 
sharing the same API in v2).

For my use case, I would like to define some user-defined properties at the 
collection-level, and propagate them to the core. What I am missing is 1/ the 
fact that those properties are not stored with the collection, but only used 
when creating cores 2/ not reused when creating new shard or replicas for this 
collection. After defining the "foo" property when creating the collection, I 
would need further calls to ADDREPLICA to also reuse those collection-level 
user-defined properties.

My proposal is then the following:
 * Store user-defined properties in cluster state at collection-level (coming 
from create collection/modify collection)
 * Store user-defined properties in cluster state at replica-level (coming from 
create replica/add replica prop/delete replica prop)
 * Inherit from user-defined properties from collection and replica when 
creating cores.

I believe it makes sense to inherit from properties to ensure consistency 
between the first call creating a collection and first replicas, and the 
subsequent ones. It also gives semantics to modifying user-defined properties 
of a collection or replica: they do not affect existing cores, but all cores 
created after that.

> MODIFYCOLLECTION with 'property.*' changes can't change values used in config 
> file variables (even though they can be set during collection CREATE)
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-16305
>                 URL: https://issues.apache.org/jira/browse/SOLR-16305
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Chris M. Hostetter
>            Priority: Major
>         Attachments: SOLR-16305_test.patch
>
>
> Consider a configset with a  {{solrconfig.xml}} that includes a snippet like 
> this...
> {code:java}
> <str name="param.check">${custom.prop:customDefVal}</str>
> {code}
> ...this {{custom.prop}} can be set when doing a {{CREATE}} command for a 
> collection that uses this configset, using the {{property.*}} prefix as noted 
> in the reg-guide...
> {quote}{{property.{_}name{_}={_}value{_}}}
> |Optional|Default: none|
> Set core property _name_ to {_}value{_}. See the section [Core 
> Discovery|https://solr.apache.org/guide/solr/latest/configuration-guide/core-discovery.html]
>  for details on supported properties and values.
> {quote}
> ...BUT....
> These values can *not* be changed by using the {{MODIFYCOLLECTION}} command, 
> in spite of the ref-guide indicating that it can be used to modify custom 
> {{property.*}} attributes...
> {quote}The attributes that can be modified are:
>  * {{replicationFactor}}
>  * {{collection.configName}}
>  * {{readOnly}}
>  * other custom properties that use a {{property.}} prefix
> See the [CREATE 
> action|https://solr.apache.org/guide/solr/latest/deployment-guide/collection-management.html#create]
>  section above for details on these attributes.
> {quote}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to