Skip to content

Commit b9767d0

Browse files
committed
Move several more logging inside DB mutex to log buffer
Summary: Move several some common logging still in DB mutex to log buffer. Test Plan: make all check Reviewers: haobo, igor, ljin, nkg- Reviewed By: nkg- CC: nkg-, yhchiang, leveldb Differential Revision: https://reviews.facebook.net/D17439
1 parent c0b9fa8 commit b9767d0

5 files changed

+36
-35
lines changed

db/compaction_picker.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ Compaction* UniversalCompactionPicker::PickCompaction(Version* version,
587587
options_->level0_file_num_compaction_trigger;
588588
if ((c = PickCompactionUniversalReadAmp(
589589
version, score, UINT_MAX, num_files, log_buffer)) != nullptr) {
590-
Log(options_->info_log, "Universal: compacting for file num\n");
590+
LogToBuffer(log_buffer, "Universal: compacting for file num\n");
591591
}
592592
}
593593
}

db/db_impl.cc

+22-21
Original file line numberDiff line numberDiff line change
@@ -1460,7 +1460,7 @@ Status DBImpl::FlushMemTableToOutputFile(bool* madeProgress,
14601460
s = imm_.InstallMemtableFlushResults(
14611461
mems, versions_.get(), &mutex_, options_.info_log.get(), file_number,
14621462
pending_outputs_, &deletion_state.memtables_to_free,
1463-
db_directory_.get());
1463+
db_directory_.get(), log_buffer);
14641464
}
14651465

