[21/50] [abbrv] hadoop git commit: HDFS-12130. Optimizing permission check for getContentSummary. Contributed by Chen Liang
HDFS-12130. Optimizing permission check for getContentSummary. Contributed by Chen Liang Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f413ee33 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f413ee33 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f413ee33 Branch: refs/heads/HDFS-7240 Commit: f413ee33df301659c4ca9024380c2354983dcc84 Parents: a1f12bb Author: Tsz-Wo Nicholas SzeAuthored: Fri Jul 14 14:35:51 2017 -0700 Committer: Tsz-Wo Nicholas Sze Committed: Fri Jul 14 14:35:51 2017 -0700 -- .../server/blockmanagement/BlockCollection.java | 4 +- .../ContentSummaryComputationContext.java | 20 ++ .../namenode/DirectoryWithQuotaFeature.java | 4 +- .../server/namenode/FSDirStatAndListingOp.java | 9 +- .../server/namenode/FSPermissionChecker.java| 32 +++ .../hadoop/hdfs/server/namenode/INode.java | 9 +- .../hdfs/server/namenode/INodeDirectory.java| 9 +- .../hdfs/server/namenode/INodeReference.java| 3 +- .../snapshot/DirectorySnapshottableFeature.java | 3 +- .../snapshot/DirectoryWithSnapshotFeature.java | 3 +- .../hdfs/server/namenode/snapshot/Snapshot.java | 4 +- .../TestGetContentSummaryWithPermission.java| 201 +++ 12 files changed, 285 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/f413ee33/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java index 2f214be..b880590 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.security.AccessControlException; /** * This interface is used by the block manager to expose a @@ -36,7 +37,8 @@ public interface BlockCollection { /** * Get content summary. */ - public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps); + public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps) + throws AccessControlException; /** * @return the number of blocks or block groups http://git-wip-us.apache.org/repos/asf/hadoop/blob/f413ee33/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java index 8d5aa0d..43e6f0d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java @@ -20,11 +20,14 @@ package org.apache.hadoop.hdfs.server.namenode; import com.google.common.base.Preconditions; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.fs.permission.FsAction; import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.XAttr; import org.apache.hadoop.io.WritableUtils; +import org.apache.hadoop.security.AccessControlException; + import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; @@ -46,6 +49,8 @@ public class ContentSummaryComputationContext { public static final String REPLICATED = "Replicated"; public static final Log LOG = LogFactory.getLog(INode.class); + + private FSPermissionChecker pc; /** * Constructor * @@ -57,6 +62,12 @@ public class ContentSummaryComputationContext { */ public ContentSummaryComputationContext(FSDirectory dir, FSNamesystem fsn, long limitPerRun, long sleepMicroSec) { +this(dir, fsn, limitPerRun, sleepMicroSec, null); + } + + public
[16/50] [abbrv] hadoop git commit: HDFS-12130. Optimizing permission check for getContentSummary.
HDFS-12130. Optimizing permission check for getContentSummary. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a29fe100 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a29fe100 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a29fe100 Branch: refs/heads/HDFS-7240 Commit: a29fe100b3c671954b759add5923a2b44af9e6a4 Parents: a5ae5ac Author: Tsz-Wo Nicholas SzeAuthored: Fri Jul 14 11:53:00 2017 -0700 Committer: Tsz-Wo Nicholas Sze Committed: Fri Jul 14 13:36:27 2017 -0700 -- .../server/blockmanagement/BlockCollection.java | 4 +- .../ContentSummaryComputationContext.java | 20 ++ .../namenode/DirectoryWithQuotaFeature.java | 4 +- .../server/namenode/FSDirStatAndListingOp.java | 9 +- .../server/namenode/FSPermissionChecker.java| 32 +++ .../hadoop/hdfs/server/namenode/INode.java | 9 +- .../hdfs/server/namenode/INodeDirectory.java| 9 +- .../hdfs/server/namenode/INodeReference.java| 3 +- .../snapshot/DirectorySnapshottableFeature.java | 3 +- .../snapshot/DirectoryWithSnapshotFeature.java | 3 +- .../hdfs/server/namenode/snapshot/Snapshot.java | 4 +- .../TestGetContentSummaryWithPermission.java| 201 +++ 12 files changed, 285 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a29fe100/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java index 2f214be..b880590 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.security.AccessControlException; /** * This interface is used by the block manager to expose a @@ -36,7 +37,8 @@ public interface BlockCollection { /** * Get content summary. */ - public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps); + public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps) + throws AccessControlException; /** * @return the number of blocks or block groups http://git-wip-us.apache.org/repos/asf/hadoop/blob/a29fe100/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java index 8d5aa0d..43e6f0d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java @@ -20,11 +20,14 @@ package org.apache.hadoop.hdfs.server.namenode; import com.google.common.base.Preconditions; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.fs.permission.FsAction; import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.XAttr; import org.apache.hadoop.io.WritableUtils; +import org.apache.hadoop.security.AccessControlException; + import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; @@ -46,6 +49,8 @@ public class ContentSummaryComputationContext { public static final String REPLICATED = "Replicated"; public static final Log LOG = LogFactory.getLog(INode.class); + + private FSPermissionChecker pc; /** * Constructor * @@ -57,6 +62,12 @@ public class ContentSummaryComputationContext { */ public ContentSummaryComputationContext(FSDirectory dir, FSNamesystem fsn, long limitPerRun, long sleepMicroSec) { +this(dir, fsn, limitPerRun, sleepMicroSec, null); + } + + public ContentSummaryComputationContext(FSDirectory dir,
[2/2] hadoop git commit: HDFS-12130. Optimizing permission check for getContentSummary. Contributed by Chen Liang
HDFS-12130. Optimizing permission check for getContentSummary. Contributed by Chen Liang Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/bff39ca7 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/bff39ca7 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/bff39ca7 Branch: refs/heads/branch-2 Commit: bff39ca718706526880a5e64a3eee8642d1db9ef Parents: d513953 Author: Tsz-Wo Nicholas SzeAuthored: Fri Jul 14 14:39:12 2017 -0700 Committer: Tsz-Wo Nicholas Sze Committed: Fri Jul 14 14:40:11 2017 -0700 -- .../server/blockmanagement/BlockCollection.java | 4 +- .../ContentSummaryComputationContext.java | 18 ++ .../namenode/DirectoryWithQuotaFeature.java | 4 +- .../server/namenode/FSDirStatAndListingOp.java | 9 +- .../server/namenode/FSPermissionChecker.java| 32 +++ .../hadoop/hdfs/server/namenode/INode.java | 9 +- .../hdfs/server/namenode/INodeDirectory.java| 9 +- .../hdfs/server/namenode/INodeReference.java| 3 +- .../snapshot/DirectorySnapshottableFeature.java | 3 +- .../snapshot/DirectoryWithSnapshotFeature.java | 3 +- .../hdfs/server/namenode/snapshot/Snapshot.java | 4 +- .../TestGetContentSummaryWithPermission.java| 222 +++ 12 files changed, 304 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/bff39ca7/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java index 95d9983..2502cf3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.security.AccessControlException; /** * This interface is used by the block manager to expose a @@ -36,7 +37,8 @@ public interface BlockCollection { /** * Get content summary. */ - public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps); + public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps) + throws AccessControlException; /** * @return the number of blocks http://git-wip-us.apache.org/repos/asf/hadoop/blob/bff39ca7/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java index b35270d..af2ea31 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java @@ -20,7 +20,9 @@ package org.apache.hadoop.hdfs.server.namenode; import com.google.common.base.Preconditions; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.fs.permission.FsAction; import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite; +import org.apache.hadoop.security.AccessControlException; @InterfaceAudience.Private @InterfaceStability.Unstable @@ -36,6 +38,7 @@ public class ContentSummaryComputationContext { private long sleepMilliSec = 0; private int sleepNanoSec = 0; + private FSPermissionChecker pc; /** * Constructor * @@ -47,6 +50,12 @@ public class ContentSummaryComputationContext { */ public ContentSummaryComputationContext(FSDirectory dir, FSNamesystem fsn, long limitPerRun, long sleepMicroSec) { +this(dir, fsn, limitPerRun, sleepMicroSec, null); + } + + public ContentSummaryComputationContext(FSDirectory dir, + FSNamesystem fsn, long limitPerRun, long sleepMicroSec, + FSPermissionChecker pc) { this.dir = dir; this.fsn = fsn; this.limitPerRun = limitPerRun; @@ -55,6 +64,7 @@ public class ContentSummaryComputationContext {
[2/2] hadoop git commit: HDFS-12130. Optimizing permission check for getContentSummary. Contributed by Chen Liang
HDFS-12130. Optimizing permission check for getContentSummary. Contributed by Chen Liang Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/f413ee33 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/f413ee33 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/f413ee33 Branch: refs/heads/trunk Commit: f413ee33df301659c4ca9024380c2354983dcc84 Parents: a1f12bb Author: Tsz-Wo Nicholas SzeAuthored: Fri Jul 14 14:35:51 2017 -0700 Committer: Tsz-Wo Nicholas Sze Committed: Fri Jul 14 14:35:51 2017 -0700 -- .../server/blockmanagement/BlockCollection.java | 4 +- .../ContentSummaryComputationContext.java | 20 ++ .../namenode/DirectoryWithQuotaFeature.java | 4 +- .../server/namenode/FSDirStatAndListingOp.java | 9 +- .../server/namenode/FSPermissionChecker.java| 32 +++ .../hadoop/hdfs/server/namenode/INode.java | 9 +- .../hdfs/server/namenode/INodeDirectory.java| 9 +- .../hdfs/server/namenode/INodeReference.java| 3 +- .../snapshot/DirectorySnapshottableFeature.java | 3 +- .../snapshot/DirectoryWithSnapshotFeature.java | 3 +- .../hdfs/server/namenode/snapshot/Snapshot.java | 4 +- .../TestGetContentSummaryWithPermission.java| 201 +++ 12 files changed, 285 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/f413ee33/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java index 2f214be..b880590 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.security.AccessControlException; /** * This interface is used by the block manager to expose a @@ -36,7 +37,8 @@ public interface BlockCollection { /** * Get content summary. */ - public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps); + public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps) + throws AccessControlException; /** * @return the number of blocks or block groups http://git-wip-us.apache.org/repos/asf/hadoop/blob/f413ee33/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java index 8d5aa0d..43e6f0d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java @@ -20,11 +20,14 @@ package org.apache.hadoop.hdfs.server.namenode; import com.google.common.base.Preconditions; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.fs.permission.FsAction; import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.XAttr; import org.apache.hadoop.io.WritableUtils; +import org.apache.hadoop.security.AccessControlException; + import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; @@ -46,6 +49,8 @@ public class ContentSummaryComputationContext { public static final String REPLICATED = "Replicated"; public static final Log LOG = LogFactory.getLog(INode.class); + + private FSPermissionChecker pc; /** * Constructor * @@ -57,6 +62,12 @@ public class ContentSummaryComputationContext { */ public ContentSummaryComputationContext(FSDirectory dir, FSNamesystem fsn, long limitPerRun, long sleepMicroSec) { +this(dir, fsn, limitPerRun, sleepMicroSec, null); + } + + public
hadoop git commit: HDFS-12130. Optimizing permission check for getContentSummary.
Repository: hadoop Updated Branches: refs/heads/branch-2 9eb93c6f3 -> 2ba41729a HDFS-12130. Optimizing permission check for getContentSummary. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2ba41729 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2ba41729 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2ba41729 Branch: refs/heads/branch-2 Commit: 2ba41729abef22f9049fbd6260e8194ac1abf5cc Parents: 9eb93c6 Author: Tsz-Wo Nicholas SzeAuthored: Fri Jul 14 11:53:00 2017 -0700 Committer: Tsz-Wo Nicholas Sze Committed: Fri Jul 14 13:42:02 2017 -0700 -- .../server/blockmanagement/BlockCollection.java | 4 +- .../ContentSummaryComputationContext.java | 18 ++ .../namenode/DirectoryWithQuotaFeature.java | 4 +- .../server/namenode/FSDirStatAndListingOp.java | 9 +- .../server/namenode/FSPermissionChecker.java| 32 +++ .../hadoop/hdfs/server/namenode/INode.java | 9 +- .../hdfs/server/namenode/INodeDirectory.java| 9 +- .../hdfs/server/namenode/INodeReference.java| 3 +- .../snapshot/DirectorySnapshottableFeature.java | 3 +- .../snapshot/DirectoryWithSnapshotFeature.java | 3 +- .../hdfs/server/namenode/snapshot/Snapshot.java | 4 +- .../TestGetContentSummaryWithPermission.java| 222 +++ 12 files changed, 304 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2ba41729/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java index 95d9983..2502cf3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.security.AccessControlException; /** * This interface is used by the block manager to expose a @@ -36,7 +37,8 @@ public interface BlockCollection { /** * Get content summary. */ - public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps); + public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps) + throws AccessControlException; /** * @return the number of blocks http://git-wip-us.apache.org/repos/asf/hadoop/blob/2ba41729/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java index b35270d..af2ea31 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java @@ -20,7 +20,9 @@ package org.apache.hadoop.hdfs.server.namenode; import com.google.common.base.Preconditions; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.fs.permission.FsAction; import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite; +import org.apache.hadoop.security.AccessControlException; @InterfaceAudience.Private @InterfaceStability.Unstable @@ -36,6 +38,7 @@ public class ContentSummaryComputationContext { private long sleepMilliSec = 0; private int sleepNanoSec = 0; + private FSPermissionChecker pc; /** * Constructor * @@ -47,6 +50,12 @@ public class ContentSummaryComputationContext { */ public ContentSummaryComputationContext(FSDirectory dir, FSNamesystem fsn, long limitPerRun, long sleepMicroSec) { +this(dir, fsn, limitPerRun, sleepMicroSec, null); + } + + public ContentSummaryComputationContext(FSDirectory dir, + FSNamesystem fsn, long limitPerRun, long sleepMicroSec, + FSPermissionChecker pc) { this.dir = dir; this.fsn = fsn; this.limitPerRun = limitPerRun; @@ -55,6 +64,7 @@ public
hadoop git commit: HDFS-12130. Optimizing permission check for getContentSummary.
Repository: hadoop Updated Branches: refs/heads/trunk a5ae5ac50 -> a29fe100b HDFS-12130. Optimizing permission check for getContentSummary. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a29fe100 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a29fe100 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a29fe100 Branch: refs/heads/trunk Commit: a29fe100b3c671954b759add5923a2b44af9e6a4 Parents: a5ae5ac Author: Tsz-Wo Nicholas SzeAuthored: Fri Jul 14 11:53:00 2017 -0700 Committer: Tsz-Wo Nicholas Sze Committed: Fri Jul 14 13:36:27 2017 -0700 -- .../server/blockmanagement/BlockCollection.java | 4 +- .../ContentSummaryComputationContext.java | 20 ++ .../namenode/DirectoryWithQuotaFeature.java | 4 +- .../server/namenode/FSDirStatAndListingOp.java | 9 +- .../server/namenode/FSPermissionChecker.java| 32 +++ .../hadoop/hdfs/server/namenode/INode.java | 9 +- .../hdfs/server/namenode/INodeDirectory.java| 9 +- .../hdfs/server/namenode/INodeReference.java| 3 +- .../snapshot/DirectorySnapshottableFeature.java | 3 +- .../snapshot/DirectoryWithSnapshotFeature.java | 3 +- .../hdfs/server/namenode/snapshot/Snapshot.java | 4 +- .../TestGetContentSummaryWithPermission.java| 201 +++ 12 files changed, 285 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a29fe100/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java index 2f214be..b880590 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockCollection.java @@ -21,6 +21,7 @@ import java.io.IOException; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.fs.ContentSummary; +import org.apache.hadoop.security.AccessControlException; /** * This interface is used by the block manager to expose a @@ -36,7 +37,8 @@ public interface BlockCollection { /** * Get content summary. */ - public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps); + public ContentSummary computeContentSummary(BlockStoragePolicySuite bsps) + throws AccessControlException; /** * @return the number of blocks or block groups http://git-wip-us.apache.org/repos/asf/hadoop/blob/a29fe100/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java -- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java index 8d5aa0d..43e6f0d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/ContentSummaryComputationContext.java @@ -20,11 +20,14 @@ package org.apache.hadoop.hdfs.server.namenode; import com.google.common.base.Preconditions; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.fs.permission.FsAction; import org.apache.hadoop.hdfs.server.blockmanagement.BlockStoragePolicySuite; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.fs.XAttr; import org.apache.hadoop.io.WritableUtils; +import org.apache.hadoop.security.AccessControlException; + import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; @@ -46,6 +49,8 @@ public class ContentSummaryComputationContext { public static final String REPLICATED = "Replicated"; public static final Log LOG = LogFactory.getLog(INode.class); + + private FSPermissionChecker pc; /** * Constructor * @@ -57,6 +62,12 @@ public class ContentSummaryComputationContext { */ public ContentSummaryComputationContext(FSDirectory dir, FSNamesystem fsn, long limitPerRun, long sleepMicroSec) { +this(dir, fsn, limitPerRun,