>  >  If "# my_cool_property: true" is NOT in cassandra.yaml, we might
indeed add it, also commented out. I think it would be quite easy to check
against yaml if there is a line starting on "# my_cool_property" or just on
"my_cool_property". Both cases would satisfy the check.

Makes sense, I think this would be good to have as a lint or test to easily
catch overlooks during review.


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

>
>
> On Fri, Jan 24, 2025 at 3:27 PM 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.
>>
>
> Yes, then can stay hidden, but we should annotate it with @Hidden or
> similar. As of now, if that property is not in yaml, we just don't know if
> it was forgotten to be added or if we have not added it on purpose.
>
> They can keep being commented out if they currently are. Imagine a
> property in Config.java
>
> public boolean my_cool_property = true;
>
> and then this in cassandra.yaml
>
> # my_cool_property: true
>
> It is completely ok.
>
> If "# my_cool_property: true" is NOT in cassandra.yaml, we might indeed
> add it, also commented out. I think it would be quite easy to check against
> yaml if there is a line starting on "# my_cool_property" or just on
> "my_cool_property". Both cases would satisfy the check.
>
>
>
>> > 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.
>>
>
> Yeah, good idea.
>
>
>>
>> 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