[Chore] Keep Stream filtering and projection on batches until output
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 30/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- go
- Ambito
- backend, distributed-systems, testing
Direzione di ricerca
Inizia da banyand/query/processor.go e dalle modifiche preliminari in apache/skywalking-banyandb#1331, quindi esegui i comandi elencati per i test Go e di integrazione. Questo issue è un issue padre di tracciamento, quindi suddividi il lavoro in attività foglia eseguibili prima dell’implementazione. Il lavoro è completato quando ogni attività foglia ha un chiamante di produzione e una copertura del processor o di integrazione che fallisce, preservando il comportamento elencato di filtering, projection, response e tracing.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Java
- Stelle
- 25k
- Fork
- 6.6k
- Merge medio
- 13h 9m
- PR unite (30g)
- 23
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/skywalking
-
database
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
apache/skywalking#14104 ·
I maintainer di solito rispondono entro 1 giorno
-
[BanyanDB] Data/Schema Import and ExportForse già presa @mrproliu l’ha presa 25 giorni fa. Apertafeature
apache/skywalking#14102 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature] BanyanDB: local-scan performance follow-up for tag aggregation (optional)Forse già presa @hanahmily l’ha presa 3 giorni fa. Apertadatabase feature
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
apache/skywalking#14092 ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature] Store BanyanDB's own logs in BanyanDB (self-stored logs)Forse di nuovo libera @hanahmily l’ha presa 37 giorni fa e non c’è nessuna pull request aperta. Apertadatabase feature
apache/skywalking#14076 · 10 commenti · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
-
database
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
apache/skywalking#14070 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/skywalking
Issue simili
-
NullPointerException when a `DeserializationProblemHandler` returns `null` for `byte[]` (single value unwrapped) and `char[]` elementsForse già presa @Marti2203 l’ha presa oggi. Aperta
Difficoltà 2/5 Mezza giornata Idoneità per principianti 88/100
FasterXML/jackson-databind#6300 ·
I maintainer di solito rispondono entro 1 giorno
-
content good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
cpinitiative/usaco-guide#6699 ·
I maintainer di solito rispondono entro 1 giorno
-
BC remittance upload: a claim MSP refused (S03) is saved with a blank status instead of refused (F)Apertatype: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
carlos-emr/carlos#4933 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/rocketmq-dashboard#6925 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Vakore/ZappierGames#147 ·