[ 
https://issues.apache.org/jira/browse/AVRO-1208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13500515#comment-13500515
 ] 

Doug Cutting commented on AVRO-1208:
------------------------------------

This sounds like it could be a useful optimization.

A way to implement this might be as a Trevni Input implementation:

http://avro.apache.org/docs/current/api/java/org/apache/trevni/Input.html

This optimization might be an Input that wraps another Input.  A ~1MB buffer 
should provide significant improvement.  When the first 64kB request is made, 
1MB could be read into the buffer and its first 64kB could be returned.  
Subsequent requests that are within the buffer could be resolved without any 
i/o.

It would be good to have a benchmark to validate this.  Do you have a relevant 
Trevni benchmark?
                
> Improve Trevni's performance on row-oriented data access
> --------------------------------------------------------
>
>                 Key: AVRO-1208
>                 URL: https://issues.apache.org/jira/browse/AVRO-1208
>             Project: Avro
>          Issue Type: Improvement
>    Affects Versions: 1.7.3
>            Reporter: Yin Huai
>
> Trevni uses an 64KB internal buffer to store values of a column. When 
> accessing a column, it reads 64KB (if we do not consider compression and 
> checksum) data from the storage layer. However, when the table is accessed in 
> a row-oriented fashion (a entire row needs to be handed over to the upper 
> layer), in the worst case (a full table scan and values of this table are all 
> the same size), every 64KB data read can cause a seek.
> This jira is used to discuss if we should consider the data access pattern 
> mentioned above and if so, how to improve the performance of Trevni. 
> Row-oriented data processing engines, e.g. Hive, can benefit from this work.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to