Shared Bloom Filter for Search Result History

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As database size and user count increase, maintaining user access history records becomes memory-intensive and computationally costly, leading to performance losses and high storage requirements.

Innovation Solution

A shared Bloom filter is used to store and manage access history information for multiple users, efficiently identifying previously accessed items by applying hash functions to content and user identifiers, reducing memory needs and processing power.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional methods are used to store user access history records, then accurate access history can be maintained, but memory consumption and computational cost increase significantly as database size and user count increase

Engineering Contradiction:
Improveaccess history accuracyVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent combines access history information from multiple users into a single shared Bloom filter data structure. Instead of maintaining separate access history records for each user, the system merges all user access patterns into one collective filter, dramatically reducing memory consumption while preserving the ability to identify previously accessed items across the user base.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The Bloom filter uses a probabilistic data structure that accepts a small probability of false positives in exchange for significant memory savings. This disposable approach allows the system to maintain access history information with minimal memory footprint, sacrificing absolute accuracy for scalability and efficiency.

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

2Adaptability or versatility

If detailed user access history is maintained for each user, then personalized recommendations can be provided, but processing power and computational resources increase

Engineering Contradiction:
Improvepersonalization capabilityVSAvoidcomputational power
Core Design Contradiction:
Adaptability or versatilityVSPower

Solution Approach 1:

The shared Bloom filter serves multiple users simultaneously with a single data structure. Instead of implementing separate access history tracking systems for each user, the universal Bloom filter provides multi-functional support for identifying previously accessed items across all users, reducing computational overhead while maintaining personalization capabilities.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Loss of information

If complete access history records are stored, then comprehensive analysis can be performed, but storage requirements become prohibitively high

Engineering Contradiction:
Improveinformation completenessVSAvoidstorage volume
Core Design Contradiction:
Loss of informationVSVolume of stationary object

Solution Approach 1:

The Bloom filter extracts only the essential information needed for access history identification - specifically, which items have been accessed by which users - without storing complete detailed records. By extracting only the critical access patterns and storing them in a compressed probabilistic structure, the system maintains information completeness for recommendation purposes while dramatically reducing storage volume.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8849838B2Bloom filter for storing file access history
Publication Date: 2014.09.30 GOOGLE LLC
  • US8849838B2 patent drawing
  • US8849838B2 patent drawing
  • US8849838B2 patent drawing

AI summary

A method of producing a search query result that incorporates information about previously accessed search results includes retrieving a list of results responsive to a search request from a user at a first client. A Bloom filter is applied to the results in the list of results to identify one or more first results, if any, in the list of results that the user has previously accessed. A result list is generated. The result list includes at least a portion of the list of results, based at least in part on the identified one or more first results. The result list is sent to the first client.