apache / apache/datafusion

[DISCUSSION] Reduce the DataFusion WASM size

Aperta
#16,554 7 commenti 1 reazione 0 assegnatari Vedi su GitHub
enhancement
Lingua principale
Rust
Stelle
9.3k
Fork
2.4k
Merge medio
3g 11h
PR unite (30g)
360

Descrizione

### Is your feature request related to a problem or challenge?

I have heard annecedotally a few times from different people that the size of the compiled WASM file for DataFusion is large (10MB?). This large size slows down page load times for webpages that use the DataFusion WASM.

I have heard this concern from @emilk @timsaucer @XiangpengHao at least Maybe @jonmmease or @waynexia too (but I can't remember for sure)

### Describe the solution you'd like

I would like some way to reduce the size of the final WASM package (perhaps optionally)

### Describe alternatives you've considered

Today when you build DataFusion it comes with many features (like support for all compression libraries for Parquet and functions specialized for multiple different types of Arrow arrays -- `StringArray`, and `LargeStringArray` and `StringViewArray` for example

One thing we could consider is feature flagging out many of the extra copies of code for different data formats somehow.

I think the challenge will be managing the complexity that this adds to build/ runtime.

### Additional context

- Epic WASM: #13815

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia da Epic WASM #13815 e dalla build attuale di DataFusion WASM, quindi misura il pacchetto compilato e i contributi delle sue funzionalità compression-library e Arrow-array. Il lavoro è completato quando è definita una build concreta, eventualmente più piccola, e sono valutate le sue dimensioni e la complessità a runtime e di build.

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

Valutazione

Stack tecnologico
rust, wasm
Ambito
build-system, performance
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Attiva
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.