Efficient hash table lookup

US12475167B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12475167-B2
Application numberUS-202418423766-A
CountryUS
Kind codeB2
Filing dateJan 26, 2024
Priority dateJun 6, 2022
Publication dateNov 18, 2025
Grant dateNov 18, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A hash table system, including a plurality of hash tables, associated with respective hash functions, for storing key-value pairs; an overflow memory for storing key-value pairs moved from the hash tables due to collision; and an arbiter for arbitrating among commands including update commands, match commands, and rehash commands, wherein for each system clock cycle, the arbiter selects as a selected command one of an update command, a match command, or a rehash command, and wherein the hash table system completes execution of each selected command within a bounded number of system clock cycles.

First claim

Opening claim text (preview).

The invention claimed is: 1 . A hash table system, comprising a plurality of hash tables, associated with respective hash functions, for storing key-value pairs, wherein each hash table comprises a plurality of buckets, and each bucket comprises a plurality of cells, wherein each cell is operable to store a key-value pair, wherein each key hashes to one of the buckets in each hash table, and wherein when the system performs an install operation for a key-value pair, a bucket in each hash table is determined for the key-value pair to be stored by hashing the key with the respective hash functions, and the key-value pair is stored in a hash-table for which the determined bucket is not full, wherein when all of the buckets determined for a key-value pair to be stored are full, a key-value pair previously stored in one of the determined buckets is evicted and stored in an overflow memory, and the key-value pair to be stored is stored in the bucket from which the key-value pair previously stored is evicted. 2 . The system according to claim 1 , wherein the overflow memory is configured so that a location of a key-value pair stored in the overflow memory is determined by searching for the key of the key-value pair. 3 . The system according to claim 2 , wherein the overflow memory comprises a content addressable memory for storing keys of key-value pairs, and another memory for storing values of the key-value pairs. 4 . The system according to claim 1 , further comprising: the overflow memory for storing key-value pairs moved from the hash tables due to collision; and an arbiter for arbitrating among commands including update commands for installing key-value pairs into the hash tables or uninstalling key-value pairs from the hash tables, match commands for matching keys to locations in the hash tables, and rehash commands for relocating key-value pairs from the overflow memory to the hash tables or relocating key-value pairs from one of the hash tables to another of the hash tables, wherein for each system clock cycle, the arbiter selects as a selected command one of an update command, a match command, or a rehash command, and wherein the hash table system completes execution of each selected command within a bounded number of system clock cycles, wherein the arbiter is a weighted round-robin arbiter. 5 . The system according to claim 4 , wherein a weight applied to commands that are not rehash commands is varied according to an occupancy level of the overflow memory. 6 . The system according to claim 5 , wherein the weight applied to commands that are not rehash commands is set to a first value when the occupancy level of the overflow memory is less than a first threshold, is set to a second value greater than the first value when the occupancy level of the overflow memory is greater than the first threshold and less than a second threshold, and is set to a third value greater than the second value when the occupancy level of the overflow memory is greater than the second threshold. 7 . The system according to claim 6 , wherein the first threshold is an overflow memory high occupied threshold, and the second threshold is an overflow memory almost full threshold. 8 . The system according to claim 1 , further comprising: the overflow memory for storing key-value pairs moved from the hash tables due to collision; and an arbiter for arbitrating among commands including update commands for installing key-value pairs into the hash tables or uninstalling key-value pairs from the hash tables, match commands for matching keys to locations in the hash tables, and rehash commands for relocating key-value pairs from the overflow memory to the hash tables or relocating key-value pairs from one of the hash tables to another of the hash tables, wherein for each system clock cycle, the arbiter selects as a selected command one of an update command, a match command, or a rehash command, wherein the hash table system completes execution of each selected command within a bounded number of system clock cycles, and wherein the rehash commands comprise two types of rehash commands, a candidate generation type of rehash command for selecting a key-value pair as a candidate key-value pair for relocating and storing the candidate key-value pair in another memory, and a move type of rehash command for attempting to relocate a candidate key-value pair. 9 . The system according to claim 8 , wherein move type rehash commands are prioritized over candidate generation type rehash commands. 10 . The system according to claim 8 , wherein when a plurality of keys corresponding to candidate key-value pairs is stored in one or more candidate memories and a move type rehash command is performed, a key for the move type rehash command is selected from the one or more candidate memories according to priority that prioritizes candidate keys corresponding to key-value pairs in the overflow memory over candidate keys corresponding key-value pairs in the hash tables. 11 . The system according to claim 8 , wherein when a plurality of keys corresponding to candidate key-value pairs is stored in one or more candidate memories and a move type rehash command is performed on a candidate key-value pair in the overflow memory and fails, the candidate key-value pair is moved into a hash table location occupied by a selected key-value pair, the selected key-value pair is moved into the overflow memory, and the key corresponding to the selected key-value pair is designated as a looped-back key, and is stored in the one or more candidate memories. 12 . The system according to claim 11 , wherein when a plurality of keys corresponding to candidate key-value pairs is stored in one or more candidate memories and a move type rehash command is performed, the candidate key-value pair for the move type rehash command is selected according to a priority that prioritizes looped-back keys over non looped-back keys.

Assignees

Inventors

Classifications

  • Single storage device · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • in relation to throughput · CPC title

  • using directory or table look-up (use of a directory or look-up table in file systems G06F16/13) · CPC title

  • Hash tables · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12475167B2 cover?
A hash table system, including a plurality of hash tables, associated with respective hash functions, for storing key-value pairs; an overflow memory for storing key-value pairs moved from the hash tables due to collision; and an arbiter for arbitrating among commands including update commands, match commands, and rehash commands, wherein for each system clock cycle, the arbiter selects as a se…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/9014. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 18 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).