From 828f3b15c379d393266aebd45fd50c1eeb3cc533 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Mon, 17 Aug 2026 04:32:14 +0000 Subject: [PATCH 1/7] Add throwaway systems to A/B ClickHouse/ClickHouse#104431 on Parquet `clickhouse-parquet-104431` and `clickhouse-parquet-baseline` are copies of `clickhouse-parquet` whose `install` pins a specific RelWithDebInfo build from ClickHouse CI instead of downloading the latest release: - `clickhouse-parquet-104431` - head of ClickHouse/ClickHouse#104431 ("Parallelize reads from a single Parquet file in `StorageFile`, again"), `07303b95365362daace76759e4c51e39efefd25a`; - `clickhouse-parquet-baseline` - the master commit CI merged it into, `aec8b1d56234cdf035fcc0fc65afe31a9a0f224d`. Everything else - `queries.sql`, `create.sql`, `query`, the dataset - is byte identical to `clickhouse-parquet`, so the two directories differ only by the pull request. Not for merging: this is a measurement harness for one pull request. Co-Authored-By: Claude Fable 5 --- clickhouse-parquet-104431/benchmark.sh | 9 ++ clickhouse-parquet-104431/check | 4 + clickhouse-parquet-104431/create.sql | 109 ++++++++++++++++++++++ clickhouse-parquet-104431/data-size | 4 + clickhouse-parquet-104431/install | 35 +++++++ clickhouse-parquet-104431/load | 7 ++ clickhouse-parquet-104431/queries.sql | 43 +++++++++ clickhouse-parquet-104431/query | 8 ++ clickhouse-parquet-104431/start | 3 + clickhouse-parquet-104431/stop | 3 + clickhouse-parquet-104431/template.json | 13 +++ clickhouse-parquet-baseline/benchmark.sh | 9 ++ clickhouse-parquet-baseline/check | 4 + clickhouse-parquet-baseline/create.sql | 109 ++++++++++++++++++++++ clickhouse-parquet-baseline/data-size | 4 + clickhouse-parquet-baseline/install | 31 ++++++ clickhouse-parquet-baseline/load | 7 ++ clickhouse-parquet-baseline/queries.sql | 43 +++++++++ clickhouse-parquet-baseline/query | 8 ++ clickhouse-parquet-baseline/start | 3 + clickhouse-parquet-baseline/stop | 3 + clickhouse-parquet-baseline/template.json | 13 +++ 22 files changed, 472 insertions(+) create mode 100755 clickhouse-parquet-104431/benchmark.sh create mode 100755 clickhouse-parquet-104431/check create mode 100644 clickhouse-parquet-104431/create.sql create mode 100755 clickhouse-parquet-104431/data-size create mode 100755 clickhouse-parquet-104431/install create mode 100755 clickhouse-parquet-104431/load create mode 100644 clickhouse-parquet-104431/queries.sql create mode 100755 clickhouse-parquet-104431/query create mode 100755 clickhouse-parquet-104431/start create mode 100755 clickhouse-parquet-104431/stop create mode 100644 clickhouse-parquet-104431/template.json create mode 100755 clickhouse-parquet-baseline/benchmark.sh create mode 100755 clickhouse-parquet-baseline/check create mode 100644 clickhouse-parquet-baseline/create.sql create mode 100755 clickhouse-parquet-baseline/data-size create mode 100755 clickhouse-parquet-baseline/install create mode 100755 clickhouse-parquet-baseline/load create mode 100644 clickhouse-parquet-baseline/queries.sql create mode 100755 clickhouse-parquet-baseline/query create mode 100755 clickhouse-parquet-baseline/start create mode 100755 clickhouse-parquet-baseline/stop create mode 100644 clickhouse-parquet-baseline/template.json diff --git a/clickhouse-parquet-104431/benchmark.sh b/clickhouse-parquet-104431/benchmark.sh new file mode 100755 index 0000000000..fb3b4d1318 --- /dev/null +++ b/clickhouse-parquet-104431/benchmark.sh @@ -0,0 +1,9 @@ +#!/bin/bash +export BENCH_DOWNLOAD_SCRIPT="download-hits-parquet-single" +export BENCH_RESTARTABLE=no +# Single-process engine: each query forks a fresh full-machine process with no +# shared scheduler across connections, so the concurrent-QPS test only +# oversubscribes RAM rather than measuring throughput. Skip it by default; +# override BENCH_CONCURRENT_DURATION to re-enable. See issue #946. +export BENCH_CONCURRENT_DURATION="${BENCH_CONCURRENT_DURATION:-0}" +exec ../lib/benchmark-common.sh diff --git a/clickhouse-parquet-104431/check b/clickhouse-parquet-104431/check new file mode 100755 index 0000000000..86d2609b68 --- /dev/null +++ b/clickhouse-parquet-104431/check @@ -0,0 +1,4 @@ +#!/bin/bash +set -e + +./clickhouse local --query "SELECT 1" >/dev/null diff --git a/clickhouse-parquet-104431/create.sql b/clickhouse-parquet-104431/create.sql new file mode 100644 index 0000000000..d2a4e5d65f --- /dev/null +++ b/clickhouse-parquet-104431/create.sql @@ -0,0 +1,109 @@ +CREATE TABLE hits +( + WatchID BIGINT NOT NULL, + JavaEnable SMALLINT NOT NULL, + Title TEXT NOT NULL, + GoodEvent SMALLINT NOT NULL, + EventTime TIMESTAMP NOT NULL, + EventDate Date NOT NULL, + CounterID INTEGER NOT NULL, + ClientIP INTEGER NOT NULL, + RegionID INTEGER NOT NULL, + UserID BIGINT NOT NULL, + CounterClass SMALLINT NOT NULL, + OS SMALLINT NOT NULL, + UserAgent SMALLINT NOT NULL, + URL TEXT NOT NULL, + Referer TEXT NOT NULL, + IsRefresh SMALLINT NOT NULL, + RefererCategoryID SMALLINT NOT NULL, + RefererRegionID INTEGER NOT NULL, + URLCategoryID SMALLINT NOT NULL, + URLRegionID INTEGER NOT NULL, + ResolutionWidth SMALLINT NOT NULL, + ResolutionHeight SMALLINT NOT NULL, + ResolutionDepth SMALLINT NOT NULL, + FlashMajor SMALLINT NOT NULL, + FlashMinor SMALLINT NOT NULL, + FlashMinor2 TEXT NOT NULL, + NetMajor SMALLINT NOT NULL, + NetMinor SMALLINT NOT NULL, + UserAgentMajor SMALLINT NOT NULL, + UserAgentMinor VARCHAR(255) NOT NULL, + CookieEnable SMALLINT NOT NULL, + JavascriptEnable SMALLINT NOT NULL, + IsMobile SMALLINT NOT NULL, + MobilePhone SMALLINT NOT NULL, + MobilePhoneModel TEXT NOT NULL, + Params TEXT NOT NULL, + IPNetworkID INTEGER NOT NULL, + TraficSourceID SMALLINT NOT NULL, + SearchEngineID SMALLINT NOT NULL, + SearchPhrase TEXT NOT NULL, + AdvEngineID SMALLINT NOT NULL, + IsArtifical SMALLINT NOT NULL, + WindowClientWidth SMALLINT NOT NULL, + WindowClientHeight SMALLINT NOT NULL, + ClientTimeZone SMALLINT NOT NULL, + ClientEventTime TIMESTAMP NOT NULL, + SilverlightVersion1 SMALLINT NOT NULL, + SilverlightVersion2 SMALLINT NOT NULL, + SilverlightVersion3 INTEGER NOT NULL, + SilverlightVersion4 SMALLINT NOT NULL, + PageCharset TEXT NOT NULL, + CodeVersion INTEGER NOT NULL, + IsLink SMALLINT NOT NULL, + IsDownload SMALLINT NOT NULL, + IsNotBounce SMALLINT NOT NULL, + FUniqID BIGINT NOT NULL, + OriginalURL TEXT NOT NULL, + HID INTEGER NOT NULL, + IsOldCounter SMALLINT NOT NULL, + IsEvent SMALLINT NOT NULL, + IsParameter SMALLINT NOT NULL, + DontCountHits SMALLINT NOT NULL, + WithHash SMALLINT NOT NULL, + HitColor CHAR NOT NULL, + LocalEventTime TIMESTAMP NOT NULL, + Age SMALLINT NOT NULL, + Sex SMALLINT NOT NULL, + Income SMALLINT NOT NULL, + Interests SMALLINT NOT NULL, + Robotness SMALLINT NOT NULL, + RemoteIP INTEGER NOT NULL, + WindowName INTEGER NOT NULL, + OpenerName INTEGER NOT NULL, + HistoryLength SMALLINT NOT NULL, + BrowserLanguage TEXT NOT NULL, + BrowserCountry TEXT NOT NULL, + SocialNetwork TEXT NOT NULL, + SocialAction TEXT NOT NULL, + HTTPError SMALLINT NOT NULL, + SendTiming INTEGER NOT NULL, + DNSTiming INTEGER NOT NULL, + ConnectTiming INTEGER NOT NULL, + ResponseStartTiming INTEGER NOT NULL, + ResponseEndTiming INTEGER NOT NULL, + FetchTiming INTEGER NOT NULL, + SocialSourceNetworkID SMALLINT NOT NULL, + SocialSourcePage TEXT NOT NULL, + ParamPrice BIGINT NOT NULL, + ParamOrderID TEXT NOT NULL, + ParamCurrency TEXT NOT NULL, + ParamCurrencyID SMALLINT NOT NULL, + OpenstatServiceName TEXT NOT NULL, + OpenstatCampaignID TEXT NOT NULL, + OpenstatAdID TEXT NOT NULL, + OpenstatSourceID TEXT NOT NULL, + UTMSource TEXT NOT NULL, + UTMMedium TEXT NOT NULL, + UTMCampaign TEXT NOT NULL, + UTMContent TEXT NOT NULL, + UTMTerm TEXT NOT NULL, + FromTag TEXT NOT NULL, + HasGCLID SMALLINT NOT NULL, + RefererHash BIGINT NOT NULL, + URLHash BIGINT NOT NULL, + CLID INTEGER NOT NULL +) +ENGINE = File(Parquet, 'hits.parquet'); diff --git a/clickhouse-parquet-104431/data-size b/clickhouse-parquet-104431/data-size new file mode 100755 index 0000000000..1a38db62ca --- /dev/null +++ b/clickhouse-parquet-104431/data-size @@ -0,0 +1,4 @@ +#!/bin/bash +set -e + +du -bcs hits.parquet | awk 'END { print $1 }' diff --git a/clickhouse-parquet-104431/install b/clickhouse-parquet-104431/install new file mode 100755 index 0000000000..ba984bc295 --- /dev/null +++ b/clickhouse-parquet-104431/install @@ -0,0 +1,35 @@ +#!/bin/bash +set -e -o pipefail + +# Same as clickhouse-parquet, except that the binary is not the latest release +# but a pinned RelWithDebInfo build from ClickHouse CI, so that this directory +# measures one specific pull request: +# +# https://github.com/ClickHouse/ClickHouse/pull/104431 +# "Parallelize reads from a single Parquet file in StorageFile, again" +# +# head 07303b95365362daace76759e4c51e39efefd25a, which CI built as the merge +# commit e350489c261768cbc0679b720e24ee0d97d9290c +# ("Merge 07303b95... into aec8b1d5..." modulo test-only commits). +# +# clickhouse-parquet-baseline pins the corresponding master build, so the two +# directories differ only by the pull request. + +BUILD="https://clickhouse-builds.s3.amazonaws.com/PRs/104431/07303b95365362daace76759e4c51e39efefd25a" + +case "$(uname -m)" in + x86_64) url="${BUILD}/build_amd_release/clickhouse";; + aarch64) url="${BUILD}/build_arm_release/clickhouse";; + *) echo "No pinned build for $(uname -m)" >&2; exit 1;; +esac + +if [ ! -x ./clickhouse ]; then + curl -fsSL --retry 10 --retry-delay 60 --retry-all-errors -o clickhouse "$url" + chmod +x clickhouse +fi + +# Record in the log which binary is actually being measured. +./clickhouse local --query " + SELECT 'Binary: ' || arrayStringConcat(groupArray(name || '=' || value), ' ') + FROM system.build_options + WHERE name IN ('VERSION_DESCRIBE', 'GIT_HASH', 'BUILD_TYPE')" diff --git a/clickhouse-parquet-104431/load b/clickhouse-parquet-104431/load new file mode 100755 index 0000000000..0d7d5fc290 --- /dev/null +++ b/clickhouse-parquet-104431/load @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +# clickhouse-local with File(Parquet) engine reads the parquet file in place, +# so there's no separate ingest step. The "load" is implicit — just keep the +# downloaded hits.parquet in this directory. +sync diff --git a/clickhouse-parquet-104431/queries.sql b/clickhouse-parquet-104431/queries.sql new file mode 100644 index 0000000000..31f65fc898 --- /dev/null +++ b/clickhouse-parquet-104431/queries.sql @@ -0,0 +1,43 @@ +SELECT COUNT(*) FROM hits; +SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; +SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; +SELECT AVG(UserID) FROM hits; +SELECT COUNT(DISTINCT UserID) FROM hits; +SELECT COUNT(DISTINCT SearchPhrase) FROM hits; +SELECT MIN(EventDate), MAX(EventDate) FROM hits; +SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; +SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; +SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10; +SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; +SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase LIMIT 10; +SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID FROM hits WHERE UserID = 435090932899640449; +SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; +SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT * FROM hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10; +SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM hits WHERE Referer <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT SUM(ResolutionWidth), SUM(ResolutionWidth + 1), SUM(ResolutionWidth + 2), SUM(ResolutionWidth + 3), SUM(ResolutionWidth + 4), SUM(ResolutionWidth + 5), SUM(ResolutionWidth + 6), SUM(ResolutionWidth + 7), SUM(ResolutionWidth + 8), SUM(ResolutionWidth + 9), SUM(ResolutionWidth + 10), SUM(ResolutionWidth + 11), SUM(ResolutionWidth + 12), SUM(ResolutionWidth + 13), SUM(ResolutionWidth + 14), SUM(ResolutionWidth + 15), SUM(ResolutionWidth + 16), SUM(ResolutionWidth + 17), SUM(ResolutionWidth + 18), SUM(ResolutionWidth + 19), SUM(ResolutionWidth + 20), SUM(ResolutionWidth + 21), SUM(ResolutionWidth + 22), SUM(ResolutionWidth + 23), SUM(ResolutionWidth + 24), SUM(ResolutionWidth + 25), SUM(ResolutionWidth + 26), SUM(ResolutionWidth + 27), SUM(ResolutionWidth + 28), SUM(ResolutionWidth + 29), SUM(ResolutionWidth + 30), SUM(ResolutionWidth + 31), SUM(ResolutionWidth + 32), SUM(ResolutionWidth + 33), SUM(ResolutionWidth + 34), SUM(ResolutionWidth + 35), SUM(ResolutionWidth + 36), SUM(ResolutionWidth + 37), SUM(ResolutionWidth + 38), SUM(ResolutionWidth + 39), SUM(ResolutionWidth + 40), SUM(ResolutionWidth + 41), SUM(ResolutionWidth + 42), SUM(ResolutionWidth + 43), SUM(ResolutionWidth + 44), SUM(ResolutionWidth + 45), SUM(ResolutionWidth + 46), SUM(ResolutionWidth + 47), SUM(ResolutionWidth + 48), SUM(ResolutionWidth + 49), SUM(ResolutionWidth + 50), SUM(ResolutionWidth + 51), SUM(ResolutionWidth + 52), SUM(ResolutionWidth + 53), SUM(ResolutionWidth + 54), SUM(ResolutionWidth + 55), SUM(ResolutionWidth + 56), SUM(ResolutionWidth + 57), SUM(ResolutionWidth + 58), SUM(ResolutionWidth + 59), SUM(ResolutionWidth + 60), SUM(ResolutionWidth + 61), SUM(ResolutionWidth + 62), SUM(ResolutionWidth + 63), SUM(ResolutionWidth + 64), SUM(ResolutionWidth + 65), SUM(ResolutionWidth + 66), SUM(ResolutionWidth + 67), SUM(ResolutionWidth + 68), SUM(ResolutionWidth + 69), SUM(ResolutionWidth + 70), SUM(ResolutionWidth + 71), SUM(ResolutionWidth + 72), SUM(ResolutionWidth + 73), SUM(ResolutionWidth + 74), SUM(ResolutionWidth + 75), SUM(ResolutionWidth + 76), SUM(ResolutionWidth + 77), SUM(ResolutionWidth + 78), SUM(ResolutionWidth + 79), SUM(ResolutionWidth + 80), SUM(ResolutionWidth + 81), SUM(ResolutionWidth + 82), SUM(ResolutionWidth + 83), SUM(ResolutionWidth + 84), SUM(ResolutionWidth + 85), SUM(ResolutionWidth + 86), SUM(ResolutionWidth + 87), SUM(ResolutionWidth + 88), SUM(ResolutionWidth + 89) FROM hits; +SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10; +SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10; +SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; +SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND IsLink <> 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; +SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; +SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 10 OFFSET 100; +SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash = 2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10 OFFSET 10000; +SELECT DATE_TRUNC('minute', EventTime) AS M, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <= '2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', EventTime) ORDER BY DATE_TRUNC('minute', EventTime) LIMIT 10 OFFSET 1000; diff --git a/clickhouse-parquet-104431/query b/clickhouse-parquet-104431/query new file mode 100755 index 0000000000..1a4ddd7a4d --- /dev/null +++ b/clickhouse-parquet-104431/query @@ -0,0 +1,8 @@ +#!/bin/bash +# Reads a SQL query from stdin, runs it via clickhouse-local with the table +# definition from create.sql prepended. Stdout: query result. Stderr: query +# runtime in fractional seconds on the last line. Exit non-zero on error. +set -e + +query=$(cat) +./clickhouse local --time --format=Pretty --query="$(cat create.sql); ${query}" diff --git a/clickhouse-parquet-104431/start b/clickhouse-parquet-104431/start new file mode 100755 index 0000000000..a726d93477 --- /dev/null +++ b/clickhouse-parquet-104431/start @@ -0,0 +1,3 @@ +#!/bin/bash +# clickhouse-local is invoked per-query — no daemon to start. +exit 0 diff --git a/clickhouse-parquet-104431/stop b/clickhouse-parquet-104431/stop new file mode 100755 index 0000000000..7661285688 --- /dev/null +++ b/clickhouse-parquet-104431/stop @@ -0,0 +1,3 @@ +#!/bin/bash +# clickhouse-local is invoked per-query — no daemon to stop. +exit 0 diff --git a/clickhouse-parquet-104431/template.json b/clickhouse-parquet-104431/template.json new file mode 100644 index 0000000000..8f1ccb378f --- /dev/null +++ b/clickhouse-parquet-104431/template.json @@ -0,0 +1,13 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": [ + "C++", + "column-oriented", + "embedded", + "stateless", + "ClickHouse derivative" + ] +} diff --git a/clickhouse-parquet-baseline/benchmark.sh b/clickhouse-parquet-baseline/benchmark.sh new file mode 100755 index 0000000000..fb3b4d1318 --- /dev/null +++ b/clickhouse-parquet-baseline/benchmark.sh @@ -0,0 +1,9 @@ +#!/bin/bash +export BENCH_DOWNLOAD_SCRIPT="download-hits-parquet-single" +export BENCH_RESTARTABLE=no +# Single-process engine: each query forks a fresh full-machine process with no +# shared scheduler across connections, so the concurrent-QPS test only +# oversubscribes RAM rather than measuring throughput. Skip it by default; +# override BENCH_CONCURRENT_DURATION to re-enable. See issue #946. +export BENCH_CONCURRENT_DURATION="${BENCH_CONCURRENT_DURATION:-0}" +exec ../lib/benchmark-common.sh diff --git a/clickhouse-parquet-baseline/check b/clickhouse-parquet-baseline/check new file mode 100755 index 0000000000..86d2609b68 --- /dev/null +++ b/clickhouse-parquet-baseline/check @@ -0,0 +1,4 @@ +#!/bin/bash +set -e + +./clickhouse local --query "SELECT 1" >/dev/null diff --git a/clickhouse-parquet-baseline/create.sql b/clickhouse-parquet-baseline/create.sql new file mode 100644 index 0000000000..d2a4e5d65f --- /dev/null +++ b/clickhouse-parquet-baseline/create.sql @@ -0,0 +1,109 @@ +CREATE TABLE hits +( + WatchID BIGINT NOT NULL, + JavaEnable SMALLINT NOT NULL, + Title TEXT NOT NULL, + GoodEvent SMALLINT NOT NULL, + EventTime TIMESTAMP NOT NULL, + EventDate Date NOT NULL, + CounterID INTEGER NOT NULL, + ClientIP INTEGER NOT NULL, + RegionID INTEGER NOT NULL, + UserID BIGINT NOT NULL, + CounterClass SMALLINT NOT NULL, + OS SMALLINT NOT NULL, + UserAgent SMALLINT NOT NULL, + URL TEXT NOT NULL, + Referer TEXT NOT NULL, + IsRefresh SMALLINT NOT NULL, + RefererCategoryID SMALLINT NOT NULL, + RefererRegionID INTEGER NOT NULL, + URLCategoryID SMALLINT NOT NULL, + URLRegionID INTEGER NOT NULL, + ResolutionWidth SMALLINT NOT NULL, + ResolutionHeight SMALLINT NOT NULL, + ResolutionDepth SMALLINT NOT NULL, + FlashMajor SMALLINT NOT NULL, + FlashMinor SMALLINT NOT NULL, + FlashMinor2 TEXT NOT NULL, + NetMajor SMALLINT NOT NULL, + NetMinor SMALLINT NOT NULL, + UserAgentMajor SMALLINT NOT NULL, + UserAgentMinor VARCHAR(255) NOT NULL, + CookieEnable SMALLINT NOT NULL, + JavascriptEnable SMALLINT NOT NULL, + IsMobile SMALLINT NOT NULL, + MobilePhone SMALLINT NOT NULL, + MobilePhoneModel TEXT NOT NULL, + Params TEXT NOT NULL, + IPNetworkID INTEGER NOT NULL, + TraficSourceID SMALLINT NOT NULL, + SearchEngineID SMALLINT NOT NULL, + SearchPhrase TEXT NOT NULL, + AdvEngineID SMALLINT NOT NULL, + IsArtifical SMALLINT NOT NULL, + WindowClientWidth SMALLINT NOT NULL, + WindowClientHeight SMALLINT NOT NULL, + ClientTimeZone SMALLINT NOT NULL, + ClientEventTime TIMESTAMP NOT NULL, + SilverlightVersion1 SMALLINT NOT NULL, + SilverlightVersion2 SMALLINT NOT NULL, + SilverlightVersion3 INTEGER NOT NULL, + SilverlightVersion4 SMALLINT NOT NULL, + PageCharset TEXT NOT NULL, + CodeVersion INTEGER NOT NULL, + IsLink SMALLINT NOT NULL, + IsDownload SMALLINT NOT NULL, + IsNotBounce SMALLINT NOT NULL, + FUniqID BIGINT NOT NULL, + OriginalURL TEXT NOT NULL, + HID INTEGER NOT NULL, + IsOldCounter SMALLINT NOT NULL, + IsEvent SMALLINT NOT NULL, + IsParameter SMALLINT NOT NULL, + DontCountHits SMALLINT NOT NULL, + WithHash SMALLINT NOT NULL, + HitColor CHAR NOT NULL, + LocalEventTime TIMESTAMP NOT NULL, + Age SMALLINT NOT NULL, + Sex SMALLINT NOT NULL, + Income SMALLINT NOT NULL, + Interests SMALLINT NOT NULL, + Robotness SMALLINT NOT NULL, + RemoteIP INTEGER NOT NULL, + WindowName INTEGER NOT NULL, + OpenerName INTEGER NOT NULL, + HistoryLength SMALLINT NOT NULL, + BrowserLanguage TEXT NOT NULL, + BrowserCountry TEXT NOT NULL, + SocialNetwork TEXT NOT NULL, + SocialAction TEXT NOT NULL, + HTTPError SMALLINT NOT NULL, + SendTiming INTEGER NOT NULL, + DNSTiming INTEGER NOT NULL, + ConnectTiming INTEGER NOT NULL, + ResponseStartTiming INTEGER NOT NULL, + ResponseEndTiming INTEGER NOT NULL, + FetchTiming INTEGER NOT NULL, + SocialSourceNetworkID SMALLINT NOT NULL, + SocialSourcePage TEXT NOT NULL, + ParamPrice BIGINT NOT NULL, + ParamOrderID TEXT NOT NULL, + ParamCurrency TEXT NOT NULL, + ParamCurrencyID SMALLINT NOT NULL, + OpenstatServiceName TEXT NOT NULL, + OpenstatCampaignID TEXT NOT NULL, + OpenstatAdID TEXT NOT NULL, + OpenstatSourceID TEXT NOT NULL, + UTMSource TEXT NOT NULL, + UTMMedium TEXT NOT NULL, + UTMCampaign TEXT NOT NULL, + UTMContent TEXT NOT NULL, + UTMTerm TEXT NOT NULL, + FromTag TEXT NOT NULL, + HasGCLID SMALLINT NOT NULL, + RefererHash BIGINT NOT NULL, + URLHash BIGINT NOT NULL, + CLID INTEGER NOT NULL +) +ENGINE = File(Parquet, 'hits.parquet'); diff --git a/clickhouse-parquet-baseline/data-size b/clickhouse-parquet-baseline/data-size new file mode 100755 index 0000000000..1a38db62ca --- /dev/null +++ b/clickhouse-parquet-baseline/data-size @@ -0,0 +1,4 @@ +#!/bin/bash +set -e + +du -bcs hits.parquet | awk 'END { print $1 }' diff --git a/clickhouse-parquet-baseline/install b/clickhouse-parquet-baseline/install new file mode 100755 index 0000000000..1790238bf2 --- /dev/null +++ b/clickhouse-parquet-baseline/install @@ -0,0 +1,31 @@ +#!/bin/bash +set -e -o pipefail + +# The A/B baseline for clickhouse-parquet-104431: a pinned RelWithDebInfo +# build of master, taken from the commit that ClickHouse CI merged the pull +# request into. +# +# ClickHouse CI built https://github.com/ClickHouse/ClickHouse/pull/104431 as +# "Merge 07303b95... into 2a539919...". Master CI skips Build (amd_release), +# so 2a539919 has no x86-64 release build; its parent +# aec8b1d56234cdf035fcc0fc65afe31a9a0f224d has both, and differs from +# 2a539919 only in test files - no source that goes into the binary. + +BUILD="https://clickhouse-builds.s3.amazonaws.com/REFs/master/aec8b1d56234cdf035fcc0fc65afe31a9a0f224d" + +case "$(uname -m)" in + x86_64) url="${BUILD}/build_amd_release/clickhouse";; + aarch64) url="${BUILD}/build_arm_release/clickhouse";; + *) echo "No pinned build for $(uname -m)" >&2; exit 1;; +esac + +if [ ! -x ./clickhouse ]; then + curl -fsSL --retry 10 --retry-delay 60 --retry-all-errors -o clickhouse "$url" + chmod +x clickhouse +fi + +# Record in the log which binary is actually being measured. +./clickhouse local --query " + SELECT 'Binary: ' || arrayStringConcat(groupArray(name || '=' || value), ' ') + FROM system.build_options + WHERE name IN ('VERSION_DESCRIBE', 'GIT_HASH', 'BUILD_TYPE')" diff --git a/clickhouse-parquet-baseline/load b/clickhouse-parquet-baseline/load new file mode 100755 index 0000000000..0d7d5fc290 --- /dev/null +++ b/clickhouse-parquet-baseline/load @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +# clickhouse-local with File(Parquet) engine reads the parquet file in place, +# so there's no separate ingest step. The "load" is implicit — just keep the +# downloaded hits.parquet in this directory. +sync diff --git a/clickhouse-parquet-baseline/queries.sql b/clickhouse-parquet-baseline/queries.sql new file mode 100644 index 0000000000..31f65fc898 --- /dev/null +++ b/clickhouse-parquet-baseline/queries.sql @@ -0,0 +1,43 @@ +SELECT COUNT(*) FROM hits; +SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; +SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; +SELECT AVG(UserID) FROM hits; +SELECT COUNT(DISTINCT UserID) FROM hits; +SELECT COUNT(DISTINCT SearchPhrase) FROM hits; +SELECT MIN(EventDate), MAX(EventDate) FROM hits; +SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; +SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; +SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10; +SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; +SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase LIMIT 10; +SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID FROM hits WHERE UserID = 435090932899640449; +SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; +SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT * FROM hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10; +SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM hits WHERE Referer <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT SUM(ResolutionWidth), SUM(ResolutionWidth + 1), SUM(ResolutionWidth + 2), SUM(ResolutionWidth + 3), SUM(ResolutionWidth + 4), SUM(ResolutionWidth + 5), SUM(ResolutionWidth + 6), SUM(ResolutionWidth + 7), SUM(ResolutionWidth + 8), SUM(ResolutionWidth + 9), SUM(ResolutionWidth + 10), SUM(ResolutionWidth + 11), SUM(ResolutionWidth + 12), SUM(ResolutionWidth + 13), SUM(ResolutionWidth + 14), SUM(ResolutionWidth + 15), SUM(ResolutionWidth + 16), SUM(ResolutionWidth + 17), SUM(ResolutionWidth + 18), SUM(ResolutionWidth + 19), SUM(ResolutionWidth + 20), SUM(ResolutionWidth + 21), SUM(ResolutionWidth + 22), SUM(ResolutionWidth + 23), SUM(ResolutionWidth + 24), SUM(ResolutionWidth + 25), SUM(ResolutionWidth + 26), SUM(ResolutionWidth + 27), SUM(ResolutionWidth + 28), SUM(ResolutionWidth + 29), SUM(ResolutionWidth + 30), SUM(ResolutionWidth + 31), SUM(ResolutionWidth + 32), SUM(ResolutionWidth + 33), SUM(ResolutionWidth + 34), SUM(ResolutionWidth + 35), SUM(ResolutionWidth + 36), SUM(ResolutionWidth + 37), SUM(ResolutionWidth + 38), SUM(ResolutionWidth + 39), SUM(ResolutionWidth + 40), SUM(ResolutionWidth + 41), SUM(ResolutionWidth + 42), SUM(ResolutionWidth + 43), SUM(ResolutionWidth + 44), SUM(ResolutionWidth + 45), SUM(ResolutionWidth + 46), SUM(ResolutionWidth + 47), SUM(ResolutionWidth + 48), SUM(ResolutionWidth + 49), SUM(ResolutionWidth + 50), SUM(ResolutionWidth + 51), SUM(ResolutionWidth + 52), SUM(ResolutionWidth + 53), SUM(ResolutionWidth + 54), SUM(ResolutionWidth + 55), SUM(ResolutionWidth + 56), SUM(ResolutionWidth + 57), SUM(ResolutionWidth + 58), SUM(ResolutionWidth + 59), SUM(ResolutionWidth + 60), SUM(ResolutionWidth + 61), SUM(ResolutionWidth + 62), SUM(ResolutionWidth + 63), SUM(ResolutionWidth + 64), SUM(ResolutionWidth + 65), SUM(ResolutionWidth + 66), SUM(ResolutionWidth + 67), SUM(ResolutionWidth + 68), SUM(ResolutionWidth + 69), SUM(ResolutionWidth + 70), SUM(ResolutionWidth + 71), SUM(ResolutionWidth + 72), SUM(ResolutionWidth + 73), SUM(ResolutionWidth + 74), SUM(ResolutionWidth + 75), SUM(ResolutionWidth + 76), SUM(ResolutionWidth + 77), SUM(ResolutionWidth + 78), SUM(ResolutionWidth + 79), SUM(ResolutionWidth + 80), SUM(ResolutionWidth + 81), SUM(ResolutionWidth + 82), SUM(ResolutionWidth + 83), SUM(ResolutionWidth + 84), SUM(ResolutionWidth + 85), SUM(ResolutionWidth + 86), SUM(ResolutionWidth + 87), SUM(ResolutionWidth + 88), SUM(ResolutionWidth + 89) FROM hits; +SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10; +SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10; +SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; +SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND IsLink <> 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; +SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; +SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 10 OFFSET 100; +SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash = 2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10 OFFSET 10000; +SELECT DATE_TRUNC('minute', EventTime) AS M, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <= '2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', EventTime) ORDER BY DATE_TRUNC('minute', EventTime) LIMIT 10 OFFSET 1000; diff --git a/clickhouse-parquet-baseline/query b/clickhouse-parquet-baseline/query new file mode 100755 index 0000000000..1a4ddd7a4d --- /dev/null +++ b/clickhouse-parquet-baseline/query @@ -0,0 +1,8 @@ +#!/bin/bash +# Reads a SQL query from stdin, runs it via clickhouse-local with the table +# definition from create.sql prepended. Stdout: query result. Stderr: query +# runtime in fractional seconds on the last line. Exit non-zero on error. +set -e + +query=$(cat) +./clickhouse local --time --format=Pretty --query="$(cat create.sql); ${query}" diff --git a/clickhouse-parquet-baseline/start b/clickhouse-parquet-baseline/start new file mode 100755 index 0000000000..a726d93477 --- /dev/null +++ b/clickhouse-parquet-baseline/start @@ -0,0 +1,3 @@ +#!/bin/bash +# clickhouse-local is invoked per-query — no daemon to start. +exit 0 diff --git a/clickhouse-parquet-baseline/stop b/clickhouse-parquet-baseline/stop new file mode 100755 index 0000000000..7661285688 --- /dev/null +++ b/clickhouse-parquet-baseline/stop @@ -0,0 +1,3 @@ +#!/bin/bash +# clickhouse-local is invoked per-query — no daemon to stop. +exit 0 diff --git a/clickhouse-parquet-baseline/template.json b/clickhouse-parquet-baseline/template.json new file mode 100644 index 0000000000..a2b7a499a7 --- /dev/null +++ b/clickhouse-parquet-baseline/template.json @@ -0,0 +1,13 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": [ + "C++", + "column-oriented", + "embedded", + "stateless", + "ClickHouse derivative" + ] +} From cc77d85c9f587d1f311830d9bad0fc247360eafb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 04:54:51 +0000 Subject: [PATCH 2/7] Add benchmark results for clickhouse-parquet-104431, clickhouse-parquet-baseline (c6a.2xlarge, c6a.4xlarge, c6a.metal, c7a.metal-48xl, c8g.4xlarge, c8g.metal-48xl) --- .../results/20260817/c6a.2xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c6a.4xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c6a.metal.json | 60 +++++++++++++++++++ .../results/20260817/c7a.metal-48xl.json | 60 +++++++++++++++++++ .../results/20260817/c8g.4xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c8g.metal-48xl.json | 60 +++++++++++++++++++ .../results/20260817/c6a.2xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c6a.4xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c6a.metal.json | 60 +++++++++++++++++++ .../results/20260817/c7a.metal-48xl.json | 60 +++++++++++++++++++ .../results/20260817/c8g.4xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c8g.metal-48xl.json | 60 +++++++++++++++++++ 12 files changed, 720 insertions(+) create mode 100644 clickhouse-parquet-104431/results/20260817/c6a.2xlarge.json create mode 100644 clickhouse-parquet-104431/results/20260817/c6a.4xlarge.json create mode 100644 clickhouse-parquet-104431/results/20260817/c6a.metal.json create mode 100644 clickhouse-parquet-104431/results/20260817/c7a.metal-48xl.json create mode 100644 clickhouse-parquet-104431/results/20260817/c8g.4xlarge.json create mode 100644 clickhouse-parquet-104431/results/20260817/c8g.metal-48xl.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c6a.2xlarge.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c6a.4xlarge.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c6a.metal.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c7a.metal-48xl.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c8g.4xlarge.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c8g.metal-48xl.json diff --git a/clickhouse-parquet-104431/results/20260817/c6a.2xlarge.json b/clickhouse-parquet-104431/results/20260817/c6a.2xlarge.json new file mode 100644 index 0000000000..1880832f14 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c6a.2xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c6a.2xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 4, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.13, 0.035, 0.035], + [0.231, 0.099, 0.099], + [0.383, 0.175, 0.176], + [0.528, 0.172, 0.163], + [0.812, 0.539, 0.528], + [1.244, 0.781, 0.773], + [0.28, 0.102, 0.1], + [0.303, 0.1, 0.101], + [1.271, 0.785, 0.789], + [1.397, 0.916, 0.915], + [0.789, 0.348, 0.351], + [0.836, 0.385, 0.389], + [1.265, 0.743, 0.723], + [2.359, 1.145, 1.135], + [1.563, 1.091, 1.081], + [0.802, 0.465, 0.483], + [2.832, 2.15, 2.148], + [2.276, 1.636, 1.554], + [5.211, 3.858, 3.819], + [0.553, 0.171, 0.175], + [9.674, 1.244, 1.212], + [11.23, 1.546, 1.549], + [21.68, 2.087, 2.133], + [54.639, 117.694, 44.789], + [2.512, 0.859, 0.845], + [1, 0.463, 0.468], + [2.542, 0.87, 0.847], + [9.744, 1.925, 1.965], + [8.627, 3.023, 3.06], + [0.311, 0.147, 0.146], + [2.348, 1.233, 1.231], + [5.876, 1.42, 1.453], + [7.103, 4.027, 4.034], + [20.974, 16.508, 16.402], + [20.81, 16.924, 16.155], + [0.706, 0.433, 0.431], + [0.47, 0.188, 0.186], + [0.353, 0.142, 0.148], + [0.445, 0.125, 0.135], + [0.745, 0.354, 0.376], + [0.334, 0.091, 0.093], + [0.321, 0.089, 0.089], + [0.298, 0.079, 0.08] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431/results/20260817/c6a.4xlarge.json b/clickhouse-parquet-104431/results/20260817/c6a.4xlarge.json new file mode 100644 index 0000000000..3bf52f42a9 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c6a.4xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c6a.4xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.153, 0.035, 0.036], + [0.271, 0.091, 0.091], + [0.33, 0.126, 0.125], + [0.451, 0.135, 0.136], + [0.564, 0.362, 0.365], + [0.949, 0.449, 0.446], + [0.254, 0.088, 0.085], + [0.283, 0.091, 0.09], + [0.881, 0.575, 0.574], + [1.407, 0.665, 0.657], + [0.702, 0.254, 0.255], + [0.759, 0.279, 0.274], + [1.068, 0.558, 0.551], + [2.636, 0.825, 0.838], + [1.186, 0.725, 0.719], + [0.632, 0.402, 0.409], + [2.737, 1.557, 1.527], + [2.372, 1.18, 1.182], + [5.357, 2.874, 2.874], + [0.408, 0.137, 0.138], + [10.329, 1.22, 1.23], + [12.029, 1.411, 1.417], + [23, 1.767, 1.795], + [57.64, 3.367, 3.377], + [2.92, 0.508, 0.5], + [0.936, 0.295, 0.299], + [2.86, 0.495, 0.502], + [10.511, 2.006, 2.006], + [9.131, 2.694, 2.583], + [0.313, 0.115, 0.116], + [2.685, 0.728, 0.729], + [6.548, 0.925, 0.927], + [6.632, 2.884, 2.893], + [10.155, 2.959, 3.052], + [10.148, 2.993, 2.956], + [0.503, 0.301, 0.302], + [0.463, 0.17, 0.155], + [0.335, 0.133, 0.139], + [0.443, 0.132, 0.13], + [0.552, 0.2, 0.198], + [0.326, 0.09, 0.09], + [0.306, 0.088, 0.089], + [0.295, 0.08, 0.08] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431/results/20260817/c6a.metal.json b/clickhouse-parquet-104431/results/20260817/c6a.metal.json new file mode 100644 index 0000000000..94426449a5 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c6a.metal.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c6a.metal", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.148, 0.037, 0.035], + [0.261, 0.107, 0.117], + [0.272, 0.115, 0.112], + [0.384, 0.115, 0.121], + [0.45, 0.181, 0.176], + [0.814, 0.201, 0.191], + [0.222, 0.097, 0.1], + [0.26, 0.105, 0.11], + [0.875, 0.407, 0.413], + [1.336, 0.427, 0.431], + [0.618, 0.188, 0.19], + [0.646, 0.187, 0.189], + [0.86, 0.191, 0.2], + [2.081, 0.25, 0.25], + [0.931, 0.218, 0.214], + [0.568, 0.158, 0.174], + [2.089, 0.318, 0.335], + [2.041, 0.286, 0.308], + [3.916, 0.583, 0.56], + [0.312, 0.092, 0.107], + [9.566, 0.519, 0.486], + [11.119, 0.47, 0.489], + [21.633, 0.609, 0.615], + [54.545, 1.186, 1.147], + [2.494, 0.226, 0.304], + [0.791, 0.158, 0.156], + [2.508, 0.187, 0.185], + [9.731, 0.674, 0.673], + [8.334, 0.569, 0.566], + [0.285, 0.12, 0.119], + [2.278, 0.332, 0.242], + [5.688, 0.288, 0.298], + [4.441, 0.615, 0.611], + [9.676, 0.704, 0.788], + [9.691, 0.75, 0.701], + [0.381, 0.16, 0.152], + [0.38, 0.159, 0.156], + [0.291, 0.135, 0.121], + [0.362, 0.12, 0.117], + [0.463, 0.158, 0.182], + [0.329, 0.092, 0.114], + [0.309, 0.087, 0.111], + [0.304, 0.083, 0.085] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431/results/20260817/c7a.metal-48xl.json b/clickhouse-parquet-104431/results/20260817/c7a.metal-48xl.json new file mode 100644 index 0000000000..ce33e78153 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c7a.metal-48xl.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c7a.metal-48xl", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 1, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.149, 0.039, 0.037], + [0.272, 0.107, 0.106], + [0.271, 0.117, 0.115], + [0.448, 0.118, 0.116], + [0.438, 0.166, 0.168], + [0.876, 0.202, 0.188], + [0.255, 0.103, 0.098], + [0.257, 0.125, 0.137], + [0.863, 0.387, 0.377], + [1.327, 0.412, 0.401], + [0.623, 0.204, 0.202], + [0.664, 0.21, 0.199], + [0.895, 0.197, 0.188], + [2.129, 0.365, 0.232], + [0.967, 0.219, 0.199], + [0.441, 0.169, 0.167], + [2.093, 0.266, 0.257], + [2.071, 0.262, 0.247], + [3.835, 0.368, 0.685], + [0.368, 0.105, 0.091], + [9.591, 0.541, 0.567], + [11.184, 0.502, 0.482], + [21.627, 0.623, 0.62], + [54.589, 1.37, 1.334], + [2.507, 0.283, 0.365], + [0.833, 0.153, 0.149], + [2.508, 0.367, 0.474], + [9.731, 0.713, 0.721], + [8.402, 0.463, 0.469], + [0.31, 0.138, 0.132], + [2.315, 0.489, 0.285], + [5.689, 0.771, 0.692], + [4.263, 0.468, 0.518], + [9.668, 0.668, 0.655], + [9.68, 0.706, 0.632], + [0.403, 0.16, 0.166], + [0.426, 0.179, 0.192], + [0.335, 0.158, 0.183], + [0.405, 0.142, 0.156], + [0.446, 0.182, 0.185], + [0.318, 0.134, 0.127], + [0.34, 0.124, 0.135], + [0.313, 0.127, 0.119] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431/results/20260817/c8g.4xlarge.json b/clickhouse-parquet-104431/results/20260817/c8g.4xlarge.json new file mode 100644 index 0000000000..e85c62aa75 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c8g.4xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c8g.4xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 1, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.105, 0.028, 0.028], + [0.19, 0.068, 0.07], + [0.25, 0.097, 0.097], + [0.394, 0.089, 0.09], + [0.503, 0.186, 0.193], + [0.86, 0.264, 0.267], + [0.185, 0.068, 0.067], + [0.208, 0.07, 0.071], + [0.77, 0.304, 0.287], + [1.279, 0.342, 0.342], + [0.607, 0.195, 0.196], + [0.658, 0.212, 0.212], + [0.925, 0.298, 0.296], + [2.345, 0.419, 0.421], + [1.013, 0.389, 0.38], + [0.444, 0.186, 0.187], + [2.404, 0.598, 0.601], + [2.267, 0.47, 0.473], + [4.564, 1.036, 1.047], + [0.354, 0.079, 0.081], + [10.197, 0.541, 0.532], + [11.968, 0.667, 0.675], + [22.983, 0.883, 0.886], + [57.415, 1.607, 1.642], + [2.828, 0.363, 0.368], + [0.874, 0.215, 0.219], + [2.827, 0.368, 0.36], + [10.376, 0.618, 0.621], + [8.713, 0.899, 0.911], + [0.241, 0.091, 0.091], + [2.564, 0.508, 0.508], + [6.39, 0.57, 0.571], + [5.415, 1.133, 1.129], + [10.408, 1.137, 1.138], + [10.392, 1.148, 1.135], + [0.356, 0.173, 0.17], + [0.348, 0.112, 0.112], + [0.244, 0.098, 0.094], + [0.33, 0.094, 0.095], + [0.418, 0.131, 0.131], + [0.236, 0.071, 0.07], + [0.223, 0.068, 0.068], + [0.209, 0.063, 0.062] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431/results/20260817/c8g.metal-48xl.json b/clickhouse-parquet-104431/results/20260817/c8g.metal-48xl.json new file mode 100644 index 0000000000..8014aea915 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c8g.metal-48xl.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c8g.metal-48xl", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 2, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.116, 0.033, 0.033], + [0.207, 0.08, 0.078], + [0.222, 0.079, 0.078], + [0.359, 0.081, 0.081], + [0.381, 0.126, 0.144], + [0.793, 0.132, 0.133], + [0.202, 0.073, 0.072], + [0.225, 0.113, 0.106], + [0.787, 0.289, 0.298], + [1.237, 0.315, 0.308], + [0.591, 0.149, 0.152], + [0.621, 0.153, 0.156], + [0.828, 0.164, 0.17], + [2.064, 0.209, 0.214], + [0.903, 0.179, 0.177], + [0.445, 0.148, 0.142], + [2.042, 0.253, 0.253], + [2.019, 0.236, 0.245], + [3.83, 0.372, 0.417], + [0.299, 0.073, 0.073], + [9.547, 0.391, 0.385], + [11.176, 0.462, 0.482], + [21.613, 0.548, 0.542], + [54.476, 1.014, 1.005], + [2.494, 0.195, 0.203], + [0.787, 0.111, 0.116], + [2.483, 0.179, 0.28], + [9.719, 0.599, 0.589], + [8.199, 0.44, 0.435], + [0.258, 0.118, 0.118], + [2.261, 0.296, 0.209], + [5.652, 0.413, 0.345], + [4.322, 0.415, 0.419], + [9.63, 0.567, 0.553], + [9.635, 0.571, 0.569], + [0.321, 0.12, 0.12], + [0.402, 0.151, 0.158], + [0.296, 0.142, 0.134], + [0.377, 0.144, 0.135], + [0.414, 0.15, 0.151], + [0.297, 0.114, 0.12], + [0.277, 0.119, 0.108], + [0.258, 0.112, 0.113] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c6a.2xlarge.json b/clickhouse-parquet-baseline/results/20260817/c6a.2xlarge.json new file mode 100644 index 0000000000..feeebcf8a0 --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c6a.2xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c6a.2xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 4, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.124, 0.035, 0.036], + [0.219, 0.076, 0.074], + [0.363, 0.16, 0.159], + [0.5, 0.151, 0.149], + [0.814, 0.52, 0.523], + [1.179, 0.749, 0.752], + [0.254, 0.083, 0.083], + [0.271, 0.078, 0.078], + [1.255, 0.757, 0.753], + [1.382, 0.894, 0.899], + [0.761, 0.325, 0.32], + [0.8, 0.37, 0.372], + [1.279, 0.718, 0.718], + [2.321, 1.117, 1.124], + [1.522, 1.06, 1.062], + [0.76, 0.464, 0.472], + [2.786, 2.064, 2.087], + [2.269, 1.551, 1.549], + [5.066, 3.814, 3.823], + [0.556, 0.154, 0.146], + [9.515, 1.648, 1.62], + [11.098, 1.94, 1.948], + [21.543, 3.11, 3.109], + [54.639, 37.393, 25.45], + [2.464, 0.819, 0.829], + [1.043, 0.448, 0.451], + [2.508, 0.83, 0.831], + [9.649, 2.283, 2.264], + [8.542, 2.852, 2.861], + [0.281, 0.13, 0.13], + [2.346, 1.231, 1.205], + [5.86, 1.401, 1.408], + [6.875, 3.9, 3.909], + [19.883, 15.727, 15.604], + [19.697, 15.582, 15.429], + [0.674, 0.41, 0.412], + [0.427, 0.122, 0.121], + [0.335, 0.092, 0.093], + [0.43, 0.077, 0.078], + [0.505, 0.171, 0.182], + [0.305, 0.068, 0.067], + [0.284, 0.068, 0.065], + [0.272, 0.055, 0.055] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c6a.4xlarge.json b/clickhouse-parquet-baseline/results/20260817/c6a.4xlarge.json new file mode 100644 index 0000000000..ea254567a9 --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c6a.4xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c6a.4xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 6, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.126, 0.035, 0.035], + [0.249, 0.066, 0.064], + [0.308, 0.107, 0.106], + [0.375, 0.115, 0.115], + [0.541, 0.346, 0.345], + [0.808, 0.431, 0.427], + [0.237, 0.069, 0.066], + [0.264, 0.067, 0.067], + [0.815, 0.6, 0.58], + [1.226, 0.633, 0.644], + [0.616, 0.234, 0.233], + [0.62, 0.262, 0.259], + [0.924, 0.535, 0.535], + [2.311, 0.8, 0.8], + [1.004, 0.7, 0.698], + [0.58, 0.382, 0.383], + [2.39, 1.511, 1.51], + [2.027, 1.147, 1.167], + [4.774, 2.815, 2.827], + [0.32, 0.12, 0.117], + [9.532, 1.166, 1.146], + [11.12, 1.318, 1.3], + [21.539, 1.905, 1.922], + [54.564, 4.431, 4.483], + [2.47, 0.478, 0.482], + [0.765, 0.278, 0.276], + [2.5, 0.479, 0.48], + [9.661, 1.846, 1.824], + [8.505, 2.807, 2.824], + [0.255, 0.097, 0.094], + [2.323, 0.705, 0.715], + [5.78, 0.89, 0.901], + [5.861, 2.819, 2.802], + [9.957, 2.866, 2.871], + [9.998, 2.888, 2.887], + [0.451, 0.271, 0.271], + [0.362, 0.11, 0.105], + [0.338, 0.084, 0.081], + [0.413, 0.076, 0.078], + [0.467, 0.141, 0.136], + [0.313, 0.063, 0.064], + [0.295, 0.064, 0.064], + [0.279, 0.054, 0.054] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c6a.metal.json b/clickhouse-parquet-baseline/results/20260817/c6a.metal.json new file mode 100644 index 0000000000..f212b8888a --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c6a.metal.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c6a.metal", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 1, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.148, 0.037, 0.038], + [0.239, 0.082, 0.081], + [0.232, 0.096, 0.098], + [0.384, 0.103, 0.099], + [0.375, 0.16, 0.16], + [0.788, 0.178, 0.171], + [0.189, 0.081, 0.083], + [0.207, 0.082, 0.088], + [0.861, 0.394, 0.392], + [1.29, 0.41, 0.431], + [0.57, 0.177, 0.172], + [0.589, 0.176, 0.184], + [0.803, 0.181, 0.18], + [2.034, 0.24, 0.219], + [0.884, 0.199, 0.192], + [0.422, 0.146, 0.144], + [2.049, 0.33, 0.31], + [2.006, 0.278, 0.281], + [3.911, 0.529, 0.562], + [0.255, 0.073, 0.072], + [9.517, 0.549, 0.586], + [11.135, 1.114, 1.087], + [21.546, 1.382, 1.536], + [54.62, 5.719, 5.945], + [2.476, 0.168, 0.164], + [0.761, 0.144, 0.142], + [2.468, 0.166, 0.165], + [9.958, 1.111, 1.593], + [8.259, 0.687, 0.644], + [0.224, 0.104, 0.104], + [2.213, 0.226, 0.231], + [5.64, 0.355, 0.272], + [4.373, 0.581, 0.582], + [9.685, 0.761, 0.749], + [9.684, 0.95, 0.987], + [0.377, 0.14, 0.141], + [0.341, 0.131, 0.135], + [0.323, 0.103, 0.117], + [0.39, 0.098, 0.083], + [0.431, 0.134, 0.134], + [0.303, 0.084, 0.092], + [0.285, 0.087, 0.07], + [0.268, 0.086, 0.067] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c7a.metal-48xl.json b/clickhouse-parquet-baseline/results/20260817/c7a.metal-48xl.json new file mode 100644 index 0000000000..6b076155e3 --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c7a.metal-48xl.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c7a.metal-48xl", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.149, 0.04, 0.036], + [0.23, 0.087, 0.085], + [0.24, 0.102, 0.098], + [0.33, 0.095, 0.098], + [0.367, 0.154, 0.157], + [0.809, 0.169, 0.173], + [0.182, 0.086, 0.085], + [0.257, 0.113, 0.108], + [0.842, 0.364, 0.36], + [1.272, 0.39, 0.386], + [0.559, 0.189, 0.192], + [0.587, 0.194, 0.195], + [0.807, 0.174, 0.167], + [2.042, 0.252, 0.275], + [0.898, 0.209, 0.212], + [0.401, 0.161, 0.158], + [2.019, 0.252, 0.252], + [2.002, 0.234, 0.222], + [3.762, 0.363, 0.528], + [0.212, 0.069, 0.068], + [9.495, 0.435, 0.463], + [11.176, 1.27, 1.711], + [21.541, 1.717, 1.642], + [54.629, 8.292, 8.157], + [2.47, 0.288, 0.278], + [0.779, 0.133, 0.138], + [2.458, 0.382, 0.335], + [9.689, 2.199, 1.126], + [8.179, 0.508, 2.501], + [0.204, 0.125, 0.12], + [2.243, 0.399, 0.238], + [5.624, 0.656, 0.555], + [4.22, 0.47, 0.465], + [9.589, 5.261, 0.579], + [9.598, 0.62, 3.068], + [0.299, 0.145, 0.148], + [0.333, 0.159, 0.157], + [0.358, 0.136, 0.128], + [0.408, 0.123, 0.128], + [0.469, 0.179, 0.165], + [0.327, 0.109, 0.114], + [0.309, 0.108, 0.115], + [0.294, 0.099, 0.106] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c8g.4xlarge.json b/clickhouse-parquet-baseline/results/20260817/c8g.4xlarge.json new file mode 100644 index 0000000000..c9aebe0831 --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c8g.4xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c8g.4xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 3, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.114, 0.028, 0.028], + [0.197, 0.052, 0.052], + [0.27, 0.084, 0.083], + [0.356, 0.077, 0.078], + [0.417, 0.174, 0.175], + [0.942, 0.256, 0.248], + [0.183, 0.054, 0.055], + [0.203, 0.054, 0.053], + [0.663, 0.275, 0.273], + [1.12, 0.331, 0.332], + [0.571, 0.186, 0.19], + [0.595, 0.201, 0.201], + [0.819, 0.29, 0.287], + [2.062, 0.407, 0.405], + [0.898, 0.374, 0.375], + [0.461, 0.175, 0.174], + [2.099, 0.609, 0.602], + [1.966, 0.476, 0.459], + [4.016, 1.042, 1.063], + [0.376, 0.065, 0.065], + [9.484, 0.64, 0.658], + [11.081, 0.878, 0.887], + [21.541, 1.428, 1.42], + [54.505, 3.457, 3.381], + [2.465, 0.353, 0.352], + [0.756, 0.202, 0.207], + [2.463, 0.351, 0.348], + [9.614, 0.805, 0.825], + [8.185, 0.923, 0.993], + [0.243, 0.08, 0.08], + [2.23, 0.504, 0.49], + [5.683, 0.559, 0.561], + [4.801, 1.119, 1.126], + [9.627, 1.164, 1.163], + [9.648, 1.16, 1.159], + [0.363, 0.161, 0.156], + [0.348, 0.084, 0.08], + [0.253, 0.066, 0.067], + [0.331, 0.063, 0.064], + [0.36, 0.093, 0.099], + [0.228, 0.053, 0.054], + [0.226, 0.052, 0.052], + [0.207, 0.045, 0.044] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c8g.metal-48xl.json b/clickhouse-parquet-baseline/results/20260817/c8g.metal-48xl.json new file mode 100644 index 0000000000..bf09b1135d --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c8g.metal-48xl.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c8g.metal-48xl", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.119, 0.032, 0.032], + [0.388, 0.061, 0.062], + [0.539, 0.065, 0.067], + [0.561, 0.065, 0.079], + [0.615, 0.12, 0.113], + [1.012, 0.125, 0.126], + [0.188, 0.059, 0.06], + [0.208, 0.092, 0.1], + [0.755, 0.28, 0.282], + [1.213, 0.3, 0.295], + [0.702, 0.139, 0.141], + [0.872, 0.14, 0.132], + [1.265, 0.147, 0.147], + [2.026, 0.213, 0.197], + [0.872, 0.18, 0.178], + [0.447, 0.126, 0.126], + [2.025, 0.283, 0.228], + [1.983, 0.298, 0.298], + [3.797, 0.475, 0.393], + [0.389, 0.056, 0.057], + [9.539, 0.298, 0.297], + [11.145, 0.973, 1.336], + [21.551, 1.296, 1.389], + [54.553, 4.533, 4.665], + [2.453, 0.152, 0.126], + [0.762, 0.101, 0.1], + [2.462, 0.183, 0.189], + [9.714, 0.84, 0.72], + [8.149, 1.021, 0.421], + [0.315, 0.113, 0.114], + [2.224, 0.248, 0.201], + [5.631, 0.367, 0.478], + [4.309, 0.538, 0.534], + [9.587, 0.858, 0.988], + [9.598, 1.787, 0.683], + [0.455, 0.117, 0.109], + [0.359, 0.123, 0.12], + [0.274, 0.102, 0.103], + [0.351, 0.099, 0.105], + [0.415, 0.122, 0.124], + [0.246, 0.095, 0.095], + [0.237, 0.089, 0.09], + [0.224, 0.082, 0.085] +] + } + \ No newline at end of file From 88e9f6236656f5bd9b88f9fa91e7a47aa12a2639 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 05:21:25 +0000 Subject: [PATCH 3/7] Add benchmark results for clickhouse-parquet-104431, clickhouse-parquet-baseline (c6a.large, c6a.xlarge) --- .../results/20260817/c6a.large.json | 60 +++++++++++++++++++ .../results/20260817/c6a.xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c6a.large.json | 60 +++++++++++++++++++ .../results/20260817/c6a.xlarge.json | 60 +++++++++++++++++++ 4 files changed, 240 insertions(+) create mode 100644 clickhouse-parquet-104431/results/20260817/c6a.large.json create mode 100644 clickhouse-parquet-104431/results/20260817/c6a.xlarge.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c6a.large.json create mode 100644 clickhouse-parquet-baseline/results/20260817/c6a.xlarge.json diff --git a/clickhouse-parquet-104431/results/20260817/c6a.large.json b/clickhouse-parquet-104431/results/20260817/c6a.large.json new file mode 100644 index 0000000000..753ea29dc1 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c6a.large.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c6a.large", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.134, 0.043, 0.039], + [0.457, 0.294, 0.292], + [0.885, 0.608, 0.601], + [1.72, 0.94, 0.921], + [2.656, 2.093, 2.071], + [4.312, 3.424, 3.449], + [0.536, 0.364, 0.353], + [0.554, 0.319, 0.32], + [4.229, 3.849, 3.934], + [5.006, 4.64, 4.746], + [2.128, 1.553, 1.54], + [2.371, 1.779, 1.714], + [4.937, 4.209, 4.191], + [7.341, 6.462, 6.499], + [6.282, 5.811, 5.8], + [3.132, 2.61, 2.554], + [23.043, 23.054, 22.9], + [16.474, 16.462, 16.474], + [40.738, 41.491, 40.637], + [1.414, 0.692, 0.776], + [11.95, 7.577, 7.59], + [14.644, 10.945, 9.062], + [22.172, 23.732, 23.112], + [61.557, 64.545, 63.879], + [4.898, 3.659, 3.693], + [3.53, 2.476, 2.491], + [4.941, 3.679, 3.595], + [17.705, 13.374, 13.351], + [25.915, 54.616, 25.855], + [0.714, 0.452, 0.431], + [6.142, 5.287, 5.406], + [8.612, 6.734, 6.553], + [54.277, 54.841, 54.59], + [44.842, 45.448, 45.078], + [45.765, 45.252, 48.65], + [2.375, 2.1, 2.171], + [0.63, 0.338, 0.343], + [0.455, 0.235, 0.244], + [0.515, 0.181, 0.186], + [1.02, 0.702, 0.678], + [0.408, 0.157, 0.148], + [0.381, 0.142, 0.152], + [0.347, 0.129, 0.128] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431/results/20260817/c6a.xlarge.json b/clickhouse-parquet-104431/results/20260817/c6a.xlarge.json new file mode 100644 index 0000000000..6dd6639296 --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/c6a.xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "c6a.xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 2, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.146, 0.035, 0.035], + [0.31, 0.121, 0.12], + [0.455, 0.24, 0.252], + [1.234, 0.284, 0.286], + [1.549, 0.766, 0.754], + [2.515, 1.36, 1.361], + [0.294, 0.12, 0.122], + [0.366, 0.121, 0.122], + [1.983, 1.322, 1.327], + [2.344, 1.611, 1.61], + [0.965, 0.502, 0.501], + [1.035, 0.604, 0.61], + [2.426, 1.349, 1.336], + [3.104, 1.836, 1.868], + [2.228, 1.818, 1.845], + [1.605, 0.766, 0.776], + [4.525, 3.456, 3.415], + [3.538, 2.552, 2.597], + [14.928, 14.077, 14.224], + [1.01, 0.333, 0.331], + [9.628, 1.796, 1.831], + [11.422, 2.2, 2.187], + [21.722, 5.139, 3.802], + [71.46, 72.825, 73.405], + [2.552, 1.316, 1.329], + [2.008, 0.91, 0.932], + [2.546, 1.328, 1.319], + [9.755, 2.266, 2.233], + [11.322, 7.853, 7.611], + [0.375, 0.192, 0.19], + [2.77, 2.146, 2.142], + [5.974, 2.489, 2.502], + [22.535, 20.532, 20.728], + [20.264, 17.266, 18.3], + [21.65, 18.09, 18.318], + [0.996, 0.747, 0.739], + [0.47, 0.186, 0.186], + [0.324, 0.133, 0.139], + [0.454, 0.136, 0.137], + [0.766, 0.396, 0.404], + [0.365, 0.098, 0.106], + [0.34, 0.095, 0.096], + [0.315, 0.082, 0.086] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c6a.large.json b/clickhouse-parquet-baseline/results/20260817/c6a.large.json new file mode 100644 index 0000000000..78df78a631 --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c6a.large.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c6a.large", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.16, 0.04, 0.039], + [0.485, 0.274, 0.275], + [0.892, 0.595, 0.586], + [1.6, 0.872, 0.894], + [2.648, 1.997, 2.023], + [4.248, 3.362, 3.397], + [0.507, 0.342, 0.337], + [0.512, 0.289, 0.292], + [4.073, 3.858, 3.882], + [4.891, 4.725, 4.577], + [2.042, 1.477, 1.447], + [2.297, 1.748, 1.767], + [4.902, 4.162, 4.102], + [7.208, 6.288, 6.184], + [6.245, 5.62, 5.661], + [2.956, 2.411, 2.361], + [22.427, 22.395, 22.566], + [16.076, 15.98, 16.079], + [41.938, 41.786, 41.246], + [1.362, 0.747, 0.745], + [18.824, 9.698, 9.898], + [19.31, 12.267, 11.234], + [28.936, 31.632, 30.77], + [59.51, 59.752, 59.356], + [4.801, 3.696, 3.683], + [3.595, 2.476, 2.491], + [4.96, 3.623, 3.726], + [20.203, 14.865, 15.028], + [25.557, 24.187, 24.466], + [0.686, 0.402, 0.399], + [6.12, 5.277, 5.272], + [8.823, 6.45, 6.579], + [53.622, 53.429, 54.013], + [45.799, 55.157, 45.652], + [46.028, 47.135, 51.357], + [2.32, 2.066, 2.082], + [0.621, 0.28, 0.276], + [0.422, 0.195, 0.2], + [0.517, 0.136, 0.137], + [0.995, 0.595, 0.591], + [0.383, 0.125, 0.126], + [0.351, 0.111, 0.113], + [0.32, 0.096, 0.094] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/c6a.xlarge.json b/clickhouse-parquet-baseline/results/20260817/c6a.xlarge.json new file mode 100644 index 0000000000..7e9eb7501e --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/c6a.xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "c6a.xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 1, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.134, 0.034, 0.035], + [0.306, 0.108, 0.111], + [0.419, 0.231, 0.227], + [1.282, 0.264, 0.262], + [1.593, 0.745, 0.743], + [2.514, 1.391, 1.36], + [0.285, 0.109, 0.112], + [0.346, 0.102, 0.104], + [2.051, 1.295, 1.307], + [2.346, 1.561, 1.566], + [0.937, 0.494, 0.489], + [1.034, 0.595, 0.605], + [2.44, 1.333, 1.332], + [2.595, 1.806, 1.807], + [2.24, 1.798, 1.813], + [1.602, 0.772, 0.773], + [4.488, 3.359, 3.386], + [3.603, 2.499, 2.493], + [15.192, 14.547, 14.328], + [1.004, 0.323, 0.32], + [11.932, 3.378, 3.382], + [12.29, 4.123, 4.068], + [21.651, 6.302, 6.448], + [57.158, 54.633, 43.482], + [2.523, 1.295, 1.296], + [1.989, 0.908, 0.905], + [2.529, 1.306, 1.302], + [9.668, 3.248, 3.358], + [11.252, 4.395, 4.405], + [0.407, 0.182, 0.177], + [2.732, 2.109, 2.114], + [5.958, 2.474, 2.447], + [22.171, 20.313, 20.293], + [23.253, 22.021, 18.269], + [23.506, 16.884, 17.261], + [1.014, 0.729, 0.725], + [0.472, 0.156, 0.154], + [0.352, 0.105, 0.112], + [0.482, 0.104, 0.105], + [0.744, 0.267, 0.273], + [0.346, 0.081, 0.08], + [0.329, 0.08, 0.079], + [0.296, 0.064, 0.065] +] + } + \ No newline at end of file From 041a0201957d3b91704e9fb668634df0e281d187 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 05:50:52 +0000 Subject: [PATCH 4/7] Add benchmark results for clickhouse-parquet-104431, clickhouse-parquet-baseline (t3a.small) --- .../results/20260817/t3a.small.json | 60 +++++++++++++++++++ .../results/20260817/t3a.small.json | 60 +++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 clickhouse-parquet-104431/results/20260817/t3a.small.json create mode 100644 clickhouse-parquet-baseline/results/20260817/t3a.small.json diff --git a/clickhouse-parquet-104431/results/20260817/t3a.small.json b/clickhouse-parquet-104431/results/20260817/t3a.small.json new file mode 100644 index 0000000000..fa75209bda --- /dev/null +++ b/clickhouse-parquet-104431/results/20260817/t3a.small.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431", + "date": "2026-08-17", + "machine": "t3a.small", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.208, 0.074, 0.086], + [0.703, 0.497, 0.5], + [1.253, 0.975, 0.993], + [2.293, 1.482, 1.478], + [4.112, 3.345, 3.36], + [6.551, 6.148, 6.101], + [0.768, 0.584, 0.581], + [0.754, 0.547, 0.543], + [11.018, 11.038, 10.971], + [12.913, 12.245, 12.348], + [3.201, 2.469, 2.467], + [3.578, 2.932, 2.958], + [16.641, 15.766, 15.361], + [25.28, 24.335, 24.758], + [20.286, 19.426, 19.411], + [9.148, 8.858, 8.855], + [52.516, 52.258, 51.648], + [34.641, 34.758, 35.662], + [97.972, 95.618, 103.757], + [1.998, 1.306, 1.377], + [26.365, 27.497, 27.201], + [31.923, 31.59, 30.607], + [41.204, 41.767, 41.272], + [null, null, null], + [7.513, 5.934, 5.841], + [5.174, 3.966, 4.075], + [7.111, 5.985, 6.052], + [29.55, 30.989, 31.469], + [52.591, 52.954, 68.567], + [1.008, 0.678, 0.677], + [10.671, 9.71, 9.67], + [24.554, 30.406, 24.211], + [123.595, 122.084, 121.006], + [95.211, 114.308, 93.765], + [93.631, 93.446, 94.958], + [3.728, 3.667, 3.635], + [0.907, 0.528, 0.522], + [0.596, 0.364, 0.343], + [0.65, 0.258, 0.261], + [1.538, 1.133, 1.145], + [0.486, 0.218, 0.228], + [0.483, 0.222, 0.248], + [0.432, 0.189, 0.197] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-baseline/results/20260817/t3a.small.json b/clickhouse-parquet-baseline/results/20260817/t3a.small.json new file mode 100644 index 0000000000..bd35764cc6 --- /dev/null +++ b/clickhouse-parquet-baseline/results/20260817/t3a.small.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) master baseline", + "date": "2026-08-17", + "machine": "t3a.small", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.206, 0.086, 0.085], + [0.685, 0.495, 0.443], + [1.215, 0.98, 0.979], + [2.213, 1.497, 1.445], + [4.157, 3.357, 3.33], + [6.768, 6.125, 6.247], + [0.792, 0.594, 0.591], + [0.74, 0.516, 0.514], + [11.436, 11.476, 11.681], + [12.75, 12.801, 12.425], + [3.075, 2.388, 2.357], + [3.686, 2.907, 2.864], + [16.282, 16.136, 15.681], + [25.363, 25.365, 25.738], + [20.069, 20.46, 21.154], + [10.841, 11.2, 10.393], + [59.29, 58.05, 54.694], + [37.739, 36.566, 36.026], + [106.403, 106.917, 115.184], + [2.161, 1.487, 1.399], + [26.934, 26.772, 28.084], + [31.932, 32.228, 32.45], + [43.218, 47.665, 46.749], + [null, null, null], + [7.358, 6.118, 6.233], + [5.599, 4.032, 4.052], + [7.302, 6.341, 6.496], + [31.973, 33.262, 33.617], + [59.067, 58.566, 71.547], + [1.021, 0.74, 0.711], + [11.06, 9.89, 9.946], + [25.87, 41.413, 26.421], + [135.632, 134.931, 129.767], + [108.277, 100.103, 98.481], + [111.773, 98.269, 107.185], + [3.78, 3.718, 3.716], + [0.856, 0.499, 0.499], + [0.696, 0.367, 0.342], + [0.731, 0.26, 0.251], + [1.73, 1.23, 1.307], + [0.53, 0.233, 0.229], + [0.46, 0.228, 0.215], + [0.435, 0.182, 0.196] +] + } + \ No newline at end of file From 03e45ffe27f5127e9b3cef349715b1f676c0d791 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Mon, 17 Aug 2026 05:59:49 +0000 Subject: [PATCH 5/7] Add a within-binary control: the pull request's binary with the split off `clickhouse-parquet-104431-nosplit` runs the same pinned #104431 binary as `clickhouse-parquet-104431`, with `input_format_parquet_min_bytes_to_split` raised to 1 PB so no read clears the floor. The decision still runs - the pull request computes the projected read size, and so parses the footer, before comparing it against the floor - so the three directories decompose the difference: baseline -> nosplit cost of making the split decision nosplit -> 104431 effect of actually splitting Co-Authored-By: Claude Fable 5 --- .../benchmark.sh | 9 ++ clickhouse-parquet-104431-nosplit/check | 4 + clickhouse-parquet-104431-nosplit/create.sql | 109 ++++++++++++++++++ clickhouse-parquet-104431-nosplit/data-size | 4 + clickhouse-parquet-104431-nosplit/install | 36 ++++++ clickhouse-parquet-104431-nosplit/load | 7 ++ clickhouse-parquet-104431-nosplit/queries.sql | 43 +++++++ clickhouse-parquet-104431-nosplit/query | 20 ++++ clickhouse-parquet-104431-nosplit/start | 3 + clickhouse-parquet-104431-nosplit/stop | 3 + .../template.json | 13 +++ 11 files changed, 251 insertions(+) create mode 100755 clickhouse-parquet-104431-nosplit/benchmark.sh create mode 100755 clickhouse-parquet-104431-nosplit/check create mode 100644 clickhouse-parquet-104431-nosplit/create.sql create mode 100755 clickhouse-parquet-104431-nosplit/data-size create mode 100755 clickhouse-parquet-104431-nosplit/install create mode 100755 clickhouse-parquet-104431-nosplit/load create mode 100644 clickhouse-parquet-104431-nosplit/queries.sql create mode 100755 clickhouse-parquet-104431-nosplit/query create mode 100755 clickhouse-parquet-104431-nosplit/start create mode 100755 clickhouse-parquet-104431-nosplit/stop create mode 100644 clickhouse-parquet-104431-nosplit/template.json diff --git a/clickhouse-parquet-104431-nosplit/benchmark.sh b/clickhouse-parquet-104431-nosplit/benchmark.sh new file mode 100755 index 0000000000..fb3b4d1318 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/benchmark.sh @@ -0,0 +1,9 @@ +#!/bin/bash +export BENCH_DOWNLOAD_SCRIPT="download-hits-parquet-single" +export BENCH_RESTARTABLE=no +# Single-process engine: each query forks a fresh full-machine process with no +# shared scheduler across connections, so the concurrent-QPS test only +# oversubscribes RAM rather than measuring throughput. Skip it by default; +# override BENCH_CONCURRENT_DURATION to re-enable. See issue #946. +export BENCH_CONCURRENT_DURATION="${BENCH_CONCURRENT_DURATION:-0}" +exec ../lib/benchmark-common.sh diff --git a/clickhouse-parquet-104431-nosplit/check b/clickhouse-parquet-104431-nosplit/check new file mode 100755 index 0000000000..86d2609b68 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/check @@ -0,0 +1,4 @@ +#!/bin/bash +set -e + +./clickhouse local --query "SELECT 1" >/dev/null diff --git a/clickhouse-parquet-104431-nosplit/create.sql b/clickhouse-parquet-104431-nosplit/create.sql new file mode 100644 index 0000000000..d2a4e5d65f --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/create.sql @@ -0,0 +1,109 @@ +CREATE TABLE hits +( + WatchID BIGINT NOT NULL, + JavaEnable SMALLINT NOT NULL, + Title TEXT NOT NULL, + GoodEvent SMALLINT NOT NULL, + EventTime TIMESTAMP NOT NULL, + EventDate Date NOT NULL, + CounterID INTEGER NOT NULL, + ClientIP INTEGER NOT NULL, + RegionID INTEGER NOT NULL, + UserID BIGINT NOT NULL, + CounterClass SMALLINT NOT NULL, + OS SMALLINT NOT NULL, + UserAgent SMALLINT NOT NULL, + URL TEXT NOT NULL, + Referer TEXT NOT NULL, + IsRefresh SMALLINT NOT NULL, + RefererCategoryID SMALLINT NOT NULL, + RefererRegionID INTEGER NOT NULL, + URLCategoryID SMALLINT NOT NULL, + URLRegionID INTEGER NOT NULL, + ResolutionWidth SMALLINT NOT NULL, + ResolutionHeight SMALLINT NOT NULL, + ResolutionDepth SMALLINT NOT NULL, + FlashMajor SMALLINT NOT NULL, + FlashMinor SMALLINT NOT NULL, + FlashMinor2 TEXT NOT NULL, + NetMajor SMALLINT NOT NULL, + NetMinor SMALLINT NOT NULL, + UserAgentMajor SMALLINT NOT NULL, + UserAgentMinor VARCHAR(255) NOT NULL, + CookieEnable SMALLINT NOT NULL, + JavascriptEnable SMALLINT NOT NULL, + IsMobile SMALLINT NOT NULL, + MobilePhone SMALLINT NOT NULL, + MobilePhoneModel TEXT NOT NULL, + Params TEXT NOT NULL, + IPNetworkID INTEGER NOT NULL, + TraficSourceID SMALLINT NOT NULL, + SearchEngineID SMALLINT NOT NULL, + SearchPhrase TEXT NOT NULL, + AdvEngineID SMALLINT NOT NULL, + IsArtifical SMALLINT NOT NULL, + WindowClientWidth SMALLINT NOT NULL, + WindowClientHeight SMALLINT NOT NULL, + ClientTimeZone SMALLINT NOT NULL, + ClientEventTime TIMESTAMP NOT NULL, + SilverlightVersion1 SMALLINT NOT NULL, + SilverlightVersion2 SMALLINT NOT NULL, + SilverlightVersion3 INTEGER NOT NULL, + SilverlightVersion4 SMALLINT NOT NULL, + PageCharset TEXT NOT NULL, + CodeVersion INTEGER NOT NULL, + IsLink SMALLINT NOT NULL, + IsDownload SMALLINT NOT NULL, + IsNotBounce SMALLINT NOT NULL, + FUniqID BIGINT NOT NULL, + OriginalURL TEXT NOT NULL, + HID INTEGER NOT NULL, + IsOldCounter SMALLINT NOT NULL, + IsEvent SMALLINT NOT NULL, + IsParameter SMALLINT NOT NULL, + DontCountHits SMALLINT NOT NULL, + WithHash SMALLINT NOT NULL, + HitColor CHAR NOT NULL, + LocalEventTime TIMESTAMP NOT NULL, + Age SMALLINT NOT NULL, + Sex SMALLINT NOT NULL, + Income SMALLINT NOT NULL, + Interests SMALLINT NOT NULL, + Robotness SMALLINT NOT NULL, + RemoteIP INTEGER NOT NULL, + WindowName INTEGER NOT NULL, + OpenerName INTEGER NOT NULL, + HistoryLength SMALLINT NOT NULL, + BrowserLanguage TEXT NOT NULL, + BrowserCountry TEXT NOT NULL, + SocialNetwork TEXT NOT NULL, + SocialAction TEXT NOT NULL, + HTTPError SMALLINT NOT NULL, + SendTiming INTEGER NOT NULL, + DNSTiming INTEGER NOT NULL, + ConnectTiming INTEGER NOT NULL, + ResponseStartTiming INTEGER NOT NULL, + ResponseEndTiming INTEGER NOT NULL, + FetchTiming INTEGER NOT NULL, + SocialSourceNetworkID SMALLINT NOT NULL, + SocialSourcePage TEXT NOT NULL, + ParamPrice BIGINT NOT NULL, + ParamOrderID TEXT NOT NULL, + ParamCurrency TEXT NOT NULL, + ParamCurrencyID SMALLINT NOT NULL, + OpenstatServiceName TEXT NOT NULL, + OpenstatCampaignID TEXT NOT NULL, + OpenstatAdID TEXT NOT NULL, + OpenstatSourceID TEXT NOT NULL, + UTMSource TEXT NOT NULL, + UTMMedium TEXT NOT NULL, + UTMCampaign TEXT NOT NULL, + UTMContent TEXT NOT NULL, + UTMTerm TEXT NOT NULL, + FromTag TEXT NOT NULL, + HasGCLID SMALLINT NOT NULL, + RefererHash BIGINT NOT NULL, + URLHash BIGINT NOT NULL, + CLID INTEGER NOT NULL +) +ENGINE = File(Parquet, 'hits.parquet'); diff --git a/clickhouse-parquet-104431-nosplit/data-size b/clickhouse-parquet-104431-nosplit/data-size new file mode 100755 index 0000000000..1a38db62ca --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/data-size @@ -0,0 +1,4 @@ +#!/bin/bash +set -e + +du -bcs hits.parquet | awk 'END { print $1 }' diff --git a/clickhouse-parquet-104431-nosplit/install b/clickhouse-parquet-104431-nosplit/install new file mode 100755 index 0000000000..9abde81152 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/install @@ -0,0 +1,36 @@ +#!/bin/bash +set -e -o pipefail + +# Same as clickhouse-parquet, except that the binary is not the latest release +# but a pinned RelWithDebInfo build from ClickHouse CI, so that this directory +# measures one specific pull request: +# +# https://github.com/ClickHouse/ClickHouse/pull/104431 +# "Parallelize reads from a single Parquet file in StorageFile, again" +# +# head 07303b95365362daace76759e4c51e39efefd25a, which CI built as the merge +# commit e350489c261768cbc0679b720e24ee0d97d9290c +# ("Merge 07303b95... into aec8b1d5..." modulo test-only commits). +# +# clickhouse-parquet-baseline pins the corresponding master build, so the two +# directories differ only by the pull request. + +# Identical pin to clickhouse-parquet-104431; only `query` differs. +BUILD="https://clickhouse-builds.s3.amazonaws.com/PRs/104431/07303b95365362daace76759e4c51e39efefd25a" + +case "$(uname -m)" in + x86_64) url="${BUILD}/build_amd_release/clickhouse";; + aarch64) url="${BUILD}/build_arm_release/clickhouse";; + *) echo "No pinned build for $(uname -m)" >&2; exit 1;; +esac + +if [ ! -x ./clickhouse ]; then + curl -fsSL --retry 10 --retry-delay 60 --retry-all-errors -o clickhouse "$url" + chmod +x clickhouse +fi + +# Record in the log which binary is actually being measured. +./clickhouse local --query " + SELECT 'Binary: ' || arrayStringConcat(groupArray(name || '=' || value), ' ') + FROM system.build_options + WHERE name IN ('VERSION_DESCRIBE', 'GIT_HASH', 'BUILD_TYPE')" diff --git a/clickhouse-parquet-104431-nosplit/load b/clickhouse-parquet-104431-nosplit/load new file mode 100755 index 0000000000..0d7d5fc290 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/load @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +# clickhouse-local with File(Parquet) engine reads the parquet file in place, +# so there's no separate ingest step. The "load" is implicit — just keep the +# downloaded hits.parquet in this directory. +sync diff --git a/clickhouse-parquet-104431-nosplit/queries.sql b/clickhouse-parquet-104431-nosplit/queries.sql new file mode 100644 index 0000000000..31f65fc898 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/queries.sql @@ -0,0 +1,43 @@ +SELECT COUNT(*) FROM hits; +SELECT COUNT(*) FROM hits WHERE AdvEngineID <> 0; +SELECT SUM(AdvEngineID), COUNT(*), AVG(ResolutionWidth) FROM hits; +SELECT AVG(UserID) FROM hits; +SELECT COUNT(DISTINCT UserID) FROM hits; +SELECT COUNT(DISTINCT SearchPhrase) FROM hits; +SELECT MIN(EventDate), MAX(EventDate) FROM hits; +SELECT AdvEngineID, COUNT(*) FROM hits WHERE AdvEngineID <> 0 GROUP BY AdvEngineID ORDER BY COUNT(*) DESC; +SELECT RegionID, COUNT(DISTINCT UserID) AS u FROM hits GROUP BY RegionID ORDER BY u DESC LIMIT 10; +SELECT RegionID, SUM(AdvEngineID), COUNT(*) AS c, AVG(ResolutionWidth), COUNT(DISTINCT UserID) FROM hits GROUP BY RegionID ORDER BY c DESC LIMIT 10; +SELECT MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT MobilePhone, MobilePhoneModel, COUNT(DISTINCT UserID) AS u FROM hits WHERE MobilePhoneModel <> '' GROUP BY MobilePhone, MobilePhoneModel ORDER BY u DESC LIMIT 10; +SELECT SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, COUNT(DISTINCT UserID) AS u FROM hits WHERE SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY u DESC LIMIT 10; +SELECT SearchEngineID, SearchPhrase, COUNT(*) AS c FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT UserID, COUNT(*) FROM hits GROUP BY UserID ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, SearchPhrase LIMIT 10; +SELECT UserID, extract(minute FROM EventTime) AS m, SearchPhrase, COUNT(*) FROM hits GROUP BY UserID, m, SearchPhrase ORDER BY COUNT(*) DESC LIMIT 10; +SELECT UserID FROM hits WHERE UserID = 435090932899640449; +SELECT COUNT(*) FROM hits WHERE URL LIKE '%google%'; +SELECT SearchPhrase, MIN(URL), COUNT(*) AS c FROM hits WHERE URL LIKE '%google%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT SearchPhrase, MIN(URL), MIN(Title), COUNT(*) AS c, COUNT(DISTINCT UserID) FROM hits WHERE Title LIKE '%Google%' AND URL NOT LIKE '%.google.%' AND SearchPhrase <> '' GROUP BY SearchPhrase ORDER BY c DESC LIMIT 10; +SELECT * FROM hits WHERE URL LIKE '%google%' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY SearchPhrase LIMIT 10; +SELECT SearchPhrase FROM hits WHERE SearchPhrase <> '' ORDER BY EventTime, SearchPhrase LIMIT 10; +SELECT CounterID, AVG(length(URL)) AS l, COUNT(*) AS c FROM hits WHERE URL <> '' GROUP BY CounterID HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT REGEXP_REPLACE(Referer, '^https?://(?:www\.)?([^/]+)/.*$', '\1') AS k, AVG(length(Referer)) AS l, COUNT(*) AS c, MIN(Referer) FROM hits WHERE Referer <> '' GROUP BY k HAVING COUNT(*) > 100000 ORDER BY l DESC LIMIT 25; +SELECT SUM(ResolutionWidth), SUM(ResolutionWidth + 1), SUM(ResolutionWidth + 2), SUM(ResolutionWidth + 3), SUM(ResolutionWidth + 4), SUM(ResolutionWidth + 5), SUM(ResolutionWidth + 6), SUM(ResolutionWidth + 7), SUM(ResolutionWidth + 8), SUM(ResolutionWidth + 9), SUM(ResolutionWidth + 10), SUM(ResolutionWidth + 11), SUM(ResolutionWidth + 12), SUM(ResolutionWidth + 13), SUM(ResolutionWidth + 14), SUM(ResolutionWidth + 15), SUM(ResolutionWidth + 16), SUM(ResolutionWidth + 17), SUM(ResolutionWidth + 18), SUM(ResolutionWidth + 19), SUM(ResolutionWidth + 20), SUM(ResolutionWidth + 21), SUM(ResolutionWidth + 22), SUM(ResolutionWidth + 23), SUM(ResolutionWidth + 24), SUM(ResolutionWidth + 25), SUM(ResolutionWidth + 26), SUM(ResolutionWidth + 27), SUM(ResolutionWidth + 28), SUM(ResolutionWidth + 29), SUM(ResolutionWidth + 30), SUM(ResolutionWidth + 31), SUM(ResolutionWidth + 32), SUM(ResolutionWidth + 33), SUM(ResolutionWidth + 34), SUM(ResolutionWidth + 35), SUM(ResolutionWidth + 36), SUM(ResolutionWidth + 37), SUM(ResolutionWidth + 38), SUM(ResolutionWidth + 39), SUM(ResolutionWidth + 40), SUM(ResolutionWidth + 41), SUM(ResolutionWidth + 42), SUM(ResolutionWidth + 43), SUM(ResolutionWidth + 44), SUM(ResolutionWidth + 45), SUM(ResolutionWidth + 46), SUM(ResolutionWidth + 47), SUM(ResolutionWidth + 48), SUM(ResolutionWidth + 49), SUM(ResolutionWidth + 50), SUM(ResolutionWidth + 51), SUM(ResolutionWidth + 52), SUM(ResolutionWidth + 53), SUM(ResolutionWidth + 54), SUM(ResolutionWidth + 55), SUM(ResolutionWidth + 56), SUM(ResolutionWidth + 57), SUM(ResolutionWidth + 58), SUM(ResolutionWidth + 59), SUM(ResolutionWidth + 60), SUM(ResolutionWidth + 61), SUM(ResolutionWidth + 62), SUM(ResolutionWidth + 63), SUM(ResolutionWidth + 64), SUM(ResolutionWidth + 65), SUM(ResolutionWidth + 66), SUM(ResolutionWidth + 67), SUM(ResolutionWidth + 68), SUM(ResolutionWidth + 69), SUM(ResolutionWidth + 70), SUM(ResolutionWidth + 71), SUM(ResolutionWidth + 72), SUM(ResolutionWidth + 73), SUM(ResolutionWidth + 74), SUM(ResolutionWidth + 75), SUM(ResolutionWidth + 76), SUM(ResolutionWidth + 77), SUM(ResolutionWidth + 78), SUM(ResolutionWidth + 79), SUM(ResolutionWidth + 80), SUM(ResolutionWidth + 81), SUM(ResolutionWidth + 82), SUM(ResolutionWidth + 83), SUM(ResolutionWidth + 84), SUM(ResolutionWidth + 85), SUM(ResolutionWidth + 86), SUM(ResolutionWidth + 87), SUM(ResolutionWidth + 88), SUM(ResolutionWidth + 89) FROM hits; +SELECT SearchEngineID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY SearchEngineID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits WHERE SearchPhrase <> '' GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT WatchID, ClientIP, COUNT(*) AS c, SUM(IsRefresh), AVG(ResolutionWidth) FROM hits GROUP BY WatchID, ClientIP ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS c FROM hits GROUP BY URL ORDER BY c DESC LIMIT 10; +SELECT 1, URL, COUNT(*) AS c FROM hits GROUP BY 1, URL ORDER BY c DESC LIMIT 10; +SELECT ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3, COUNT(*) AS c FROM hits GROUP BY ClientIP, ClientIP - 1, ClientIP - 2, ClientIP - 3 ORDER BY c DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND URL <> '' GROUP BY URL ORDER BY PageViews DESC LIMIT 10; +SELECT Title, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND DontCountHits = 0 AND IsRefresh = 0 AND Title <> '' GROUP BY Title ORDER BY PageViews DESC LIMIT 10; +SELECT URL, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND IsLink <> 0 AND IsDownload = 0 GROUP BY URL ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; +SELECT TraficSourceID, SearchEngineID, AdvEngineID, CASE WHEN (SearchEngineID = 0 AND AdvEngineID = 0) THEN Referer ELSE '' END AS Src, URL AS Dst, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 GROUP BY TraficSourceID, SearchEngineID, AdvEngineID, Src, Dst ORDER BY PageViews DESC LIMIT 10 OFFSET 1000; +SELECT URLHash, EventDate, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND TraficSourceID IN (-1, 6) AND RefererHash = 3594120000172545465 GROUP BY URLHash, EventDate ORDER BY PageViews DESC LIMIT 10 OFFSET 100; +SELECT WindowClientWidth, WindowClientHeight, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-01' AND EventDate <= '2013-07-31' AND IsRefresh = 0 AND DontCountHits = 0 AND URLHash = 2868770270353813622 GROUP BY WindowClientWidth, WindowClientHeight ORDER BY PageViews DESC LIMIT 10 OFFSET 10000; +SELECT DATE_TRUNC('minute', EventTime) AS M, COUNT(*) AS PageViews FROM hits WHERE CounterID = 62 AND EventDate >= '2013-07-14' AND EventDate <= '2013-07-15' AND IsRefresh = 0 AND DontCountHits = 0 GROUP BY DATE_TRUNC('minute', EventTime) ORDER BY DATE_TRUNC('minute', EventTime) LIMIT 10 OFFSET 1000; diff --git a/clickhouse-parquet-104431-nosplit/query b/clickhouse-parquet-104431-nosplit/query new file mode 100755 index 0000000000..9be81a0f58 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/query @@ -0,0 +1,20 @@ +#!/bin/bash +# Reads a SQL query from stdin, runs it via clickhouse-local with the table +# definition from create.sql prepended. Stdout: query result. Stderr: query +# runtime in fractional seconds on the last line. Exit non-zero on error. +# +# Same binary as clickhouse-parquet-104431, but with the single-file Parquet +# split switched off: no read is large enough to clear a 1 PB floor. The +# decision itself still runs - the pull request computes the projected read +# size, and therefore parses the footer, before comparing it against the floor +# - so this directory holds the plan-time cost of the decision while removing +# its effect, and the three directories decompose as +# +# baseline -> nosplit cost of making the split decision +# nosplit -> 104431 effect of actually splitting +set -e + +query=$(cat) +./clickhouse local --time --format=Pretty \ + --input_format_parquet_min_bytes_to_split=1000000000000000 \ + --query="$(cat create.sql); ${query}" diff --git a/clickhouse-parquet-104431-nosplit/start b/clickhouse-parquet-104431-nosplit/start new file mode 100755 index 0000000000..a726d93477 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/start @@ -0,0 +1,3 @@ +#!/bin/bash +# clickhouse-local is invoked per-query — no daemon to start. +exit 0 diff --git a/clickhouse-parquet-104431-nosplit/stop b/clickhouse-parquet-104431-nosplit/stop new file mode 100755 index 0000000000..7661285688 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/stop @@ -0,0 +1,3 @@ +#!/bin/bash +# clickhouse-local is invoked per-query — no daemon to stop. +exit 0 diff --git a/clickhouse-parquet-104431-nosplit/template.json b/clickhouse-parquet-104431-nosplit/template.json new file mode 100644 index 0000000000..541c29790a --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/template.json @@ -0,0 +1,13 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": [ + "C++", + "column-oriented", + "embedded", + "stateless", + "ClickHouse derivative" + ] +} From fc8df78e8b0ad175ca653faa70100e7e8e9c100d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 06:20:38 +0000 Subject: [PATCH 6/7] Add benchmark results for clickhouse-parquet-104431-nosplit (c6a.2xlarge, c6a.4xlarge, c6a.metal, c6a.xlarge, c7a.metal-48xl, c8g.4xlarge, c8g.metal-48xl) --- .../results/20260817/c6a.2xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c6a.4xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c6a.metal.json | 60 +++++++++++++++++++ .../results/20260817/c6a.xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c7a.metal-48xl.json | 60 +++++++++++++++++++ .../results/20260817/c8g.4xlarge.json | 60 +++++++++++++++++++ .../results/20260817/c8g.metal-48xl.json | 60 +++++++++++++++++++ 7 files changed, 420 insertions(+) create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c6a.2xlarge.json create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c6a.4xlarge.json create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c6a.metal.json create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c6a.xlarge.json create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c7a.metal-48xl.json create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c8g.4xlarge.json create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c8g.metal-48xl.json diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c6a.2xlarge.json b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.2xlarge.json new file mode 100644 index 0000000000..f2ef395511 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.2xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c6a.2xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 4, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.131, 0.035, 0.035], + [0.231, 0.092, 0.1], + [0.377, 0.178, 0.166], + [0.549, 0.176, 0.172], + [0.822, 0.544, 0.549], + [1.253, 0.759, 0.771], + [0.284, 0.103, 0.102], + [0.295, 0.103, 0.102], + [1.298, 0.794, 0.785], + [1.443, 0.944, 0.925], + [0.796, 0.345, 0.345], + [0.848, 0.393, 0.394], + [1.299, 0.743, 0.752], + [2.38, 1.171, 1.156], + [1.548, 1.087, 1.079], + [0.771, 0.489, 0.512], + [2.858, 2.091, 2.114], + [2.303, 1.605, 1.596], + [5.24, 3.911, 3.915], + [0.588, 0.171, 0.188], + [9.606, 1.688, 1.694], + [11.189, 1.993, 2.026], + [21.608, 3.137, 3.184], + [54.761, 43.317, 16.144], + [2.519, 0.86, 0.863], + [1.032, 0.472, 0.464], + [2.516, 0.859, 0.858], + [9.682, 2.307, 2.247], + [8.548, 2.943, 2.723], + [0.356, 0.148, 0.149], + [2.357, 1.252, 1.235], + [5.902, 1.441, 1.415], + [7.099, 4.096, 4.06], + [19.729, 15.839, 15.763], + [19.791, 15.497, 15.792], + [0.719, 0.434, 0.442], + [0.43, 0.144, 0.136], + [0.315, 0.116, 0.112], + [0.389, 0.104, 0.102], + [0.536, 0.208, 0.205], + [0.325, 0.091, 0.092], + [0.313, 0.089, 0.09], + [0.299, 0.08, 0.079] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c6a.4xlarge.json b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.4xlarge.json new file mode 100644 index 0000000000..5d88a96b74 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.4xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c6a.4xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 4, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.137, 0.035, 0.035], + [0.241, 0.086, 0.089], + [0.318, 0.125, 0.125], + [0.701, 0.133, 0.134], + [0.54, 0.36, 0.36], + [0.821, 0.447, 0.447], + [0.231, 0.085, 0.084], + [0.263, 0.089, 0.087], + [0.857, 0.576, 0.567], + [1.257, 0.648, 0.648], + [0.637, 0.252, 0.251], + [0.671, 0.283, 0.28], + [0.944, 0.542, 0.537], + [2.331, 0.802, 0.812], + [1.04, 0.709, 0.709], + [0.568, 0.397, 0.393], + [2.413, 1.509, 1.51], + [2.036, 1.163, 1.164], + [4.74, 2.812, 2.818], + [0.373, 0.137, 0.139], + [9.51, 1.153, 1.148], + [11.181, 1.301, 1.312], + [21.589, 1.909, 1.892], + [54.59, 4.42, 4.439], + [2.508, 0.495, 0.502], + [0.793, 0.294, 0.291], + [2.507, 0.5, 0.503], + [9.683, 1.841, 1.853], + [8.588, 2.494, 2.731], + [0.296, 0.115, 0.112], + [2.317, 0.733, 0.728], + [5.816, 0.917, 0.915], + [5.913, 2.823, 2.789], + [10.016, 2.899, 2.903], + [10.024, 2.891, 2.901], + [0.481, 0.298, 0.296], + [0.419, 0.133, 0.136], + [0.322, 0.115, 0.115], + [0.437, 0.102, 0.102], + [0.515, 0.16, 0.154], + [0.34, 0.091, 0.087], + [0.326, 0.089, 0.088], + [0.31, 0.079, 0.069] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c6a.metal.json b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.metal.json new file mode 100644 index 0000000000..8f044abc69 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.metal.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c6a.metal", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.149, 0.036, 0.036], + [0.26, 0.096, 0.099], + [0.258, 0.106, 0.105], + [0.464, 0.119, 0.12], + [0.785, 0.182, 0.182], + [1.103, 0.192, 0.194], + [0.224, 0.102, 0.098], + [0.234, 0.105, 0.102], + [0.873, 0.398, 0.423], + [1.307, 0.421, 0.437], + [0.595, 0.195, 0.193], + [0.625, 0.187, 0.193], + [0.83, 0.196, 0.196], + [2.081, 0.303, 0.477], + [0.91, 0.215, 0.22], + [0.4, 0.169, 0.162], + [2.049, 0.322, 0.347], + [2.023, 0.297, 0.291], + [3.892, 0.583, 0.566], + [0.249, 0.09, 0.094], + [9.554, 0.525, 0.507], + [11.169, 0.983, 1.079], + [21.627, 1.38, 1.382], + [54.603, 5.795, 5.751], + [2.487, 0.186, 0.186], + [0.789, 0.147, 0.16], + [2.474, 0.267, 0.185], + [9.715, 1.363, 1.668], + [8.302, 0.889, 0.574], + [0.243, 0.12, 0.114], + [2.244, 0.245, 0.23], + [5.66, 0.285, 0.284], + [4.423, 0.597, 0.614], + [9.722, 0.869, 0.728], + [9.725, 0.896, 1.023], + [0.348, 0.163, 0.161], + [0.392, 0.162, 0.152], + [0.291, 0.116, 0.116], + [0.414, 0.11, 0.125], + [0.445, 0.17, 0.149], + [0.332, 0.098, 0.111], + [0.316, 0.09, 0.102], + [0.292, 0.101, 0.086] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c6a.xlarge.json b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.xlarge.json new file mode 100644 index 0000000000..3e1b344af1 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c6a.xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 1, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.128, 0.035, 0.035], + [0.311, 0.115, 0.132], + [0.455, 0.247, 0.239], + [1.202, 0.277, 0.278], + [1.607, 0.757, 0.755], + [2.594, 1.361, 1.344], + [0.306, 0.119, 0.121], + [0.368, 0.121, 0.129], + [2.041, 1.299, 1.314], + [2.361, 1.589, 1.581], + [0.967, 0.508, 0.512], + [1.067, 0.613, 0.612], + [2.465, 1.344, 1.364], + [2.599, 1.862, 1.823], + [2.238, 1.838, 1.806], + [1.571, 0.764, 0.791], + [4.49, 3.373, 3.421], + [3.671, 2.587, 2.538], + [14.785, 13.94, 13.95], + [1.021, 0.337, 0.335], + [11.938, 3.384, 3.388], + [12.148, 4.123, 4.072], + [21.665, 6.318, 6.401], + [57.354, 51.725, 47.671], + [2.536, 1.309, 1.303], + [2.013, 0.939, 0.919], + [2.565, 1.306, 1.3], + [9.697, 3.302, 3.251], + [11.164, 4.416, 4.461], + [0.441, 0.191, 0.186], + [2.739, 2.155, 2.131], + [5.991, 2.474, 2.449], + [22.149, 20.317, 20.413], + [23.522, 16.931, 17.431], + [23.055, 17.037, 24.408], + [0.998, 0.732, 0.738], + [0.471, 0.175, 0.169], + [0.373, 0.135, 0.128], + [0.516, 0.124, 0.12], + [0.742, 0.28, 0.275], + [0.369, 0.1, 0.097], + [0.347, 0.094, 0.096], + [0.315, 0.088, 0.087] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c7a.metal-48xl.json b/clickhouse-parquet-104431-nosplit/results/20260817/c7a.metal-48xl.json new file mode 100644 index 0000000000..f7cfdc219e --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c7a.metal-48xl.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c7a.metal-48xl", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 1, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.161, 0.039, 0.037], + [0.284, 0.107, 0.104], + [0.296, 0.114, 0.116], + [0.403, 0.111, 0.117], + [0.485, 0.165, 0.163], + [0.876, 0.188, 0.187], + [0.267, 0.102, 0.102], + [0.294, 0.13, 0.125], + [0.897, 0.384, 0.378], + [1.343, 0.397, 0.414], + [0.661, 0.208, 0.206], + [0.685, 0.213, 0.212], + [0.908, 0.189, 0.188], + [2.132, 0.343, 0.346], + [0.973, 0.208, 0.209], + [0.485, 0.166, 0.167], + [2.14, 0.268, 0.267], + [2.121, 0.256, 0.246], + [3.899, 0.686, 0.651], + [0.341, 0.089, 0.1], + [9.594, 0.464, 0.446], + [11.24, 1.276, 1.427], + [21.67, 1.556, 2.693], + [54.694, 8.422, 8.399], + [2.528, 0.396, 0.352], + [0.85, 0.15, 0.151], + [2.531, 0.379, 0.22], + [9.941, 1.772, 2.685], + [8.358, 1.874, 0.439], + [0.307, 0.136, 0.134], + [2.318, 0.374, 0.37], + [5.702, 0.615, 0.595], + [4.257, 0.501, 0.504], + [9.662, 0.631, 0.62], + [9.668, 0.625, 0.59], + [0.405, 0.16, 0.178], + [0.48, 0.172, 0.174], + [0.381, 0.153, 0.159], + [0.461, 0.146, 0.143], + [0.503, 0.178, 0.178], + [0.355, 0.128, 0.13], + [0.35, 0.132, 0.143], + [0.312, 0.119, 0.115] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c8g.4xlarge.json b/clickhouse-parquet-104431-nosplit/results/20260817/c8g.4xlarge.json new file mode 100644 index 0000000000..965fcb9fdc --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c8g.4xlarge.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c8g.4xlarge", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 4, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.098, 0.027, 0.026], + [0.184, 0.068, 0.067], + [0.251, 0.096, 0.096], + [0.34, 0.089, 0.088], + [0.386, 0.185, 0.188], + [0.742, 0.264, 0.263], + [0.179, 0.065, 0.065], + [0.198, 0.07, 0.069], + [0.644, 0.283, 0.28], + [1.107, 0.341, 0.339], + [0.537, 0.192, 0.192], + [0.585, 0.207, 0.211], + [0.807, 0.297, 0.292], + [2.054, 0.417, 0.415], + [0.883, 0.384, 0.384], + [0.403, 0.182, 0.182], + [2.088, 0.593, 0.602], + [1.962, 0.46, 0.461], + [3.992, 1.013, 1.019], + [0.324, 0.077, 0.078], + [9.464, 0.64, 0.635], + [11.102, 0.911, 0.85], + [21.58, 1.43, 1.416], + [54.504, 3.51, 3.567], + [2.463, 0.363, 0.363], + [0.755, 0.216, 0.21], + [2.464, 0.365, 0.354], + [9.622, 0.799, 0.815], + [8.167, 0.966, 0.978], + [0.241, 0.089, 0.089], + [2.235, 0.498, 0.507], + [5.66, 0.563, 0.559], + [4.749, 1.09, 1.1], + [9.658, 1.133, 1.151], + [9.629, 1.126, 1.125], + [0.369, 0.169, 0.17], + [0.337, 0.097, 0.097], + [0.251, 0.08, 0.082], + [0.329, 0.078, 0.079], + [0.401, 0.104, 0.105], + [0.236, 0.07, 0.069], + [0.227, 0.067, 0.066], + [0.205, 0.06, 0.06] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c8g.metal-48xl.json b/clickhouse-parquet-104431-nosplit/results/20260817/c8g.metal-48xl.json new file mode 100644 index 0000000000..ae4fd09079 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c8g.metal-48xl.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c8g.metal-48xl", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 2, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.102, 0.033, 0.033], + [0.183, 0.079, 0.08], + [0.2, 0.08, 0.08], + [0.372, 0.083, 0.081], + [0.409, 0.129, 0.124], + [0.774, 0.135, 0.138], + [0.182, 0.074, 0.074], + [0.206, 0.106, 0.105], + [0.745, 0.291, 0.298], + [1.211, 0.312, 0.319], + [0.564, 0.154, 0.152], + [0.589, 0.151, 0.153], + [0.799, 0.163, 0.16], + [2.023, 0.211, 0.209], + [0.883, 0.199, 0.191], + [0.475, 0.141, 0.146], + [2.026, 0.314, 0.309], + [1.998, 0.288, 0.254], + [3.8, 0.401, 0.376], + [0.268, 0.075, 0.075], + [9.5, 0.312, 0.301], + [11.135, 1.116, 0.948], + [21.596, 1.445, 1.338], + [54.578, 4.562, 4.569], + [2.456, 0.166, 0.156], + [0.758, 0.112, 0.112], + [2.458, 0.158, 0.171], + [9.691, 0.985, 1.03], + [8.145, 0.43, 0.935], + [0.237, 0.12, 0.119], + [2.223, 0.341, 0.287], + [5.633, 0.531, 0.527], + [4.214, 0.413, 0.404], + [9.586, 0.512, 2.137], + [9.622, 0.512, 1.618], + [0.432, 0.124, 0.147], + [0.363, 0.152, 0.145], + [0.286, 0.129, 0.133], + [0.34, 0.13, 0.13], + [0.368, 0.145, 0.145], + [0.263, 0.123, 0.126], + [0.26, 0.12, 0.12], + [0.247, 0.115, 0.112] +] + } + \ No newline at end of file From bd4116e670204670e699b72756730f66944cf824 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 17 Aug 2026 06:58:08 +0000 Subject: [PATCH 7/7] Add benchmark results for clickhouse-parquet-104431-nosplit (c6a.large, t3a.small) --- .../results/20260817/c6a.large.json | 60 +++++++++++++++++++ .../results/20260817/t3a.small.json | 60 +++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/c6a.large.json create mode 100644 clickhouse-parquet-104431-nosplit/results/20260817/t3a.small.json diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/c6a.large.json b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.large.json new file mode 100644 index 0000000000..27d44f47ab --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/c6a.large.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "c6a.large", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.112, 0.04, 0.04], + [0.518, 0.298, 0.3], + [0.888, 0.601, 0.606], + [1.714, 0.941, 0.942], + [2.674, 2.063, 2.045], + [4.272, 3.458, 3.442], + [0.537, 0.361, 0.355], + [0.548, 0.31, 0.325], + [4.225, 3.916, 3.955], + [5.063, 4.725, 4.75], + [2.142, 1.536, 1.55], + [2.354, 1.797, 1.819], + [4.888, 4.231, 4.298], + [7.428, 6.492, 6.363], + [6.201, 5.836, 5.782], + [3.144, 2.474, 2.535], + [23.074, 23.014, 23.183], + [16.748, 16.629, 16.694], + [41.833, 41.655, 42.491], + [1.366, 0.789, 0.716], + [18.926, 10.074, 10.12], + [19.27, 12.713, 11.782], + [29.326, 31.028, 29.169], + [59.509, 59.756, 59.729], + [4.958, 3.759, 3.746], + [3.582, 2.562, 2.521], + [4.968, 3.732, 3.703], + [19.884, 15.073, 15.202], + [25.676, 28.144, 23.805], + [0.707, 0.435, 0.424], + [6.259, 5.39, 5.335], + [8.647, 6.703, 6.638], + [55.427, 54.461, 55.332], + [46.984, 46.832, 47.366], + [45.822, 47.573, 58.87], + [2.346, 2.256, 2.139], + [0.667, 0.322, 0.319], + [0.461, 0.222, 0.228], + [0.552, 0.165, 0.167], + [1.046, 0.613, 0.619], + [0.415, 0.154, 0.154], + [0.378, 0.144, 0.145], + [0.353, 0.124, 0.125] +] + } + \ No newline at end of file diff --git a/clickhouse-parquet-104431-nosplit/results/20260817/t3a.small.json b/clickhouse-parquet-104431-nosplit/results/20260817/t3a.small.json new file mode 100644 index 0000000000..ad513fc551 --- /dev/null +++ b/clickhouse-parquet-104431-nosplit/results/20260817/t3a.small.json @@ -0,0 +1,60 @@ +{ + "system": "ClickHouse (Parquet, single) PR 104431, split off", + "date": "2026-08-17", + "machine": "t3a.small", + "cluster_size": 1, + "proprietary": "no", + "hardware": "cpu", + "tuned": "no", + "tags": ["C++","column-oriented","embedded","stateless","ClickHouse derivative"], + "load_time": 0, + "data_size": 14779976446, + "concurrent_qps": null, + "concurrent_error_ratio": null, + "result": [ + [0.177, 0.07, 0.071], + [0.727, 0.465, 0.475], + [1.237, 0.909, 0.901], + [2.045, 1.366, 1.36], + [3.747, 3.091, 3.05], + [6.158, 5.646, 5.688], + [0.707, 0.556, 0.555], + [0.721, 0.487, 0.457], + [9.844, 9.599, 9.746], + [11.099, 11.065, 10.957], + [2.851, 2.281, 2.264], + [3.249, 2.645, 2.714], + [14.832, 14.213, 14.279], + [22.981, 22.071, 22.03], + [17.997, 17.549, 17.651], + [8.208, 7.705, 7.905], + [47.648, 47.324, 47.49], + [32.068, 32.011, 31.581], + [88.834, 87.635, 91.959], + [1.862, 1.219, 1.24], + [24.384, 24.512, 24.979], + [26.911, 28.354, 28.091], + [38.725, 39.349, 39.618], + [null, null, null], + [7.09, 5.687, 5.703], + [5.045, 3.789, 4.1], + [6.807, 5.671, 5.681], + [29.558, 28.767, 30.55], + [48.085, 58.551, 48.364], + [0.948, 0.658, 0.65], + [10.383, 9.062, 9.094], + [22.091, 42.262, 22.313], + [107.984, 108.296, 107.901], + [109.633, 85.686, 106.569], + [86.068, 85.856, 85.675], + [3.406, 3.247, 3.236], + [0.809, 0.473, 0.467], + [0.55, 0.328, 0.322], + [0.622, 0.233, 0.233], + [1.484, 1.075, 1.006], + [0.458, 0.213, 0.206], + [0.435, 0.204, 0.207], + [0.403, 0.177, 0.186] +] + } + \ No newline at end of file