You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2017/08/14 10:30:39 UTC
[29/50] ignite git commit: Next page request.
Next page request.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9e119bdd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9e119bdd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9e119bdd
Branch: refs/heads/ignite-5991-6019
Commit: 9e119bddf900f38b47bd1a1a64d5290c56d15d35
Parents: f9960df
Author: devozerov <vo...@gridgain.com>
Authored: Mon Aug 14 10:54:14 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Mon Aug 14 10:54:14 2017 +0300
----------------------------------------------------------------------
.../query/h2/twostep/GridMapQueryExecutor.java | 24 ++++++++++++++++----
1 file changed, 19 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/9e119bdd/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
index 0fd9b75..39dff8a 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMapQueryExecutor.java
@@ -765,8 +765,8 @@ public class GridMapQueryExecutor {
* @param node Node.
* @param req Request.
*/
- private void onNextPageRequest(ClusterNode node, GridQueryNextPageRequest req) {
- MapNodeResults nodeRess = qryRess.get(node.id());
+ private void onNextPageRequest(final ClusterNode node, final GridQueryNextPageRequest req) {
+ final MapNodeResults nodeRess = qryRess.get(node.id());
if (nodeRess == null) {
sendError(node, req.queryRequestId(), new CacheException("No node result found for request: " + req));
@@ -779,14 +779,28 @@ public class GridMapQueryExecutor {
return;
}
- MapQueryResults qr = nodeRess.get(req.queryRequestId(), req.segmentId());
+ final MapQueryResults qr = nodeRess.get(req.queryRequestId(), req.segmentId());
if (qr == null)
sendError(node, req.queryRequestId(), new CacheException("No query result found for request: " + req));
else if (qr.cancelled())
sendError(node, req.queryRequestId(), new QueryCancelledException());
- else
- sendNextPage(nodeRess, node, qr, req.query(), req.segmentId(), req.pageSize());
+ else {
+ MapQueryLazyWorkerKey lazyWorkerKey =
+ new MapQueryLazyWorkerKey(node.id(), req.queryRequestId(), req.segmentId());
+
+ MapQueryLazyWorker lazyWorker = lazyWorkers.get(lazyWorkerKey);
+
+ if (lazyWorker != null) {
+ lazyWorker.submit(new Runnable() {
+ @Override public void run() {
+ sendNextPage(nodeRess, node, qr, req.query(), req.segmentId(), req.pageSize());
+ }
+ });
+ }
+ else
+ sendNextPage(nodeRess, node, qr, req.query(), req.segmentId(), req.pageSize());
+ }
}
/**