You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Fokko Driesprong (JIRA)" <ji...@apache.org> on 2019/04/26 08:08:00 UTC

[jira] [Updated] (AVRO-2247) Improve Java reading performance with a new reader

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

Fokko Driesprong updated AVRO-2247:
-----------------------------------
    Fix Version/s:     (was: 1.9.0)
                   1.10.0

> Improve Java reading performance with a new reader
> --------------------------------------------------
>
>                 Key: AVRO-2247
>                 URL: https://issues.apache.org/jira/browse/AVRO-2247
>             Project: Apache Avro
>          Issue Type: Improvement
>          Components: java
>            Reporter: Martin Jubelgas
>            Priority: Major
>             Fix For: 1.10.0
>
>         Attachments: Perf-Comparison.md
>
>
> Complementary to AVRO-2090, I have been working on decoding of Avro objects in Java and am suggesting a new implementation of a DatumReader that improves read performance for both generic and specific records by approximately 20% (and even more in cases of nested objects with defaults, a case I encounter a lot in practical use).
> Key concept is to create a detailed execution plan once at DatumReader. This execution plan contains all required defaulting/lookup values so they need not be looked up during object traversal while reading.
> The reader implementation can be enabled and disabled per GenericData instance. The system default is set via the system variable "org.apache.avro.fastread" (defaults to "false").
> Attached a performance comparison of the existing implementation with the proposed one. Will open a pull request with respective code in a bit (not including interoperability with the optimizations of AVRO-2090 yet). Please let me know your opinion of whether this is worth pursuing further.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)