[Feature] BanyanDB: local-scan performance follow-up for tag aggregation (optional)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- java
- Área
- databases, performance
Línea de trabajo
Start with the tag aggregation design README, especially §7.7 and §12, then trace the existing searchSeriesList projection split and per-row scan path. Compare Phase A and Phase B against the existing decoding behavior using the same index-mode and part-backed fixtures. Done means identical differential-test results, fewer group-map probes for Phase A, and the specified range-containment behavior for Phase B.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Part 5 of 5 of the tag aggregation and time bucketing design, shipped in apache/skywalking-banyandb#1360.
Design references: §7.7 The local scan: entity and indexed tags never touch the data file · §12 Delivery order (stages 8a–9, both marked optional in the design)
Depends on: #14089 (time-bucket grouping) and #14090 (COUNT_DISTINCT) — this optimizes both. Not required for either to ship; the design explicitly defers this and asks that the payoff be measured before it's built.
Scope
Phase A — run-folding (design's "intermediate step," no new execution path)
- Fold each maximal
(series, bucket)span once instead of per row, using a plan-time flag marking which key columns are index-resolved — derived fromsearchSeriesList's existing three-way projection split, never inferred at runtime by sampling column values. - Applies whenever an index-resolved tag is a group key:
COUNT_DISTINCTcollapsesn − 1redundant set inserts per span into one;COUNTbecomescount += spanLength.
Phase B — metadata-only scan (after Phase A lands)
- Bypass block decode entirely when every tag the query touches (group keys, aggregation target, any tag a residual predicate touches) resolves from the series index — gated by the range-containment guard (a block whose
[min,max]isn't fully inside the query range must still readtimestamps.bin) and the no-residual-predicate guard. index_modemeasures are the structural first case: they hold no part-resident tags at all, so an index-mode aggregation is index-only by construction.
Out of scope
- Anything that changes correctness or the query surface — this issue is pure performance, gated by differential tests against the existing (already-correct) path.
Test / Definition of done
- Phase A: differential test against the unoptimized per-row path on the same fixture (identical results, fewer group-map probes); a magnitude assertion (an 8192-row block at hour buckets collapses to ~137 spans, not 8192 key computations).
- Phase B: differential test against the decoding path across both index-mode and part-backed fixtures (identical results); the range-containment fixture — a block with rows at 09:00 and 09:59 (one hourly bucket) queried over 09:30–09:31 must yield no bucket row, while the same block fully inside the query range takes the shortcut.
- Lenguaje dominante
- Java
- Estrellas
- 25k
- Forks
- 6.6k
- Merge medio
- 7 h 48 min
- PR fusionados (30 d)
- 25
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/skywalking
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
apache/skywalking#14127 ·
Los mantenedores suelen responder en 1 día
-
database
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
apache/skywalking#14104 ·
Los mantenedores suelen responder en 1 día
-
[BanyanDB] Data/Schema Import and ExportPosiblemente ocupada @mrproliu la tomó hace 16 días. Abiertofeature
apache/skywalking#14102 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Feature] Store BanyanDB's own logs in BanyanDB (self-stored logs)Quizá libre de nuevo @hanahmily la tomó hace 28 días y no hay ningún pull request abierto. Abiertodatabase feature
apache/skywalking#14076 · 10 comentarios · 2 asignados ·
Los mantenedores suelen responder en 1 día
-
database
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
apache/skywalking#14070 ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/skywalking
Issues similares
-
Fix Math.ceilDiv wrong result for exact positive divisionsPosiblemente ocupada @pamod-madubashana la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
scala-native/scala-native#5094 ·
Los mantenedores suelen responder en 1 día
-
[Bug] AI unread message badge counts a batch of new bubbles as one messagePosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
apache/rocketmq-dashboard#5784 ·
Los mantenedores suelen responder en 3 días
-
[i18n] 安装实例完成后的成功提示未正确本地化Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
PCL-Community/PCL-CE#3658 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Team/Identity Server Core Type/Improvement U2
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
wso2/product-is#28553 ·
Los mantenedores suelen responder en 1 día