[Feature Request]: Bound PGBKCVOperation precombine table by in-memory size, not key count
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
- #39767 par @Dharshika-11 — fermée sans fusion
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- python
- Domaine
- data-engineering
Piste de recherche
Commencez dans sdks/python/apache_beam/runners/worker/operations.py, au niveau de PGBKCVOperation et de son TODO concernant la limitation par taille en mémoire. Comparez la PGBKOperation associée et examinez comment les accumulateurs Count, Mean, min, max et sum sont représentés. Le travail est terminé lorsque la table de précombinaison est limitée à l’aide d’une estimation de la taille en mémoire, plutôt que de dépendre uniquement du nombre de clés, tout en prenant en compte les accumulateurs encapsulés ou natifs.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Java
- Étoiles
- 8.7k
- Forks
- 4.8k
- Merge moyen
- 2 j 12 h
- PR mergées (30 j)
- 371
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de apache/beam
-
Release notes links wrongOuverteawaiting triage bug P3
Difficulté 1/5 Moins d'une heure Accessibilité débutants 67/100
apache/beam#41197 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: [Python] WriteToJson silently rounds floats to 10 decimal placesPeut-être pris @Abhi2939 l’a pris il y a 1 jour. Ouverteio P2 python yaml
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
apache/beam#41102 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
apache/beam#39624 · 2 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: PubsubIO used in batch incorrect batch cutoff sizePeut-être pris @1fanwang l’a pris il y a 78 jours. Ouvertebug io P3 pinned pubsub
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/beam#28011 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
build P3 sub-task
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de apache/beam
Issues similaires
-
Enhancing the Issue TemplateOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
SasanLabs/VulnerableApp#912 ·
Les mainteneurs répondent en général sous 1 jour
-
area/build area/events area/storage area/storage/kafkasql area/storage/sql
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Apicurio/apicurio-registry#11079 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
OpenAEV-Platform/openaev#9139 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
desktop edt not responding
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100