mirror of https://gitee.com/bigwinds/arangodb
preparation for RocksDB logger
This commit is contained in:
parent
1bfc52d800
commit
488e4be485
|
@ -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();
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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()) {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 {}
|
||||
|
|
Loading…
Reference in New Issue