Hashan Gayasri Udugahapattuwa created KAFKA-7079:
----------------------------------------------------

             Summary: ValueTransformer#transform does not pass the key
                 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


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
(v7.6.3#76005)

Reply via email to