+1 for Chesnay's suggestion and taking a simple pragmatic approach. Gyula
On Mon, Aug 29, 2022 at 3:41 PM Chesnay Schepler <ches...@apache.org> wrote: > TBH I don't really get why we're discussion the prioritization of config > options vs. what users have set in their application in this thread. > > Why don't we just follow the same order that the CLI currently enforces? > Same point regarding the external vs internal parameters. > > Ultimately this FLIP is only about getting closer to achieving feature > parity between the CLI and jar submission, so let's focus on that. > Everything else should cover both the REST API and CLI, and would thus > be out-of-scope of this FLIP imo. > > On 29/08/2022 03:52, Zheng Yu Chen wrote: > > Hi Hong: > > > > I compared @gyula and yours solutions, here are some of my thoughts: > > > > We can't control whether the user defines some parameters in the code, > so I > > think User Code is always bigger than other configuration items (usually > > code in development has the highest priority) > > such as @gyula said, I think it's more reasonable to put User code > > first. Then, according to the cluster configuration > > (rest.submit.job.override-config = true/false), whether this job > parameter > > is configured to determine which value should take effect > > > > If we follow your strategy(Rest API / Flink CLI > User Code > Cluster > > Config), it means that after we submit the job, the user's hard-coded > > configuration will be invalid, which will make the user feel strange: I > > have configured this parameter in the code, why does it not take effect? > > So I will be more inclined to support @gyula suggestion > > > > (Default) override true: > > User code > rest api > cluster conf > > > > Override false : > > User code > cluster conf > rest api > > > > @Hong What do you think ? > > > > > > > > Teoh, Hong <lian...@amazon.co.uk.invalid> 于2022年8月27日周六 16:06写道: > > > >> Hi Zheng Yu, > >> > >> Sorry for the late reply, I was on holiday last week. > >> > >> Could we propose the following config instead? > >> > >> rest.submit.job.override-config = true/false > >> - true: REST API will have priority over user code (i.e. Rest API / > >> Flink CLI > User Code > Cluster Config) > >> - false (default): user code will have priority over REST API (i.e. > User > >> Code > Rest API / Flink CLI > Cluster Config) > >> > >> This way, the default behaviour will be according to the proposed FLIP, > >> but we will have an additional toggle to ignore the configuration set in > >> user code. > >> > >> > However, there will be a problem in doing this. If the user > writes > >> > this Flink Config in jar by hardcoding, the highest priority > >> must be > >> > the code at this time, so the problem may still exist, and > the > >> user > >> > cannot be prevented from this behavior > >> > >> Hmm, would it be better if we set it such that the > >> "rest.submit.job.override-config" cannot be overwritten in user code > >> (ignored), just like configuration "jobmanager.rpc.port"? > >> > >> What do you think? > >> > >> Regards, > >> Hong > >> > >> > >> > >> On 26/08/2022, 12:05, "Zheng Yu Chen" <jam.gz...@gmail.com> wrote: > >> > >> CAUTION: This email originated from outside of the organization. Do > >> not click links or open attachments unless you can confirm the sender > and > >> know the content is safe. > >> > >> > >> > >> HI Hong, > >> > >> Maybe you forgot. I don’t know if the current FLIP still needs to > be > >> modified. If not, we will start with the current plan. If you have > >> relevant ideas in the future, please continue to discuss. If not, > we > >> will open voting at a later date. > >> > >> Teoh, Hong <lian...@amazon.co.uk.invalid> 于2022年8月22日周一 16:02写道: > >> > > >> > Hi Zheng Yu, > >> > > >> > We would have to take the same "cluster configuration" (cannot be > >> set on job submission) vs "job configuration" approach in the User code > as > >> well. And we can classify > jobmanager.rest.api.submit.job.allow-reset-config > >> as a cluster configuration. That way, neither the REST API / User code > can > >> override this configuration, and it can only be set in cluster > >> configuration on startup. > >> > > >> > There are other cluster specific configurations that are already > >> treated this way (e.g. jobmanager.rpc.address, > >> jobmanager.memory.process.size). As part of this work, I wonder if we > can > >> update the Flink docs on configuration ( > >> > https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/config/ > ) > >> to specify which configuration is "cluster" and which is "job". > >> > > >> > Regards, > >> > Hong > >> > > >> > > >> > > >> > On 20/08/2022, 09:16, "Zheng Yu Chen" <jam.gz...@gmail.com> > wrote: > >> > > >> > CAUTION: This email originated from outside of the > organization. > >> Do not click links or open attachments unless you can confirm the sender > >> and know the content is safe. > >> > > >> > > >> > > >> > @Gyula say that add a config for this but not expose it on > the > >> rest > >> > api is right > >> > when user start up session cluster,we can config (eg > >> > jobmanager.rest.api.submit.job.allow-reset-config = > true/false) > >> to > >> > controller this behavior > >> > > >> > Now we have an existing cluster, the admin configures > >> checkpointing > >> > interval by this session cluster > >> > > >> > jobmanager.rest.api.submit.job.allow-reset-config = > true/false > >> > > >> > - true : allow user reset new value config > >> > - false(default) : not allow user set new config from ,throw > exp > >> to > >> > tell user what properties is admin was set it > >> > > >> > However, there will be a problem in doing this. If the user > >> writes > >> > this Flink Config in jar by hardcoding, the highest priority > >> must be > >> > the code at this time, so the problem may still exist, and > the > >> user > >> > cannot be prevented from this behavior. > >> > > >> > what do you think ? > >> > > >> > @Hong @Gyula @Teoh @Danny > >> > > >> > > >> > Gyula Fóra <gyula.f...@gmail.com> 于2022年8月18日周四 18:37写道: > >> > > > >> > > +1 for the proposal. > >> > > > >> > > @Hong : I feel that the inverted override flag should be a > >> cluster setting > >> > > and not something the user can override at will. I fear > that > >> this might > >> > > defeat the purpose of the feature itself. > >> > > So I think we should add a config for this but not expose > it > >> on the rest api > >> > > > >> > > Gyula > >> > > > >> > > On Thu, Aug 18, 2022 at 12:33 PM Teoh, Hong > >> <lian...@amazon.co.uk.invalid> > >> > > wrote: > >> > > > >> > > > +1 to this FLIP. > >> > > > This is very useful for teams building a Flink platform > to > >> run jobs from > >> > > > an external user > >> > > > > >> > > > +1 on Danny's comment on adding a configuration to allow > >> inverted order of > >> > > > overrides. > >> > > > However, might it be better to include an "override" > toggle > >> in the REST > >> > > > API itself? That way we can change the flink > configuration > >> override > >> > > > behaviour without restarting the Flink cluster. This > would > >> make sense if we > >> > > > are thinking of a Session cluster and deploying multiple > >> Flink jobs to the > >> > > > same cluster. > >> > > > > >> > > > Regards, > >> > > > Hong > >> > > > > >> > > > > >> > > > On 18/08/2022, 10:46, "Danny Cranmer" < > >> dannycran...@apache.org> wrote: > >> > > > > >> > > > CAUTION: This email originated from outside of the > >> organization. Do > >> > > > not click links or open attachments unless you can > confirm > >> the sender and > >> > > > know the content is safe. > >> > > > > >> > > > > >> > > > > >> > > > +1 thanks for driving this FLIP. > >> > > > > >> > > > We actually have an internally forked equivalent of > >> this, which is on > >> > > > our > >> > > > list to try to upstream. Your proposal would *almost* > >> work "off the > >> > > > shelf" > >> > > > for us. We have an inverted order or priority: > >> > > > - Rest API / Flink CLI > User Code > Cluster Config > >> > > > > >> > > > This is because our end users do not submit their > jobs > >> directly, our > >> > > > service does it on their behalf. For our usecase we > do > >> not want to > >> > > > allow > >> > > > users to override certain values we set, since some > are > >> managed from > >> > > > our > >> > > > service configuration, example: checkpointing > interval. > >> > > > > >> > > > How would you feel about including a cluster > >> configuration to invert > >> > > > the > >> > > > order? This could be decoupled to a follow-up FLIP. > >> > > > > >> > > > Thanks, > >> > > > Danny Cranmer > >> > > > > >> > > > > >> > > > On Tue, Aug 16, 2022 at 7:21 AM Zheng Yu Chen < > >> jam.gz...@gmail.com> > >> > > > wrote: > >> > > > > >> > > > > This is a good suggestion, we can start this work > >> after we finish the > >> > > > > discussion and vote > >> > > > > > >> > > > > -- > >> > > > > Best > >> > > > > > >> > > > > ConradJam > >> > > > > > >> > > > > > >> > > > > <zhanghao.c...@outlook.com> 于2022年8月15日周一 21:01写道: > >> > > > > > >> > > > > > I've created a new ticket [FLINK-28973] Extending > >> > > > /jars/:jarid/plan API > >> > > > > to > >> > > > > > support setting Flink configs - ASF JIRA ( > apache.org > >> )< > >> > > > > > > https://issues.apache.org/jira/browse/FLINK-28973>. > >> for the job > >> > > > plan > >> > > > > API. > >> > > > > > Maybe we can create a new umbrella ticket for > >> FLIP-256 and put > >> > > > > FLINK-27060 > >> > > > > > & FLINK-28973 as subtasks. WDYT? > >> > > > > > > >> > > > > > Best, > >> > > > > > Zhanghao Chen > >> > > > > > ________________________________ > >> > > > > > From: zhengyu chen <jam.gz...@gmail.com> > >> > > > > > Sent: Monday, August 15, 2022 18:06 > >> > > > > > To: dev@flink.apache.org <dev@flink.apache.org> > >> > > > > > Subject: [DISCUSS] FLIP-256 Support Job Dynamic > >> Parameter With > >> > > > Flink Rest > >> > > > > > Api > >> > > > > > > >> > > > > > Hi all, > >> > > > > > > >> > > > > > > >> > > > > > We would like to start a discussion thread on > >> FLIP-256 Support Job > >> > > > > Dynamic > >> > > > > > Parameter With Flink Rest Api > >> > > > > > < > >> > > > > > > >> > > > > > >> > > > > >> > https://cwiki.apache.org/confluence/display/FLINK/FLIP-256+Support+Job+Dynamic+Parameter+With+Flink+Rest+Api > >> > > > > > > > >> > > > > > [1] > >> > > > > > > >> > > > > > After the user submits the jar package, running a > >> job through > >> > > > restapi > >> > > > > > (/jars/:jarid/run) [2] can only pass in > >> (allowNonRestoredState, > >> > > > > > savepointPath, programArg, entry-class, > parallelism) > >> parameters, > >> > > > which is > >> > > > > > obvious with the diversification of job > parameters > >> (eg Checkpoint > >> > > > > address) > >> > > > > > > >> > > > > > This solves the problem that the user can pass in > >> other parameters > >> > > > when > >> > > > > > submitting a job, avoiding the user to define > these > >> job parameters > >> > > > in the > >> > > > > > code, resulting in the need to repackage the job > for > >> each > >> > > > modification > >> > > > > > > >> > > > > > There was some interest from users [3] from a > meetup > >> and the > >> > > > mailing > >> > > > > list. > >> > > > > > Looking forward to comments and feedback, thanks! > >> > > > > > > >> > > > > > > >> > > > > > [1] > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > https://cwiki.apache.org/confluence/display/FLINK/FLIP-256+Support+Job+Dynamic+Parameter+With+Flink+Rest+Api > >> > > > > > > >> > > > > > > >> > > > > > [2] > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > https://nightlies.apache.org/flink/flink-docs-master/docs/ops/rest_api/#jars-jarid-run > >> > > > > > > >> > > > > > [3] > >> https://issues.apache.org/jira/browse/FLINK-27060 > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > -- > >> > > > > > Best > >> > > > > > > >> > > > > > ConradJam > >> > > > > > > >> > > > > > >> > > > > >> > > > > >> > > >> > >> -- > >> Best > >> > >> ConradJam > >> > >> > >