[
https://issues.apache.org/jira/browse/HIVE-11945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14934446#comment-14934446
]
Prasanth Jayachandran commented on HIVE-11945:
----------------------------------------------
[~rajesh.balamohan] Patch does not apply cleanly on branch-1. Can you reupload
a different patch for branch-1? Committed .3 patch to master.
> ORC with non-local reads may not be reusing connection to DN
> ------------------------------------------------------------
>
> Key: HIVE-11945
> URL: https://issues.apache.org/jira/browse/HIVE-11945
> Project: Hive
> Issue Type: Bug
> Affects Versions: 1.3.0, 2.0.0
> Reporter: Rajesh Balamohan
> Assignee: Rajesh Balamohan
> Attachments: HIVE-11945.1.patch, HIVE-11945.2.patch,
> HIVE-11945.3.patch
>
>
> When “seek + readFully(buffer, offset, length)” is used, DFSInputStream ends
> up going via “readWithStrategy()”. This sets up BlockReader with length
> equivalent to that of the block size. So until this position is reached,
> RemoteBlockReader2.peer would not be added to the PeerCache (Plz refer
> RemoteBlockReader2.close() in HDFS). So eventually the next call to the same
> DN would end opening a new socket. In ORC, when it is not a data local read,
> this has a the possibility of opening/closing lots of connections with DN.
> In random reads, it would be good to set this length to the amount of data
> that is to be read (e.g pread call in DFSInputStream which sets up the
> BlockReader’s length correctly & the code path returns the Peer back to peer
> cache properly). “readFully(position, buffer, offset, length)” follows this
> code path and ends up reusing the connections properly. Creating this JIRA to
> fix this issue.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)