[Chore] Keep Stream filtering and projection on batches until output
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- go
- Lĩnh vực
- backend, distributed-systems, testing
Hướng nghiên cứu
Bắt đầu với banyand/query/processor.go và các thay đổi tiên quyết trong apache/skywalking-banyandb#1331, sau đó chạy các lệnh kiểm thử Go và kiểm thử tích hợp được liệt kê. Issue này là một issue cha để theo dõi, vì vậy hãy chia công việc thành các tác vụ lá có thể thực thi trước khi triển khai. Được xem là hoàn tất khi mỗi tác vụ lá có một production caller và coverage processor hoặc tích hợp bị lỗi, đồng thời duy trì hành vi filtering, projection, response và tracing đã liệt kê.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Java
- Star
- 25k
- Fork
- 6.6k
- Merge trung bình
- 13 giờ 58 phút
- Pull request đã merge (30 ngày)
- 42
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/skywalking
-
[Bug] BanyanDB trace block metadata format changed in 0.11 without a file format version bumpCó thể đã có người làm @hanahmily đã nhận 8 ngày trước. Đang mởbug database
apache/skywalking#14169 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
chore CLI database
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
apache/skywalking#14168 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BanyanDB] Stream write callback reports success for events it did not storeCó thể làm lại được Pull request cho issue này đã bị đóng mà không được merge. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
apache/skywalking#14158 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Chore] Merge distributed Stream replies as batches in the liaison coordinatorCó thể đã có người làm @qi-wutu đã nhận 2 ngày trước. Đang mởdatabase
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 58/100
apache/skywalking#14157 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
database
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
apache/skywalking#14104 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của apache/skywalking
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
a2aproject/a2a-java#1275 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
module/ftp Type/Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ballerina-platform/ballerina-library#9476 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature] 为世界管理页面添加打开存档文件夹按钮Đang mởenhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
HMCL-dev/HMCL#7175 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
anwilli5/coin-collection-android-US#515 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
FasterXML/jackson-databind#6398 ·
Maintainer thường phản hồi trong vòng 1 ngày