ClickHouse/tests/queries/0_stateless/01200_mutations_memory_consumption.sql

118 lines
3.5 KiB
MySQL
Raw Normal View History

2022-02-08 19:21:16 +00:00
-- Tags: no-debug, no-parallel, long, no-s3-storage
2021-09-12 12:35:27 +00:00
DROP TABLE IF EXISTS table_with_single_pk;
2020-03-19 11:31:21 +00:00
CREATE TABLE table_with_single_pk
2020-03-19 11:31:21 +00:00
(
key UInt8,
value String
)
ENGINE = MergeTree
2021-09-08 00:21:21 +00:00
ORDER BY key
SETTINGS min_compress_block_size=65536, max_compress_block_size=65536;
2020-03-19 11:31:21 +00:00
INSERT INTO table_with_single_pk SELECT number, toString(number % 10) FROM numbers(10000000);
2020-03-19 11:31:21 +00:00
ALTER TABLE table_with_single_pk DELETE WHERE key % 77 = 0 SETTINGS mutations_sync = 1;
2020-03-19 11:31:21 +00:00
SYSTEM FLUSH LOGS;
-- Memory usage for all mutations must be almost constant and less than
2021-09-08 00:21:21 +00:00
-- read_bytes
2020-03-19 11:31:21 +00:00
SELECT
2021-09-08 00:21:21 +00:00
arrayDistinct(groupArray(if (read_bytes >= peak_memory_usage, [1], [read_bytes, peak_memory_usage])))
2020-03-19 11:31:21 +00:00
FROM
2020-03-19 11:34:02 +00:00
system.part_log
WHERE event_type = 'MutatePart' AND table = 'table_with_single_pk' AND database = currentDatabase();
2020-03-19 11:31:21 +00:00
DROP TABLE IF EXISTS table_with_single_pk;
DROP TABLE IF EXISTS table_with_multi_pk;
CREATE TABLE table_with_multi_pk
(
key1 UInt8,
key2 UInt32,
key3 DateTime64(6, 'UTC'),
value String
)
ENGINE = MergeTree
2021-09-08 00:21:21 +00:00
ORDER BY (key1, key2, key3)
SETTINGS min_compress_block_size=65536, max_compress_block_size=65536;
INSERT INTO table_with_multi_pk SELECT number % 32, number, toDateTime('2019-10-01 00:00:00'), toString(number % 10) FROM numbers(10000000);
ALTER TABLE table_with_multi_pk DELETE WHERE key1 % 77 = 0 SETTINGS mutations_sync = 1;
SYSTEM FLUSH LOGS;
-- Memory usage for all mutations must be almost constant and less than
2021-09-08 00:21:21 +00:00
-- read_bytes
SELECT
2021-09-08 00:21:21 +00:00
arrayDistinct(groupArray(if (read_bytes >= peak_memory_usage, [1], [read_bytes, peak_memory_usage])))
FROM
system.part_log
WHERE event_type = 'MutatePart' AND table = 'table_with_multi_pk' AND database = currentDatabase();
DROP TABLE IF EXISTS table_with_multi_pk;
DROP TABLE IF EXISTS table_with_function_pk;
CREATE TABLE table_with_function_pk
(
key1 UInt8,
key2 UInt32,
key3 DateTime64(6, 'UTC'),
value String
)
ENGINE = MergeTree
2021-09-08 00:21:21 +00:00
ORDER BY (cast(value as UInt64), key2)
SETTINGS min_compress_block_size=65536, max_compress_block_size=65536;
INSERT INTO table_with_function_pk SELECT number % 32, number, toDateTime('2019-10-01 00:00:00'), toString(number % 10) FROM numbers(10000000);
ALTER TABLE table_with_function_pk DELETE WHERE key1 % 77 = 0 SETTINGS mutations_sync = 1;
SYSTEM FLUSH LOGS;
-- Memory usage for all mutations must be almost constant and less than
2021-09-08 00:21:21 +00:00
-- read_bytes
SELECT
2021-09-08 00:21:21 +00:00
arrayDistinct(groupArray(if (read_bytes >= peak_memory_usage, [1], [read_bytes, peak_memory_usage])))
FROM
system.part_log
WHERE event_type = 'MutatePart' AND table = 'table_with_function_pk' AND database = currentDatabase();
DROP TABLE IF EXISTS table_with_function_pk;
DROP TABLE IF EXISTS table_without_pk;
CREATE TABLE table_without_pk
(
key1 UInt8,
key2 UInt32,
key3 DateTime64(6, 'UTC'),
value String
)
ENGINE = MergeTree
2021-09-08 00:21:21 +00:00
ORDER BY tuple()
SETTINGS min_compress_block_size=65536, max_compress_block_size=65536;
INSERT INTO table_without_pk SELECT number % 32, number, toDateTime('2019-10-01 00:00:00'), toString(number % 10) FROM numbers(10000000);
ALTER TABLE table_without_pk DELETE WHERE key1 % 77 = 0 SETTINGS mutations_sync = 1;
SYSTEM FLUSH LOGS;
-- Memory usage for all mutations must be almost constant and less than
2021-09-08 00:21:21 +00:00
-- read_bytes
SELECT
2021-09-08 00:21:21 +00:00
arrayDistinct(groupArray(if (read_bytes >= peak_memory_usage, [1], [read_bytes, peak_memory_usage])))
FROM
system.part_log
WHERE event_type = 'MutatePart' AND table = 'table_without_pk' AND database = currentDatabase();
DROP TABLE IF EXISTS table_without_pk;