[ 
https://issues.apache.org/jira/browse/KAFKA-7079?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias J. Sax resolved KAFKA-7079.
------------------------------------
    Resolution: Won't Fix

> ValueTransformerWithKeySupplier is not mentioned in the documentation
> ---------------------------------------------------------------------
>
>                 Key: KAFKA-7079
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7079
>             Project: Kafka
>          Issue Type: Bug
>          Components: streams
>    Affects Versions: 1.1.0
>         Environment: Fedora 27
>            Reporter: Hashan Gayasri Udugahapattuwa
>            Priority: Major
>
> ValueTransformer#transform does not pass the key
> KStream#transformValues(ValueTransformerWithKeySupplier ..... method is not 
> documented. It might lead to people to use workarounds or fall back to using 
> Transformer. This is very likely if the user is using a wrapper API (i.e: for 
> Scala) as the user would be checking the documentation more than the 
> available API functions in code.
>  
>  
>  
>  
> ----
> *Original issue (as it might be useful as a business requirement)*
> ValueTransformers' transform method doesn't pass the key to user-code. 
> Reporting this as a bug since it currently requires workarounds.
> Context:
> I'm currently in the process of converting two stateful "*aggregate*" DSL 
> operations to the Processor API since the state of those operations are 
> relatively large and takes 99% + of CPU time (when profiled) for serializing 
> and deserializing them via Kryo. 
> Since DSL aggregations use state stores of [Bytes, Array[Byte]]] even when 
> using the in-memory state store, it seems like the only way to reduce the 
> serialization/deserialization overhead is to convert heavy aggregates to 
> *transform*s.
> In my case, *ValueTransformer* seems to be the option. However, since 
> ValueTransformers' _transform_ method only exposes the _value_, I'd either 
> have to pre-process and add the key to the value or use *Transformer* instead 
> (which is not my intent).
>  
> As internal _*InternalValueTransformerWithKey*_ already has the readOnlyKey, 
> it seems like a good idea to pass the key to the transform method as well, 
> esp since in a stateful transformation, generally the state store has to be 
> queried by the key.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to