You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by na...@apache.org on 2016/07/08 23:04:02 UTC
incubator-quickstep git commit: Add flags for configuring Bloom
filter.
Repository: incubator-quickstep
Updated Branches:
refs/heads/expt_bloom_filter 14f726e1d -> 4c5b736be
Add flags for configuring Bloom filter.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/4c5b736b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/4c5b736b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/4c5b736b
Branch: refs/heads/expt_bloom_filter
Commit: 4c5b736bec8a7f88ee4e3a827f5c9782b6974004
Parents: 14f726e
Author: Navneet Potti <na...@gmail.com>
Authored: Fri Jul 8 18:00:24 2016 -0500
Committer: Navneet Potti <na...@gmail.com>
Committed: Fri Jul 8 18:00:24 2016 -0500
----------------------------------------------------------------------
query_optimizer/ExecutionHeuristics.cpp | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/4c5b736b/query_optimizer/ExecutionHeuristics.cpp
----------------------------------------------------------------------
diff --git a/query_optimizer/ExecutionHeuristics.cpp b/query_optimizer/ExecutionHeuristics.cpp
index 1f2163e..1d35e22 100644
--- a/query_optimizer/ExecutionHeuristics.cpp
+++ b/query_optimizer/ExecutionHeuristics.cpp
@@ -32,6 +32,13 @@
namespace quickstep {
namespace optimizer {
+static const std::size_t kNumBitsPerByte = 8;
+DEFINE_int32(bloom_num_bits_per_tuple, kNumBitsPerByte,
+ "Number of bits per tuple used to size the Bloom filter.");
+
+DEFINE_int32(bloom_num_hash_fns, 3,
+ "Number of hash functions used in the Bloom filter.");
+
void ExecutionHeuristics::optimizeExecutionPlan(QueryPlan *query_plan,
serialization::QueryContext *query_context_proto) {
// Currently this only optimizes left deep joins using bloom filters.
@@ -108,8 +115,9 @@ void ExecutionHeuristics::optimizeExecutionPlan(QueryPlan *query_plan,
void ExecutionHeuristics::setBloomFilterProperties(serialization::BloomFilter *bloom_filter_proto,
const CatalogRelation *relation) {
const std::size_t cardinality = relation->getStatistics().getNumTuples();
- bloom_filter_proto->set_bloom_filter_size(cardinality);
- bloom_filter_proto->set_number_of_hashes(3);
+ bloom_filter_proto->set_bloom_filter_size(
+ (FLAGS_bloom_num_bits_per_tuple * cardinality)/kNumBitsPerByte);
+ bloom_filter_proto->set_number_of_hashes(FLAGS_bloom_num_hash_fns);
}
} // namespace optimizer