Surface foreign ExecutionPlan metrics via FFI (FFI_MetricsSet)

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

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Tranquilla
Stack tecnologico
python, rust

Direzione di ricerca

Inizia controllando il crate upstream datafusion-ffi oltre v54 alla ricerca di un FFI_MetricsSet e della sua connessione a FFI_ExecutionPlan::metrics. Poi esamina il Python MetricsSet e i pattern *Exportable from_pycapsule esistenti. Il lavoro è completo quando le metriche dei piani di esecuzione esterni possono attraversare il confine FFI ed essere esposte dai binding Python.

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

Descrizione

Background

PyMetricsSet currently wraps the native DataFusion MetricsSet only. When a foreign ExecutionPlan is imported through FFI_ExecutionPlan (for example a plan implemented in a separate Rust extension, Go, or another Python module), there is no FFI round-trip for metrics: plan.metrics() on such a foreign plan returns whatever the underlying implementation happens to populate, with no standard way for the foreign side to surface DataFusion-style metrics back across the boundary.

Why deferred

There is no FFI_MetricsSet struct in the upstream datafusion-ffi crate at v54 to wrap; this is a pipeline-symmetry concern rather than a feature gap with a clear upstream target. No open user requests at the time of audit. Filed for tracking so that when upstream lands FFI metrics support, the Python bindings can pick it up immediately. The accepted path is probably: upstream adds FFI_MetricsSet and threads it through FFI_ExecutionPlan::metrics; the Python bindings then expose a from_pycapsule helper on MetricsSet analogous to the other *Exportable patterns.

Lingua principale
Python
Stelle
605
Fork
176
Merge medio
1g 23h
PR unite (30g)
8

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

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 apache/datafusion-python

Tutte le issue di apache/datafusion-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.