You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by sp...@apache.org on 2016/12/11 17:45:38 UTC

[15/51] [abbrv] [partial] incubator-quickstep git commit: remove c++ files

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_execution/tests/WorkerSelectionPolicy_unittest.cpp
----------------------------------------------------------------------
diff --git a/query_execution/tests/WorkerSelectionPolicy_unittest.cpp b/query_execution/tests/WorkerSelectionPolicy_unittest.cpp
deleted file mode 100644
index 68de5e5..0000000
--- a/query_execution/tests/WorkerSelectionPolicy_unittest.cpp
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- **/
-
-#include <cstddef>
-#include <memory>
-#include <random>
-#include <utility>
-#include <vector>
-
-#include "gtest/gtest.h"
-
-#include "query_execution/QueryExecutionTypedefs.hpp"
-#include "query_execution/WorkerDirectory.hpp"
-#include "query_execution/WorkerSelectionPolicy.hpp"
-
-namespace quickstep {
-
-class WorkerSelectionPolicyTest : public ::testing::Test {
- protected:
-  WorkerDirectory* getWorkerDirectory() {
-    return directory_.get();
-  }
-
-  const std::size_t getRandomWorkerID() const {
-    std::uniform_int_distribution<std::size_t> dist(
-        0, directory_->getNumWorkers() - 1);
-    return dist(*mt_);
-  }
-
-  void SetUp() {
-    std::vector<int> numa_nodes;
-    std::vector<client_id> client_ids;
-
-    numa_nodes.reserve(kNumWorkers);
-    client_ids.reserve(kNumWorkers);
-
-    std::random_device rd;
-    mt_.reset(new std::mt19937_64(rd()));
-    for (std::size_t worker_thread_index = 0; worker_thread_index < kNumWorkers; ++worker_thread_index) {
-      // NUMA node id = worker_thread_index % 4
-      // Client ID = worker_thread_index * 2 + 1
-      numa_nodes.push_back(worker_thread_index % 4);
-      client_ids.push_back(worker_thread_index * 2 + 1);
-    }
-    directory_.reset(new WorkerDirectory(kNumWorkers, client_ids, numa_nodes));
-  }
-
- private:
-  static const std::size_t kNumWorkers = 100;
-  std::unique_ptr<std::mt19937_64> mt_;
-  std::unique_ptr<WorkerDirectory> directory_;
-};
-
-TEST_F(WorkerSelectionPolicyTest, RoundRobinTest) {
-  // Check if the round robin policy selects the next worker correctly.
-  const std::size_t kStartWorkerID = getRandomWorkerID();
-  RoundRobinWorkerSelectionPolicy rr_policy(*getWorkerDirectory(),
-                                            kStartWorkerID);
-
-  const std::size_t kNumIterations =
-      (getWorkerDirectory()->getNumWorkers()) * 2;
-  std::size_t expected_next_worker_thread_index = kStartWorkerID;
-  for (std::size_t iteration = 0; iteration < kNumIterations; ++iteration) {
-    EXPECT_EQ(expected_next_worker_thread_index, rr_policy.getNextWorkerID());
-    expected_next_worker_thread_index = (expected_next_worker_thread_index + 1) %
-                              (getWorkerDirectory()->getNumWorkers());
-  }
-}
-
-TEST_F(WorkerSelectionPolicyTest, RoundRobinAddWorkerTest) {
-  // Add a worker to the worker directory dynamically. Check if this worker
-  // gets selected by the Round Robin policy.
-  const std::size_t kStartWorkerID = getWorkerDirectory()->getNumWorkers() - 1;
-  RoundRobinWorkerSelectionPolicy rr_policy(*getWorkerDirectory(),
-                                            kStartWorkerID);
-
-  EXPECT_EQ(kStartWorkerID, rr_policy.getNextWorkerID());
-
-  // Add a new worker.
-  const std::size_t new_worker_thread_index = getWorkerDirectory()->getNumWorkers();
-  getWorkerDirectory()->addWorker(new_worker_thread_index * 2 + 1 /** client_id **/,
-                                  0 /** NUMA node ID **/);
-
-  EXPECT_EQ(new_worker_thread_index, rr_policy.getNextWorkerID());
-}
-
-TEST_F(WorkerSelectionPolicyTest, LoadBalancingTest) {
-  // Create a random set of worker load values (i.e. number of queued workorders)
-  const std::size_t kMaxLoad = 100;
-  std::vector<std::size_t> worker_loads;
-  worker_loads.reserve(getWorkerDirectory()->getNumWorkers());
-
-  std::random_device rd;
-  std::mt19937_64 mt(rd());
-  std::uniform_int_distribution<std::size_t> dist(0, kMaxLoad);
-
-  for (std::size_t worker_thread_index = 0;
-       worker_thread_index < getWorkerDirectory()->getNumWorkers();
-       ++worker_thread_index) {
-    // For each worker ..
-    const std::size_t worker_load = dist(mt);
-    // assign a random load.
-    worker_loads.push_back(worker_load);
-    for (std::size_t workorder_count = 0;
-         workorder_count < worker_load;
-         ++workorder_count) {
-      getWorkerDirectory()->incrementNumQueuedWorkOrders(worker_thread_index);
-    }
-  }
-
-  LoadBalancingWorkerSelectionPolicy lb_policy(*getWorkerDirectory());
-  // At this point, all the workers have been assigned a random amount of load.
-  // Keep decrementing one workorder from every worker and check if the policy
-  // correctly chooses the next worker.
-  std::size_t zero_load_counts = 0;
-  for (std::size_t worker_load_index = 0;
-       zero_load_counts < worker_loads.size();
-       worker_load_index = (worker_load_index + 1) % worker_loads.size()) {
-    EXPECT_EQ(getWorkerDirectory()->getLeastLoadedWorker().first,
-              lb_policy.getNextWorkerID());
-    if (worker_loads[worker_load_index] > 0) {
-      getWorkerDirectory()->decrementNumQueuedWorkOrders(worker_load_index);
-      --worker_loads[worker_load_index];
-    } else {
-      ++zero_load_counts;
-    }
-  }
-  EXPECT_EQ(getWorkerDirectory()->getLeastLoadedWorker().first,
-            lb_policy.getNextWorkerID());
-}
-
-TEST_F(WorkerSelectionPolicyTest, RandomWorkerPolicyTest) {
-  // Expect that the randomly chosen worker falls in the limits of worker IDs.
-  RandomWorkerSelectionPolicy rand_policy(*getWorkerDirectory());
-  const std::size_t kNumIterations = 100;
-
-  for (std::size_t iter = 0; iter < kNumIterations; ++iter) {
-    const std::size_t chosen_worker_thread_index = rand_policy.getNextWorkerID();
-    EXPECT_GE(getWorkerDirectory()->getNumWorkers(), chosen_worker_thread_index);
-  }
-
-  // Add a new worker and repeat the test above.
-  const std::size_t new_worker_thread_index = getWorkerDirectory()->getNumWorkers();
-  getWorkerDirectory()->addWorker(new_worker_thread_index * 2 + 1 /** client_id **/,
-                                  0 /** NUMA node ID **/);
-
-  for (std::size_t iter = 0; iter < kNumIterations; ++iter) {
-    const std::size_t chosen_worker_thread_index = rand_policy.getNextWorkerID();
-    EXPECT_GE(getWorkerDirectory()->getNumWorkers(), chosen_worker_thread_index);
-  }
-}
-
-}  // namespace quickstep

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/156290a4/query_optimizer/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/query_optimizer/CMakeLists.txt b/query_optimizer/CMakeLists.txt
deleted file mode 100644
index 10c52a1..0000000
--- a/query_optimizer/CMakeLists.txt
+++ /dev/null
@@ -1,263 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-if (ENABLE_DISTRIBUTED)
-  set(QUICKSTEP_DISTRIBUTED TRUE)
-endif()
-
-configure_file (
-  "${CMAKE_CURRENT_SOURCE_DIR}/QueryOptimizerConfig.h.in"
-  "${CMAKE_CURRENT_BINARY_DIR}/QueryOptimizerConfig.h"
-)
-
-if (BUILD_SHARED_LIBS)
-  set(GFLAGS_LIB_NAME gflags_nothreads-shared)
-else()
-  set(GFLAGS_LIB_NAME gflags_nothreads-static)
-endif()
-
-add_subdirectory(cost_model)
-add_subdirectory(expressions)
-add_subdirectory(logical)
-add_subdirectory(physical)
-add_subdirectory(resolver)
-add_subdirectory(rules)
-add_subdirectory(strategy)
-add_subdirectory(tests)
-
-# Declare micro-libs:
-add_library(quickstep_queryoptimizer_ExecutionGenerator ExecutionGenerator.cpp ExecutionGenerator.hpp)
-add_library(quickstep_queryoptimizer_LIPFilterGenerator LIPFilterGenerator.cpp LIPFilterGenerator.hpp)
-add_library(quickstep_queryoptimizer_LogicalGenerator LogicalGenerator.cpp LogicalGenerator.hpp)
-add_library(quickstep_queryoptimizer_LogicalToPhysicalMapper
-            ../empty_src.cpp
-            LogicalToPhysicalMapper.hpp)
-add_library(quickstep_queryoptimizer_Optimizer Optimizer.cpp Optimizer.hpp)
-add_library(quickstep_queryoptimizer_OptimizerContext OptimizerContext.cpp OptimizerContext.hpp)
-add_library(quickstep_queryoptimizer_OptimizerTree ../empty_src.cpp OptimizerTree.hpp)
-add_library(quickstep_queryoptimizer_PhysicalGenerator PhysicalGenerator.cpp PhysicalGenerator.hpp)
-add_library(quickstep_queryoptimizer_QueryHandle ../empty_src.cpp QueryHandle.hpp)
-add_library(quickstep_queryoptimizer_QueryPlan ../empty_src.cpp QueryPlan.hpp)
-add_library(quickstep_queryoptimizer_QueryProcessor QueryProcessor.cpp QueryProcessor.hpp)
-add_library(quickstep_queryoptimizer_Validator ../empty_src.cpp Validator.hpp)
-
-# Link dependencies:
-target_link_libraries(quickstep_queryoptimizer_ExecutionGenerator
-                      glog
-                      quickstep_catalog_CatalogAttribute
-                      quickstep_catalog_CatalogDatabase
-                      quickstep_catalog_CatalogRelation
-                      quickstep_catalog_CatalogRelationSchema
-                      quickstep_catalog_CatalogTypedefs
-                      quickstep_expressions_Expressions_proto
-                      quickstep_expressions_aggregation_AggregateFunction
-                      quickstep_expressions_aggregation_AggregateFunction_proto
-                      quickstep_expressions_predicate_Predicate
-                      quickstep_expressions_scalar_Scalar
-                      quickstep_expressions_scalar_ScalarAttribute
-                      quickstep_expressions_windowaggregation_WindowAggregateFunction
-                      quickstep_expressions_windowaggregation_WindowAggregateFunction_proto
-                      quickstep_queryexecution_QueryContext
-                      quickstep_queryexecution_QueryContext_proto
-                      quickstep_queryoptimizer_LIPFilterGenerator
-                      quickstep_queryoptimizer_OptimizerContext
-                      quickstep_queryoptimizer_QueryHandle
-                      quickstep_queryoptimizer_QueryPlan
-                      quickstep_queryoptimizer_costmodel_CostModel
-                      quickstep_queryoptimizer_costmodel_SimpleCostModel
-                      quickstep_queryoptimizer_costmodel_StarSchemaSimpleCostModel
-                      quickstep_queryoptimizer_expressions_AggregateFunction
-                      quickstep_queryoptimizer_expressions_Alias
-                      quickstep_queryoptimizer_expressions_AttributeReference
-                      quickstep_queryoptimizer_expressions_ComparisonExpression
-                      quickstep_queryoptimizer_expressions_ExprId
-                      quickstep_queryoptimizer_expressions_ExpressionType
-                      quickstep_queryoptimizer_expressions_NamedExpression
-                      quickstep_queryoptimizer_expressions_PatternMatcher
-                      quickstep_queryoptimizer_expressions_Predicate
-                      quickstep_queryoptimizer_expressions_Scalar
-                      quickstep_queryoptimizer_expressions_ScalarLiteral
-                      quickstep_queryoptimizer_expressions_WindowAggregateFunction
-                      quickstep_queryoptimizer_physical_Aggregate
-                      quickstep_queryoptimizer_physical_CopyFrom
-                      quickstep_queryoptimizer_physical_CreateIndex
-                      quickstep_queryoptimizer_physical_CreateTable
-                      quickstep_queryoptimizer_physical_DeleteTuples
-                      quickstep_queryoptimizer_physical_DropTable
-                      quickstep_queryoptimizer_physical_HashJoin
-                      quickstep_queryoptimizer_physical_InsertSelection
-                      quickstep_queryoptimizer_physical_InsertTuple
-                      quickstep_queryoptimizer_physical_LIPFilterConfiguration
-                      quickstep_queryoptimizer_physical_NestedLoopsJoin
-                      quickstep_queryoptimizer_physical_PatternMatcher
-                      quickstep_queryoptimizer_physical_Physical
-                      quickstep_queryoptimizer_physical_PhysicalType
-                      quickstep_queryoptimizer_physical_Sample
-                      quickstep_queryoptimizer_physical_Selection
-                      quickstep_queryoptimizer_physical_SharedSubplanReference
-                      quickstep_queryoptimizer_physical_Sort
-                      quickstep_queryoptimizer_physical_TableGenerator
-                      quickstep_queryoptimizer_physical_TableReference
-                      quickstep_queryoptimizer_physical_TopLevelPlan
-                      quickstep_queryoptimizer_physical_UpdateTable
-                      quickstep_queryoptimizer_physical_WindowAggregate
-                      quickstep_relationaloperators_AggregationOperator
-                      quickstep_relationaloperators_BuildHashOperator
-                      quickstep_relationaloperators_CreateIndexOperator
-                      quickstep_relationaloperators_CreateTableOperator
-                      quickstep_relationaloperators_DeleteOperator
-                      quickstep_relationaloperators_DestroyAggregationStateOperator
-                      quickstep_relationaloperators_DestroyHashOperator
-                      quickstep_relationaloperators_DropTableOperator
-                      quickstep_relationaloperators_FinalizeAggregationOperator
-                      quickstep_relationaloperators_HashJoinOperator
-                      quickstep_relationaloperators_InsertOperator
-                      quickstep_relationaloperators_NestedLoopsJoinOperator
-                      quickstep_relationaloperators_RelationalOperator
-                      quickstep_relationaloperators_SampleOperator
-                      quickstep_relationaloperators_SaveBlocksOperator
-                      quickstep_relationaloperators_SelectOperator
-                      quickstep_relationaloperators_SortMergeRunOperator
-                      quickstep_relationaloperators_SortRunGenerationOperator
-                      quickstep_relationaloperators_TableGeneratorOperator
-                      quickstep_relationaloperators_TextScanOperator
-                      quickstep_relationaloperators_UpdateOperator
-                      quickstep_relationaloperators_WindowAggregationOperator
-                      quickstep_storage_AggregationOperationState_proto
-                      quickstep_storage_HashTableFactory
-                      quickstep_storage_HashTable_proto
-                      quickstep_storage_InsertDestination_proto
-                      quickstep_storage_StorageBlockLayout
-                      quickstep_storage_StorageBlockLayout_proto
-                      quickstep_storage_SubBlockTypeRegistry
-                      quickstep_types_Type
-                      quickstep_types_Type_proto
-                      quickstep_types_TypedValue
-                      quickstep_types_TypedValue_proto
-                      quickstep_types_containers_Tuple_proto
-                      quickstep_utility_Macros
-                      quickstep_utility_SqlError)
-if (ENABLE_DISTRIBUTED)
-  target_link_libraries(quickstep_queryoptimizer_ExecutionGenerator
-                        quickstep_catalog_Catalog_proto)
-endif()
-target_link_libraries(quickstep_queryoptimizer_LIPFilterGenerator
-                      glog
-                      quickstep_catalog_CatalogAttribute
-                      quickstep_queryexecution_QueryContext
-                      quickstep_queryexecution_QueryContext_proto
-                      quickstep_queryoptimizer_QueryPlan
-                      quickstep_queryoptimizer_expressions_ExprId
-                      quickstep_queryoptimizer_physical_Aggregate
-                      quickstep_queryoptimizer_physical_HashJoin
-                      quickstep_queryoptimizer_physical_LIPFilterConfiguration
-                      quickstep_queryoptimizer_physical_Physical
-                      quickstep_queryoptimizer_physical_Selection
-                      quickstep_relationaloperators_RelationalOperator
-                      quickstep_types_Type
-                      quickstep_utility_Macros
-                      quickstep_utility_lipfilter_LIPFilter
-                      quickstep_utility_lipfilter_LIPFilter_proto)
-target_link_libraries(quickstep_queryoptimizer_LogicalGenerator
-                      glog
-                      quickstep_parser_ParseStatement
-                      quickstep_queryoptimizer_OptimizerContext
-                      quickstep_queryoptimizer_logical_Logical
-                      quickstep_queryoptimizer_resolver_Resolver
-                      quickstep_queryoptimizer_rules_CollapseProject
-                      quickstep_queryoptimizer_rules_GenerateJoins
-                      quickstep_queryoptimizer_rules_PushDownFilter
-                      quickstep_queryoptimizer_rules_PushDownSemiAntiJoin
-                      quickstep_queryoptimizer_rules_Rule
-                      quickstep_queryoptimizer_rules_UnnestSubqueries
-                      quickstep_queryoptimizer_Validator
-                      quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_LogicalToPhysicalMapper
-                      quickstep_queryoptimizer_logical_Logical
-                      quickstep_queryoptimizer_physical_Physical
-                      quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_Optimizer
-                      quickstep_queryoptimizer_ExecutionGenerator
-                      quickstep_queryoptimizer_LogicalGenerator
-                      quickstep_queryoptimizer_PhysicalGenerator
-                      quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_OptimizerContext
-                      quickstep_queryoptimizer_expressions_ExprId
-                      quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_OptimizerTree
-                      quickstep_storage_StorageBlockLayout_proto
-                      quickstep_utility_Macros
-                      quickstep_utility_TreeStringSerializable)
-target_link_libraries(quickstep_queryoptimizer_PhysicalGenerator
-                      ${GFLAGS_LIB_NAME}
-                      quickstep_queryoptimizer_LogicalToPhysicalMapper
-                      quickstep_queryoptimizer_logical_Logical
-                      quickstep_queryoptimizer_physical_Physical
-                      quickstep_queryoptimizer_rules_AttachLIPFilters
-                      quickstep_queryoptimizer_rules_PruneColumns
-                      quickstep_queryoptimizer_rules_StarSchemaHashJoinOrderOptimization
-                      quickstep_queryoptimizer_rules_SwapProbeBuild
-                      quickstep_queryoptimizer_strategy_Aggregate
-                      quickstep_queryoptimizer_strategy_Join
-                      quickstep_queryoptimizer_strategy_OneToOne
-                      quickstep_queryoptimizer_strategy_Selection
-                      quickstep_queryoptimizer_strategy_Strategy
-                      quickstep_queryoptimizer_Validator
-                      quickstep_utility_Macros
-                      quickstep_utility_PlanVisualizer)
-target_link_libraries(quickstep_queryoptimizer_QueryHandle
-                      quickstep_catalog_Catalog_proto
-                      quickstep_queryexecution_QueryContext_proto
-                      quickstep_queryoptimizer_QueryPlan
-                      quickstep_utility_Macros
-                      tmb)
-target_link_libraries(quickstep_queryoptimizer_QueryPlan
-                      quickstep_relationaloperators_RelationalOperator
-                      quickstep_utility_DAG
-                      quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_QueryProcessor
-                      quickstep_catalog_Catalog
-                      quickstep_catalog_Catalog_proto
-                      quickstep_queryoptimizer_Optimizer
-                      quickstep_queryoptimizer_OptimizerContext
-                      quickstep_utility_Macros)
-target_link_libraries(quickstep_queryoptimizer_Validator
-                      glog
-                      quickstep_queryoptimizer_expressions_AttributeReference
-                      quickstep_queryoptimizer_expressions_ExpressionUtil)
-
-# Module all-in-one library:
-add_library(quickstep_queryoptimizer ../empty_src.cpp QueryOptimizerModule.hpp)
-target_link_libraries(quickstep_queryoptimizer
-                      quickstep_queryoptimizer_ExecutionGenerator
-                      quickstep_queryoptimizer_LIPFilterGenerator
-                      quickstep_queryoptimizer_LogicalGenerator
-                      quickstep_queryoptimizer_LogicalToPhysicalMapper
-                      quickstep_queryoptimizer_Optimizer
-                      quickstep_queryoptimizer_OptimizerContext
-                      quickstep_queryoptimizer_OptimizerTree
-                      quickstep_queryoptimizer_PhysicalGenerator
-                      quickstep_queryoptimizer_QueryHandle
-                      quickstep_queryoptimizer_QueryPlan
-                      quickstep_queryoptimizer_QueryProcessor
-                      quickstep_queryoptimizer_Validator
-                      quickstep_queryoptimizer_costmodel
-                      quickstep_queryoptimizer_expressions
-                      quickstep_queryoptimizer_logical
-                      quickstep_queryoptimizer_physical
-                      quickstep_queryoptimizer_resolver
-                      quickstep_queryoptimizer_rules)