Skip to content

BE-773: Drop the nil-UUID sentinel from the created-by filter - #9281

Merged
TimDiekmann merged 4 commits into
mainfrom
t/be-773-drop-the-nil-uuid-sentinel-from-the-created-by-filter
Aug 26, 2026
Merged

BE-773: Drop the nil-UUID sentinel from the created-by filter#9281
TimDiekmann merged 4 commits into
mainfrom
t/be-773-drop-the-nil-uuid-sentinel-from-the-created-by-filter

Conversation

@TimDiekmann

@TimDiekmann TimDiekmann commented Aug 21, 2026

Copy link
Copy Markdown
Member

🌟 What is the purpose of this PR?

The property-protection filter compiled a request without an actor to a nil-UUID parameter, the last place in the query layer that read the nil UUID as the public actor. The comparison now says what it means: nothing equals an actor that is not there.

🔗 Related links

🚫 Blocked by

🔍 What does this change?

  • FilterExpression::from_cell_filter_expression returns [None] for the actor expression when the request carries no actor, instead of substituting the nil UUID
  • Filter::for_property_filter decides per comparison what a missing actor means: an equality matches no record, an inequality matches every record, and an IN matches no record
  • Covers the actor-present branch, which had no test

Behaviour is unchanged: an empty All transpiles to TRUE and an empty Any to FALSE, which is what uuid != nil and uuid = nil evaluated to for every real row.

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 remaining Uuid::nil() uses in entity/table.rs are cursor and fixture values in tests, not actor sentinels, so they stay.

🐾 Next steps

  • BE-758: rate limiting, ahead of the versioned public API surface

🛡 What tests cover this?

  • The property-protection transform cases, whose fixtures now pin the anonymous case as a tautology rather than a nil comparison
  • A new case pinning that a request with an actor compares against that actor's UUID

❓ How to test this?

  1. cargo nextest run --package hash-graph-store --all-features
  2. cargo clippy --all-features --package hash-graph-store --all-targets

@vercel

vercel Bot commented Aug 21, 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 Aug 26, 2026 1:32pm
petrinaut Ready Ready Preview Aug 26, 2026 1:32pm
petrinaut-docs Ready Ready Preview Aug 26, 2026 1:32pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
hashdotdesign-tokens Ignored Ignored Preview Aug 26, 2026 1:32pm

Request Review

@vercel
vercel Bot temporarily deployed to Preview – petrinaut-docs August 21, 2026 15:28 Inactive
@vercel
vercel Bot temporarily deployed to Preview – petrinaut August 21, 2026 15:28 Inactive
@github-actions github-actions Bot added area/libs Relates to first-party libraries/crates/packages (area) type/eng > backend Owned by the @backend team labels Aug 21, 2026
@TimDiekmann TimDiekmann self-assigned this Aug 21, 2026
@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.60870% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 60.54%. Comparing base (6e2b92d) to head (31aae8a).
⚠️ Report is 10 commits behind head on main.

Files with missing lines Patch % Lines
libs/@local/graph/store/src/filter/mod.rs 65.21% 7 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9281      +/-   ##
==========================================
+ Coverage   60.45%   60.54%   +0.08%     
==========================================
  Files        1431     1431              
  Lines      141324   141626     +302     
  Branches     6623     6625       +2     
==========================================
+ Hits        85440    85743     +303     
+ Misses      54803    54800       -3     
- Partials     1081     1083       +2     
Flag Coverage Δ
apps.hash-ai-worker-ts 1.99% <ø> (-0.01%) ⬇️
apps.hash-api 14.68% <ø> (+0.01%) ⬆️
local.hash-backend-utils 3.27% <ø> (ø)
local.hash-graph-sdk 10.02% <ø> (ø)
local.hash-isomorphic-utils 12.22% <ø> (ø)
rust.hash-graph-api 20.44% <ø> (+2.70%) ⬆️
rust.hash-graph-authentication 96.05% <ø> (-0.31%) ⬇️
rust.hash-graph-postgres-store 29.39% <ø> (+<0.01%) ⬆️
rust.hash-graph-store 48.48% <82.60%> (+0.06%) ⬆️
rust.hash-graph-validation 84.71% <ø> (ø)
rust.hashql-compiletest 28.39% <ø> (ø)
rust.hashql-eval 79.82% <ø> (ø)

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.

