Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-18 Thread Bill Bejeck
Since we seem to have a consensus with the updated KIP, I'll start a re-vote thread. On Tue, Sep 17, 2019 at 9:51 PM John Roesler wrote: > Hi Bill, > > For the record, the current proposal looks good to me also. > > Thanks, > -John > > On Tue, Sep 17, 2019 at 5:06 PM Matthias J. Sax > wrote: >

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread John Roesler
Hi Bill, For the record, the current proposal looks good to me also. Thanks, -John On Tue, Sep 17, 2019 at 5:06 PM Matthias J. Sax wrote: > > > Just to clarify I'll update `as(StoreSupplier, StoreSupplier)` to > > `with(..., ...)` and change the class name from `StreamJoined` to > > `StreamJoin

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Matthias J. Sax
> Just to clarify I'll update `as(StoreSupplier, StoreSupplier)` to > `with(..., ...)` and change the class name from `StreamJoined` to > `StreamJoin` Thanks Bill. SGTM. -Matthias On 9/17/19 4:52 PM, aishwarya kumar wrote: > Hi Bill, > > Thanks for clarifying, and the KIP looks great!! > >

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread aishwarya kumar
Hi Bill, Thanks for clarifying, and the KIP looks great!! Best regards, Aishwarya On Tue, Sep 17, 2019, 6:16 PM Bill Bejeck wrote: > Hi Aishwarya, > > On Tue, Sep 17, 2019 at 1:41 PM aishwarya kumar > wrote: > > > Will this be applicable to Kstream-Ktable joins as well? Or do users > always >

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Bill Bejeck
Hi Aishwarya, On Tue, Sep 17, 2019 at 1:41 PM aishwarya kumar wrote: > Will this be applicable to Kstream-Ktable joins as well? Or do users always > materialize these joins explicitly? > No, this change applies to KStream-KStream joins only. With KStream-KTable joins KafkaStreams has materiali

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Bill Bejeck
Just to clarify I'll update `as(StoreSupplier, StoreSupplier)` to `with(..., ...)` and change the class name from `StreamJoined` to `StreamJoin` -Bill On Tue, Sep 17, 2019 at 2:09 PM Bill Bejeck wrote: > Thanks for the comments, Matthias. > > I like both suggestions regarding the names and I'll

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Bill Bejeck
Thanks for the comments, Matthias. I like both suggestions regarding the names and I'll update the KIP accordingly. On Tue, Sep 17, 2019 at 11:22 AM Matthias J. Sax wrote: > Thanks Bill! > > Using a new configuration object was suggested by John in the original > DISCUSS thread already. We reje

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread aishwarya kumar
Will this be applicable to Kstream-Ktable joins as well? Or do users always materialize these joins explicitly? I'm not sure if its even necessary (or makes sense), just trying to understand why the change is applicable to Kstream joins only? Best, Aishwarya On Tue, Sep 17, 2019 at 4:05 PM Bill B

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Bill Bejeck
Guozhang, Thanks for the comments. Yes, you are correct in your assessment regarding names, *if* the users provide their own StoreSuppliers When constructing as StoreSupplier, the name can't be null, and additionally, there is no way to update the name. Further downstream, the underlying StateSt

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Matthias J. Sax
Thanks Bill! Using a new configuration object was suggested by John in the original DISCUSS thread already. We rejected it because we wanted to avoid a new configuration class. However, given your analysis, it seems it's actually the right choice to introduce a new configuration class. Hence, ove

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Guozhang Wang
Hello Bill, Thanks for the updated KIP. I made a pass on the StreamJoined section. Just a quick question from user's perspective: if a user wants to provide a customized store-supplier, she is forced to also provide a name via the store-supplier. So there's no way to say "I want to provide my own

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-17 Thread Bill Bejeck
Bumping this discussion as we need to re-vote before the KIP deadline. On Fri, Sep 13, 2019 at 10:29 AM Bill Bejeck wrote: > Hi All, > > While working on the implementation of KIP-479, some issues came to light > that the KIP as written won't work. I have updated the KIP with a solution > I bel

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-09-13 Thread Bill Bejeck
Hi All, While working on the implementation of KIP-479, some issues came to light that the KIP as written won't work. I have updated the KIP with a solution I believe will solve the original problem as well as address the impediment to the initial approach. This update is a significant change, s

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-07-17 Thread Guozhang Wang
Hi Bill, thanks for your explanations. I'm on board with your decision too. Guozhang On Wed, Jul 17, 2019 at 10:20 AM Bill Bejeck wrote: > Thanks for the response, John. > > > If I can offer my thoughts, it seems better to just document on the > > Stream join javadoc for the Materialized param

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-07-17 Thread Bill Bejeck
Thanks for the response, John. > If I can offer my thoughts, it seems better to just document on the > Stream join javadoc for the Materialized parameter that it will not > make the join result queriable. I'm not opposed to the queriable flag > in general, but introducing it is a much larger consi

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-07-16 Thread John Roesler
Hi Bill, Thanks for driving this KIP toward a conclusion. I'm on board with your decision. You didn't mention whether you're still proposing to add the "queriable" flag to the Materialized config object, or just document that a Stream join is never queriable. Both options have come up earlier in

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-07-11 Thread Bill Bejeck
Thanks all for the great discussion so far. Everyone has made excellent points, and I appreciate the detail everyone has put into their arguments. However, after carefully evaluating all the points made so far, creating an overload with Materialized is still my #1 option. My reasoning for saying

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-27 Thread Matthias J. Sax
Thanks for the KIP Bill! Great discussion to far. About John's idea about querying upstream stores and don't materialize a store: I agree with Bill that this seems to be an orthogonal question, and it might be better to treat it as an independent optimization and exclude from this KIP. > What sh

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-27 Thread Guozhang Wang
Hi John, I actually feels better about a new interface but I'm not sure if we would need the full configuration of store / log / cache, now or in the future ever for stream-stream join. Right now I feel that 1) we want to improve our implementation of stream-stream join, and potentially also allo

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-24 Thread John Roesler
Thanks Guozhang, Yep. Maybe we can consider just exactly what the join needs: > the WindowStore itself is fine, if overly broad, > since the only two methods we need are `window.put(key, value, > context().timestamp())` and `WindowStoreIterator iter = > window.fetch(key, timeFrom, timeTo)`. One

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-24 Thread Guozhang Wang
Hello John, My main concern is exactly the first point at the bottom of your analysis here: "* configure the bytes store". I'm not sure if using a window bytes store would be ideal for stream-stream windowed join; e.g. we could consider two dimensional list sorted by timestamps and then by keys to

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-24 Thread John Roesler
Hey Guozhang and Bill, For what it's worth, I agree with you both! I think it might help the discussion to look concretely at what Materialized does: * set a WindowBytesStoreSupplier * set a name * set the key/value serdes * disable/enable/configure change-logging * disable/enable caching * confi

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-23 Thread Guozhang Wang
Hi Bill, I think by giving a Materialized param into stream-stream join, it's okay (though still ideal) to say "we still would not expose the store for queries", but it would sound a bit awkward to say "we would also ignore whatever the passed in store supplier but just use our default ones" -- ag

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-22 Thread Bill Bejeck
Thanks for the comments John and Guozhang, I'll address each one of your comments in turn. John, > I'm wondering about a missing quadrant from the truth table involving > whether a Materialized is stored or not and querying is > enabled/disabled... What should be the behavior if there is no store

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-20 Thread Guozhang Wang
Hello Bill, Thanks for the KIP. Glad to see that we can likely shooting two birds with one stone. I have some concerns though about those "two birds" themselves: 1. About not breaking compatibility of stream-stream join materialized stores: I think this is a valid issue to tackle, but after think

Re: [DISCUSS] KIP-479: Add Materialized to Join

2019-06-19 Thread John Roesler
Hi Bill, Thanks for the KIP! Awesome job catching this unexpected consequence of the prior KIPs before it was released. The proposal looks good to me. On top of just fixing the problem, it seems to address two other pain points: * that naming a state store automatically causes it to become queria

[DISCUSS] KIP-479: Add Materialized to Join

2019-06-18 Thread Bill Bejeck
All, I'd like to start a discussion for adding a Materialized configuration object to KStream.join for naming state stores involved in joins. https://cwiki.apache.org/confluence/display/KAFKA/KIP-479%3A+Add+Materialized+to+Join Your comments and suggestions are welcome. Thanks, Bill