dbms: renamed Revision to ClickHouseRevision. Daemon to BaseDaemon

This commit is contained in:
Pavel Kartavyy 2016-02-09 20:06:50 +03:00
parent 5bdfe45415
commit eca42536d8
22 changed files with 84 additions and 79 deletions

View File

@ -5,7 +5,7 @@
#include <DB/IO/CompressedReadBuffer.h> #include <DB/IO/CompressedReadBuffer.h>
#include <DB/DataStreams/IProfilingBlockInputStream.h> #include <DB/DataStreams/IProfilingBlockInputStream.h>
#include <DB/DataStreams/NativeBlockInputStream.h> #include <DB/DataStreams/NativeBlockInputStream.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
namespace DB namespace DB
@ -58,7 +58,7 @@ protected:
BlockInputStreamPtr block_in; BlockInputStreamPtr block_in;
TemporaryFileStream(const std::string & path) TemporaryFileStream(const std::string & path)
: file_in(path), compressed_in(file_in), block_in(new NativeBlockInputStream(compressed_in, Revision::get())) {} : file_in(path), compressed_in(file_in), block_in(new NativeBlockInputStream(compressed_in, ClickHouseRevision::get())) {}
}; };
std::vector<std::unique_ptr<TemporaryFileStream>> temporary_inputs; std::vector<std::unique_ptr<TemporaryFileStream>> temporary_inputs;

View File

@ -8,7 +8,7 @@
#include <DB/DataStreams/NativeBlockInputStream.h> #include <DB/DataStreams/NativeBlockInputStream.h>
#include <DB/DataStreams/MergingAggregatedMemoryEfficientBlockInputStream.h> #include <DB/DataStreams/MergingAggregatedMemoryEfficientBlockInputStream.h>
#include <DB/DataStreams/ParallelInputsProcessor.h> #include <DB/DataStreams/ParallelInputsProcessor.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
namespace DB namespace DB
@ -151,7 +151,7 @@ private:
BlockInputStreamPtr block_in; BlockInputStreamPtr block_in;
TemporaryFileStream(const std::string & path) TemporaryFileStream(const std::string & path)
: file_in(path), compressed_in(file_in), block_in(new NativeBlockInputStream(compressed_in, Revision::get())) {} : file_in(path), compressed_in(file_in), block_in(new NativeBlockInputStream(compressed_in, ClickHouseRevision::get())) {}
}; };
std::vector<std::unique_ptr<TemporaryFileStream>> temporary_inputs; std::vector<std::unique_ptr<TemporaryFileStream>> temporary_inputs;

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
#include <Poco/Net/DNS.h> #include <Poco/Net/DNS.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
#include <DB/Core/Defines.h> #include <DB/Core/Defines.h>
#include <DB/Core/FieldVisitors.h> #include <DB/Core/FieldVisitors.h>
@ -951,7 +951,7 @@ private:
std::string getVersion() const std::string getVersion() const
{ {
std::ostringstream os; std::ostringstream os;
os << DBMS_VERSION_MAJOR << "." << DBMS_VERSION_MINOR << "." << Revision::get(); os << DBMS_VERSION_MAJOR << "." << DBMS_VERSION_MINOR << "." << ClickHouseRevision::get();
return os.str(); return os.str();
} }
}; };

View File

@ -19,7 +19,7 @@
#include <Poco/SharedPtr.h> #include <Poco/SharedPtr.h>
#include <Poco/Util/Application.h> #include <Poco/Util/Application.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
#include <DB/Common/Stopwatch.h> #include <DB/Common/Stopwatch.h>
@ -287,7 +287,7 @@ private:
if (is_interactive) if (is_interactive)
std::cout << "ClickHouse client version " << DBMS_VERSION_MAJOR std::cout << "ClickHouse client version " << DBMS_VERSION_MAJOR
<< "." << DBMS_VERSION_MINOR << "." << DBMS_VERSION_MINOR
<< "." << Revision::get() << "." << ClickHouseRevision::get()
<< "." << std::endl; << "." << std::endl;
if (config().has("vertical")) if (config().has("vertical"))

View File

