Bloom Filter Service Discovery Using Single Hash Function

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing service discovery protocols in wireless communication networks are computationally intensive due to the need for multiple hash functions to generate and re-map bit strings representing supported services, especially when the length of the bit string changes, leading to potential false positives and inefficiencies.

Innovation Solution

A method using a single hash function to generate hash values for service identifiers, mapping multiple portions of these values to bit locations in a Bloom filter, which eliminates the need for multiple hash functions and allows for efficient representation of services supported or requested by communication devices, even when the bit string length changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If multiple hash functions are used to generate bit strings for service discovery, then service identification accuracy is improved, but computational complexity increases

Engineering Contradiction:
Improveservice identification accuracyVSAvoidcomputational complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the bit string into multiple portions or segments, where each portion can be independently processed. Instead of applying multiple hash functions to the entire bit string, the system processes segments separately, reducing the computational burden while maintaining the ability to identify services accurately through the combined information from all segments.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the bit string length is increased to reduce false positives, then service discovery accuracy is improved, but processing time increases

Engineering Contradiction:
Improvefalse positive rateVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary processing of the bit string by pre-computing or pre-processing certain portions before the actual service discovery operation. This preliminary action prepares the data structure in advance, so that when service discovery is needed, the system can quickly process the pre-prepared segments without having to handle the entire long bit string from scratch, thus reducing processing time while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple hash functions are applied when bit string length changes, then adaptability is improved, but computational overhead increases

Engineering Contradiction:
Improvebit string length adaptabilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent creates a universal processing approach where the same hash function can be applied to bit strings of varying lengths by processing only the relevant portions. Rather than requiring different hash functions for different bit string lengths, the system uses a single versatile hash function that adapts to any length by operating on the appropriate segments, maintaining both adaptability and efficiency.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11005950B1Optimized bloom filter
Publication Date: 2021.05.11 MARVELL ASIA PTE LTD
  • US11005950B1 patent drawing
  • US11005950B1 patent drawing
  • US11005950B1 patent drawing

AI summary

A method, implemented in a communication device, of indicating a service supported by the communication device. A hash value is generated, using a hash function, based on a service identifier associated with the service. Respective portions of the hash value are mapped to respective bit locations in a bit string that represents membership of the service in a set of services supported by the communication device. The bit string is generated at least by setting the bit locations in the bit string to values that indicate that the service is supported by the communication device.