Skip to content

SRE-812: Wire atlas and petrinaut-opt into the deploy service catalog#9032

Merged
TimDiekmann merged 7 commits into
mainfrom
t/sre-812-wire-atlas-and-petrinaut-opt-into-cd-deployyml-promote
Jul 16, 2026
Merged

SRE-812: Wire atlas and petrinaut-opt into the deploy service catalog#9032
TimDiekmann merged 7 commits into
mainfrom
t/sre-812-wire-atlas-and-petrinaut-opt-into-cd-deployyml-promote

Conversation

@TimDiekmann

@TimDiekmann TimDiekmann commented Jul 15, 2026

Copy link
Copy Markdown
Member

🌟 What is the purpose of this PR?

Wires the two new services being deployed this week into the CD service catalog, so image publishes roll them out automatically:

  • atlas ships inside the existing graph image (graph atlas subcommand) — it becomes the fourth ECS redeploy target of @apps/hash-graph, alongside graph, graph-admin and type-fetcher.
  • petrinaut-opt gets its own catalog entry (own image, own ECR repo hashintel/hash/petrinaut-opt) with an ECS redeploy target in the staging app cluster.

Infrastructure (ECS services, security groups, IAM) is provisioned separately in hashintel/internal-infra; the production promotion registry is a separate PR there as well.

🔗 Related links

🚫 Blocked by

  • The petrinaut-opt Dockerfile landing on main at apps/petrinaut-opt/docker/Dockerfile. This PR must merge after it: the catalog references that path, and a workflow_dispatch run (which rebuilds the full catalog) or a push touching libs/@hashintel/petrinaut-cli would otherwise fail the build matrix on the missing Dockerfile.

🔍 What does this change?

  • deploy.yml service catalog:
    • atlas added to the ecs array of @apps/hash-graph (h-stage-euc1-app-atlas)
    • petrinaut-opt entry added: not a turbo package (Python/uv), so change detection runs on paths (apps/petrinaut-opt, libs/@hashintel/petrinaut-cli, libs/@hashintel/petrinaut-core) like kratos/hydra; build context is the repo root because the image bundles the petrinaut-cli process; pushes to ECR only

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

⚠️ Known issues

  • The petrinaut-opt entry assumes the package stays turbo-invisible (no package.json with a build:docker task). If the Dockerfile PR adds one, the setup job's fail-loudly guard will flag it and the entry switches from paths to package-based detection.

