Pub/Sub System Dynamic Data Structure Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing publish/subscribe systems face inefficiencies in matching Boolean expressions due to limitations in handling real-valued and string-valued attributes, and incremental updates, with BE-Tree being ineffective for attributes with unknown ranges and Siena not supporting incremental updates.

Innovation Solution

A versatile pub/sub system that dynamically selects data structures based on attribute types and predicate operators, using Radix Priority Search Trees, Red-Black Priority Search Trees, Interval Trees, and suffix trees to efficiently match subscriptions with events, and supports incremental updates by managing subscriptions in buckets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If BE-Tree is used for matching Boolean expressions, then discrete attribute values can be handled efficiently, but real-valued attributes and string-valued attributes cannot be processed

Engineering Contradiction:
Improveattribute type supportVSAvoidmatching accuracy
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent changes the parameter of data structure selection based on attribute type. Different data structures (BE-Tree for discrete, Interval Tree for real-valued, Suffix Tree for string) are selected according to the specific parameter of attribute type, allowing the system to handle diverse attribute types effectively while maintaining matching accuracy

Inventive Principle:
Principle #35Parameter changes

2Productivity

If Siena is used for pub/sub matching, then incremental updates are supported, but performance degrades with large numbers of subscriptions and attributes

Engineering Contradiction:
Improveevent processing speedVSAvoidsubscription maintenance time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-processing subscriptions during insertion to build optimized data structures. This preliminary organization of subscription data enables fast event matching without degrading performance even with large numbers of subscriptions and attributes, as the matching structure is already prepared in advance

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If a single data structure is used for all subscriptions, then system complexity is reduced, but performance optimization for different attribute types is lost

Engineering Contradiction:
Improvedata structure complexityVSAvoidevent processing throughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies local quality by using different data structures for different attribute types rather than a uniform approach. Each attribute type (discrete, real-valued, string) gets a specialized data structure optimized for its characteristics, maximizing event processing throughput while managing complexity through localized optimization rather than global uniformity

Inventive Principle:
Principle #3Local quality

4Ease of operation

If BE-Tree clustering is used, then subscriptions are grouped efficiently, but performance deteriorates when clustering criterion lies between range predicate values

Engineering Contradiction:
Improvesubscription organizationVSAvoidevent matching speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces an intermediary approach by using range-based indexing structures (Interval Trees) that mediate between discrete clustering approaches and continuous attribute values. This intermediary structure avoids the performance deterioration issue by not relying on a single clustering criterion, instead providing efficient range queries that work regardless of where clustering boundaries are drawn

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10642918B2Efficient publish/subscribe systems
Publication Date: 2020.05.05 UNIV OF FLORIDA RESEARCH FOUNDATION INC
  • US10642918B2 patent drawing
  • US10642918B2 patent drawing
  • US10642918B2 patent drawing

AI summary

A publish/subscribe system is described that can adjust to provide high performance for diverse application environments through an attribute structure based on predicates of a subscription, each attribute structure with one or more buckets to which attribute values of a subscription may be stored. Various data structures can be used in the attribute structure to locate the buckets containing the subscriptions. The data structures selected for each subscription are based on the attribute type and predicate operators of the subscription.