Details
-
Improvement
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
3.0.0-alpha2
-
None
-
None
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.
Attachments
Attachments
Issue Links
- depends upon
-
HDFS-8901 Use ByteBuffer in striping positional read
- Resolved
- incorporates
-
HDFS-10861 Refactor StripeReaders and use ECChunk version decode API
- Resolved
- is required by
-
HDFS-8907 Configurable striping read buffer threhold
- Open