pa2 - CSCI 5105: Foundations of Modern Operating Systems...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
CSCI 5105: Foundations of Modern Operating Systems Spring 2010 Programming Assignment 2: Publish / Subscribe on a DHT Due: March 30 th 2010 at 11:59 pm. 1. Overview In this programming project you will implement a decentralized publish / subscribe infrastructure using distributed hash tables(DHTs) based on the Chord protocol. Using your system, a publisher will be able to insert a set of tag to URL pairs into the DHT. A subscriber will be able to obtain the URLs for a given tag (or combination of tags) by querying the DHT based on the tags. 2. Project Details The operations your system should allow publishers / subscribers to perform are: Publish: Takes a tag and n URLs (ostensibly storing web pages with content which correspond to that tag) and stores them on a node in the DHT. Subscribe: Searches the DHT for the URLs corresponding to a given tag. For example, a publisher might publish the following: { “music” : [“ www.pandora.com ”, www.lastfm.com ”] }, where music is the tag and the rest are the corresponding URLs. Now if a user wishes to subscribe to websites tagged as “music”, the system will return these 2 URLs. The central components of the DHT are the nodes. They share the distributed store and its contents. In order to simplify your design it would be a good idea to include a SuperNode (which can be assumed to be a well known node ) in the DHT. The SuperNode like other nodes is a part of the DHT with some extra capabilities. The SuperNode is the initial point of contact for the nodes to join the DHT and can be used to initiate building of the DHT. The entities you need to build are: Publisher / Subscriber – You can treat this as one client node which supports the publish / subscribe operations. Nodes – These processes form your DHT and are used by the publisher / subscriber to add / query tag to URL mappings. You can choose one of these nodes to function as a SuperNode. Your DHT should have at least 10 nodes . Your underlying DHT is built based on Chord. It is highly recommended that you read the original paper describing Chord to get an idea of how your system should behave. 2.1 Building the DHT The system starts off by constructing the DHT. You need to ensure that only one node is being added to the DHT at a time. You can design your system such that either the nodes initiate this process and CSCI 5105 – Programming Assignment 2 Page 1 of 5
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
contact the SuperNode to join the DHT or the SuperNode initiates this process and requests nodes to join the DHT one at a time. Examining the latter, your system would need to work as follows. The SuperNode may have a list of potential nodes. On starting, it requests each node in the list to join
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 10/21/2011 for the course CSCI 5105 taught by Professor Staff during the Spring '08 term at Minnesota.

Page1 / 5

pa2 - CSCI 5105: Foundations of Modern Operating Systems...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online