Skip to content

SRE-1003: Let a deploy catalog entry choose its ECR architecture - #9540

Draft
TimDiekmann wants to merge 2 commits into
mainfrom
t/sre-1003-ecr-architecture-per-service
Draft

SRE-1003: Let a deploy catalog entry choose its ECR architecture#9540
TimDiekmann wants to merge 2 commits into
mainfrom
t/sre-1003-ecr-architecture-per-service

Conversation

@TimDiekmann

@TimDiekmann TimDiekmann commented Sep 4, 2026

Copy link
Copy Markdown
Member

🌟 What is the purpose of this PR?

ECR holds one architecture per repository, because Amazon Inspector does not scan manifest lists. Until now that architecture was hard-wired to arm64 for every service, and publishing to GHCR implied building both architectures. The upcoming atlas-fit image (GPU fit job on x86 instances) is amd64-only and goes to ECR and GHCR, so the deploy catalog gains two optional fields.

🔍 What does this change?

  • .github/workflows/deploy.yml: an optional arches per catalog entry (default: both for GHCR services, arm64 otherwise) and an optional ecr_arch (default: the only arch when a service builds one, else arm64). The build matrix expands arches; the ECR push compares against ecr_arch instead of a literal arm64; the pull-request-time amd64 skip no longer drops a service whose only architecture is amd64. The setup step fails loudly when ecr_arch is not among arches, since the ECR push would otherwise silently never happen.
  • No catalog entry changes. Every existing service resolves to the same build matrix and tags as before; the atlas-fit entry follows with its Dockerfile (H-6806).

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?

  • The resolve and build-matrix jq programs run against a sample catalog (graph ECR+GHCR, kratos ECR-only, atlas-fit ECR+GHCR with arches: ["amd64"], a multi-arch entry with ecr_arch: "amd64") in push and pull-request mode: existing services keep their matrix, atlas-fit builds amd64 only in both modes.
  • The consistency check flags an entry whose ecr_arch is outside its arches and passes GHCR-only entries.
  • actionlint reports the same findings as on main; the workflow parses.

ECR holds one architecture per repository because Inspector does not scan
manifest lists. Until now that architecture was arm64 for every service. A
catalog entry can now set `ecr_arch`; ECR-only services build just that
arch, GHCR services keep building both for their multi-arch manifest, and
the PR-time amd64 skip no longer drops a service whose only arch is amd64.
Defaults leave every existing service unchanged.
@TimDiekmann TimDiekmann self-assigned this Sep 4, 2026
@vercel

vercel Bot commented Sep 4, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
hash Ready Ready Preview Sep 4, 2026 1:29pm UTC
hashdotdesign-tokens Ready Ready Preview Sep 4, 2026 1:29pm UTC
petrinaut Ready Ready Preview Sep 4, 2026 1:29pm UTC
petrinaut-docs Ready Ready Preview Sep 4, 2026 1:29pm UTC

Request Review

@codecov

codecov Bot commented Sep 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 60.89%. Comparing base (eea4e1f) to head (57fbb92).
⚠️ Report is 7 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9540   +/-   ##
=======================================
  Coverage   60.89%   60.89%           
=======================================
  Files        1461     1461           
  Lines      146725   146725           
  Branches     6744     6744           
=======================================
  Hits        89343    89343           
  Misses      56264    56264           
  Partials     1118     1118           
Flag Coverage Δ
apps.hash-ai-worker-ts 1.99% <ø> (ø)
apps.hash-api 15.41% <ø> (ø)
apps.hash-graph 13.32% <ø> (ø)
blockprotocol.type-system 38.15% <ø> (ø)
local.claude-hooks 0.00% <ø> (ø)
local.harpc-client 51.49% <ø> (ø)
local.hash-backend-utils 3.27% <ø> (ø)
local.hash-graph-sdk 10.02% <ø> (ø)
local.hash-isomorphic-utils 12.22% <ø> (ø)
rust.antsi 2.36% <ø> (ø)
rust.error-stack 90.81% <ø> (ø)
rust.harpc-codec 84.70% <ø> (ø)
rust.harpc-net 96.21% <ø> (ø)
rust.harpc-tower 67.03% <ø> (ø)
rust.harpc-types 0.00% <ø> (ø)
rust.harpc-wire-protocol 92.23% <ø> (ø)
rust.hash-codec 72.76% <ø> (ø)
rust.hash-config 74.74% <ø> (ø)
rust.hash-graph-api 19.71% <ø> (ø)
rust.hash-graph-authentication 96.02% <ø> (ø)
rust.hash-graph-authorization 63.14% <ø> (ø)
rust.hash-graph-embeddings 91.88% <ø> (ø)
rust.hash-graph-postgres-store 32.15% <ø> (ø)
rust.hash-graph-store 48.41% <ø> (ø)
rust.hash-graph-temporal-versioning 50.18% <ø> (ø)
rust.hash-graph-types 0.00% <ø> (ø)
rust.hash-graph-validation 84.71% <ø> (ø)
rust.hash-middleware 90.92% <ø> (ø)
rust.hashql-ast 89.63% <ø> (ø)
rust.hashql-compiletest 28.39% <ø> (ø)
rust.hashql-core 78.95% <ø> (ø)
rust.hashql-diagnostics 72.51% <ø> (ø)
rust.hashql-eval 79.82% <ø> (ø)
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.

