160 likes | 178 Views
Explore the decentralized Chedar P2P middleware, its structure, messages, and topology management algorithms for distributed computing applications. Gain insights on ChedarClient API functions and network structure. Learn about its Node Selection, Overload Estimation, and Overtaking algorithms.
E N D
Chedar: Peer-to-Peer MiddlewarePresentation for 8th International Workshop on Javatm for Parallel and Distributed Computing (IWJPDC 2006) 25.4.2006 Annemari Auvinen, research student Department of Mathematical Information Technology University of Jyväskylä, Finland http://tisu.it.jyu.fi/cheesefactory With co-authors Mikko Vapa, Niko Kotilainen, Matthieu Weber and Jarkko Vuori
Agenda • Peer-to-Peer Networks • Chedar • Chedar’s Structure • Messages • Topology Management Algorithms
Peer-to-Peer Networks • Peer-to-Peer (P2P) networks allow sharing of resources (e.g., computing power, storage space) over the Internet • Every node serves as a server and a client • In contrast to clusters, in P2P networks all the tasks and responsibilities for managing the network are shared between peers
Related Work • Gnutella • Pure P2P protocol • Search queries are broadcasted by using BFS with TTL • Pre-defined amount of neighbors • Chedar differs: • Middleware • Topology management algorithms • 4 search algorithms • Resource reply routing • XML-based structured resource description
Chedar • Chedar is a totally decentralized P2P middleware implemented using Java • Neighbor’s goodness is defined based on the resource replies the node has received from the neighbor • Basis for P2P applications: distributed computing (P2PDisCo), data fusion, extension for mobile devices
ChedarClient API for Chedar startConnecting() setMonitor(iMonitor) pingMessage() setResources(resource) createResourceQuery(query, algorithm, ttl) setTrafficLimit(limit) forceConnection(id) forceDisconnection(id) closeAllConnections By implementing a monitoring interface iMonitor the application may get events about sent and discarded queries, forwarded messages, sent replies, received replies and connection requests Structure 1/3
Structure 2/3 • ConnectionManager • Manages active connections and history data • Keeps cache about the forwarded messages • Forwards received messages to the right component • Measures traffic: • Traffic limit and meter -> Overload • TopologyManager • Makes decisions which connections are dropped and where to establish a new connection • Handles topology management messages
Structure 3/3 • PropagationEngine • Handles the resource queries and replies • 4 resource discovery algorithms: BFS, Random Walk, Highest Degree Search and NeuroSearch • Connections • Include local information about node’s neighbors • Used by topology management algorithms
Connections • Chedar keeps information about active connections and history data about the earlier connections in XML trees • Active connections and history data contains • IP address and TCP port • Resource types the node provides • Hit values • Request time • Hit value is increased every time the node gets a resource reply from its neighbor • Relayed hits include the neighbor’s neighbors and the amount of replies those have relayed to the node through the neighbor
Messages • Topology management messages • Connection requests and replies for establishing connections • NeighborList requests and replies for quering neighbor’s neighbors • ServiceList requests and replies for quering the resource types neighbor provides • Resource requests and replies
Resource reply ”routing” • Reply goes back to the iniator of the query same route as the query came if all nodes are still available • If the node where the query came to the node is not available the reply is tried to sent to the second next node on the return path • If the previous node is not available the reply is sent directly to the iniator of the query query Peer 2 Peer 3 Peer 4 Peer 1 reply
Topology Management Algorithms 1/4 • Node Selection • Tries to establish the connections which the peer had before leaving the network • History data • Connections with hit values and ”old” request time • Connections with ”old” request time or unrequested connections • Connections without hit values and request time • Connections with hit values
Topology Management Algorithms 2/4 • Node Removal • Selects the ”worst” connection • Worst connection is a connection which has the smallest goodness value • Goodness value: connections hits+its neighbors’ relayed hits
Topology Management Algorithms 3/4 • Overload Estimation • Connections are established and dropped based on the amount of traffic going through the node • ConnectionManager measures the traffic in the given time sequence and if it is more than the given upper traffic limit one connection is dropped by using Node Removal • If the traffic meter is less than the lower traffic limit, algorithm tries to establish a new connection by using Node Selection
Topology Management Algorithms 4/4 • Overtaking • Peer moves closer to the ”good” peers by overtaking the current connection • If connection has neighbor which relayed hits proportion of all neighbors’ relayed hits and connection’s hits is more than the given overtaking percent a new connection to that neighbor is established and current connection is dropped • Peers which provide lots of resources are in the middle of the network Relayed hits:6 (60%) 3 3 2 1 2 1 Relayed hits:2 (20%) 4 4 Hits:2
Future • Further development of the topology management algorithms and NeuroSearch resource discovery algorithm • Further development of applications using Chedar • P2PDisco which is used for speeding up the training of neural networks with evolutionary algorithm