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/12/06 18:37:47 UTC

incubator-quickstep git commit: Fixes

Repository: incubator-quickstep
Updated Branches:
  refs/heads/LIP-time-decomposition 63dcccf8c -> e92cacd29


Fixes


Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/e92cacd2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/e92cacd2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/e92cacd2

Branch: refs/heads/LIP-time-decomposition
Commit: e92cacd2951fb0ea50ba69f2bf3c2b1c11d2033e
Parents: 63dcccf
Author: Jianqiao Zhu <ji...@cs.wisc.edu>
Authored: Tue Dec 6 12:37:31 2016 -0600
Committer: Jianqiao Zhu <ji...@cs.wisc.edu>
Committed: Tue Dec 6 12:37:31 2016 -0600

----------------------------------------------------------------------
 cli/QuickstepCli.cpp                      | 5 ++++-
 relational_operators/HashJoinOperator.cpp | 9 +++++----
 utility/EventProfiler.hpp                 | 4 +++-
 3 files changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e92cacd2/cli/QuickstepCli.cpp
----------------------------------------------------------------------
diff --git a/cli/QuickstepCli.cpp b/cli/QuickstepCli.cpp
index 841e22d..4082f64 100644
--- a/cli/QuickstepCli.cpp
+++ b/cli/QuickstepCli.cpp
@@ -365,6 +365,7 @@ int main(int argc, char* argv[]) {
         }
 
         start = std::chrono::steady_clock::now();
+        quickstep::simple_profiler.clear();
         auto *event_container = quickstep::simple_profiler.getContainer();
         event_container->startEvent("overall");
         QueryExecutionUtil::ConstructAndSendAdmitRequestMessage(
@@ -411,7 +412,9 @@ int main(int argc, char* argv[]) {
             std::cerr << "\n" << dag_visualizer->toDOT() << "\n";
           }
           if (!quickstep::FLAGS_profile_output.empty()) {
-            std::ofstream ofs(quickstep::FLAGS_profile_output, std::ios::out);
+            std::ofstream ofs(
+                quickstep::FLAGS_profile_output + std::to_string(query_processor->query_id()),
+                std::ios::out);
             quickstep::simple_profiler.writeToStream(ofs);
             ofs.close();
           }

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e92cacd2/relational_operators/HashJoinOperator.cpp
----------------------------------------------------------------------
diff --git a/relational_operators/HashJoinOperator.cpp b/relational_operators/HashJoinOperator.cpp
index df900ea..e1455a9 100644
--- a/relational_operators/HashJoinOperator.cpp
+++ b/relational_operators/HashJoinOperator.cpp
@@ -450,12 +450,13 @@ void HashInnerJoinWorkOrder::execute() {
       storage_manager_->getBlock(block_id_, probe_relation_));
   const TupleStorageSubBlock &probe_store = probe_block->getTupleStorageSubBlock();
   std::unique_ptr<ValueAccessor> probe_accessor(probe_store.createValueAccessor());
+  auto *container = simple_profiler.getContainer();
 
   // Probe the LIPFilters to generate an existence bitmap for probe_accessor, if enabled.
   std::unique_ptr<TupleIdSequence> existence_map;
   std::unique_ptr<ValueAccessor> base_accessor;
   if (lip_filter_adaptive_prober_ != nullptr) {
-    auto *event_lip = simple_profiler.getContainer()->getEventLine("ProbeLIP");
+    auto *event_lip = container->getEventLine("ProbeLIP");
     event_lip->emplace_back();
     base_accessor.reset(probe_accessor.release());
     existence_map.reset(
@@ -465,7 +466,7 @@ void HashInnerJoinWorkOrder::execute() {
     event_lip->back().endEvent();
   }
 
-  auto *event_hash = simple_profiler.getContainer()->getEventLine("ProbeHash");
+  auto *event_hash = container->getEventLine("ProbeHash");
   event_hash->emplace_back();
 
   PairsOfVectorsJoinedTuplesCollector collector;
@@ -627,9 +628,9 @@ void HashInnerJoinWorkOrder::execute() {
     // avoided by keeping checked-out MutableBlockReferences across iterations
     // of this loop, but that would get messy when combined with partitioning.
     output_destination_->bulkInsertTuplesFromValueAccessors(accessor_attribute_map);
-
-    event_hash->back().endEvent();
   }
+
+  event_hash->back().endEvent();
 }
 
 void HashSemiJoinWorkOrder::execute() {

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/e92cacd2/utility/EventProfiler.hpp
----------------------------------------------------------------------
diff --git a/utility/EventProfiler.hpp b/utility/EventProfiler.hpp
index f856f00..c28f49b 100644
--- a/utility/EventProfiler.hpp
+++ b/utility/EventProfiler.hpp
@@ -123,7 +123,9 @@ class EventProfiler {
     for (const auto &thread_ctx : thread_map_) {
       for (const auto &event_group : thread_ctx.second.events) {
         for (const auto &event_info : event_group.second) {
-          CHECK(event_info.is_finished) << "Unfinished profiling event";
+          CHECK(event_info.is_finished)
+              << "Unfinished profiling event at thread " << thread_id
+              << ": " << event_group.first;
 
           os << std::setprecision(12)
              << event_id << ","