Rolling Bloom Filter Master-Slave Deletion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Bloom filters do not effectively support data set element deletion operations, leading to incorrect representation of data sets, and require significant memory resources for counting operations.
Innovation Solution
A rolling bloom filter data structure is introduced, comprising multiple sub-bloom filters that operate in a master/slave configuration, allowing for efficient insertion and deletion of elements while adhering to time-based and space-based data retention policies, reducing memory usage through a master/slave sub-data structure approach.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a counting bloom filter is used to support deletion operations, then element deletion capability is improved, but memory space requirement increases three to eight times
Solution Approach 1:
The bloom filter is divided into multiple sub-bloom filters organized in a hierarchical structure with master and slave relationships. Each sub-bloom filter handles a portion of the data set, allowing deletion operations to be performed on specific segments without affecting the entire structure. This segmentation enables the system to support deletions while using less memory than a full counting bloom filter.
Solution Approach 2:
The patent introduces a temporal dimension by organizing sub-bloom filters in generations and time windows. Elements are tracked across multiple time windows, and deletion is achieved by transitioning elements between windows rather than directly modifying bit counts. This dimensional approach enables deletion functionality without requiring the excessive memory of traditional counting bloom filters.
2Quantity of substance
If a basic bloom filter is used, then memory space efficiency is improved, but element deletion operation cannot be performed
Solution Approach 1:
The bloom filter is divided into multiple sub-bloom filters organized in a hierarchical structure with master and slave relationships. Each sub-bloom filter handles a portion of the data set, allowing deletion operations to be performed on specific segments without affecting the entire structure. This segmentation enables the system to support deletions while using less memory than a full counting bloom filter.
Solution Approach 2:
The system pre-allocates multiple sub-bloom filters and establishes master/slave relationships in advance. When deletion is needed, the system has pre-configured structures ready to handle the operation, eliminating the need for complex runtime memory management that would be required in a traditional counting bloom filter.
3Adaptability or versatility
If data set elements are frequently inserted and deleted, then data dynamicity is improved, but data integrity may be compromised due to incorrect bit manipulation
Solution Approach 1:
The bloom filter is divided into multiple sub-bloom filters organized in a hierarchical structure with master and slave relationships. Each sub-bloom filter handles a portion of the data set, allowing deletion operations to be performed on specific segments without affecting the entire structure. This segmentation enables the system to support deletions while using less memory than a full counting bloom filter.
Solution Approach 2:
The master sub-bloom filter acts as an intermediary between the slave sub-bloom filters and the external system. It coordinates insertion and deletion operations across the hierarchical structure, ensuring that bit manipulations are performed correctly and data integrity is maintained during frequent dynamic operations.
Data Source
AI summary
A data structure comprising two or more sub data structures representing a given data set is maintained. Each of the two or more sub data structures comprises an array of bit positions and has a set of hash functions associated therewith. Each of the hash functions is operable to map an element of the given data set to at least one of the bit positions of the array. One of the two or more sub data structures is recognized as a master sub data structure and the others of the two or more sub data structures as slave sub data structures. Insertion and deletion of elements in the data structure is based on the recognition of each of the two or more sub data structures as the master sub data structure or one of the slave sub data structures.


