-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquack_execution_modes.yaml
More file actions
62 lines (59 loc) · 1.74 KB
/
Copy pathquack_execution_modes.yaml
File metadata and controls
62 lines (59 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
meta:
name: "Quack Execution Modes: Attach vs Pushdown vs In-Process"
description: >
Mechanism experiment for the Quack protocol (DuckDB 1.5.3 beta).
An earlier exploratory run showed attach-mode protocol
overhead GROWS with scan size (2.7x at 100K rows, 4.9x at 1M) even
though the analytical_wall result set is a constant 12 rows.
Hypothesis: in attach mode (ATTACH + USE) the client plans the query
and streams table data over HTTP; remote.query() pushdown executes
fully server-side, so its overhead curve should stay flat at the
constant cost of shipping 12 result rows.
Three variants, identical data, identical SQL, identical cold-cache
discipline: duckdb (in-process floor), quack (attach), quack_pushdown.
dataset:
source: sql_benchmarks.plugins.data_sources.declarative_gen
tables:
analytical_data:
rows: rows
columns:
- name: id
provider: sequence
primary_key: true
- name: region
provider: choice
options: ["North", "South", "East", "West"]
- name: category
provider: choice
options: ["A", "B", "C"]
- name: price
provider: random_float
min_value: 10.0
max_value: 500.0
- name: quantity
provider: random_int
min_value: 1
max_value: 100
- name: discount
provider: random_float
min_value: 0.0
max_value: 0.30
definitions:
rows:
tiny: 1_000
small: 100_000
medium: 1_000_000
large: 10_000_000
execution:
test_suite: analytical_wall
engines:
- duckdb
- quack
- quack_pushdown
replication: 5
matrix:
rows:
- tiny
- small
- medium
- large