You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@kafka.apache.org by "Cyrus Vafadari (JIRA)" <ji...@apache.org> on 2019/08/04 01:58:00 UTC

[jira] [Updated] (KAFKA-8749) Connect SinkTask.put(...) to specify ArrayList in Signature

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

Cyrus Vafadari updated KAFKA-8749:
----------------------------------
    Description: 
 

[

Detailed in KIP-502

 

 

|https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]

The key class in a Sink Connector is the `SinkTask` implementation. The `SinkTask.put(...)` method delivers the records from the KafkaConsumer to the Connector-specific code through this entrypoint, and its current abstract class specifies:

public abstract void put(Collection<SinkRecord> records);

Usually, the implementer will use a for-each loop to iterate through the records one by one and act on them. There is only one caller, WorkerSinkTask which always passes an ArrayList.

There are two shortcomings with this signature:
 # The Connector implementation is not provide with any *ordering guarantees* of Records.
 # The decision values giving flexibility to the caller of the method over the implementer of the method.

  was:
Detailed in KIP-502

The key class in a Sink Connector is the `SinkTask` implementation. The `SinkTask.put(...)` method delivers the records from the KafkaConsumer to the Connector-specific code through this entrypoint, and its current abstract class specifies:

public abstract void put(Collection<SinkRecord> records);

Usually, the implementer will use a for-each loop to iterate through the records one by one and act on them. There is only one caller, WorkerSinkTask which always passes an ArrayList.

There are two shortcomings with this signature:
 # The Connector implementation is not provide with any *ordering guarantees* of Records.
 # The decision values giving flexibility to the caller of the method over the implementer of the method.


> Connect SinkTask.put(...) to specify ArrayList<SinkRecord> in Signature
> -----------------------------------------------------------------------
>
>                 Key: KAFKA-8749
>                 URL: https://issues.apache.org/jira/browse/KAFKA-8749
>             Project: Kafka
>          Issue Type: Improvement
>          Components: KafkaConnect
>            Reporter: Cyrus Vafadari
>            Priority: Major
>
>  
> [
> Detailed in KIP-502
>  
>  
> |https://cwiki.apache.org/confluence/display/KAFKA/KIP-502%3A+Connect+SinkTask.put%28...%29+to+specify+ArrayList%3CSinkRecord%3E+in+Signature]
> The key class in a Sink Connector is the `SinkTask` implementation. The `SinkTask.put(...)` method delivers the records from the KafkaConsumer to the Connector-specific code through this entrypoint, and its current abstract class specifies:
> public abstract void put(Collection<SinkRecord> records);
> Usually, the implementer will use a for-each loop to iterate through the records one by one and act on them. There is only one caller, WorkerSinkTask which always passes an ArrayList.
> There are two shortcomings with this signature:
>  # The Connector implementation is not provide with any *ordering guarantees* of Records.
>  # The decision values giving flexibility to the caller of the method over the implementer of the method.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)