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/16 18:06:30 UTC

incubator-quickstep git commit: Updates

Repository: incubator-quickstep
Updated Branches:
  refs/heads/LIP-for-tpch 82e7efd93 -> e7524cbbd


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/e7524cbb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/e7524cbb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/e7524cbb

Branch: refs/heads/LIP-for-tpch
Commit: e7524cbbd633c5553d7aaa812998717d8bbb7b16
Parents: 82e7efd
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 15 14:50:45 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/e7524cbb/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/e7524cbb/query_optimizer/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/CMakeLists.txt b/query_optimizer/CMakeLists.txt
index aaad17c..7440151 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/e7524cbb/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/e7524cbb/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/e7524cbb/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/e7524cbb/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/e7524cbb/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/e7524cbb/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/e7524cbb/utility/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/utility/CMakeLists.txt b/utility/CMakeLists.txt
index 46389f0..5d8e8c2 100644
--- a/utility/CMakeLists.txt
+++ b/utility/CMakeLists.txt
@@ -259,11 +259,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/e7524cbb/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/e7524cbb/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;
 
 /** @} */