Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2dot5
ClickHouse
提交
066fb4c8
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,发现更多精彩内容 >>
提交
066fb4c8
编写于
2月 03, 2021
作者:
A
Alexander Tokmakov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix
上级
87502d02
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
147 addition
and
13 deletion
+147
-13
src/Databases/DatabaseReplicatedWorker.cpp
src/Databases/DatabaseReplicatedWorker.cpp
+1
-1
src/Interpreters/DDLWorker.cpp
src/Interpreters/DDLWorker.cpp
+5
-4
src/Interpreters/DDLWorker.h
src/Interpreters/DDLWorker.h
+1
-1
src/Interpreters/DatabaseCatalog.cpp
src/Interpreters/DatabaseCatalog.cpp
+3
-5
src/Interpreters/executeDDLQueryOnCluster.cpp
src/Interpreters/executeDDLQueryOnCluster.cpp
+1
-1
tests/queries/0_stateless/01238_http_memory_tracking.sh
tests/queries/0_stateless/01238_http_memory_tracking.sh
+3
-0
tests/queries/0_stateless/01281_group_by_limit_memory_tracking.sh
...eries/0_stateless/01281_group_by_limit_memory_tracking.sh
+3
-0
tests/queries/0_stateless/01541_max_memory_usage_for_user.sh
tests/queries/0_stateless/01541_max_memory_usage_for_user.sh
+3
-0
tests/queries/skip_list.json
tests/queries/skip_list.json
+127
-1
未找到文件。
src/Databases/DatabaseReplicatedWorker.cpp
浏览文件 @
066fb4c8
...
...
@@ -93,7 +93,7 @@ String DatabaseReplicatedDDLWorker::tryEnqueueAndExecuteEntry(DDLLogEntry & entr
LOG_DEBUG
(
log
,
"Waiting for worker thread to process all entries before {}"
,
entry_name
);
{
std
::
unique_lock
lock
{
mutex
};
wait_current_task_change
.
wait
(
lock
,
[
&
]()
{
assert
(
current_task
<=
entry_name
);
return
zookeeper
->
expired
()
||
current_task
==
entry_name
;
});
wait_current_task_change
.
wait
(
lock
,
[
&
]()
{
assert
(
zookeeper
->
expired
()
||
current_task
<=
entry_name
);
return
zookeeper
->
expired
()
||
current_task
==
entry_name
;
});
}
if
(
zookeeper
->
expired
())
...
...
src/Interpreters/DDLWorker.cpp
浏览文件 @
066fb4c8
...
...
@@ -357,7 +357,7 @@ void DDLWorker::scheduleTasks()
if
(
!
task
)
{
LOG_DEBUG
(
log
,
"Will not execute task {}: {}"
,
entry_name
,
reason
);
updateMaxDDLEntryID
(
*
task
);
updateMaxDDLEntryID
(
entry_name
);
continue
;
}
...
...
@@ -449,9 +449,9 @@ bool DDLWorker::tryExecuteQuery(const String & query, DDLTaskBase & task)
return
true
;
}
void
DDLWorker
::
updateMaxDDLEntryID
(
const
DDLTaskBase
&
task
)
void
DDLWorker
::
updateMaxDDLEntryID
(
const
String
&
entry_name
)
{
DB
::
ReadBufferFromString
in
(
task
.
entry_name
);
DB
::
ReadBufferFromString
in
(
entry_name
);
DB
::
assertString
(
"query-"
,
in
);
UInt64
id
;
readText
(
id
,
in
);
...
...
@@ -511,6 +511,7 @@ void DDLWorker::processTask(DDLTaskBase & task)
if
(
task
.
execute_on_leader
)
{
tryExecuteQueryOnLeaderReplica
(
task
,
storage
,
rewritten_query
,
task
.
entry_path
,
zookeeper
);
}
else
{
...
...
@@ -549,7 +550,7 @@ void DDLWorker::processTask(DDLTaskBase & task)
task
.
was_executed
=
true
;
}
updateMaxDDLEntryID
(
task
);
updateMaxDDLEntryID
(
task
.
entry_name
);
/// FIXME: if server fails right here, the task will be executed twice. We need WAL here.
/// If ZooKeeper connection is lost here, we will try again to write query status.
...
...
src/Interpreters/DDLWorker.h
浏览文件 @
066fb4c8
...
...
@@ -73,7 +73,7 @@ protected:
virtual
DDLTaskPtr
initAndCheckTask
(
const
String
&
entry_name
,
String
&
out_reason
,
const
ZooKeeperPtr
&
zookeeper
);
void
processTask
(
DDLTaskBase
&
task
);
void
updateMaxDDLEntryID
(
const
DDLTaskBase
&
task
);
void
updateMaxDDLEntryID
(
const
String
&
entry_name
);
/// Check that query should be executed on leader replica only
static
bool
taskShouldBeExecutedOnLeader
(
const
ASTPtr
ast_ddl
,
StoragePtr
storage
);
...
...
src/Interpreters/DatabaseCatalog.cpp
浏览文件 @
066fb4c8
...
...
@@ -976,12 +976,10 @@ void DDLGuard::releaseTableLock() noexcept
table_lock_removed
=
true
;
guards_lock
.
lock
();
--
it
->
second
.
counter
;
if
(
!
it
->
second
.
counter
)
{
table_lock
.
unlock
();
UInt32
counter
=
--
it
->
second
.
counter
;
table_lock
.
unlock
();
if
(
counter
==
0
)
map
.
erase
(
it
);
}
guards_lock
.
unlock
();
}
...
...
src/Interpreters/executeDDLQueryOnCluster.cpp
浏览文件 @
066fb4c8
...
...
@@ -33,7 +33,7 @@ bool isSupportedAlterType(int type)
{
assert
(
type
!=
ASTAlterCommand
::
NO_TYPE
);
static
const
std
::
unordered_set
<
int
>
unsupported_alter_types
{
/// It's dangerous, because it may duplicate data if executed on multiple replicas
/// It's dangerous, because it may duplicate data if executed on multiple replicas
. We can allow it after #18978
ASTAlterCommand
::
ATTACH_PARTITION
,
/// Usually followed by ATTACH PARTITION
ASTAlterCommand
::
FETCH_PARTITION
,
...
...
tests/queries/0_stateless/01238_http_memory_tracking.sh
浏览文件 @
066fb4c8
...
...
@@ -18,3 +18,6 @@ yes 'SELECT 1' 2>/dev/null | {
} | grep -x -c 1
wait
# Reset max_memory_usage_for_user, so it will not affect other tests
${
CLICKHOUSE_CLIENT
}
--max_memory_usage_for_user=0 -q "SELECT 1 FORMAT Null"
tests/queries/0_stateless/01281_group_by_limit_memory_tracking.sh
浏览文件 @
066fb4c8
...
...
@@ -42,3 +42,6 @@ execute_group_by
# if memory accounting will be incorrect, the second query will be failed with MEMORY_LIMIT_EXCEEDED
execute_group_by
wait
# Reset max_memory_usage_for_user, so it will not affect other tests
${
CLICKHOUSE_CLIENT
}
--max_memory_usage_for_user=0 -q "SELECT 1 FORMAT Null"
tests/queries/0_stateless/01541_max_memory_usage_for_user.sh
浏览文件 @
066fb4c8
...
...
@@ -66,4 +66,7 @@ echo 'OK'
${
CLICKHOUSE_CLIENT
}
--query
"DROP USER test_01541"
;
# Reset max_memory_usage_for_user, so it will not affect other tests
${
CLICKHOUSE_CLIENT
}
--max_memory_usage_for_user
=
0
-q
"SELECT 1 FORMAT Null"
exit
0
tests/queries/skip_list.json
浏览文件 @
066fb4c8
...
...
@@ -100,7 +100,133 @@
"00604_show_create_database"
,
"00609_mv_index_in_in"
,
"00510_materizlized_view_and_deduplication_zookeeper"
,
"00738_lock_for_inner_table"
"memory_tracking"
,
///
FIXME
remove
it
before
merge
"memory_tracking"
,
"memory_usage"
,
"00738_lock_for_inner_table"
,
"01666_blns"
,
"01652_ignore_and_low_cardinality"
,
"01651_map_functions"
,
"01650_fetch_patition_with_macro_in_zk_path"
,
"01648_mutations_and_escaping"
,
"01640_marks_corruption_regression"
,
"01622_byte_size"
,
"01611_string_to_low_cardinality_key_alter"
,
"01602_show_create_view"
,
"01600_log_queries_with_extensive_info"
,
"01560_ttl_remove_empty_parts"
,
"01554_bloom_filter_index_big_integer_uuid"
,
"01550_type_map_formats_input"
,
"01550_type_map_formats"
,
"01550_create_map_type"
,
"01532_primary_key_without_order_by_zookeeper"
,
"01511_alter_version_versioned_collapsing_merge_tree_zookeeper"
,
"01509_parallel_quorum_insert_no_replicas"
,
"01504_compression_multiple_streams"
,
"01494_storage_join_persistency"
,
"01493_storage_set_persistency"
,
"01493_alter_remove_properties_zookeeper"
,
"01475_read_subcolumns_storages"
,
"01475_read_subcolumns"
,
"01463_test_alter_live_view_refresh"
,
"01451_replicated_detach_drop_part"
,
"01451_detach_drop_part"
,
"01440_big_int_exotic_casts"
,
"01430_modify_sample_by_zookeeper"
,
"01417_freeze_partition_verbose_zookeeper"
,
"01417_freeze_partition_verbose"
,
"01396_inactive_replica_cleanup_nodes_zookeeper"
,
"01375_compact_parts_codecs"
,
"01357_version_collapsing_attach_detach_zookeeper"
,
"01355_alter_column_with_order"
,
"01291_geo_types"
,
"01270_optimize_skip_unused_shards_low_cardinality"
,
"01237_live_view_over_distributed_with_subquery_select_table_alias"
,
"01236_distributed_over_live_view_over_distributed"
,
"01235_live_view_over_distributed"
,
"01182_materialized_view_different_structure"
,
"01150_ddl_guard_rwr"
,
"01148_zookeeper_path_macros_unfolding"
,
"01135_default_and_alter_zookeeper"
,
"01130_in_memory_parts_partitons"
,
"01127_month_partitioning_consistency_select"
,
"01114_database_atomic"
,
"01083_expressions_in_engine_arguments"
,
"01073_attach_if_not_exists"
,
"01072_optimize_skip_unused_shards_const_expr_eval"
,
"01071_prohibition_secondary_index_with_old_format_merge_tree"
,
"01071_live_view_detach_dependency"
,
"01062_alter_on_mutataion_zookeeper"
,
"01060_shutdown_table_after_detach"
,
"01056_create_table_as"
,
"01035_avg"
,
"01021_only_tuple_columns"
,
"01019_alter_materialized_view_query"
,
"01019_alter_materialized_view_consistent"
,
"01019_alter_materialized_view_atomic"
,
"01015_attach_part"
,
"00989_parallel_parts_loading"
,
"00980_zookeeper_merge_tree_alter_settings"
,
"00980_merge_alter_settings"
,
"00980_create_temporary_live_view"
,
"00978_live_view_watch"
,
"00977_live_view_watch_events"
,
"00976_live_view_select_version"
,
"00975_live_view_create"
,
"00974_live_view_select_with_aggregation"
,
"00973_live_view_with_subquery_select_with_aggregation_in_subquery"
,
"00973_live_view_with_subquery_select_with_aggregation"
,
"00973_live_view_with_subquery_select_table_alias"
,
"00973_live_view_with_subquery_select_nested_with_aggregation_table_alias"
,
"00973_live_view_with_subquery_select_nested_with_aggregation"
,
"00973_live_view_with_subquery_select_nested"
,
"00973_live_view_with_subquery_select_join_no_alias"
,
"00973_live_view_with_subquery_select_join"
,
"00973_live_view_with_subquery_select"
,
"00973_live_view_select_prewhere"
,
"00973_live_view_select"
,
"00972_live_view_select_1"
,
"00969_live_view_watch_format_jsoneachrowwithprogress"
,
"00968_live_view_select_format_jsoneachrowwithprogress"
,
"00961_temporary_live_view_watch"
,
"00955_test_final_mark"
,
"00933_reserved_word"
,
"00926_zookeeper_adaptive_index_granularity_replicated_merge_tree"
,
"00926_adaptive_index_granularity_replacing_merge_tree"
,
"00926_adaptive_index_granularity_merge_tree"
,
"00925_zookeeper_empty_replicated_merge_tree_optimize_final"
,
"00800_low_cardinality_distinct_numeric"
,
"00754_alter_modify_order_by_replicated_zookeeper"
,
"00751_low_cardinality_nullable_group_by"
,
"00751_default_databasename_for_view"
,
"00719_parallel_ddl_table"
,
"00718_low_cardinaliry_alter"
,
"00717_low_cardinaliry_distributed_group_by"
,
"00688_low_cardinality_syntax"
,
"00688_low_cardinality_nullable_cast"
,
"00688_low_cardinality_in"
,
"00652_replicated_mutations_zookeeper"
,
"00634_rename_view"
,
"00626_replace_partition_from_table"
,
"00625_arrays_in_nested"
,
"00623_replicated_truncate_table_zookeeper"
,
"00619_union_highlite"
,
"00599_create_view_with_subquery"
,
"00571_non_exist_database_when_create_materializ_view"
,
"00553_buff_exists_materlized_column"
,
"00516_deduplication_after_drop_partition_zookeeper"
,
"00508_materialized_view_to"
,
"00446_clear_column_in_partition_concurrent_zookeeper"
,
"00423_storage_log_single_thread"
,
"00311_array_primary_key"
,
"00236_replicated_drop_on_non_leader_zookeeper"
,
"00226_zookeeper_deduplication_and_unexpected_parts"
,
"00215_primary_key_order_zookeeper"
,
"00180_attach_materialized_view"
,
"00121_drop_column_zookeeper"
,
"00116_storage_set"
,
"00083_create_merge_tree_zookeeper"
,
"00062_replicated_merge_tree_alter_zookeeper"
],
"polymorphic-parts"
:
[
"01508_partition_pruning"
,
///
bug
,
shoud
be
fixed
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录