14661466
if (s.ok()) {
@@ -2013,9 +2013,10 @@ Status DBImpl::BackgroundFlush(bool* madeProgress,
20132013
LogBuffer* log_buffer) {
20142014
Status stat;
20152015
while (stat.ok() && imm_.IsFlushPending()) {
2016-
Log(options_.info_log,
2017-
"BackgroundCallFlush doing FlushMemTableToOutputFile, flush slots available %d",
2018-
options_.max_background_flushes - bg_flush_scheduled_);
2016+
LogToBuffer(log_buffer,
2017+
"BackgroundCallFlush doing FlushMemTableToOutputFile, "
2018+
"flush slots available %d",
2019+
options_.max_background_flushes - bg_flush_scheduled_);
20192020
stat = FlushMemTableToOutputFile(madeProgress, deletion_state, log_buffer);
20202021
}
20212022
return stat;
@@ -2461,7 +2462,8 @@ Status DBImpl::FinishCompactionOutputFile(CompactionState* compact,
24612462
}
24622463

24632464

2464-
Status DBImpl::InstallCompactionResults(CompactionState* compact) {
2465+
Status DBImpl::InstallCompactionResults(CompactionState* compact,
2466+
LogBuffer* log_buffer) {
24652467
mutex_.AssertHeld();
24662468

24672469
// paranoia: verify that the files that we started with
@@ -2477,11 +2479,10 @@ Status DBImpl::InstallCompactionResults(CompactionState* compact) {
24772479
return Status::Corruption("Compaction input files inconsistent");
24782480
}
24792481

2480-
Log(options_.info_log, "Compacted %d@%d + %d@%d files => %lld bytes",
2481-
compact->compaction->num_input_files(0),
2482-
compact->compaction->level(),
2483-
compact->compaction->num_input_files(1),
2484-
compact->compaction->level() + 1,
2482+
LogToBuffer(
2483+
log_buffer, "Compacted %d@%d + %d@%d files => %lld bytes",
2484+
compact->compaction->num_input_files(0), compact->compaction->level(),
2485+
compact->compaction->num_input_files(1), compact->compaction->level() + 1,
24852486
static_cast<long long>(compact->total_bytes));
24862487

24872488
// Add compaction outputs
@@ -2905,17 +2906,16 @@ Status DBImpl::DoCompactionWork(CompactionState* compact,
29052906
bool prefix_initialized = false;
29062907

29072908
int64_t imm_micros = 0; // Micros spent doing imm_ compactions
2908-
Log(options_.info_log,
2909-
"Compacting %d@%d + %d@%d files, score %.2f slots available %d",
2910-
compact->compaction->num_input_files(0),
2911-
compact->compaction->level(),
2912-
compact->compaction->num_input_files(1),
2913-
compact->compaction->output_level(),
2914-
compact->compaction->score(),
2915-
options_.max_background_compactions - bg_compaction_scheduled_);
2909+
LogToBuffer(log_buffer,
2910+
"Compacting %d@%d + %d@%d files, score %.2f slots available %d",
2911+
compact->compaction->num_input_files(0),
2912+
compact->compaction->level(),
2913+
compact->compaction->num_input_files(1),
2914+
compact->compaction->output_level(), compact->compaction->score(),
2915+
options_.max_background_compactions - bg_compaction_scheduled_);
29162916
char scratch[2345];
29172917
compact->compaction->Summary(scratch, sizeof(scratch));
2918-
Log(options_.info_log, "Compaction start summary: %s\n", scratch);
2918+
LogToBuffer(log_buffer, "Compaction start summary: %s\n", scratch);
29192919

29202920
assert(versions_->current()->NumLevelFiles(compact->compaction->level()) > 0);
29212921
assert(compact->builder == nullptr);
@@ -3173,11 +3173,12 @@ Status DBImpl::DoCompactionWork(CompactionState* compact,
31733173
ReleaseCompactionUnusedFileNumbers(compact);
31743174

31753175
if (status.ok()) {
3176-
status = InstallCompactionResults(compact);
3176+
status = InstallCompactionResults(compact, log_buffer);
31773177
InstallSuperVersion(deletion_state);
31783178
}
31793179
Version::LevelSummaryStorage tmp;
3180-
Log(options_.info_log,
3180+
LogToBuffer(
3181+
log_buffer,
31813182
"compacted to: %s, %.1f MB/sec, level %d, files in(%d, %d) out(%d) "
31823183
"MB in(%.1f, %.1f) out(%.1f), read-write-amplify(%.1f) "
31833184
"write-amplify(%.1f) %s\n",

db/db_impl.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -388,7 +388,8 @@ class DBImpl : public DB {
388388

389389
Status OpenCompactionOutputFile(CompactionState* compact);
390390
Status FinishCompactionOutputFile(CompactionState* compact, Iterator* input);
391-
Status InstallCompactionResults(CompactionState* compact);
391+
Status InstallCompactionResults(CompactionState* compact,
392+
LogBuffer* log_buffer);
392393
void AllocateCompactionOutputFileNumbers(CompactionState* compact);
393394
void ReleaseCompactionUnusedFileNumbers(CompactionState* compact);
394395

db/memtable_list.cc

+9-11
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "rocksdb/env.h"
1212
#include "rocksdb/iterator.h"
1313
#include "util/coding.h"
14+
#include "util/log_buffer.h"
1415

1516
namespace rocksdb {
1617

@@ -140,10 +141,10 @@ void MemTableList::RollbackMemtableFlush(const autovector<MemTable*>& mems,
140141

141142
// Record a successful flush in the manifest file
142143
Status MemTableList::InstallMemtableFlushResults(
143-
const autovector<MemTable*>& mems, VersionSet* vset,
144-
port::Mutex* mu, Logger* info_log, uint64_t file_number,
145-
std::set<uint64_t>& pending_outputs, autovector<MemTable*>* to_delete,
146-
Directory* db_directory) {
144+
const autovector<MemTable*>& mems, VersionSet* vset, port::Mutex* mu,
145+
Logger* info_log, uint64_t file_number, std::set<uint64_t>& pending_outputs,
146+
autovector<MemTable*>* to_delete, Directory* db_directory,
147+
LogBuffer* log_buffer) {
147148
mu->AssertHeld();
148149

149150
// flush was sucessful
@@ -173,9 +174,8 @@ Status MemTableList::InstallMemtableFlushResults(
173174
break;
174175
}
175176

176-
Log(info_log,
177-
"Level-0 commit table #%lu started",
178-
(unsigned long)m->file_number_);
177+
LogToBuffer(log_buffer, "Level-0 commit table #%lu started",
178+
(unsigned long)m->file_number_);
179179

180180
// this can release and reacquire the mutex.
181181
s = vset->LogAndApply(&m->edit_, mu, db_directory);
@@ -189,10 +189,8 @@ Status MemTableList::InstallMemtableFlushResults(
189189
uint64_t mem_id = 1; // how many memtables has been flushed.
190190
do {
191191
if (s.ok()) { // commit new state
192-
Log(info_log,
193-
"Level-0 commit table #%lu: memtable #%lu done",
194-
(unsigned long)m->file_number_,
195-
(unsigned long)mem_id);
192+
LogToBuffer(log_buffer, "Level-0 commit table #%lu: memtable #%lu done",
193+
(unsigned long)m->file_number_, (unsigned long)mem_id);
196194
current_->Remove(m);
197195
assert(m->file_number_ > 0);
198196

db/memtable_list.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ class MemTableList {
104104
Logger* info_log, uint64_t file_number,
105105
std::set<uint64_t>& pending_outputs,
106106
autovector<MemTable*>* to_delete,
107-
Directory* db_directory);
107+
Directory* db_directory,
108+
LogBuffer* log_buffer);
108109

109110
// New memtables are inserted at the front of the list.
110111
// Takes ownership of the referenced held on *m by the caller of Add().

0 commit comments

Comments
 (0)