Skip to content

Commit 66116ac

Browse files
committed
docs: add TPC-DS SF100 performance report
1 parent 7afff74 commit 66116ac

9 files changed

Lines changed: 11818 additions & 0 deletions

File tree

.licenserc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ header:
2727
- ".github/PULL_REQUEST_TEMPLATE.md"
2828
- "crates/paimon/tests/**/*.json"
2929
- "crates/paimon/testdata/**"
30+
- "docs/src/benchmark-results/**/*.json"
3031
- "**/go.sum"
3132
- "**/DEPENDENCIES.*.tsv"
3233
- ".devcontainer/devcontainer.json"

docs/README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,18 @@ mkdocs build
5353
```
5454

5555
The output will be in the `docs/site/` directory.
56+
57+
## Performance Report
58+
59+
The TPC-DS SF100 performance report is maintained as
60+
`docs/src/benchmark.md` and is included in the MkDocs navigation. Preview it
61+
as part of the documentation site:
62+
63+
```bash
64+
cd docs
65+
mkdocs serve
66+
```
67+
68+
Then open <http://127.0.0.1:8000/benchmark/>. The raw benchmark reports linked
69+
from the article are stored under `docs/src/benchmark-results/sf100/` and are
70+
copied into the generated site unchanged.

docs/mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ nav:
4949
- Home: index.md
5050
- Getting Started: getting-started.md
5151
- SQL Integration: sql.md
52+
- Performance: benchmark.md
5253
- Go Integration: go-binding.md
5354
- Python Integration: python-binding.md
5455
- Architecture: architecture.md
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
[
2+
{
3+
"schema_version": 1,
4+
"disclosure": "TPC-DS-derived non-TPC benchmark; these results are not official TPC results.",
5+
"engine": "datafusion+paimon-rust",
6+
"datafusion_version": "54.0.0",
7+
"paimon_version": "0.3.0",
8+
"created_unix_ms": 1784635097250,
9+
"source": "paimon",
10+
"runtime": {
11+
"target_partitions": 12,
12+
"batch_size": 8192,
13+
"parquet_pushdown_filters": false,
14+
"memory_limit_bytes": 34359738368,
15+
"spill_dir": null,
16+
"max_spill_bytes": null
17+
},
18+
"query_run": {
19+
"warmup_iterations": 0,
20+
"measured_iterations": 1
21+
},
22+
"warehouse": "/Users/lijingsong/tpcds-benchmark/sf100/paimon-layout-target1-full",
23+
"data_root": "",
24+
"query_dir": "/Users/lijingsong/IdeaProjects/delta-rs/crates/benchmarks/queries/tpcds",
25+
"database": "tpcds",
26+
"queries": [
27+
{
28+
"query": 67,
29+
"path": "/Users/lijingsong/IdeaProjects/delta-rs/crates/benchmarks/queries/tpcds/q67.sql",
30+
"warmup_failures": [],
31+
"iterations": [
32+
{
33+
"iteration": 1,
34+
"logical_planning_ms": 3.6090839999999997,
35+
"physical_planning_ms": 7.041708,
36+
"execution_ms": 11826.774917,
37+
"total_ms": 11837.714957999999,
38+
"output_rows": 0,
39+
"metrics": {
40+
"spill_count": 21,
41+
"spilled_rows": 5505024,
42+
"spilled_bytes": 956801344,
43+
"bytes_scanned": 0,
44+
"operator_peak_memory_bytes": 35344394912
45+
},
46+
"error": "Resources exhausted: Additional allocation failed for ExternalSorterMerge[11] with top memory consumers (across reservations) as:\n ExternalSorter[2]#45(can spill: true) consumed 7.5 GB, peak 7.5 GB,\n ExternalSorter[0]#39(can spill: true) consumed 6.4 GB, peak 6.4 GB,\n ExternalSorter[7]#96(can spill: true) consumed 2.7 GB, peak 3.4 GB,\n ExternalSorterMerge[8]#100(can spill: false) consumed 2.1 GB, peak 2.1 GB,\n ExternalSorterMerge[7]#97(can spill: false) consumed 1816.0 MB, peak 1816.0 MB.\nError: Failed to allocate additional 4.9 MB for ExternalSorterMerge[11] with 642.9 MB already allocated for this reservation - 1827.6 KB remain available for the total memory pool: greedy(used: 32.0 GB, pool_size: 32.0 GB)"
47+
}
48+
]
49+
}
50+
]
51+
},
52+
{
53+
"schema_version": 1,
54+
"disclosure": "TPC-DS-derived non-TPC benchmark; these results are not official TPC results.",
55+
"engine": "datafusion+paimon-rust",
56+
"datafusion_version": "54.0.0",
57+
"paimon_version": "0.3.0",
58+
"created_unix_ms": 1784635113339,
59+
"source": "paimon",
60+
"runtime": {
61+
"target_partitions": 12,
62+
"batch_size": 8192,
63+
"parquet_pushdown_filters": false,
64+
"memory_limit_bytes": 34359738368,
65+
"spill_dir": null,
66+
"max_spill_bytes": null
67+
},
68+
"query_run": {
69+
"warmup_iterations": 0,
70+
"measured_iterations": 1
71+
},
72+
"warehouse": "/Users/lijingsong/tpcds-benchmark/sf100/paimon-layout-target1-full",
73+
"data_root": "",
74+
"query_dir": "/Users/lijingsong/IdeaProjects/delta-rs/crates/benchmarks/queries/tpcds",
75+
"database": "tpcds",
76+
"queries": [
77+
{
78+
"query": 78,
79+
"path": "/Users/lijingsong/IdeaProjects/delta-rs/crates/benchmarks/queries/tpcds/q78.sql",
80+
"warmup_failures": [],
81+
"iterations": [
82+
{
83+
"iteration": 1,
84+
"logical_planning_ms": 6.439042,
85+
"physical_planning_ms": 13.840791999999999,
86+
"execution_ms": 784.511583,
87+
"total_ms": 804.8619590000001,
88+
"output_rows": 0,
89+
"metrics": {
90+
"spill_count": 0,
91+
"spilled_rows": 0,
92+
"spilled_bytes": 0,
93+
"bytes_scanned": 0,
94+
"operator_peak_memory_bytes": 8013078304
95+
},
96+
"error": "Resources exhausted: Additional allocation failed for HashJoinInput[3] with top memory consumers (across reservations) as:\n HashJoinInput[11]#155(can spill: false) consumed 9.6 GB, peak 9.6 GB,\n HashJoinInput[4]#113(can spill: false) consumed 9.3 GB, peak 9.3 GB,\n HashJoinInput[3]#107(can spill: false) consumed 5.3 GB, peak 5.3 GB,\n HashJoinInput[8]#137(can spill: false) consumed 3.8 GB, peak 3.8 GB,\n GroupedHashAggregateStream[1] (sum(catalog_sales.cs_quantity), sum(catalog_sales.cs_wholesale_cost), sum(catalog_sales.cs_sales_price))#82(can spill: true) consumed 627.3 MB, peak 627.3 MB.\nError: Failed to allocate additional 258.0 MB for HashJoinInput[3] with 5.3 GB already allocated for this reservation - 28.8 MB remain available for the total memory pool: greedy(used: 32.0 GB, pool_size: 32.0 GB)"
97+
}
98+
]
99+
}
100+
]
101+
},
102+
{
103+
"schema_version": 1,
104+
"disclosure": "TPC-DS-derived non-TPC benchmark; these results are not official TPC results.",
105+
"engine": "datafusion+paimon-rust",
106+
"datafusion_version": "54.0.0",
107+
"paimon_version": "0.3.0",
108+
"created_unix_ms": 1784635114457,
109+
"source": "paimon",
110+
"runtime": {
111+
"target_partitions": 12,
112+
"batch_size": 8192,
113+
"parquet_pushdown_filters": false,
114+
"memory_limit_bytes": 34359738368,
115+
"spill_dir": null,
116+
"max_spill_bytes": null
117+
},
118+
"query_run": {
119+
"warmup_iterations": 0,
120+
"measured_iterations": 1
121+
},
122+
"warehouse": "/Users/lijingsong/tpcds-benchmark/sf100/paimon-layout-target1-full",
123+
"data_root": "",
124+
"query_dir": "/Users/lijingsong/IdeaProjects/delta-rs/crates/benchmarks/queries/tpcds",
125+
"database": "tpcds",
126+
"queries": [
127+
{
128+
"query": 97,
129+
"path": "/Users/lijingsong/IdeaProjects/delta-rs/crates/benchmarks/queries/tpcds/q97.sql",
130+
"warmup_failures": [],
131+
"iterations": [
132+
{
133+
"iteration": 1,
134+
"logical_planning_ms": 2.5725420000000003,
135+
"physical_planning_ms": 4.651459,
136+
"execution_ms": 289.26275000000004,
137+
"total_ms": 296.52391700000004,
138+
"output_rows": 0,
139+
"metrics": {
140+
"spill_count": 0,
141+
"spilled_rows": 0,
142+
"spilled_bytes": 0,
143+
"bytes_scanned": 0,
144+
"operator_peak_memory_bytes": 3056347136
145+
},
146+
"error": "Resources exhausted: Additional allocation failed for HashJoinInput[10] with top memory consumers (across reservations) as:\n HashJoinInput[0]#5(can spill: false) consumed 5.1 GB, peak 5.1 GB,\n HashJoinInput[7]#15(can spill: false) consumed 2.6 GB, peak 2.6 GB,\n HashJoinInput[1]#32(can spill: false) consumed 2.4 GB, peak 2.4 GB,\n HashJoinInput[2]#65(can spill: false) consumed 1290.0 MB, peak 1290.0 MB,\n HashJoinInput[10]#33(can spill: false) consumed 709.5 MB, peak 709.5 MB.\nError: Failed to allocate additional 64.5 MB for HashJoinInput[10] with 709.5 MB already allocated for this reservation - 47.2 MB remain available for the total memory pool: greedy(used: 32.0 GB, pool_size: 32.0 GB)"
147+
}
148+
]
149+
}
150+
]
151+
}
152+
]

0 commit comments

Comments
 (0)