Hi Martijn,

I can understand that.
Is there any database/system that supports disabling/enabling query hints
 with a configuration? This might help us to understand the use case,
and follow the approach.

Best,
Jark

On Fri, 15 Sept 2023 at 15:34, Martijn Visser <martijnvis...@apache.org>
wrote:

> Hi all,
>
> I think Jark has a valid point with:
>
> > Does this mean that in the future we might add an option to disable each
> feature?
>
> I don't think that's a reasonable outcome indeed, but we are currently in a
> situation where we don't have clear guidelines on when to add a
> configuration option, and when not to add one. From a platform perspective,
> there might not be an imminent or obvious security implication, but you
> want to minimize a potential attack surface.
>
> > We should try to remove the unnecessary configuration from the list in
> Flink 2.0.
>
> I agree with that too.
>
> With these things in mind, my proposal would be the following:
>
> * Add a configuration option for this situation, given that we don't have
> clear guidelines on when to add/not add a new config option.
> * Since we want to overhaul the configuration layer anyway in Flink 2.0, we
> clean-up the configuration list by not having an option for each item, but
> either a generic option that allows you to disable one or more features (by
> providing a list as the configuration option), or we already bundle
> multiple configuration options into a specific category, e.g. so that you
> can have a default Flink without any hardening, a read-only Flink, a
> fully-hardened Flink etc)
>
> Best regards,
>
> Martijn
>
>
> On Mon, Sep 11, 2023 at 4:51 PM Jim Hughes <jhug...@confluent.io.invalid>
> wrote:
>
> > Hi Jing and Jark!
> >
> > I can definitely appreciate the desire to have fewer configurations.
> >
> > Do you have a suggested alternative for platform providers to limit or
> > restrict the hints that Bonnie is talking about?
> >
> > As one possibility, maybe one configuration could be set to control all
> > hints.
> >
> > Cheers,
> >
> > Jim
> >
> > On Sat, Sep 9, 2023 at 6:16 AM Jark Wu <imj...@gmail.com> wrote:
> >
> > > I agree with Jing,
> > >
> > > My biggest concern is this makes the boundary of adding an option very
> > > unclear.
> > > It's not a strong reason to add a config just because of it doesn't
> > affect
> > > existing
> > > users. Does this mean that in the future we might add an option to
> > disable
> > > each feature?
> > >
> > > Flink already has a very long list of configurations [1][2] and this is
> > > very scary
> > > and not easy to use. We should try to remove the unnecessary
> > configuration
> > > from
> > > the list in Flink 2.0. However, from my perspective, adding this option
> > > makes us far
> > > away from this direction.
> > >
> > > Best,
> > > Jark
> > >
> > > [1]
> > >
> >
> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/config/
> > > [2]
> > >
> > >
> >
> https://nightlies.apache.org/flink/flink-docs-master/docs/deployment/config/
> > >
> > > On Sat, 9 Sept 2023 at 17:33, Jing Ge <j...@ververica.com.invalid>
> > wrote:
> > >
> > > > Hi,
> > > >
> > > > Thanks for bringing this to our attention. At the first glance, it
> > looks
> > > > reasonable to offer a new configuration to enable/disable SQL hints
> > > > globally. However, IMHO, it is not the right timing to do it now,
> > because
> > > > we should not only think as platform providers but also as end
> > users(the
> > > > number of end users are much bigger than platform providers):
> > > >
> > > > 1. Users don't need it because users have the choice to use hints or
> > not,
> > > > just like Jark pointed out. With this configuration, there will be a
> > > fight
> > > > between platform providers and users which will cause more confusions
> > and
> > > > conflicts. And users will probably win, IMHO, because they are the
> end
> > > > customers that use Flink to create business values.
> > > > 2. SQL hints could be considered as an additional feature for users
> to
> > > > control, to optimize the execution plan without touching the internal
> > > > logic, i.e. features for advanced use cases and i.e. don't use it if
> > you
> > > > don't understand it.
> > > > 3. Before the system is smart enough to take over(where we are now,
> > > > fortunately and unfortunately :-))), there should be a way for users
> to
> > > do
> > > > such tuning, even if it is a temporary phase from a
> > > > long-term's perspective, i.e. just because it is a temporary
> solution,
> > > does
> > > > not mean it is not necessary for now.
> > > > 4. What if users write wrong hints? Well, the code review process is
> > > > recommended. Someone who truly understands hints should double check
> it
> > > > before hints are merged to the master or submitted to the production
> > env.
> > > > Just like a common software development process.
> > > >
> > > > Just my two cents.
> > > >
> > > > Best regards,
> > > > Jing
> > > >
> > > > On Thu, Sep 7, 2023 at 10:02 PM Bonnie Arogyam Varghese
> > > > <bvargh...@confluent.io.invalid> wrote:
> > > >
> > > > > Hi Liu,
> > > > >  The default will be set to enabled which is the current behavior.
> > The
> > > > > option will allow users/platform providers to disable it if they
> want
> > > to.
> > > > >
> > > > > On Wed, Sep 6, 2023 at 6:39 PM liu ron <ron9....@gmail.com> wrote:
> > > > >
> > > > > > Hi, Boonie
> > > > > >
> > > > > > I'm with Jark on why disable hint is needed if it won't affect
> > > > security.
> > > > > If
> > > > > > users don't need to use hint, then they won't care about it and I
> > > don't
> > > > > > think it's going to be a nuisance. On top of that, Lookup Join
> Hint
> > > is
> > > > > very
> > > > > > useful for streaming jobs, and disabling the hint would result in
> > > users
> > > > > not
> > > > > > being able to use it.
> > > > > >
> > > > > > Best,
> > > > > > Ron
> > > > > >
> > > > > > Bonnie Arogyam Varghese <bvargh...@confluent.io.invalid>
> > > 于2023年9月6日周三
> > > > > > 23:52写道:
> > > > > >
> > > > > > > Hi Liu Ron,
> > > > > > >  To answer your question,
> > > > > > >    Security might not be the main reason for disabling this
> > option
> > > > but
> > > > > > > other arguments brought forward by Timo. Let me know if you
> have
> > > any
> > > > > > > further questions or concerns.
> > > > > > >
> > > > > > > On Tue, Sep 5, 2023 at 9:35 PM Bonnie Arogyam Varghese <
> > > > > > > bvargh...@confluent.io> wrote:
> > > > > > >
> > > > > > > > It looks like it will be nice to have a config to disable
> > hints.
> > > > Any
> > > > > > > other
> > > > > > > > thoughts/concerns before we can close this discussion?
> > > > > > > >
> > > > > > > > On Fri, Aug 18, 2023 at 7:43 AM Timo Walther <
> > twal...@apache.org
> > > >
> > > > > > wrote:
> > > > > > > >
> > > > > > > >>  > lots of the streaming SQL syntax are extensions of SQL
> > > standard
> > > > > > > >>
> > > > > > > >> That is true. But hints are kind of a special case because
> > they
> > > > are
> > > > > > not
> > > > > > > >> even "part of Flink SQL" that's why they are written in a
> > > comment
> > > > > > > syntax.
> > > > > > > >>
> > > > > > > >> Anyway, I feel hints could be sometimes confusing for users
> > > > because
> > > > > > most
> > > > > > > >> of them have no effect for streaming and long-term we could
> > also
> > > > set
> > > > > > > >> some hints via the CompiledPlan. And if you have multiple
> > teams,
> > > > > > > >> non-skilled users should not play around with hints and
> leave
> > > the
> > > > > > > >> decision to the system that might become smarter over time.
> > > > > > > >>
> > > > > > > >> Regards,
> > > > > > > >> Timo
> > > > > > > >>
> > > > > > > >>
> > > > > > > >> On 17.08.23 18:47, liu ron wrote:
> > > > > > > >> > Hi, Bonnie
> > > > > > > >> >
> > > > > > > >> >> Options hints could be a security concern since users can
> > > > > override
> > > > > > > >> > settings.
> > > > > > > >> >
> > > > > > > >> > I think this still doesn't answer my question
> > > > > > > >> >
> > > > > > > >> > Best,
> > > > > > > >> > Ron
> > > > > > > >> >
> > > > > > > >> > Jark Wu <imj...@gmail.com> 于2023年8月17日周四 19:51写道:
> > > > > > > >> >
> > > > > > > >> >> Sorry, I still don't understand why we need to disable
> the
> > > > query
> > > > > > > hint.
> > > > > > > >> >> It doesn't have the security problems as options hint.
> > Bonnie
> > > > > said
> > > > > > it
> > > > > > > >> >> could affect performance, but that depends on users using
> > it
> > > > > > > >> explicitly.
> > > > > > > >> >> If there is any performance problem, users can remove the
> > > hint.
> > > > > > > >> >>
> > > > > > > >> >> If we want to disable query hint just because it's an
> > > extension
> > > > > to
> > > > > > > SQL
> > > > > > > >> >> standard.
> > > > > > > >> >> I'm afraid we have to introduce a bunch of configuration,
> > > > because
> > > > > > > lots
> > > > > > > >> of
> > > > > > > >> >> the streaming SQL syntax are extensions of SQL standard.
> > > > > > > >> >>
> > > > > > > >> >> Best,
> > > > > > > >> >> Jark
> > > > > > > >> >>
> > > > > > > >> >> On Thu, 17 Aug 2023 at 15:43, Timo Walther <
> > > twal...@apache.org
> > > > >
> > > > > > > wrote:
> > > > > > > >> >>
> > > > > > > >> >>> +1 for this proposal.
> > > > > > > >> >>>
> > > > > > > >> >>> Not every data team would like to enable hints. Also
> > because
> > > > > they
> > > > > > > are
> > > > > > > >> an
> > > > > > > >> >>> extension to the SQL standard. It might also be the case
> > > that
> > > > > > custom
> > > > > > > >> >>> rules would be overwritten otherwise. Setting hints
> could
> > > also
> > > > > be
> > > > > > > the
> > > > > > > >> >>> exclusive task of a DevOp team.
> > > > > > > >> >>>
> > > > > > > >> >>> Regards,
> > > > > > > >> >>> Timo
> > > > > > > >> >>>
> > > > > > > >> >>>
> > > > > > > >> >>> On 17.08.23 09:30, Konstantin Knauf wrote:
> > > > > > > >> >>>> Hi Bonnie,
> > > > > > > >> >>>>
> > > > > > > >> >>>> this makes sense to me, in particular, given that we
> > > already
> > > > > have
> > > > > > > >> this
> > > > > > > >> >>>> toggle for a different type of hints.
> > > > > > > >> >>>>
> > > > > > > >> >>>> Best,
> > > > > > > >> >>>>
> > > > > > > >> >>>> Konstantin
> > > > > > > >> >>>>
> > > > > > > >> >>>> Am Mi., 16. Aug. 2023 um 19:38 Uhr schrieb Bonnie
> Arogyam
> > > > > > Varghese
> > > > > > > >> >>>> <bvargh...@confluent.io.invalid>:
> > > > > > > >> >>>>
> > > > > > > >> >>>>> Hi Liu,
> > > > > > > >> >>>>>    Options hints could be a security concern since
> users
> > > can
> > > > > > > >> override
> > > > > > > >> >>>>> settings. However, query hints specifically could
> affect
> > > > > > > >> performance.
> > > > > > > >> >>>>> Since we have a config to disable Options hint, I'm
> > > > suggesting
> > > > > > we
> > > > > > > >> also
> > > > > > > >> >>> have
> > > > > > > >> >>>>> a config to disable Query hints.
> > > > > > > >> >>>>>
> > > > > > > >> >>>>> On Wed, Aug 16, 2023 at 9:41 AM liu ron <
> > > ron9....@gmail.com
> > > > >
> > > > > > > wrote:
> > > > > > > >> >>>>>
> > > > > > > >> >>>>>> Hi,
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>> Thanks for driving this proposal.
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>> Can you explain why you would need to disable query
> > hints
> > > > > > because
> > > > > > > >> of
> > > > > > > >> >>>>>> security issues? I don't really understand why query
> > > hints
> > > > > > > affects
> > > > > > > >> >>>>>> security.
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>> Best,
> > > > > > > >> >>>>>> Ron
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>> Bonnie Arogyam Varghese <bvargh...@confluent.io
> > .invalid>
> > > > > > > >> >> 于2023年8月16日周三
> > > > > > > >> >>>>>> 23:59写道:
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>>> Platform providers may want to disable hints
> > completely
> > > > for
> > > > > > > >> security
> > > > > > > >> >>>>>>> reasons.
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>> Currently, there is a configuration to disable
> OPTIONS
> > > > hint
> > > > > -
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>
> > > > > > > >> >>>
> > > > > > > >> >>
> > > > > > > >>
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/config/#table-dynamic-table-options-enabled
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>> However, there is no configuration available to
> > disable
> > > > > QUERY
> > > > > > > >> hints
> > > > > > > >> >> -
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>
> > > > > > > >> >>>
> > > > > > > >> >>
> > > > > > > >>
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/dev/table/sql/queries/hints/#query-hints
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>> The proposal is to add a new configuration:
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>> Name: table.query-options.enabled
> > > > > > > >> >>>>>>> Description: Enable or disable the QUERY hint, if
> > > > disabled,
> > > > > an
> > > > > > > >> >>>>>>> exception would be thrown if any QUERY hints are
> > > specified
> > > > > > > >> >>>>>>> Note: The default value will be set to true.
> > > > > > > >> >>>>>>>
> > > > > > > >> >>>>>>
> > > > > > > >> >>>>>
> > > > > > > >> >>>>
> > > > > > > >> >>>>
> > > > > > > >> >>>
> > > > > > > >> >>>
> > > > > > > >> >>
> > > > > > > >> >
> > > > > > > >>
> > > > > > > >>
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to