> from time to time I see configuration properties in Config.java and they
are clearly not in cassandra.yaml. Not every property in Config is in
cassandra.yaml. I would like to know if there is some specific reason
behind that.

I think one of the original reasons was to "hide" advanced configs that are
not meant to be updated, unless in very niche circumstances. However I
think this has been extrapolated to non-advanced settings.

> Question related to that is if we could not have a build-time check that
all properties in Config have to be in cassandra.yaml and fail the build if
a property in Config does not have its counterpart in yaml.

Are you saying every configuration property should be commented-out, or do
you think that every Config property should be specified in cassandra.yaml
with their default uncomented ? One issue with that is that you could cause
user confusion if you "reveal" a niche/advanced config that is not meant to
be updated. I think this would be addressed by the @HiddenInYaml flag you
are proposing in a later post.

> There are dozens of properties in Config and I have a strong suspicion
that we missed to publish some to yaml so users do not even know such a
property exists and as of now we do not even know which they are.

I believe this is a problem. I think most properties should be in
cassandra.yaml, unless they are very advanced or not meant to be updated.

Another tangential issue is that there are features/settings that don't
even have a Config entry, but are just controlled by JVM properties.

I think that we should attempt to unify Config and jvm properties under a
predictable structure. For example, if there is a YAML config
enable_user_defined_functions, then there should be a respective JVM flag
-Dcassandra.enable_user_defined_functions, and vice versa.

On Fri, Jan 24, 2025 at 9:16 AM Štefan Miklošovič <smikloso...@apache.org>
wrote:

> Hello,
>
> from time to time I see configuration properties in Config.java and they
> are clearly not in cassandra.yaml. Not every property in Config is in
> cassandra.yaml. I would like to know if there is some specific reason
> behind that.
>
> Question related to that is if we could not have a build-time check that
> all properties in Config have to be in cassandra.yaml and fail the build if
> a property in Config does not have its counterpart in yaml.
>
> There are dozens of properties in Config and I have a strong suspicion
> that we missed to publish some to yaml so users do not even know such a
> property exists and as of now we do not even know which they are.
>

Reply via email to