You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2016/03/17 09:52:55 UTC
lens git commit: LENS-919 : Persist Query Priority in finished
queries in Lens DB
Repository: lens
Updated Branches:
refs/heads/master e0c495e28 -> 8cd7c2022
LENS-919 : Persist Query Priority in finished queries in Lens DB
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/8cd7c202
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/8cd7c202
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/8cd7c202
Branch: refs/heads/master
Commit: 8cd7c2022742fba5f33daeaf183b8eede3b6fcc3
Parents: e0c495e
Author: Puneet Gupta <pu...@apache.org>
Authored: Thu Mar 17 14:22:41 2016 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Thu Mar 17 14:22:41 2016 +0530
----------------------------------------------------------------------
.../org/apache/lens/driver/hive/HiveDriver.java | 2 +-
.../server/api/driver/AbstractLensDriver.java | 7 ++--
.../lens/server/api/driver/LensDriver.java | 4 +-
.../server/api/query/AbstractQueryContext.java | 21 ++++++++++
.../server/api/query/FinishedLensQuery.java | 13 ++++++
.../lens/server/api/query/QueryContext.java | 25 +-----------
.../apache/lens/server/query/LensServerDAO.java | 20 +++++-----
.../server/query/QueryExecutionServiceImpl.java | 3 +-
.../apache/lens/server/query/TestLensDAO.java | 3 ++
.../lens/server/query/TestQueryService.java | 42 ++++++++++++++------
10 files changed, 85 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
----------------------------------------------------------------------
diff --git a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
index f422543..aa37dcc 100644
--- a/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
+++ b/lens-driver-hive/src/main/java/org/apache/lens/driver/hive/HiveDriver.java
@@ -800,7 +800,7 @@ public class HiveDriver extends AbstractLensDriver {
}
@Override
- public Priority decidePriority(QueryContext ctx) {
+ public Priority decidePriority(AbstractQueryContext ctx) {
if (whetherCalculatePriority && ctx.getDriverConf(this).get("mapred.job.priority") == null) {
try {
// Inside try since non-data fetching queries can also be executed by async method.
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java
index d447417..883ad9d 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/AbstractLensDriver.java
@@ -21,10 +21,10 @@ package org.apache.lens.server.api.driver;
import org.apache.lens.api.Priority;
import org.apache.lens.server.api.LensConfConstants;
import org.apache.lens.server.api.error.LensException;
+import org.apache.lens.server.api.query.AbstractQueryContext;
import org.apache.lens.server.api.query.QueryContext;
import org.apache.commons.lang.StringUtils;
-
import org.apache.hadoop.conf.Configuration;
import lombok.Getter;
@@ -98,9 +98,8 @@ public abstract class AbstractLensDriver implements LensDriver {
}
@Override
- public Priority decidePriority(QueryContext queryContext) {
- // no-op by default
- return null;
+ public Priority decidePriority(AbstractQueryContext queryContext) {
+ return Priority.NORMAL;
}
@Override
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
index ed97673..69295d9 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/driver/LensDriver.java
@@ -215,8 +215,8 @@ public interface LensDriver extends Externalizable {
/**
* decide priority based on query's cost. The cost should be already computed by estimate call, but it's
* not guaranteed to be pre-computed. It's up to the driver to do an on-demand computation of cost.
- * @see QueryContext#decidePriority(LensDriver, QueryPriorityDecider) that handles this on-demand computation.
+ * @see AbstractQueryContext#decidePriority(LensDriver, QueryPriorityDecider) that handles this on-demand computation.
* @param queryContext
*/
- Priority decidePriority(QueryContext queryContext);
+ Priority decidePriority(AbstractQueryContext queryContext);
}
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server-api/src/main/java/org/apache/lens/server/api/query/AbstractQueryContext.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/AbstractQueryContext.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/AbstractQueryContext.java
index 62ed293..b568ffb 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/AbstractQueryContext.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/AbstractQueryContext.java
@@ -27,6 +27,7 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.lens.api.LensConf;
+import org.apache.lens.api.Priority;
import org.apache.lens.server.api.LensConfConstants;
import org.apache.lens.server.api.driver.DriverQueryPlan;
import org.apache.lens.server.api.driver.LensDriver;
@@ -35,6 +36,7 @@ import org.apache.lens.server.api.metrics.MethodMetricsContext;
import org.apache.lens.server.api.metrics.MethodMetricsFactory;
import org.apache.lens.server.api.query.DriverSelectorQueryContext.DriverQueryContext;
import org.apache.lens.server.api.query.cost.QueryCost;
+import org.apache.lens.server.api.query.priority.QueryPriorityDecider;
import org.apache.lens.server.api.util.LensUtil;
import org.apache.hadoop.conf.Configuration;
@@ -129,6 +131,13 @@ public abstract class AbstractQueryContext implements Serializable {
/** Lock used to synchronize HiveConf access */
private transient Lock hiveConfLock = new ReentrantLock();
+ /**
+ * The priority.
+ */
+ @Getter
+ @Setter
+ private Priority priority;
+
protected AbstractQueryContext(final String query, final String user, final LensConf qconf, final Configuration conf,
final Collection<LensDriver> drivers, boolean mergeDriverConf) {
if (conf.getBoolean(LensConfConstants.ENABLE_QUERY_METRICS, LensConfConstants.DEFAULT_ENABLE_QUERY_METRICS)) {
@@ -469,4 +478,16 @@ public abstract class AbstractQueryContext implements Serializable {
driverContext.clearTransientStateAfterCompleted();
hiveConf = null;
}
+
+ public Priority decidePriority(LensDriver driver, QueryPriorityDecider queryPriorityDecider) throws LensException {
+ // On-demand re-computation of cost, in case it's not alredy set by a previous estimate call.
+ // In driver test cases, estimate doesn't happen. Hence this code path ensures cost is computed and
+ // priority is set based on correct cost.
+ if (getDriverQueryCost(driver) == null) {
+ setDriverCost(driver, driver.estimate(this));
+ }
+ priority = queryPriorityDecider.decidePriority(getDriverQueryCost(driver));
+ return priority;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
index a57a6e4..e1ce415 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/FinishedLensQuery.java
@@ -22,6 +22,7 @@ import java.util.Collection;
import java.util.Iterator;
import org.apache.lens.api.LensConf;
+import org.apache.lens.api.Priority;
import org.apache.lens.api.query.QueryHandle;
import org.apache.lens.api.query.QueryStatus;
import org.apache.lens.server.api.driver.LensDriver;
@@ -30,6 +31,7 @@ import org.apache.lens.server.api.query.collect.WaitingQueriesSelectionPolicy;
import org.apache.hadoop.conf.Configuration;
import com.google.common.collect.ImmutableSet;
+
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@@ -168,6 +170,10 @@ public class FinishedLensQuery {
@Getter
private LensDriver selectedDriver;
+ @Getter
+ @Setter
+ private String priority;
+
/**
* Instantiates a new finished lens query.
*/
@@ -199,6 +205,10 @@ public class FinishedLensQuery {
if (null != ctx.getSelectedDriver()) {
this.driverName = ctx.getSelectedDriver().getFullyQualifiedName();
}
+ //Priority can be null in case no driver is fit to execute a query and launch fails.
+ if (null != ctx.getPriority()) {
+ this.priority = ctx.getPriority().toString();
+ }
}
public QueryContext toQueryContext(Configuration conf, Collection<LensDriver> drivers) {
@@ -220,6 +230,9 @@ public class FinishedLensQuery {
qctx.getDriverStatus().setDriverFinishTime(getDriverEndTime());
qctx.setResultSetPath(getResult());
qctx.setQueryName(getQueryName());
+ if (getPriority() != null) {
+ qctx.setPriority(Priority.valueOf(getPriority()));
+ }
return qctx;
}
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
----------------------------------------------------------------------
diff --git a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
index 96846c1..d01e4a4 100644
--- a/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
+++ b/lens-server-api/src/main/java/org/apache/lens/server/api/query/QueryContext.java
@@ -28,7 +28,6 @@ import java.util.Map;
import java.util.UUID;
import org.apache.lens.api.LensConf;
-import org.apache.lens.api.Priority;
import org.apache.lens.api.query.LensQuery;
import org.apache.lens.api.query.QueryHandle;
import org.apache.lens.api.query.QueryStatus;
@@ -42,7 +41,6 @@ import org.apache.lens.server.api.driver.PartiallyFetchedInMemoryResultSet;
import org.apache.lens.server.api.error.LensException;
import org.apache.lens.server.api.query.collect.WaitingQueriesSelectionPolicy;
import org.apache.lens.server.api.query.constraint.QueryLaunchingConstraint;
-import org.apache.lens.server.api.query.priority.QueryPriorityDecider;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
@@ -73,12 +71,6 @@ public class QueryContext extends AbstractQueryContext {
private QueryHandle queryHandle;
/**
- * The priority.
- */
- @Getter
- private Priority priority;
-
- /**
* The is persistent.
*/
@Getter
@@ -332,7 +324,7 @@ public class QueryContext extends AbstractQueryContext {
* @return the lens query
*/
public LensQuery toLensQuery() {
- return new LensQuery(queryHandle, userQuery, super.getSubmittedUser(), priority, isPersistent,
+ return new LensQuery(queryHandle, userQuery, super.getSubmittedUser(), getPriority(), isPersistent,
getSelectedDriver() != null ? getSelectedDriver().getFullyQualifiedName() : null,
getSelectedDriverQuery(),
status,
@@ -458,21 +450,6 @@ public class QueryContext extends AbstractQueryContext {
return getSelectedDriver().getWaitingQuerySelectionPolicies();
}
- public Priority decidePriority(LensDriver driver, QueryPriorityDecider queryPriorityDecider) throws LensException {
- // On-demand re-computation of cost, in case it's not alredy set by a previous estimate call.
- // In driver test cases, estimate doesn't happen. Hence this code path ensures cost is computed and
- // priority is set based on correct cost.
- calculateCost(driver);
- priority = queryPriorityDecider.decidePriority(getDriverQueryCost(driver));
- return priority;
- }
-
- private void calculateCost(LensDriver driver) throws LensException {
- if (getDriverQueryCost(driver) == null) {
- setDriverCost(driver, driver.estimate(this));
- }
- }
-
public synchronized void registerDriverResult(LensResultSet result) throws LensException {
if (isDriverResultRegistered) {
return; //already registered
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java b/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
index d8e654d..1d6125c 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/LensServerDAO.java
@@ -82,10 +82,10 @@ public class LensServerDAO {
*/
public void createFinishedQueriesTable() throws Exception {
String sql = "CREATE TABLE if not exists finished_queries (handle varchar(255) not null unique,"
- + "userquery varchar(10000) not null," + "submitter varchar(255) not null," + "starttime bigint, "
- + "endtime bigint," + "result varchar(255)," + "status varchar(255), " + "metadata varchar(100000), "
- + "rows int, " + "filesize bigint, " + "errormessage varchar(10000), " + "driverstarttime bigint, "
- + "driverendtime bigint, " + "drivername varchar(10000), "
+ + "userquery varchar(10000) not null," + "submitter varchar(255) not null," + "priority varchar(255), "
+ + "starttime bigint, " + "endtime bigint," + "result varchar(255)," + "status varchar(255), "
+ + "metadata varchar(100000), " + "rows int, " + "filesize bigint, " + "errormessage varchar(10000), "
+ + "driverstarttime bigint, " + "driverendtime bigint, " + "drivername varchar(10000), "
+ "queryname varchar(255), " + "submissiontime bigint" + ")";
try {
QueryRunner runner = new QueryRunner(ds);
@@ -107,17 +107,17 @@ public class LensServerDAO {
if (alreadyExisting == null) {
// The expected case
Connection conn = null;
- String sql = "insert into finished_queries (handle, userquery,submitter,"
+ String sql = "insert into finished_queries (handle, userquery, submitter, priority, "
+ "starttime,endtime,result,status,metadata,rows,filesize,"
+ "errormessage,driverstarttime,driverendtime, drivername, queryname, submissiontime)"
- + " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
+ + " values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
conn = getConnection();
QueryRunner runner = new QueryRunner();
- runner.update(conn, sql, query.getHandle(), query.getUserQuery(), query.getSubmitter(), query.getStartTime(),
- query.getEndTime(), query.getResult(), query.getStatus(), query.getMetadata(), query.getRows(),
- query.getFileSize(), query.getErrorMessage(), query.getDriverStartTime(), query.getDriverEndTime(),
- query.getDriverName(), query.getQueryName(), query.getSubmissionTime());
+ runner.update(conn, sql, query.getHandle(), query.getUserQuery(), query.getSubmitter(), query.getPriority(),
+ query.getStartTime(), query.getEndTime(), query.getResult(), query.getStatus(), query.getMetadata(),
+ query.getRows(), query.getFileSize(), query.getErrorMessage(), query.getDriverStartTime(),
+ query.getDriverEndTime(), query.getDriverName(), query.getQueryName(), query.getSubmissionTime());
conn.commit();
} finally {
DbUtils.closeQuietly(conn);
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
----------------------------------------------------------------------
diff --git a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
index 49ab241..4c95506 100644
--- a/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
+++ b/lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java
@@ -1387,6 +1387,7 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
ctx.setSelectedDriver(driver);
QueryCost selectedDriverQueryCost = ctx.getDriverContext().getDriverQueryCost(driver);
ctx.setSelectedDriverQueryCost(selectedDriverQueryCost);
+ driver.decidePriority(ctx);
selectGauge.markSuccess();
} finally {
parallelCallGauge.markSuccess();
@@ -1782,7 +1783,6 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
ctx.setLensSessionIdentifier(sessionHandle.getPublicId().toString());
rewriteAndSelect(ctx);
- ctx.getSelectedDriver().decidePriority(ctx);
return submitQuery(ctx);
}
@@ -2000,7 +2000,6 @@ public class QueryExecutionServiceImpl extends BaseLensService implements QueryE
result.setStatus(queryCtx.getStatus());
return result;
}
-
QueryCompletionListenerImpl listener = new QueryCompletionListenerImpl(handle);
synchronized (queryCtx) {
if (!queryCtx.getStatus().finished()) {
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java b/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
index 760e306..7679a06 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestLensDAO.java
@@ -27,6 +27,7 @@ import java.util.List;
import org.apache.lens.api.LensConf;
import org.apache.lens.api.LensSessionHandle;
+import org.apache.lens.api.Priority;
import org.apache.lens.api.query.LensQuery;
import org.apache.lens.api.query.QueryHandle;
import org.apache.lens.api.query.QueryStatus;
@@ -69,6 +70,7 @@ public class TestLensDAO {
queryContext.getDriverContext().setSelectedDriver(new MockDriver());
FinishedLensQuery finishedLensQuery = new FinishedLensQuery(queryContext);
finishedLensQuery.setStatus(QueryStatus.Status.SUCCESSFUL.name());
+ finishedLensQuery.setPriority(Priority.NORMAL.toString());
// Validate JDBC driver RS Meta can be deserialized
@@ -120,6 +122,7 @@ public class TestLensDAO {
Assert.assertEquals(actualRsMeta.getColumns().get(0).getName().toLowerCase(), "handle");
Assert.assertEquals(actual.getHandle(), finishedHandle);
+ Assert.assertEquals(Priority.valueOf(actual.getPriority()), Priority.NORMAL);
// Test find finished queries
LensSessionHandle session = service.openSession("foo@localhost", "bar", new HashMap<String, String>());
http://git-wip-us.apache.org/repos/asf/lens/blob/8cd7c202/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
----------------------------------------------------------------------
diff --git a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
index 699fa68..49de59c 100644
--- a/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
+++ b/lens-server/src/test/java/org/apache/lens/server/query/TestQueryService.java
@@ -38,6 +38,7 @@ import javax.ws.rs.core.*;
import org.apache.lens.api.APIResult;
import org.apache.lens.api.LensConf;
import org.apache.lens.api.LensSessionHandle;
+import org.apache.lens.api.Priority;
import org.apache.lens.api.jaxb.LensJAXBContextResolver;
import org.apache.lens.api.query.*;
import org.apache.lens.api.query.QueryStatus.Status;
@@ -269,7 +270,8 @@ public class TestQueryService extends LensJerseyTest {
long runningQueries = metricsSvc.getRunningQueries();
long finishedQueries = metricsSvc.getFinishedQueries();
- QueryHandle handle = executeAndGetHandle(target(), Optional.of(lensSessionId), Optional.of("select ID from "
+ int noOfQueriesBeforeExecution = queryService.allQueries.size();
+ QueryHandle theHandle = executeAndGetHandle(target(), Optional.of(lensSessionId), Optional.of("select ID from "
+ TEST_TABLE), Optional.<LensConf>absent(), mt);
// Get all queries
@@ -281,24 +283,25 @@ public class TestQueryService extends LensJerseyTest {
List<QueryHandle> allQueries = target.queryParam("sessionid", lensSessionId).request(mt)
.get(new GenericType<List<QueryHandle>>() {});
assertTrue(allQueries.size() >= 1);
- assertTrue(allQueries.contains(handle));
+ assertTrue(allQueries.contains(theHandle));
- String queryXML = target.path(handle.toString()).queryParam("sessionid", lensSessionId)
+ String queryXML = target.path(theHandle.toString()).queryParam("sessionid", lensSessionId)
.request(MediaType.APPLICATION_XML).get(String.class);
log.debug("query XML:{}", queryXML);
- Response response = target.path(handle.toString() + "001").queryParam("sessionid", lensSessionId).request(mt).get();
+ Response response =
+ target.path(theHandle.toString() + "001").queryParam("sessionid", lensSessionId).request(mt).get();
assertEquals(response.getStatus(), 404);
- LensQuery ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request(mt)
+ LensQuery query = target.path(theHandle.toString()).queryParam("sessionid", lensSessionId).request(mt)
.get(LensQuery.class);
// wait till the query finishes
- QueryStatus stat = ctx.getStatus();
+ QueryStatus stat = query.getStatus();
while (!stat.finished()) {
Thread.sleep(1000);
- ctx = target.path(handle.toString()).queryParam("sessionid", lensSessionId).request(mt).get(LensQuery.class);
- stat = ctx.getStatus();
+ query = target.path(theHandle.toString()).queryParam("sessionid", lensSessionId).request(mt).get(LensQuery.class);
+ stat = query.getStatus();
/*
Commented due to same issue as: https://issues.apache.org/jira/browse/LENS-683
switch (stat.getStatus()) {
@@ -312,9 +315,24 @@ public class TestQueryService extends LensJerseyTest {
}*/
}
- assertTrue(ctx.getSubmissionTime() > 0);
- assertTrue(ctx.getFinishTime() > 0);
- assertEquals(ctx.getStatus().getStatus(), Status.SUCCESSFUL);
+ assertTrue(query.getSubmissionTime() > 0);
+ assertTrue(query.getFinishTime() > 0);
+ assertEquals(query.getStatus().getStatus(), Status.SUCCESSFUL);
+
+ assertEquals(query.getPriority(), Priority.LOW);
+ //Check Query Priority can be read even after query is purged i,e query details are read from DB.
+ boolean isPurged = false;
+ while (!isPurged) {
+ isPurged = true;
+ for (QueryHandle aHandle : queryService.allQueries.keySet()) {
+ if (aHandle.equals(theHandle)) {
+ isPurged = false; //current query is still not purged
+ Thread.sleep(1000);
+ break;
+ }
+ }
+ }
+ assertEquals(query.getPriority(), Priority.LOW);
// Update conf for query
final FormDataMultiPart confpart = new FormDataMultiPart();
@@ -324,7 +342,7 @@ public class TestQueryService extends LensJerseyTest {
mt));
confpart.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), conf,
mt));
- APIResult updateConf = target.path(handle.toString()).request(mt)
+ APIResult updateConf = target.path(theHandle.toString()).request(mt)
.put(Entity.entity(confpart, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class);
assertEquals(updateConf.getStatus(), APIResult.Status.FAILED);
}