The categories and your comments make sense to me.

I looked across some of the individual proposals:

> collection.configName
Where is this used as a system property override?  I looked and don't see
it.

"enabled" vs "disabled": can we standardize on "enabled"?

> managed.schema.mutable

In this case (and likely others if I found one), there is no production
code containing this string.  It is only a test config file containing
${managed.schema.mutable} and probably test code that sets it.  I don't
think we should put these in the list; the list is long enough as it is.

> disable.configEdit. => solr.configset.edit.disabled
We should then broaden its use to cover the configset broadly, thus block
the schema edit API and maybe more.  Right now it only covers mutability of
solrconfig.xml (via a JSON overlay).  I'm good with that, but it increases
the scope.

On Fri, Jan 12, 2024 at 6:39 AM Jan Høydahl <jan....@cominvent.com> wrote:

> I like the simplicity of lowercasing and changing underscore for dot, so
> if we can avoid camelCase that would be best.
>
>
> I started a WIKI page for easier collaboration on this topic:
> https://cwiki.apache.org/confluence/display/SOLR/System+property+naming+structure
>
> There I enumerated each source folder and tried to deduce some commonality
> and structure.
>
> I also enumerated all current sysProps used in the codebase (by scanning
> src for various System.getProperty, Boolean.getBoolean, EnvUtils.getProp
> variations). That is the second table on the page. Looking at all those
> system property names we have today is depressing, they are all over the
> place and 157 in number (although some are zk, hadoop or java owned and
> some relate to tests).
>
> I did a small stab on mapping those old props to a new proposed name, but
> the list is looong, so good with some collaboration on this. I experience
> that the shape of the hiearchy molds as I encounter more real-life
> examples. And there are tons of decisions, e.g. wether we should force
> solr.security as a prefix for all things security or to keep the shorter
> solr.auth.*. Same with solr.search.*
>
> It is also encouraging to see the list of existing solr.xxx keys in use
> that are already well structured (solr.jetty.keystore.password,
> solr.kerberos.keystore.password, solr.log.level etc).
>
> Jan
>
>
> > 11. jan. 2024 kl. 03:36 skrev David Smiley <dsmi...@apache.org>:
> >
> > On Tue, Jan 9, 2024 at 9:49 AM Jan Høydahl <jan....@cominvent.com
> <mailto:jan....@cominvent.com>> wrote:
> >
> >> Hi,
> >>
> >>> Using this one as an example; what would you propose?:
> >>> * solr.shardSplit.checkDiskSpace.enabled
> >>
> >> The "solr.shardSplit.checkDiskSpace.enabled" prop is one of the better.
> >> But say we standardized the first component layer to be one of "query",
> >> "index", "collection", "schema", "cluster", "node" or whatever set of
> >> top-level components make sense. Then I guess shard split would be
> >> "solr.collection.shard.split.checkDiskSpace.enabled" or similar.
> However, I
> >> find it hard to find good generic top-level categories for Solr that are
> >> consise and no overlapping.
> >>
> >
> > So the module can't be camel-case but checkDiskSpace can?  What about
> > hyphens in a sys prop, mapped to an underscore in an env var?
> >
> >> "solr.collection.shard.split.checkDiskSpace.enabled"
> >
> > Not bad.
> > I bet it's hard to find good generic top-level categories.    Feel free
> to
> > take a stab at this and share for review.  It doesn't need to be perfect,
> > just not nausea inducing :-)
> >
> >
> >>> Are you saying the camel case is a problem?
> >>
> >> No necessarily. The concern was that there should be a well-defined way
> to
> >> translate an SOLR_ENV_VAR into system property, so we don't need to
> touch
> >> bin/solr[.cmd] every single time. And it would be hard for an algorithm
> to
> >> know that it should translate SOLR_SHARD_SPLIT_CHECK_DISK_SPACE_ENABLED
> >> env.var into the exact combination of dot separation and camelCase used
> >> above. An alternative could be using a combination of underscore and
> dash,
> >> such as "SOLR_SHARD-SPLIT_CHECK-DISK-SPACE_ENABLED", where we translate
> >> underscore with dot and dash with Camelcase. We'd need to disallow dash
> in
> >> property names then...
> >>
> >
> > Alternatively simply normalize both sys props and env vars using the same
> > scheme.  In theory it would allow crazy variation but if we only document
> > each named toggle a certain way then it doesn't matter.
>
>

Reply via email to