[ 
https://issues.apache.org/jira/browse/KAFKA-9649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17181472#comment-17181472
 ] 

Leah Thomas edited comment on KAFKA-9649 at 8/20/20, 10:24 PM:
---------------------------------------------------------------

Hey Sören,

I started a KIP to take care of this. Would you be able to elaborate on where 
the runtime issues are coming from? Is it because the default value is still 
Long.INT_MAX from the serde you initialize in your app? I proposed adding a 
consumer config for windows.size.ms, so if the issue comes when the consumer 
creates the deserializer, this config might be able to take care of the window 
size without it being passed in to the serde.

Thanks!

Leah


was (Author: lthomas):
Hey Sören,

I started a KIP to take care of this. Would you be able to elaborate on where 
the runtime issues are coming from? Is it because the default value is still 
Long.INT_MAX from the serde you initialize in your app?

Thanks!

Leah

> Remove/Warn on use of TimeWindowedSerde with no specified window size
> ---------------------------------------------------------------------
>
>                 Key: KAFKA-9649
>                 URL: https://issues.apache.org/jira/browse/KAFKA-9649
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: Sören Henning
>            Priority: Major
>
> The API of the 
> [{{TimeWindowedSerde}}|https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/kstream/WindowedSerdes.java]
>  promotes its construction without specifying a window size:
> {noformat}
> public TimeWindowedSerde(final Serde<T> inner)
> {noformat}
> While code using this constructor looks absolutely clean, it leads to fatal 
> errors at runtime, which turned out to be very hard to discover.
> The reason for these error can be found in the construction of the 
> [{{TimeWindowedDeserializer}}|https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/kstream/TimeWindowedDeserializer.java],
>  which is created via:
> {noformat}
> // TODO: fix this part as last bits of KAFKA-4468
> public TimeWindowedDeserializer(final Deserializer<T> inner) {
>   this(inner, Long.MAX_VALUE);
> }
> {noformat}
> The TODO comment suggests that this issue is (or at least was) already known.
> We suggest to either remove the {{TimeWindowedSerde(final Serde<T> inner)}} 
> constructor or at least to warn when using it (if required for backwards 
> compatiblity). The ideal solution of course would be to get the window size 
> from some externally provided context. However, I expect this to be difficult 
> to realize. Same applies also the {{TimeWindowedDeserializer(final 
> Deserializer<T> inner)}} constructor.
> A further minor suggestion in this context: As now most Kafka Streams time 
> declarations use {{Duration}} s instead of long-encoded milliseconds, I 
> suggest to allow specifying window sizes with a {{Duration}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to