You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@kafka.apache.org by "Damian Guy (JIRA)" <ji...@apache.org> on 2016/06/14 12:22:01 UTC
[jira] [Updated] (KAFKA-3835) Streams is creating two
ProducerRecords for each send via RecordCollector
[ https://issues.apache.org/jira/browse/KAFKA-3835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Damian Guy updated KAFKA-3835:
------------------------------
Description:
The RecordCollector.send(..) method below, currently receives a ProducerRecord from its caller and then creates another one to forward on to its producer. The creation of 2 ProducerRecords should be removed.
{code}
public <K, V> void send(ProducerRecord<K, V> record, Serializer<K> keySerializer, Serializer<V> valueSerializer,
StreamPartitioner<K, V> partitioner)
{code}
We could replace the above method with
{code}
public <K, V> void send(K key,
V value,
String topic,
Integer partition,
Long timestamp,
Serializer<K> keySerializer,
Serializer<V> valueSerializer,
StreamPartitioner<K, V> partitioner)
{code}
This change should possibly also change StateChangeLogger to pass through the context.timestamp() of the original message.
was:
The RecordCollector.send(..) method below, currently receives a ProducerRecord from its caller and then creates another one to forward on to its producer. The creation of 2 ProducerRecords could be removed by having the calling code create the correct ProducerRecord, i.e, by serializing the key & value with the serializers and assigning the partition. The caller already has all of the information it needs
{code}
public <K, V> void send(ProducerRecord<K, V> record, Serializer<K> keySerializer, Serializer<V> valueSerializer,
StreamPartitioner<K, V> partitioner)
{code}
> Streams is creating two ProducerRecords for each send via RecordCollector
> -------------------------------------------------------------------------
>
> Key: KAFKA-3835
> URL: https://issues.apache.org/jira/browse/KAFKA-3835
> Project: Kafka
> Issue Type: Bug
> Components: streams
> Affects Versions: 0.10.0.0
> Reporter: Damian Guy
> Assignee: Guozhang Wang
> Priority: Minor
> Fix For: 0.10.1.0
>
>
> The RecordCollector.send(..) method below, currently receives a ProducerRecord from its caller and then creates another one to forward on to its producer. The creation of 2 ProducerRecords should be removed.
> {code}
> public <K, V> void send(ProducerRecord<K, V> record, Serializer<K> keySerializer, Serializer<V> valueSerializer,
> StreamPartitioner<K, V> partitioner)
> {code}
> We could replace the above method with
> {code}
> public <K, V> void send(K key,
> V value,
> String topic,
> Integer partition,
> Long timestamp,
> Serializer<K> keySerializer,
> Serializer<V> valueSerializer,
> StreamPartitioner<K, V> partitioner)
> {code}
> This change should possibly also change StateChangeLogger to pass through the context.timestamp() of the original message.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)