Avoid unnecessary RepartitionExec with RoundRobinBatch partitioning
- 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? Please describe what you are trying to do.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
(This section helps Arrow developers understand the context and *why* for this feature, in addition to the *what*)
The current `Enforcement` rule implementation does not take the local repartition requirements into account.
And the RoundRobinBatch RepartitionExec was added by the `Repartition` rule which might add unnecessary
RepartitionExecs.
We can refer to PrestoSQL/Trino's approach and implement a top-down and requirement driven process to add
RepartitionExecs on demands.
https://github.com/trinodb/trino/blob/45e111cf6b775a03a92a13af06f22eecd1a40787/core/trino-main/src/main/java/io/trino/sql/planner/optimizations/AddLocalExchanges.java
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia leggendo le implementazioni delle regole Enforcement e Repartition per capire come vengono attualmente gestiti i requisiti di repartitioning locale e i RoundRobinBatch RepartitionExecs. Confronta il design con l’implementazione collegata di Trino AddLocalExchanges. Il lavoro è completato quando il planner aggiunge RepartitionExec solo quando necessario ed evita i repartitioning RoundRobinBatch non necessari.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- databases
- Tipo di issue
- Funzionalità
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100