**Describe the situation**
```
$ ./clickhouse-21.3.3 client --query "SELECT * FROM system.numbers_mt FORMAT Native" | pv > /dev/null
^C,1GiB 0:00:45 [ 710MiB/s] [                                                                                                                                                                                               <=>                      ]

$ ./clickhouse-21.3.3 client --compress 0 --query "SELECT * FROM system.numbers_mt FORMAT Native" | pv > /dev/null
^C,2GiB 0:00:12 [1,48GiB/s] [                                                   <=>                                                                                                                                                                  ]
```

{
    public:
        explicit LoggerWrapper(Connection & parent_)
            : log(nullptr), parent(parent_)
        {
        }
        Poco::Logger * get()
        {
            if (!log)
                log = &Poco::Logger::get("Connection (" + parent.getDescription() + ")");
            return log;
        }
    private:
        std::atomic<Poco::Logger *> log;
        Connection & parent;
    };
    LoggerWrapper log_wrapper;
    AsyncCallback async_callback = {};
    void connect(const ConnectionTimeouts & timeouts);
    void sendHello();
    void receiveHello();
#if USE_SSL
    void sendClusterNameAndSalt();