Bloom Filter Index Search for Segment Retrieval

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvenumber of segments storedVSAvoidsearch time to locate segment entry
Core Design Contradiction:
Quantity of substanceVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvenumber of segments storedVSAvoidsearch efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9201949B2Index searching using a bloom filter
Publication Date: 2015.12.01 EMC IP HLDG CO LLC
  • US9201949B2 patent drawing
  • US9201949B2 patent drawing
  • US9201949B2 patent drawing

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.