[ 
https://issues.apache.org/jira/browse/CASSANDRA-15234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17159846#comment-17159846
 ] 

Benedict Elliott Smith edited comment on CASSANDRA-15234 at 7/17/20, 10:19 AM:
-------------------------------------------------------------------------------

Thanks Caleb for the reminder.  I've [pushed another 
approach|https://github.com/belliottsmith/cassandra/tree/CASSANDRA-15234-grouping-ideas],
 that groups options by the reason the operator cares about them, namely: 
* {{cluster}}-wide settings (partitioner, token etc)
* {{disk}} options that specify strategy, throttle throughput etc
* {{memory}} options that allocate heap or direct memory resources
* {{concurrency}} that constrain the number of operations or threads committed 
to tasks
* {{internode}} and {{client}} networking options 
* {{feature}} options; and
* {{log}} options for our warning thresholds etc

It was taking a while, and it might not be well received, so I only went about 
90% of the way so that the approach can receive some feedback.  Obviously, this 
would necessitate a different approach to the headline comments, wherein we 
might want to list the parameters users might care about in prose alongside 
explanations for why they might care.

I personally would like to propose we also introduce a dual system for updating 
properties, wherein we can accept the nested namespace versions, as well as 
e.g. dot-delimited versions.  e.g. {{disk.throttle.compaction: 10MiB/s}}. This 
should mitigate any risk to simplistic tools, as well as maybe providing us a 
simple route to permitting common options being given at the start of the file, 
without confusing the overall approach.

[~e.dimitrova]: in going through the yaml, I noticed that you have used mbps in 
many places, but I thought we had previously agreed that any {{bps}} was 
ambiguous, since it can mean bits or bytes?  I thought we had settled on MiB/s 
so that there could be no ambiguity?  (Since MB/s is also ambiguous - 
technically meaning 1000s, but often meaning powers of 2)?


was (Author: benedict):
Thanks Caleb for the reminder.  I've pushed another approach, that groups 
options by the reason the operator cares about them, namely: 
* {{cluster}}-wide settings (partitioner, token etc)
* {{disk}} options that specify strategy, throttle throughput etc
* {{memory}} options that allocate heap or direct memory resources
* {{concurrency}} that constrain the number of operations or threads committed 
to tasks
* {{internode}} and {{client}} networking options 
* {{feature}} options; and
* {{log}} options for our warning thresholds etc

It was taking a while, and it might not be well received, so I only went about 
90% of the way so that the approach can receive some feedback.  Obviously, this 
would necessitate a different approach to the headline comments, wherein we 
might want to list the parameters users might care about in prose alongside 
explanations for why they might care.

I personally would like to propose we also introduce a dual system for updating 
properties, wherein we can accept the nested namespace versions, as well as 
e.g. dot-delimited versions.  e.g. {{disk.throttle.compaction: 10MiB/s}}. This 
should mitigate any risk to simplistic tools, as well as maybe providing us a 
simple route to permitting common options being given at the start of the file, 
without confusing the overall approach.

[~e.dimitrova]: in going through the yaml, I noticed that you have used mbps in 
many places, but I thought we had previously agreed that any {{bps}} was 
ambiguous, since it can mean bits or bytes?  I thought we had settled on MiB/s 
so that there could be no ambiguity?  (Since MB/s is also ambiguous - 
technically meaning 1000s, but often meaning powers of 2)?

> Standardise config and JVM parameters
> -------------------------------------
>
>                 Key: CASSANDRA-15234
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15234
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local/Config
>            Reporter: Benedict Elliott Smith
>            Assignee: Ekaterina Dimitrova
>            Priority: Normal
>             Fix For: 4.0-beta
>
>         Attachments: CASSANDRA-15234-3-DTests-JAVA8.txt
>
>
> We have a bunch of inconsistent names and config patterns in the codebase, 
> both from the yams and JVM properties.  It would be nice to standardise the 
> naming (such as otc_ vs internode_) as well as the provision of values with 
> units - while maintaining perpetual backwards compatibility with the old 
> parameter names, of course.
> For temporal units, I would propose parsing strings with suffixes of:
> {{code}}
> u|micros(econds?)?
> ms|millis(econds?)?
> s(econds?)?
> m(inutes?)?
> h(ours?)?
> d(ays?)?
> mo(nths?)?
> {{code}}
> For rate units, I would propose parsing any of the standard {{B/s, KiB/s, 
> MiB/s, GiB/s, TiB/s}}.
> Perhaps for avoiding ambiguity we could not accept bauds {{bs, Mbps}} or 
> powers of 1000 such as {{KB/s}}, given these are regularly used for either 
> their old or new definition e.g. {{KiB/s}}, or we could support them and 
> simply log the value in bytes/s.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to