+1 for Robert's idea about adding tests/tools checking the pattern of new configuration options, and migrate the old ones in release 2.0.
Concerning the preferred pattern, I personally agree with Till's opinion. I think 'xyz.[min|max]' somehow expresses that 'min' and 'max' are properties of 'xyz', while 'xyz' may also have other properties. An example could be 'taskmanager.memory.network.[min|max|fraction]'. Thank you~ Xintong Song On Mon, Apr 27, 2020 at 6:00 PM Till Rohrmann <trohrm...@apache.org> wrote: > Hi everyone, > > as Robert said I think the problem is that we don't have strict guidelines > and every committer follows his/her personal taste. I'm actually not sure > whether we can define bullet-proof guidelines but we can definitely > make them more concrete. > > In this case here, I have to admit that I have an opposing opinion/taste. I > think it would be better to use xyz.min and xyz.max. The reason is that we > configure a property of xyz which consists of the minimum and maximum > value. Differently said, min and max belong semantically together and hence > should be defined together. You can think of it as if the type of the xyz > config option would be a tuple of two integers instead of two individual > integers. > > A comment concerning the existing styles of config options: I think many of > the config options which follow the max-xzy pattern are actually older > configuration options. > > Cheers, > Till > > On Mon, Apr 27, 2020 at 10:34 AM Robert Metzger <rmetz...@apache.org> > wrote: > > > Thanks for starting this discussion. > > I believe the different options are a lot about personal taste, there are > > no objective arguments why one option is better than the other. > > > > I agree with your proposal to simply go with the "max-xyz" pattern, as > this > > is the style of the majority of the current configuration options in > Flink > > (maybe this also means it is the taste of the majority of Flink > > developers?). > > > > I would propose to add a test or some tooling that checks that all new > > configuration parameters follow this pattern, as well as tickets for > Flink > > 2.0 to migrate the "wrong" configuration options. > > > > > > > > On Wed, Apr 22, 2020 at 5:47 AM Yangze Guo <karma...@gmail.com> wrote: > > > > > Hi, everyone, > > > > > > I'm working on FLINK-16605 Add max limitation to the total number of > > > slots[1]. In the PR, I, Gary and Xintong has a discussion[2] about the > > > config option of this limit. > > > The central question is whether the "max" should be part of the > > > hierarchy or part of the property itself. > > > > > > It means there could be two patterns: > > > - max-xyz > > > - xyz.max > > > > > > Currently, there is no clear consensus on which style is better and we > > > could find both patterns in the current Flink. Here, I'd like to first > > > sort out[3]: > > > > > > Config options follow the "max-xyz" pattern: > > > - restart-strategy.failure-rate.max-failures-per-interval > > > - yarn.maximum-failed-containers > > > - state.backend.rocksdb.compaction.level.max-size-level-base > > > - cluster.registration.max-timeout > > > - high-availability.zookeeper.client.max-retry-attempts > > > - rest.client.max-content-length > > > - rest.retry.max-attempts > > > - rest.server.max-content-length > > > - jobstore.max-capacity > > > - taskmanager.registration.max-backoff > > > - compiler.delimited-informat.max-line-samples > > > - compiler.delimited-informat.min-line-samples > > > - compiler.delimited-informat.max-sample-len > > > - taskmanager.runtime.max-fan > > > - pipeline.max-parallelism > > > - execution.checkpointing.max-concurrent-checkpoint > > > - execution.checkpointing.min-pause > > > > > > Config options follow the "xyz.max" pattern: > > > - taskmanager.memory.jvm-overhead.max > > > - taskmanager.memory.jvm-overhead.min > > > - taskmanager.memory.network.max > > > - taskmanager.memory.network.min > > > - taskmanager.network.request-backoff.max > > > - env.log.max > > > > > > Config options do not follow the above two patterns: > > > - akka.client-socket-worker-pool.pool-size-max > > > - akka.client-socket-worker-pool.pool-size-min > > > - akka.fork-join-executor.parallelism-max > > > - akka.fork-join-executor.parallelism-min > > > - akka.server-socket-worker-pool.pool-size-max > > > - akka.server-socket-worker-pool.pool-size-min > > > - containerized.heap-cutoff-min > > > - blob.offload.minsize > > > > > > It seems more config options follow the "max-xyz" pattern. From my > > > side, I do not have a strong preference. But it probably make sense to > > > follow one of them in Flink. > > > If we decide to make it a naming convention and align all config > > > options to it, I prefer to follow the "max-xyz" pattern to minimize > > > the infect to user. > > > > > > Looking forward to your feedback! > > > > > > [1] https://issues.apache.org/jira/browse/FLINK-16605 > > > [2] https://github.com/apache/flink/pull/11615#discussion_r412316648 > > > [3] > > > > > > https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/config.html > > > > > > Best, > > > Yangze Guo > > > > > >