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 2016/05/27 03:22:55 UTC
[04/50] [abbrv] incubator-quickstep git commit: Added query ID to
WorkOrder base class and Agg work order.
Added query ID to WorkOrder base class and Agg work order.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/9a141fad
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/9a141fad
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/9a141fad
Branch: refs/heads/query-id-operator-workorder
Commit: 9a141fad18f6c9714635471a9aaab66a8b5debfc
Parents: e29e232
Author: Harshad Deshmukh <ha...@cs.wisc.edu>
Authored: Sun May 1 23:13:48 2016 -0500
Committer: Harshad Deshmukh <ha...@cs.wisc.edu>
Committed: Sun May 1 23:13:48 2016 -0500
----------------------------------------------------------------------
relational_operators/AggregationOperator.cpp | 12 ++++++++----
relational_operators/AggregationOperator.hpp | 4 +++-
relational_operators/WorkOrder.hpp | 4 +++-
relational_operators/WorkOrderFactory.cpp | 1 +
4 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9a141fad/relational_operators/AggregationOperator.cpp
----------------------------------------------------------------------
diff --git a/relational_operators/AggregationOperator.cpp b/relational_operators/AggregationOperator.cpp
index 1b935ee..94ba901 100644
--- a/relational_operators/AggregationOperator.cpp
+++ b/relational_operators/AggregationOperator.cpp
@@ -38,8 +38,10 @@ bool AggregationOperator::getAllWorkOrders(
if (!started_) {
for (const block_id input_block_id : input_relation_block_ids_) {
container->addNormalWorkOrder(
- new AggregationWorkOrder(input_block_id,
- query_context->getAggregationState(aggr_state_index_)),
+ new AggregationWorkOrder(
+ input_block_id,
+ query_id_,
+ query_context->getAggregationState(aggr_state_index_)),
op_index_);
}
started_ = true;
@@ -48,8 +50,10 @@ bool AggregationOperator::getAllWorkOrders(
} else {
while (num_workorders_generated_ < input_relation_block_ids_.size()) {
container->addNormalWorkOrder(
- new AggregationWorkOrder(input_relation_block_ids_[num_workorders_generated_],
- query_context->getAggregationState(aggr_state_index_)),
+ new AggregationWorkOrder(
+ input_relation_block_ids_[num_workorders_generated_],
+ query_id_,
+ query_context->getAggregationState(aggr_state_index_)),
op_index_);
++num_workorders_generated_;
}
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9a141fad/relational_operators/AggregationOperator.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/AggregationOperator.hpp b/relational_operators/AggregationOperator.hpp
index b9cffd8..2b2a954 100644
--- a/relational_operators/AggregationOperator.hpp
+++ b/relational_operators/AggregationOperator.hpp
@@ -113,8 +113,10 @@ class AggregationWorkOrder : public WorkOrder {
* @param state The AggregationState to use.
**/
AggregationWorkOrder(const block_id input_block_id,
+ const std::size_t query_id,
AggregationOperationState *state)
- : input_block_id_(input_block_id),
+ : WorkOrder(query_id),
+ input_block_id_(input_block_id),
state_(DCHECK_NOTNULL(state)) {}
~AggregationWorkOrder() override {}
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9a141fad/relational_operators/WorkOrder.hpp
----------------------------------------------------------------------
diff --git a/relational_operators/WorkOrder.hpp b/relational_operators/WorkOrder.hpp
index 42cec2a..b179d8e 100644
--- a/relational_operators/WorkOrder.hpp
+++ b/relational_operators/WorkOrder.hpp
@@ -286,8 +286,10 @@ class WorkOrder {
}
protected:
- WorkOrder() {}
+ WorkOrder(const std::size_t query_id = 0)
+ : query_id_(query_id) {}
+ const std::size_t query_id_;
// A vector of preferred NUMA node IDs where this workorder should be executed.
// These node IDs typically indicate the NUMA node IDs of the input(s) of the
// workorder. Derived classes should ensure that there are no duplicate entries
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9a141fad/relational_operators/WorkOrderFactory.cpp
----------------------------------------------------------------------
diff --git a/relational_operators/WorkOrderFactory.cpp b/relational_operators/WorkOrderFactory.cpp
index 964c11c..d34d535 100644
--- a/relational_operators/WorkOrderFactory.cpp
+++ b/relational_operators/WorkOrderFactory.cpp
@@ -71,6 +71,7 @@ WorkOrder* WorkOrderFactory::ReconstructFromProto(const serialization::WorkOrder
LOG(INFO) << "Creating AggregationWorkOrder";
return new AggregationWorkOrder(
proto.GetExtension(serialization::AggregationWorkOrder::block_id),
+ 0, // TODO(harshad) - Replace this with true query ID.
query_context->getAggregationState(
proto.GetExtension(serialization::AggregationWorkOrder::aggr_state_index)));
}