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
main
Igor Canadi 11 years ago
parent dd6c444822
commit 20c056306b
  1. 21
      db/db_impl.cc
  2. 18
      db/db_impl.h
  3. 1
      db/db_impl_readonly.h
  4. 95
      db/db_stats_logger.cc
  5. 5
      include/rocksdb/options.h
  6. 1
      util/options.cc
  7. 26
      util/stats_logger.h

@ -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();
} }
} }

@ -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(&current_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…
Cancel
Save