Skip to content

Commit

Permalink
Remove using Poco::Logger from header file (pingcap#2782)
Browse files Browse the repository at this point in the history
  • Loading branch information
fuzhe1989 authored Aug 26, 2021
1 parent 7c9ae9d commit 398d122
Showing 212 changed files with 8,321 additions and 7,253 deletions.
99 changes: 43 additions & 56 deletions dbms/src/Client/Connection.h
Original file line number Diff line number Diff line change
@@ -1,33 +1,26 @@
#pragma once

#include <common/logger_useful.h>

#include <Poco/Net/StreamSocket.h>

#include <Common/Throttler.h>

#include <Core/Block.h>
#include <Core/Defines.h>
#include <IO/Progress.h>
#include <Core/Protocol.h>
#include <Core/QueryProcessingStage.h>

#include <DataStreams/BlockStreamProfileInfo.h>
#include <DataStreams/IBlockInputStream.h>
#include <DataStreams/IBlockOutputStream.h>
#include <DataStreams/BlockStreamProfileInfo.h>

#include <IO/CompressionSettings.h>
#include <IO/ConnectionTimeouts.h>

#include <IO/Progress.h>
#include <Interpreters/Settings.h>
#include <Interpreters/TablesStatus.h>
#include <Poco/Net/StreamSocket.h>
#include <common/logger_useful.h>

#include <atomic>


namespace DB
{

class ClientInfo;

/// The stream of blocks reading from the table and its name
@@ -53,22 +46,19 @@ class Connection : private boost::noncopyable
friend class MultiplexedConnections;

public:
Connection(const String & host_, UInt16 port_, const String & default_database_,
const String & user_, const String & password_,
const ConnectionTimeouts & timeouts_,
const String & client_name_ = "client",
Protocol::Compression compression_ = Protocol::Compression::Enable,
Protocol::Secure secure_ = Protocol::Secure::Disable,
Poco::Timespan sync_request_timeout_ = Poco::Timespan(DBMS_DEFAULT_SYNC_REQUEST_TIMEOUT_SEC, 0))
:
host(host_), port(port_), default_database(default_database_),
user(user_), password(password_), resolved_address(host, port),
client_name(client_name_),
compression(compression_),
secure(secure_),
timeouts(timeouts_),
sync_request_timeout(sync_request_timeout_),
log_wrapper(*this)
Connection(const String & host_, UInt16 port_, const String & default_database_, const String & user_, const String & password_, const ConnectionTimeouts & timeouts_, const String & client_name_ = "client", Protocol::Compression compression_ = Protocol::Compression::Enable, Protocol::Secure secure_ = Protocol::Secure::Disable, Poco::Timespan sync_request_timeout_ = Poco::Timespan(DBMS_DEFAULT_SYNC_REQUEST_TIMEOUT_SEC, 0))
: host(host_)
, port(port_)
, default_database(default_database_)
, user(user_)
, password(password_)
, resolved_address(host, port)
, client_name(client_name_)
, compression(compression_)
, secure(secure_)
, timeouts(timeouts_)
, sync_request_timeout(sync_request_timeout_)
, log_wrapper(*this)
{
/// Don't connect immediately, only on first need.

@@ -78,25 +68,19 @@ class Connection : private boost::noncopyable
setDescription();
}

Connection(const String & host_, UInt16 port_, const Poco::Net::SocketAddress & resolved_address_,
const String & default_database_,
const String & user_, const String & password_,
const ConnectionTimeouts & timeouts_,
const String & client_name_ = "client",
Protocol::Compression compression_ = Protocol::Compression::Enable,
Protocol::Secure secure_ = Protocol::Secure::Disable,
Poco::Timespan sync_request_timeout_ = Poco::Timespan(DBMS_DEFAULT_SYNC_REQUEST_TIMEOUT_SEC, 0))
:
host(host_), port(port_),
default_database(default_database_),
user(user_), password(password_),
resolved_address(resolved_address_),
client_name(client_name_),
compression(compression_),
secure(secure_),
timeouts(timeouts_),
sync_request_timeout(sync_request_timeout_),
log_wrapper(*this)
Connection(const String & host_, UInt16 port_, const Poco::Net::SocketAddress & resolved_address_, const String & default_database_, const String & user_, const String & password_, const ConnectionTimeouts & timeouts_, const String & client_name_ = "client", Protocol::Compression compression_ = Protocol::Compression::Enable, Protocol::Secure secure_ = Protocol::Secure::Disable, Poco::Timespan sync_request_timeout_ = Poco::Timespan(DBMS_DEFAULT_SYNC_REQUEST_TIMEOUT_SEC, 0))
: host(host_)
, port(port_)
, default_database(default_database_)
, user(user_)
, password(password_)
, resolved_address(resolved_address_)
, client_name(client_name_)
, compression(compression_)
, secure(secure_)
, timeouts(timeouts_)
, sync_request_timeout(sync_request_timeout_)
, log_wrapper(*this)
{
/// Don't connect immediately, only on first need.

@@ -106,7 +90,7 @@ class Connection : private boost::noncopyable
setDescription();
}

virtual ~Connection() {};
virtual ~Connection(){};

/// Set throttler of network traffic. One throttler could be used for multiple connections to limit total traffic.
void setThrottler(const ThrottlerPtr & throttler_)
@@ -125,7 +109,9 @@ class Connection : private boost::noncopyable
Progress progress;
BlockStreamProfileInfo profile_info;

Packet() : type(Protocol::Server::Hello) {}
Packet()
: type(Protocol::Server::Hello)
{}
};

/// Change default database. Changes will take effect on next reconnect.
@@ -221,8 +207,8 @@ class Connection : private boost::noncopyable
std::shared_ptr<WriteBuffer> out;

String query_id;
Protocol::Compression compression; /// Enable data compression for communication.
Protocol::Secure secure; /// Enable data encryption for communication.
Protocol::Compression compression; /// Enable data compression for communication.
Protocol::Secure secure; /// Enable data encryption for communication.

/// What compression settings to use while sending data for INSERT queries and external tables.
CompressionSettings compression_settings;
@@ -243,25 +229,26 @@ class Connection : private boost::noncopyable
std::shared_ptr<WriteBuffer> maybe_compressed_out;
BlockOutputStreamPtr block_out;

/// Logger is created lazily, for avoid to run DNS request in constructor.
/// Poco::Logger is created lazily, for avoid to run DNS request in constructor.
class LoggerWrapper
{
public:
LoggerWrapper(Connection & parent_)
: log(nullptr), parent(parent_)
: log(nullptr)
, parent(parent_)
{
}

Logger * get()
Poco::Logger * get()
{
if (!log)
log = &Logger::get("Connection (" + parent.getDescription() + ")");
log = &Poco::Logger::get("Connection (" + parent.getDescription() + ")");

return log;
}

private:
std::atomic<Logger *> log;
std::atomic<Poco::Logger *> log;
Connection & parent;
};

@@ -282,4 +269,4 @@ class Connection : private boost::noncopyable
void throwUnexpectedPacket(UInt64 packet_type, const char * expected) const;
};

}
} // namespace DB
93 changes: 57 additions & 36 deletions dbms/src/Client/ConnectionPool.h
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
#pragma once