Comment thread libs/@local/graph/store/src/filter/mod.rs Fixed
@vercel
vercel Bot temporarily deployed to Preview – petrinaut-docs August 21, 2026 20:51 Inactive
@vercel
vercel Bot temporarily deployed to Preview – petrinaut August 21, 2026 20:51 Inactive
@TimDiekmann
TimDiekmann force-pushed the t/be-773-drop-the-nil-uuid-sentinel-from-the-created-by-filter branch from a2eabe9 to 3ecf606 Compare August 21, 2026 20:52
@vercel
vercel Bot temporarily deployed to Preview – petrinaut-docs August 21, 2026 20:53 Inactive
@vercel
vercel Bot temporarily deployed to Preview – petrinaut August 21, 2026 20:53 Inactive
@TimDiekmann
TimDiekmann force-pushed the t/be-773-drop-the-nil-uuid-sentinel-from-the-created-by-filter branch from 3ecf606 to 1ef2737 Compare August 22, 2026 01:15
@vercel
vercel Bot temporarily deployed to Preview – petrinaut-docs August 22, 2026 01:15 Inactive
@vercel
vercel Bot temporarily deployed to Preview – petrinaut August 22, 2026 01:15 Inactive
@TimDiekmann
TimDiekmann requested a review from a team August 22, 2026 11:37
indietyp
indietyp previously approved these changes Aug 25, 2026
indietyp
indietyp previously approved these changes Aug 26, 2026
@TimDiekmann
TimDiekmann force-pushed the t/be-773-drop-the-nil-uuid-sentinel-from-the-created-by-filter branch from 5079507 to 6e392c6 Compare August 26, 2026 11:18
@TimDiekmann
TimDiekmann deployed to pull-request August 26, 2026 11:19 — with GitHub Actions Active
indietyp
indietyp previously approved these changes Aug 26, 2026
@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 $$27.5 \mathrm{ms} \pm 248 \mathrm{μs}\left({\color{gray}-1.224 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.48 \mathrm{ms} \pm 23.8 \mathrm{μs}\left({\color{gray}-0.243 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 1002 $$12.4 \mathrm{ms} \pm 122 \mathrm{μs}\left({\color{lightgreen}-5.516 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 3314 $$43.3 \mathrm{ms} \pm 428 \mathrm{μs}\left({\color{gray}-1.473 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$14.8 \mathrm{ms} \pm 135 \mathrm{μs}\left({\color{gray}0.641 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 1527 $$23.9 \mathrm{ms} \pm 235 \mathrm{μs}\left({\color{gray}-3.290 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 2078 $$28.7 \mathrm{ms} \pm 249 \mathrm{μs}\left({\color{gray}-1.164 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.83 \mathrm{ms} \pm 28.4 \mathrm{μs}\left({\color{gray}1.05 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 1033 $$13.7 \mathrm{ms} \pm 159 \mathrm{μs}\left({\color{lightgreen}-5.648 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_medium

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 102 $$3.82 \mathrm{ms} \pm 26.1 \mathrm{μs}\left({\color{gray}1.10 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$3.02 \mathrm{ms} \pm 20.9 \mathrm{μs}\left({\color{gray}1.86 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 52 $$3.38 \mathrm{ms} \pm 23.3 \mathrm{μs}\left({\color{gray}1.34 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 269 $$5.25 \mathrm{ms} \pm 47.7 \mathrm{μs}\left({\color{gray}1.85 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$3.51 \mathrm{ms} \pm 20.4 \mathrm{μs}\left({\color{gray}-0.805 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 108 $$4.17 \mathrm{ms} \pm 33.3 \mathrm{μs}\left({\color{gray}1.53 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 133 $$4.53 \mathrm{ms} \pm 39.7 \mathrm{μs}\left({\color{gray}3.96 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$3.47 \mathrm{ms} \pm 28.6 \mathrm{μs}\left({\color{gray}1.28 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 63 $$4.15 \mathrm{ms} \pm 37.1 \mathrm{μs}\left({\color{gray}2.23 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_none

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 2 $$2.64 \mathrm{ms} \pm 16.8 \mathrm{μs}\left({\color{gray}0.440 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.51 \mathrm{ms} \pm 15.2 \mathrm{μs}\left({\color{gray}1.52 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 2 $$2.63 \mathrm{ms} \pm 16.1 \mathrm{μs}\left({\color{gray}-0.264 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 8 $$2.92 \mathrm{ms} \pm 17.8 \mathrm{μs}\left({\color{gray}0.581 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.70 \mathrm{ms} \pm 16.7 \mathrm{μs}\left({\color{gray}-0.036 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 3 $$2.89 \mathrm{ms} \pm 16.3 \mathrm{μs}\left({\color{gray}0.178 \mathrm{\%}}\right) $$ Flame Graph

policy_resolution_small

Function Value Mean Flame graphs
resolve_policies_for_actor user: empty, selectivity: high, policies: 52 $$3.04 \mathrm{ms} \pm 21.4 \mathrm{μs}\left({\color{gray}1.44 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: low, policies: 1 $$2.74 \mathrm{ms} \pm 19.4 \mathrm{μs}\left({\color{gray}0.854 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: empty, selectivity: medium, policies: 26 $$2.98 \mathrm{ms} \pm 21.9 \mathrm{μs}\left({\color{gray}0.312 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: high, policies: 94 $$3.43 \mathrm{ms} \pm 21.8 \mathrm{μs}\left({\color{gray}1.26 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: low, policies: 1 $$2.95 \mathrm{ms} \pm 18.4 \mathrm{μs}\left({\color{gray}0.276 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: seeded, selectivity: medium, policies: 27 $$3.28 \mathrm{ms} \pm 18.9 \mathrm{μs}\left({\color{gray}0.634 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: high, policies: 66 $$3.38 \mathrm{ms} \pm 21.7 \mathrm{μs}\left({\color{gray}1.59 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: low, policies: 1 $$2.96 \mathrm{ms} \pm 20.7 \mathrm{μs}\left({\color{gray}1.91 \mathrm{\%}}\right) $$ Flame Graph
resolve_policies_for_actor user: system, selectivity: medium, policies: 29 $$3.34 \mathrm{ms} \pm 23.3 \mathrm{μs}\left({\color{gray}0.784 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_complete

Function Value Mean Flame graphs
entity_by_id;one_depth 1 entities $$42.5 \mathrm{ms} \pm 315 \mathrm{μs}\left({\color{gray}1.32 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 10 entities $$32.9 \mathrm{ms} \pm 182 \mathrm{μs}\left({\color{gray}-1.513 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 25 entities $$36.3 \mathrm{ms} \pm 214 \mathrm{μs}\left({\color{gray}0.417 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 5 entities $$32.5 \mathrm{ms} \pm 255 \mathrm{μs}\left({\color{gray}0.875 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;one_depth 50 entities $$42.4 \mathrm{ms} \pm 291 \mathrm{μs}\left({\color{gray}0.012 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 1 entities $$49.8 \mathrm{ms} \pm 319 \mathrm{μs}\left({\color{gray}-0.353 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 10 entities $$40.6 \mathrm{ms} \pm 258 \mathrm{μs}\left({\color{gray}-0.344 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 25 entities $$92.1 \mathrm{ms} \pm 685 \mathrm{μs}\left({\color{gray}1.27 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 5 entities $$34.0 \mathrm{ms} \pm 265 \mathrm{μs}\left({\color{lightgreen}-42.053 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;two_depth 50 entities $$257 \mathrm{ms} \pm 960 \mathrm{μs}\left({\color{gray}0.278 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 1 entities $$10.5 \mathrm{ms} \pm 72.2 \mathrm{μs}\left({\color{gray}1.11 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 10 entities $$10.6 \mathrm{ms} \pm 64.6 \mathrm{μs}\left({\color{gray}-0.552 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 25 entities $$10.5 \mathrm{ms} \pm 64.9 \mathrm{μs}\left({\color{gray}-2.226 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 5 entities $$10.6 \mathrm{ms} \pm 76.6 \mathrm{μs}\left({\color{gray}0.151 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id;zero_depth 50 entities $$10.5 \mathrm{ms} \pm 56.3 \mathrm{μs}\left({\color{gray}-2.901 \mathrm{\%}}\right) $$ Flame Graph

read_scaling_linkless

Function Value Mean Flame graphs
entity_by_id 1 entities $$10.3 \mathrm{ms} \pm 63.6 \mathrm{μs}\left({\color{gray}-0.930 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$10.5 \mathrm{ms} \pm 75.5 \mathrm{μs}\left({\color{gray}-4.580 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$10.6 \mathrm{ms} \pm 77.9 \mathrm{μs}\left({\color{gray}-3.027 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$10.7 \mathrm{ms} \pm 110 \mathrm{μs}\left({\color{gray}-0.401 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10000 entities $$10.8 \mathrm{ms} \pm 81.0 \mathrm{μs}\left({\color{gray}-1.716 \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.0 \mathrm{ms} \pm 68.3 \mathrm{μs}\left({\color{gray}0.048 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$11.1 \mathrm{ms} \pm 64.5 \mathrm{μs}\left({\color{gray}0.043 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$10.9 \mathrm{ms} \pm 63.8 \mathrm{μs}\left({\color{gray}0.247 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$11.2 \mathrm{ms} \pm 108 \mathrm{μs}\left({\color{gray}0.385 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$11.0 \mathrm{ms} \pm 66.5 \mathrm{μs}\left({\color{gray}-0.588 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 $$11.0 \mathrm{ms} \pm 68.8 \mathrm{μs}\left({\color{gray}-0.802 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$11.0 \mathrm{ms} \pm 67.0 \mathrm{μs}\left({\color{gray}0.184 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$10.9 \mathrm{ms} \pm 56.4 \mathrm{μs}\left({\color{gray}0.315 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$11.2 \mathrm{ms} \pm 76.2 \mathrm{μs}\left({\color{gray}0.981 \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.09 \mathrm{ms} \pm 45.7 \mathrm{μs}\left({\color{gray}1.39 \mathrm{\%}}\right) $$ Flame Graph

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property traversal_paths=0 0 $$60.9 \mathrm{ms} \pm 482 \mathrm{μs}\left({\color{red}11.0 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=255 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true $$114 \mathrm{ms} \pm 671 \mathrm{μs}\left({\color{red}5.06 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false $$69.1 \mathrm{ms} \pm 468 \mathrm{μs}\left({\color{red}9.01 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true $$78.6 \mathrm{ms} \pm 675 \mathrm{μs}\left({\color{red}5.14 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true $$87.2 \mathrm{ms} \pm 616 \mathrm{μs}\left({\color{red}5.01 \mathrm{\%}}\right) $$
entity_by_property traversal_paths=2 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true $$92.8 \mathrm{ms} \pm 737 \mathrm{μs}\left({\color{gray}4.25 \mathrm{\%}}\right) $$
link_by_source_by_property traversal_paths=0 0 $$45.5 \mathrm{ms} \pm 286 \mathrm{μs}\left({\color{gray}2.70 \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 $$72.6 \mathrm{ms} \pm 439 \mathrm{μs}\left({\color{gray}2.29 \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 $$51.3 \mathrm{ms} \pm 445 \mathrm{μs}\left({\color{gray}2.45 \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 $$60.0 \mathrm{ms} \pm 436 \mathrm{μs}\left({\color{gray}2.19 \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 $$62.6 \mathrm{ms} \pm 522 \mathrm{μs}\left({\color{gray}2.27 \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 $$62.1 \mathrm{ms} \pm 481 \mathrm{μs}\left({\color{gray}2.25 \mathrm{\%}}\right) $$

scenarios

Function Value Mean Flame graphs
full_test query-limited $$122 \mathrm{ms} \pm 941 \mathrm{μs}\left({\color{gray}4.31 \mathrm{\%}}\right) $$ Flame Graph
full_test query-unlimited $$134 \mathrm{ms} \pm 793 \mathrm{μs}\left({\color{red}5.49 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-limited $$18.6 \mathrm{ms} \pm 136 \mathrm{μs}\left({\color{gray}-1.306 \mathrm{\%}}\right) $$ Flame Graph
linked_queries query-unlimited $$547 \mathrm{ms} \pm 1.63 \mathrm{ms}\left({\color{gray}-0.316 \mathrm{\%}}\right) $$ Flame Graph

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

Labels

area/libs Relates to first-party libraries/crates/packages (area) type/eng > backend Owned by the @backend team

Development

Successfully merging this pull request may close these issues.

4 participants