Remove stats logger
Summary: Browsing through the code, looks like StatsLogger is not used at all! Test Plan: compiles Reviewers: ljin, sdong, yhchiang, dhruba Reviewed By: dhruba Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D19827
This commit is contained in:
parent
dd6c444822
commit
20c056306b
@ -348,9 +348,7 @@ DBImpl::DBImpl(const DBOptions& options, const std::string& dbname)
|
|||||||
bg_compaction_scheduled_(0),
|
bg_compaction_scheduled_(0),
|
||||||
bg_manual_only_(0),
|
bg_manual_only_(0),
|
||||||
bg_flush_scheduled_(0),
|
bg_flush_scheduled_(0),
|
||||||
bg_logstats_scheduled_(false),
|
|
||||||
manual_compaction_(nullptr),
|
manual_compaction_(nullptr),
|
||||||
logger_(nullptr),
|
|
||||||
disable_delete_obsolete_files_(0),
|
disable_delete_obsolete_files_(0),
|
||||||
delete_obsolete_files_last_run_(options.env->NowMicros()),
|
delete_obsolete_files_last_run_(options.env->NowMicros()),
|
||||||
purge_wal_files_last_run_(0),
|
purge_wal_files_last_run_(0),
|
||||||
@ -381,16 +379,6 @@ DBImpl::DBImpl(const DBOptions& options, const std::string& dbname)
|
|||||||
DumpLeveldbBuildVersion(options_.info_log.get());
|
DumpLeveldbBuildVersion(options_.info_log.get());
|
||||||
options_.Dump(options_.info_log.get());
|
options_.Dump(options_.info_log.get());
|
||||||
|
|
||||||
char name[100];
|
|
||||||
Status s = env_->GetHostName(name, 100L);
|
|
||||||
if (s.ok()) {
|
|
||||||
host_name_ = name;
|
|
||||||
} else {
|
|
||||||
Log(options_.info_log, "Can't get hostname, use localhost as host name.");
|
|
||||||
host_name_ = "localhost";
|
|
||||||
}
|
|
||||||
last_log_ts = 0;
|
|
||||||
|
|
||||||
LogFlush(options_.info_log);
|
LogFlush(options_.info_log);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -411,9 +399,7 @@ DBImpl::~DBImpl() {
|
|||||||
|
|
||||||
// Wait for background work to finish
|
// Wait for background work to finish
|
||||||
shutting_down_.Release_Store(this); // Any non-nullptr value is ok
|
shutting_down_.Release_Store(this); // Any non-nullptr value is ok
|
||||||
while (bg_compaction_scheduled_ ||
|
while (bg_compaction_scheduled_ || bg_flush_scheduled_) {
|
||||||
bg_flush_scheduled_ ||
|
|
||||||
bg_logstats_scheduled_) {
|
|
||||||
bg_cv_.Wait();
|
bg_cv_.Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1585,8 +1571,6 @@ Status DBImpl::FlushMemTableToOutputFile(ColumnFamilyData* cfd,
|
|||||||
LogToBuffer(log_buffer, "[%s] Level summary: %s\n", cfd->GetName().c_str(),
|
LogToBuffer(log_buffer, "[%s] Level summary: %s\n", cfd->GetName().c_str(),
|
||||||
cfd->current()->LevelSummary(&tmp));
|
cfd->current()->LevelSummary(&tmp));
|
||||||
|
|
||||||
MaybeScheduleLogDBDeployStats();
|
|
||||||
|
|
||||||
if (disable_delete_obsolete_files_ == 0) {
|
if (disable_delete_obsolete_files_ == 0) {
|
||||||
// add to deletion state
|
// add to deletion state
|
||||||
while (alive_log_files_.size() &&
|
while (alive_log_files_.size() &&
|
||||||
@ -2102,8 +2086,6 @@ void DBImpl::BackgroundCallCompaction() {
|
|||||||
|
|
||||||
bg_compaction_scheduled_--;
|
bg_compaction_scheduled_--;
|
||||||
|
|
||||||
MaybeScheduleLogDBDeployStats();
|
|
||||||
|
|
||||||
versions_->GetColumnFamilySet()->FreeDeadColumnFamilies();
|
versions_->GetColumnFamilySet()->FreeDeadColumnFamilies();
|
||||||
|
|
||||||
// Previous compaction may have produced too many files in a level,
|
// Previous compaction may have produced too many files in a level,
|
||||||
@ -4714,7 +4696,6 @@ Status DB::Open(const DBOptions& db_options, const std::string& dbname,
|
|||||||
DBImpl::LogFileNumberSize(impl->logfile_number_));
|
DBImpl::LogFileNumberSize(impl->logfile_number_));
|
||||||
impl->DeleteObsoleteFiles();
|
impl->DeleteObsoleteFiles();
|
||||||
impl->MaybeScheduleFlushOrCompaction();
|
impl->MaybeScheduleFlushOrCompaction();
|
||||||
impl->MaybeScheduleLogDBDeployStats();
|
|
||||||
s = impl->db_directory_->Fsync();
|
s = impl->db_directory_->Fsync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
18
db/db_impl.h
18
db/db_impl.h
@ -28,7 +28,6 @@
|
|||||||
#include "rocksdb/memtablerep.h"
|
#include "rocksdb/memtablerep.h"
|
||||||
#include "rocksdb/transaction_log.h"
|
#include "rocksdb/transaction_log.h"
|
||||||
#include "util/autovector.h"
|
#include "util/autovector.h"
|
||||||
#include "util/stats_logger.h"
|
|
||||||
#include "util/stop_watch.h"
|
#include "util/stop_watch.h"
|
||||||
#include "util/thread_local.h"
|
#include "util/thread_local.h"
|
||||||
#include "db/internal_stats.h"
|
#include "db/internal_stats.h"
|
||||||
@ -362,13 +361,6 @@ class DBImpl : public DB {
|
|||||||
void RecordFlushIOStats();
|
void RecordFlushIOStats();
|
||||||
void RecordCompactionIOStats();
|
void RecordCompactionIOStats();
|
||||||
|
|
||||||
void MaybeScheduleLogDBDeployStats();
|
|
||||||
|
|
||||||
#ifndef ROCKSDB_LITE
|
|
||||||
static void BGLogDBDeployStats(void* db);
|
|
||||||
void LogDBDeployStats();
|
|
||||||
#endif // ROCKSDB_LITE
|
|
||||||
|
|
||||||
void MaybeScheduleFlushOrCompaction();
|
void MaybeScheduleFlushOrCompaction();
|
||||||
static void BGWorkCompaction(void* db);
|
static void BGWorkCompaction(void* db);
|
||||||
static void BGWorkFlush(void* db);
|
static void BGWorkFlush(void* db);
|
||||||
@ -478,7 +470,6 @@ class DBImpl : public DB {
|
|||||||
// * whenever bg_flush_scheduled_ value decreases (i.e. whenever a flush is
|
// * whenever bg_flush_scheduled_ value decreases (i.e. whenever a flush is
|
||||||
// done, even if it didn't make any progress)
|
// done, even if it didn't make any progress)
|
||||||
// * whenever there is an error in background flush or compaction
|
// * whenever there is an error in background flush or compaction
|
||||||
// * whenever bg_logstats_scheduled_ turns to false
|
|
||||||
port::CondVar bg_cv_;
|
port::CondVar bg_cv_;
|
||||||
uint64_t logfile_number_;
|
uint64_t logfile_number_;
|
||||||
unique_ptr<log::Writer> log_;
|
unique_ptr<log::Writer> log_;
|
||||||
@ -502,8 +493,6 @@ class DBImpl : public DB {
|
|||||||
// some code-paths
|
// some code-paths
|
||||||
bool single_column_family_mode_;
|
bool single_column_family_mode_;
|
||||||
|
|
||||||
std::string host_name_;
|
|
||||||
|
|
||||||
std::unique_ptr<Directory> db_directory_;
|
std::unique_ptr<Directory> db_directory_;
|
||||||
|
|
||||||
// Queue of writers.
|
// Queue of writers.
|
||||||
@ -536,9 +525,6 @@ class DBImpl : public DB {
|
|||||||
// number of background memtable flush jobs, submitted to the HIGH pool
|
// number of background memtable flush jobs, submitted to the HIGH pool
|
||||||
int bg_flush_scheduled_;
|
int bg_flush_scheduled_;
|
||||||
|
|
||||||
// Has a background stats log thread scheduled?
|
|
||||||
bool bg_logstats_scheduled_;
|
|
||||||
|
|
||||||
// Information for a manual compaction
|
// Information for a manual compaction
|
||||||
struct ManualCompaction {
|
struct ManualCompaction {
|
||||||
ColumnFamilyData* cfd;
|
ColumnFamilyData* cfd;
|
||||||
@ -556,10 +542,6 @@ class DBImpl : public DB {
|
|||||||
// Have we encountered a background error in paranoid mode?
|
// Have we encountered a background error in paranoid mode?
|
||||||
Status bg_error_;
|
Status bg_error_;
|
||||||
|
|
||||||
std::unique_ptr<StatsLogger> logger_;
|
|
||||||
|
|
||||||
int64_t volatile last_log_ts;
|
|
||||||
|
|
||||||
// shall we disable deletion of obsolete files
|
// shall we disable deletion of obsolete files
|
||||||
// if 0 the deletion is enabled.
|
// if 0 the deletion is enabled.
|
||||||
// if non-zero, files will not be getting deleted
|
// if non-zero, files will not be getting deleted
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
#include "rocksdb/db.h"
|
#include "rocksdb/db.h"
|
||||||
#include "rocksdb/env.h"
|
#include "rocksdb/env.h"
|
||||||
#include "port/port.h"
|
#include "port/port.h"
|
||||||
#include "util/stats_logger.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
namespace rocksdb {
|
||||||
|
|
||||||
|
@ -1,95 +0,0 @@
|
|||||||
// 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.
|
|
||||||
//
|
|
||||||
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
||||||
// Use of this source code is governed by a BSD-style license that can be
|
|
||||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
||||||
|
|
||||||
#include "db/db_impl.h"
|
|
||||||
#include <string>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include "db/version_set.h"
|
|
||||||
#include "rocksdb/db.h"
|
|
||||||
#include "rocksdb/env.h"
|
|
||||||
#include "port/port.h"
|
|
||||||
#include "util/mutexlock.h"
|
|
||||||
|
|
||||||
namespace rocksdb {
|
|
||||||
|
|
||||||
void DBImpl::MaybeScheduleLogDBDeployStats() {
|
|
||||||
// we did say maybe
|
|
||||||
#ifndef ROCKSDB_LITE
|
|
||||||
// There is a lock in the actual logger.
|
|
||||||
if (!logger_ || options_.db_stats_log_interval < 0
|
|
||||||
|| host_name_.empty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(bg_logstats_scheduled_ || shutting_down_.Acquire_Load()) {
|
|
||||||
// Already scheduled
|
|
||||||
} else {
|
|
||||||
int64_t current_ts = 0;
|
|
||||||
Status st = env_->GetCurrentTime(¤t_ts);
|
|
||||||
if (!st.ok()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ((current_ts - last_log_ts) < options_.db_stats_log_interval) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
last_log_ts = current_ts;
|
|
||||||
bg_logstats_scheduled_ = true;
|
|
||||||
env_->Schedule(&DBImpl::BGLogDBDeployStats, this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DBImpl::BGLogDBDeployStats(void* db) {
|
|
||||||
DBImpl* db_inst = reinterpret_cast<DBImpl*>(db);
|
|
||||||
db_inst->LogDBDeployStats();
|
|
||||||
}
|
|
||||||
|
|
||||||
void DBImpl::LogDBDeployStats() {
|
|
||||||
mutex_.Lock();
|
|
||||||
|
|
||||||
if (shutting_down_.Acquire_Load()) {
|
|
||||||
bg_logstats_scheduled_ = false;
|
|
||||||
bg_cv_.SignalAll();
|
|
||||||
mutex_.Unlock();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
char tmp_ver[100];
|
|
||||||
sprintf(tmp_ver, "%d.%d", kMajorVersion, kMinorVersion);
|
|
||||||
std::string version_info(tmp_ver);
|
|
||||||
|
|
||||||
uint64_t file_total_size = 0;
|
|
||||||
uint32_t file_total_num = 0;
|
|
||||||
Version* current = default_cf_handle_->cfd()->current();
|
|
||||||
for (int i = 0; i < current->NumberLevels(); i++) {
|
|
||||||
file_total_num += current->NumLevelFiles(i);
|
|
||||||
file_total_size += current->NumLevelBytes(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
Version::LevelSummaryStorage scratch;
|
|
||||||
const char* file_num_summary = current->LevelSummary(&scratch);
|
|
||||||
std::string file_num_per_level(file_num_summary);
|
|
||||||
std::string data_size_per_level(file_num_summary);
|
|
||||||
|
|
||||||
mutex_.Unlock();
|
|
||||||
|
|
||||||
int64_t unix_ts;
|
|
||||||
env_->GetCurrentTime(&unix_ts);
|
|
||||||
|
|
||||||
logger_->Log_Deploy_Stats(version_info, host_name_,
|
|
||||||
db_absolute_path_, file_total_size, file_total_num, file_num_per_level,
|
|
||||||
data_size_per_level, unix_ts);
|
|
||||||
|
|
||||||
mutex_.Lock();
|
|
||||||
bg_logstats_scheduled_ = false;
|
|
||||||
bg_cv_.SignalAll();
|
|
||||||
mutex_.Unlock();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
@ -674,10 +674,7 @@ struct DBOptions {
|
|||||||
// Default: false
|
// Default: false
|
||||||
bool use_fsync;
|
bool use_fsync;
|
||||||
|
|
||||||
// This number controls how often a new scribe log about
|
// This options is not used!!
|
||||||
// db deploy stats is written out.
|
|
||||||
// -1 indicates no logging at all.
|
|
||||||
// Default value is 1800 (half an hour).
|
|
||||||
int db_stats_log_interval;
|
int db_stats_log_interval;
|
||||||
|
|
||||||
// A list paths where SST files can be put into. A compaction style can
|
// A list paths where SST files can be put into. A compaction style can
|
||||||
|
@ -264,7 +264,6 @@ void DBOptions::Dump(Logger* log) const {
|
|||||||
(unsigned long)max_manifest_file_size);
|
(unsigned long)max_manifest_file_size);
|
||||||
Log(log, " Options.log_file_time_to_roll: %zu", log_file_time_to_roll);
|
Log(log, " Options.log_file_time_to_roll: %zu", log_file_time_to_roll);
|
||||||
Log(log, " Options.keep_log_file_num: %zu", keep_log_file_num);
|
Log(log, " Options.keep_log_file_num: %zu", keep_log_file_num);
|
||||||
Log(log, " Options.db_stats_log_interval: %d", db_stats_log_interval);
|
|
||||||
Log(log, " Options.allow_os_buffer: %d", allow_os_buffer);
|
Log(log, " Options.allow_os_buffer: %d", allow_os_buffer);
|
||||||
Log(log, " Options.allow_mmap_reads: %d", allow_mmap_reads);
|
Log(log, " Options.allow_mmap_reads: %d", allow_mmap_reads);
|
||||||
Log(log, " Options.allow_mmap_writes: %d", allow_mmap_writes);
|
Log(log, " Options.allow_mmap_writes: %d", allow_mmap_writes);
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
// 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.
|
|
||||||
//
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
namespace rocksdb {
|
|
||||||
|
|
||||||
class StatsLogger {
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
virtual void Log_Deploy_Stats(const std::string& db_version,
|
|
||||||
const std::string& machine_info,
|
|
||||||
const std::string& data_dir,
|
|
||||||
const uint64_t data_size,
|
|
||||||
const uint32_t file_number,
|
|
||||||
const std::string& data_size_per_level,
|
|
||||||
const std::string& file_number_per_level,
|
|
||||||
const int64_t& ts_unix) = 0;
|
|
||||||
virtual ~StatsLogger() {}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user