Standing Query Evaluation Using Property-Based Hash Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-tenant cloud-based architectures, efficiently processing standing queries against continuously updated contact data poses a significant computational resource challenge, as existing systems require continuous re-searching of large datasets, leading to resource inefficiencies.

Innovation Solution

The method involves resolving standing queries into sets of rules, sorting facts into hash tables based on their properties, and comparing them to identify matching rules, thereby applying only the updated data (event stream) to the rules, reducing computational load by avoiding re-search of unchanged data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If continuous re-searching of large datasets is performed to maintain real-time search capability, then search results remain current, but computational resources are consumed excessively

Engineering Contradiction:
Improvesearch result currencyVSAvoidcomputational resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the large contact database into smaller hash tables organized by properties (name, company, location, etc.). Instead of searching the entire database continuously, the system only evaluates standing queries against newly added or modified contact entries by hashing their properties and comparing with relevant hash table entries. This segmentation reduces the search space from millions of records to only the changed subset, maintaining real-time accuracy while minimizing computational resource consumption.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If standing queries are processed against all contact data periodically, then search accuracy is maintained, but processing time increases

Engineering Contradiction:
Improvesearch accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary organization of contact data into hash tables based on properties before queries need to be executed. When contact data changes, the system pre-computes hash values and updates only the relevant hash table entries. This preliminary structuring allows standing queries to be evaluated instantly against changed data without time-consuming full database scans, maintaining search accuracy while reducing processing time from periodic full scans to immediate incremental updates.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the entire contact database is searched for each standing query, then all matching results are found, but computational complexity increases

Engineering Contradiction:
Improvequery result completenessVSAvoidcomputational complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts only the necessary subset of contact data that is relevant to each standing query by using property-based hash tables. Instead of searching through all contact entries, the system extracts and compares only those entries that match the query criteria by hashing the query properties and retrieving corresponding hash table entries. This extraction approach ensures complete matching results while dramatically reducing computational complexity from O(n) full database scans to O(1) hash table lookups.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10423883B2System and method for fast evaluation of standing queries in conjunctive normal form
Publication Date: 2019.09.24 SALESFORCE INC
  • US10423883B2 patent drawing
  • US10423883B2 patent drawing
  • US10423883B2 patent drawing

AI summary

Methods and systems are provided for evaluating standing queries against updated contact entries configured as a stream of facts. The method includes resolving the standing queries into an array of rules, each rule having a first and a second condition; sorting one of the facts into a first property and a second property; comparing the first property of the fact to the first condition of each rule in the array of rules to produce a first subset of matching rules; comparing the second property of the fact to the second condition of each rule in the first subset of rules to produce a second subset of matching rules; and reporting at least one of the second subset of rules to an author of the matching rule. The method further includes populating a first hash with indicia of the first subset, and populating a second hash with the second subset.