rust-lang / rust-lang/rfcs

maybe expose a way to pass pre-calculated hashes along with hash table keys

Open
#794 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

T-libs
Dominant language
Markdown
Stars
6.6k
Forks
1.7k
Avg merge
16h 14m
Merged PRs (30d)
1

Description

Issue by thestinger
Tuesday Nov 26, 2013 at 03:05 GMT

For earlier discussion, see https://github.com/rust-lang/rust/issues/10661

This issue was labelled with: A-libs, I-enhancement, I-slow in the Rust repository


I found this was necessarily to avoid double-hashing with a shard-based concurrent hash table like Java's ConcurrentHashMap as the hash needs to be calculated to pick the correct shard.

https://github.com/thestinger/rust-core/blob/master/core/concurrent.rs#L299

This could be done by hoisting out the open-addressing implementation, but it will result in it requiring the hashes to be stored in the table rather than it just being an implementation detail.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the earlier discussion in rust-lang/rust issue 10661 and inspect the referenced concurrent hash-table code in core/concurrent.rs around line 299. Determine whether the hash-table API should accept pre-calculated hashes without making hash storage part of the required implementation, and document the resulting design or proposal.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.