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/16 22:17:03 UTC

[2/8] incubator-quickstep git commit: Fixed bugs about float division

Fixed bugs about float division


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

Branch: refs/heads/memory-estimate
Commit: eecdc5d87ed73044e4ce45e4a76c985fbf17f091
Parents: a840544
Author: Harshad Deshmukh <hb...@apache.org>
Authored: Thu Jul 14 23:33:14 2016 -0500
Committer: Harshad Deshmukh <hb...@apache.org>
Committed: Thu Jul 14 23:33:14 2016 -0500

----------------------------------------------------------------------
 query_execution/Learner.cpp | 10 +++++-----
 query_execution/Learner.hpp |  8 ++++----
 2 files changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/eecdc5d8/query_execution/Learner.cpp
----------------------------------------------------------------------
diff --git a/query_execution/Learner.cpp b/query_execution/Learner.cpp
index 0bedb73..264e84e 100644
--- a/query_execution/Learner.cpp
+++ b/query_execution/Learner.cpp
@@ -76,7 +76,7 @@ void Learner::updateProbabilitiesForQueriesInPriorityLevel(
     return;
   }
   // Else, there are more than one queries for the given priority level.
-  std::unordered_map<std::size_t, std::size_t>
+  std::unordered_map<std::size_t, float>
       mean_workorders_per_query =
           getMeanWorkOrderTimesForQueriesInPriorityLevel(priority_level);
   const float denominator = calculateDenominator(mean_workorders_per_query);
@@ -108,16 +108,16 @@ void Learner::updateProbabilitiesOfAllPriorityLevels() {
     return;
   }
   // Compute the predicted work order execution times for all the level.
-  std::unordered_map<std::size_t, std::size_t> predicted_time_for_level;
+  std::unordered_map<std::size_t, float> predicted_time_for_level;
   std::size_t sum_active_priorities = 0;
   for (auto priority_iter = execution_stats_.begin();
        priority_iter != execution_stats_.end();
        ++priority_iter) {
-    std::size_t total_time_curr_level = 0;
+    float total_time_curr_level = 0;
     const std::size_t curr_priority_level = priority_iter->first;
     sum_active_priorities += curr_priority_level;
     // For each query, find its predicted work order execution time.
-    const std::unordered_map<std::size_t, std::size_t>
+    const std::unordered_map<std::size_t, float>
         mean_workorders_all_queries_curr_level =
             getMeanWorkOrderTimesForQueriesInPriorityLevel(
                 curr_priority_level);
@@ -138,7 +138,7 @@ void Learner::updateProbabilitiesOfAllPriorityLevels() {
   float total_num_workorders = 0;
   for (auto predicted_time_iter : predicted_time_for_level) {
     const std::size_t curr_priority_level = predicted_time_iter.first;
-    const std::size_t num_workorders_for_curr_level =
+    const float num_workorders_for_curr_level =
         (predicted_time_iter.second == 0)
             ? 0
             : static_cast<float>(curr_priority_level) /

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/eecdc5d8/query_execution/Learner.hpp
----------------------------------------------------------------------
diff --git a/query_execution/Learner.hpp b/query_execution/Learner.hpp
index 26daf6e..f61e4f9 100644
--- a/query_execution/Learner.hpp
+++ b/query_execution/Learner.hpp
@@ -467,18 +467,18 @@ class Learner {
    * @return An unordered_map in which: Key = query ID.
    *         Value = Mean time per work order for that query.
    **/
-  inline std::unordered_map<std::size_t, std::size_t>
+  inline std::unordered_map<std::size_t, float>
   getMeanWorkOrderTimesForQueriesInPriorityLevel(
       const std::size_t priority_level) {
     DCHECK(isPriorityLevelPresent(priority_level));
-    std::unordered_map<std::size_t, std::size_t> result;
+    std::unordered_map<std::size_t, float> result;
     for (auto it = execution_stats_[priority_level].begin();
          it != execution_stats_[priority_level].end();
          ++it) {
       DCHECK(it->second.get() != nullptr);
       auto query_stats = it->second->getCurrentStats();
       result[it->first] =
-          query_stats.second == 0 ? 0 : query_stats.first / query_stats.second;
+          query_stats.second == 0 ? 0 : query_stats.first / float(query_stats.second);
     }
     return result;
   }
@@ -494,7 +494,7 @@ class Learner {
    * @return The denominator to be used for probability calculations.
    **/
   inline float calculateDenominator(
-      const std::unordered_map<std::size_t, std::size_t>
+      const std::unordered_map<std::size_t, float>
           &mean_workorder_per_query) const {
     float denominator = 0;
     for (const auto &element : mean_workorder_per_query) {