You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mh...@apache.org on 2019/02/19 10:29:43 UTC

[asterixdb] branch master updated: [NO ISSUE][OTH] Add Creation Time to Client Request

This is an automated email from the ASF dual-hosted git repository.

mhubail pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 410e704  [NO ISSUE][OTH] Add Creation Time to Client Request
410e704 is described below

commit 410e704c2fdf18dafed4b3fef03488295079210b
Author: Murtadha Hubail <mh...@apache.org>
AuthorDate: Tue Feb 19 01:15:46 2019 +0300

    [NO ISSUE][OTH] Add Creation Time to Client Request
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    - Add creation time to ClientRequest to identify when the
      request was acknowledged by the CC.
    - Allow Receptionist extensions to throw exceptions as
      specified by the IReceptionist API.
    - Allow extensions to set non-json request optional parameters.
    - Add convention method in ResourceReference to get the
      resource's fully qualified dataset name.
    - Fix typo in metadata provider method name.
    
    Change-Id: Ib45b5bec8bb2f127aa1263d4f7ac4f8e2e368208
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/3217
    Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
    Reviewed-by: Till Westmann <ti...@apache.org>
---
 .../main/java/org/apache/asterix/translator/ClientRequest.java |  5 +++++
 .../main/java/org/apache/asterix/translator/Receptionist.java  |  5 +++--
 .../apache/asterix/api/http/server/QueryServiceServlet.java    | 10 ++++++++--
 .../org/apache/asterix/common/storage/ResourceReference.java   |  4 ++++
 .../org/apache/asterix/metadata/declared/MetadataProvider.java |  2 +-
 5 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ClientRequest.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ClientRequest.java
index 155b817..c19bb02 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ClientRequest.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ClientRequest.java
@@ -28,6 +28,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 
 public class ClientRequest extends BaseClientRequest {
 
+    protected final long creationTime = System.nanoTime();
     protected final Thread executor;
     protected final String statement;
     protected final String clientContextId;
@@ -70,6 +71,10 @@ public class ClientRequest extends BaseClientRequest {
         }
     }
 
+    public long getCreationTime() {
+        return creationTime;
+    }
+
     @Override
     protected ObjectNode asJson() {
         ObjectNode json = super.asJson();
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java
index 52aab20..ec4fb6f 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/Receptionist.java
@@ -27,6 +27,7 @@ import org.apache.asterix.common.api.IRequestReference;
 import org.apache.asterix.common.api.ISchedulableClientRequest;
 import org.apache.asterix.common.api.RequestReference;
 import org.apache.http.HttpHeaders;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
 import org.apache.hyracks.http.api.IServletRequest;
 import org.apache.hyracks.util.NetworkUtil;
 
@@ -48,12 +49,12 @@ public class Receptionist implements IReceptionist {
     }
 
     @Override
-    public IClientRequest requestReceived(ICommonRequestParameters requestParameters) {
+    public IClientRequest requestReceived(ICommonRequestParameters requestParameters) throws HyracksDataException {
         return new ClientRequest(requestParameters);
     }
 
     @Override
-    public void ensureSchedulable(ISchedulableClientRequest schedulableRequest) {
+    public void ensureSchedulable(ISchedulableClientRequest schedulableRequest) throws HyracksDataException {
         // currently we don't have any restrictions
     }
 }
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index ffbb614..b4513ec 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -424,7 +424,7 @@ public class QueryServiceServlet extends AbstractQueryApiServlet {
                 GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, e.getMessage(), e);
             }
         } else {
-            setParamFromRequest(request, param);
+            setParamFromRequest(request, param, optionalParams);
         }
     }
 
@@ -456,7 +456,8 @@ public class QueryServiceServlet extends AbstractQueryApiServlet {
         // allows extensions to set extra parameters
     }
 
-    private void setParamFromRequest(IServletRequest request, QueryServiceRequestParameters param) throws IOException {
+    private void setParamFromRequest(IServletRequest request, QueryServiceRequestParameters param,
+            Map<String, String> optionalParameters) throws IOException {
         param.setStatement(getParameter(request, Parameter.STATEMENT));
         if (param.getStatement() == null) {
             param.setStatement(HttpUtil.getRequestBody(request));
@@ -476,6 +477,11 @@ public class QueryServiceServlet extends AbstractQueryApiServlet {
         } catch (JsonParseException | JsonMappingException e) {
             GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, e.getMessage(), e);
         }
+        setOptionalParameters(request, optionalParameters);
+    }
+
+    protected void setOptionalParameters(IServletRequest request, Map<String, String> optionalParameters) {
+        // allows extensions to set extra parameters
     }
 
     private void setAccessControlHeaders(IServletRequest request, IServletResponse response) throws IOException {
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
index a24bf72..ae949fe 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/ResourceReference.java
@@ -105,6 +105,10 @@ public class ResourceReference {
         return Integer.parseInt(partition.substring(StorageConstants.PARTITION_DIR_PREFIX.length()));
     }
 
+    public String getDatasetFullyQualifiedName() {
+        return dataverse + '.' + dataset;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
index adfaa89..7b93b6b 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/MetadataProvider.java
@@ -1632,7 +1632,7 @@ public class MetadataProvider implements IMetadataProvider<DataSourceId, String>
         txnAccessedDatasets.add(dataset);
     }
 
-    public Set<Dataset> getAccssedDatasets() {
+    public Set<Dataset> getAccessedDatasets() {
         return Collections.unmodifiableSet(txnAccessedDatasets);
     }
 }