[
https://issues.apache.org/jira/browse/HDFS-9173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15056780#comment-15056780
]
Zhe Zhang commented on HDFS-9173:
---------------------------------
Thanks Jing for the rebase. The patch LGTM overall. I have a few comments and
some suggestions for future work:
# The below should be removed:
{code}
public Daemon recoverBlocks(String who, Collection<RecoveringBlock> blocks) {
return blockRecoveryWorker.recoverBlocks(who, blocks);
}
{code}
# Since we are trimming null elements in
{{DatanodeManager#getDatanodeStorageInfos}}, should change the below in
{{BlockUnderConstructionFeature#setExpectedLocations}} to an assertion.
{code}
for (DatanodeStorageInfo target : targets) {
if (target != null) {
numLocations++;
}
}
{code}
# {{FSNamesystem#commitBlockSynchronization}} also uses
{{getDatanodeStorageInfos}}. The behavior is a little tricky. If some elements
in {{newtargets}} is {{EMPTY_DATANODE_ID}}, or not found in DNManager, then
{{dsInfos}} will be shorter than a full stripe. But we are always assigning
block IDs based on an element's offset in {{dsInfos}}.
{code}
if (storedBlock.isStriped()) {
bi.setBlockId(bi.getBlockId() + i);
}
{code}
# Should update to "If some internal blocks reach the safe length"
{code}
// If some internal blocks are longer than safe length, convert them to
// to RUR replicas.
{code}
# {{newLocs}} and {{newStorages}} should be constructed in the same loop as
{{rurList}}. Something like below. To avoid the double loop.
{code}
final DatanodeID[] newLocs = new DatanodeID[totalBlkNum];
Arrays.fill(newLocs, EMPTY_DATANODE_ID);
for (BlockRecord r : syncList) {
...
if (r.rInfo.getNumBytes() >= newSize) {
rurList.add(r);
newLocs[blockIndex] = r.id;
newStorages[blockIndex] = r.storageID;
}
}
{code}
> Erasure Coding: Lease recovery for striped file
> -----------------------------------------------
>
> Key: HDFS-9173
> URL: https://issues.apache.org/jira/browse/HDFS-9173
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Reporter: Walter Su
> Assignee: Walter Su
> Attachments: HDFS-9173.00.wip.patch, HDFS-9173.01.patch,
> HDFS-9173.02.step125.patch, HDFS-9173.03.patch, HDFS-9173.04.patch,
> HDFS-9173.05.patch, HDFS-9173.06.patch, HDFS-9173.07.patch
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)