[
https://issues.apache.org/jira/browse/HDFS-8033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zhe Zhang updated HDFS-8033:
----------------------------
Attachment: HDFS-8033.001.patch
This patch implements stateful read by overriding {{blockSeekTo}} and
{{readBuffer}} from {{DFSInputStream}}. Basically, {{blockSeekTo}} takes care
of transitioning to the _next block group_ while {{readBuffer}} handles
switching _among internal blocks_ in the current block group.
It updates the logic of handling the following states to fit the striping
layout:
# {{pos}}: The extended {{readBuffer}} calls {{super.readBuffer()}}, which
forwards {{pos}} as usual.
# {{blockEnd}}: This state controls when {{blockSeekTo}} is called. So it is
maintained to be the end of the block group.
# {{blockReader}}: Similar to how HDFS-7889 handles {{streamer}}, this patch
keeps replacing {{blockReader}} with one of the {{blockReaders}} that it
creates at every {{blockSeekTo}} call. Then {{super.readBuffer()}} just uses
the selected {{blockReader}}.
# {{currentNode}} and {{currentLocatedBlock}} are used to record "bad" nodes
and block locations. They will be handled when read failures are supported
(HDFS-7678)
> Erasure coding: stateful (non-positional) read from files in striped layout
> ---------------------------------------------------------------------------
>
> Key: HDFS-8033
> URL: https://issues.apache.org/jira/browse/HDFS-8033
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Reporter: Zhe Zhang
> Assignee: Zhe Zhang
> Attachments: HDFS-8033.000.patch, HDFS-8033.001.patch
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)