apache / apache/datafusion

Benchmark / program to test Spilling Sorts

Aperta
#15,664 0 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)
362

Descrizione

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

- Part of https://github.com/apache/datafusion/issues/15271

There are many interesting ideas on how to improve DataFusion while spilling for example https://github.com/apache/datafusion/issues/15271 from @2010YOUY01 and others.

What I think we really need next to make progress in this area is a benchmark / agreed upon way of measuring our progress so that we can improve and

### Describe the solution you'd like

I would like a documented command / set of commands that is:
1. Easy to run (and thus fast to test / iterate on)
2. Exercises the spilling feature at different levels of memory pressure
3. Spends most of its time sorting/spilling/merging (not generating output for example)

### Describe alternatives you've considered

idea 1: can use some `datafusion-cli` features / flags and document them

Idea 2: Add a new suite to bench.sh / `dfbench`: https://github.com/apache/datafusion/tree/main/benchmarks

As for what to do I suggest something relatively simple like sorting the TPCH lineitem table with 200MB, 500MB, 1GB, 5GB and 10GB of memory for example

### Additional context

_No response_

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia confrontando l’approccio di datafusion-cli con benchmarks/bench.sh e le opzioni di dfbench menzionate nell’issue. Usa l’esempio di ordinamento di TPCH lineitem e prova limiti di memoria da 200MB a 10GB, assicurandoti che il benchmark impieghi il proprio tempo nell’ordinamento, nello spilling e nella fusione anziché nella generazione dell’output. Il lavoro è completo quando esiste un comando o un insieme di comandi documentato e ripetibile per misurare i progressi di spilling-sort.

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

Valutazione

Stack tecnologico
rust, sql
Ambito
data-engineering, performance, testing-qa
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.