Yueh-Hsuan Chiang
77a5a543a5
Allow GetThreadList() to report basic compaction operation properties.
...
Summary:
Now we're able to show more details about a compaction in
GetThreadList() :)
This patch allows GetThreadList() to report basic compaction
operation properties. Basic compaction properties include:
1. job id
2. compaction input / output level
3. compaction property flags (is_manual, is_deletion, .. etc)
4. total input bytes
5. the number of bytes has been read currently.
6. the number of bytes has been written currently.
Flush operation properties will be done in a seperate diff.
Test Plan:
/db_bench --threads=30 --num=1000000 --benchmarks=fillrandom --thread_status_per_interval=1
Sample output of tracking same job:
ThreadID ThreadType cfName Operation ElapsedTime Stage State OperationProperties
140664171987072 Low Pri default Compaction 31.357 ms CompactionJob::FinishCompactionOutputFile BaseInputLevel 1 | BytesRead 2264663 | BytesWritten 1934241 | IsDeletion 0 | IsManual 0 | IsTrivialMove 0 | JobID 277 | OutputLevel 2 | TotalInputBytes 3964158 |
ThreadID ThreadType cfName Operation ElapsedTime Stage State OperationProperties
140664171987072 Low Pri default Compaction 59.440 ms CompactionJob::FinishCompactionOutputFile BaseInputLevel 1 | BytesRead 2264663 | BytesWritten 1934241 | IsDeletion 0 | IsManual 0 | IsTrivialMove 0 | JobID 277 | OutputLevel 2 | TotalInputBytes 3964158 |
ThreadID ThreadType cfName Operation ElapsedTime Stage State OperationProperties
140664171987072 Low Pri default Compaction 226.375 ms CompactionJob::Install BaseInputLevel 1 | BytesRead 3958013 | BytesWritten 3621940 | IsDeletion 0 | IsManual 0 | IsTrivialMove 0 | JobID 277 | OutputLevel 2 | TotalInputBytes 3964158 |
Reviewers: sdong, rven, igor
Reviewed By: igor
Subscribers: dhruba, leveldb
Differential Revision: https://reviews.facebook.net/D37653
10 years ago
Yueh-Hsuan Chiang
c594b0e89d
Allow GetThreadList() to report operation stage.
...
Summary: Allow GetThreadList() to report operation stage.
Test Plan:
./thread_list_test
./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
export ROCKSDB_TESTS=ThreadStatus
./db_test
Sample output
ThreadID ThreadType cfName Operation OP_StartTime ElapsedTime Stage State
140116265861184 Low Pri
140116270055488 Low Pri
140116274249792 High Pri column_family_name_000005 Flush 2015/03/10-14:58:11 0 us FlushJob::WriteLevel0Table
140116400078912 Low Pri column_family_name_000004 Compaction 2015/03/10-14:58:11 0 us CompactionJob::FinishCompactionOutputFile
140116358135872 Low Pri column_family_name_000006 Compaction 2015/03/10-14:58:10 1 us CompactionJob::FinishCompactionOutputFile
140116341358656 Low Pri
140116295221312 High Pri default Flush 2015/03/10-14:58:11 0 us FlushJob::WriteLevel0Table
140116324581440 Low Pri column_family_name_000009 Compaction 2015/03/10-14:58:11 0 us CompactionJob::ProcessKeyValueCompaction
140116278444096 Low Pri
140116299415616 Low Pri column_family_name_000008 Compaction 2015/03/10-14:58:11 0 us CompactionJob::FinishCompactionOutputFile
140116291027008 High Pri column_family_name_000001 Flush 2015/03/10-14:58:11 0 us FlushJob::WriteLevel0Table
140116286832704 Low Pri column_family_name_000002 Compaction 2015/03/10-14:58:11 0 us CompactionJob::FinishCompactionOutputFile
140116282638400 Low Pri
Reviewers: rven, igor, sdong
Reviewed By: sdong
Subscribers: dhruba, leveldb
Differential Revision: https://reviews.facebook.net/D34683
10 years ago
Yueh-Hsuan Chiang
bf287b76e0
Add structures for exposing thread events and operations.
...
Summary:
Add structures for exposing events and operations. Event describes
high-level action about a thread such as doing compaciton or
doing flush, while an operation describes lower-level action
of a thread such as reading / writing a SST table, waiting for
mutex. Events and operations are designed to be independent.
One thread would typically involve in one event and one operation.
Code instrument will be in a separate diff.
Test Plan:
Add unit-tests in thread_list_test
make dbg -j32
./thread_list_test
export ROCKSDB_TESTS=ThreadList
./db_test
Reviewers: ljin, igor, sdong
Reviewed By: sdong
Subscribers: rven, jonahcohen, dhruba, leveldb
Differential Revision: https://reviews.facebook.net/D29781
10 years ago