You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2017/01/25 07:48:04 UTC
ignite git commit: IGNITE-4436 WIP.
Repository: ignite
Updated Branches:
refs/heads/ignite-4436-2 [created] 7166237b0
IGNITE-4436 WIP.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/7166237b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/7166237b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/7166237b
Branch: refs/heads/ignite-4436-2
Commit: 7166237b0230970f01282bd6dfcdca41b3022ebe
Parents: ef04f35
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Wed Jan 25 14:48:45 2017 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Jan 25 14:48:45 2017 +0700
----------------------------------------------------------------------
.../processors/query/GridQueryIndexing.java | 10 ++++++-
.../processors/query/GridQueryProcessor.java | 28 ++++++++++++++++----
.../processors/query/h2/IgniteH2Indexing.java | 7 ++++-
.../h2/twostep/GridReduceQueryExecutor.java | 16 ++++++++---
4 files changed, 51 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/7166237b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
index 13c1b3d..df73231 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
@@ -239,7 +239,15 @@ public interface GridQueryIndexing {
public PreparedStatement prepareNativeStatement(String schema, String sql) throws SQLException;
/**
+ * Collect queries that already running more than specified duration.
+ *
+ * @param duration Duration to check.
+ * @return Collection of long running queries.
+ */
+ public Collection<String> longRunningQueries(long duration);
+
+ /**
* Cancels all executing queries.
*/
public void cancelAllQueries();
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7166237b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 3286bac..671e81c 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -119,7 +119,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
private static final int QRY_DETAIL_METRICS_EVICTION_FREQ = 3_000;
/** */
- private static Set<Class<?>> SQL_TYPES = new HashSet<>(F.<Class<?>>asList(
+ private static final Set<Class<?>> SQL_TYPES = new HashSet<>(F.<Class<?>>asList(
Integer.class,
Boolean.class,
Byte.class,
@@ -490,7 +490,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
return;
}
- catch (InterruptedException e) {
+ catch (InterruptedException ignored) {
U.warn(log, "Interrupted while waiting for active queries cancellation.");
Thread.currentThread().interrupt();
@@ -937,6 +937,24 @@ public class GridQueryProcessor extends GridProcessorAdapter {
}
/**
+ * Collect queries that already running more than specified duration.
+ *
+ * @param duration Duration to check.
+ * @return Collection of long running queries.
+ */
+ public Collection<String> longRunningQueries(long duration) {
+ Collection<String> res = new ArrayList<>();
+
+ if (moduleEnabled()) {
+ idx.longRunningQueries(duration);
+
+ res.add("Query");
+ }
+
+ return res;
+ }
+
+ /**
* @param sqlQry Sql query.
* @param params Params.
*/
@@ -2745,7 +2763,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
}
/** Accessor that deals with fields. */
- private final static class FieldAccessor implements PropertyAccessor {
+ private static final class FieldAccessor implements PropertyAccessor {
/** Field to access. */
private final Field fld;
@@ -2788,7 +2806,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
}
/** Getter and setter methods based accessor. */
- private final static class MethodsAccessor implements PropertyAccessor {
+ private static final class MethodsAccessor implements PropertyAccessor {
/** */
private final Method getter;
@@ -2846,7 +2864,7 @@ public class GridQueryProcessor extends GridProcessorAdapter {
}
/** Accessor with getter only. */
- private final static class ReadOnlyMethodsAccessor implements PropertyAccessor {
+ private static final class ReadOnlyMethodsAccessor implements PropertyAccessor {
/** */
private final Method getter;
http://git-wip-us.apache.org/repos/asf/ignite/blob/7166237b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 9037943..32ac4af 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -3147,8 +3147,13 @@ public class IgniteH2Indexing implements GridQueryIndexing {
}
/** {@inheritDoc} */
+ @Override public Collection<String> longRunningQueries(long duration) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
@Override public void cancelAllQueries() {
for (Connection conn : conns)
U.close(conn, log);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/7166237b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
index 1f00ed2..cdae6ec 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridReduceQueryExecutor.java
@@ -497,7 +497,8 @@ public class GridReduceQueryExecutor {
final String space = cctx.name();
- final QueryRun r = new QueryRun(h2.connectionForSpace(space), qry.mapQueries().size(), qry.pageSize());
+ final QueryRun r = new QueryRun(h2.connectionForSpace(space), qry.mapQueries().size(), qry.pageSize(),
+ System.currentTimeMillis(), cancel);
AffinityTopologyVersion topVer = h2.readyTopologyVersion();
@@ -1318,6 +1319,12 @@ public class GridReduceQueryExecutor {
/** */
private final int pageSize;
+ /** */
+ private final long start;
+
+ /** */
+ private final GridQueryCancel cancel;
+
/** Can be either CacheException in case of error or AffinityTopologyVersion to retry if needed. */
private final AtomicReference<Object> state = new AtomicReference<>();
@@ -1325,11 +1332,14 @@ public class GridReduceQueryExecutor {
* @param conn Connection.
* @param idxsCnt Number of indexes.
* @param pageSize Page size.
+ * @param start Start time.
*/
- private QueryRun(Connection conn, int idxsCnt, int pageSize) {
+ private QueryRun(Connection conn, int idxsCnt, int pageSize, long start, GridQueryCancel cancel) {
this.conn = (JdbcConnection)conn;
this.idxs = new ArrayList<>(idxsCnt);
this.pageSize = pageSize > 0 ? pageSize : GridCacheTwoStepQuery.DFLT_PAGE_SIZE;
+ this.start = start;
+ this.cancel = cancel;
}
/**
@@ -1384,4 +1394,4 @@ public class GridReduceQueryExecutor {
return copy(msg, n, partsMap);
}
}
-}
\ No newline at end of file
+}