Bloom Bounder for Space-Efficient Data Bounding
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Productivity
If multiple concurrent threads access shared memory locations, then thread-level parallelism is improved, but correctness requirements and concurrency control overhead are worsened
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.
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.
Data Source
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.


