Update axum monorepo
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
-
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
servewithout graceful shutdown (#3129)
v0.8.3: axum v0.8.3
-
added: Implement
From<Bytes>forMessage(#3273) -
added: Implement
OptionalFromRequestforJson(#3142) -
added: Implement
OptionalFromRequestforExtension(#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
OptionalFromRequestforJson(#3142) -
added: Implement
OptionalFromRequestforExtension(#3157) -
changed: Make the
statusfunction of rejections aconstfunction, such asJsonRejection,QueryRejectionandPathRejection(#3168)
v0.8.0: axum v0.8.0
since rc.1
-
breaking:
axum::extract::ws::Messagenow usesBytesin place ofVec<u8>, and a newUtf8Bytestype in place ofString, for its variants (#3078) -
breaking: Remove
OptionalFromRequestPartsimpl forQuery(#3088) -
changed: Upgraded
tokio-tungsteniteto 0.26 (#3078) -
changed: Query/Form: Use
serde_path_to_errorto 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
/:singleand/*manyto/{single}and/{*many}; the old syntax produces a panic to avoid silent change in behavior (#2645) -
breaking: Require
Syncfor all handlers and services added toRouterandMethodRouter(#2473) -
breaking: The tuple and tuple_struct
Pathextractor deserializers now check that the number of parameters matches the tuple length exactly (#2931) -
breaking: Move
Hostextractor toaxum-extra(#2956) -
breaking: Remove
WebSocket::close. Users should explicitly send close messages themselves. (#2974) -
breaking: Make
servegeneric over the listener and IO types (#2941) -
breaking: Remove
Serve::tcp_nodelayandWithGracefulShutdown::tcp_nodelay. Seeserve::ListenerExtfor 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::Messagenow usesBytesin place ofVec<u8>, and a newUtf8Bytestype in place ofString, for its variants (#3078) -
fixed: Skip SSE incompatible chars of
serde_json::RawValueinEvent::json_data(#2992) - fixed: Don't panic when array type is used for path segment (#3039)
-
fixed: Avoid setting
content-lengthbefore middleware. This allows middleware to add bodies to requests without needing to manually setcontent-length(#2897) - change: Update minimum rust version to 1.75 (#2943)
-
changed: Upgraded
tokio-tungsteniteto 0.26 (#3078) -
changed: Query/Form: Use
serde_path_to_errorto report fields that failed to parse (#3081) -
added: Add
method_not_allowed_fallbackto set a fallback when a path matches but there is no handler for the given HTTP method (#2903) -
added: Add
NoContentas a self-described shortcut forStatusCode::NO_CONTENT(#2978) -
added: Add support for WebSockets over HTTP/2. They can be enabled by changing
get(ws_endpoint)handlers toany(ws_endpoint)(#2894) -
added: Add
MethodFilter::CONNECT,routing::connect[_service]andMethodRouter::connect[_service](#2961) -
added: Extend
FailedToDeserializePathParams::kindenum with (ErrorKind::DeserializeError). This new variant captures bothkey,value, andmessagefrom named path parameters parse errors, instead of only deserialization error message inErrorKind::Message. (#2720)
v0.7.9: axum - v0.7.9
- fixed: Avoid setting content-length before middleware (#3031)
v0.7.8: axum - v0.7.8
-
fixed: Skip SSE incompatible chars of
serde_json::RawValueinEvent::json_data(#2992) -
added: Add
method_not_allowed_fallbackto 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]andMethodRouter::connect[_service](#2961) -
added: Add
NoContentas a self-described shortcut forStatusCode::NO_CONTENT(#2978)
v0.7.7: axum - v0.7.7
- 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
-
change: Avoid cloning
Arcduring deserialization ofPath -
added:
axum::serve::Serve::tcp_nodelayandaxum::serve::WithGracefulShutdown::tcp_nodelay(#2653) -
added:
Router::has_routesfunction (#2790) - change: Update tokio-tungstenite to 0.23 (#2841)
-
added:
Serve::local_addrandWithGracefulShutdown::local_addrfunctions (#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.
⚠️ 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)`
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.
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
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.
[!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
-
#6816
👈 (View in Graphite)
-
#7909
: 2 other dependent PRs (#7763
, #7906
) -
main
This stack of pull requests is managed by Graphite. Learn more about stacking.
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.
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 |