TY - JOUR
T1 - Filtering algorithms and implementation for very fast publish/subscribe systems
AU - Fahret, Françoise
AU - Jacobsen, H. Arno
AU - Llirbat, François
AU - Pereira, João
AU - Ross, Kenneth A.
AU - Shasha, Dennis
PY - 2001/6
Y1 - 2001/6
N2 - Publish/Subscribe is the paradigm in which users express long-term interests ("subscriptions") and some agent "publishes" events (e.g., offers). The job of Publish/Subscribe software is to send events to the owners of subscriptions satisfied by those events. For example, a user subscription may consist of an interest in an airplane of a certain type, not to exceed a certain price. A published event may consist of an offer of an airplane with certain properties including price. Each subscription consists of a conjunction of (attribute, comparison operator, value) predicates. A subscription closely resembles a trigger in that it is a long-lived conditional query associated with an action (usually, informing the subscriber). However, it is less general than a trigger so novel data structures and implementations may enable the creation of more scalable, high performance publish/subscribe systems. This paper describes an attempt at the construction of such algorithms and its implementation. Using a combination of data structures, application-specific caching policies, and application-specific query processing our system can handle 600 events per second for a typical workload containing 6 million subscriptions.
AB - Publish/Subscribe is the paradigm in which users express long-term interests ("subscriptions") and some agent "publishes" events (e.g., offers). The job of Publish/Subscribe software is to send events to the owners of subscriptions satisfied by those events. For example, a user subscription may consist of an interest in an airplane of a certain type, not to exceed a certain price. A published event may consist of an offer of an airplane with certain properties including price. Each subscription consists of a conjunction of (attribute, comparison operator, value) predicates. A subscription closely resembles a trigger in that it is a long-lived conditional query associated with an action (usually, informing the subscriber). However, it is less general than a trigger so novel data structures and implementations may enable the creation of more scalable, high performance publish/subscribe systems. This paper describes an attempt at the construction of such algorithms and its implementation. Using a combination of data structures, application-specific caching policies, and application-specific query processing our system can handle 600 events per second for a typical workload containing 6 million subscriptions.
UR - http://www.scopus.com/inward/record.url?scp=0038969993&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0038969993&partnerID=8YFLogxK
U2 - 10.1145/376284.375677
DO - 10.1145/376284.375677
M3 - Article
AN - SCOPUS:0038969993
SN - 0163-5808
VL - 30
SP - 115
EP - 126
JO - SIGMOD Record (ACM Special Interest Group on Management of Data)
JF - SIGMOD Record (ACM Special Interest Group on Management of Data)
IS - 2
ER -