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/05 15:43:46 UTC
[04/21] incubator-quickstep git commit: Bug fix in initialization of
probabilities.
Bug fix in initialization of probabilities.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/e7e497ea
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/e7e497ea
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/e7e497ea
Branch: refs/heads/scheduler++
Commit: e7e497eae99622dc2a7fa0fbed7e1c2cb085a25d
Parents: 083d17d
Author: Harshad Deshmukh <hb...@apache.org>
Authored: Fri Jun 24 10:57:01 2016 -0500
Committer: Harshad Deshmukh <hb...@apache.org>
Committed: Tue Jul 5 10:43:10 2016 -0500
----------------------------------------------------------------------
query_execution/Learner.cpp | 7 +++--
query_execution/tests/Learner_unittest.cpp | 38 +++++++++++++++++++++++++
2 files changed, 42 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e7e497ea/query_execution/Learner.cpp
----------------------------------------------------------------------
diff --git a/query_execution/Learner.cpp b/query_execution/Learner.cpp
index 5d877b4..38a773b 100644
--- a/query_execution/Learner.cpp
+++ b/query_execution/Learner.cpp
@@ -184,9 +184,10 @@ void Learner::initializeDefaultProbabilitiesForPriorityLevels() {
for (auto priority_iter = execution_stats_.cbegin();
priority_iter != execution_stats_.cend();
++priority_iter) {
- sum_priority_levels += priority_iter->second.size();
- priority_levels.emplace_back(priority_iter->first);
- numerators.emplace_back(priority_iter->first);
+ const std::size_t curr_priority_level = priority_iter->first;
+ sum_priority_levels += curr_priority_level;
+ priority_levels.emplace_back(curr_priority_level);
+ numerators.emplace_back(curr_priority_level);
}
if (sum_priority_levels > 0) {
probabilities_of_priority_levels_->addOrUpdateObjectsNewDenominator(
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e7e497ea/query_execution/tests/Learner_unittest.cpp
----------------------------------------------------------------------
diff --git a/query_execution/tests/Learner_unittest.cpp b/query_execution/tests/Learner_unittest.cpp
index 74353f0..864bb22 100644
--- a/query_execution/tests/Learner_unittest.cpp
+++ b/query_execution/tests/Learner_unittest.cpp
@@ -84,4 +84,42 @@ TEST(LearnerTest, MultipleQueriesSamePriorityAddRemoveTest) {
EXPECT_EQ(0u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel));
}
+TEST(LearnerTest, MultipleQueriesDifferentPrioritiesAddRemoveTest) {
+ Learner learner;
+ std::unique_ptr<QueryHandle> handle1, handle2;
+ const std::size_t kPriorityLevel1 = 1;
+ const std::size_t kPriorityLevel2 = 2;
+ handle1.reset(new QueryHandle(1, kPriorityLevel1));
+ handle2.reset(new QueryHandle(2, kPriorityLevel2));
+
+ EXPECT_FALSE(learner.hasActiveQueries());
+ EXPECT_EQ(0u, learner.getTotalNumActiveQueries());
+ EXPECT_EQ(0u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel1));
+ EXPECT_EQ(0u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel2));
+
+ learner.addQuery(*handle1);
+ EXPECT_TRUE(learner.hasActiveQueries());
+ EXPECT_EQ(1u, learner.getTotalNumActiveQueries());
+ EXPECT_EQ(1u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel1));
+ EXPECT_EQ(0u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel2));
+
+ learner.addQuery(*handle2);
+ EXPECT_TRUE(learner.hasActiveQueries());
+ EXPECT_EQ(2u, learner.getTotalNumActiveQueries());
+ EXPECT_EQ(1u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel1));
+ EXPECT_EQ(1u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel2));
+
+ learner.removeQuery(handle2->query_id());
+ EXPECT_TRUE(learner.hasActiveQueries());
+ EXPECT_EQ(1u, learner.getTotalNumActiveQueries());
+ EXPECT_EQ(0u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel2));
+ EXPECT_EQ(1u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel1));
+
+ learner.removeQuery(handle1->query_id());
+ EXPECT_FALSE(learner.hasActiveQueries());
+ EXPECT_EQ(0u, learner.getTotalNumActiveQueries());
+ EXPECT_EQ(0u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel1));
+ EXPECT_EQ(0u, learner.getNumActiveQueriesInPriorityLevel(kPriorityLevel2));
+}
+
} // namespace quickstep