🐾 Next steps

  • After merging, trigger a workflow_dispatch Deploy run to publish the first petrinaut-opt image (the merge commit itself won't match its paths)
  • Merge the internal-infra promote-registry PR once the first petrinaut-opt :staging image exists and the production ECS services are applied

Copilot AI review requested due to automatic review settings July 15, 2026 14:55
@vercel

vercel Bot commented Jul 15, 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 16, 2026 4:49pm
hashdotdesign-tokens Ready Ready Preview, Comment Jul 16, 2026 4:49pm
petrinaut Ready Ready Preview, Comment Jul 16, 2026 4:49pm

@cursor

cursor Bot commented Jul 15, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Changes which services build and redeploy on main; petrinaut-opt depends on the Dockerfile path and path filters being correct, and a full catalog run fails if that Dockerfile is missing.

Overview
Extends the Deploy workflow service catalog so staging rollouts cover atlas and petrinaut-opt.

@apps/hash-graph now lists a fourth ECS redeploy target (h-stage-euc1-app-atlas), so when the graph image publishes, atlas is rolled out alongside graph, graph-admin, and type-fetcher (same image).

A new petrinaut-opt catalog entry builds from apps/petrinaut-opt/docker/Dockerfile with repo-root context, pushes to ECR and GHCR, and redeploys h-stage-euc1-app-petrinaut-opt. Because it is not turbo-visible yet, affected detection uses paths on apps/petrinaut-opt and the petrinaut libs (same pattern as kratos/hydra), with a TODO to switch to package-based detection later.

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

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

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Comment thread .github/workflows/deploy.yml
@codecov

codecov Bot commented Jul 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.19%. Comparing base (96e7a87) to head (47f1286).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #9032   +/-   ##
=======================================
  Coverage   59.19%   59.19%           
=======================================
  Files        1389     1389           
  Lines      135001   135001           
  Branches     6183     6183           
=======================================
  Hits        79910    79910           
  Misses      54151    54151           
  Partials      940      940           
Flag Coverage Δ
apps.hash-ai-worker-ts 1.92% <ø> (ø)
apps.hash-api 7.59% <ø> (ø)
blockprotocol.type-system 40.84% <ø> (ø)
local.claude-hooks 0.00% <ø> (ø)
local.harpc-client 51.49% <ø> (ø)
local.hash-backend-utils 1.88% <ø> (ø)
local.hash-graph-sdk 10.02% <ø> (ø)
local.hash-isomorphic-utils 0.17% <ø> (ø)
rust.antsi 0.00% <ø> (ø)
rust.error-stack 90.89% <ø> (ø)
rust.harpc-codec 84.70% <ø> (ø)
rust.harpc-net 96.19% <ø> (ø)
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 24.59% <ø> (ø)
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.

@codspeed-hq

codspeed-hq Bot commented Jul 15, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 98 untouched benchmarks


Comparing t/sre-812-wire-atlas-and-petrinaut-opt-into-cd-deployyml-promote (47f1286) with main (96e7a87)1

Open in CodSpeed

Footnotes

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

@TimDiekmann
TimDiekmann force-pushed the t/sre-812-wire-atlas-and-petrinaut-opt-into-cd-deployyml-promote branch from 1e8c809 to 946ee1f Compare July 16, 2026 15:03
Copilot AI review requested due to automatic review settings July 16, 2026 15:03

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Comment thread .github/workflows/deploy.yml
Comment thread .github/workflows/deploy.yml
Copilot AI review requested due to automatic review settings July 16, 2026 15:08

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Copilot AI review requested due to automatic review settings July 16, 2026 15:11

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@claude claude Bot 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.

Review outcome: no blocking issues found — this would be an approval, but this session is not permitted to submit approving reviews, so a human approval is still needed.

What was checked:

  • The atlas ECS entry matches the existing graph/graph-admin/type-fetcher pattern and flows correctly through the deploy matrix (service/cluster/service_name are exactly what the redeploy job consumes).
  • The petrinaut-opt entry correctly uses paths-based detection: @apps/petrinaut-opt's package.json has no build:docker task, so turbo cannot see it and the setup job's fail-loudly guard stays quiet, as the PR's known-issues note assumes.
  • It lands in the build matrix as arm64-only (ECR-only push, no GHCR), is excluded from the manifest matrix, and is included in the staging-tag and deploy matrices — all consistent with the workflow's jq logic.
  • The stated merge blocker is resolved: apps/petrinaut-opt/docker/Dockerfile now exists on main, builds from the repo root (matching context: "."), and prunes @hashintel/petrinaut-cli.
  • The three watched paths cover the CLI's full workspace dependency closure (petrinaut-cli depends only on petrinaut-core, which has no workspace deps). Remaining gap — root manifest changes (yarn.lock, turbo.json) not triggering a rebuild — is acknowledged and covered by the documented workflow_dispatch fallback.
  • CI on the head commit is green apart from a failed copilot-pull-request-reviewer bot check (reviewer bot, not a build/test gate) and a few still-running integration jobs that a workflow-file-only change cannot affect.

Operational note (non-blocking): the first graph image publish after merge will attempt to redeploy h-stage-euc1-app-atlas, so the SRE-811 infra (ECS service + hashintel/hash/petrinaut-opt ECR repo) needs to be applied before the next publish to avoid a failed deploy job.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 47f1286. Configure here.

Comment thread .github/workflows/deploy.yml
@TimDiekmann
TimDiekmann added this pull request to the merge queue Jul 16, 2026
Merged via the queue into main with commit a1d86bd Jul 16, 2026
185 checks passed
@TimDiekmann
TimDiekmann deleted the t/sre-812-wire-atlas-and-petrinaut-opt-into-cd-deployyml-promote branch July 16, 2026 17:31
@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 $$26.0 \mathrm{ms} \pm 179 \mathrm{μs}\left({\color{gray}-1.787 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.41 \mathrm{ms} \pm 23.3 \mathrm{μs}\left({\color{gray}-1.863 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$12.3 \mathrm{ms} \pm 105 \mathrm{μs}\left({\color{lightgreen}-13.631 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$41.9 \mathrm{ms} \pm 295 \mathrm{μs}\left({\color{gray}-2.737 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$15.2 \mathrm{ms} \pm 124 \mathrm{μs}\left({\color{gray}2.84 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$24.0 \mathrm{ms} \pm 226 \mathrm{μs}\left({\color{gray}-0.970 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$26.4 \mathrm{ms} \pm 185 \mathrm{μs}\left({\color{lightgreen}-5.345 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.70 \mathrm{ms} \pm 17.0 \mathrm{μs}\left({\color{lightgreen}-5.243 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$13.1 \mathrm{ms} \pm 90.7 \mathrm{μs}\left({\color{lightgreen}-14.505 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.73 \mathrm{ms} \pm 18.5 \mathrm{μs}\left({\color{gray}0.689 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.01 \mathrm{ms} \pm 14.0 \mathrm{μs}\left({\color{gray}-0.624 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.41 \mathrm{ms} \pm 17.7 \mathrm{μs}\left({\color{gray}2.21 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.07 \mathrm{ms} \pm 30.6 \mathrm{μs}\left({\color{gray}0.015 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.55 \mathrm{ms} \pm 22.9 \mathrm{μs}\left({\color{gray}0.315 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.04 \mathrm{ms} \pm 20.8 \mathrm{μs}\left({\color{gray}-2.126 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.38 \mathrm{ms} \pm 28.0 \mathrm{μs}\left({\color{gray}1.38 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.58 \mathrm{ms} \pm 24.1 \mathrm{μs}\left({\color{gray}3.64 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.24 \mathrm{ms} \pm 30.7 \mathrm{μs}\left({\color{red}5.08 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.77 \mathrm{ms} \pm 18.6 \mathrm{μs}\left({\color{red}5.77 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.58 \mathrm{ms} \pm 14.7 \mathrm{μs}\left({\color{gray}2.74 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.67 \mathrm{ms} \pm 14.7 \mathrm{μs}\left({\color{gray}3.05 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.95 \mathrm{ms} \pm 14.5 \mathrm{μs}\left({\color{gray}4.49 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.77 \mathrm{ms} \pm 17.5 \mathrm{μs}\left({\color{gray}4.90 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.91 \mathrm{ms} \pm 12.4 \mathrm{μs}\left({\color{gray}2.47 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$3.02 \mathrm{ms} \pm 19.5 \mathrm{μs}\left({\color{gray}-0.042 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.75 \mathrm{ms} \pm 13.4 \mathrm{μs}\left({\color{gray}0.772 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$2.98 \mathrm{ms} \pm 14.1 \mathrm{μs}\left({\color{gray}2.77 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.37 \mathrm{ms} \pm 17.9 \mathrm{μs}\left({\color{gray}-0.953 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.00 \mathrm{ms} \pm 12.3 \mathrm{μs}\left({\color{gray}-0.506 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.25 \mathrm{ms} \pm 13.3 \mathrm{μs}\left({\color{gray}-0.924 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.41 \mathrm{ms} \pm 25.6 \mathrm{μs}\left({\color{gray}2.41 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.98 \mathrm{ms} \pm 15.0 \mathrm{μs}\left({\color{gray}0.552 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.40 \mathrm{ms} \pm 29.2 \mathrm{μs}\left({\color{red}5.75 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$41.8 \mathrm{ms} \pm 186 \mathrm{μs}\left({\color{gray}-1.116 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$33.4 \mathrm{ms} \pm 161 \mathrm{μs}\left({\color{gray}0.666 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$36.3 \mathrm{ms} \pm 261 \mathrm{μs}\left({\color{gray}2.69 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$32.9 \mathrm{ms} \pm 191 \mathrm{μs}\left({\color{gray}0.498 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$43.0 \mathrm{ms} \pm 215 \mathrm{μs}\left({\color{gray}3.53 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$49.1 \mathrm{ms} \pm 256 \mathrm{μs}\left({\color{gray}-1.551 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$40.1 \mathrm{ms} \pm 235 \mathrm{μs}\left({\color{gray}-0.981 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$88.6 \mathrm{ms} \pm 592 \mathrm{μs}\left({\color{gray}-3.262 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$33.7 \mathrm{ms} \pm 158 \mathrm{μs}\left({\color{gray}-0.771 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$301 \mathrm{ms} \pm 879 \mathrm{μs}\left({\color{red}9.22 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$10.8 \mathrm{ms} \pm 56.1 \mathrm{μs}\left({\color{gray}-3.944 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$11.0 \mathrm{ms} \pm 67.6 \mathrm{μs}\left({\color{gray}-3.714 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$11.1 \mathrm{ms} \pm 80.6 \mathrm{μs}\left({\color{gray}1.14 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$10.9 \mathrm{ms} \pm 54.2 \mathrm{μs}\left({\color{gray}-0.263 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$11.0 \mathrm{ms} \pm 56.1 \mathrm{μs}\left({\color{gray}0.077 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$10.9 \mathrm{ms} \pm 55.5 \mathrm{μs}\left({\color{gray}-0.687 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$11.0 \mathrm{ms} \pm 64.8 \mathrm{μs}\left({\color{gray}-0.806 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$11.0 \mathrm{ms} \pm 54.1 \mathrm{μs}\left({\color{gray}-1.339 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$11.2 \mathrm{ms} \pm 62.9 \mathrm{μs}\left({\color{gray}-0.783 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$12.1 \mathrm{ms} \pm 78.8 \mathrm{μs}\left({\color{red}7.12 \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.3 \mathrm{ms} \pm 61.5 \mathrm{μs}\left({\color{gray}-1.923 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$11.5 \mathrm{ms} \pm 59.1 \mathrm{μs}\left({\color{gray}1.20 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$11.2 \mathrm{ms} \pm 54.8 \mathrm{μs}\left({\color{gray}-2.152 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$11.6 \mathrm{ms} \pm 73.6 \mathrm{μs}\left({\color{gray}-1.132 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$11.3 \mathrm{ms} \pm 58.1 \mathrm{μs}\left({\color{gray}-1.416 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$11.4 \mathrm{ms} \pm 66.7 \mathrm{μs}\left({\color{gray}-0.314 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$11.2 \mathrm{ms} \pm 48.2 \mathrm{μs}\left({\color{gray}-1.235 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$11.9 \mathrm{ms} \pm 58.9 \mathrm{μs}\left({\color{gray}3.40 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$11.4 \mathrm{ms} \pm 51.2 \mathrm{μs}\left({\color{gray}0.156 \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 $$8.46 \mathrm{ms} \pm 50.2 \mathrm{μs}\left({\color{gray}-0.604 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$54.2 \mathrm{ms} \pm 455 \mathrm{μs}\left({\color{gray}-3.710 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$105 \mathrm{ms} \pm 519 \mathrm{μs}\left({\color{gray}-2.076 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$61.4 \mathrm{ms} \pm 385 \mathrm{μs}\left({\color{gray}-2.996 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$70.8 \mathrm{ms} \pm 426 \mathrm{μs}\left({\color{gray}-3.032 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$79.5 \mathrm{ms} \pm 514 \mathrm{μs}\left({\color{gray}-3.582 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$85.0 \mathrm{ms} \pm 504 \mathrm{μs}\left({\color{gray}-2.292 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$42.6 \mathrm{ms} \pm 214 \mathrm{μs}\left({\color{gray}-0.389 \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 $$70.7 \mathrm{ms} \pm 430 \mathrm{μs}\left({\color{gray}-0.334 \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 $$48.5 \mathrm{ms} \pm 229 \mathrm{μs}\left({\color{gray}-1.236 \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 $$58.5 \mathrm{ms} \pm 382 \mathrm{μs}\left({\color{gray}1.26 \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 $$59.8 \mathrm{ms} \pm 414 \mathrm{μs}\left({\color{gray}-0.298 \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 $$59.9 \mathrm{ms} \pm 333 \mathrm{μs}\left({\color{gray}-0.759 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$129 \mathrm{ms} \pm 480 \mathrm{μs}\left({\color{gray}4.21 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$141 \mathrm{ms} \pm 518 \mathrm{μs}\left({\color{red}6.11 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$18.7 \mathrm{ms} \pm 107 \mathrm{μs}\left({\color{lightgreen}-22.054 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$547 \mathrm{ms} \pm 987 \mathrm{μs}\left({\color{gray}2.94 \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