89597bb66b
Summary: Allow GetThreadList() to report the start time of the current operation. Test Plan: ./db_bench --benchmarks=fillrandom --num=100000 --threads=40 \ --max_background_compactions=10 --max_background_flushes=3 \ --thread_status_per_interval=1000 --key_size=16 --value_size=1000 \ --num_column_families=10 Sample output: ThreadID ThreadType cfName Operation OP_StartTime State 140338840797248 High Pri column_family_name_000003 Flush 2015/03/09-17:49:59 140338844991552 High Pri column_family_name_000004 Flush 2015/03/09-17:49:59 140338849185856 Low Pri 140338983403584 Low Pri 140339008569408 Low Pri 140338861768768 Low Pri 140338924683328 Low Pri 140338899517504 Low Pri 140338853380160 Low Pri 140338882740288 Low Pri 140338865963072 High Pri column_family_name_000006 Flush 2015/03/09-17:49:59 140338954043456 Low Pri 140338857574464 Low Pri Reviewers: igor, rven, sdong Reviewed By: sdong Subscribers: lgalanis, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D34689
61 lines
1.6 KiB
C++
61 lines
1.6 KiB
C++
// Copyright (c) 2013, Facebook, Inc. All rights reserved.
|
|
// This source code is licensed under the BSD-style license found in the
|
|
// LICENSE file in the root directory of this source tree. An additional grant
|
|
// of patent rights can be found in the PATENTS file in the same directory.
|
|
//
|
|
|
|
#include "rocksdb/env.h"
|
|
#include "rocksdb/thread_status.h"
|
|
#include "util/thread_operation.h"
|
|
|
|
namespace rocksdb {
|
|
|
|
#if ROCKSDB_USING_THREAD_STATUS
|
|
const std::string& ThreadStatus::GetThreadTypeName(
|
|
ThreadStatus::ThreadType thread_type) {
|
|
static std::string thread_type_names[NUM_THREAD_TYPES + 1] = {
|
|
"High Pri", "Low Pri", "User", "Unknown"};
|
|
return thread_type_names[thread_type];
|
|
}
|
|
|
|
const std::string& ThreadStatus::GetOperationName(
|
|
ThreadStatus::OperationType op_type) {
|
|
return global_operation_table[op_type].name;
|
|
}
|
|
|
|
const std::string& ThreadStatus::GetStateName(
|
|
ThreadStatus::StateType state_type) {
|
|
return global_state_table[state_type].name;
|
|
}
|
|
|
|
const std::string ThreadStatus::TimeToString(
|
|
int64_t time) {
|
|
if (time == 0) {
|
|
return "";
|
|
}
|
|
return Env::Default()->TimeToString(time);
|
|
}
|
|
|
|
#else
|
|
|
|
const std::string& ThreadStatus::GetThreadTypeName(
|
|
ThreadStatus::ThreadType thread_type) {
|
|
static std::string dummy_str = "";
|
|
return dummy_str;
|
|
}
|
|
|
|
const std::string& ThreadStatus::GetOperationName(
|
|
ThreadStatus::OperationType op_type) {
|
|
static std::string dummy_str = "";
|
|
return dummy_str;
|
|
}
|
|
|
|
const std::string& ThreadStatus::GetStateName(
|
|
ThreadStatus::StateType state_type) {
|
|
static std::string dummy_str = "";
|
|
return dummy_str;
|
|
}
|
|
|
|
#endif // ROCKSDB_USING_THREAD_STATUS
|
|
} // namespace rocksdb
|