You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by jr...@apache.org on 2017/10/06 04:31:22 UTC

[2/2] incubator-impala git commit: IMPALA-6019: Remove dead code parallel-executor*

IMPALA-6019: Remove dead code parallel-executor*

Change-Id: I7f0b121c2c40849937afa103dfedf0e0bef34477
Reviewed-on: http://gerrit.cloudera.org:8080/8206
Reviewed-by: Dan Hecht <dh...@cloudera.com>
Tested-by: Impala Public Jenkins


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

Branch: refs/heads/master
Commit: ec957456d26cf0935654e8a70dbc1f36e8c1adae
Parents: d40047a
Author: Dan Hecht <dh...@cloudera.com>
Authored: Wed Oct 4 10:28:44 2017 -0700
Committer: Impala Public Jenkins <im...@gerrit.cloudera.org>
Committed: Fri Oct 6 03:02:05 2017 +0000

----------------------------------------------------------------------
 be/src/runtime/CMakeLists.txt            |  2 -
 be/src/runtime/parallel-executor-test.cc | 82 ---------------------------
 be/src/runtime/parallel-executor.cc      | 66 ---------------------
 be/src/runtime/parallel-executor.h       | 67 ----------------------
 4 files changed, 217 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ec957456/be/src/runtime/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/be/src/runtime/CMakeLists.txt b/be/src/runtime/CMakeLists.txt
