From 63e0f86797ac584b491946c41052fdd327b18cb9 Mon Sep 17 00:00:00 2001 From: Yueh-Hsuan Chiang Date: Fri, 25 Sep 2015 13:34:49 -0700 Subject: [PATCH] Fixed a bug which causes rocksdb.flush.write.bytes stat is always zero Summary: Fixed a bug which causes rocksdb.flush.write.bytes stat is always zero Test Plan: augment existing db_test Reviewers: sdong, anthony, IslamAbdelRahman, igor Reviewed By: igor Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D47595 --- db/builder.cc | 3 +-- db/db_test.cc | 3 +++ db/flush_job.cc | 3 +-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/db/builder.cc b/db/builder.cc index 99ddcb049..388c94126 100644 --- a/db/builder.cc +++ b/db/builder.cc @@ -103,9 +103,8 @@ Status BuildTable( // TODO(noetzli): Update stats after flush, too. if (io_priority == Env::IO_HIGH && IOSTATS(bytes_written) >= kReportFlushIOStatsEvery) { - ThreadStatusUtil::IncreaseThreadOperationProperty( + ThreadStatusUtil::SetThreadOperationProperty( ThreadStatus::FLUSH_BYTES_WRITTEN, IOSTATS(bytes_written)); - IOSTATS_RESET(bytes_written); } } diff --git a/db/db_test.cc b/db/db_test.cc index 68cdb874d..82915e372 100644 --- a/db/db_test.cc +++ b/db/db_test.cc @@ -8121,6 +8121,9 @@ TEST_F(DBTest, MergeTestTime) { ASSERT_LT(TestGetTickerCount(options, MERGE_OPERATION_TOTAL_TIME), 6000000); ASSERT_GT(TestGetTickerCount(options, MERGE_OPERATION_TOTAL_TIME), 3200000); +#if ROCKSDB_USING_THREAD_STATUS + ASSERT_GT(TestGetTickerCount(options, FLUSH_WRITE_BYTES), 0); +#endif // ROCKSDB_USING_THREAD_STATUS } TEST_P(DBTestWithParam, MergeCompactionTimeTest) { diff --git a/db/flush_job.cc b/db/flush_job.cc index e42e3c0e4..410108a05 100644 --- a/db/flush_job.cc +++ b/db/flush_job.cc @@ -111,9 +111,8 @@ void FlushJob::ReportFlushInputSize(const autovector& mems) { } void FlushJob::RecordFlushIOStats() { - ThreadStatusUtil::IncreaseThreadOperationProperty( + ThreadStatusUtil::SetThreadOperationProperty( ThreadStatus::FLUSH_BYTES_WRITTEN, IOSTATS(bytes_written)); - IOSTATS_RESET(bytes_written); } Status FlushJob::Run(FileMetaData* file_meta) {