Upload
phamkiet
View
219
Download
1
Embed Size (px)
Citation preview
Yang Li
Pravesh Ramachandran
Shashank Chaudhary
Devendra Kalia
Organization of the Presentation
• Introduction
Goal
Problem under consideration
Project- Proposal
• Previous Research
• Design Overview
• Design and implementation using Bichord
• Configuration requirements
• Program environment and simulators
• Demonstration
• Future Work
• Conclusion
A Brief Introduction Peer-Peer File Systems • This project implements a simple peer-to-peer (P2P) file sharing system
using a software library designed and implemented for the use of
applications on a P2P system.
• The underlying P2P software library of this system is an implementation of
the algorithms of the Chord protocol, implemented in the Java programming
language.
Distributed Hash Table
Efficient resource lookup is essential for peer to peer networks and DHT
(Distributed Hash Table) provides an ideal solution for resource lookup in
distributed networks.
In a DHT every peer of the underlying P2P network takes responsibility for
certain data values, that it must store and provide to the other participants of
the P2P network.
CHORD Overview
Chord is a representative peer to peer lookup service based on
DHT.
In Chord, both data objects and nodes are assigned an m bits
identifier by using a consistent hashing such as SHA-1.
A node’s identifier is obtained by hashing the node’s IP address
and service port number while a data object’s identifier is
produced by hashing itself or its name.
Along the Chord ring, all the identifiers including node ids and
keys are ordered.
In Chord, each node maintains a routing table, called the finger
table and each routing table entry is called a finger of the node.
Problem under consideration
The Chord Lookup Algorithm
The Chord lookup algorithm is similar to binary search.
To lookup a given key k, a node will check its finger table and forward a lookup message to the finger that is closest to but does not overshoot k clockwise.
After several iterations or recursions, the lookup message will ultimately arrive at the node that immediately precedes k.
Then the node will return the address of its successor node, which is also the successor node of k.
Hence the Lookup is available but not efficient .
Compressing the Finger Table
A finger table stores the locations of nodes in a particular order to reduce the search time.
With increase in the number of nodes, the number of entries in the finger table also increase.
Issue : This leads to duplication of entries pointing to the same node.
Hence, It is important to save memory by not duplicating entries.
Project Proposal
Two reasons inspired us to propose BiChord.
To maintain a Bi-directional link
The first reason is that a single heartbeat message between each
pair of nodes can be used by the nodes to perceive the arrival or
departure of each other.
Clock wise inefficiency
All the lookup messages in chord are passed clockwise along
the Chord ring which leads to inefficiency .
This is due to lookup keys located near but preceding the node,
the lookup messages will have to traverse almost the whole
Chord ring.
Related work & Previous Research Unstructured P2P Networks
Most of the deployed peer-to-peer systems are unstructured.
Some examples of unstructured P2P systems are Napster,
Gnutella and KaZaA which were deployed widely.
However, all these popular unstructured peer-to-peer systems
suffer from unscalability.
Structured P2P Networks
There are new kinds of peer-to-peer networks—the so-called
structured peer-to-peer networks such as CAN (Ratnasamy et
al., 2001) and Chord (Stoica et al., 2003), which are based on
distributed hash table (DHT).
Design Overview Features of Open Chord to a Java application.
Easy to use interfaces for utilization of a chord DHT.
Creation of custom keys to associated data with.
Transparent maintenance of chord DHT routing.
A remote communication protocol based on Java sockets.
A local communication protocol for testing and presentation
purpose.
Design Purpose
Designed to let nodes enter and leave the network with
minimal disruption
Node identifier hash = hash(IP address)
Key identifier hash = hash(key)
A key is stored at its successor:
node with next higher ID
Design and Implementation
Design & Implementation BiChord The principle of BiChord is quite simple. In BiChord, a node
needs to maintain a so-called anti-finger table in addition to the
finger table.
When there is a link in Chord, we add a reverse link that links
the same two nodes but in the reverse direction.
So if one node A is a finger of the other node B, then node B
becomes an anti-finger of node A.
Therefore each node in BiChord maintains:(1) finger table; (2)
successor list; (3) anti-finger table.
The former two are the same as in Chord while the last one
includes the information about all the anti-fingers of the node.
An example of Bichord working
In Chord, node 0 is the 3rd finger of node 3 and the 1st and 2nd fingers of node 6. So nodes 3 and 6 are included into the reverse-finger table of node 0. The original unidirectional links from nodes 3 and 6 to node 0 are both replaced by a pair of symmetrical links, i.e., a bidirectional link.
The Bichord Lookup We take the finger table and the anti-finger table
as a whole and call it the routing table.
To lookup a given key k, a node will check its
routing table to find a certain table entry, namely
one of its fingers or anti-fingers, whose identifier is
closest to k among all the entries.
Then the lookup message is forwarded to
this node. Ultimately, the lookup message will arrive
at the node closest to the key k among all the nodes
in the network.
Since we have not changed the responsibility of
data objects, this node must be the predecessor or
successor node of key k.
If the node is the successor node of k, the lookup
is resolved. Or else, this node must be the predecessor node of k.
Configuration Requirements :
Minimum Hardware requirements :
120MHz Intel Pentium processor or equivalent
16MB of RAM
28.8Kpbs modem
Platform Requirements :
Windows XP SP1 or later
Java 2 Platform Standard Edition Development Kit 5.0,
The Apache Ant3 build tool,
and a library of Apache log4j logging framework,
Program Environment
Open CHORD
An open Java-based implementation of the Chord DHT
Can be used and extended for own purposes for free and as
desired.
can be run on any Operating System with JVM
Developing Tools
MyEclipse 8.0 M1
Java 2 Platform Standard Edition Development Kit
the Apache Ant3 build tool
The simulators for CHORD
PeerSim
Peer-to-peer systems can be of a very large scale such as thousands of nodes, which typically join and leave continuously (Event-driven & Cycle-driven). Few comprehensive user manual.
Overlay weaver
Overlay Weaver is an overlay construction toolkit, which supports overlay algorithm designers in addition to application developers. No source code can be modify, only jar executable file available. (demo)
OpenChord
System Architecture & Implementation
Implementation of network communication protocol
• Interfaces and instances for protocols, synchronous communications
• Lookup of DHT, routine algorithm, retrieve, store and remove of nodes, data replication & maintenance
• Command line, input operation, configuration and logging
Functions in Modification ChordImpl.java: Implements all operations which can be
invoked on the local node
retrieve()
retrieve_R()
findPredecessors()
Retrieve.java: To retrieve a value from the local chord network. Modified to add anti-clockwise directional searching result
FingerTable.java: Add RevFingerTable() to scan the fingers in the predecessor’s direction
RevFingerTable(): modified to formatted string representation of bi-directional finger table
Demonstration
Proposed set of goals
Implementing the Bi-directional finger table
Cost evaluation using Timer function.
Implementing a Bi-Directional node search using Bichord .
Optimization of search algorithm .
Compressing the finger table .
Goals Achieved
Successful in Implementing the Bi-directional finger
table
Added aTimer function to compute cost.
Implemented a Bi-Directional Key search using
Bichord .
Optimized the Node Lookup search algorithm .
Future work
Work remains to be done in improving Chord’s resilience against network partitions and adversarial nodes.
There are many other techniques that can improve the efficiency like denser finger table and utilizing the underlying topology.
Conclusion Successful implementation of the chord protocol by
improving certain features.
In nature, it utilizes the existing finger table in Chord and constructs a reverse finger table.
By using the finger table and reverse finger table, the lookup performance is improved greatly.
References [1] I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan,
Chord: A scalable peer-to-peer lookup service for internet applications," in Proceedings of the 2001 conference on applications, technologies, architectures, and protocols for computer communications. ACM Press, 2001,
[2] Sven Kalle, Karsten Loesing, Open Chord version 1.0.4 User's Manual, Universit•y Bamberg, Germany, 2007
[3] Jiang Junjie, Tang Feilong, Pan Fei, Wang Weinong, Using bidirectional
links to improve peer-to-peer lookup performance, Journal of Zhejiang University SCIENCE A, 2006.7
[4]ZHOU Wei-ping, LIU Wei-guo, Bidirectional Search Chord System Based on Heterogeneity of Peers, Central South University, 2009.1
[5]WANG Fu-ye, GAO Jing-yang, WEI Sheng-jun, Replica Location Method Based on PM-chord Algorithm in Data Grids , Beijing University of Chemical Technology , 2009.1
Thank You!
Any Questions ?