2020-01-19 19:16:33 +00:00
|
|
|
# pylint: disable=unused-argument
|
|
|
|
# pylint: disable=redefined-outer-name
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
from helpers.cluster import ClickHouseCluster
|
|
|
|
|
|
|
|
cluster = ClickHouseCluster(__file__)
|
|
|
|
|
|
|
|
node = cluster.add_instance(
|
|
|
|
"node",
|
2020-09-16 04:26:10 +00:00
|
|
|
main_configs=["configs/config.d/storage_configuration.xml"],
|
|
|
|
tmpfs=["/disk1:size=100M", "/disk2:size=100M"],
|
|
|
|
)
|
|
|
|
|
2020-01-19 19:16:33 +00:00
|
|
|
|
|
|
|
@pytest.fixture(scope="module")
|
|
|
|
def start_cluster():
|
|
|
|
try:
|
|
|
|
cluster.start()
|
|
|
|
yield cluster
|
|
|
|
finally:
|
|
|
|
cluster.shutdown()
|
|
|
|
|
2020-09-16 04:26:10 +00:00
|
|
|
|
2022-12-06 10:04:15 +00:00
|
|
|
def test_disk_selection(start_cluster):
|
2020-01-19 19:16:33 +00:00
|
|
|
query = "SELECT count(ignore(*)) FROM (SELECT * FROM system.numbers LIMIT 1e7) GROUP BY number"
|
|
|
|
settings = {
|
2020-09-16 04:26:10 +00:00
|
|
|
"max_bytes_before_external_group_by": 1 << 20,
|
|
|
|
"max_bytes_before_external_sort": 1 << 20,
|
2020-01-19 19:16:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
assert node.contains_in_log("Setting up /disk1/ to store temporary data in it")
|
|
|
|
assert node.contains_in_log("Setting up /disk2/ to store temporary data in it")
|
|
|
|
|
|
|
|
node.query(query, settings=settings)
|
|
|
|
assert node.contains_in_log(
|
|
|
|
"Writing part of aggregation data into temporary file /disk1/"
|
|
|
|
)
|
|
|
|
assert node.contains_in_log(
|
|
|
|
"Writing part of aggregation data into temporary file /disk2/"
|
|
|
|
)
|