PowerHash Algorithm for Constant Time Key Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hashing algorithms face challenges in achieving both constant time complexity and consistent hashing, especially when the number of buckets changes, leading to undesirable key remapping in applications like distributed caching.

Innovation Solution

The PowerHash algorithm uses two auxiliary hash functions, f() and g(), to map keys to buckets with O(1) time complexity and consistent distribution, reducing the need for key remapping and maintaining a low memory footprint.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional hashing with modulo operation is used, then time complexity is O(1) and uniform distribution is achieved, but key remapping is required when number of buckets changes

Engineering Contradiction:
Improvetime complexityVSAvoidadaptability to changing bucket numbers
Core Design Contradiction:
Loss of timeVSAdaptability or versatility

Solution Approach 1:

The patent segments the hashing problem into two distinct functions: a primary hash function for initial bucket assignment and a secondary hash function for handling bucket changes. This segmentation allows each function to specialize - the primary function maintains O(1) performance while the secondary function handles the complexity of remapping only when necessary, thus resolving the contradiction between time complexity and adaptability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic hashing where the hashing behavior adapts based on the number of buckets. When the number of buckets changes, the system dynamically switches between using the primary hash function directly and using the secondary hash function to minimize remapping. This dynamic approach maintains O(1) time complexity while providing adaptability to changing bucket numbers.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If consistent hashing is used to reduce key remapping, then adaptability to changing buckets is improved, but time complexity increases to O(log n)

Engineering Contradiction:
Improveconsistent hashing capabilityVSAvoidtime complexity
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies partial consistent hashing by using the secondary hash function only when necessary (when bucket numbers change and remapping is required), rather than applying full consistent hashing always. This partial application reduces the time complexity from O(log n) to O(1) in most cases, while still providing consistent hashing capability when needed.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes the parameter of hash function selection based on the number of buckets. When the bucket count is stable, the system uses the simpler primary hash function for O(1) performance. When bucket count changes occur, it switches to the secondary hash function to provide consistent hashing. This parameter-based switching resolves the contradiction between time complexity and consistent hashing capability.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If mapping tables are built to achieve consistent hashing, then key distribution consistency is improved, but memory footprint increases

Engineering Contradiction:
Improvekey distribution consistencyVSAvoidmemory footprint
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the essential consistent hashing functionality from the complex mapping table approach and implements it through a secondary hash function that only activates when needed. This extraction eliminates the need for large mapping tables while maintaining key distribution consistency, thus resolving the contradiction between reliability and memory footprint.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent uses a lightweight secondary hash function that is computationally inexpensive and only deployed temporarily when bucket changes occur, rather than maintaining permanent mapping tables. This disposable approach to consistent hashing provides the necessary reliability without the heavy memory footprint of traditional mapping table solutions.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS11429452B2Method for distributing keys using two auxiliary hashing functions
Publication Date: 2022.08.30 PAYPAL INC
  • US11429452B2 patent drawing
  • US11429452B2 patent drawing
  • US11429452B2 patent drawing

AI summary

This disclosure includes an improvement to hashing methods, which can help achieve faster load balancing of computing resources (e.g., processors, storage systems, web servers or other computer systems, etc.) This improvement may be particularly beneficial when a quantity of the available resources changes. Such hashing methods may include assigning a data object associated with a key to a particular computing resource of the available computing resources by using two auxiliary functions that work together to uniformly distribute data objects across available computing resources and reduce an amount of time to assign the data object to the particular computing resource.