| 428 | } |
| 429 | |
| 430 | Status TmpFileMgr::CreateTmpFileBufferPoolThread(MetricGroup* metrics) { |
| 431 | DCHECK(metrics != nullptr); |
| 432 | tmp_dirs_remote_ctrl_.tmp_file_pool_.reset(new TmpFileBufferPool(this)); |
| 433 | std::unique_ptr<Thread> t; |
| 434 | RETURN_IF_ERROR(Thread::Create("tmp-file-pool", "work-loop(TmpFileSpaceReserve Worker)", |
| 435 | &TmpFileBufferPool::TmpFileSpaceReserveThreadLoop, |
| 436 | tmp_dirs_remote_ctrl_.tmp_file_pool_.get(), &t)); |
| 437 | tmp_dirs_remote_ctrl_.tmp_file_mgr_thread_group_.AddThread(move(t)); |
| 438 | int64_t ONE_HOUR_IN_NS = 60L * 60L * NANOS_PER_SEC; |
| 439 | tmp_dirs_remote_ctrl_.tmp_file_pool_->dequeue_timer_metric_ = |
| 440 | metrics->RegisterMetric(new HistogramMetric( |
| 441 | MetricDefs::Get(TMP_FILE_BUFF_POOL_DEQUEUE_DURATIONS), ONE_HOUR_IN_NS, 3)); |
| 442 | return Status::OK(); |
| 443 | } |
| 444 | |
| 445 | void TmpFileMgr::NewFile( |
| 446 | TmpFileGroup* file_group, DeviceId device_id, unique_ptr<TmpFile>* new_file) { |