Skip to content

Commit 07ea3e5

Browse files
committed
docs: fix memory budget in why-querymode, add fragment skip to architecture, fix shape() call chain
- why-querymode.mdx: memory budget default 32MB → 256MB (same bug as performance page) - architecture.mdx: filter pushdown chain was missing fragment-level skip between partition catalog and page-level skip — now shows all 4 stages - dataframe-api.mdx: shape() calls describe(), not explain() directly
1 parent 668a756 commit 07ea3e5

File tree

3 files changed

+6
-5
lines changed

3 files changed

+6
-5
lines changed

docs/src/content/docs/architecture.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,10 @@ Filters are pushed as deep as possible — from the DataFrame/SQL layer down to
125125
```
126126
DataFrame .filter("age", "gt", 25)
127127
→ QueryDescriptor.filters: [{ column: "age", op: "gt", value: 25 }]
128-
→ Partition catalog prune (skip fragments where age max < 25)
129-
→ Page-level skip (skip pages where page max < 25)
130-
→ WASM SIMD filter (process matching pages in one pass)
128+
→ Partition catalog prune (skip fragments by partition key)
129+
→ Fragment-level skip (skip fragments where age max < 25 across all pages)
130+
→ Page-level skip (skip pages where page max < 25)
131+
→ WASM SIMD filter (process matching pages in one pass)
131132
```
132133

133134
### Filter operations

docs/src/content/docs/dataframe-api.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ const json = await df.toJSON({ pretty: true })
203203
const csv = await df.toCSV({ delimiter: "\t" })
204204
```
205205

206-
These are all sugar over existing methods — `shape()` calls `explain()`, `valueCounts()` uses `groupBy().aggregate()`, `fillNull()` and `cast()` use `computed()`.
206+
These are all sugar over existing methods — `shape()` calls `describe()`, `valueCounts()` uses `groupBy().aggregate()`, `fillNull()` and `cast()` use `computed()`.
207207

208208
## Introspection
209209

docs/src/content/docs/why-querymode.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const attribution = computeAttribution(result.rows, retention.retainedUsers)
4646

4747
Three analyses on one result set. No SQL string construction, no JSON parsing, no round-trips. The intermediate results are live objects in memory — you inspect them, branch on them, and feed them into the next stage.
4848

49-
> **What about memory?** `collect()` doesn't load a 50GB file into a V8 isolate. Filter pushdown already skipped irrelevant pages via min/max stats, aggregation already reduced rows to group summaries, projection already dropped unused columns. What lands in memory is the *result*, not the dataset. Operators are memory-bounded (default 32MB) and [spill to R2](/querymode/operators/#memory-bounded-with-r2-spill) when they exceed budget.
49+
> **What about memory?** `collect()` doesn't load a 50GB file into a V8 isolate. Filter pushdown already skipped irrelevant pages via min/max stats, aggregation already reduced rows to group summaries, projection already dropped unused columns. What lands in memory is the *result*, not the dataset. Operators are memory-bounded (default 256MB) and [spill to R2](/querymode/operators/#memory-bounded-with-r2-spill) when they exceed budget.
5050
5151
## Edge-native: survive the thundering herd
5252

0 commit comments

Comments
 (0)