Kai Zheng created HDFS-8957: ------------------------------- Summary: 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 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. -- This message was sent by Atlassian JIRA (v6.3.4#6332)