Read the above updates and the KIP's scope. Makes sense to me. +1 still
counts :)

On Wed, Jan 13, 2021 at 2:04 PM Sophie Blee-Goldman <sop...@confluent.io>
wrote:

> That sounds good to me. Thanks for reviving this
>
> Sophie
>
> On Wed, Jan 13, 2021 at 7:47 AM Leah Thomas <ltho...@confluent.io> wrote:
>
> > Hey all,
> >
> > Bringing this back up for discussion.
> >
> > It seems like the next steps are to:
> > 1. rename the config "window.size.ms"
> > 2. ensure that users set window size EITHER through the config OR through
> > the constructor. On this note, it may make sense to remove the default
> for
> > the `window.size.ms` config, so that there won't be a fall back if the
> > window size isn't set in either spot. WDYT? This could also address the
> > issue of multiple window sizes within a streams app.
> >
> > I see what Sophie is saying about the `default.windowed.key.serde.inner`
> > config, but I do think deprecating and moving those configs would
> require a
> > larger discussion. I'm open to looping them into this KIP if we feel like
> > it's vital (or incredibly convenient with low cost to users), but my
> > initial reaction is to leave that out for now and work within the current
> > set-up for window size.
> >
> > Thanks for all the comments so far,
> > Leah
> >
> > On Tue, Sep 29, 2020 at 10:44 PM Sophie Blee-Goldman <
> sop...@confluent.io>
> > wrote:
> >
> > > There are two cases where you need to specify the window size --
> directly
> > > using a
> > > Consumer (eg the console consumer) or reading as an input topic within
> > > Streams.
> > > We need a config for the first case, since you can't pass a
> Deserializer
> > > object to the
> > > console consumer. In the Streams case, the reverse is true, and you
> have
> > to
> > > pass in
> > > an actual Serde object.
> > >
> > > Imo we should keep these two cases separate and not use the config for
> > the
> > > Streams
> > > case at all. But that's hard to enforce (we'd have to strip the config
> > out
> > > of the user's
> > > StreamsConfig if they tried to use it within Streams, for example) and
> it
> > > also puts us
> > > in an awkward position due to the  default.windowed.inner.serde.class
> > > configs. If
> > > they can specify the inner serde class through their Streams app
> config,
> > > they
> > > should be able to specify the window size through config as well.
> > Otherwise
> > > we
> > > either force a mix-and-match as Matthias described, or you just always
> > have
> > > to
> > > specify both the inner class and the window size in the constructor, at
> > > which
> > > point, why even have the default.windowed.inner.serde.class config at
> > all?
> > >
> > > ...
> > > that's not a rhetorical question, actually. Personally I do think we
> > should
> > > deprecate the default.windowed.serde.inner.class and replace it with
> > > separate
> > > windowed.serializer.inner.class/windowed.deserializer.inner.class
> > configs.
> > > This
> > > way it's immediately obvious that the configs are only for the
> > > Consumer/Producer,
> > > and you should construct your own TimeWindowedSerde with all the
> > necessary
> > > parameters for use in your Streams app.
> > >
> > > That might be too radical, and maybe the problem isn't worth the burden
> > of
> > > forcing users to change their code and replace the config with actual
> > Serde
> > > objects. But it should be an easy change to make, and if it isn't,
> that's
> > > probably a good sign that you're using the serde incorrectly somewhere.
> > >
> > > If we don't deprecate the default.windowed.serde.inner.class, then it's
> > > less clear
> > > to me how to proceed. The only really consistent thing to do seems to
> be
> > to
> > > name and position the new window size config as a default config and
> > allow
> > > it to be used similar to the default inner class configs. Which, as
> > > established
> > > throughout this discussion, seems very very wrong
> > >
> > > So yes, I think we should just stick with the original name
> > window.size.ms
> > > .
> > > Or
> > > better yet, call it windowed.deserializer.window.size.ms and name the
> > > default.windowed.serde.inner.class replacements
> > > windowed.deserializer.inner.class and windowed.serializer.inner.class
> > >
> > > On Tue, Sep 8, 2020 at 2:07 PM Matthias J. Sax <mj...@apache.org>
> wrote:
> > >
> > > > From my understanding, the KIP aims for the case when a user does not
> > > > control the code, eg, when using the command line consumer (or
> similar
> > > > tools).
> > > >
> > > > If the user writes code, we should always encourage her to
> instantiate
> > > > the deserializer explicitly and not relying on reflection+config.
> > > >
> > > > I also don't think that the `default` prefix does make sense, as it
> > > > indicates that there might be a non-default. However, IMHO, we should
> > > > not allow "overwrite semantics" but rather throw an exception if the
> > > > config is set and a window size is provided via the constructor. We
> > > > should not allow to mix-and-match both and should stick to a strict
> > > > either-or pattern.
> > > >
> > > >
> > > > -Matthias
> > > >
> > > > On 9/8/20 11:52 AM, Guozhang Wang wrote:
> > > > > Hi Sophie,
> > > > >
> > > > > Seems I do have some mis-understanding of the KIP's motivation here
> > :)
> > > > Just
> > > > > for clarification my reasoning is that:
> > > > >
> > > > > 1) today Streams itself never uses a windowed deserializer itself
> > since
> > > > its
> > > > > built-in operators only need the serializer and users do not need
> to
> > > > > override it, plus standby / restore active tasks would just copy
> the
> > > > bytes
> > > > > directly. So this KIP's motivation is not for Stream's own code
> > > anyways.
> > > > >
> > > > > 2) It is only when user specified serde is missing the window size,
> > > which
> > > > > is either when a) one is trying to read a source topic as windowed
> > > > records
> > > > > in Streams, this is a big blocker for KIP-300, and when b) one is
> > > trying
> > > > to
> > > > > read a topic as windowed records in Consumer, we would have issues
> if
> > > > users
> > > > > fail to use the appropriate serde constructs.
> > > > >
> > > > > I thought the main motivation of this KIP is for 2.a), in which we
> > > would
> > > > > just encourage the users to use the right constructor with the
> window
> > > > size
> > > > > by deprecating the other constructs. But I'm not sure how this
> would
> > > help
> > > > > with 2.b) since the proposal is on adding to StreamsConfig. If it
> is
> > > the
> > > > > case, then I agree that probably we can just not add an extra
> config
> > > but
> > > > > just deprecating the constructs.
> > > > >
> > > > >
> > > > > Guozhang
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Tue, Sep 8, 2020 at 10:50 AM Sophie Blee-Goldman <
> > > sop...@confluent.io
> > > > >
> > > > > wrote:
> > > > >
> > > > >> Hey Guozhang & Leah,
> > > > >>
> > > > >> I want to push back a bit on the assumption that we would fall
> back
> > on
> > > > this
> > > > >> config
> > > > >> in the case of an unspecified window size in a Streams serde. I
> > don't
> > > > think
> > > > >> it should
> > > > >> be a default at all, either in name or in effect. To borrow the
> > > > rhetorical
> > > > >> question that
> > > > >> John raised earlier: what is the default window size of an
> > > application?
> > > > >>
> > > > >> Personally, I agree that that doesn't make much sense. Sure, if
> you
> > > only
> > > > >> have a single
> > > > >> windowed operation in your app then you could just specify the
> > window
> > > > size
> > > > >> by config,
> > > > >> but how is that any more ergonomic than specifying the window size
> > in
> > > > the
> > > > >> Serde's
> > > > >> constructor? If anything, it seems worse to put physical and
> mental
> > > > >> distance between
> > > > >> the specification and the actual usage of such parameters. What if
> > you
> > > > add
> > > > >> another
> > > > >> windowed operation later, with a different size, and forget to
> > specify
> > > > the
> > > > >> new size in
> > > > >> the new Serde? Or what if you never specify a default window size
> > > > config at
> > > > >> all and
> > > > >> accidentally end up using the default config value of
> > Long.MAX_VALUE?
> > > > >> Avoiding this
> > > > >> possibility was/is one of the main motivations of this KIP, and
> the
> > > > whole
> > > > >> point of
> > > > >> deprecating the TimeWindowedSerde(innerClass) constructor.
> > > > >>
> > > > >> I actually would have advocated to remove this config entirely,
> but
> > as
> > > > John
> > > > >> pointed
> > > > >> out, we still need it to configure things like the console
> consumer
> > > > >>
> > > > >> On Tue, Sep 8, 2020 at 10:40 AM Leah Thomas <ltho...@confluent.io
> >
> > > > wrote:
> > > > >>
> > > > >>> Hi Guozhang,
> > > > >>>
> > > > >>> Yes, the config would read them as a single window size. I think
> > this
> > > > >>> relates to John's comments about having variably sized windows,
> > which
> > > > >> this
> > > > >>> config doesn't handle. I like the name change and updated the
> wiki
> > to
> > > > >>> reflect that, and to clarify that the default value will still be
> > > > >>> Long.MAX_VALUE.
> > > > >>>
> > > > >>> Thanks for your feedback!
> > > > >>> Leah
> > > > >>>
> > > > >>> On Tue, Sep 8, 2020 at 11:54 AM Guozhang Wang <
> wangg...@gmail.com>
> > > > >> wrote:
> > > > >>>
> > > > >>>> Hello Leah,
> > > > >>>>
> > > > >>>> Thanks for initiating this. I just have one minor clarification
> > > > >> question
> > > > >>>> here: the config "window.size.ms" seems to be used as the
> default
> > > > >> window
> > > > >>>> size when reading from a topic that represents windowed records
> > > right?
> > > > >>> I.e.
> > > > >>>> if there are multiple topics that represent windowed records but
> > > their
> > > > >>>> window sizes are different, with this config we can only read
> them
> > > > >> with a
> > > > >>>> single window size? If yes, could we rename the config as "
> > > > >>>> default.window.size.ms" and make that clear in the description
> as
> > > > >> well?
> > > > >>>> Also we'd better also include its default value which I think
> > would
> > > > >> still
> > > > >>>> be MAX_VALUE for compatibility.
> > > > >>>>
> > > > >>>>
> > > > >>>> Guozhang
> > > > >>>>
> > > > >>>>
> > > > >>>> On Tue, Sep 8, 2020 at 9:38 AM Leah Thomas <
> ltho...@confluent.io>
> > > > >> wrote:
> > > > >>>>
> > > > >>>>> Hey all,
> > > > >>>>>
> > > > >>>>> We should be good to wrap up voting now that the discussion has
> > > been
> > > > >>>>> resolved.
> > > > >>>>>
> > > > >>>>> Cheers,
> > > > >>>>> Leah
> > > > >>>>>
> > > > >>>>> On Wed, Sep 2, 2020 at 7:23 PM Matthias J. Sax <
> mj...@apache.org
> > >
> > > > >>> wrote:
> > > > >>>>>
> > > > >>>>>> +1 (binding)
> > > > >>>>>>
> > > > >>>>>> On 8/26/20 8:02 AM, John Roesler wrote:
> > > > >>>>>>> Hi all,
> > > > >>>>>>>
> > > > >>>>>>> I've just sent a new message to the DISCUSS thread. We
> > > > >>>>>>> forgot to include the Scala API in the proposal.
> > > > >>>>>>>
> > > > >>>>>>> Thanks,
> > > > >>>>>>> -John
> > > > >>>>>>>
> > > > >>>>>>> On Mon, 2020-08-24 at 18:00 -0700, Sophie Blee-Goldman
> > > > >>>>>>> wrote:
> > > > >>>>>>>> Thanks for the KIP! +1 (non-binding)
> > > > >>>>>>>>
> > > > >>>>>>>> Sophie
> > > > >>>>>>>>
> > > > >>>>>>>> On Mon, Aug 24, 2020 at 5:06 PM John Roesler <
> > > > >> vvcep...@apache.org
> > > > >>>>
> > > > >>>>>> wrote:
> > > > >>>>>>>>
> > > > >>>>>>>>> Thanks Leah,
> > > > >>>>>>>>> I’m +1 (binding)
> > > > >>>>>>>>>
> > > > >>>>>>>>> -John
> > > > >>>>>>>>>
> > > > >>>>>>>>> On Mon, Aug 24, 2020, at 16:54, Leah Thomas wrote:
> > > > >>>>>>>>>> Hi everyone,
> > > > >>>>>>>>>>
> > > > >>>>>>>>>> I'd like to kick-off the vote for KIP-659: Improve
> > > > >>>>>>>>>> TimeWindowedDeserializer
> > > > >>>>>>>>>> and TimeWindowedSerde to handle window size.
> > > > >>>>>>>>>>
> > > > >>>>>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > > >>>>
> > > > >>>
> > > > >>
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-659%3A+Improve+TimeWindowedDeserializer+and+TimeWindowedSerde+to+handle+window+size
> > > > >>>>>>>>>> Thanks,
> > > > >>>>>>>>>> Leah
> > > > >>>>>>>>>>
> > > > >>>>>>>
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > > >>>>
> > > > >>>>
> > > > >>>> --
> > > > >>>> -- Guozhang
> > > > >>>>
> > > > >>>
> > > > >>
> > > > >
> > > > >
> > > >
> > > >
> > >
> >
>


-- 
-- Guozhang

Reply via email to