[ http://issues.apache.org/jira/browse/HADOOP-652?page=comments#action_12449866 ] Raghu Angadi commented on HADOOP-652: -------------------------------------
Thanks Vladimir. I have couple of suggestions: regd locking: synchronizing getFile() and removing from maps seperately is not currect (we will have situation where a block exists in the map but file does not exist). I would suggest moving f.delete() to outside synchronize(). So we delete after removing from maps. clearPath(): Currently its cost (in compareTo() and in recursion) and proportional to number of directories instead of depth of dir tree. One option to go to the currect child based on the path. On second thoght, you can leave it as it is we will fix it when we fix addBlock() (to remove siblings variable). For now you just move f.delete() to outside synchrnoized block and submit the patch. > Not all Datastructures are updated when a block is deleted > ---------------------------------------------------------- > > Key: HADOOP-652 > URL: http://issues.apache.org/jira/browse/HADOOP-652 > Project: Hadoop > Issue Type: Bug > Components: dfs > Affects Versions: 0.9.0 > Reporter: Raghu Angadi > Attachments: FSDataset.java.patch, FSDataset.java.patch > > > Currently when a block is deleted, DataNode just deletes the physical file > and updates its map. We need to update more things. For e.g. numBlocks in > FSDir is not decremented.. effect of this would be that we will create more > subdirectories than necessary. It might not show up badly yet since numBlocks > gets correct value when the dataNode restarts. I have to see what else needs > to be updated. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira