Tsz Wo Nicholas Sze created HDFS-8288:
-----------------------------------------
Summary: Refactor DFSStripedOutputStream and StripedDataStreamer
Key: HDFS-8288
URL: https://issues.apache.org/jira/browse/HDFS-8288
Project: Hadoop HDFS
Issue Type: Sub-task
Components: hdfs-client
Reporter: Tsz Wo Nicholas Sze
Assignee: Tsz Wo Nicholas Sze
- DFSStripedOutputStream has a list of StripedDataStreamer(s). The streamers
share a data structure List<BlockingQueue<LocatedBlock>> stripeBlocks for
communicate located block and end block information.
For example,
{code}
//StripedDataStreamer.endBlock()
// before retrieving a new block, transfer the finished block to
// leading streamer
LocatedBlock finishedBlock = new LocatedBlock(
new ExtendedBlock(block.getBlockPoolId(), block.getBlockId(),
block.getNumBytes(), block.getGenerationStamp()), null);
try {
boolean offSuccess = stripedBlocks.get(0).offer(finishedBlock, 30,
TimeUnit.SECONDS);
{code}
It is unnecessary to create a LocatedBlock object for an end block since the
locations passed is null. Also, the return value is ignored (i.e. offSuccess
is not used).
- DFSStripedOutputStream has another data structure cellBuffers for computing
parity. It should be refactored to a class.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)