25
Yang Li Pravesh Ramachandran Shashank Chaudhary Devendra Kalia

Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

Embed Size (px)

Citation preview

Page 1: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

Yang Li

Pravesh Ramachandran

Shashank Chaudhary

Devendra Kalia

Page 2: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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

Page 3: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 4: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 5: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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 .

Page 6: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 7: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 8: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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).

Page 9: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 10: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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

Page 11: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 12: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 13: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 14: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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,

Page 15: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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

Page 16: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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

Page 17: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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

Page 18: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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

Page 19: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

Demonstration

Page 20: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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 .

Page 21: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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 .

Page 22: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 23: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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.

Page 24: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

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

Page 25: Yang Li Pravesh Ramachandran Shashank Chaudhary …liyang5/docs/bichord_p2p_protocol.pdf · CHORD Overview Chord is a representative peer to peer lookup service based on DHT. In Chord,

Thank You!

Any Questions ?