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/07/02 23:17:46 UTC

[10/20] 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/6dfbcf0d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/6dfbcf0d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/6dfbcf0d

Branch: refs/heads/scheduler++
Commit: 6dfbcf0db151f9d22ce0820053bd7f2f3a571042
Parents: a3f494d
Author: Harshad Deshmukh <hb...@apache.org>
Authored: Tue Jun 28 14:35:53 2016 -0500
Committer: Harshad Deshmukh <hb...@apache.org>
Committed: Sat Jul 2 18:16:30 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/6dfbcf0d/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) {