EFFICIENT PUBLISH/SUBSCRIBE SYSTEMS
First Claim
Patent Images
1. A publish/subscribe system comprising:
- a database storing subscriptions; and
a database manager that when executed by one or more processors directs the one or more processors to;
perform an update action with respect to a subscription to the database by;
using attributes of the subscription to follow a path in a hierarchical subscription data structure stored in the database until a lowest level is reached where there are still non-empty attributes; and
performing the update action at an appropriate bucket of the database determined by the following of the path in the hierarchical subscription data structure; and
search for one or more matching subscriptions for an event by;
using the hierarchical subscription data structure to determine which buckets of the subscription structure are to be searched; and
searching the buckets of the subscription structure which are to be searched for the one or more subscriptions that match the event.
2 Assignments
0 Petitions
Accused Products
Abstract
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.
16 Citations
24 Claims
-
1. A publish/subscribe system comprising:
-
a database storing subscriptions; and a database manager that when executed by one or more processors directs the one or more processors to; perform an update action with respect to a subscription to the database by; using attributes of the subscription to follow a path in a hierarchical subscription data structure stored in the database until a lowest level is reached where there are still non-empty attributes; and performing the update action at an appropriate bucket of the database determined by the following of the path in the hierarchical subscription data structure; and search for one or more matching subscriptions for an event by; using the hierarchical subscription data structure to determine which buckets of the subscription structure are to be searched; and searching the buckets of the subscription structure which are to be searched for the one or more subscriptions that match the event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable storage medium having instructions stored thereon that, when executed by a processor, perform a method comprising:
-
in response to receiving a request to perform an update action with respect to a subscription, performing the update action with respect to the subscription to the database by; using attributes of the subscription to follow a path in a hierarchical subscription data structure stored in the database until a lowest level is reached where there are still non-empty attributes; and performing the update action at an appropriate bucket of the database determined by the following of the path in the hierarchical subscription data structure; and in response to receiving a request to process an event, searching for one or more matching subscriptions for the event by; using the hierarchical subscription data structure to determine which buckets of the subscription structure are to be searched; and searching the buckets of the subscription structure which are to be searched for the one or more subscriptions that match the event. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of selecting a data structure for an attribute of a subscription in a publish/subscribe system, the attribute comprising attribute predicates, the method comprising:
selecting an attribute data structure based on subscription predicates that use the attribute. - View Dependent Claims (20, 21, 22, 23, 24)
Specification