[Chore] Keep Stream filtering and projection on batches until output
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- go
- Área
- backend, distributed-systems, testing
Línea de trabajo
Empieza por banyand/query/processor.go y los cambios previos necesarios en apache/skywalking-banyandb#1331; después, ejecuta los comandos de pruebas de Go e integración indicados. Este issue es un issue padre de seguimiento, así que divide el trabajo en tareas hoja ejecutables antes de la implementación. Se considera terminado cuando cada tarea hoja tiene un llamador de producción y cobertura fallida del procesador o de integración, y conserva el comportamiento indicado de filtering, projection, response y tracing.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Stop constructing protobuf Element objects merely to filter rows or remove internally projected tags. This follows the legacy-engine removal child #14066 (closed; implemented by BanyanDB PR apache/skywalking-banyandb#1326, merged) under #13998.
Scope and dependencies
Boundary: Stream batch filtering and client projection through banyand/query/processor.go, with eligible frame egress and required protobuf egress. It spans filter placement, projection, and response-path activation, implemented here as one task against the now-merged legacy-engine removal, not split into separate PRs.
Prerequisite already merged: BanyanDB PR apache/skywalking-banyandb#1331 provides pre-merge filtering for index-order queries.
Unblocked: #14066 is closed; its completion criterion, BanyanDB PR apache/skywalking-banyandb#1326, is merged.
Requirements
R1. Reuse apache/skywalking-banyandb#1331's pre-merge index-order filtering and remove the redundant element-level recheck. Preserve filter-first duplicate winners and the bounded merge.
R2. Apply timestamp-order filtering to batches at its existing position after the cap; do not change its existing under-fill behavior.
R3. Strip criteria-only and hidden ordering tags through batch projection. Retain internal ordering keys until ordering is finished, without exposing hidden tags in the client's projection.
R4. Enable frame output for eligible distributed queries. Preserve required protobuf responses, including traced responses and final client output.
Concrete oracle
Input:
ID=A, order=1, state=closed, service=old
ID=A, order=2, state=open, service=new
ID=B, order=3, state=open, service=other
With criteria state=open, ascending index order, and projection service, return A/new then B/other. Neither state nor the ordering tag may appear in client tag families. Offset 1, limit 1 returns B/other. Expected values are specified here, not derived from a legacy engine.
Completion criteria and RED-test direction
- Real processor tests prove eligible filtered queries emit frames. Today their filter gate selects protobuf output, so this is an observable failing path assertion, not only output parity.
- Exact selected values, duplicate winners, hidden-tag removal, null behavior, and offset/limit are tested across batches.
- Timestamp-order filtering remains behind the cap, and traced responses retain tracing information.
- Each implementation leaf activates a production caller and includes its own failing test; batch ownership is correct on success, cancellation, and errors.
go test ./pkg/query/vectorized/stream/... ./pkg/query/logical/stream ./banyand/query
go test ./test/integration/standalone/query/... ./test/integration/distributed/query/...
Out of scope
Reimplementing apache/skywalking-banyandb#1331; changing timestamp under-fill semantics; local cross-group or distributed result merging (a separate workstream).
Parent: #13998.
Compatibility and review policy
- Preserve existing on-disk and wire formats and mixed-version compatibility. Any necessary protocol change requires a separately reviewed compatibility contract.
- Use explicit, hand-calculated expected results; do not depend on the removed row engine as the test oracle.
- Human review enforces the no-new-row-path policy. A row-call-site lint guard is not required.
- 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 17 días. Abiertofeature
apache/skywalking#14102 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
database feature
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
apache/skywalking#14092 ·
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
Todos los issues de apache/skywalking
Issues similares
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched originsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
floci-io/floci#5369 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
sqlcipher/sqlcipher-android#97 · 1 comentario ·
-
area-integrations
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
bug IIIF interoperability
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100