[ 
https://issues.apache.org/jira/browse/HDFS-7463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14239881#comment-14239881
 ] 

Jing Zhao commented on HDFS-7463:
---------------------------------

The patch looks good to me. Some comments:
# {{resolvePath}} needs to be put within the read lock.
{code}
+    src = dir.resolvePath(pc, src, pathComponents);
+    checkOperation(OperationCategory.READ);
+    readLock();
{code}
# We should use {{iip.getLatestSnapshotId()}} here instead of 
{{getPathSnapshotId}}.
{code}
+      return new GetBlockLocationsResult(
+          updateAccessTime, inode, iip.getPathSnapshotId(), blocks);
{code}
# GetBlockLocationsResult#inode can be declared as INodeFile. We can also rename
  snapshotId to latestSnapshotId. Besides, it may be simpler to just include an
  INodesInPath object in GetBlockLocationsResult.
# The read lock is acquired twice in {{getBlockLocations}} and 
{{getBlockLocationsInt}}.

> Simplify FSNamesystem#getBlockLocationsUpdateTimes
> --------------------------------------------------
>
>                 Key: HDFS-7463
>                 URL: https://issues.apache.org/jira/browse/HDFS-7463
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Haohui Mai
>            Assignee: Haohui Mai
>         Attachments: HDFS-7463.000.patch, HDFS-7463.001.patch, 
> HDFS-7463.002.patch, HDFS-7463.003.patch, HDFS-7463.004.patch, 
> HDFS-7463.005.patch
>
>
> Currently {{FSNamesystem#getBlockLocationsUpdateTimes}} holds the read lock 
> to access the blocks. It releases the read lock and then acquires the write 
> lock when it needs to update the access time of the {{INode}}.
> This jira proposes to move the responsibility of the latter steps to the 
> caller to simplify the code.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to