@ -2,7 +2,7 @@
#include <Poco/Net/NetException.h> #include <Poco/Net/NetException.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
#include <DB/Core/Defines.h> #include <DB/Core/Defines.h>
#include <DB/Common/Exception.h> #include <DB/Common/Exception.h>
@ -101,7 +101,7 @@ void Connection::sendHello()
writeStringBinary((DBMS_NAME " ") + client_name, *out); writeStringBinary((DBMS_NAME " ") + client_name, *out);
writeVarUInt(DBMS_VERSION_MAJOR, *out); writeVarUInt(DBMS_VERSION_MAJOR, *out);
writeVarUInt(DBMS_VERSION_MINOR, *out); writeVarUInt(DBMS_VERSION_MINOR, *out);
writeVarUInt(Revision::get(), *out); writeVarUInt(ClickHouseRevision::get(), *out);
writeStringBinary(default_database, *out); writeStringBinary(default_database, *out);
writeStringBinary(user, *out); writeStringBinary(user, *out);
writeStringBinary(password, *out); writeStringBinary(password, *out);

View File

@ -23,7 +23,7 @@
#include <DB/Storages/StorageLog.h> #include <DB/Storages/StorageLog.h>
#include <DB/Interpreters/Context.h> #include <DB/Interpreters/Context.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
int main(int argc, char ** argv) int main(int argc, char ** argv)
@ -109,7 +109,7 @@ int main(int argc, char ** argv)
SharedPtr<IBlockInputStream> in = table->read(column_names, 0, Context{}, Settings(), stage)[0]; SharedPtr<IBlockInputStream> in = table->read(column_names, 0, Context{}, Settings(), stage)[0];
WriteBufferFromFileDescriptor out1(STDOUT_FILENO); WriteBufferFromFileDescriptor out1(STDOUT_FILENO);
CompressedWriteBuffer out2(out1); CompressedWriteBuffer out2(out1);
NativeBlockOutputStream out3(out2, Revision::get()); NativeBlockOutputStream out3(out2, ClickHouseRevision::get());
copyData(*in, out3); copyData(*in, out3);
} }
@ -118,7 +118,7 @@ int main(int argc, char ** argv)
{ {
ReadBufferFromFileDescriptor in1(STDIN_FILENO); ReadBufferFromFileDescriptor in1(STDIN_FILENO);
CompressedReadBuffer in2(in1); CompressedReadBuffer in2(in1);
NativeBlockInputStream in3(in2, Revision::get()); NativeBlockInputStream in3(in2, ClickHouseRevision::get());
SharedPtr<IBlockOutputStream> out = table->write({}, {}); SharedPtr<IBlockOutputStream> out = table->write({}, {});
copyData(in3, *out); copyData(in3, *out);
} }

View File

