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/08/22 18:56:24 UTC
[15/22] incubator-quickstep git commit: Updates
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/fbcc912b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/fbcc912b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/fbcc912b
Branch: refs/heads/LIP-for-tpch-merged
Commit: fbcc912b241f7326a027302ac94e3fc018be2103
Parents: ec85903
Author: Jianqiao Zhu <ji...@cs.wisc.edu>
Authored: Mon Aug 15 14:50:45 2016 -0500
Committer: Jianqiao Zhu <ji...@cs.wisc.edu>
Committed: Mon Aug 22 13:47:34 2016 -0500
----------------------------------------------------------------------
catalog/CMakeLists.txt | 3 +++
query_optimizer/CMakeLists.txt | 3 +++
query_optimizer/cost_model/CMakeLists.txt | 2 ++
relational_operators/CMakeLists.txt | 2 ++
relational_operators/SelectOperator.cpp | 21 +++++++++++++++++----
relational_operators/SelectOperator.hpp | 10 ++++++----
storage/CMakeLists.txt | 7 +++++++
storage/StorageBlock.cpp | 15 ++++++++++++---
utility/CMakeLists.txt | 4 ++++
utility/EventProfiler.cpp | 2 +-
utility/EventProfiler.hpp | 2 +-
11 files changed, 58 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/catalog/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/catalog/CMakeLists.txt b/catalog/CMakeLists.txt
index fc01458..3302bb5 100644
--- a/catalog/CMakeLists.txt
+++ b/catalog/CMakeLists.txt
@@ -127,6 +127,9 @@ target_link_libraries(quickstep_catalog_CatalogRelationConstraints
target_link_libraries(quickstep_catalog_CatalogRelationStatistics
quickstep_catalog_CatalogTypedefs
quickstep_catalog_Catalog_proto
+ quickstep_types_LongType
+ quickstep_types_NullType
+ quickstep_types_TypedValue
quickstep_utility_Macros)
target_link_libraries(quickstep_catalog_IndexScheme
glog
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/query_optimizer/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/CMakeLists.txt b/query_optimizer/CMakeLists.txt
index d0e0033..3e4c8fa 100644
--- a/query_optimizer/CMakeLists.txt
+++ b/query_optimizer/CMakeLists.txt
@@ -160,6 +160,9 @@ target_link_libraries(quickstep_queryoptimizer_ExecutionHeuristics
quickstep_queryexecution_QueryContext
quickstep_queryexecution_QueryContext_proto
quickstep_queryoptimizer_QueryPlan
+ quickstep_queryoptimizer_physical_HashJoin
+ quickstep_queryoptimizer_physical_Physical
+ quickstep_relationaloperators_SelectOperator
quickstep_utility_Macros)
target_link_libraries(quickstep_queryoptimizer_LogicalGenerator
glog
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/query_optimizer/cost_model/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/cost_model/CMakeLists.txt b/query_optimizer/cost_model/CMakeLists.txt
index abbc3da..0a3db16 100644
--- a/query_optimizer/cost_model/CMakeLists.txt
+++ b/query_optimizer/cost_model/CMakeLists.txt
@@ -45,6 +45,8 @@ target_link_libraries(quickstep_queryoptimizer_costmodel_SimpleCostModel
target_link_libraries(quickstep_queryoptimizer_costmodel_StarSchemaSimpleCostModel
glog
quickstep_catalog_CatalogRelation
+ quickstep_catalog_CatalogRelationStatistics
+ quickstep_catalog_CatalogTypedefs
quickstep_queryoptimizer_costmodel_CostModel
quickstep_queryoptimizer_expressions_AttributeReference
quickstep_queryoptimizer_expressions_ComparisonExpression
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/relational_operators/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/relational_operators/CMakeLists.txt b/relational_operators/CMakeLists.txt
index 43a42f9..6d71794 100644
--- a/relational_operators/CMakeLists.txt
+++ b/relational_operators/CMakeLists.txt
@@ -302,6 +302,8 @@ target_link_libraries(quickstep_relationaloperators_SelectOperator
quickstep_storage_StorageBlock
quickstep_storage_StorageBlockInfo
quickstep_storage_StorageManager
+ quickstep_utility_BloomFilterAdapter
+ quickstep_utility_EventProfiler
quickstep_utility_Macros
tmb)
if(QUICKSTEP_HAVE_LIBNUMA)
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/relational_operators/SelectOperator.cpp
----------------------------------------------------------------------
diff --git a/relational_operators/SelectOperator.cpp b/relational_operators/SelectOperator.cpp
index 5a67e2d..9b615cc 100644
--- a/relational_operators/SelectOperator.cpp
+++ b/relational_operators/SelectOperator.cpp
@@ -30,6 +30,7 @@
#include "storage/StorageBlock.hpp"
#include "storage/StorageBlockInfo.hpp"
#include "storage/StorageManager.hpp"
+#include "utility/EventProfiler.hpp"
#include "glog/logging.h"
@@ -58,7 +59,9 @@ void SelectOperator::addWorkOrders(WorkOrdersContainer *container,
simple_selection_,
selection,
output_destination,
- storage_manager),
+ storage_manager,
+ 0,
+ op_index_),
op_index_);
}
} else {
@@ -75,7 +78,9 @@ void SelectOperator::addWorkOrders(WorkOrdersContainer *container,
simple_selection_,
selection,
output_destination,
- storage_manager),
+ storage_manager,
+ 0,
+ op_index_),
op_index_);
++num_workorders_generated_;
}
@@ -109,7 +114,8 @@ void SelectOperator::addPartitionAwareWorkOrders(WorkOrdersContainer *container,
selection,
output_destination,
storage_manager,
- placement_scheme_->getNUMANodeForBlock(input_block_id)),
+ placement_scheme_->getNUMANodeForBlock(input_block_id),
+ op_index_),
op_index_);
}
}
@@ -132,7 +138,8 @@ void SelectOperator::addPartitionAwareWorkOrders(WorkOrdersContainer *container,
selection,
output_destination,
storage_manager,
- placement_scheme_->getNUMANodeForBlock(block_in_partition)),
+ placement_scheme_->getNUMANodeForBlock(block_in_partition),
+ op_index_),
op_index_);
++num_workorders_generated_in_partition_[part_id];
}
@@ -261,6 +268,10 @@ serialization::WorkOrder* SelectOperator::createWorkOrderProto(const block_id bl
void SelectWorkOrder::execute() {
+// auto *container = simple_profiler.getContainer();
+// container->setContext(getOperatorIndex());
+// auto *line = container->getEventLine(0);
+// line->emplace_back();
BlockReference block(
storage_manager_->getBlock(input_block_id_, input_relation_, getPreferredNUMANodes()[0]));
@@ -277,6 +288,8 @@ void SelectWorkOrder::execute() {
bloom_filter_attribute_ids_,
output_destination_);
}
+// line->back().endEvent();
+// line->back().setPayload(getOperatorIndex(), 0);
}
} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/relational_operators/SelectOperator.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/SelectOperator.hpp b/relational_operators/SelectOperator.hpp
index bc587a1..6758f1b 100644
--- a/relational_operators/SelectOperator.hpp
+++ b/relational_operators/SelectOperator.hpp
@@ -345,8 +345,9 @@ class SelectWorkOrder : public WorkOrder {
const std::vector<std::unique_ptr<const Scalar>> *selection,
InsertDestination *output_destination,
StorageManager *storage_manager,
- const numa_node_id numa_node = 0)
- : WorkOrder(query_id),
+ const numa_node_id numa_node = 0,
+ const int op_index = -1)
+ : WorkOrder(query_id, op_index),
input_relation_(input_relation),
input_block_id_(input_block_id),
predicate_(predicate),
@@ -391,8 +392,9 @@ class SelectWorkOrder : public WorkOrder {
const std::vector<std::unique_ptr<const Scalar>> *selection,
InsertDestination *output_destination,
StorageManager *storage_manager,
- const numa_node_id numa_node = 0)
- : WorkOrder(query_id),
+ const numa_node_id numa_node = 0,
+ const int op_index = -1)
+ : WorkOrder(query_id, op_index),
input_relation_(input_relation),
input_block_id_(input_block_id),
predicate_(predicate),
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/storage/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/storage/CMakeLists.txt b/storage/CMakeLists.txt
index 8fbe7de..11e7f40 100644
--- a/storage/CMakeLists.txt
+++ b/storage/CMakeLists.txt
@@ -289,10 +289,14 @@ target_link_libraries(quickstep_storage_AggregationOperationState
quickstep_storage_StorageBlock
quickstep_storage_StorageBlockInfo
quickstep_storage_StorageManager
+ quickstep_storage_ValueAccessor
+ quickstep_storage_ValueAccessorUtil
quickstep_types_TypedValue
quickstep_types_containers_ColumnVector
quickstep_types_containers_ColumnVectorsValueAccessor
quickstep_types_containers_Tuple
+ quickstep_utility_BloomFilter
+ quickstep_utility_BloomFilterAdapter
quickstep_utility_Macros)
target_link_libraries(quickstep_storage_AggregationOperationState_proto
quickstep_expressions_Expressions_proto
@@ -938,6 +942,9 @@ target_link_libraries(quickstep_storage_StorageBlock
quickstep_types_containers_ColumnVectorsValueAccessor
quickstep_types_containers_Tuple
quickstep_types_operations_comparisons_ComparisonUtil
+ quickstep_utility_BloomFilter
+ quickstep_utility_BloomFilterAdapter
+ quickstep_utility_EventProfiler
quickstep_utility_Macros
quickstep_utility_PtrVector)
# CMAKE_VALIDATE_IGNORE_BEGIN
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/storage/StorageBlock.cpp
----------------------------------------------------------------------
diff --git a/storage/StorageBlock.cpp b/storage/StorageBlock.cpp
index 7bbba9a..a115af9 100644
--- a/storage/StorageBlock.cpp
+++ b/storage/StorageBlock.cpp
@@ -61,6 +61,7 @@
#include "types/operations/comparisons/ComparisonUtil.hpp"
#include "utility/BloomFilter.hpp"
#include "utility/BloomFilterAdapter.hpp"
+#include "utility/EventProfiler.hpp"
#include "utility/Macros.hpp"
#include "gflags/gflags.h"
@@ -432,6 +433,8 @@ void StorageBlock::selectSimple(const std::vector<attribute_id> &selection,
InsertDestinationInterface *destination) const {
std::unique_ptr<ValueAccessor> accessor;
std::unique_ptr<TupleIdSequence> matches;
+// auto *container = simple_profiler.getContainer();
+// auto *line = container->getEventLine(1);
if (bloom_filters.size() > 0) {
const std::size_t num_tuples = tuple_store_->numTuples();
@@ -486,7 +489,6 @@ void StorageBlock::selectSimple(const std::vector<attribute_id> &selection,
matches.reset(new_matches);
accessor.reset(tuple_store_->createValueAccessor(matches.get()));
}
-
destination->bulkInsertTuplesWithRemappedAttributes(selection,
accessor.get());
}
@@ -1337,16 +1339,23 @@ TupleIdSequence* StorageBlock::getMatchesForPredicate(const Predicate *predicate
std::unique_ptr<ValueAccessor> value_accessor(tuple_store_->createValueAccessor());
std::unique_ptr<TupleIdSequence> existence_map;
+ const TupleIdSequence *combined_filter;
if (!tuple_store_->isPacked()) {
existence_map.reset(tuple_store_->getExistenceMap());
+ if (filter != nullptr) {
+ existence_map->intersectWith(*filter);
+ }
+ combined_filter = existence_map.get();
+ } else {
+ combined_filter = filter;
}
SubBlocksReference sub_blocks_ref(*tuple_store_,
indices_,
indices_consistent_);
return predicate->getAllMatches(value_accessor.get(),
&sub_blocks_ref,
- filter,
- existence_map.get());
+ nullptr,
+ combined_filter);
}
std::unordered_map<attribute_id, TypedValue>* StorageBlock::generateUpdatedValues(
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/utility/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/utility/CMakeLists.txt b/utility/CMakeLists.txt
index ee65eeb..2f435d4 100644
--- a/utility/CMakeLists.txt
+++ b/utility/CMakeLists.txt
@@ -261,11 +261,15 @@ target_link_libraries(quickstep_utility_PrimeNumber
glog)
target_link_libraries(quickstep_utility_PlanVisualizer
quickstep_catalog_CatalogRelation
+ quickstep_catalog_CatalogRelationStatistics
+ quickstep_catalog_CatalogTypedefs
quickstep_queryoptimizer_costmodel_StarSchemaSimpleCostModel
quickstep_queryoptimizer_expressions_AttributeReference
+ quickstep_queryoptimizer_physical_Aggregate
quickstep_queryoptimizer_physical_HashJoin
quickstep_queryoptimizer_physical_Physical
quickstep_queryoptimizer_physical_PhysicalType
+ quickstep_queryoptimizer_physical_Selection
quickstep_queryoptimizer_physical_TableReference
quickstep_queryoptimizer_physical_TopLevelPlan
quickstep_utility_Macros
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/utility/EventProfiler.cpp
----------------------------------------------------------------------
diff --git a/utility/EventProfiler.cpp b/utility/EventProfiler.cpp
index 728ebff..e345993 100644
--- a/utility/EventProfiler.cpp
+++ b/utility/EventProfiler.cpp
@@ -23,7 +23,7 @@
namespace quickstep {
-EventProfiler<int, std::size_t> simple_profiler;
+EventProfiler<int, std::size_t, std::size_t> simple_profiler;
EventProfiler<std::size_t> relop_profiler;
} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/fbcc912b/utility/EventProfiler.hpp
----------------------------------------------------------------------
diff --git a/utility/EventProfiler.hpp b/utility/EventProfiler.hpp
index 70024e6..f7fa598 100644
--- a/utility/EventProfiler.hpp
+++ b/utility/EventProfiler.hpp
@@ -178,7 +178,7 @@ class EventProfiler {
Mutex mutex_;
};
-extern EventProfiler<int, std::size_t> simple_profiler;
+extern EventProfiler<int, std::size_t, std::size_t> simple_profiler;
extern EventProfiler<std::size_t> relop_profiler;
/** @} */