1 / 18

Content-based Publish-Subscribe Over Structured P2P Networks

Content-based Publish-Subscribe Over Structured P2P Networks Peter Triantafillou and Ioannis Aekaterinidis Presented by Jesse Chen 4/10/07. Outline of Talk. What is a publish/subscribe system? Why do we build publish/subscribe systems over p2p networks? What is an event/subscription?

Download Presentation

Content-based Publish-Subscribe Over Structured P2P Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Content-based Publish-Subscribe Over Structured P2P Networks Peter Triantafillou and Ioannis Aekaterinidis Presented by Jesse Chen 4/10/07

  2. Outline of Talk • What is a publish/subscribe system? • Why do we build publish/subscribe systems over p2p networks? • What is an event/subscription? • How to store subscriptions? • How to update subscriptions? • The matching algorithm • Delivering of events to the subscribers

  3. What is a publish/subscribe system? • A communication (information dissemination) system that delivers published notifications from every producer (publishers) to all interested consumers (subscribers). • Two types of publish/subscribe systems: • Topic based • Users express interest by joining a group (topic) • Content based • Users express interest by specifying subscriptions (a collection of predicates over the values of some attributes).

  4. Why Build Publish/Subscribe Systems Over P2P Networks? • To avoid the lack of scalability and fault-tolerance of centralized approaches. • To take advantages of Chord: decentralized, scalable, self-organizing. • Chord’s structured network: using DHT for easy resource lookup/routing.

  5. What is a publish-subscribe system? Publisher 1 Event Subscription Subscriber 1 Publisher 2 Subscriber 2 Matching Algorithm Event Subscription … … - Publishers and subscribers are decoupled. - Publishers are the information producers and the subscribers are the information consumers. - Subscriptions act as filters that filter out unrelated events and the system only delivers matched events to the subscribers.

  6. What is a publish-subscribe system? • An example of a publish/subscribe system: • Online stock quote • Publishers: stock exchanges - NYSE, NASDAQ • Events might contain the following information: • Opening price, closing price, high/low price, volume… • Subscribers: stock traders • Subscription: A stock’s price at a particular moment.

  7. What is an event? • A set of typed attributes • Each attribute consists of a type, a name and a value

  8. What is a subscription? Subscription 1 Subscription 2 An event matches a subscription if and only if all the subscription’s attribute predicate/constraints are satisfied.

  9. The subscription identifier • Each subscription is identified by an id (subID) • C1: The id of the node receiving the subscription • m bits for a m-bit Chord identifier address space • C2: The id of the subscription itself • Size is the rounded-up log of the maximum number of outstanding subscriptions a node can have. • C3: The number of attributes declared

  10. How to store subscriptions?

  11. How to store subscriptions? • For an attribute a with value v(a): • Generate the key k: k = h(v(a)) • Place subID at the node = successor(k) • Equality constraint attribute • Place subID at node = successor(h(“NYSE”)) • Range value attribute • Place subID at the following nodes: Successor(h(8.31)), successor(h(3.32)), …, successor(h(8.69)).

  12. How to store subscriptions? Successor(h(NYSE)) SubID list: SubID 1 Successor(h(OTE)) SubID list: SubID1 Subscription generator Successor(h(8.69)) SubID list: SubID1 … The average number of hops needed to store a subID: Equality constraint: Range attribute: Successor(h(8.31)) SubID list: SubID 1

  13. Updating subscriptions • The old node is forced to delete the SubID for the attribute that belongs to the subscription. • The new node is going to store the subID Successor(h(NYSE)) SubID list: SubID 1 Subscription generator Successor(h(NASDAQ)) SubID list: SubID 1 An update is performed by contacting:

  14. Updating subscriptions • Range attribute • Updating depends on the new values of the range bounds(V low-new(a),V high-new(a)) compare to the old range bounds. • V low-new(a) < V low(a) • Store SubID at the following nodes: [V low-new(a), V low(a)) • V high-new(a) > V high(a) • Store SubID at the following nodes: (V high(a), V high-new(a)] • V low-new(a) > V low(a) or V high-new(a) < V high(a) • Delete SubID at the following nodes: [V low(a), V low-new(a)) or (V high-new(a), Vhigh(a)] • The average number of nodes need to be contacted: K(logN). • K depends on whether new range is smaller or wider than old one.

  15. The Matching Algorithm – Matching Events with Subscriptions

  16. The Matching Algorithm – Matching Events with Subscriptions Successor(h(NYSE)) SubID list: SubID 1 Matching algorithm will retrieve the SubID lists for each attribute in the event by going to the successor nodes. Count the number of lists containing SubID1: 3 Number of attributes declared in C3 field of SubID1: 3 Successor(h(OTE)) SubID list: SubID1, SubID 2 Successor(h(8.40)) SubID list: SubID1 Successor(h(8.80)) SubID list:

  17. How to deliver the event to the subscriber? • Informing the node which generated the subscription with the matched event. • The node stores the subscription and it also holds metadata information about the subscription (the IP address of the subscription generator). • Finally, the event is delivered to the subscriber.

  18. Thank You!

More Related