Distributed Bloom Filters for Partition Indexing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In large data sets, traditional indexing methods like B+ trees and hash tables become inefficient due to the scale and complexity, leading to prohibitively time-consuming and expensive queries, especially when unable to filter by partitioning key, requiring the entire set of partitions to be scanned.

Innovation Solution

Implementing a distributed set of Bloom filters to efficiently index and search large data sets by generating filters for each partition, allowing for quick identification of candidate partitions that may contain the queried value, thereby reducing the need to scan irrelevant partitions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional indexing methods (B+ trees, hash tables) are used to index large data sets, then query accuracy is maintained, but query time and computing costs become prohibitively long and expensive

Engineering Contradiction:
Improvequery accuracyVSAvoidquery time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent divides the large data set into multiple partitions and creates a separate Bloom filter for each partition. This segmentation allows the system to quickly determine which partitions may contain the queried value without scanning all partitions, thereby reducing query time while maintaining accurate results through the probabilistic nature of Bloom filters.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces Bloom filters as an intermediary data structure between the query and the actual data partitions. These filters act as a preliminary filtering mechanism that quickly identifies candidate partitions containing the queried value, reducing the need to scan irrelevant partitions and thereby decreasing query time while preserving accuracy.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If traditional indexing methods are used on large scale data sets, then complete data coverage is ensured, but device complexity and storage requirements increase significantly

Engineering Contradiction:
Improvedata coverageVSAvoidindexing structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses Bloom filters, which are space-efficient probabilistic data structures that require minimal storage compared to traditional indexing methods. While Bloom filters can have false positives, they provide adequate data coverage for identifying candidate partitions without requiring the complex structure of B+ trees or hash tables, thereby reducing device complexity while maintaining reliable data coverage.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Measurement precision

If the entire set of partitions is scanned to ensure complete search coverage, then query accuracy is maintained, but computing resources and costs increase

Engineering Contradiction:
Improvesearch completenessVSAvoidcomputing resource usage
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent applies partial action by using Bloom filters to identify a subset of candidate partitions that may contain the queried value, rather than scanning all partitions. This partial scanning approach maintains search completeness for the identified candidates while significantly reducing computing resource usage by excluding partitions that definitely do not contain the value.

Inventive Principle:
Principle #16Partial or excessive action

4Speed

If data sets are divided into many partitions to improve query performance, then query speed improves for filtered searches, but the overhead of managing and scanning partitions increases

Engineering Contradiction:
Improvequery speedVSAvoidpartition management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by pre-computing and storing Bloom filters for each partition during data ingestion. This preliminary indexing allows the system to quickly evaluate candidate partitions during queries without incurring the overhead of managing complex partition structures at query time, thereby maintaining query speed while reducing partition management complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11531666B1Indexing partitions using distributed bloom filters
Publication Date: 2022.12.20 AMAZON TECH INC
  • US11531666B1 patent drawing
  • US11531666B1 patent drawing
  • US11531666B1 patent drawing

AI summary

Methods, systems, and computer-readable media for indexing partitions using distributed Bloom filters are disclosed. A data indexing system generates a plurality of indices for a plurality of partitions in a distributed object store. The indices comprise a plurality of Bloom filters. An individual one of the Bloom filters corresponds to one or more fields of an individual one of the partitions. Using the Bloom filters, the data indexing system determines a first portion of the partitions that possibly comprise a value and a second portion of the partitions that do not comprise the value. Based (at least in part) on a scan of the first portion of the partitions and not the second portion of the partitions, the data indexing system determines one or more partitions of the first portion of the partitions that comprise the value.