[
https://issues.apache.org/jira/browse/HDFS-7663?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14908505#comment-14908505
]
Jing Zhao edited comment on HDFS-7663 at 9/25/15 6:53 PM:
----------------------------------------------------------
Thanks for sharing the thoughts, Walter! First I completely agree that we
should start from #3 you proposed. More specifically, quote from your doc:
{quote}
If lastBlock is complete, start a new blockGroup.
If lastBlock is UC, start a blockRecovery. After recovery, start a new
blockGroup. BlockRecovery prefers to save data from last paritial stripe as
much as possible.
pros: simple and clear code, with HDFS-3689.
cons: a) Has paritial blockGroup, waste NN memory. b) Could hurt read
performance.
{quote}
This is something we can start with.
Some high level thinking:
# Lease/Block recovery is actually a different topic and is a tricky problem.
As you suggested in HDFS-9040, we can create a separate jira for it, and the
second half of your doc can be our first proposal there.
# Looks like till now we do not have a correct solution for EC file lease
recovery (at least the protocol for DataNodes to do the recovery work)? We
should first let NameNode *NOT* send recovery commands to DataNodes for under
construction/recovery EC blocks.
# Appending to a partial block group is actually very similar to "keep writing
after calling hsync/hflush", since we need to overwrite the parity data of the
last stripe. We have an initial proposal in the latest design doc in HDFS-7285
about this part.
was (Author: jingzhao):
Thanks for sharing the thoughts, Walter! First I completely agree that we
should start from #3 you proposed. More specifically, quote from your doc:
{quote}
If lastBlock is complete, start a new blockGroup.
If lastBlock is UC, start a blockRecovery. After recovery, start a new
blockGroup. BlockRecovery prefers to save data from last paritial stripe as
much as possible.
pros: simple and clear code, with HDFS-3689.
cons: a) Has paritial blockGroup, waste NN memory. b) Could hurt read
performance.
{quote}
This is something we can easily support and also we should start with.
Some high level thinking:
# Lease/Block recovery is actually a different topic and is a tricky problem.
As you suggested in HDFS-9040, we can create a separate jira for it, and the
second half of your doc can be our first proposal there.
# Looks like till now we do not have a correct solution for EC file lease
recovery (at least the protocol for DataNodes to do the recovery work)? We
should first let NameNode *NOT* send recovery commands to DataNodes for under
construction/recovery EC blocks.
# Appending to a partial block group is actually very similar to "keep writing
after calling hsync/hflush", since we need to overwrite the parity data of the
last stripe. We have an initial proposal in the latest design doc in HDFS-7285
about this part.
> Erasure Coding: lease recovery / append on striped file
> -------------------------------------------------------
>
> Key: HDFS-7663
> URL: https://issues.apache.org/jira/browse/HDFS-7663
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Reporter: Jing Zhao
> Assignee: Walter Su
> Attachments: HDFS-7663.00.txt
>
>
> Append should be easy if we have variable length block support from
> HDFS-3689, i.e., the new data will be appended to a new block. We need to
> revisit whether and how to support appending data to the original last block.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)