#include <Common/PoolBase.h>

#include <Client/Connection.h>
#include <Common/PoolBase.h>
#include <IO/ConnectionTimeouts.h>

namespace DB
{

/** Interface for connection pools.
*
* Usage (using the usual `ConnectionPool` example)
@@ -38,43 +36,59 @@ using ConnectionPoolPtrs = std::vector<ConnectionPoolPtr>;

/** A common connection pool, without fault tolerance.
*/
class ConnectionPool : public IConnectionPool, private PoolBase<Connection>
class ConnectionPool : public IConnectionPool
, private PoolBase<Connection>
{
public:
using Entry = IConnectionPool::Entry;
using Base = PoolBase<Connection>;

ConnectionPool(unsigned max_connections_,
const String & host_, UInt16 port_,
const String & default_database_,
const String & user_, const String & password_,
const ConnectionTimeouts & timeouts,
const String & client_name_ = "client",
Protocol::Compression compression_ = Protocol::Compression::Enable,
Protocol::Secure secure_ = Protocol::Secure::Disable)
: Base(max_connections_, &Logger::get("ConnectionPool (" + host_ + ":" + toString(port_) + ")")),
host(host_), port(port_), default_database(default_database_),
user(user_), password(password_), resolved_address(host_, port_),
client_name(client_name_), compression(compression_),
secure{secure_},
timeouts(timeouts)
const String & host_,
UInt16 port_,
const String & default_database_,
const String & user_,
const String & password_,
const ConnectionTimeouts & timeouts,
const String & client_name_ = "client",
Protocol::Compression compression_ = Protocol::Compression::Enable,
Protocol::Secure secure_ = Protocol::Secure::Disable)
: Base(max_connections_, &Poco::Logger::get("ConnectionPool (" + host_ + ":" + toString(port_) + ")"))
, host(host_)
, port(port_)
, default_database(default_database_)
, user(user_)
, password(password_)
, resolved_address(host_, port_)
, client_name(client_name_)
, compression(compression_)
, secure{secure_}
, timeouts(timeouts)
{
}

ConnectionPool(unsigned max_connections_,
const String & host_, UInt16 port_, const Poco::Net::SocketAddress & resolved_address_,
const String & default_database_,
const String & user_, const String & password_,
const ConnectionTimeouts & timeouts,
const String & client_name_ = "client",
Protocol::Compression compression_ = Protocol::Compression::Enable,
Protocol::Secure secure_ = Protocol::Secure::Disable)
: Base(max_connections_, &Logger::get("ConnectionPool (" + host_ + ":" + toString(port_) + ")")),
host(host_), port(port_), default_database(default_database_),
user(user_), password(password_), resolved_address(resolved_address_),
client_name(client_name_), compression(compression_),
secure{secure_},
timeouts(timeouts)
const String & host_,
UInt16 port_,
const Poco::Net::SocketAddress & resolved_address_,
const String & default_database_,
const String & user_,
const String & password_,
const ConnectionTimeouts & timeouts,
const String & client_name_ = "client",
Protocol::Compression compression_ = Protocol::Compression::Enable,
Protocol::Secure secure_ = Protocol::Secure::Disable)
: Base(max_connections_, &Poco::Logger::get("ConnectionPool (" + host_ + ":" + toString(port_) + ")"))
, host(host_)
, port(port_)
, default_database(default_database_)
, user(user_)
, password(password_)
, resolved_address(resolved_address_)
, client_name(client_name_)
, compression(compression_)
, secure{secure_}
, timeouts(timeouts)
{
}

@@ -102,9 +116,16 @@ class ConnectionPool : public IConnectionPool, private PoolBase<Connection>
ConnectionPtr allocObject() override
{
return std::make_shared<Connection>(
host, port, resolved_address,
default_database, user, password, timeouts,
client_name, compression, secure);
host,
port,
resolved_address,
default_database,
user,
password,
timeouts,
client_name,
compression,
secure);
}

private:
@@ -120,10 +141,10 @@ class ConnectionPool : public IConnectionPool, private PoolBase<Connection>
Poco::Net::SocketAddress resolved_address;

String client_name;
Protocol::Compression compression; /// Whether to compress data when interacting with the server.
Protocol::Secure secure; /// Whether to encrypt data when interacting with the server.
Protocol::Compression compression; /// Whether to compress data when interacting with the server.
Protocol::Secure secure; /// Whether to encrypt data when interacting with the server.

ConnectionTimeouts timeouts;
};

}
} // namespace DB
Loading

0 comments on commit 398d122

Please sign in to comment.