[ https://issues.apache.org/jira/browse/SOLR-14843?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17201427#comment-17201427 ]
Ilan Ginzburg commented on SOLR-14843: -------------------------------------- Would an initial step in this Jira be the ability to define a way to "prime" the Zookeeper based configuration with something coming from a file? Motivation: The plugin based replica placement code is in master, but the default placement strategy is {{LEGACY}}. To use the new placement strategy a specific config must be set on a running SolrCloud cluster using a {{curl}} command to the config API. To make plugin placement the default strategy now or later (now would be good so it gets some baking time...) yet be able to switch back a cluster to {{LEGACY}} if needed (by removing that configuration), a configuration needs to somehow be automatically pushed to {{/clusterprops.json}}, but there's no support for doing that. I believe priming a ZK config with content from a file is not easy (handle new configs or changes to default configs coming with a new release, deal with existing configuration in ZK to not overwrite it etc.) and is not my preferred way of dealing with this types of configs, but we do need something. > Define strongly-typed cluster configuration API > ----------------------------------------------- > > Key: SOLR-14843 > URL: https://issues.apache.org/jira/browse/SOLR-14843 > Project: Solr > Issue Type: Improvement > Security Level: Public(Default Security Level. Issues are Public) > Reporter: Andrzej Bialecki > Priority: Major > Labels: clean-api > Fix For: master (9.0) > > > Current cluster-level configuration uses a hodgepodge of traditional Solr > config sources (solr.xml, system properties) and the new somewhat arbitrary > config files kept in ZK ({{/clusterprops.json, /security.json, > /packages.json, /autoscaling.json}} etc...). There's no uniform > strongly-typed API to access and manage these configs - currently each config > source has its own CRUD, often relying on direct access to Zookeeper. There's > also no uniform method for monitoring changes to these config sources. > This issue proposes a uniform config API facade with the following > characteristics: > * Using a single hierarchical (or at least key-based) facade for accessing > any global config. > * Using strongly-typed sub-system configs instead of opaque Map-s: > components would no longer deal with JSON parsing/writing, instead they would > use properly annotated Java objects for config CRUD. Config objects would > include versioning information (eg. lastModified timestamp). > * Isolating access to the underlying config persistence layer: components > would no longer directly interact with Zookeeper or files. Most likely the > default implementation would continue using different ZK files per-subsystem > in order to limit the complexity of file formats and to reduce the cost of > notifications for unmodified parts of the configs. > * Providing uniform way to register listeners for monitoring changes in > specific configs: components would no longer need to interact with ZK > watches, they would instead be notified about modified configs that they are > interested in. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org