[ 
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)

Reply via email to