perf(gfql): restore input-plan fusion for LazyFrame inputs (entry normalization trades it for crash-freedom)

Aperta
#1,884 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
performance

Direzione di ricerca

Read the entry-normalization changes referenced in #1883 and the chain_polars, hop, and WITH…MATCH re-entry paths. First establish the current eager and lazy input behavior, then identify a benchmark lane that binds scan_* inputs; the issue calls for receipts demonstrating restored plan fusion without reintroducing crashes. No test or file paths are named, so locate the relevant tests and benchmarks before starting.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

#1883's entry normalization (chain_polars, hop, WITH…MATCH re-entry) collects the USER'S LazyFrame inputs once at entry. This is correctness-first: 12 of 16 lazy-input shape×eagerness cells crashed before (mixed-eagerness joins at many seams), and per-seam patching demonstrably missed shapes. Verified neutral for every receipted pyg-bench lane (all bind eager frames; the streaming-crossover receipt's own conclusion was the lazy-streaming opt-in never crosses 1.0x).

What it forfeits: genuine input-plan fusion where it previously existed — single-hop hop() merged the user's lazy plan into its own and collected once (projection/predicate pruning into e.g. scan_parquet inputs); directed chain shapes may have had partial fusion via the shims. Restoring it properly = per-path lazy-input support with eagerness-consistent seams (lazify the eager side instead of collecting the lazy side, one deferred collect), justified by a pyg-bench lane that actually binds scan_* inputs — an optimization PR with receipts, not a release-eve patch. The internal engine laziness (fused single-collect lanes, Track-B shims, GPU collect batching) is unaffected by the entry normalization and needs no restoration.

🤖 Generated with Claude Code

Lingua principale
Python
Stelle
2.6k
Fork
229
Merge medio
1g 2h
PR unite (30g)
67

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di graphistry/pygraphistry

Tutte le issue di graphistry/pygraphistry

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.