index 9c655ec..faed531 100644
--- a/be/src/runtime/CMakeLists.txt
+++ b/be/src/runtime/CMakeLists.txt
@@ -49,7 +49,6 @@ add_library(Runtime
   mem-tracker.cc
   mem-pool.cc
   multi-precision.cc
-  parallel-executor.cc
   query-exec-mgr.cc
   query-state.cc
   test-env.cc
@@ -83,7 +82,6 @@ ADD_BE_TEST(string-buffer-test)
 ADD_BE_TEST(data-stream-test)
 ADD_BE_TEST(timestamp-test)
 ADD_BE_TEST(disk-io-mgr-test)
-ADD_BE_TEST(parallel-executor-test)
 ADD_BE_TEST(raw-value-test)
 ADD_BE_TEST(string-compare-test)
 ADD_BE_TEST(string-search-test)

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ec957456/be/src/runtime/parallel-executor-test.cc
----------------------------------------------------------------------
diff --git a/be/src/runtime/parallel-executor-test.cc b/be/src/runtime/parallel-executor-test.cc
deleted file mode 100644
index 8347939..0000000
--- a/be/src/runtime/parallel-executor-test.cc
+++ /dev/null
@@ -1,82 +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 <string>
-#include <boost/bind.hpp>
-
-#include "runtime/parallel-executor.h"
-#include "testutil/gtest-util.h"
-#include "util/thread.h"
-
-#include "common/names.h"
-
-using namespace impala;
-
-namespace impala {
-
-class ParallelExecutorTest {
- public:
-  Status UpdateFunction(void* value) {
-    long arg = reinterpret_cast<long>(value);
-    EXPECT_FALSE(updates_found_[arg]);
-    updates_found_[arg] = true;
-
-    double result = 0;
-    // Run something random to keep this cpu a little busy
-    for (int i = 0; i < 10000; ++i) {
-      for (int j = 0; j < 200; ++j) {
-        result += sin(i) + cos(j);
-      }
-    }
-
-    return Status::OK();
-  }
-
-  ParallelExecutorTest(int num_updates) {
-    updates_found_.resize(num_updates);
-  }
-
-  void Validate() {
-    for (int i = 0; i < updates_found_.size(); ++i) {
-      EXPECT_TRUE(updates_found_[i]);
-    }
-  }
-
- private:
-  vector<int> updates_found_;
-};
-
-TEST(ParallelExecutorTest, Basic) {
-  int num_work_items = 100;
-  ParallelExecutorTest test_caller(num_work_items);
-
-  vector<long> args;
-  for (int i = 0; i < num_work_items; ++i) {
-    args.push_back(i);
-  }
-
-  EXPECT_OK(ParallelExecutor::Exec(
-      bind<Status>(mem_fn(&ParallelExecutorTest::UpdateFunction), &test_caller, _1),
-      reinterpret_cast<void**>(args.data()), args.size()));
-
-  test_caller.Validate();
-}
-
-}
-
-IMPALA_TEST_MAIN();

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ec957456/be/src/runtime/parallel-executor.cc
----------------------------------------------------------------------
diff --git a/be/src/runtime/parallel-executor.cc b/be/src/runtime/parallel-executor.cc
deleted file mode 100644
index f3dd708..0000000
--- a/be/src/runtime/parallel-executor.cc
+++ /dev/null
@@ -1,66 +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 "runtime/parallel-executor.h"
-
-#include <boost/thread/thread.hpp>
-
-#include "util/stopwatch.h"
-#include "util/thread.h"
-
-#include "common/names.h"
-
-using namespace impala;
-
-Status ParallelExecutor::Exec(Function function, void** args, int num_args,
-    StatsMetric<double>* latencies) {
-  Status status;
-  ThreadGroup worker_threads;
-  mutex lock;
-
-  for (int i = 0; i < num_args; ++i) {
-    stringstream ss;
-    ss << "worker-thread(" << i << ")";
-    std::unique_ptr<Thread> t;
-    Status thread_status = Thread::Create("parallel-executor", ss.str(),
-        &ParallelExecutor::Worker, function, args[i], &lock, &status, latencies, &t);
-    if (!thread_status.ok()) {
-      unique_lock<mutex> l(lock);
-      status = thread_status;
-      break;
-    }
-    worker_threads.AddThread(move(t));
-  }
-  worker_threads.JoinAll();
-
-  return status;
-}
-
-void ParallelExecutor::Worker(Function function, void* arg, mutex* lock, Status* status,
-    StatsMetric<double>* latencies) {
-  MonotonicStopWatch sw;
-  if (latencies != NULL) sw.Start();
-  Status local_status = function(arg);
-  if (!local_status.ok()) {
-    unique_lock<mutex> l(*lock);
-    if (status->ok()) *status = local_status;
-  }
-
-  if (latencies != NULL) {
-    latencies->Update(sw.ElapsedTime() / (1000.0 * 1000.0 * 1000.0));
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/ec957456/be/src/runtime/parallel-executor.h
----------------------------------------------------------------------
diff --git a/be/src/runtime/parallel-executor.h b/be/src/runtime/parallel-executor.h
deleted file mode 100644
index ceb4c66..0000000
--- a/be/src/runtime/parallel-executor.h
+++ /dev/null
@@ -1,67 +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.
-
-
-#ifndef IMPALA_RUNTIME_PARALLEL_EXECUTOR_H
-#define IMPALA_RUNTIME_PARALLEL_EXECUTOR_H
-
-#include <boost/function.hpp>
-#include <boost/thread/mutex.hpp>
-
-#include "common/status.h"
-#include "util/collection-metrics.h"
-
-namespace impala {
-
-/// This is a class that executes multiple functions in parallel with different arguments
-/// using a thread pool.
-/// TODO: look into an API for this.  Boost has one that is in review but not yet official.
-/// TODO: use a shared pool?  Thread creation is pretty cheap so this might not be
-/// worth it
-/// TODO: Consider rewriting in terms of ThreadPool
-class ParallelExecutor {
- public:
-  /// Typedef for the underlying function for the work.
-  /// The function must be thread safe.
-  /// The function must return a Status indicating if it was successful or not.
-  /// An example of how this function should be defined would be:
-  ///    static Status Foo::IssueRpc(void* arg);
-  /// TODO: there might some magical template way to do this with boost that is more
-  /// type safe.
-  typedef boost::function<Status (void* arg)> Function;
-
-  /// Calls function(args[i]) num_args times in parallel using num_args threads.
-  /// If any of the work item fails, returns the Status of the first failed work item.
-  /// Otherwise, returns Status::OK when all work items have been executed.
-  //
-  /// Callers may pass a StatsMetric to gather the latency distribution of task execution.
-  static Status Exec(Function function, void** args, int num_args,
-      StatsMetric<double>* latencies = NULL);
-
- private:
-  /// Worker thread function which calls function(arg).  This function updates
-  /// *status taking *lock to synchronize results from different threads.
-  //
-  /// If 'latencies' is not NULL, it is updated with the time elapsed while executing
-  /// 'function'.
-  static void Worker(Function function, void* arg, boost::mutex* lock, Status* status,
-      StatsMetric<double>* latencies);
-};
-
-}
-
-#endif