You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by et...@apache.org on 2019/07/31 16:11:55 UTC
[storm] branch master updated: STORM-3477 switch HDFS blobstore isRemoteBlobExists to use file exist… (#3094)
This is an automated email from the ASF dual-hosted git repository.
ethanli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git
The following commit(s) were added to refs/heads/master by this push:
new 8989355 STORM-3477 switch HDFS blobstore isRemoteBlobExists to use file exist… (#3094)
8989355 is described below
commit 89893556a936fa3482b2387cbfe1797ab7614566
Author: agresch <ag...@gmail.com>
AuthorDate: Wed Jul 31 11:11:48 2019 -0500
STORM-3477 switch HDFS blobstore isRemoteBlobExists to use file exist… (#3094)
* STORM-3477 switch HDFS blobstore isRemoteBlobExists to use file exists for lower overhead
---
.../apache/storm/hdfs/blobstore/HdfsBlobStore.java | 19 +++++++++++++++++++
.../storm/hdfs/blobstore/HdfsClientBlobStore.java | 7 +------
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStore.java b/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStore.java
index da918c4..5d4884b 100644
--- a/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStore.java
+++ b/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsBlobStore.java
@@ -336,6 +336,25 @@ public class HdfsBlobStore extends BlobStore {
}
}
+ /**
+ * Checks if a blob exists.
+ *
+ * @param key blobstore key
+ * @param who subject
+ * @throws AuthorizationException if authorization is failed
+ */
+ public boolean blobExists(String key, Subject who) throws AuthorizationException {
+ try {
+ who = checkAndGetSubject(who);
+ validateKey(key);
+ SettableBlobMeta meta = getStoredBlobMeta(key);
+ aclHandler.hasPermissions(meta.get_acl(), READ, who, key);
+ } catch (KeyNotFoundException e) {
+ return false;
+ }
+ return true;
+ }
+
@Override
public Iterator<String> listKeys() {
try {
diff --git a/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsClientBlobStore.java b/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsClientBlobStore.java
index ce159d5..65861eb 100644
--- a/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsClientBlobStore.java
+++ b/external/storm-hdfs-blobstore/src/main/java/org/apache/storm/hdfs/blobstore/HdfsClientBlobStore.java
@@ -75,12 +75,7 @@ public class HdfsClientBlobStore extends ClientBlobStore {
@Override
public boolean isRemoteBlobExists(String blobKey) throws AuthorizationException {
- try {
- blobStore.getBlob(blobKey, null);
- } catch (KeyNotFoundException e) {
- return false;
- }
- return true;
+ return blobStore.blobExists(blobKey, null);
}
@Override