Hello Matthias,

Just to clarify the naming conflicts is between the newly added function
and the old functions that we want to deprecate / remove right? The
existing ones have different signatures with parameters so that they should
not have conflicts.

I was thinking about just make the change directly without deprecating
existing ones which would require users of 2.3 to make code changes -- this
code change looks reasonably straight-forward to me and not much worth
deferring to later when the deprecated ones are removed.

On the other hand, just deprecating "WindowIterator" without add new
functions seems not very useful for users either since it is only used as
an indicator but users cannot make code changes during this phase anyways,
so it is still a `one-cut` deal when we eventually remove the deprecated
ones and add the new one.

Hence I'm slightly inclining to trade compatibility and replace it with new
functions in one release, but if people have a good idea of the renaming
approach (I do not have a good one on top of my head :) I can also be
convinced that way.

Guozhang


On Mon, Mar 11, 2019 at 10:41 AM Matthias J. Sax <matth...@confluent.io>
wrote:

> I am open to change the return type to
>
> KeyValueIterator<Windowed<K>, V>
>
> However, this requires to rename
>
> #fetch(K key, long startTimestamp, long endTimestamp)
> #fetch(K key, Instant startTimestamp, Instant endTimestamp)
>
> to avoid naming conflicts.
>
> What new name would you suggest? The existing methods are called
> `fetch()`, `fetchAll()`, `all()`, `put()`.
>
> While I think it would be good to get fully aligned return types, I am
> not sure how we can get aligned method names (without renaming all of
> them...)? If we think it's worth to rename all to get this cleaned up, I
> am no opposed.
>
>
> Thoughts?
>
>
> -Matthias
>
>
> On 3/11/19 10:27 AM, Guozhang Wang wrote:
> > I was thinking about changing the return type even, to
> > `KeyValueIterator<Windowed<K>, V>` since it is confusing to users about
> the
> > key typed `Long` (Streams javadoc today did not explain it clearly
> either),
> > note it is not backward compatible at all.
> >
> > Personally I'd prefer to just deprecate the API and new new ones that
> > return `KeyValueIterator<Windowed<K>, V>` directly, but if most people
> felt
> > it is too intrusive for compatibility I can be convinced with
> > `KeyValueIterator<Long, V>` as well.
> >
> > Guozhang
> >
> > On Mon, Mar 11, 2019 at 10:17 AM Sophie Blee-Goldman <
> sop...@confluent.io>
> > wrote:
> >
> >> I remember thinking this while working on window stores, am definitely
> for
> >> it.
> >>
> >> On Mon, Mar 11, 2019 at 9:20 AM John Roesler <j...@confluent.io> wrote:
> >>
> >>> Sounds great to me. Thanks, Matthias!
> >>> -John
> >>>
> >>> On Sun, Mar 10, 2019 at 11:58 PM Matthias J. Sax <
> matth...@confluent.io>
> >>> wrote:
> >>>
> >>>> Hi,
> >>>>
> >>>> I would like to propose KIP-439 to deprecate interface
> >>>> `WindowStoreIterator`.
> >>>>
> >>>>
> >>>>
> >>>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-439%3A+Deprecate+Interface+WindowStoreIterator
> >>>>
> >>>> Looking forward to your feedback.
> >>>>
> >>>>
> >>>> -Matthias
> >>>>
> >>>>
> >>>
> >>
> >
> >
>
>

-- 
-- Guozhang

Reply via email to