1
0
Fork 0

preparation for RocksDB logger

This commit is contained in:
jsteemann 2017-05-09 12:42:25 +02:00
parent 1bfc52d800
commit 488e4be485
6 changed files with 23 additions and 8 deletions

View File

@ -61,15 +61,13 @@ GeneralCommTask::GeneralCommTask(EventLoop loop, GeneralServer* server,
_server(server) {}
GeneralCommTask::~GeneralCommTask() {
for (auto&& statistics : _statisticsMap) {
for (auto& statistics : _statisticsMap) {
auto stat = statistics.second;
if (stat != nullptr) {
stat->release();
}
}
_statisticsMap.clear();
}
// -----------------------------------------------------------------------------

View File

@ -222,8 +222,10 @@ void RocksDBEngine::start() {
_options.info_log_level = rocksdb::InfoLogLevel::ERROR_LEVEL;
// intentionally do not start the logger (yet)
// as it will produce a lot of log spam
// _options.info_log =
// std::make_shared<RocksDBLogger>(rocksdb::InfoLogLevel::ERROR_LEVEL);
// _options.info_log = std::make_shared<RocksDBLogger>(_options.info_log_level);
// _options.statistics = rocksdb::CreateDBStatistics();
// _options.stats_dump_period_sec = 1;
rocksdb::BlockBasedTableOptions table_options;
if (opts->_blockCacheSize > 0) {

View File

@ -203,7 +203,13 @@ Result RocksDBTransactionState::commitTransaction(
// TODO wait for response on github issue to see how we can use the
// sequence number
double t1 = TRI_microtime();
result = rocksutils::convertStatus(_rocksTransaction->Commit());
double t2 = TRI_microtime();
if (t2 - t1 > 0.25) {
LOG_TOPIC(ERR, Logger::FIXME) << "COMMIT TOOK: " << (t2 - t1) << " S. NUMINSERTS: " << _numInserts << ", NUMUPDATES: " << _numUpdates << ", NUMREMOVES: " << _numRemoves << ", TRANSACTIONSIZE: " << _transactionSize;
}
rocksdb::SequenceNumber latestSeq =
rocksutils::globalRocksDB()->GetLatestSequenceNumber();
if (!result.ok()) {

View File

@ -34,7 +34,6 @@
#include "Rest/HttpRequest.h"
#include "Scheduler/Scheduler.h"
#include "Scheduler/SchedulerFeature.h"
#include "Statistics/RequestStatistics.h"
#include "VocBase/vocbase.h"
using namespace arangodb;

View File

@ -30,7 +30,11 @@ using namespace arangodb;
RocksDBLogger::RocksDBLogger(rocksdb::InfoLogLevel level) : rocksdb::Logger(level) {}
RocksDBLogger::~RocksDBLogger() {}
void RocksDBLogger::Logv(char const* format, va_list ap) {
void RocksDBLogger::Logv(const rocksdb::InfoLogLevel logLevel, char const* format, va_list ap) {
if (logLevel < GetInfoLogLevel()) {
return;
}
static constexpr size_t prefixSize = 9; // strlen("rocksdb: ");
char buffer[2048];
memcpy(&buffer[0], "rocksdb: \0", prefixSize); // add trailing \0 byte already for safety
@ -57,7 +61,7 @@ void RocksDBLogger::Logv(char const* format, va_list ap) {
--l;
}
switch (GetInfoLogLevel()) {
switch (logLevel) {
case rocksdb::InfoLogLevel::DEBUG_LEVEL:
LOG_TOPIC(DEBUG, arangodb::Logger::FIXME) << StringRef(buffer, l);
break;
@ -76,3 +80,8 @@ void RocksDBLogger::Logv(char const* format, va_list ap) {
}
}
}
void RocksDBLogger::Logv(char const* format, va_list ap) {
// forward to the level-aware method
Logv(rocksdb::InfoLogLevel::INFO_LEVEL, format, ap);
}

View File

@ -40,6 +40,7 @@ class RocksDBLogger final : public rocksdb::Logger {
void LogHeader(const char* format, va_list ap) override {}
void Logv(char const* format, va_list ap) override;
void Logv(const rocksdb::InfoLogLevel, char const* format, va_list ap) override;
// nothing to do here, as ArangoDB logger infrastructure takes care of flushing itself
void Flush() override {}