Pub/Sub System Dynamic Data Structure Selection
Find Innovative SolutionsGenerate 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
Engineering 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
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
2Productivity
If Siena is used for pub/sub matching, then incremental updates are supported, but performance degrades with large numbers of subscriptions and attributes
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
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
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
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
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
Data Source
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.


