Trino Benchmark Configuration#
How Trino 483 was configured for the TPC-H SF1000 results on the benchmarking page. The cluster, data and queries are described in Benchmark Environment.
Differences from the other engines#
Trino is a useful reference point, but the setup differs from the other engines in ways that matter:
Warm timings. Each query runs once untimed, then the reported number is the mean of 3 timed iterations. The other engines include the cold first iteration in their mean.
In-memory exchanges. Trino streams data between stages over the network and never writes shuffle files, while Ballista, Spark, and Comet materialize every shuffle on disk. Spilling was disabled, so a query that does not fit in memory would fail rather than slow down (none did).
Partition pruning. Tables are external Hive tables over the same Parquet files with the partition columns declared, so Trino prunes partitions like Spark and Comet do.
No table statistics.
ANALYZEwas not run, so the cost-based optimizer had no row counts or column statistics.Queries. The same SQL text as the Spark harness.
Key |
Value |
|---|---|
Workers |
|
|
|
|
|
|
|
|
|
|
|
|
|
Everything else is left at Trino’s defaults, with no session properties set. No tuning was done beyond this, and the configuration has not been reviewed by Trino experts.
Reproducing#
The Trino numbers were collected with the same harness. It creates external Hive tables over the Parquet files, syncs their partitions, and runs each query once untimed and then three times, one query at a time, through the Trino client, with the settings on this page.