| 415 | } |
| 416 | |
| 417 | void ExecutorTaskScheduler::startTaskTracking(const std::string& taskId) { |
| 418 | auto stageId = extractStageId(taskId); |
| 419 | bool newStageId = stageIds_.wlock()->emplace(stageId).second; |
| 420 | // start running tasks of a new stage |
| 421 | if (newStageId && |
| 422 | (state_ == SchedulerState::kInit || |
| 423 | state_ == SchedulerState::kCompleted)) { |
| 424 | state_ = SchedulerState::kSampling; |
| 425 | cpuTracker_.updateLastUsage(); |
| 426 | numTrackingTaskThreshold_ = currentConcurrency_; |
| 427 | } |
| 428 | VLOG(1) << __FUNCTION__ << ": stageId = " << stageId |
| 429 | << ", is newStageId = " << newStageId |
| 430 | << ", state_ = " << mapSchedulerStateToString(state_) |
| 431 | << ", currentConcurrency_ = " << currentConcurrency_ |
| 432 | << ", ioThreadPool = " |
| 433 | << (ioExecutor_ ? ioExecutor_->numThreads() : 0); |
| 434 | } |
| 435 | |
| 436 | void ExecutorTaskScheduler::ExecutorRuntimeStatsCollector::addRuntimeStats( |
| 437 | const SimplifiedTaskStats& stats) { |
nothing calls this directly
no test coverage detected