Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Rust crate hashbrown to v0.15.0 #5291

Merged
merged 2 commits into from
Oct 2, 2024
Merged

Conversation

hash-worker[bot]
Copy link
Contributor

@hash-worker hash-worker bot commented Oct 1, 2024

This PR contains the following updates:

Package Type Update Change
hashbrown workspace.dependencies minor =0.14.5 -> =0.15.0

Release Notes

rust-lang/hashbrown (hashbrown)

v0.15.0

Compare Source

This update contains breaking changes that remove the raw API with the hope of
centralising on the HashTable API in the future. You can follow the discussion
and progress in #​545 to discuss features you think should be added to this API
that were previously only possible on the raw API.

Added
  • Added borsh feature with BorshSerialize and BorshDeserialize impls. (#​525)
  • Added Assign impls for HashSet operators. (#​529)
  • Added Default impls for iterator types. (#​542)
  • Added HashTable::iter_hash{,_mut} methods. (#​549)
  • Added Hash{Table,Map,Set}::allocation_size methods. (#​553)
  • Implemented Debug and FusedIterator for all HashTable iterators. (#​561)
  • Specialized Iterator::fold for all HashTable iterators. (#​561)
Changed
  • Changed hash_set::VacantEntry::insert to return OccupiedEntry. (#​495)
  • Improvedhash_set::Difference::size_hint lower-bound. (#​530)
  • Improved HashSet::is_disjoint performance. (#​531)
  • equivalent feature is now enabled by default. (#​532)
  • HashSet operators now return a set with the same allocator. (#​529)
  • Changed the default hasher to foldhash. (#​563)
  • ahash feature has been renamed to default-hasher. (#​533)
  • Entry API has been reworked and several methods have been renamed. (#​535)
  • Hash{Map,Set}::insert_unique_unchecked is now unsafe. (#​556)
  • The signature of get_many_mut and related methods was changed. (#​562)
Fixed
Removed
  • Raw entry API is now under raw-entry feature, to be eventually removed. (#​534, #​555)
  • Raw table API has been made private and the raw feature is removed;
    in the future, all code should be using the HashTable API instead. (#​531, #​546)
  • rykv feature was removed; this is now provided by the rykv crate instead. (#​554)
  • HashSet::get_or_insert_owned was removed in favor of get_or_insert_with. (#​555)

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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


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

This PR has been generated by Renovate Bot.

@hash-worker hash-worker bot enabled auto-merge October 1, 2024 22:16
@hash-worker hash-worker bot requested a review from a team October 1, 2024 22:16
@hash-worker
Copy link
Contributor Author

hash-worker bot commented Oct 1, 2024

⚠️ 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.15.0
    Updating crates.io index
error: failed to select a version for the requirement `hashbrown = "^0.14.0"`
candidate versions found which didn't match: 0.15.0
location searched: crates.io index
required by package `tokio-util v0.7.12`
    ... which satisfies dependency `tokio-util = "=0.7.12"` (locked to 0.7.12) of package `harpc-net v0.0.0 (/tmp/renovate/repos/github/hashintel/hash/libs/@local/harpc/net)`

@github-actions github-actions bot added the area/deps Relates to third-party dependencies (area) label Oct 1, 2024
hashdotai
hashdotai previously approved these changes Oct 1, 2024
@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 Oct 2, 2024
@hash-worker
Copy link
Contributor Author

hash-worker bot commented Oct 2, 2024

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.

Copy link
Contributor

github-actions bot commented Oct 2, 2024

Benchmark results

@rust/graph-benches – Integrations

representative_read_multiple_entities

Function Value Mean Flame graphs
entity_by_property depths: DT=0, PT=2, ET=2, E=2 $$56.4 \mathrm{ms} \pm 343 \mathrm{μs}\left({\color{gray}-2.210 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=0, PT=0, ET=2, E=2 $$52.3 \mathrm{ms} \pm 380 \mathrm{μs}\left({\color{gray}-0.955 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=0, PT=0, ET=0, E=2 $$45.2 \mathrm{ms} \pm 194 \mathrm{μs}\left({\color{gray}-1.700 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=255, PT=255, ET=255, E=255 $$70.1 \mathrm{ms} \pm 480 \mathrm{μs}\left({\color{gray}-2.435 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=2, PT=2, ET=2, E=2 $$60.8 \mathrm{ms} \pm 373 \mathrm{μs}\left({\color{gray}-2.928 \mathrm{\%}}\right) $$ Flame Graph
entity_by_property depths: DT=0, PT=0, ET=0, E=0 $$41.3 \mathrm{ms} \pm 243 \mathrm{μs}\left({\color{gray}-1.172 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=2, ET=2, E=2 $$96.9 \mathrm{ms} \pm 350 \mathrm{μs}\left({\color{gray}-0.195 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=0, ET=2, E=2 $$93.3 \mathrm{ms} \pm 312 \mathrm{μs}\left({\color{gray}0.146 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=0, ET=0, E=2 $$82.2 \mathrm{ms} \pm 516 \mathrm{μs}\left({\color{gray}-0.585 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=255, PT=255, ET=255, E=255 $$111 \mathrm{ms} \pm 595 \mathrm{μs}\left({\color{gray}-0.031 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=2, PT=2, ET=2, E=2 $$101 \mathrm{ms} \pm 287 \mathrm{μs}\left({\color{gray}-1.487 \mathrm{\%}}\right) $$ Flame Graph
link_by_source_by_property depths: DT=0, PT=0, ET=0, E=0 $$43.7 \mathrm{ms} \pm 277 \mathrm{μs}\left({\color{gray}-0.546 \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/person/v/1 $$16.9 \mathrm{ms} \pm 224 \mathrm{μs}\left({\color{gray}0.907 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 $$17.4 \mathrm{ms} \pm 226 \mathrm{μs}\left({\color{red}5.22 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 $$15.5 \mathrm{ms} \pm 184 \mathrm{μs}\left({\color{lightgreen}-37.712 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 $$16.8 \mathrm{ms} \pm 173 \mathrm{μs}\left({\color{gray}-1.503 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 $$16.4 \mathrm{ms} \pm 204 \mathrm{μs}\left({\color{lightgreen}-15.998 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 $$16.0 \mathrm{ms} \pm 168 \mathrm{μs}\left({\color{lightgreen}-8.431 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 $$17.1 \mathrm{ms} \pm 213 \mathrm{μs}\left({\color{lightgreen}-32.515 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/block/v/1 $$17.0 \mathrm{ms} \pm 206 \mathrm{μs}\left({\color{gray}3.63 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 $$16.4 \mathrm{ms} \pm 201 \mathrm{μs}\left({\color{gray}-3.839 \mathrm{\%}}\right) $$ Flame Graph

representative_read_entity_type

Function Value Mean Flame graphs
get_entity_type_by_id Account ID: d4e16033-c281-4cde-aa35-9085bf2e7579 $$1.44 \mathrm{ms} \pm 7.30 \mathrm{μs}\left({\color{gray}-1.843 \mathrm{\%}}\right) $$ Flame Graph

scaling_read_entity_complete_zero_depth

Function Value Mean Flame graphs
entity_by_id 10 entities $$2.10 \mathrm{ms} \pm 10.7 \mathrm{μs}\left({\color{gray}2.69 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 25 entities $$2.72 \mathrm{ms} \pm 86.5 \mathrm{μs}\left({\color{gray}2.44 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 5 entities $$1.95 \mathrm{ms} \pm 8.84 \mathrm{μs}\left({\color{gray}-0.980 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 50 entities $$4.23 \mathrm{ms} \pm 33.3 \mathrm{μs}\left({\color{gray}1.96 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1 entities $$1.93 \mathrm{ms} \pm 11.1 \mathrm{μs}\left({\color{gray}1.19 \mathrm{\%}}\right) $$ Flame Graph

scaling_read_entity_complete_one_depth

Function Value Mean Flame graphs
entity_by_id 10 entities $$32.4 \mathrm{ms} \pm 300 \mathrm{μs}\left({\color{lightgreen}-37.678 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 25 entities $$76.0 \mathrm{ms} \pm 374 \mathrm{μs}\left({\color{gray}3.05 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 5 entities $$25.8 \mathrm{ms} \pm 264 \mathrm{μs}\left({\color{gray}2.30 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 50 entities $$283 \mathrm{ms} \pm 1.80 \mathrm{ms}\left({\color{lightgreen}-81.312 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1 entities $$20.2 \mathrm{ms} \pm 97.8 \mathrm{μs}\left({\color{gray}-0.409 \mathrm{\%}}\right) $$ Flame Graph

scaling_read_entity_linkless

Function Value Mean Flame graphs
entity_by_id 10000 entities $$9.09 \mathrm{ms} \pm 89.8 \mathrm{μs}\left({\color{gray}-0.768 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 10 entities $$1.91 \mathrm{ms} \pm 7.62 \mathrm{μs}\left({\color{gray}-2.324 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 100 entities $$2.08 \mathrm{ms} \pm 10.5 \mathrm{μs}\left({\color{gray}0.327 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1000 entities $$2.77 \mathrm{ms} \pm 12.0 \mathrm{μs}\left({\color{lightgreen}-12.257 \mathrm{\%}}\right) $$ Flame Graph
entity_by_id 1 entities $$1.88 \mathrm{ms} \pm 7.82 \mathrm{μs}\left({\color{gray}-0.023 \mathrm{\%}}\right) $$ Flame Graph

Merged via the queue into main with commit 6cba465 Oct 2, 2024
157 of 159 checks passed
@hash-worker hash-worker bot deleted the deps/rs/hashbrown-0.x branch October 2, 2024 13:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/deps Relates to third-party dependencies (area) 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.

2 participants