@ -18,7 +18,7 @@
#include <DB/IO/CompressedWriteBuffer.h> #include <DB/IO/CompressedWriteBuffer.h>
#include <DB/Interpreters/Aggregator.h> #include <DB/Interpreters/Aggregator.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
namespace DB namespace DB
@ -793,7 +793,7 @@ void Aggregator::writeToTemporaryFile(AggregatedDataVariants & data_variants, si
const std::string & path = file->path(); const std::string & path = file->path();
WriteBufferFromFile file_buf(path); WriteBufferFromFile file_buf(path);
CompressedWriteBuffer compressed_buf(file_buf); CompressedWriteBuffer compressed_buf(file_buf);
NativeBlockOutputStream block_out(compressed_buf, Revision::get()); NativeBlockOutputStream block_out(compressed_buf, ClickHouseRevision::get());
LOG_DEBUG(log, "Writing part of aggregation data into temporary file " << path << "."); LOG_DEBUG(log, "Writing part of aggregation data into temporary file " << path << ".");
ProfileEvents::increment(ProfileEvents::ExternalAggregationWritePart); ProfileEvents::increment(ProfileEvents::ExternalAggregationWritePart);

View File

@ -1,5 +1,5 @@
#include <Poco/DirectoryIterator.h> #include <Poco/DirectoryIterator.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
#include <ext/unlock_guard.hpp> #include <ext/unlock_guard.hpp>
#include <DB/Common/SipHash.h> #include <DB/Common/SipHash.h>
@ -48,7 +48,7 @@ static Compiler::HashedKey getHash(const std::string & key)
{ {
SipHash hash; SipHash hash;
auto revision = Revision::get(); auto revision = ClickHouseRevision::get();
hash.update(reinterpret_cast<const char *>(&revision), sizeof(revision)); hash.update(reinterpret_cast<const char *>(&revision), sizeof(revision));
hash.update(key.data(), key.size()); hash.update(key.data(), key.size());

View File

@ -16,7 +16,7 @@
#include <DB/Interpreters/InterpreterRenameQuery.h> #include <DB/Interpreters/InterpreterRenameQuery.h>
#include <DB/Interpreters/QueryLog.h> #include <DB/Interpreters/QueryLog.h>
#include <DB/Common/setThreadName.h> #include <DB/Common/setThreadName.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
namespace DB namespace DB
@ -265,7 +265,7 @@ void QueryLog::flush()
block.unsafeGetByPosition(i++).column.get()->insertData(elem.user.data(), elem.user.size()); block.unsafeGetByPosition(i++).column.get()->insertData(elem.user.data(), elem.user.size());
block.unsafeGetByPosition(i++).column.get()->insertData(elem.query_id.data(), elem.query_id.size()); block.unsafeGetByPosition(i++).column.get()->insertData(elem.query_id.data(), elem.query_id.size());
block.unsafeGetByPosition(i++).column.get()->insert(static_cast<UInt64>(Revision::get())); block.unsafeGetByPosition(i++).column.get()->insert(static_cast<UInt64>(ClickHouseRevision::get()));
} }
BlockOutputStreamPtr stream = table->write({}, {}); BlockOutputStreamPtr stream = table->write({}, {});

View File

@ -1,6 +1,6 @@
#include "MetricsTransmitter.h" #include "MetricsTransmitter.h"
#include <daemon/Daemon.h> #include <daemon/BaseDaemon.h>
#include <DB/Common/setThreadName.h> #include <DB/Common/setThreadName.h>
#include <DB/Common/CurrentMetrics.h> #include <DB/Common/CurrentMetrics.h>
@ -73,7 +73,7 @@ void MetricsTransmitter::transmit()
key_vals.emplace_back(metrics_path_prefix + key, value); key_vals.emplace_back(metrics_path_prefix + key, value);
} }
Daemon::instance().writeToGraphite(key_vals); BaseDaemon::instance().writeToGraphite(key_vals);
} }
} }

View File

@ -18,7 +18,7 @@
#include <Poco/Net/TCPServerConnection.h> #include <Poco/Net/TCPServerConnection.h>
#include <common/logger_useful.h> #include <common/logger_useful.h>
#include <daemon/Daemon.h> #include <daemon/BaseDaemon.h>
#include <DB/Common/HTMLForm.h> #include <DB/Common/HTMLForm.h>
#include <DB/Interpreters/Context.h> #include <DB/Interpreters/Context.h>
@ -39,7 +39,7 @@
namespace DB namespace DB
{ {
class Server : public Daemon class Server : public BaseDaemon
{ {
public: public:
/// Глобальные настройки севрера /// Глобальные настройки севрера
@ -51,14 +51,14 @@ public:
protected: protected:
void initialize(Application & self) void initialize(Application & self)
{ {
Daemon::initialize(self); BaseDaemon::initialize(self);
logger().information("starting up"); logger().information("starting up");
} }
void uninitialize() void uninitialize()
{ {
logger().information("shutting down"); logger().information("shutting down");
Daemon::uninitialize(); BaseDaemon::uninitialize();
} }
int main(const std::vector<std::string> & args); int main(const std::vector<std::string> & args);

View File

@ -7,7 +7,7 @@
#include <Poco/File.h> #include <Poco/File.h>
#include <common/logger_useful.h> #include <common/logger_useful.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
#include <common/LocalDateTime.h> #include <common/LocalDateTime.h>
#include <DB/IO/copyData.h> #include <DB/IO/copyData.h>
@ -70,7 +70,7 @@ StatusFile::StatusFile(const std::string & path_)
out out
<< "PID: " << getpid() << "\n" << "PID: " << getpid() << "\n"
<< "Started at: " << LocalDateTime(time(0)) << "\n" << "Started at: " << LocalDateTime(time(0)) << "\n"
<< "Revision: " << Revision::get() << "\n"; << "Revision: " << ClickHouseRevision::get() << "\n";
} }
} }
catch (...) catch (...)

