Hi Guozhang,
Thanks for reading over my proposal!
Regarding the format, I'm just thinking if we can change the type of
"INT newDataLength" to UINT32?
Good idea, I've updated the KIP to reflect UINT32 since it makes clear the
value can never be less than zero.
`.equals` default implementation on Object is by reference, so if the
groupBy did not generate a new object, that may still pass. This means that
even if user does not implement the `.equals` function, if the same object
is returned then this feature would still be triggered, is that correct?
Correct, I've updated the KIP to call out this edge-case clearly as
follows:
Since the default `.equals` implementation for an `Object` is by
reference, if a user's `groupBy` returns the same reference for the key,
then the oldKey and the newKey will naturally `.equals` each other. This
will result in a single event being sent to the repartition topic. This
change in behaviour should be considered a "bug-fix" rather than a
"breaking change" as the semantics of the operation remain unchanged, the
only thing that changes for users is they no longer see transient
"inconsistent" states. In the worst case, users in this situation will
need to update any strict tests that check specifically for the presence of
transient "inconsistent" states.
What do you think?
Thanks,
Farooq
On 2023/02/07 18:02:24 Guozhang Wang wrote:
Hello Farooq,
Thanks for the very detailed proposal! I think this is a great idea.
Just a few thoughts:
1. I regret that we over-optimized the Changed serde format for
footprint while making it less extensible. It seems to me that a two
rolling bounce migration is unavoidable.. Regarding the format, I'm
just thinking if we can change the type of "INT newDataLength" to
UINT32?
2. `.equals` default implementation on Object is by reference, so if
the groupBy did not generate a new object, that may still pass. This
means that even if user does not implement the `.equals` function, if
the same object is returned then this feature would still be
triggered, is that correct?
Guozhang
On Mon, Feb 6, 2023 at 5:05 AM Fq Public <fq...@gmail.com> wrote:
Hi everyone,
I'd like to share a new KIP for discussion:
https://cwiki.apache.org/confluence/x/P5VbDg
This could be considered mostly as a "bug fix" but we wanted to raise
a KIP
for discussion because it involves changes to the serialization format
of
an internal topic which raises backward compatibility considerations.
Please take a look and let me know what you think.
Thanks,
Farooq