You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by hb...@apache.org on 2016/06/30 20:49:53 UTC

[15/18] incubator-quickstep git commit: More conditions and logging in PolicyEnforcer.

More conditions and logging in PolicyEnforcer.


Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/10bc4d7e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/10bc4d7e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/10bc4d7e

Branch: refs/heads/scheduler++
Commit: 10bc4d7ed9a1bd6f25cd0e7b5e81e5082034fe0d
Parents: 17e6cdd
Author: Harshad Deshmukh <hb...@apache.org>
Authored: Tue Jun 28 14:35:53 2016 -0500
Committer: Harshad Deshmukh <hb...@apache.org>
Committed: Thu Jun 30 15:49:06 2016 -0500

----------------------------------------------------------------------
 query_execution/PriorityPolicyEnforcer.cpp | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/10bc4d7e/query_execution/PriorityPolicyEnforcer.cpp
----------------------------------------------------------------------
diff --git a/query_execution/PriorityPolicyEnforcer.cpp b/query_execution/PriorityPolicyEnforcer.cpp
index 6467367..f9a741d 100644
--- a/query_execution/PriorityPolicyEnforcer.cpp
+++ b/query_execution/PriorityPolicyEnforcer.cpp
@@ -174,18 +174,26 @@ void PriorityPolicyEnforcer::getWorkerMessages(
     // While there are more priority levels to be checked ..
     while (checked_priority_levels.size() < priority_query_ids_.size()) {
       const int chosen_priority_level = learner_->pickRandomPriorityLevel();
-      DCHECK(chosen_priority_level != kInvalidPriorityLevel);
-      WorkerMessage *next_worker_message =
-          getNextWorkerMessageFromPriorityLevel(chosen_priority_level,
-                                                &finished_queries_ids);
-      if (next_worker_message != nullptr) {
-        worker_messages->push_back(std::unique_ptr<WorkerMessage>(next_worker_message));
+      if (chosen_priority_level == kInvalidPriorityLevel) {
+        LOG(INFO) << "No valid priority level chosen";
+        break;
+      } else if (checked_priority_levels.find(static_cast<std::size_t>(
+                     chosen_priority_level)) != checked_priority_levels.end()) {
+        DLOG(INFO) << "The chosen priority level " << chosen_priority_level << " was checked already";
+        continue;
       } else {
-        checked_priority_levels[static_cast<std::size_t>(chosen_priority_level)] = true;
+        WorkerMessage *next_worker_message =
+            getNextWorkerMessageFromPriorityLevel(chosen_priority_level,
+                                                  &finished_queries_ids);
+        if (next_worker_message != nullptr) {
+          worker_messages->push_back(std::unique_ptr<WorkerMessage>(next_worker_message));
+        } else {
+          checked_priority_levels[static_cast<std::size_t>(chosen_priority_level)] = true;
+        }
       }
     }
   } else {
-    LOG(INFO) << "No active queries in the learner at this point.";
+    DLOG(INFO) << "No active queries in the learner at this point.";
     return;
   }
   for (const std::size_t finished_qid : finished_queries_ids) {