Hey Mattihas,

I have addressed the comments in KIP. Feel free to take another look.

Also you are right, those are implementation details that we could discuss in 
diff 😊

Boyang

________________________________
From: Matthias J. Sax <matth...@confluent.io>
Sent: Saturday, January 19, 2019 3:16 AM
To: dev@kafka.apache.org
Subject: Re: [DISCUSS] KIP-300: Add Windowed KTable API in StreamsBuilder

Thank Boyang!

>> I think it should be good to just extend ConsumedInternal and 
>> MaterializedInternal with window size, and keep
>> external API clean. Just so you know it would be even more messy for 
>> internal implementation if we don't carry
>> the window size around within existing data struct.

I cannot follow here. But because this is internal stuff anyway, I would
prefer to discuss this on the PR instead of the mailing list.


-Matthias

On 1/18/19 10:58 AM, Boyang Chen wrote:
> Hey Matthias,
>
> thanks a lot for the comments!
>
> It seems that `windowSize` is a mandatory argument for windowed-tables,
> thus all overload should have the first two parameters being `String
> topic` and `Duration windowSize`.
> Yep, that sounds good to me.
>
> For session-tables, there should be no `windowSize` parameter because
> each session can have a different size and as a matter of fact, both the
> window start and window end timestamp are contained in the key anyway
> for this reason. (This is different to time windows as the KIP mentions.)
> Good suggestion, I think we should be able to skip the windowsize for session 
> store.
>
> Thus, I don't think that there is any need to extend `Consumed` or
> `Materialized` -- in contrast, extending both as suggested would result
> in bad API, because those new methods would be available for
> key-value-tables, too.
> I think it should be good to just extend ConsumedInternal and 
> MaterializedInternal with window size, and keep
> external API clean. Just so you know it would be even more messy for internal 
> implementation if we don't carry
> the window size around within existing data struct.
>
> About generic types: why is `windowedTable()` using `Consumers<K,V>`
> while `sessionTable` is using `Consumed<Windowed<K,V>>`? The KIP
> mentions that we can wrap provided key-serdes automatically with
> corresponding window serdes. Thus, it seems the correct type should be `K`?
> Yes that's a typo, and I already fixed it.
>
> I will let you know when the KIP updates are done.
>
> Best,
> Boyang
> ________________________________
> From: Matthias J. Sax <matth...@confluent.io>
> Sent: Thursday, January 17, 2019 7:52 AM
> To: dev@kafka.apache.org
> Subject: Re: [DISCUSS] KIP-300: Add Windowed KTable API in StreamsBuilder
>
> Couple of follow up comment on the KIP:
>
> It seems that `windowSize` is a mandatory argument for windowed-tables,
> thus all overload should have the first two parameters being `String
> topic` and `Duration windowSize`.
>
> For session-tables, there should be no `windowSize` parameter because
> each session can have a different size and as a matter of fact, both the
> window start and window end timestamp are contained in the key anyway
> for this reason. (This is different to time windows as the KIP mentions.)
>
> Thus, I don't think that there is any need to extend `Consumed` or
> `Materialized` -- in contrast, extending both as suggested would result
> in bad API, because those new methods would be available for
> key-value-tables, too.
>
> About generic types: why is `windowedTable()` using `Consumers<K,V>`
> while `sessionTable` is using `Consumed<Windowed<K,V>>`? The KIP
> mentions that we can wrap provided key-serdes automatically with
> corresponding window serdes. Thus, it seems the correct type should be `K`?
>
>
> -Matthias
>
>
> On 1/12/19 8:35 PM, Boyang Chen wrote:
>> Hey Matthias,
>>
>> thanks for taking a look! It would be great to see this pushed in 2.2. 
>> Depending on the tight timeline, I hope to at least get the KIP approved so 
>> that we don't see back and forth again as the KTable API has been constantly 
>> changing. I couldn't guarantee the implementation timeline until we agree on 
>> the updated high level APIs first. Does that make sense?
>>
>> Best,
>> Boyang
>> ________________________________
>> From: Matthias J. Sax <matth...@confluent.io>
>> Sent: Sunday, January 13, 2019 10:53 AM
>> To: dev@kafka.apache.org
>> Subject: Re: [DISCUSS] KIP-300: Add Windowed KTable API in StreamsBuilder
>>
>> Do you want to get this into 2.2 release? KIP deadline is 1/24, so quite
>> soon.
>>
>> Overall, the KIP is very useful. I can review again in more details if
>> you aim for 2.2 -- did you address all previous comment about the KIP
>> already?
>>
>>
>> -Matthias
>>
>>
>>
>> On 1/8/19 2:50 PM, Boyang Chen wrote:
>>> Hey folks,
>>>
>>> I would like to start a discussion thread on adding new time/session 
>>> windowed KTable APIs for KStream:
>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-300%3A+Add+Windowed+KTable+API+in+StreamsBuilder
>>>
>>> We have been working on this thread around 7 months ago, and it is 
>>> successfully applied in our internal stream applications that enable
>>> data sharing across multiple jobs. As a matter of fact, materialization of 
>>> windowed store is definitely a concrete use case that could unblock stream 
>>> users to
>>> build more complex modules.
>>>
>>> Let me know if the API changes makes sense.
>>>
>>> Best,
>>> Boyang
>>> KIP-300: Add Windowed KTable API in StreamsBuilder - Apache Kafka - Apache 
>>> Software 
>>> Foundation<https://cwiki.apache.org/confluence/display/KAFKA/KIP-300%3A+Add+Windowed+KTable+API+in+StreamsBuilder>
>>> We have an existing table() API in the StreamsBuilder which could 
>>> materialize a Kafka topic into a local state store called KTable. This 
>>> interface is very useful when we want to back up a Kafka topic to local 
>>> store. Sometimes we have certain requirement to materialize a windowed 
>>> topic (or changlog ...
>>> cwiki.apache.org
>>>
>>>
>>>
>>
>>
>
>

Reply via email to