Publishing to GHCR no longer implies building both architectures: `arches`
names what a service builds, and the ECR architecture follows from it when
there is only one. The setup step fails when `ecr_arch` is not among the
arches built, since the ECR push would otherwise silently never happen.
@codspeed-hq

codspeed-hq Bot commented Sep 4, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 98 untouched benchmarks


Comparing t/sre-1003-ecr-architecture-per-service (57fbb92) with main (4854d5f)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (9371f71) during the generation of this report, so 4854d5f was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@github-actions

github-actions Bot commented Sep 4, 2026

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 $$20.3 \mathrm{ms} \pm 114 \mathrm{μs}\left({\color{gray}0.843 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.66 \mathrm{ms} \pm 14.4 \mathrm{μs}\left({\color{gray}1.04 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$9.95 \mathrm{ms} \pm 78.5 \mathrm{μs}\left({\color{gray}3.13 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$34.0 \mathrm{ms} \pm 268 \mathrm{μs}\left({\color{gray}1.91 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$11.2 \mathrm{ms} \pm 79.5 \mathrm{μs}\left({\color{gray}-0.127 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$19.1 \mathrm{ms} \pm 148 \mathrm{μs}\left({\color{gray}2.15 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$21.0 \mathrm{ms} \pm 200 \mathrm{μs}\left({\color{gray}0.362 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.90 \mathrm{ms} \pm 17.8 \mathrm{μs}\left({\color{gray}-1.655 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$10.9 \mathrm{ms} \pm 76.1 \mathrm{μs}\left({\color{gray}1.48 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$2.91 \mathrm{ms} \pm 16.9 \mathrm{μs}\left({\color{gray}0.007 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.35 \mathrm{ms} \pm 12.7 \mathrm{μs}\left({\color{gray}-0.754 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$2.60 \mathrm{ms} \pm 13.9 \mathrm{μs}\left({\color{gray}-0.974 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$3.99 \mathrm{ms} \pm 24.6 \mathrm{μs}\left({\color{gray}-0.270 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.77 \mathrm{ms} \pm 14.5 \mathrm{μs}\left({\color{gray}-1.029 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$3.24 \mathrm{ms} \pm 20.0 \mathrm{μs}\left({\color{gray}0.675 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$3.43 \mathrm{ms} \pm 16.4 \mathrm{μs}\left({\color{gray}0.053 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.68 \mathrm{ms} \pm 13.4 \mathrm{μs}\left({\color{gray}-1.667 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$3.24 \mathrm{ms} \pm 23.0 \mathrm{μs}\left({\color{gray}2.03 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.14 \mathrm{ms} \pm 11.0 \mathrm{μs}\left({\color{gray}0.125 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.09 \mathrm{ms} \pm 11.8 \mathrm{μs}\left({\color{gray}0.665 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.21 \mathrm{ms} \pm 12.4 \mathrm{μs}\left({\color{gray}1.01 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.38 \mathrm{ms} \pm 11.7 \mathrm{μs}\left({\color{gray}-0.630 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.24 \mathrm{ms} \pm 10.4 \mathrm{μs}\left({\color{gray}-0.525 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.47 \mathrm{ms} \pm 14.6 \mathrm{μs}\left({\color{gray}0.039 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$2.38 \mathrm{ms} \pm 12.4 \mathrm{μs}\left({\color{gray}0.031 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.17 \mathrm{ms} \pm 14.6 \mathrm{μs}\left({\color{gray}0.160 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$2.31 \mathrm{ms} \pm 16.6 \mathrm{μs}\left({\color{gray}1.14 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$2.70 \mathrm{ms} \pm 14.0 \mathrm{μs}\left({\color{gray}-0.229 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.38 \mathrm{ms} \pm 10.3 \mathrm{μs}\left({\color{gray}-1.357 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$2.54 \mathrm{ms} \pm 11.0 \mathrm{μs}\left({\color{gray}-1.737 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$2.65 \mathrm{ms} \pm 12.9 \mathrm{μs}\left({\color{gray}0.238 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.36 \mathrm{ms} \pm 12.4 \mathrm{μs}\left({\color{gray}-1.809 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$2.59 \mathrm{ms} \pm 13.2 \mathrm{μs}\left({\color{gray}-1.064 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$24.7 \mathrm{ms} \pm 117 \mathrm{μs}\left({\color{gray}1.45 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$54.2 \mathrm{ms} \pm 351 \mathrm{μs}\left({\color{gray}3.10 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$27.8 \mathrm{ms} \pm 162 \mathrm{μs}\left({\color{gray}1.81 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$30.2 \mathrm{ms} \pm 206 \mathrm{μs}\left({\color{gray}3.43 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$34.1 \mathrm{ms} \pm 196 \mathrm{μs}\left({\color{red}5.16 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$25.6 \mathrm{ms} \pm 147 \mathrm{μs}\left({\color{gray}-0.547 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$315 \mathrm{ms} \pm 949 \mathrm{μs}\left({\color{gray}4.48 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$71.1 \mathrm{ms} \pm 417 \mathrm{μs}\left({\color{red}5.76 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$55.0 \mathrm{ms} \pm 351 \mathrm{μs}\left({\color{gray}1.16 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$237 \mathrm{ms} \pm 736 \mathrm{μs}\left({\color{red}13.8 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$8.37 \mathrm{ms} \pm 62.9 \mathrm{μs}\left({\color{gray}3.72 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$8.41 \mathrm{ms} \pm 56.3 \mathrm{μs}\left({\color{gray}2.23 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$8.51 \mathrm{ms} \pm 69.2 \mathrm{μs}\left({\color{gray}1.75 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$8.63 \mathrm{ms} \pm 60.7 \mathrm{μs}\left({\color{red}7.06 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$8.74 \mathrm{ms} \pm 71.6 \mathrm{μs}\left({\color{red}5.45 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$8.22 \mathrm{ms} \pm 54.4 \mathrm{μs}\left({\color{gray}2.28 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$8.44 \mathrm{ms} \pm 56.0 \mathrm{μs}\left({\color{red}5.59 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$8.38 \mathrm{ms} \pm 55.7 \mathrm{μs}\left({\color{gray}3.77 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$8.33 \mathrm{ms} \pm 68.3 \mathrm{μs}\left({\color{gray}1.02 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$8.68 \mathrm{ms} \pm 62.9 \mathrm{μs}\left({\color{gray}1.30 \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 $$8.80 \mathrm{ms} \pm 53.3 \mathrm{μs}\left({\color{gray}3.82 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$8.45 \mathrm{ms} \pm 55.1 \mathrm{μs}\left({\color{gray}-0.871 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$8.45 \mathrm{ms} \pm 56.2 \mathrm{μs}\left({\color{gray}-2.309 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$8.71 \mathrm{ms} \pm 50.7 \mathrm{μs}\left({\color{gray}1.46 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$8.48 \mathrm{ms} \pm 44.4 \mathrm{μs}\left({\color{gray}-1.791 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$8.56 \mathrm{ms} \pm 56.6 \mathrm{μs}\left({\color{gray}0.742 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$8.59 \mathrm{ms} \pm 53.2 \mathrm{μs}\left({\color{gray}-0.287 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$8.42 \mathrm{ms} \pm 43.0 \mathrm{μs}\left({\color{gray}0.050 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$8.52 \mathrm{ms} \pm 50.6 \mathrm{μs}\left({\color{gray}-0.010 \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 $$6.54 \mathrm{ms} \pm 45.4 \mathrm{μs}\left({\color{gray}4.89 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$45.1 \mathrm{ms} \pm 274 \mathrm{μs}\left({\color{gray}1.46 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$86.7 \mathrm{ms} \pm 404 \mathrm{μs}\left({\color{gray}2.83 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$51.2 \mathrm{ms} \pm 352 \mathrm{μs}\left({\color{gray}3.59 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$59.4 \mathrm{ms} \pm 329 \mathrm{μs}\left({\color{red}5.22 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$65.3 \mathrm{ms} \pm 347 \mathrm{μs}\left({\color{gray}4.91 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$69.8 \mathrm{ms} \pm 397 \mathrm{μs}\left({\color{gray}2.85 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$36.8 \mathrm{ms} \pm 177 \mathrm{μs}\left({\color{gray}4.09 \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 $$58.3 \mathrm{ms} \pm 321 \mathrm{μs}\left({\color{gray}-0.942 \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 $$41.9 \mathrm{ms} \pm 187 \mathrm{μs}\left({\color{gray}3.56 \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 $$48.5 \mathrm{ms} \pm 242 \mathrm{μs}\left({\color{gray}0.940 \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 $$50.4 \mathrm{ms} \pm 320 \mathrm{μs}\left({\color{gray}1.31 \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 $$49.9 \mathrm{ms} \pm 337 \mathrm{μs}\left({\color{gray}-0.761 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$88.5 \mathrm{ms} \pm 431 \mathrm{μs}\left({\color{lightgreen}-9.569 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$98.7 \mathrm{ms} \pm 365 \mathrm{μs}\left({\color{lightgreen}-7.520 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$17.6 \mathrm{ms} \pm 115 \mathrm{μs}\left({\color{gray}-1.041 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$415 \mathrm{ms} \pm 1.04 \mathrm{ms}\left({\color{gray}-4.830 \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.

1 participant