You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by hb...@apache.org on 2016/07/01 16:39:09 UTC
incubator-quickstep git commit: Function to log work order execution
statistics.
Repository: incubator-quickstep
Updated Branches:
refs/heads/scheduler++ efd88a768 -> f9a0696f0
Function to log work order execution statistics.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/f9a0696f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/f9a0696f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/f9a0696f
Branch: refs/heads/scheduler++
Commit: f9a0696f07aaa30b61c39796ef5ee4d8128d8475
Parents: efd88a7
Author: Harshad Deshmukh <hb...@apache.org>
Authored: Fri Jul 1 11:38:18 2016 -0500
Committer: Harshad Deshmukh <hb...@apache.org>
Committed: Fri Jul 1 11:38:18 2016 -0500
----------------------------------------------------------------------
query_execution/Learner.cpp | 20 +++++++++++++++++++-
query_execution/Learner.hpp | 3 +++
query_execution/PriorityPolicyEnforcer.cpp | 2 +-
query_execution/QueryExecutionMessages.proto | 6 ++++++
query_execution/Worker.cpp | 2 ++
5 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f9a0696f/query_execution/Learner.cpp
----------------------------------------------------------------------
diff --git a/query_execution/Learner.cpp b/query_execution/Learner.cpp
index 3c6f42b..c5f3899 100644
--- a/query_execution/Learner.cpp
+++ b/query_execution/Learner.cpp
@@ -61,7 +61,8 @@ void Learner::addCompletionFeedback(
}
updateProbabilitiesForQueriesInPriorityLevel(priority_level, query_id);
updateProbabilitiesOfAllPriorityLevels();
- printProbabilitiesForPriorityLevel(priority_level);
+ // printProbabilitiesForPriorityLevel(priority_level);
+ printWorkOrderDetails(workorder_completion_proto);
}
void Learner::updateProbabilitiesForQueriesInPriorityLevel(
@@ -286,4 +287,21 @@ void Learner::printProbabilitiesForPriorityLevel(const std::size_t priority_leve
}
}
+void Learner::printWorkOrderDetails(
+ const serialization::NormalWorkOrderCompletionMessage &proto) const {
+ // Format: Query ID, Operator ID, Worker ID, Time in micros, WO execution end timestamp.
+ std::string result = "";
+ result.reserve(30);
+ result += std::to_string(proto.query_id()); // 2 chars
+ result += "|";
+ result += std::to_string(proto.operator_index()); // 2 chars
+ result += "|";
+ result += std::to_string(proto.worker_thread_index()); // 2 chars
+ result += "|";
+ result += std::to_string(proto.execution_time_in_microseconds()); // 5 chars
+ result += "|";
+ result += std::to_string(proto.execution_end_timestamp()); // 12 chars
+ LOG(INFO) << result;
+}
+
} // namespace quickstep
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f9a0696f/query_execution/Learner.hpp
----------------------------------------------------------------------
diff --git a/query_execution/Learner.hpp b/query_execution/Learner.hpp
index 6cea325..8654544 100644
--- a/query_execution/Learner.hpp
+++ b/query_execution/Learner.hpp
@@ -472,6 +472,9 @@ class Learner {
void printProbabilitiesForPriorityLevel(const std::size_t priority_level);
+ void printWorkOrderDetails(
+ const serialization::NormalWorkOrderCompletionMessage &proto) const;
+
// Key = Priority level, value = A vector of pairs.
// Each pair:
// 1st element: Query ID.
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f9a0696f/query_execution/PriorityPolicyEnforcer.cpp
----------------------------------------------------------------------
diff --git a/query_execution/PriorityPolicyEnforcer.cpp b/query_execution/PriorityPolicyEnforcer.cpp
index 93908a9..e538514 100644
--- a/query_execution/PriorityPolicyEnforcer.cpp
+++ b/query_execution/PriorityPolicyEnforcer.cpp
@@ -182,7 +182,7 @@ void PriorityPolicyEnforcer::getWorkerMessages(
break;
} else if (checked_priority_levels.find(static_cast<std::size_t>(
chosen_priority_level)) != checked_priority_levels.end()) {
- DLOG(INFO) << "The chosen priority level " << chosen_priority_level << " was checked already";
+ // DLOG(INFO) << "The chosen priority level " << chosen_priority_level << " was checked already";
continue;
} else {
WorkerMessage *next_worker_message =
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f9a0696f/query_execution/QueryExecutionMessages.proto
----------------------------------------------------------------------
diff --git a/query_execution/QueryExecutionMessages.proto b/query_execution/QueryExecutionMessages.proto
index 65a8946..db35ecc 100644
--- a/query_execution/QueryExecutionMessages.proto
+++ b/query_execution/QueryExecutionMessages.proto
@@ -39,6 +39,8 @@ message NormalWorkOrderCompletionMessage {
required uint64 worker_thread_index = 2;
required uint64 query_id = 3;
optional uint64 execution_time_in_microseconds = 4;
+ // Indicates time elapsed in microseconds since epoch.
+ optional uint64 execution_end_timestamp = 5;
}
// A message sent upon completion of a rebuild WorkOrder execution.
@@ -47,6 +49,10 @@ message RebuildWorkOrderCompletionMessage {
required uint64 worker_thread_index = 2;
required uint64 query_id = 3;
optional uint64 execution_time_in_microseconds = 4;
+ optional uint64 execution_end_timestamp = 5; // Indicates time elapsed in
+ // microseconds since epoch,
+ // when the work order execution
+ // got over.
}
message CatalogRelationNewBlockMessage {
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f9a0696f/query_execution/Worker.cpp
----------------------------------------------------------------------
diff --git a/query_execution/Worker.cpp b/query_execution/Worker.cpp
index ae889c7..5ad80ed 100644
--- a/query_execution/Worker.cpp
+++ b/query_execution/Worker.cpp
@@ -123,11 +123,13 @@ void Worker::executeWorkOrderHelper(const TaggedMessage &tagged_message,
const uint64_t execution_time_microseconds =
std::chrono::duration_cast<std::chrono::milliseconds>(end - start)
.count();
+ const uint64_t execution_end_timestamp = std::chrono::duration_cast<std::chrono::microseconds>(end.time_since_epoch()).count();
// Construct the proto message.
proto->set_operator_index(worker_message.getRelationalOpIndex());
proto->set_query_id(query_id_for_workorder);
proto->set_worker_thread_index(worker_thread_index_);
proto->set_execution_time_in_microseconds(execution_time_microseconds);
+ proto->set_execution_end_timestamp(execution_end_timestamp);
}
} // namespace quickstep