提交 4a7927b1 编写于 作者: V Vitaliy Lyudvichenko 提交者: alexey-milovidov

Many improvements. [#CLICKHOUSE-3128]

上级 c2cf3f81
......@@ -115,6 +115,11 @@ String Cluster::Address::toString(const String & host_name, UInt16 port)
return escapeForFileName(host_name) + ':' + DB::toString(port);
}
String Cluster::Address::readableString() const
{
return host_name + ':' + DB::toString(port);
}
void Cluster::Address::fromString(const String & host_port_string, String & host_name, UInt16 & port)
{
auto pos = host_port_string.find_last_of(':');
......
......@@ -61,9 +61,12 @@ public:
Address(Poco::Util::AbstractConfiguration & config, const String & config_prefix);
Address(const String & host_port_, const String & user_, const String & password_);
/// Returns escaped 'host_name:port'
/// Returns 'escaped_host_name:port'
String toString() const;
/// Returns 'host_name:port'
String readableString() const;
static String toString(const String & host_name, UInt16 port);
static void fromString(const String & host_port_string, String & host_name, UInt16 & port);
......
此差异已折叠。
......@@ -31,7 +31,7 @@ public:
String enqueueQuery(DDLLogEntry & entry);
/// Host ID (name:port) for logging purposes
/// Note that in each entry hosts are identified by name:port from cluster config
/// Note that in each task hosts are identified individually by name:port from initiator server cluster config
std::string getCommonHostID() const
{
return host_fqdn_id;
......@@ -40,22 +40,30 @@ public:
private:
void processTasks();
bool initAndCheckTask(DDLTask & task, const String & entry_name);
void processTask(DDLTask & task);
void processTaskAlter(
DDLTask & task,
const ASTAlterQuery * query_alter,
const ASTAlterQuery * ast_alter,
const String & rewritten_query,
const String & node_path);
void parseQueryAndResolveHost(DDLTask & task);
bool tryExecuteQuery(const String & query, const DDLTask & task, ExecutionStatus & status);
/// Checks and cleanups queue's nodes
void cleanupQueue(const Strings * node_names_to_check = nullptr);
void createStatusDirs(const std::string & node_name);
ASTPtr getRewrittenQuery(const DDLLogEntry & node);
void run();
private:
......@@ -68,15 +76,14 @@ private:
std::string queue_dir; /// dir with queue of queries
std::string master_dir; /// dir with queries was initiated by the server
/// Used to omit already processed nodes. Maybe usage of set is more obvious.
std::string last_processed_node_name;
/// Last task that was skipped or sucesfully executed
std::string last_processed_task_name;
std::shared_ptr<zkutil::ZooKeeper> zookeeper;
/// Save state of executed task to avoid duplicate execution on ZK error
std::string current_node = {};
bool current_node_was_executed = false;
ExecutionStatus current_node_execution_status;
using DDLTaskPtr = std::unique_ptr<DDLTask>;
DDLTaskPtr current_task;
std::shared_ptr<Poco::Event> event_queue_updated;
std::atomic<bool> stop_flag{false};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册