[ 
https://issues.apache.org/jira/browse/HDFS-8957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kai Zheng updated HDFS-8957:
----------------------------
    Description: 
Currently we have different implementations for client striping read, having 
both *StatefulStripeReader* and *PositionStripeReader*. I attempted to 
consolidate the two implementations into one, and it results in much simpler 
codes, and also better performance. Now in both read paths, it will:
* Use pooled ByteBuffers, as currently stateful read does;
* Read directly into application's buffer, as currently positional read does;
* Try to align and merge multiple stripes, as currently positional read does;
* Use *ECChunk* version decode API.

The resultant *StripeReader* is approaching very near now to the ideal state 
desired by next step, employing *ErasureCoder* API instead of *RawErasureCoder* 
API.

Will upload an initial patch to illustrate the rough change, even though it 
depends on other issues.

  was:
Currently we have different implementations for client striping read, having 
both *StatefulStripeReader* and *PositionStripeReader*. I attempted to 
consolidate the two implementations into one, and it results in much simpler 
codes, and also better performance. Now in both read paths, it will:
* Use ByteBuffer instead of bytes array, as currently stateful read does;
* Read directly into application's buffer, as currently positional read does;
* Try to align and merge multiple stripes, as currently positional read does;
* Use *ECChunk* version decode API.

The resultant *StripeReader* is approaching very near now to the ideal state 
desired by next step, employing *ErasureCoder* API instead of *RawErasureCoder* 
API.

Will upload an initial patch to illustrate the rough change, even though it 
depends on other issues.


> Consolidate client striping input stream codes for stateful read and 
> positional read
> ------------------------------------------------------------------------------------
>
>                 Key: HDFS-8957
>                 URL: https://issues.apache.org/jira/browse/HDFS-8957
>             Project: Hadoop HDFS
>          Issue Type: Sub-task
>            Reporter: Kai Zheng
>            Assignee: Kai Zheng
>             Fix For: HDFS-7285
>
>
> Currently we have different implementations for client striping read, having 
> both *StatefulStripeReader* and *PositionStripeReader*. I attempted to 
> consolidate the two implementations into one, and it results in much simpler 
> codes, and also better performance. Now in both read paths, it will:
> * Use pooled ByteBuffers, as currently stateful read does;
> * Read directly into application's buffer, as currently positional read does;
> * Try to align and merge multiple stripes, as currently positional read does;
> * Use *ECChunk* version decode API.
> The resultant *StripeReader* is approaching very near now to the ideal state 
> desired by next step, employing *ErasureCoder* API instead of 
> *RawErasureCoder* API.
> Will upload an initial patch to illustrate the rough change, even though it 
> depends on other issues.



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

Reply via email to