Bloom Filter Lookup Optimization in Distributed NoSQL Databases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed NoSQL databases face performance slowdowns due to disk-intensive operations during key lookups across multiple data centers, which can lead to increased processing overhead, power consumption, and unnecessary disk access.

Innovation Solution

Implementing a bloom filter as a data structure to quickly determine the presence or absence of data keys in a distributed database system, reducing the need for disk-based operations by processing lookup requests locally and minimizing communication across data centers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If disk-based operations are used for key lookups in distributed databases, then data accuracy is ensured, but processing speed decreases and power consumption increases

Engineering Contradiction:
Improvelookup speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The bloom filter pre-computes and stores hash values of all data keys in memory before lookup operations. This preliminary action allows the system to quickly determine key presence without performing disk-based searches during actual lookups, thereby improving speed and reducing power consumption while maintaining data accuracy

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The bloom filter acts as an intermediary data structure between the distributed database storage and the lookup operation. It provides a probabilistic filtering layer that quickly eliminates keys not present in the database before triggering expensive disk-based verification operations, thus reducing overall processing overhead and energy consumption

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If bloom filter is implemented to reduce disk access, then processing overhead is reduced, but memory usage increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The bloom filter allows adjustment of its size and hash function parameters to optimize the balance between memory consumption and processing efficiency. By tuning these parameters, the system can achieve significant processing speedups while keeping memory usage within acceptable bounds for the distributed database environment

Inventive Principle:
Principle #35Parameter changes

3Reliability

If data is distributed across multiple data centers, then system reliability is improved, but lookup operation complexity increases

Engineering Contradiction:
Improvesystem reliabilityVSAvoidlookup complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The bloom filter is segmented and distributed across multiple data centers along with the database data. Each data center maintains its own bloom filter portion, allowing lookup operations to be performed locally without requiring coordination across all data centers. This segmentation maintains system reliability through distribution while simplifying the lookup operation complexity

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10698898B2Front end bloom filters in distributed databases
Publication Date: 2020.06.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10698898B2 patent drawing
  • US10698898B2 patent drawing
  • US10698898B2 patent drawing

AI summary

Systems, methods, apparatuses, and software for distributed database systems in computing environments are provided herein. In one example, a method of operating a database system is provided that includes providing an interface to a database service that hosts at least a data store across a plurality of storage elements distributed with respect to each other, and receiving, in the interface, lookup requests to determine if first keys indicated by the lookup requests are present in the data store. The method includes processing the lookup requests with at least a bloom filter initialized with second keys associated with the data store to determine presence statuses of the first keys with respect to the data store, and indicating the presence statuses responsive to the lookup requests.