2020-02-19 15:01:08 +00:00
|
|
|
#pragma once
|
|
|
|
|
2022-10-20 14:37:27 +00:00
|
|
|
#include "TaskTable.h"
|
|
|
|
|
|
|
|
#include <Core/Settings.h>
|
|
|
|
#include <base/types.h>
|
|
|
|
|
2020-12-10 22:05:02 +00:00
|
|
|
#include <Poco/Util/AbstractConfiguration.h>
|
2020-02-19 15:01:08 +00:00
|
|
|
|
2022-10-20 14:37:27 +00:00
|
|
|
#include <random>
|
|
|
|
|
2020-02-19 15:01:08 +00:00
|
|
|
namespace DB
|
|
|
|
{
|
|
|
|
|
|
|
|
struct TaskCluster
|
|
|
|
{
|
2022-10-20 11:09:32 +00:00
|
|
|
TaskCluster(const String & task_zookeeper_path_, const String & default_local_database_);
|
2020-02-19 15:01:08 +00:00
|
|
|
|
|
|
|
void loadTasks(const Poco::Util::AbstractConfiguration & config, const String & base_key = "");
|
|
|
|
|
|
|
|
/// Set (or update) settings and max_workers param
|
|
|
|
void reloadSettings(const Poco::Util::AbstractConfiguration & config, const String & base_key = "");
|
|
|
|
|
|
|
|
/// Base node for all tasks. Its structure:
|
|
|
|
/// workers/ - directory with active workers (amount of them is less or equal max_workers)
|
|
|
|
/// description - node with task configuration
|
|
|
|
/// table_table1/ - directories with per-partition copying status
|
|
|
|
String task_zookeeper_path;
|
|
|
|
|
|
|
|
/// Database used to create temporary Distributed tables
|
|
|
|
String default_local_database;
|
|
|
|
|
|
|
|
/// Limits number of simultaneous workers
|
|
|
|
UInt64 max_workers = 0;
|
|
|
|
|
|
|
|
/// Base settings for pull and push
|
|
|
|
Settings settings_common;
|
|
|
|
/// Settings used to fetch data
|
|
|
|
Settings settings_pull;
|
|
|
|
/// Settings used to insert data
|
|
|
|
Settings settings_push;
|
|
|
|
|
|
|
|
String clusters_prefix;
|
|
|
|
|
|
|
|
/// Subtasks
|
|
|
|
TasksTable table_tasks;
|
|
|
|
|
|
|
|
std::random_device random_device;
|
|
|
|
pcg64 random_engine;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|