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

Harish Butani commented on HIVE-4963:
-------------------------------------

- PTFRecordWriter is needed to provide access to the underlying SeqFile.Writer. 
So that at the time of writing to the Container, we can record the locations in 
the file where the individual Blocks start.
- PTFHiveSequenceFileOutputFormat is there so that on getHiveRecordWriter call, 
we return the PTFRecordWriter.
- PTFSequenceFileRecordReader allows the PTFRowContainer to seek to the 
startOffset of the block. So a getAt request that needs to fetch data, first 
figures out the Split to read and then seeks to the startOffset, from where the 
RecordReader should start.
- PTFSequenceFileInputFormat is needed to to return PTFSequenceFileRecordReader 
in the getRecordReader call.
                
> Support in memory PTF partitions
> --------------------------------
>
>                 Key: HIVE-4963
>                 URL: https://issues.apache.org/jira/browse/HIVE-4963
>             Project: Hive
>          Issue Type: Bug
>          Components: PTF-Windowing
>            Reporter: Harish Butani
>         Attachments: HIVE-4963.D11955.1.patch, PTFRowContainer.patch
>
>
> PTF partitions apply the defensive mode of assuming that partitions will not 
> fit in memory. Because of this there is a significant deserialization 
> overhead when accessing elements. 
> Allow the user to specify that there is enough memory to hold partitions 
> through a 'hive.ptf.partition.fits.in.mem' option.  
> Savings depends on partition size and in case of windowing the number of 
> UDAFs and the window ranges. For eg for the following (admittedly extreme) 
> case the PTFOperator exec times went from 39 secs to 8 secs.
>  
> {noformat}
> select t, s, i, b, f, d,
> min(t) over(partition by 1 rows between unbounded preceding and current row), 
> min(s) over(partition by 1 rows between unbounded preceding and current row), 
> min(i) over(partition by 1 rows between unbounded preceding and current row), 
> min(b) over(partition by 1 rows between unbounded preceding and current row) 
> from over10k
> {noformat}

--
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