Perf: expose natural Xarray scan ordering to eliminate redundant SQL sorts
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 28/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Domínio
- databases, performance
Direção de pesquisa
Start with the XarrayScanExec node and its PlanProperties in the native DataFusion provider, then reproduce the ordered EXPLAIN plan that shows SortExec above it. Check whether the scan can declare C-order within each partition and time-range ordering across partitions, so DataFusion can choose SortPreservingMergeExec. Done means ordered results stay exact and a regression test shows no SortExec for an order that matches the dataset's dimension order.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
🤖 Samudra's canonical data-loader experiment found that ORDER BY time, lat, lon is a material part of point-read latency even though XarrayScanExec already emits each dense block in C-order.
Local benchmark setup: an uncompressed float32 Zarr store with 32 times, 16 variables, a 180×360 grid, chunks=None at Xarray open, and XQL scan partitions of {"time": 1}. Selecting four times and all 16 variables took approximately:
- ordered DataFusion collection: 21 ms
- the same query without
ORDER BY: 13 ms
The ordered physical plan contains:
SortPreservingMergeExec: time, lat, lon
SortExec: time, lat, lon
FilterExec: time IN (...)
RepartitionExec
XarrayScanExec
For an ML loader, relying on unspecified result order is not acceptable, and scattering unordered rows in NumPy erased the saved time. Could the native provider declare the scan's natural intra-partition ordering in PlanProperties, plus enough partition-range ordering for DataFusion to use a preserving merge instead of sorting the cells?
A useful regression test would assert both exact ordered results and the absence of SortExec in EXPLAIN for an order compatible with the dataset's dimension order. This may also reduce sort-buffer memory for dense-grid round trips.
- Linguagem predominante
- Python
- Estrelas
- 142
- Forks
- 19
- Merge médio
- 1d 9h
- PRs com merge (30d)
- 9
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de xqlsystems/xarray-sql
-
documentation
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 85/100
xqlsystems/xarray-sql#268 ·
Mantenedores costumam responder em até 1 dia
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
xqlsystems/xarray-sql#267 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 74/100
xqlsystems/xarray-sql#243 ·
Mantenedores costumam responder em até 1 dia
-
publish.yml: the TestPyPI verification step is unreachable (and installs the wrong package name)Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
xqlsystems/xarray-sql#242 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
xqlsystems/xarray-sql#237 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de xqlsystems/xarray-sql
Issues semelhantes
-
bug documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
awslabs/visual-asset-management-system#514 ·
Mantenedores costumam responder em até 1 dia
-
backend bug spec:REQ-053
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
nolte/kamerplanter#2547 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
EleutherAI/lm-evaluation-harness#4425 ·
Mantenedores costumam responder em até 1 dia
-
Gemini: respect PLANNING_DISABLED=1 in lifecycle context hooksTalvez já em andamento @AmariAugustin assumiu hoje. Abertabug good first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 87/100
OthmanAdi/planning-with-files#329 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
wr.dynamodb.read_items returns [{}] for a single partition value that does not existTalvez já em andamento @auraseb assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
aws/aws-sdk-pandas#3520 ·
Mantenedores costumam responder em até 2 dias