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

Zhe Zhang commented on HDFS-8901:
---------------------------------

Thanks for the update [~Sammi]. 

# {{TestPread}} failure looks related. It was not failing for v16 patch.
# bq. I thought the {{BlockReaderUtil.readAll}} implementation just 
demonstrates the idea, that is leverage BlockReader#read(ByteBuffer buf) to 
read data into buf. 
Looking back at the discussion history, my previous [suggestion | 
https://issues.apache.org/jira/browse/HDFS-8901?focusedCommentId=15435642&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15435642]
 to move it to {{BlockReaderUtil}} was misleading. Sorry about that.
So my concern here is not about correctness but about code structure. 
{{BlockReaderUtil}} was designed to contain static util / helper methods for 
different block readers. That's why its scope was within its package. We 
shouldn't make it public unnecessarily. If we need a {{ByteBuffer}} version of 
{{readAll}}, I think we should add the API to the {{BlockReader}} interface.
# In general, I feel that dealing with {{ByteBuffer}} causes a lot of 
complexities in understanding the expected {{position}} and {{limit}} before 
and after method calls. If possible, it'd be very helpful to specify those 
expectations in Javadocs. For example, {{copyTo}} can specify that it will take 
care of flipping {{target}} to a ready-to-read state.

Otherwise LGTM. +1 once the above are addressed / clarified. Great work Sammi 
and Kai!

> Use ByteBuffer in striping positional read
> ------------------------------------------
>
>                 Key: HDFS-8901
>                 URL: https://issues.apache.org/jira/browse/HDFS-8901
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Kai Zheng
>            Assignee: SammiChen
>         Attachments: HDFS-8901-v10.patch, HDFS-8901-v17.patch, 
> HDFS-8901-v2.patch, HDFS-8901-v3.patch, HDFS-8901-v4.patch, 
> HDFS-8901-v5.patch, HDFS-8901-v6.patch, HDFS-8901-v7.patch, 
> HDFS-8901-v8.patch, HDFS-8901-v9.patch, HDFS-8901.v11.patch, 
> HDFS-8901.v12.patch, HDFS-8901.v13.patch, HDFS-8901.v14.patch, 
> HDFS-8901.v15.patch, HDFS-8901.v16.patch, initial-poc.patch
>
>
> Native erasure coder prefers to direct ByteBuffer for performance 
> consideration. To prepare for it, this change uses ByteBuffer through the 
> codes in implementing striping position read. It will also fix avoiding 
> unnecessary data copying between striping read chunk buffers and decode input 
> buffers.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to