Same understanding here - the goal of property being presented in Config
but not cassandra.yaml was to keep those hidden from regular users aka -
advanced config. Also, in some cases I was told some of those did not have
a clear recommendation yet how to use them, one more reason to be hidden.

I think it would be nice to revise that all properties missing in
cassandra.yaml really should not be there and add those non-controversial
in. Also, adding an annotation to those that are simply advanced and which
do not need to be in cassandra.yaml to flag intentional choice and keep
track on this sounds like a good improvement.

Thanks for bringing this up!

Best regards,
Ekaterina

On Fri, 24 Jan 2025 at 9:27, Paulo Motta <pa...@apache.org> wrote:

> > 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