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

Raymie Stata updated AVRO-2090:
-------------------------------
    Description: 
New implementation for generation of code for SpecificRecord that improves 
decoding by over 10% and encoding over 30% (more improvements are on the way).  
This feature is behind a feature flag 
({{org.apache.avro.specific.use_custom_coders}}) and (for now) turned off by 
default.  See [Getting Started 
(Java)|https://avro.apache.org/docs/current/gettingstartedjava.html#Beta+feature:+Generating+faster+code]
 for instructions.

(A bit more info: Compared to GenericRecords, SpecificRecords offer type-safety 
plus the performance of traditional getters/setters/instance variables.  But 
these are only beneficial to Java code accessing those records.  
SpecificRecords inherit serialization and deserialization code from 
GenericRecords, which is dynamic and thus slow (in fact, benchmarks show that 
serialization and deserialization is _slower_ for SpecificRecord than for 
GenericRecord).  This patch extends record.vm to generate custom, 
higher-performance encoder and decoder functions for SpecificRecords.)


  was:
New implementation for generation of code for SpecificRecord that improves 
decoding by over 10% and encoding over 30% (more improvements are on the way).  
This feature is behind a feature flag 
({{org.apache.avro.specific.use_custom_coders}}) and (for now) turned off by 
default.  See [Getting Started 
(Java)|https://avro.apache.org/docs/current/gettingstartedjava.html#Beta+feature:+Generating
 faster+code] for instructions.

(A bit more info: Compared to GenericRecords, SpecificRecords offer type-safety 
plus the performance of traditional getters/setters/instance variables.  But 
these are only beneficial to Java code accessing those records.  
SpecificRecords inherit serialization and deserialization code from 
GenericRecords, which is dynamic and thus slow (in fact, benchmarks show that 
serialization and deserialization is _slower_ for SpecificRecord than for 
GenericRecord).  This patch extends record.vm to generate custom, 
higher-performance encoder and decoder functions for SpecificRecords.)



> Improve encode/decode time for SpecificRecord using code generation
> -------------------------------------------------------------------
>
>                 Key: AVRO-2090
>                 URL: https://issues.apache.org/jira/browse/AVRO-2090
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>            Reporter: Raymie Stata
>            Assignee: Raymie Stata
>            Priority: Major
>         Attachments: customcoders.md, perf-data.txt
>
>
> New implementation for generation of code for SpecificRecord that improves 
> decoding by over 10% and encoding over 30% (more improvements are on the 
> way).  This feature is behind a feature flag 
> ({{org.apache.avro.specific.use_custom_coders}}) and (for now) turned off by 
> default.  See [Getting Started 
> (Java)|https://avro.apache.org/docs/current/gettingstartedjava.html#Beta+feature:+Generating+faster+code]
>  for instructions.
> (A bit more info: Compared to GenericRecords, SpecificRecords offer 
> type-safety plus the performance of traditional getters/setters/instance 
> variables.  But these are only beneficial to Java code accessing those 
> records.  SpecificRecords inherit serialization and deserialization code from 
> GenericRecords, which is dynamic and thus slow (in fact, benchmarks show that 
> serialization and deserialization is _slower_ for SpecificRecord than for 
> GenericRecord).  This patch extends record.vm to generate custom, 
> higher-performance encoder and decoder functions for SpecificRecords.)



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

Reply via email to