Contd.) Distributed Hash Tables Content Addressable Networks (CAN

Contd.) Distributed Hash Tables Content Addressable Networks (CAN

Distributed Hash Tables Chord is a generic example of a distributed hash table Processors organized into an interconnection topology with diameter O(log n) and degree O(log n) Tracking Objects (contd.) Strengths: Probabilistic load-balance algorithm Implicit routing: location of object can be determined by using the hash function on the object’s key Arvind Krishnamurthy Weaknesses: Fall 2004 Destroys integrity of key-space Related objects will be mapped to arbitrary locations “mozilla-3.5.rpm” might be stored in an arbitrarily different place from “mozilla-3.6.rpm” Cannot query for “mozilla*” Content Addressable Networks (CAN) CAN Chord (and other DHT’s like Tapestry, Pastry) organize the nodes into hybercube-like interconnection networks virtual Cartesian coordinate space CAN organizes nodes into a multi-dimensional mesh CAN supports a similar abstraction as Chord entire space is partitioned Insert(key, value) amongst all the nodes Lookup(key) Æ value every node “owns” a zone Components of CAN: in the overall space Assigning regions of a multidimensional space to nodes Handle node joins and leaves abstraction Routing and routing optimizations can store data at “points” in the space can route from one “point” to another Division of Space Insert Operation Cartesian coordinate space is divided into zones through a randomized process node I::insert(K,V) 2 (1) a = hx(K) I 1 1 2 1 b = hy(K) 3 (2) route(K,V) -> (a,b) (K,V) (3) (a,b) stores (K,V) 2 1 3 4 1 Lookup Operation CAN ( Node Join) node J::retrieve(K) (1) a = hx(K) Bootstrap b = hy(K) node (2) route “retrieve(K)” to (a,b) (K,V) (p,q) 2) pick random point in space I J 1) Discover some node “I” already in CAN new node CAN ( Node Join cont) CAN ( Node Join cont.) (p,q) J new J I 4) split J’s zone in half… new owns one half new node 3) I routes to (p,q), discovers node J Inserting a new node affects only a single other node and its immediate neighbors Scalability & Performance Node Failures For a uniformly partitioned space with n nodes and d Need to repair the space dimensions recover database use replication, rebuild database from replicas per node, number of neighbors is 2d 1/d repair routing average routing path is (dn )/4 hops takeover algorithm simulations show that the above results hold in practice CAN: takeover algorithm Can scale the network without increasing per-node state know your neighbor’s neighbors when a node fails, one of its neighbors takes over its zone Chord/Plaxton/Tapestry/Buzz log(n) nbrs with log(n) hops More complex failure modes simultaneous failure of multiple adjacent nodes scoped flooding to discover neighbors hopefully, a rare event. 2 Routing Resilience Routing Resilience CAN size = 16K nodes CAN size = 16K nodes Pr(node failure) = 0.25 ) 100 #dimensions = 10 g n i t 100 u 80 o ) r g l n i u 60 80 t f u s s o r e 40 60 c l c u u f s 20 s ( s 40 r e P c 0 c u 20 s 246810 ( r dimensions P 0 0 0.25 0.5 0.75 Pr(node failure) Distributed Binning Peer-to-Peer Information Retrieval Goal: Bin nodes such that co-located nodes land in same bin Distributed Hash Table Scalable, fault tolerant, self-organizing Only support exact key match Approach: Kd=hash (“books on computer networks”) Well known set of landmark machines Kq=hash (“computer network”) Each CAN node measures its RTT to each landmark Orders the landmarks in order of increasing RTTs pSearch: Extend DHTs with content-based search CAN construction: Full-text search, music/image retrieval Place nodes from the same bin close together on the CAN Build large-scale search engines using P2P technology pSearch Key Idea Background: Vector Space Model ABC vocabulary Va Vq Vb book 0.5 0 0 0.89 0.72 computer 0.5 0.5 0 D E F network 0.8 0.8 0.9 routing 0 0 0.6 G HI A: “books on computer networks” B: “network routing in P2P networks” semantic space doc query Q: “computer network” 3 Background: Latent Semantic Indexing pLSI Basic Idea Use a CAN to organize nodes into an overlay Use semantic vectors generated by LSI as object key to documents semantic vectors store doc indices in the CAN Index locality: indices stored close in the overlay are also close in Va Vb V’a V’b semantics SVD ….. Two types of operations Publish document indices terms ….. Process queries SVD: singular value decomposition Reduce dimensionality Suppress noise Discover word semantics Car <-> Automobile Content-directed Search Content-Aware Node Bootstrapping Search the node whose zone contains the query semantic vector. On node join, CAN picks a random point and splits the zone that (query center node) contains the point Search direct (1-hop) neighbors of query center pSearch randomly picks the semantic vector of an existing Selectively search some 2-hop neighbors document for node bootstrapping Focusing on “promising” regions suggested by samples 4.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    4 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us