[Task] Establish systematic performance baselines and optimization tracking
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 12/100
- Issue 类型
- 重构
- 描述清晰度
- 需要澄清
- 活跃度
- 活跃
- 技术栈
- java
- 领域
- databases, performance
调研方向
This is a long-running tracking task, not a single change. Start with the linked Server PR #3342, which fixes lost Kout results, and its measurement review, to see which benchmark setup it used. The first concrete step would be a reproducible, correctness-checked Kout baseline with recorded commands, data generation, and environment details. Done means that baseline exists and candidate optimizations are ranked against it, not that any optimization is merged.
由索引模型根据 Issue 内容生成。
描述
Goal
Track long-term, evidence-driven performance work across HugeGraph traversal and its shared execution/collection paths. Start with Kout as a reproducible case, then extend to other representative operations when measurements reveal shared bottlenecks.
Optimize end-to-end efficiency under realistic workloads, rather than greedily improving one method, microbenchmark, or configuration at the expense of correctness, memory, latency, or concurrent throughput.
Starting evidence
🔗 Server #3342 fixes lost Kout results by serializing shared result-set updates and distinct-limit admission. Preserve this correctness guarantee. (Other cases like)
Bounded measurements and limitations show workload-dependent trade-offs between internal parallelism and concurrent requests. They do not establish a production regression caused by the fix, isolate monitor cost, or establish production-wide performance acceptance. No narrowed-lock optimization has been benchmarked.
This is a long-term task, not an additional 1.8 release gate. Candidate optimizations below are hypotheses to evaluate, not commitments to implement.
TODO
- Establish a reusable, correctness-checked baseline and retain reproducible commands, data generation, raw results, environment details, and exact tested revisions.
- Profile representative end-to-end workloads before prioritizing changes.
- Rank opportunities by measured user impact, resource cost, implementation risk, and maintenance burden.
- Implement justified optimizations separately, with before/after comparisons against a correct baseline.
- Add stable regression coverage and document deployment/concurrency trade-offs.
- Expand coverage to related traversals and shared infrastructure as evidence warrants.
Candidate investigations
- Internal worker counts, executor reuse/admission, and resource budgets across concurrent requests.
- Bounded/lazy edge-query and iterator preparation to avoid unnecessary work after limits are satisfied.
- Primitive IdSet bulk union to reduce numeric-ID wrapping during layer merges.
- Empty-frontier termination and avoidable allocation/cancellation overhead.
- Critical-section scope or aggregation strategies only where profiling justifies them; preserve exact distinct limits, deduplication, visibility, resource cleanup, and off-heap ID safety.
Measurement and acceptance
- Cover single and concurrent requests; several worker settings including the actual default; numeric/string IDs; unique/duplicate/convergent graphs; finite/unlimited limits; nearest modes; and representative graph sizes.
- Include relevant backends and full API/service paths, not only isolated consumers. Distinguish warmed caches from genuinely cold storage.
- Record throughput, latency distributions, CPU, allocation/GC, memory, and lock/scheduling observations. Use sufficient independent runs, warm-up, sustained durations, and variability reporting; short repeated samples are not independent experiments or production tail-latency proof.
- Verify complete results where deterministic, exact counts and legal results for bounded queries, plus cancellation, capacity and resource-lifecycle behavior.
- Agree workload-specific acceptance budgets before claiming success. Check for displaced costs and regressions in other supported workloads.
- Change one causal factor at a time where practical. Report inconclusive results honestly; do not use unsafe old concurrent behavior as a performance target.
Keep findings and follow-up PRs linked here so improvements accumulate into a coherent performance baseline rather than isolated tuning.
- 主要语言
- Java
- 星标
- 3.2k
- 派生
- 641
- 平均合并
- 1 天 9 小时
- 30 天内合并 PR
- 74
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/hugegraph 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
apache/hugegraph#3231 · 1 条评论 ·
维护者通常 1 天内回复
-
bug
难度 3/5 1-2 天 新手友好度 66/100
维护者通常 1 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 52/100
维护者通常 1 天内回复
-
[Bug] CI accepts obsolete PR targets after retargeting or force-push可能重新可做 关联的 PR 已关闭且未合并。 未关闭
难度 3/5 1-2 天 新手友好度 25/100
维护者通常 1 天内回复
-
[Feature] Server image: map server.urls_to_pd and server.deploy_in_k8s from the environment, and stop editing conf files in place可能已有人在做 关联的 PR 仍在进行中或已合并。 未关闭
难度 4/5 3-5 天 新手友好度 48/100
维护者通常 1 天内回复
相似的 Issue
-
approved bug
难度 2/5 1-3 小时 新手友好度 70/100
checkstyle/checkstyle#21981 · 1 条评论 ·
维护者通常 1 天内回复
-
[lake/iceberg] Reserved write-mode properties can be set and reset through their `iceberg.` key可能已有人在做 @aphenix-r7 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 2/5 1 小时以内 新手友好度 72/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 62/100
MCModderAnchor/TACZ#758 ·
-
agent-java community triage
难度 2/5 1-3 小时 新手友好度 72/100
elastic/apm-agent-java#4594 ·
维护者通常 1 天内回复