Skip to content

Performance degradation between 20.1 and 20.3 for large number of very short queries with LowCardinality fields #13864

@filimonov

Description

@filimonov

Schema

ATTACH TABLE default.test (`col1` UUID, `col2` LowCardinality(String)) ENGINE = MergeTree ORDER BY (col1, col2) SETTINGS index_granularity = 128;

Data sample: https://www.dropbox.com/s/untu96ad69a2thl/test_data.tar.gz?dl=0

Query:

echo "SELECT col1, col2 FROM test PREWHERE col1 = '042fecec-ea68-1b26-00a4-a4f3b3987574'" | clickhouse-benchmark -c 1 -i 2000 -d 0 

Results - look on QPS metric:

### 20.1.16.120
Loaded 1 queries.

Queries executed: 2000.

localhost:9000, queries 2000, QPS: 597.941, RPS: 76536.485, MiB/s: 1.168, result RPS: 0.000, result MiB/s: 0.000.

0.000%		0.001 sec.	
10.000%		0.001 sec.	
20.000%		0.002 sec.	
30.000%		0.002 sec.	
40.000%		0.002 sec.	
50.000%		0.002 sec.	
60.000%		0.002 sec.	
70.000%		0.002 sec.	
80.000%		0.002 sec.	
90.000%		0.002 sec.	
95.000%		0.002 sec.	
99.000%		0.002 sec.	
99.900%		0.003 sec.	
99.990%		0.015 sec.
### 20.3.2.1

Loaded 1 queries.

Queries executed: 2000.

localhost:9000, queries 2000, QPS: 322.157, RPS: 41236.084, MiB/s: 0.629, result RPS: 0.000, result MiB/s: 0.000.

0.000%		0.001 sec.	
10.000%		0.003 sec.	
20.000%		0.003 sec.	
30.000%		0.003 sec.	
40.000%		0.003 sec.	
50.000%		0.003 sec.	
60.000%		0.003 sec.	
70.000%		0.003 sec.	
80.000%		0.003 sec.	
90.000%		0.003 sec.	
95.000%		0.004 sec.	
99.000%		0.004 sec.	
99.900%		0.016 sec.	
99.990%		0.017 sec.

## 20.6.3.28

Loaded 1 queries.

Queries executed: 2000.

localhost:9000, queries 2000, QPS: 308.133, RPS: 39441.007, MiB/s: 0.602, result RPS: 0.000, result MiB/s: 0.000.

0.000%		0.001 sec.	
10.000%		0.002 sec.	
20.000%		0.003 sec.	
30.000%		0.003 sec.	
40.000%		0.003 sec.	
50.000%		0.003 sec.	
60.000%		0.003 sec.	
70.000%		0.003 sec.	
80.000%		0.004 sec.	
90.000%		0.004 sec.	
95.000%		0.004 sec.	
99.000%		0.004 sec.	
99.900%		0.016 sec.	
99.990%		0.017 sec.

Bisecting on releases:
v20.2.1.2442-testing (21-Feb-2020 18:15) - last good
v20.3.1.2495-testing (26-Feb-2020 18:27) - first bad

ps. experimental_use_processors don't change the situation.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions