Skip to content

SRE-803: Retry "Launch external services" step in Tests workflow#9016

Merged
TimDiekmann merged 2 commits into
mainfrom
sre-803/retry-launch-external-services
Jul 13, 2026
Merged

SRE-803: Retry "Launch external services" step in Tests workflow#9016
TimDiekmann merged 2 commits into
mainfrom
sre-803/retry-launch-external-services

Conversation

@claude

@claude claude Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Requested by Tim Diekmann · Slack thread

🌟 What is the purpose of this PR?

Before: a single transient BuildKit failure in the "Launch external services" step (e.g. target hydra: failed to receive status: rpc error: code = Unavailable desc = error reading from server: EOF) fails the whole integration job before any test runs — sibling jobs in the same run pass the identical step, so it's per-runner infrastructure noise.

After: the step retries up to 3 times (15s between attempts), so transient BuildKit failures are absorbed and only persistent failures fail the job.

How: in .github/workflows/test.yml, the docker compose --profile dev up -d invocation of the integration-tests job is wrapped in nick-fields/retry, using the same SHA-pinned version and style the repo already uses elsewhere (warm-up-repo, install-tools, deploy.yml, …). The two identical steps in .github/workflows/bench.yml get the same wrapping, since the same failure also fired on main in the Benches workflow.

🔗 Related links

🔍 What does this change?

  • Wraps the "Launch external services" step in nick-fields/retry (max_attempts: 3, retry_wait_seconds: 15, timeout_minutes: 15) — in test.yml, and in both copies of the identical step in bench.yml.
  • The action does not support working-directory, so the command cds into infra/compose itself (same pattern as deploy.yml).

Pre-Merge Checklist 🚀

🚢 Has this modified a publishable library?

This PR:

  • does not modify any publishable blocks or libraries, or modifications do not need publishing

📜 Does this require a change to the docs?

The changes in this PR:

  • are internal and do not require a docs change

🕸️ Does this require a change to the Turbo Graph?

The changes in this PR:

  • do not affect the execution graph

🛡 What tests cover this?

  • None — CI workflow change. YAML validated locally; the step is exercised by the Integration jobs on this very PR.

❓ How to test this?

  1. Check the Integration jobs on this PR: the "Launch external services" step should pass (now running under the retry wrapper).

Generated by Claude Code

The docker compose up (buildx bake under the hood) can fail with
transient BuildKit rpc errors on individual runners, failing the
integration job before any test runs. Wrap the step in
nick-fields/retry (3 attempts) to absorb the noise.
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hash Ready Ready Preview, Comment Jul 13, 2026 12:06pm
hashdotdesign-tokens Ready Ready Preview, Comment Jul 13, 2026 12:06pm
petrinaut Ready Ready Preview, Comment Jul 13, 2026 12:06pm

@github-actions github-actions Bot added the area/infra Relates to version control, CI, CD or IaC (area) label Jul 13, 2026
@codecov

codecov Bot commented Jul 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.73%. Comparing base (6736174) to head (37362b3).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9016   +/-   ##
=======================================
  Coverage   59.73%   59.73%           
=======================================
  Files        1371     1371           
  Lines      135461   135461           
  Branches     6066     6066           
=======================================
+ Hits        80911    80913    +2     
+ Misses      53618    53616    -2     
  Partials      932      932           
Flag Coverage Δ
apps.hash-ai-worker-ts 1.39% <ø> (ø)
apps.hash-api 6.39% <ø> (ø)
blockprotocol.type-system 40.84% <ø> (ø)
local.claude-hooks 0.00% <ø> (ø)
local.harpc-client 51.49% <ø> (ø)
local.hash-backend-utils 1.90% <ø> (ø)
local.hash-graph-sdk 10.02% <ø> (ø)
local.hash-isomorphic-utils 0.18% <ø> (ø)
rust.antsi 0.00% <ø> (ø)
rust.error-stack 90.89% <ø> (ø)
rust.harpc-codec 84.70% <ø> (ø)
rust.harpc-net 96.23% <ø> (+0.03%) ⬆️
rust.harpc-tower 67.03% <ø> (ø)
rust.harpc-types 0.00% <ø> (ø)
rust.harpc-wire-protocol 92.23% <ø> (ø)
rust.hash-codec 72.76% <ø> (ø)
rust.hash-graph-api 7.41% <ø> (ø)
rust.hash-graph-authorization 62.59% <ø> (ø)
rust.hash-graph-embeddings 91.88% <ø> (ø)
rust.hash-graph-postgres-store 29.13% <ø> (ø)
rust.hash-graph-store 38.47% <ø> (ø)
rust.hash-graph-temporal-versioning 47.95% <ø> (ø)
rust.hash-graph-types 0.00% <ø> (ø)
rust.hash-graph-validation 84.71% <ø> (ø)
rust.hashql-ast 89.63% <ø> (ø)
rust.hashql-compiletest 28.39% <ø> (ø)
rust.hashql-core 78.98% <ø> (ø)
rust.hashql-diagnostics 72.51% <ø> (ø)
rust.hashql-eval 80.04% <ø> (ø)
rust.hashql-hir 89.09% <ø> (ø)
rust.hashql-mir 87.92% <ø> (ø)
rust.hashql-syntax-jexpr 94.04% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Apply the identical nick-fields/retry wrapping to the two "Launch
external services" steps in the Benches workflow, which run the same
docker compose command and hit the same transient BuildKit rpc errors
(e.g. on main in run 29027294274).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019YPgwWiuoovZGU6iCazLPx
@codspeed-hq

codspeed-hq Bot commented Jul 13, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 15.38%

❌ 2 regressed benchmarks
✅ 96 untouched benchmarks

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
bit_matrix/dense/iter_row[64] 140.8 ns 170 ns -17.16%
bit_matrix/dense/iter_row[200] 185.8 ns 215 ns -13.57%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing sre-803/retry-launch-external-services (37362b3) with main (469c489)

Open in CodSpeed

@TimDiekmann TimDiekmann marked this pull request as ready for review July 13, 2026 12:10
Copilot AI review requested due to automatic review settings July 13, 2026 12:10
@TimDiekmann TimDiekmann enabled auto-merge July 13, 2026 12:10
@cursor

cursor Bot commented Jul 13, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
CI-only workflow YAML; no application, auth, or deploy logic changes—only resilience for an existing docker compose step.

Overview
Launch external services in integration CI no longer runs docker compose as a single-shot step. It now uses the same SHA-pinned nick-fields/retry action already used for Playwright and warm-up elsewhere, with 3 attempts, 15s between retries, and a 15-minute timeout per attempt.

The change applies to test.yml (integration tests) and both matching steps in bench.yml (base and head integration bench jobs). Because the retry action has no working-directory, the command is cd infra/compose && docker compose --profile dev up -d, matching other workflows. Inline comments document transient BuildKit RPC failures (SRE-803).

Reviewed by Cursor Bugbot for commit 37362b3. Bugbot is set up for automated code reviews on this repo. Configure here.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves CI resilience by retrying the “Launch external services” step in workflows where transient BuildKit/Buildx RPC failures on individual GitHub runners can fail jobs before any tests/benches run.

Changes:

  • Wraps docker compose --profile dev up -d in nick-fields/retry (3 attempts, 15s backoff, 15m timeout) in the Tests workflow.
  • Applies the same retry wrapper to both identical “Launch external services” steps in the Benches workflow.
  • Adjusts the command to cd infra/compose && ... since the retry action doesn’t support working-directory.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/test.yml Retries the integration job’s external-services bring-up to absorb transient BuildKit runner failures.
.github/workflows/bench.yml Adds the same retry wrapper to both bench jobs’ external-services bring-up steps for consistency and stability.

@TimDiekmann TimDiekmann added this pull request to the merge queue Jul 13, 2026
Merged via the queue into main with commit b6fb59e Jul 13, 2026
186 checks passed
@TimDiekmann TimDiekmann deleted the sre-803/retry-launch-external-services branch July 13, 2026 12:36
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark results

@rust/hash-graph-benches – Integrations

policy_resolution_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2002 $$28.6 \mathrm{ms} \pm 210 \mathrm{μs}\left({\color{gray}-0.424 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.72 \mathrm{ms} \pm 22.2 \mathrm{μs}\left({\color{gray}4.88 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$13.7 \mathrm{ms} \pm 115 \mathrm{μs}\left({\color{gray}-0.193 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$45.5 \mathrm{ms} \pm 378 \mathrm{μs}\left({\color{gray}0.484 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$16.9 \mathrm{ms} \pm 177 \mathrm{μs}\left({\color{red}13.5 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$25.9 \mathrm{ms} \pm 243 \mathrm{μs}\left({\color{gray}3.55 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$30.6 \mathrm{ms} \pm 228 \mathrm{μs}\left({\color{gray}4.82 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$4.09 \mathrm{ms} \pm 35.2 \mathrm{μs}\left({\color{red}6.13 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$15.3 \mathrm{ms} \pm 121 \mathrm{μs}\left({\color{gray}3.21 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.98 \mathrm{ms} \pm 41.5 \mathrm{μs}\left({\color{gray}3.03 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.13 \mathrm{ms} \pm 21.8 \mathrm{μs}\left({\color{gray}2.80 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.50 \mathrm{ms} \pm 26.8 \mathrm{μs}\left({\color{gray}2.39 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.51 \mathrm{ms} \pm 43.3 \mathrm{μs}\left({\color{gray}3.46 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.74 \mathrm{ms} \pm 35.6 \mathrm{μs}\left({\color{gray}3.02 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.41 \mathrm{ms} \pm 50.9 \mathrm{μs}\left({\color{gray}4.85 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.71 \mathrm{ms} \pm 31.6 \mathrm{μs}\left({\color{gray}3.94 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.74 \mathrm{ms} \pm 27.9 \mathrm{μs}\left({\color{red}5.84 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.32 \mathrm{ms} \pm 34.1 \mathrm{μs}\left({\color{gray}4.95 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.86 \mathrm{ms} \pm 23.8 \mathrm{μs}\left({\color{red}8.79 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.58 \mathrm{ms} \pm 17.9 \mathrm{μs}\left({\color{gray}1.50 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.74 \mathrm{ms} \pm 20.7 \mathrm{μs}\left({\color{gray}4.42 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$3.13 \mathrm{ms} \pm 22.8 \mathrm{μs}\left({\color{red}7.81 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.82 \mathrm{ms} \pm 17.3 \mathrm{μs}\left({\color{gray}4.87 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$3.09 \mathrm{ms} \pm 22.8 \mathrm{μs}\left({\color{red}6.96 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$3.21 \mathrm{ms} \pm 21.2 \mathrm{μs}\left({\color{gray}3.63 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.86 \mathrm{ms} \pm 16.7 \mathrm{μs}\left({\color{gray}2.96 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$3.15 \mathrm{ms} \pm 21.7 \mathrm{μs}\left({\color{gray}3.03 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.70 \mathrm{ms} \pm 34.0 \mathrm{μs}\left({\color{red}6.53 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.12 \mathrm{ms} \pm 19.2 \mathrm{μs}\left({\color{gray}4.15 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.48 \mathrm{ms} \pm 26.7 \mathrm{μs}\left({\color{red}5.13 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.56 \mathrm{ms} \pm 25.4 \mathrm{μs}\left({\color{gray}3.38 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.14 \mathrm{ms} \pm 17.0 \mathrm{μs}\left({\color{gray}4.59 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.46 \mathrm{ms} \pm 21.8 \mathrm{μs}\left({\color{gray}0.935 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$45.3 \mathrm{ms} \pm 280 \mathrm{μs}\left({\color{red}7.59 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$33.8 \mathrm{ms} \pm 204 \mathrm{μs}\left({\color{gray}-1.216 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$37.3 \mathrm{ms} \pm 279 \mathrm{μs}\left({\color{gray}1.70 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$33.2 \mathrm{ms} \pm 192 \mathrm{μs}\left({\color{lightgreen}-23.490 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$45.6 \mathrm{ms} \pm 243 \mathrm{μs}\left({\color{red}6.84 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$51.3 \mathrm{ms} \pm 357 \mathrm{μs}\left({\color{gray}0.744 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$41.8 \mathrm{ms} \pm 193 \mathrm{μs}\left({\color{gray}3.52 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$96.4 \mathrm{ms} \pm 567 \mathrm{μs}\left({\color{gray}2.36 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$35.2 \mathrm{ms} \pm 233 \mathrm{μs}\left({\color{gray}1.51 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$265 \mathrm{ms} \pm 1.09 \mathrm{ms}\left({\color{lightgreen}-5.519 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$11.0 \mathrm{ms} \pm 69.5 \mathrm{μs}\left({\color{gray}2.84 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$10.9 \mathrm{ms} \pm 58.4 \mathrm{μs}\left({\color{gray}0.213 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$11.0 \mathrm{ms} \pm 73.8 \mathrm{μs}\left({\color{gray}1.75 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$11.0 \mathrm{ms} \pm 77.3 \mathrm{μs}\left({\color{gray}-0.135 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$10.9 \mathrm{ms} \pm 62.0 \mathrm{μs}\left({\color{gray}0.412 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$10.9 \mathrm{ms} \pm 67.7 \mathrm{μs}\left({\color{gray}1.59 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$11.1 \mathrm{ms} \pm 68.3 \mathrm{μs}\left({\color{gray}1.01 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$11.2 \mathrm{ms} \pm 67.0 \mathrm{μs}\left({\color{gray}3.44 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$11.6 \mathrm{ms} \pm 75.1 \mathrm{μs}\left({\color{red}5.97 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$11.8 \mathrm{ms} \pm 76.4 \mathrm{μs}\left({\color{red}5.45 \mathrm{\%}}\right) $$ Flame Graph

representative_read_entity

Function Value Mean Flame graphs
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/block/v/1 $$11.6 \mathrm{ms} \pm 81.9 \mathrm{μs}\left({\color{gray}3.13 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$11.7 \mathrm{ms} \pm 68.3 \mathrm{μs}\left({\color{gray}3.02 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$11.8 \mathrm{ms} \pm 74.0 \mathrm{μs}\left({\color{gray}3.61 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$11.2 \mathrm{ms} \pm 85.2 \mathrm{μs}\left({\color{gray}0.735 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$12.2 \mathrm{ms} \pm 69.9 \mathrm{μs}\left({\color{red}7.68 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$11.6 \mathrm{ms} \pm 82.0 \mathrm{μs}\left({\color{gray}2.57 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$11.4 \mathrm{ms} \pm 51.7 \mathrm{μs}\left({\color{gray}1.45 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$12.3 \mathrm{ms} \pm 71.2 \mathrm{μs}\left({\color{red}11.2 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$11.8 \mathrm{ms} \pm 78.7 \mathrm{μs}\left({\color{gray}4.87 \mathrm{\%}}\right) $$ Flame Graph

representative_read_entity_type

Function Value Mean Flame graphs
get_entity_type_by_id Account ID: bf5a9ef5-dc3b-43cf-a291-6210c0321eba $$9.50 \mathrm{ms} \pm 82.2 \mathrm{μs}\left({\color{red}7.51 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$65.5 \mathrm{ms} \pm 441 \mathrm{μs}\left({\color{red}7.08 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$124 \mathrm{ms} \pm 735 \mathrm{μs}\left({\color{gray}4.88 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$71.0 \mathrm{ms} \pm 476 \mathrm{μs}\left({\color{gray}4.02 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$84.0 \mathrm{ms} \pm 491 \mathrm{μs}\left({\color{red}6.37 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$95.3 \mathrm{ms} \pm 557 \mathrm{μs}\left({\color{red}6.40 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$101 \mathrm{ms} \pm 537 \mathrm{μs}\left({\color{red}6.68 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$48.6 \mathrm{ms} \pm 274 \mathrm{μs}\left({\color{red}6.11 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$82.9 \mathrm{ms} \pm 544 \mathrm{μs}\left({\color{red}8.78 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$56.0 \mathrm{ms} \pm 448 \mathrm{μs}\left({\color{red}7.26 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$68.7 \mathrm{ms} \pm 630 \mathrm{μs}\left({\color{red}12.1 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$69.3 \mathrm{ms} \pm 499 \mathrm{μs}\left({\color{red}6.72 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$70.6 \mathrm{ms} \pm 589 \mathrm{μs}\left({\color{red}9.93 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$127 \mathrm{ms} \pm 762 \mathrm{μs}\left({\color{gray}3.50 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$136 \mathrm{ms} \pm 678 \mathrm{μs}\left({\color{gray}-0.282 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$18.9 \mathrm{ms} \pm 157 \mathrm{μs}\left({\color{gray}-0.583 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$523 \mathrm{ms} \pm 1.41 \mathrm{ms}\left({\color{gray}-2.026 \mathrm{\%}}\right) $$ Flame Graph

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/infra Relates to version control, CI, CD or IaC (area)

Development

Successfully merging this pull request may close these issues.

3 participants