Thank you for the feedback. > Not sure if this is the right phrasing?
You are right. I adjusted the phrasing accordingly. Given your description of the current behavior, do I understand correctly that the current documentation for the left join KStream-GlobalKtable is out of date? https://github.com/apache/kafka/blob/9318b591d7a57b9db1e7519986d78f0402cd5b5e/streams/src/main/java/org/apache/kafka/streams/kstream/KStream.java#L2948C7-L2948C7 > I would remove this from the KIP I agree,Removed. Plus, relevant doc links added. > I think the way it's phrased is good. [...] We can cover details on the PR. Great. Yes, in general, I hope everybody agrees that we shouldn't add more details to this KIP On Thu, 10 Aug 2023 at 00:16, Matthias J. Sax <mj...@apache.org> wrote: > Thanks for the KIP. > > > left join KStream-GlobalTable: no longer drop left records with null-key > and call KeyValueMapper with 'null' for left key. The case where > KeyValueMapper returns null is already handled in the current > implementation. > > Not sure if this is the right phrasing? In the end, even now, the stream > input record key can be null (cf > https://issues.apache.org/jira/browse/KAFKA-10277) -- a stream record is > only dropped if the `KeyValueMapper` returns `null` (note that the > key-extractor has no default implemenation but is a required argument) > -- this KIP would relax this case for left-join. > > > > In the pull request all relevant Javadocs will be updated with the > information on how to keep the old behavior for a given operator / method. > > I would remove this from the KIP -- I am also not sure if we should put > it into the JavaDoc? -- I agree that it should go into the upgrade docs > as well as "join section" in the docs: > > https://kafka.apache.org/35/documentation/streams/developer-guide/dsl-api.html#joining > > We also have > > https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Streams+Join+Semantics > that we should update. > > > > I added a remark about the repartition of null-key records. > > I think the way it's phrase is good. In the end, it's an optimization to > drop records upstream (instead of piping them through the topic and drop > the downstream), and thus we don't have to cover it in the KIP in > detail. In general, for aggregations we can still apply the > optimization, however, we need to be careful as we could also have two > downstream operators with a shared repartition topic: for this case, we > can only drop upstream if all downstream operator would drop null-key > records anyway. We can cover details on the PR. > > > > -Matthias > > > > On 8/9/23 5:39 AM, Florin Akermann wrote: > > Hi All, > > > > I added a remark about the repartition of null-key records. > > > https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Repartitionofnull-keyrecords > > > > Can we relax this constraint for any kind of repartitioning or should it > > only be relaxed in the context of left stream-table and left/outer > > stream-stream joins? > > > > Florin > > > > On Mon, 7 Aug 2023 at 13:23, Florin Akermann <florin.akerm...@gmail.com> > > wrote: > > > >> Hi Lucas, > >> > >> Thanks. I added the point about the upgrade guide as well. > >> > >> Florin > >> > >> On Mon, 7 Aug 2023 at 11:06, Lucas Brutschy <lbruts...@confluent.io > .invalid> > >> wrote: > >> > >>> Hi Florin, > >>> > >>> thanks for the KIP! This looks good to me. I agree that the precise > >>> Java doc wording doesn't have to be discussed as part of the KIP. > >>> > >>> I would also suggest to include an update to > >>> https://kafka.apache.org/documentation/streams/upgrade-guide > >>> > >>> Cheers, > >>> Lucas > >>> > >>> On Mon, Aug 7, 2023 at 10:51 AM Florin Akermann > >>> <florin.akerm...@gmail.com> wrote: > >>>> > >>>> Hi Both, > >>>> > >>>> Thanks. > >>>> I added remarks to account for this. > >>>> > >>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams#KIP962:RelaxnonnullkeyrequirementinKafkaStreams-Remarks > >>>> > >>>> In short, let's add a note in the Java docs? The exact wording of the > >>> note > >>>> can be scrutinized in the pull request? > >>>> > >>>> What do you think? > >>>> > >>>> > >>>> On Sun, 6 Aug 2023 at 19:41, Guozhang Wang < > guozhang.wang...@gmail.com> > >>>> wrote: > >>>> > >>>>> I'm just thinking we can try to encourage users to migrate from XX to > >>>>> XXWithKey in the docs, giving this as one good example that the > latter > >>>>> can help you distinguish different scenarios whereas the former > >>>>> cannot. > >>>>> > >>>>> On Fri, Aug 4, 2023 at 6:32 PM Matthias J. Sax <mj...@apache.org> > >>> wrote: > >>>>>> > >>>>>> Guozhang, > >>>>>> > >>>>>> thanks for pointing out ValueJoinerWithKey. In the end, it's just a > >>>>>> documentation change, ie, point out that the passed in key could be > >>>>>> `null` and similar? > >>>>>> > >>>>>> -Matthias > >>>>>> > >>>>>> > >>>>>> On 8/2/23 3:20 PM, Guozhang Wang wrote: > >>>>>>> Thanks Florin for the writeup, > >>>>>>> > >>>>>>> One quick thing I'd like to bring up is that in KIP-149 > >>>>>>> ( > >>>>> > >>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-149%3A+Enabling+key+access+in+ValueTransformer%2C+ValueMapper%2C+and+ValueJoiner > >>>>> ) > >>>>>>> we introduced ValueJoinerWithKey which is aimed to enhance > >>>>>>> ValueJoiner. It would have a benefit for this KIP such that > >>>>>>> implementers can distinguish "null-key" v.s. "not-null-key but > >>>>>>> null-value" scenarios. > >>>>>>> > >>>>>>> Hence I'd suggest we also include the semantic changes with > >>>>>>> ValueJoinerWithKey, which can help distinguish these two > >>> scenarios, > >>>>>>> and also document that if users apply ValueJoiner only, they may > >>> not > >>>>>>> have this benefit, and hence we suggest users to use the former. > >>>>>>> > >>>>>>> > >>>>>>> Guozhang > >>>>>>> > >>>>>>> On Mon, Jul 31, 2023 at 12:11 PM Florin Akermann > >>>>>>> <florin.akerm...@gmail.com> wrote: > >>>>>>>> > >>>>>>>> > >>>>> > >>> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-962%3A+Relax+non-null+key+requirement+in+Kafka+Streams > >>>>> > >>> > >> > > >