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

Alex Leathwood updated NIFI-14314:
----------------------------------
    Description: 
In [NiFi-5213 |https://issues.apache.org/jira/browse/NIFI-5213]"Allow 
AvroReader to process files w embedded schema even when the access strategy is 
explicit schema" did so at the expense of [throwing and catching an 
IOException|https://github.com/apache/nifi/blob/cd25603157556d28a4bda961ae5e52d18ac71849/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/avro/AvroReaderWithExplicitSchema.java#L53]
 for each and every Kafka record without an embedded schema, even when the 
processor is correctly configured. 
In high-performance use cases we have observed up to 2/3 of the cpu time ot the 
respective worker thread being used for this check.
The exception originates for the kafka/avro client libraries and cannot easily 
be replaced with a lightweight implementation of Exception .

We propose to either drop this earlier improvement of user experience (PR 
available) )or to reimplement it so that the correct configuration is the 
"happy path" and only the incorrect configuration case be penalized with 
exceptions and ideally a warning.

  was:
In NiFi-5213 "Allow AvroReader to process files w embedded schema even when the 
access strategy is explicit schema" did so at the expense of [throwing and 
catching an 
IOException|https://github.com/apache/nifi/blob/cd25603157556d28a4bda961ae5e52d18ac71849/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/avro/AvroReaderWithExplicitSchema.java#L53]
 for each and every Kafka record without an embedded schema, even when the 
processor is correctly configured. 
In high-performance use cases we have observed up to 2/3 of the cpu time ot the 
respective worker thread being used for this check.
The exception originates for the kafka/avro client libraries and cannot easily 
be replaced with a lightweight implementation of Exception .


We propose to either drop this earlier improvement of user experience (PR 
available) )or to reimplement it so that the correct configuration is the 
"happy path" and only the incorrect configuration case be penalized with 
exceptions and ideally a warning.


> Improve Kafka3 client performance when reading Avro
> ---------------------------------------------------
>
>                 Key: NIFI-14314
>                 URL: https://issues.apache.org/jira/browse/NIFI-14314
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Extensions
>    Affects Versions: 2.2.0
>            Reporter: Alex Leathwood
>            Priority: Major
>              Labels: performance, pull-request-available
>
> In [NiFi-5213 |https://issues.apache.org/jira/browse/NIFI-5213]"Allow 
> AvroReader to process files w embedded schema even when the access strategy 
> is explicit schema" did so at the expense of [throwing and catching an 
> IOException|https://github.com/apache/nifi/blob/cd25603157556d28a4bda961ae5e52d18ac71849/nifi-extension-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/main/java/org/apache/nifi/avro/AvroReaderWithExplicitSchema.java#L53]
>  for each and every Kafka record without an embedded schema, even when the 
> processor is correctly configured. 
> In high-performance use cases we have observed up to 2/3 of the cpu time ot 
> the respective worker thread being used for this check.
> The exception originates for the kafka/avro client libraries and cannot 
> easily be replaced with a lightweight implementation of Exception .
> We propose to either drop this earlier improvement of user experience (PR 
> available) )or to reimplement it so that the correct configuration is the 
> "happy path" and only the incorrect configuration case be penalized with 
> exceptions and ideally a warning.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to