Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Originally discussed here: http://mail-archives.apache.org/mod_mbox/lucene-dev/201505.mbox/%3CCAMJgJxSXCHxDzJs5-C-pKFDEBQD6JbgxB=-Xp7u143eKmgp61w@mail.gmail.com%3E
The ConfigSet used to create a collection should be read-only. Changes made via any of the Config APIs should only be applied to the collection where the operation is done and no to other collections that may be using the same ConfigSet. As discussed in the dev list:
When a collection is created we should have two things, an immutable part (the ConfigSet) and a mutable part (configoverlay, generated schema, etc). The ConfigSet will still be placed in ZooKeeper under "/configs" but the mutable part should be placed under "/collections/$COLLECTION_NAME/…"
romseygeek suggested:
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.