Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Reuse Parquet OffsetIndex objects and direct-plan decisions

Fechada
#328 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
25/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
cpp

Direção de pesquisa

Comece verificando a issue #314, que é indicada como a implementação deste trabalho. Valide os valores selecionados e os tempos de vida dos índices em seleções sparse e dense, incluindo os limites de retenção de row-groups, e depois compare o format benchmark com main quanto à latência e aos bytes de armazenamento, sem presumir um ganho geral de velocidade.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Problem

Selective Parquet reads repeat CPU work within one file reader: Arrow 17 reparses OffsetIndex on each lookup, page planning scans page locations for sparse row selections, and decoding rebuilds a direct-read plan just to determine whether compressed row coordinates apply.

The byte cache in #272 reduces repeated I/O but does not eliminate this parsing and planning work.

Proposed improvement
  • Reuse parsed OffsetIndex objects within each retained row-group reader.
  • Seek across page gaps for sparse selections and visit each selected page once.
  • Reuse the direct-plan decision during decoding.

Preserve index validation, dictionary handling, per-leaf row coordinates and missing-index fallbacks. Keep parsed objects reader-local without introducing a shared data cache or public option.

Validation

Check selected values and index lifetimes, including sparse/dense selections and the row-group retention limit. Compare against main with the format benchmark, reporting latency and storage bytes without assuming a general speedup.

Implementation: #314.

Linguagem predominante
C++
Estrelas
65
Forks
29
Merge médio
2d 11h
PRs com merge (30d)
79

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de apache/paimon-cpp

Todas as issues de apache/paimon-cpp

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.