[Feature Request]: Bound PGBKCVOperation precombine table by in-memory size, not key count
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
- #39767 de @Dharshika-11 — fechado sem integrar
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- python
- Domínio
- data-engineering
Direção de pesquisa
Comece em sdks/python/apache_beam/runners/worker/operations.py, em PGBKCVOperation e no TODO relacionado a limitar pelo tamanho em memória. Compare a PGBKOperation correspondente e inspecione como os acumuladores Count, Mean, min, max e sum são representados. Considera-se concluído quando a tabela de precombine é limitada usando uma estimativa do tamanho em memória, em vez de depender apenas da quantidade de chaves, levando em conta acumuladores encapsulados ou nativos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
What would you like to happen?
PGBKCVOperation (sdks/python/apache_beam/runners/worker/operations.py) caps its precombine table by key count (max_keys, default 100k / 1M for Count/Mean/min/max/sum), flushing ~10% of keys once the count is hit. The code already flags this as a stopgap:
# TODO(b/36567833): Bound by in-memory size rather than key count.
A fixed key-count cap is a poor memory proxy when accumulators vary in size, so workers can OOM well below max_keys (or flush needlessly when accumulators are tiny). Request: bound the table by estimated in-memory size instead of (or in addition to) key count.
Notes:
b/36567833is a Google-internal Buganizer ref with no public page; this issue tracks it publicly.- Sibling
PGBKOperationhas the same shape (max_size = 10 * 1000elements). - Sizing accurately is the hard part —
sys.getsizeofundercounts wrapped/native (e.g. C-extension) accumulators; a coder-based or sampled-RSS estimate is likely needed.
Issue Priority
Priority: 3 (nice-to-have improvement)
Issue Components
- Component: Python SDK
- Linguagem predominante
- Java
- Estrelas
- 8.7k
- Forks
- 4.8k
- Merge médio
- 2d 12h
- PRs com merge (30d)
- 371
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um 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 apache/beam
-
Release notes links wrongAbertaawaiting triage bug P3
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 67/100
apache/beam#41197 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
[Bug]: [Python] WriteToJson silently rounds floats to 10 decimal placesTalvez já em andamento @Abhi2939 assumiu há 1 dia. Abertaio P2 python yaml
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
apache/beam#41102 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
apache/beam#39624 · 2 reações ·
Mantenedores costumam responder em até 1 dia
-
[Bug]: PubsubIO used in batch incorrect batch cutoff sizeTalvez já em andamento @1fanwang assumiu há 78 dias. Abertabug io P3 pinned pubsub
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/beam#28011 · 4 comentários ·
Mantenedores costumam responder em até 1 dia
-
build P3 sub-task
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
Todas as issues de apache/beam
Issues semelhantes
-
Enhancing the Issue TemplateAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
SasanLabs/VulnerableApp#912 ·
Mantenedores costumam responder em até 1 dia
-
area/build area/events area/storage area/storage/kafkasql area/storage/sql
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Apicurio/apicurio-registry#11079 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
OpenAEV-Platform/openaev#9139 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
desktop edt not responding
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100