+1 for Chesnay approach On Mon, Apr 27, 2020 at 2:31 PM Chesnay Schepler <ches...@apache.org> wrote:
> +1 for xyz.[min|max]; imo it becomes obvious if think of it like a yaml > file: > > xyz: > min: > max: > > opposed to > > min-xyz: > max-xyz: > > IIRC this would also be more in-line with the hierarchical scheme for > config options we decided on months ago. > > On 27/04/2020 13:25, Xintong Song wrote: > > +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 > >>>> >