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)