View File

@ -2,7 +2,7 @@
#include <Poco/Net/NetException.h> #include <Poco/Net/NetException.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
#include <DB/Common/Stopwatch.h> #include <DB/Common/Stopwatch.h>
@ -115,11 +115,11 @@ void TCPHandler::runImpl()
while (1) while (1)
{ {
/// Ждём пакета от клиента. При этом, каждые POLL_INTERVAL сек. проверяем, не требуется ли завершить работу. /// Ждём пакета от клиента. При этом, каждые POLL_INTERVAL сек. проверяем, не требуется ли завершить работу.
while (!static_cast<ReadBufferFromPocoSocket &>(*in).poll(global_settings.poll_interval * 1000000) && !Daemon::instance().isCancelled()) while (!static_cast<ReadBufferFromPocoSocket &>(*in).poll(global_settings.poll_interval * 1000000) && !BaseDaemon::instance().isCancelled())
; ;
/// Если требуется завершить работу, или клиент отсоединился. /// Если требуется завершить работу, или клиент отсоединился.
if (Daemon::instance().isCancelled() || in->eof()) if (BaseDaemon::instance().isCancelled() || in->eof())
break; break;
Stopwatch watch; Stopwatch watch;
@ -256,7 +256,7 @@ void TCPHandler::readData(const Settings & global_settings)
break; break;
/// Если требуется завершить работу. /// Если требуется завершить работу.
if (Daemon::instance().isCancelled()) if (BaseDaemon::instance().isCancelled())
return; return;
/** Если ждём данных уже слишком долго. /** Если ждём данных уже слишком долго.
@ -490,7 +490,7 @@ void TCPHandler::sendHello()
writeStringBinary(DBMS_NAME, *out); writeStringBinary(DBMS_NAME, *out);
writeVarUInt(DBMS_VERSION_MAJOR, *out); writeVarUInt(DBMS_VERSION_MAJOR, *out);
writeVarUInt(DBMS_VERSION_MINOR, *out); writeVarUInt(DBMS_VERSION_MINOR, *out);
writeVarUInt(Revision::get(), *out); writeVarUInt(ClickHouseRevision::get(), *out);
out->next(); out->next();
} }

View File

@ -12,7 +12,7 @@
#include <DB/Common/Increment.h> #include <DB/Common/Increment.h>
#include <memory> #include <memory>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
#include <iostream> #include <iostream>
@ -159,7 +159,7 @@ void DistributedBlockOutputStream::writeToShard(const Block & block, const std::
WriteBufferFromFile out{block_file_tmp_path}; WriteBufferFromFile out{block_file_tmp_path};
CompressedWriteBuffer compress{out}; CompressedWriteBuffer compress{out};
NativeBlockOutputStream stream{compress, Revision::get()}; NativeBlockOutputStream stream{compress, ClickHouseRevision::get()};
writeStringBinary(query_string, out); writeStringBinary(query_string, out);

View File

@ -1,13 +1,12 @@
SET(REVISIONFILE ${CMAKE_CURRENT_BINARY_DIR}/src/revision.h) SET(REVISIONFILE ${CMAKE_CURRENT_BINARY_DIR}/src/revision.h)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/create_revision.sh.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/create_revision.sh)
ADD_CUSTOM_COMMAND( ADD_CUSTOM_COMMAND(
OUTPUT ${REVISIONFILE} OUTPUT ${REVISIONFILE}
COMMAND bash -f ${CMAKE_CURRENT_BINARY_DIR}/src/create_revision.sh COMMAND bash -c ${CMAKE_CURRENT_BINARY_DIR}/src/create_revision.sh ${REVISIONFILE}
) )
set_source_files_properties( set_source_files_properties(
src/Revision.cpp PROPERTIES OBJECT_DEPENDS ${REVISIONFILE} src/ClickHouseRevision.cpp PROPERTIES OBJECT_DEPENDS ${REVISIONFILE}
) )
include_directories (${CMAKE_CURRENT_BINARY_DIR}/src/) include_directories (${CMAKE_CURRENT_BINARY_DIR}/src/)
@ -15,7 +14,7 @@ include_directories (${CMAKE_CURRENT_BINARY_DIR}/src/)
add_library (common add_library (common
src/DateLUT.cpp src/DateLUT.cpp
src/DateLUTImpl.cpp src/DateLUTImpl.cpp
src/Revision.cpp src/ClickHouseRevision.cpp
src/JSON.cpp src/JSON.cpp
include/common/ApplicationExt.h include/common/ApplicationExt.h
@ -29,7 +28,7 @@ add_library (common
include/common/likely.h include/common/likely.h
include/common/logger_useful.h include/common/logger_useful.h
include/common/MultiVersion.h include/common/MultiVersion.h
include/common/Revision.h include/common/ClickHouseRevision.h
include/common/singleton.h include/common/singleton.h
include/common/strong_typedef.h include/common/strong_typedef.h
include/common/JSON.h include/common/JSON.h

View File

@ -1,6 +1,6 @@
#pragma once #pragma once
namespace Revision namespace ClickHouseRevision
{ {
unsigned get(); unsigned get();
} }

View File

@ -0,0 +1,7 @@
#include <common/ClickHouseRevision.h>
#include "revision.h"
namespace ClickHouseRevision
{
unsigned get() { return REVISION; }
}

View File

@ -1,7 +0,0 @@
#include <common/Revision.h>
#include "revision.h"
namespace Revision
{
unsigned get() { return REVISION; }
}

View File

@ -1,8 +1,8 @@
add_library (daemon add_library (daemon
src/Daemon.cpp src/BaseDaemon.cpp
src/GraphiteWriter.cpp src/GraphiteWriter.cpp
include/daemon/Daemon.h include/daemon/BaseDaemon.h
include/daemon/GraphiteWriter.h include/daemon/GraphiteWriter.h
) )

View File

@ -50,11 +50,11 @@ namespace Poco { class TaskManager; }
/// Теги уровней вывода использовать можно в любом случае /// Теги уровней вывода использовать можно в любом случае
class Daemon : public Poco::Util::ServerApplication class BaseDaemon : public Poco::Util::ServerApplication
{ {
public: public:
Daemon(); BaseDaemon();
~Daemon(); ~BaseDaemon();
/// Загружает конфигурацию и "строит" логгеры на запись в файлы /// Загружает конфигурацию и "строит" логгеры на запись в файлы
void initialize(Poco::Util::Application &); void initialize(Poco::Util::Application &);
@ -87,9 +87,9 @@ public:
} }
/// Получение ссылки на экземпляр демона /// Получение ссылки на экземпляр демона
static Daemon & instance() static BaseDaemon & instance()
{ {
return dynamic_cast<Daemon &>(Poco::Util::Application::instance()); return dynamic_cast<BaseDaemon &>(Poco::Util::Application::instance());
} }
/// Спит заданное количество секунд или до события wakeup /// Спит заданное количество секунд или до события wakeup
@ -124,6 +124,8 @@ public:
return layer; /// layer выставляется в классе-наследнике BaseDaemonApplication. return layer; /// layer выставляется в классе-наследнике BaseDaemonApplication.
} }
virtual unsigned getRevision() const;
protected: protected:
/// Используется при exitOnTaskError() /// Используется при exitOnTaskError()

View File

@ -1,4 +1,4 @@
#include <daemon/Daemon.h> #include <daemon/BaseDaemon.h>
#include <DB/Common/ConfigProcessor.h> #include <DB/Common/ConfigProcessor.h>
@ -51,7 +51,7 @@
#include <DB/IO/ReadHelpers.h> #include <DB/IO/ReadHelpers.h>
#include <DB/IO/WriteHelpers.h> #include <DB/IO/WriteHelpers.h>
#include <common/Revision.h> #include <common/ClickHouseRevision.h>
@ -157,7 +157,7 @@ static bool already_printed_stack_trace = false;
class SignalListener : public Poco::Runnable class SignalListener : public Poco::Runnable
{ {
public: public:
SignalListener() : log(&Logger::get("Daemon")) SignalListener() : log(&Logger::get("BaseDaemon"))
{ {
} }
@ -174,7 +174,7 @@ public:
if (sig == SIGHUP || sig == SIGUSR1) if (sig == SIGHUP || sig == SIGUSR1)
{ {
LOG_DEBUG(log, "Received signal to close logs."); LOG_DEBUG(log, "Received signal to close logs.");
Daemon::instance().closeLogs(); BaseDaemon::instance().closeLogs();
LOG_INFO(log, "Opened new log file after received signal."); LOG_INFO(log, "Opened new log file after received signal.");
} }
else if (sig == -1) /// -1 для обозначения std::terminate. else if (sig == -1) /// -1 для обозначения std::terminate.
@ -400,7 +400,7 @@ static std::string createDirectory(const std::string & _path)
}; };
void Daemon::reloadConfiguration() void BaseDaemon::reloadConfiguration()
{ {
/** Если программа запущена не в режиме демона, и не указан параметр config-file, /** Если программа запущена не в режиме демона, и не указан параметр config-file,
* то будем использовать параметры из файла config.xml в текущей директории, * то будем использовать параметры из файла config.xml в текущей директории,
@ -436,7 +436,7 @@ public:
ADD_NOTHING = 0, ADD_NOTHING = 0,
ADD_LAYER_TAG = 1 << 0 ADD_LAYER_TAG = 1 << 0
}; };
OwnPatternFormatter(const Daemon & daemon_, Options options_ = ADD_NOTHING) : Poco::PatternFormatter(""), daemon(daemon_), options(options_) {} OwnPatternFormatter(const BaseDaemon & daemon_, Options options_ = ADD_NOTHING) : Poco::PatternFormatter(""), daemon(daemon_), options(options_) {}
void format(const Message & msg, std::string & text) override void format(const Message & msg, std::string & text) override
{ {
@ -479,42 +479,42 @@ public:
} }
private: private:
const Daemon & daemon; const BaseDaemon & daemon;
Options options; Options options;
}; };
/// Для создания и уничтожения unique_ptr, который в заголовочном файле объявлен от incomplete type. /// Для создания и уничтожения unique_ptr, который в заголовочном файле объявлен от incomplete type.
Daemon::Daemon() = default; BaseDaemon::BaseDaemon() = default;
Daemon::~Daemon() = default; BaseDaemon::~BaseDaemon() = default;
void Daemon::terminate() void BaseDaemon::terminate()
{ {
getTaskManager().cancelAll(); getTaskManager().cancelAll();
ServerApplication::terminate(); ServerApplication::terminate();
} }
void Daemon::kill() void BaseDaemon::kill()
{ {
pid.clear(); pid.clear();
Poco::Process::kill(getpid()); Poco::Process::kill(getpid());
} }
void Daemon::sleep(double seconds) void BaseDaemon::sleep(double seconds)
{ {
wakeup_event.reset(); wakeup_event.reset();
wakeup_event.tryWait(seconds * 1000); wakeup_event.tryWait(seconds * 1000);
} }
void Daemon::wakeup() void BaseDaemon::wakeup()
{ {
wakeup_event.set(); wakeup_event.set();
} }
/// Строит необходимые логгеры /// Строит необходимые логгеры
void Daemon::buildLoggers() void BaseDaemon::buildLoggers()
{ {
/// Сменим директорию для лога /// Сменим директорию для лога
if (config().hasProperty("logger.log") && !log_to_console) if (config().hasProperty("logger.log") && !log_to_console)
@ -621,7 +621,7 @@ void Daemon::buildLoggers()
} }
void Daemon::closeLogs() void BaseDaemon::closeLogs()
{ {
if (log_file) if (log_file)
log_file->close(); log_file->close();
@ -632,7 +632,7 @@ void Daemon::closeLogs()
logger().warning("Logging to console but received signal to close log file (ignoring)."); logger().warning("Logging to console but received signal to close log file (ignoring).");
} }
void Daemon::initialize(Application& self) void BaseDaemon::initialize(Application& self)
{ {
/// В случае падения - сохраняем коры /// В случае падения - сохраняем коры
{ {
@ -756,7 +756,7 @@ void Daemon::initialize(Application& self)
Poco::ErrorHandler::set(&killing_error_handler); Poco::ErrorHandler::set(&killing_error_handler);
/// Выведем ревизию демона /// Выведем ревизию демона
Logger::root().information("Starting daemon with revision " + Poco::NumberFormatter::format(Revision::get())); Logger::root().information("Starting daemon with revision " + Poco::NumberFormatter::format(getRevision()));
close_logs_listener.reset(new SignalListener); close_logs_listener.reset(new SignalListener);
close_logs_thread.start(*close_logs_listener); close_logs_thread.start(*close_logs_listener);
@ -764,16 +764,20 @@ void Daemon::initialize(Application& self)
graphite_writer.reset(new GraphiteWriter("graphite")); graphite_writer.reset(new GraphiteWriter("graphite"));
} }
unsigned BaseDaemon::getRevision() const
{
return ClickHouseRevision::get();
}
/// Заставляет демон завершаться, если хотя бы одна задача завершилась неудачно /// Заставляет демон завершаться, если хотя бы одна задача завершилась неудачно
void Daemon::exitOnTaskError() void BaseDaemon::exitOnTaskError()
{ {
Observer<Daemon, Poco::TaskFailedNotification> obs(*this, &Daemon::handleNotification); Observer<BaseDaemon, Poco::TaskFailedNotification> obs(*this, &BaseDaemon::handleNotification);
getTaskManager().addObserver(obs); getTaskManager().addObserver(obs);
} }
/// Используется при exitOnTaskError() /// Используется при exitOnTaskError()
void Daemon::handleNotification(Poco::TaskFailedNotification *_tfn) void BaseDaemon::handleNotification(Poco::TaskFailedNotification *_tfn)
{ {
AutoPtr<Poco::TaskFailedNotification> fn(_tfn); AutoPtr<Poco::TaskFailedNotification> fn(_tfn);
Logger *lg = &(logger()); Logger *lg = &(logger());
@ -781,7 +785,7 @@ void Daemon::handleNotification(Poco::TaskFailedNotification *_tfn)
ServerApplication::terminate(); ServerApplication::terminate();
} }
void Daemon::defineOptions(Poco::Util::OptionSet& _options) void BaseDaemon::defineOptions(Poco::Util::OptionSet& _options)
{ {
Poco::Util::ServerApplication::defineOptions (_options); Poco::Util::ServerApplication::defineOptions (_options);
@ -819,7 +823,7 @@ void Daemon::defineOptions(Poco::Util::OptionSet& _options)
} }
void Daemon::PID::seed(const std::string & file_) void BaseDaemon::PID::seed(const std::string & file_)
{ {
/// переведём путь в абсолютный /// переведём путь в абсолютный
file = Poco::Path(file_).absolute().toString(); file = Poco::Path(file_).absolute().toString();
@ -852,7 +856,7 @@ void Daemon::PID::seed(const std::string & file_)
close(fd); close(fd);
} }
void Daemon::PID::clear() void BaseDaemon::PID::clear()
{ {
if (!file.empty()) if (!file.empty())
{ {

View File

@ -1,5 +1,5 @@
#include <daemon/GraphiteWriter.h> #include <daemon/GraphiteWriter.h>
#include <daemon/Daemon.h> #include <daemon/BaseDaemon.h>
#include <Poco/Util/LayeredConfiguration.h> #include <Poco/Util/LayeredConfiguration.h>
#include <Poco/Util/Application.h> #include <Poco/Util/Application.h>
#include <Poco/Net/DNS.h> #include <Poco/Net/DNS.h>
@ -53,7 +53,7 @@ std::string getPostfix()
else else
path_full << "production."; path_full << "production.";
const Daemon & daemon = Daemon::instance(); const BaseDaemon & daemon = BaseDaemon::instance();
if (daemon.getLayer()) if (daemon.getLayer())
path_full << "layer" << std::setfill('0') << std::setw(3) << *daemon.getLayer() << "."; path_full << "layer" << std::setfill('0') << std::setw(3) << *daemon.getLayer() << ".";