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

Carl Steinbach commented on HIVE-3746:
--------------------------------------

bq. If an application has requested a single row, and the client has requested 
n rows from the server in an effort to reduce round trips, then n-1 intervening 
values from the first column must be cached off somewhere before the first 
value for the second column can be accessed.

If the fetch size is n, then the client is going to end up storing n rows in 
memory regardless of whether the result set is represented in a row-major or 
column-major format. Put another way, the unit of data transfer between the 
server and client is a variable sized resultset. The client has the option of 
setting the result size very low in order to achieve lower latency, or making 
it very large in order to get higher overall throughput. However, the key 
limitation is that the client is not able to provide access to any of the rows 
contained in a resultset until the entire resultset has been transferred from 
the server to the client. This limitation is a consequence of the fact that 
we're using a message oriented RPC layer (Thrift) to handle communication and 
data transfer between the client and server.
                
> TRowSet resultset structure should be column-oriented
> -----------------------------------------------------
>
>                 Key: HIVE-3746
>                 URL: https://issues.apache.org/jira/browse/HIVE-3746
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Server Infrastructure
>            Reporter: Carl Steinbach
>            Assignee: Carl Steinbach
>              Labels: HiveServer2
>


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