mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
dbms: renamed Revision to ClickHouseRevision. Daemon to BaseDaemon
This commit is contained in:
parent
5bdfe45415
commit
eca42536d8
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -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"))
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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());
|
||||||
|
|
||||||
|
@ -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({}, {});
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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 (...)
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
namespace Revision
|
namespace ClickHouseRevision
|
||||||
{
|
{
|
||||||
unsigned get();
|
unsigned get();
|
||||||
}
|
}
|
7
libs/libcommon/src/ClickHouseRevision.cpp
Normal file
7
libs/libcommon/src/ClickHouseRevision.cpp
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include <common/ClickHouseRevision.h>
|
||||||
|
#include "revision.h"
|
||||||
|
|
||||||
|
namespace ClickHouseRevision
|
||||||
|
{
|
||||||
|
unsigned get() { return REVISION; }
|
||||||
|
}
|
@ -1,7 +0,0 @@
|
|||||||
#include <common/Revision.h>
|
|
||||||
#include "revision.h"
|
|
||||||
|
|
||||||
namespace Revision
|
|
||||||
{
|
|
||||||
unsigned get() { return REVISION; }
|
|
||||||
}
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -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()
|
@ -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())
|
||||||
{
|
{
|
@ -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() << ".";
|
||||||
|
Loading…
Reference in New Issue
Block a user