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