You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by ji...@apache.org on 2016/06/13 21:36:06 UTC
incubator-quickstep git commit: updates
Repository: incubator-quickstep
Updated Branches:
refs/heads/adaptive-bloom-filters 946332c38 -> ca9e92bbf
updates
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/ca9e92bb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/ca9e92bb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/ca9e92bb
Branch: refs/heads/adaptive-bloom-filters
Commit: ca9e92bbfe5f05a0ead4efbe6d5681ac8df046bd
Parents: 946332c
Author: Jianqiao Zhu <ji...@cs.wisc.edu>
Authored: Mon Jun 13 16:35:50 2016 -0500
Committer: Jianqiao Zhu <ji...@cs.wisc.edu>
Committed: Mon Jun 13 16:35:50 2016 -0500
----------------------------------------------------------------------
query_optimizer/ExecutionHeuristics.cpp | 17 +++--------------
query_optimizer/ExecutionHeuristics.hpp | 2 +-
utility/EventProfiler.hpp | 6 ++++++
3 files changed, 10 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/ca9e92bb/query_optimizer/ExecutionHeuristics.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/ExecutionHeuristics.cpp b/query_optimizer/ExecutionHeuristics.cpp
index fc31c53..1f2163e 100644
--- a/query_optimizer/ExecutionHeuristics.cpp
+++ b/query_optimizer/ExecutionHeuristics.cpp
@@ -107,20 +107,9 @@ void ExecutionHeuristics::optimizeExecutionPlan(QueryPlan *query_plan,
void ExecutionHeuristics::setBloomFilterProperties(serialization::BloomFilter *bloom_filter_proto,
const CatalogRelation *relation) {
- const std::size_t cardinality = relation->estimateTupleCardinality();
- if (cardinality < kOneThousand) {
- bloom_filter_proto->set_bloom_filter_size(kOneThousand / kCompressionFactor);
- bloom_filter_proto->set_number_of_hashes(kVeryLowSparsityHash);
- } else if (cardinality < kTenThousand) {
- bloom_filter_proto->set_bloom_filter_size(kTenThousand / kCompressionFactor);
- bloom_filter_proto->set_number_of_hashes(kLowSparsityHash);
- } else if (cardinality < kHundredThousand) {
- bloom_filter_proto->set_bloom_filter_size(kHundredThousand / kCompressionFactor);
- bloom_filter_proto->set_number_of_hashes(kMediumSparsityHash);
- } else {
- bloom_filter_proto->set_bloom_filter_size(kMillion / kCompressionFactor);
- bloom_filter_proto->set_number_of_hashes(kHighSparsityHash);
- }
+ const std::size_t cardinality = relation->getStatistics().getNumTuples();
+ bloom_filter_proto->set_bloom_filter_size(cardinality);
+ bloom_filter_proto->set_number_of_hashes(3);
}
} // namespace optimizer
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/ca9e92bb/query_optimizer/ExecutionHeuristics.hpp
----------------------------------------------------------------------
diff --git a/query_optimizer/ExecutionHeuristics.hpp b/query_optimizer/ExecutionHeuristics.hpp
index 92a7fe8..c43d591 100644
--- a/query_optimizer/ExecutionHeuristics.hpp
+++ b/query_optimizer/ExecutionHeuristics.hpp
@@ -49,7 +49,7 @@ class ExecutionHeuristics {
static const std::size_t kHundredThousand = 100000;
static const std::size_t kMillion = 1000000;
- static const std::size_t kCompressionFactor = 10;
+ static const std::size_t kCompressionFactor = 1;
static const std::size_t kVeryLowSparsityHash = 1;
static const std::size_t kLowSparsityHash = 2;
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/ca9e92bb/utility/EventProfiler.hpp
----------------------------------------------------------------------
diff --git a/utility/EventProfiler.hpp b/utility/EventProfiler.hpp
index 7ad9105..9c842a7 100644
--- a/utility/EventProfiler.hpp
+++ b/utility/EventProfiler.hpp
@@ -53,6 +53,7 @@ class EventProfiler {
clock::time_point start_time;
clock::time_point end_time;
bool is_finished;
+ std::size_t payload;
explicit EventInfo(const clock::time_point &start_time_in)
: start_time(start_time_in),
@@ -64,6 +65,10 @@ class EventProfiler {
is_finished(false) {
}
+ inline void setPayload(const std::size_t &in_payload) {
+ payload = in_payload;
+ }
+
inline void endEvent() {
end_time = clock::now();
is_finished = true;
@@ -108,6 +113,7 @@ class EventProfiler {
os << std::setprecision(12)
<< event_id << ","
<< thread_id << "," << event_group.first << ","
+ << event_info.payload << ","
<< std::chrono::duration<double>(event_info.start_time - zero_time).count()
<< ","
<< std::chrono::duration<double>(event_info.end_time - zero_time).count()