Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
61705acd
C
ClickHouse
项目概览
2dot5
/
ClickHouse
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ClickHouse
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
61705acd
编写于
4月 09, 2018
作者:
V
Vitaliy Lyudvichenko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Speedup initialization and fixed a bug. [#CLICKHOUSE-2]
上级
d2533858
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
22 addition
and
9 deletion
+22
-9
dbms/src/Server/ClusterCopier.cpp
dbms/src/Server/ClusterCopier.cpp
+22
-9
未找到文件。
dbms/src/Server/ClusterCopier.cpp
浏览文件 @
61705acd
...
...
@@ -1043,8 +1043,12 @@ protected:
String
workers_path
=
getWorkersPath
();
String
current_worker_path
=
getCurrentWorkerNodePath
();
size_t
num_bad_version_errors
=
0
;
while
(
true
)
{
updateConfigIfNeeded
();
zkutil
::
Stat
stat
;
zookeeper
->
get
(
workers_version_path
,
&
stat
);
auto
version
=
stat
.
version
;
...
...
@@ -1054,6 +1058,12 @@ protected:
{
LOG_DEBUG
(
log
,
"Too many workers ("
<<
stat
.
numChildren
<<
", maximum "
<<
task_cluster
->
max_workers
<<
")"
<<
". Postpone processing "
<<
description
);
if
(
unprioritized
)
current_sleep_time
=
std
::
min
(
max_sleep_time
,
current_sleep_time
+
default_sleep_time
);
std
::
this_thread
::
sleep_for
(
current_sleep_time
);
num_bad_version_errors
=
0
;
}
else
{
...
...
@@ -1068,18 +1078,18 @@ protected:
if
(
code
==
ZooKeeperImpl
::
ZooKeeper
::
ZBADVERSION
)
{
LOG_DEBUG
(
log
,
"A concurrent worker has just been added, will check free worker slots again"
);
++
num_bad_version_errors
;
/// Try to make fast retries
if
(
num_bad_version_errors
>
3
)
{
LOG_DEBUG
(
log
,
"A concurrent worker has just been added, will check free worker slots again"
);
std
::
this_thread
::
sleep_for
(
default_sleep_time
);
}
}
else
throw
zkutil
::
KeeperException
(
code
);
}
if
(
unprioritized
)
current_sleep_time
=
std
::
min
(
max_sleep_time
,
current_sleep_time
+
default_sleep_time
);
std
::
this_thread
::
sleep_for
(
current_sleep_time
);
updateConfigIfNeeded
();
}
}
...
...
@@ -1291,6 +1301,9 @@ protected:
bool
tryProcessTable
(
TaskTable
&
task_table
)
{
/// An heuristic: if previous shard is already done, then check next one without sleeps due to max_workers constraint
bool
previous_shard_is_instantly_finished
=
false
;
/// Process each partition that is present in cluster
for
(
const
String
&
partition_name
:
task_table
.
ordered_partition_names
)
{
...
...
@@ -1302,7 +1315,6 @@ protected:
Stopwatch
watch
;
TasksShard
expected_shards
;
size_t
num_failed_shards
=
0
;
bool
previous_shard_is_instantly_finished
=
false
;
++
cluster_partition
.
total_tries
;
...
...
@@ -1337,6 +1349,7 @@ protected:
else
{
/// We have already checked that partition, but did not discover it
previous_shard_is_instantly_finished
=
true
;
continue
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录