Bloom Bounder for Space-Efficient Data Bounding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems face challenges in determining effective bounds on observed data in a time and space-efficient manner, particularly in optimizing instruction-level and thread-level parallelism, where existing solutions like Bloom filters are limited in providing definitive set membership tests and require further optimizations for concurrency control.

Innovation Solution

The implementation of a 'Bloom bounder' that uses a combination of hash functions and data arrays to efficiently determine maximum or minimum bounds for key/value pairs, allowing for selective updating and querying to establish bounds, thereby enhancing time and space efficiency in computer systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If traditional Bloom filters are used for set membership testing, then space efficiency is improved, but the ability to determine definitive set membership and handle concurrency control is worsened

Engineering Contradiction:
Improvespace efficiencyVSAvoiddefinitive set membership determination
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent divides the traditional Bloom filter into multiple independent Bloom filters, each responsible for tracking bounds of values with specific keys. This segmentation allows each Bloom filter to maintain definitive bound information for its specific key range while preserving the overall space efficiency of the Bloom filter structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each Bloom filter in the array is specialized for tracking bound information for specific keys, giving each component a specific function. This local quality approach allows definitive bound determination for each key while maintaining the probabilistic nature of Bloom filters for space efficiency.

Inventive Principle:
Principle #3Local quality

2Speed

If deeper instruction pipelines and out-of-order execution are used to increase processor speeds, then instruction-level parallelism is improved, but system complexity and concurrency control requirements are worsened

Engineering Contradiction:
Improveprocessor speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary data structure (array of Bloom filters) that mediates between the complex parallel execution system and the need for bound determination. This intermediary structure simplifies the complexity by providing a standardized way to track bounds without requiring complex concurrency control mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses multiple copies of the Bloom filter structure, each dedicated to specific keys. This copying approach allows parallel processing of bound determination for different keys without interfering with each other, reducing the concurrency control complexity while maintaining processor speed.

Inventive Principle:
Principle #26Copying

3Productivity

If multiple concurrent threads access shared memory locations, then thread-level parallelism is improved, but correctness requirements and concurrency control overhead are worsened

Engineering Contradiction:
Improvethread-level parallelismVSAvoidprogram execution correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the shared memory bound tracking into multiple independent Bloom filters, each handling specific keys. This segmentation allows concurrent threads to access different Bloom filters simultaneously without correctness issues, maintaining thread-level parallelism while ensuring reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter being tracked from general set membership to specific bound values for keys. This parameter change allows threads to operate independently on different keys without correctness conflicts, improving parallelism while maintaining reliability through proper bound tracking.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9037554B2Bloom bounders for improved computer system performance
Publication Date: 2015.05.19 SUN MICROSYSTEMS INC
  • US9037554B2 patent drawing
  • US9037554B2 patent drawing
  • US9037554B2 patent drawing

AI summary

A system and method for space and time efficient bound calculation is disclosed. The method comprises inserting a plurality of key/value pairs into a “Bloom bounder”, each key/value pair comprising a key and a value. For each pair, the inserting includes calculating a plurality of hash values, each calculated by applying a different one of a plurality of hash functions to the key, and selectively updating one or more data arrays based on the plurality of hash values and the value received key/value pair. A bound may then be determined for a given query key by analyzing information in the one or more data arrays to determine a bound value, such that for every received key/value pair with a key matching the query key, the corresponding value is less than or equal to the bound value.