hash icon indicating copy to clipboard operation
hash copied to clipboard

Update axum monorepo

Open hash-worker[bot] opened this issue 10 months ago • 2 comments

This PR contains the following updates:

Package Type Update Change
axum workspace.dependencies minor =0.7.5 -> =0.8.4
axum-core workspace.dependencies patch =0.5.0 -> =0.5.2

[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

tokio-rs/axum (axum)

v0.8.4: axum v0.8.4

Compare Source

  • added: Router::reset_fallback (#​3320)
  • added: WebSocketUpgrade::selected_protocol (#​3248)
  • fixed: Panic location for overlapping method routes (#​3319)
  • fixed: Don't leak a tokio task when using serve without graceful shutdown (#​3129)

v0.8.3: axum v0.8.3

Compare Source

  • added: Implement From<Bytes> for Message (#​3273)
  • added: Implement OptionalFromRequest for Json (#​3142)
  • added: Implement OptionalFromRequest for Extension (#​3157)
  • added: Allow setting the read buffer capacity of WebSocketUpgrade (#​3178)
  • changed: Improved code size / compile time of dependent crates (#​3285, #​3294)

v0.8.2: axum v0.8.2

Yanked from crates.io due to unforeseen breaking change, see #​3190 for details


  • added: Implement OptionalFromRequest for Json (#​3142)
  • added: Implement OptionalFromRequest for Extension (#​3157)
  • changed: Make the status function of rejections a const function, such as JsonRejection, QueryRejection and PathRejection (#​3168)

v0.8.0: axum v0.8.0

Compare Source

since rc.1

  • breaking: axum::extract::ws::Message now uses Bytes in place of Vec<u8>, and a new Utf8Bytes type in place of String, for its variants (#​3078)
  • breaking: Remove OptionalFromRequestParts impl for Query (#​3088)
  • changed: Upgraded tokio-tungstenite to 0.26 (#​3078)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#​3081)

full changelog

You can also read the blog post on tokio

Note: there are further relevant changes in axum-core's changelog

  • breaking: Upgrade matchit to 0.8, changing the path parameter syntax from /:single and /*many to /{single} and /{*many}; the old syntax produces a panic to avoid silent change in behavior (#​2645)
  • breaking: Require Sync for all handlers and services added to Router and MethodRouter (#​2473)
  • breaking: The tuple and tuple_struct Path extractor deserializers now check that the number of parameters matches the tuple length exactly (#​2931)
  • breaking: Move Host extractor to axum-extra (#​2956)
  • breaking: Remove WebSocket::close. Users should explicitly send close messages themselves. (#​2974)
  • breaking: Make serve generic over the listener and IO types (#​2941)
  • breaking: Remove Serve::tcp_nodelay and WithGracefulShutdown::tcp_nodelay. See serve::ListenerExt for an API that let you set arbitrary TCP stream properties. (#​2941)
  • breaking: Option<Path<T>> no longer swallows all error conditions, instead rejecting the request in many cases; see its documentation for details (#​2475)
  • breaking: axum::extract::ws::Message now uses Bytes in place of Vec<u8>, and a new Utf8Bytes type in place of String, for its variants (#​3078)
  • fixed: Skip SSE incompatible chars of serde_json::RawValue in Event::json_data (#​2992)
  • fixed: Don't panic when array type is used for path segment (#​3039)
  • fixed: Avoid setting content-length before middleware. This allows middleware to add bodies to requests without needing to manually set content-length (#​2897)
  • change: Update minimum rust version to 1.75 (#​2943)
  • changed: Upgraded tokio-tungstenite to 0.26 (#​3078)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#​3081)
  • added: Add method_not_allowed_fallback to set a fallback when a path matches but there is no handler for the given HTTP method (#​2903)
  • added: Add NoContent as a self-described shortcut for StatusCode::NO_CONTENT (#​2978)
  • added: Add support for WebSockets over HTTP/2. They can be enabled by changing get(ws_endpoint) handlers to any(ws_endpoint) (#​2894)
  • added: Add MethodFilter::CONNECT, routing::connect[_service] and MethodRouter::connect[_service] (#​2961)
  • added: Extend FailedToDeserializePathParams::kind enum with (ErrorKind::DeserializeError). This new variant captures both key, value, and message from named path parameters parse errors, instead of only deserialization error message in ErrorKind::Message. (#​2720)

v0.7.9: axum - v0.7.9

Compare Source

  • fixed: Avoid setting content-length before middleware (#​3031)

v0.7.8: axum - v0.7.8

Compare Source

  • fixed: Skip SSE incompatible chars of serde_json::RawValue in Event::json_data (#​2992)
  • added: Add method_not_allowed_fallback to set a fallback when a path matches but there is no handler for the given HTTP method (#​2903)
  • added: Add MethodFilter::CONNECT, routing::connect[_service] and MethodRouter::connect[_service] (#​2961)
  • added: Add NoContent as a self-described shortcut for StatusCode::NO_CONTENT (#​2978)

v0.7.7: axum - v0.7.7

Compare Source

  • change: Remove manual tables of content from the documentation, since rustdoc now generates tables of content in the sidebar (#​2921)

v0.7.6: axum - v0.7.6

Compare Source

  • change: Avoid cloning Arc during deserialization of Path
  • added: axum::serve::Serve::tcp_nodelay and axum::serve::WithGracefulShutdown::tcp_nodelay (#​2653)
  • added: Router::has_routes function (#​2790)
  • change: Update tokio-tungstenite to 0.23 (#​2841)
  • added: Serve::local_addr and WithGracefulShutdown::local_addr functions (#​2881)

Configuration

📅 Schedule: Branch creation - "before 4am every weekday,every weekend" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • [ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

hash-worker[bot] avatar Mar 29 '25 01:03 hash-worker[bot]

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package [email protected] --precise 0.8.6
info: syncing channel updates for 'nightly-2025-10-27-x86_64-unknown-linux-gnu'
info: latest update on 2025-10-27, rust version 1.93.0-nightly (f37aa9955 2025-10-26)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'llvm-tools'
info: downloading component 'miri'
info: downloading component 'rust-analyzer'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustc-codegen-cranelift'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'llvm-tools'
info: installing component 'miri'
info: installing component 'rust-analyzer'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustc-codegen-cranelift'
info: installing component 'rustfmt'
    Updating git repository `https://github.com/hashdeps/oxc`
From https://github.com/hashdeps/oxc
 * [new ref]             73c781b54fdd9b34accca9585ee2ebe091400104 -> refs/commit/73c781b54fdd9b34accca9585ee2ebe091400104
    Updating git repository `https://github.com/specta-rs/specta`
From https://github.com/specta-rs/specta
 * [new ref]         ab7d9245d5e2ace951707c3c383b0211ca7fc8ce -> refs/commit/ab7d9245d5e2ace951707c3c383b0211ca7fc8ce
    Updating crates.io index
    Updating git repository `https://github.com/google/tarpc`
From https://github.com/google/tarpc
 * [new ref]         f55f36d2d876b1868cfcf52f41d0456a60cf726c -> refs/commit/f55f36d2d876b1868cfcf52f41d0456a60cf726c
    Updating git repository `https://github.com/temporalio/sdk-core`
From https://github.com/temporalio/sdk-core
 * [new ref]         4a2368d19f57e971ca9b2465f1dbeede7a861c34 -> refs/commit/4a2368d19f57e971ca9b2465f1dbeede7a861c34
error: failed to select a version for the requirement `axum = "^0.7"`
candidate versions found which didn't match: 0.8.6
location searched: crates.io index
required by package `tonic v0.12.0`
    ... which satisfies dependency `tonic = "^0.12"` of package `temporal-client v0.1.0 (https://github.com/temporalio/sdk-core?rev=4a2368d#4a2368d1)`
    ... which satisfies git dependency `temporal-client` (locked to 0.1.0) of package `hash-temporal-client v0.0.0 (/tmp/renovate/repos/github/hashintel/hash/libs/@local/temporal-client)`
    ... which satisfies path dependency `hash-temporal-client` (locked to 0.0.0) of package `hash-graph v0.0.0 (/tmp/renovate/repos/github/hashintel/hash/apps/hash-graph)`

hash-worker[bot] avatar Mar 29 '25 01:03 hash-worker[bot]

Codecov Report

:x: Patch coverage is 0% with 13 lines in your changes missing coverage. Please review. :white_check_mark: Project coverage is 55.63%. Comparing base (4f60ef0) to head (bc1357d). :warning: Report is 3 commits behind head on main.

Files with missing lines Patch % Lines
libs/@local/graph/api/src/rest/principal.rs 0.00% 11 Missing :warning:
libs/@local/graph/api/src/rest/mod.rs 0.00% 1 Missing :warning:
libs/@local/graph/api/src/rest/permissions.rs 0.00% 1 Missing :warning:
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #6816      +/-   ##
==========================================
- Coverage   55.66%   55.63%   -0.04%     
==========================================
  Files        1112     1112              
  Lines      101286   101350      +64     
  Branches     4690     4690              
==========================================
+ Hits        56379    56383       +4     
- Misses      44244    44304      +60     
  Partials      663      663              
Flag Coverage Δ
apps.hash-ai-worker-ts 1.32% <ø> (ø)
apps.hash-api 0.00% <ø> (ø)
blockprotocol.type-system 40.84% <ø> (ø)
local.harpc-client 51.24% <ø> (ø)
local.hash-backend-utils 4.07% <ø> (ø)
local.hash-graph-sdk 10.88% <ø> (ø)
local.hash-isomorphic-utils 0.00% <ø> (ø)
rust.antsi 0.00% <ø> (ø)
rust.error-stack 88.77% <ø> (ø)
rust.harpc-codec 84.22% <ø> (ø)
rust.harpc-net 96.10% <ø> (+0.01%) :arrow_up:
rust.harpc-tower 66.80% <ø> (ø)
rust.harpc-types 0.00% <ø> (ø)
rust.harpc-wire-protocol 92.23% <ø> (ø)
rust.hash-codec 71.25% <ø> (ø)
rust.hash-graph-api 2.89% <0.00%> (-0.05%) :arrow_down:
rust.hash-graph-authorization 62.50% <ø> (ø)
rust.hash-graph-postgres-store 20.31% <ø> (ø)
rust.hash-graph-store 30.73% <ø> (ø)
rust.hash-graph-temporal-versioning 47.68% <ø> (ø)
rust.hash-graph-types 0.00% <ø> (ø)
rust.hash-graph-validation 83.29% <ø> (ø)
rust.hashql-ast 87.17% <ø> (ø)
rust.hashql-compiletest 53.03% <ø> (ø)
rust.hashql-core 81.27% <ø> (ø)
rust.hashql-diagnostics 72.28% <ø> (+0.04%) :arrow_up:
rust.hashql-eval 68.92% <ø> (ø)
rust.hashql-hir 90.26% <ø> (ø)
rust.hashql-syntax-jexpr 93.94% <ø> (ø)
rust.sarif 97.93% <ø> (ø)

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

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

codecov[bot] avatar Jun 08 '25 11:06 codecov[bot]

[!WARNING] This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite. Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

TimDiekmann avatar Oct 28 '25 10:10 TimDiekmann

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

hash-worker[bot] avatar Oct 28 '25 10:10 hash-worker[bot]

Benchmark results

@rust/hash-graph-benches – Integrations

policy_resolution_extra_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 10002 $$105 \mathrm{ms} \pm 628 \mathrm{μs}\left({\color{lightgreen}-34.646 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$5.32 \mathrm{ms} \pm 30.2 \mathrm{μs}\left({\color{gray}-0.084 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 5001 $$79.3 \mathrm{ms} \pm 579 \mathrm{μs}\left({\color{gray}2.60 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 27604 $$294 \mathrm{ms} \pm 1.45 \mathrm{ms}\left({\color{gray}-0.297 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$21.4 \mathrm{ms} \pm 165 \mathrm{μs}\left({\color{gray}3.73 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 13450 $$231 \mathrm{ms} \pm 766 \mathrm{μs}\left({\color{gray}0.858 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 11308 $$129 \mathrm{ms} \pm 7.08 \mathrm{ms}\left({\color{gray}-0.689 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$6.28 \mathrm{ms} \pm 36.3 \mathrm{μs}\left({\color{lightgreen}-86.295 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 5628 $$89.3 \mathrm{ms} \pm 528 \mathrm{μs}\left({\color{red}8.10 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_large

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2002 $$27.9 \mathrm{ms} \pm 194 \mathrm{μs}\left({\color{gray}-1.419 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.27 \mathrm{ms} \pm 12.2 \mathrm{μs}\left({\color{gray}0.904 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1001 $$12.7 \mathrm{ms} \pm 82.2 \mathrm{μs}\left({\color{gray}1.73 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$42.6 \mathrm{ms} \pm 273 \mathrm{μs}\left({\color{gray}1.54 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$13.9 \mathrm{ms} \pm 70.3 \mathrm{μs}\left({\color{gray}0.391 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1526 $$24.3 \mathrm{ms} \pm 133 \mathrm{μs}\left({\color{gray}2.51 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$27.9 \mathrm{ms} \pm 173 \mathrm{μs}\left({\color{lightgreen}-39.938 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.64 \mathrm{ms} \pm 16.1 \mathrm{μs}\left({\color{lightgreen}-65.975 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$14.3 \mathrm{ms} \pm 118 \mathrm{μs}\left({\color{lightgreen}-52.173 \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 20.9 \mathrm{μs}\left({\color{gray}1.32 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.85 \mathrm{ms} \pm 13.7 \mathrm{μs}\left({\color{gray}-0.323 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 51 $$3.25 \mathrm{ms} \pm 13.6 \mathrm{μs}\left({\color{gray}-0.056 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.15 \mathrm{ms} \pm 25.5 \mathrm{μs}\left({\color{gray}0.455 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.44 \mathrm{ms} \pm 15.7 \mathrm{μs}\left({\color{gray}0.893 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 107 $$4.07 \mathrm{ms} \pm 22.8 \mathrm{μs}\left({\color{gray}0.550 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.35 \mathrm{ms} \pm 17.4 \mathrm{μs}\left({\color{gray}-0.442 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.31 \mathrm{ms} \pm 11.7 \mathrm{μs}\left({\color{gray}-0.417 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$3.94 \mathrm{ms} \pm 18.7 \mathrm{μs}\left({\color{gray}0.331 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.50 \mathrm{ms} \pm 13.4 \mathrm{μs}\left({\color{gray}4.94 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.46 \mathrm{ms} \pm 9.20 \mathrm{μs}\left({\color{red}5.70 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1 $$2.55 \mathrm{ms} \pm 10.2 \mathrm{μs}\left({\color{red}6.29 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.73 \mathrm{ms} \pm 10.6 \mathrm{μs}\left({\color{gray}3.56 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.60 \mathrm{ms} \pm 9.76 \mathrm{μs}\left({\color{gray}4.26 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.79 \mathrm{ms} \pm 8.24 \mathrm{μs}\left({\color{gray}3.29 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$2.94 \mathrm{ms} \pm 12.8 \mathrm{μs}\left({\color{red}7.39 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.55 \mathrm{ms} \pm 8.36 \mathrm{μs}\left({\color{red}6.20 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 25 $$2.77 \mathrm{ms} \pm 10.1 \mathrm{μs}\left({\color{red}8.68 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.27 \mathrm{ms} \pm 13.5 \mathrm{μs}\left({\color{red}6.41 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.82 \mathrm{ms} \pm 14.3 \mathrm{μs}\left({\color{red}7.00 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 26 $$3.05 \mathrm{ms} \pm 12.9 \mathrm{μs}\left({\color{red}6.82 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.24 \mathrm{ms} \pm 15.0 \mathrm{μs}\left({\color{red}8.43 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.77 \mathrm{ms} \pm 11.4 \mathrm{μs}\left({\color{red}7.01 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.06 \mathrm{ms} \pm 13.5 \mathrm{μs}\left({\color{red}7.69 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$43.6 \mathrm{ms} \pm 161 \mathrm{μs}\left({\color{gray}0.109 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$53.2 \mathrm{ms} \pm 315 \mathrm{μs}\left({\color{gray}4.50 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$46.5 \mathrm{ms} \pm 210 \mathrm{μs}\left({\color{gray}2.57 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$47.9 \mathrm{ms} \pm 242 \mathrm{μs}\left({\color{gray}3.42 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$66.4 \mathrm{ms} \pm 318 \mathrm{μs}\left({\color{gray}3.07 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$55.6 \mathrm{ms} \pm 316 \mathrm{μs}\left({\color{gray}1.56 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$220 \mathrm{ms} \pm 521 \mathrm{μs}\left({\color{gray}-2.332 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$100 \mathrm{ms} \pm 388 \mathrm{μs}\left({\color{gray}0.412 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$92.8 \mathrm{ms} \pm 397 \mathrm{μs}\left({\color{gray}0.531 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$318 \mathrm{ms} \pm 893 \mathrm{μs}\left({\color{gray}2.13 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$14.7 \mathrm{ms} \pm 53.5 \mathrm{μs}\left({\color{gray}4.14 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$14.8 \mathrm{ms} \pm 66.5 \mathrm{μs}\left({\color{gray}4.61 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$14.9 \mathrm{ms} \pm 72.8 \mathrm{μs}\left({\color{gray}2.83 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$14.6 \mathrm{ms} \pm 67.7 \mathrm{μs}\left({\color{gray}-1.760 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$18.6 \mathrm{ms} \pm 91.9 \mathrm{μs}\left({\color{gray}3.00 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$14.6 \mathrm{ms} \pm 64.2 \mathrm{μs}\left({\color{gray}2.08 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$14.9 \mathrm{ms} \pm 98.3 \mathrm{μs}\left({\color{gray}3.93 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$14.7 \mathrm{ms} \pm 72.7 \mathrm{μs}\left({\color{gray}2.72 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$15.4 \mathrm{ms} \pm 79.1 \mathrm{μs}\left({\color{gray}4.17 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$22.7 \mathrm{ms} \pm 157 \mathrm{μs}\left({\color{gray}1.73 \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 $$30.4 \mathrm{ms} \pm 282 \mathrm{μs}\left({\color{gray}4.84 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$29.4 \mathrm{ms} \pm 293 \mathrm{μs}\left({\color{gray}-2.943 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$29.3 \mathrm{ms} \pm 324 \mathrm{μs}\left({\color{gray}-2.970 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$29.7 \mathrm{ms} \pm 306 \mathrm{μs}\left({\color{gray}-0.509 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$30.3 \mathrm{ms} \pm 376 \mathrm{μs}\left({\color{gray}1.04 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$29.8 \mathrm{ms} \pm 304 \mathrm{μs}\left({\color{gray}-0.160 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$30.2 \mathrm{ms} \pm 296 \mathrm{μs}\left({\color{gray}2.80 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$29.1 \mathrm{ms} \pm 255 \mathrm{μs}\left({\color{gray}-3.059 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$30.7 \mathrm{ms} \pm 393 \mathrm{μs}\left({\color{gray}-0.296 \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.85 \mathrm{ms} \pm 42.3 \mathrm{μs}\left({\color{gray}-1.026 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$57.6 \mathrm{ms} \pm 437 \mathrm{μs}\left({\color{gray}0.157 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$109 \mathrm{ms} \pm 487 \mathrm{μs}\left({\color{lightgreen}-5.463 \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.8 \mathrm{ms} \pm 339 \mathrm{μs}\left({\color{gray}0.880 \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.0 \mathrm{ms} \pm 303 \mathrm{μs}\left({\color{gray}-0.292 \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.3 \mathrm{ms} \pm 371 \mathrm{μs}\left({\color{gray}-0.544 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$87.4 \mathrm{ms} \pm 423 \mathrm{μs}\left({\color{gray}0.208 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$50.6 \mathrm{ms} \pm 316 \mathrm{μs}\left({\color{lightgreen}-6.609 \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 $$76.9 \mathrm{ms} \pm 267 \mathrm{μs}\left({\color{gray}-0.276 \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 $$54.8 \mathrm{ms} \pm 412 \mathrm{μs}\left({\color{gray}0.423 \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 $$63.5 \mathrm{ms} \pm 556 \mathrm{μs}\left({\color{gray}0.180 \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 $$65.8 \mathrm{ms} \pm 424 \mathrm{μs}\left({\color{gray}0.792 \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 $$66.6 \mathrm{ms} \pm 267 \mathrm{μs}\left({\color{gray}2.08 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$137 \mathrm{ms} \pm 471 \mathrm{μs}\left({\color{gray}-4.281 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$133 \mathrm{ms} \pm 519 \mathrm{μs}\left({\color{lightgreen}-5.187 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$41.4 \mathrm{ms} \pm 181 \mathrm{μs}\left({\color{lightgreen}-59.643 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$572 \mathrm{ms} \pm 1.14 \mathrm{ms}\left({\color{lightgreen}-5.188 \mathrm{\%}}\right) $$ Flame Graph

github-actions[bot] avatar Oct 28 '25 21:10 github-actions[bot]