[PPL] Limit retained jobs and retained-result bytes for asynchronous queries
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
Hướng nghiên cứu
Start with follow-up #5765 and the existing AsyncQueryExecution contract. Work out the per-node budget, byte measurement, terminal behavior, and exactly-once reserve/release paths across completion, DELETE, expiration, startup abort, owner shutdown, and races. Done means metrics and concurrency tests cover retained-byte usage and rejected retention without changing the execution contract.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Follow-up to #5765.
Problem
The first asynchronous PPL API implementation does not limit how many finished jobs a node retains, and relies on plugins.query.size_limit for row count. Neither bounds the retained jobs or their bytes. A successful retained job keeps its result object graph reachable until DELETE, expiration, or shutdown, so a small number of wide rows or large string values can consume substantial heap. plugins.query.memory_limit protects execution-time heap pressure but does not account for retained results.
Scope
- Limit how many finished jobs a node retains for polling (
plugins.ppl.async.max_retained_jobs). A submit gets429while the limit is reached. - Define a per-node retained-result byte budget and setting.
- Define the byte measurement used for admission (for example, serialized result size versus an explicit heap estimate).
- Define terminal job behavior when a completed result cannot be retained within the budget.
- Reserve and release capacity exactly once across completion, DELETE, expiration, startup abort, owner shutdown, and races between them.
- Add metrics and concurrency tests for retained-byte usage and rejected retention.
- Preserve the existing
AsyncQueryExecutioncontract; execution producers should not depend on lifecycle retention policy.
Out of scope
Result paging or delta delivery remains separate work.
- Ngôn ngữ chính
- Java
- Star
- 175
- Fork
- 236
- Merge trung bình
- 2 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 40
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 opensearch-project/sql
-
[BUG] PromQL queries fail with InvalidTypeIdException when metric has a label named "type"Có thể đã có người làm @nagendramohan đã nhận 88 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
opensearch-project/sql#5684 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[DOC] Calcite settings documentation missing examplesCó thể đã có người làm @AzazelSensei đã nhận 46 ngày trước. Đang mởdocumentation PPL
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
opensearch-project/sql#4806 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 48/100
opensearch-project/sql#5928 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Testing] Test downstream plugins that load SQL classes (alerting, skills)Có thể đã có người làm @ahkcs đã nhận 4 ngày trước. Đang mởinfrastructure testing
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
opensearch-project/sql#5925 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] Analytics routing does not resolve aliases and wildcard index expressionsCó thể đã có người làm @KarstenSchnitter đã nhận 9 ngày trước. Đang mởanalytic-engine bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
opensearch-project/sql#5916 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của opensearch-project/sql
Issue tương tự
-
getRawTextContent() returns the lines of every page in reverse order (bottom to top) since 4.0.3Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 90/100
-
bug subsystem:agent-harness triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ShaftHQ/SHAFT_ENGINE#7797 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
ARM: Q flag should be stickyĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
NationalSecurityAgency/ghidra#10155 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
area:data coverage
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 67/100
reacher-z/Awesome-CUA#4864 ·
Maintainer thường phản hồi trong vòng 19 ngày
-
bug web-ui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
jenkinsci/jenkins#27705 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày