Bloom Filter Index Search for Segment Retrieval
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As storage systems grow in the number of segments stored, the index size increases, making it time-consuming to locate a segment's entry within the index.
Innovation Solution
A system utilizing a Bloom filter to efficiently determine if a segment has been previously stored by using fingerprints, with a two-index structure where a sorted L0 index and a potentially unsorted L1 index are used, and a memory buffer to reduce random access and improve search efficiency by merging indices and using Bloom filters for secondary indices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the storage system increases the number of segments stored, then the storage capacity is improved, but the index size increases and search time increases
Solution Approach 1:
The index is divided into multiple levels (L0 index and L1 index) with different search criteria. The L0 index stores segments with exact fingerprint matches, while the L1 index stores segments with approximate fingerprint matches. This segmentation allows the system to handle large numbers of segments efficiently by searching in multiple index levels simultaneously, reducing overall search time while maintaining high storage capacity.
Solution Approach 2:
The patent introduces a Bloom filter as an additional dimension to the traditional index structure. The Bloom filter provides a probabilistic check that can quickly determine whether a segment fingerprint exists in the index without performing full index searches. This adds a new dimension of search optimization that significantly reduces search time as the number of segments increases.
2Quantity of substance
If the index size increases to store more segments, then the storage capacity is improved, but the time required to locate entries increases
Solution Approach 1:
The system performs preliminary actions by pre-computing and storing fingerprint information for all segments in the index. The Bloom filter is pre-built based on the fingerprint distribution of segments in the index. When searching for a segment, the system can immediately use the pre-computed fingerprint and Bloom filter to quickly determine if the segment exists in the index, eliminating the need for full index scans and significantly improving search efficiency.
Solution Approach 2:
The Bloom filter acts as an intermediary between the search query and the actual index data. Instead of directly searching through the entire index, the system first queries the Bloom filter using the segment fingerprint. The Bloom filter provides a quick yes/no indication of whether the segment is likely in the index, serving as a mediator that filters out unnecessary full index searches and improves overall search efficiency.
Data Source
AI summary
A system for index searching comprises a first index, a second index, a processor, and a memory. The processor is configured to determine, using a Bloom filter for the second index of fingerprints, whether the Bloom filter indicates that an entry corresponding to a segment has been previously stored in the second index. The processor is further configured to, in the event that the Bloom filter indicates that an entry corresponding to the segment has been previously stored in the second index, retrieve a second index entry associated with the segment that has been previously stored. The memory is coupled to the processor and configured to provide the processor with instructions.


