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);
}
}