#pragma once
#include "rocksdb/thread_status.h"
#include <string>
namespace
rocksdb {
#ifdef ROCKSDB_USING_THREAD_STATUS
struct
OperationInfo {
const
ThreadStatus::OperationType type;
const
std::string name;
};
static
OperationInfo global_operation_table[] = {
{ThreadStatus::OP_UNKNOWN,
""
},
{ThreadStatus::OP_COMPACTION,
"Compaction"
},
{ThreadStatus::OP_FLUSH,
"Flush"
}
};
struct
OperationStageInfo {
const
ThreadStatus::OperationStage stage;
const
std::string name;
};
static
OperationStageInfo global_op_stage_table[] = {
{ThreadStatus::STAGE_UNKNOWN,
""
},
{ThreadStatus::STAGE_FLUSH_RUN,
"FlushJob::Run"
},
{ThreadStatus::STAGE_FLUSH_WRITE_L0,
"FlushJob::WriteLevel0Table"
},
{ThreadStatus::STAGE_COMPACTION_PREPARE,
"CompactionJob::Prepare"
},
{ThreadStatus::STAGE_COMPACTION_RUN,
"CompactionJob::Run"
},
{ThreadStatus::STAGE_COMPACTION_PROCESS_KV,
"CompactionJob::ProcessKeyValueCompaction"
},
{ThreadStatus::STAGE_COMPACTION_INSTALL,
"CompactionJob::Install"
},
{ThreadStatus::STAGE_COMPACTION_SYNC_FILE,
"CompactionJob::FinishCompactionOutputFile"
},
{ThreadStatus::STAGE_PICK_MEMTABLES_TO_FLUSH,
"MemTableList::PickMemtablesToFlush"
},
{ThreadStatus::STAGE_MEMTABLE_ROLLBACK,
"MemTableList::RollbackMemtableFlush"
},
{ThreadStatus::STAGE_MEMTABLE_INSTALL_FLUSH_RESULTS,
"MemTableList::InstallMemtableFlushResults"
},
};
struct
StateInfo {
const
ThreadStatus::StateType type;
const
std::string name;
};
static
StateInfo global_state_table[] = {
{ThreadStatus::STATE_UNKNOWN,
""
},
{ThreadStatus::STATE_MUTEX_WAIT,
"Mutex Wait"
},
};
struct
OperationProperty {
int
code;
std::string name;
};
static
OperationProperty compaction_operation_properties[] = {
{ThreadStatus::COMPACTION_JOB_ID,
"JobID"
},
{ThreadStatus::COMPACTION_INPUT_OUTPUT_LEVEL,
"InputOutputLevel"
},
{ThreadStatus::COMPACTION_PROP_FLAGS,
"Manual/Deletion/Trivial"
},
{ThreadStatus::COMPACTION_TOTAL_INPUT_BYTES,
"TotalInputBytes"
},
{ThreadStatus::COMPACTION_BYTES_READ,
"BytesRead"
},
{ThreadStatus::COMPACTION_BYTES_WRITTEN,
"BytesWritten"
},
};
static
OperationProperty flush_operation_properties[] = {
{ThreadStatus::FLUSH_JOB_ID,
"JobID"
},
{ThreadStatus::FLUSH_BYTES_MEMTABLES,
"BytesMemtables"
},
{ThreadStatus::FLUSH_BYTES_WRITTEN,
"BytesWritten"
}
};
#else
struct
OperationInfo {
};
struct
StateInfo {
};
#endif // ROCKSDB_USING_THREAD_STATUS
}