Benchmark / program to test Spilling Sorts
- 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