You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2017/01/18 02:40:17 UTC
[1/2] incubator-quickstep git commit: Refactored SelectorOperator
regarding partitions. [Forced Update!]
Repository: incubator-quickstep
Updated Branches:
refs/heads/lip-nullptr ffe183b57 -> bed1e2616 (forced update)
Refactored SelectorOperator regarding partitions.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/60e34060
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/60e34060
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/60e34060
Branch: refs/heads/lip-nullptr
Commit: 60e34060a8a9e82330442fa32b3f7030fa3a615d
Parents: e26cc1e
Author: Zuyu Zhang <zu...@apache.org>
Authored: Tue Jan 17 18:38:25 2017 -0800
Committer: Zuyu Zhang <zu...@apache.org>
Committed: Tue Jan 17 18:38:25 2017 -0800
----------------------------------------------------------------------
relational_operators/SelectOperator.cpp | 10 +----
relational_operators/SelectOperator.hpp | 62 +++++++++++++---------------
2 files changed, 31 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/60e34060/relational_operators/SelectOperator.cpp
----------------------------------------------------------------------
diff --git a/relational_operators/SelectOperator.cpp b/relational_operators/SelectOperator.cpp
index d2759c4..5419cf8 100644
--- a/relational_operators/SelectOperator.cpp
+++ b/relational_operators/SelectOperator.cpp
@@ -67,10 +67,7 @@ bool SelectOperator::getAllWorkOrders(
}
if (input_relation_.hasPartitionScheme()) {
- const std::size_t num_partitions =
- input_relation_.getPartitionScheme()->getPartitionSchemeHeader().getNumPartitions();
-
- for (std::size_t part_id = 0; part_id < num_partitions; ++part_id) {
+ for (std::size_t part_id = 0; part_id < num_partitions_; ++part_id) {
for (const block_id input_block_id : input_relation_block_ids_in_partition_[part_id]) {
numa_node_id numa_node = 0;
#ifdef QUICKSTEP_HAVE_LIBNUMA
@@ -98,10 +95,7 @@ bool SelectOperator::getAllWorkOrders(
return true;
} else {
if (input_relation_.hasPartitionScheme()) {
- const std::size_t num_partitions =
- input_relation_.getPartitionScheme()->getPartitionSchemeHeader().getNumPartitions();
-
- for (std::size_t part_id = 0; part_id < num_partitions; ++part_id) {
+ for (std::size_t part_id = 0; part_id < num_partitions_; ++part_id) {
while (num_workorders_generated_in_partition_[part_id] <
input_relation_block_ids_in_partition_[part_id].size()) {
const block_id block_in_partition
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/60e34060/relational_operators/SelectOperator.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/SelectOperator.hpp b/relational_operators/SelectOperator.hpp
index 989eaac..9c0767b 100644
--- a/relational_operators/SelectOperator.hpp
+++ b/relational_operators/SelectOperator.hpp
@@ -100,9 +100,6 @@ class SelectOperator : public RelationalOperator {
output_destination_index_(output_destination_index),
predicate_index_(predicate_index),
selection_index_(selection_index),
- input_relation_block_ids_(input_relation_is_stored
- ? input_relation.getBlocksSnapshot()
- : std::vector<block_id>()),
num_workorders_generated_(0),
simple_projection_(false),
input_relation_is_stored_(input_relation_is_stored),
@@ -112,20 +109,20 @@ class SelectOperator : public RelationalOperator {
#endif
if (input_relation.hasPartitionScheme()) {
const PartitionScheme &part_scheme = *input_relation.getPartitionScheme();
- const PartitionSchemeHeader &part_scheme_header = part_scheme.getPartitionSchemeHeader();
- const std::size_t num_partitions = part_scheme_header.getNumPartitions();
- input_relation_block_ids_in_partition_.resize(num_partitions);
- num_workorders_generated_in_partition_.resize(num_partitions);
- num_workorders_generated_in_partition_.assign(num_partitions, 0);
- for (std::size_t part_id = 0; part_id < num_partitions; ++part_id) {
- if (input_relation_is_stored) {
- input_relation_block_ids_in_partition_[part_id] =
- part_scheme.getBlocksInPartition(part_id);
- } else {
- input_relation_block_ids_in_partition_[part_id] =
- std::vector<block_id>();
+ num_partitions_ = part_scheme.getPartitionSchemeHeader().getNumPartitions();
+
+ num_workorders_generated_in_partition_.resize(num_partitions_);
+
+ if (input_relation_is_stored) {
+ for (std::size_t part_id = 0; part_id < num_partitions_; ++part_id) {
+ input_relation_block_ids_in_partition_.push_back(
+ part_scheme.getBlocksInPartition(part_id));
}
+ } else {
+ input_relation_block_ids_in_partition_.resize(num_partitions_);
}
+ } else if (input_relation_is_stored) {
+ input_relation_block_ids_ = input_relation.getBlocksSnapshot();
}
}
@@ -163,9 +160,6 @@ class SelectOperator : public RelationalOperator {
predicate_index_(predicate_index),
selection_index_(QueryContext::kInvalidScalarGroupId),
simple_selection_(std::move(selection)),
- input_relation_block_ids_(input_relation_is_stored
- ? input_relation.getBlocksSnapshot()
- : std::vector<block_id>()),
num_workorders_generated_(0),
simple_projection_(true),
input_relation_is_stored_(input_relation_is_stored),
@@ -175,20 +169,20 @@ class SelectOperator : public RelationalOperator {
#endif
if (input_relation.hasPartitionScheme()) {
const PartitionScheme &part_scheme = *input_relation.getPartitionScheme();
- const PartitionSchemeHeader &part_scheme_header = part_scheme.getPartitionSchemeHeader();
- const std::size_t num_partitions = part_scheme_header.getNumPartitions();
- input_relation_block_ids_in_partition_.resize(num_partitions);
- num_workorders_generated_in_partition_.resize(num_partitions);
- num_workorders_generated_in_partition_.assign(num_partitions, 0);
- for (std::size_t part_id = 0; part_id < num_partitions; ++part_id) {
- if (input_relation_is_stored) {
- input_relation_block_ids_in_partition_[part_id] =
- part_scheme.getBlocksInPartition(part_id);
- } else {
- input_relation_block_ids_in_partition_[part_id] =
- std::vector<block_id>();
+ num_partitions_ = part_scheme.getPartitionSchemeHeader().getNumPartitions();
+
+ num_workorders_generated_in_partition_.resize(num_partitions_);
+
+ if (input_relation_is_stored) {
+ for (std::size_t part_id = 0; part_id < num_partitions_; ++part_id) {
+ input_relation_block_ids_in_partition_.push_back(
+ part_scheme.getBlocksInPartition(part_id));
}
+ } else {
+ input_relation_block_ids_in_partition_.resize(num_partitions_);
}
+ } else if (input_relation_is_stored) {
+ input_relation_block_ids_ = input_relation.getBlocksSnapshot();
}
}
@@ -245,14 +239,16 @@ class SelectOperator : public RelationalOperator {
const std::vector<attribute_id> simple_selection_;
std::vector<block_id> input_relation_block_ids_;
+ // A single workorder is generated for each block of input relation.
+ std::vector<block_id>::size_type num_workorders_generated_;
+
+ // Used for the partition case only.
// A vector of vectors V where V[i] indicates the list of block IDs of the
// input relation that belong to the partition i.
std::vector<std::vector<block_id>> input_relation_block_ids_in_partition_;
-
- // A single workorder is generated for each block of input relation.
- std::vector<block_id>::size_type num_workorders_generated_;
// A single workorder is generated for each block in each partition of input relation.
std::vector<std::size_t> num_workorders_generated_in_partition_;
+ std::size_t num_partitions_;
const bool simple_projection_;
const bool input_relation_is_stored_;
[2/2] incubator-quickstep git commit: Marked LIP as a non-default
argument.
Posted by zu...@apache.org.
Marked LIP as a non-default argument.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/bed1e261
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/bed1e261
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/bed1e261
Branch: refs/heads/lip-nullptr
Commit: bed1e2616061f1841fd106f4f54463f7ebfe888b
Parents: 60e3406
Author: Zuyu Zhang <zu...@apache.org>
Authored: Tue Jan 17 17:38:50 2017 -0800
Committer: Zuyu Zhang <zu...@apache.org>
Committed: Tue Jan 17 18:40:22 2017 -0800
----------------------------------------------------------------------
relational_operators/AggregationOperator.hpp | 2 +-
relational_operators/BuildHashOperator.hpp | 4 ++--
relational_operators/HashJoinOperator.hpp | 12 ++++++------
relational_operators/SelectOperator.hpp | 4 ++--
storage/AggregationOperationState.hpp | 2 +-
5 files changed, 12 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/bed1e261/relational_operators/AggregationOperator.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/AggregationOperator.hpp b/relational_operators/AggregationOperator.hpp
index ce6015d..c4e887d 100644
--- a/relational_operators/AggregationOperator.hpp
+++ b/relational_operators/AggregationOperator.hpp
@@ -137,7 +137,7 @@ class AggregationWorkOrder : public WorkOrder {
AggregationWorkOrder(const std::size_t query_id,
const block_id input_block_id,
AggregationOperationState *state,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr)
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober)
: WorkOrder(query_id),
input_block_id_(input_block_id),
state_(DCHECK_NOTNULL(state)),
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/bed1e261/relational_operators/BuildHashOperator.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/BuildHashOperator.hpp b/relational_operators/BuildHashOperator.hpp
index f0f42e3..074c1e1 100644
--- a/relational_operators/BuildHashOperator.hpp
+++ b/relational_operators/BuildHashOperator.hpp
@@ -166,7 +166,7 @@ class BuildHashWorkOrder : public WorkOrder {
const block_id build_block_id,
JoinHashTable *hash_table,
StorageManager *storage_manager,
- LIPFilterBuilder *lip_filter_builder = nullptr)
+ LIPFilterBuilder *lip_filter_builder)
: WorkOrder(query_id),
input_relation_(input_relation),
join_key_attributes_(join_key_attributes),
@@ -196,7 +196,7 @@ class BuildHashWorkOrder : public WorkOrder {
const block_id build_block_id,
JoinHashTable *hash_table,
StorageManager *storage_manager,
- LIPFilterBuilder *lip_filter_builder = nullptr)
+ LIPFilterBuilder *lip_filter_builder)
: WorkOrder(query_id),
input_relation_(input_relation),
join_key_attributes_(std::move(join_key_attributes)),
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/bed1e261/relational_operators/HashJoinOperator.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/HashJoinOperator.hpp b/relational_operators/HashJoinOperator.hpp
index 8829d1f..190f9d2 100644
--- a/relational_operators/HashJoinOperator.hpp
+++ b/relational_operators/HashJoinOperator.hpp
@@ -302,7 +302,7 @@ class HashInnerJoinWorkOrder : public WorkOrder {
const JoinHashTable &hash_table,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr)
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober)
: WorkOrder(query_id),
build_relation_(build_relation),
probe_relation_(probe_relation),
@@ -352,7 +352,7 @@ class HashInnerJoinWorkOrder : public WorkOrder {
const JoinHashTable &hash_table,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr)
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober)
: WorkOrder(query_id),
build_relation_(build_relation),
probe_relation_(probe_relation),
@@ -438,7 +438,7 @@ class HashSemiJoinWorkOrder : public WorkOrder {
const JoinHashTable &hash_table,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr)
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober)
: WorkOrder(query_id),
build_relation_(build_relation),
probe_relation_(probe_relation),
@@ -488,7 +488,7 @@ class HashSemiJoinWorkOrder : public WorkOrder {
const JoinHashTable &hash_table,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr)
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober)
: WorkOrder(query_id),
build_relation_(build_relation),
probe_relation_(probe_relation),
@@ -570,7 +570,7 @@ class HashAntiJoinWorkOrder : public WorkOrder {
const JoinHashTable &hash_table,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr)
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober)
: WorkOrder(query_id),
build_relation_(build_relation),
probe_relation_(probe_relation),
@@ -620,7 +620,7 @@ class HashAntiJoinWorkOrder : public WorkOrder {
const JoinHashTable &hash_table,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr)
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober)
: WorkOrder(query_id),
build_relation_(build_relation),
probe_relation_(probe_relation),
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/bed1e261/relational_operators/SelectOperator.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/SelectOperator.hpp b/relational_operators/SelectOperator.hpp
index 9c0767b..e58ff81 100644
--- a/relational_operators/SelectOperator.hpp
+++ b/relational_operators/SelectOperator.hpp
@@ -295,7 +295,7 @@ class SelectWorkOrder : public WorkOrder {
const std::vector<std::unique_ptr<const Scalar>> *selection,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr,
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober,
const numa_node_id numa_node = 0)
: WorkOrder(query_id),
input_relation_(input_relation),
@@ -340,7 +340,7 @@ class SelectWorkOrder : public WorkOrder {
const std::vector<std::unique_ptr<const Scalar>> *selection,
InsertDestination *output_destination,
StorageManager *storage_manager,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr,
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober,
const numa_node_id numa_node = 0)
: WorkOrder(query_id),
input_relation_(input_relation),
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/bed1e261/storage/AggregationOperationState.hpp
----------------------------------------------------------------------
diff --git a/storage/AggregationOperationState.hpp b/storage/AggregationOperationState.hpp
index e0826b0..591e3a1 100644
--- a/storage/AggregationOperationState.hpp
+++ b/storage/AggregationOperationState.hpp
@@ -166,7 +166,7 @@ class AggregationOperationState {
* the block.
**/
void aggregateBlock(const block_id input_block,
- LIPFilterAdaptiveProber *lip_filter_adaptive_prober = nullptr);
+ LIPFilterAdaptiveProber *lip_filter_adaptive_prober);
/**
* @brief Generate the final results for the aggregates managed by this