27
Chord and CFS Philip Skov Knudsen ([email protected]) Niels Teglsbo Jensen ([email protected]) Mads Lundemann ([email protected])

Chord and CFS Philip Skov Knudsen ([email protected]) Niels Teglsbo Jensen ([email protected]) Mads Lundemann ([email protected])

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Chord and CFS

Philip Skov Knudsen ([email protected])

Niels Teglsbo Jensen ([email protected])

Mads Lundemann ([email protected])

Page 2: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Distributed hash table

• Stores values at nodes

• Hash function

• Name -> Hash key, name can be any string or byte array

• Article mixes up key and ID

• Chord

• CFS

Page 3: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Chord

A scalable Peer-to-peer Lookup Protocol for Internet Applications

Page 4: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Chord purpose

• Map keys to nodes

• (Compared to Freenet: No anonymity)

Page 5: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Goals

• Load balance

• Decentralization

• Scalability

• Availability

• Flexible naming

Page 6: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Consistent hashing

Page 7: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Simple network topology

Page 8: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Efficient network topology

Page 9: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Lookup algorithm

Page 10: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Node joining

26.join(friend) -> 26.successor = 32

26.stabilize -> 32.notify(26)

21.stabilize -> 21.successor=26 -> 26.notify(21)

Page 11: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Preventing lookup failure

• Successor list length r

• Disregarding network failures

• Assuming each node failing within one stabilization period with probability p:

• Connectivity loss for a node with probability: p^r

Page 12: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Path lengths from simulation

Probability densityfunction for path length in anetwork of 2^12 nodes.

Path lengths with varying N

Page 13: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Load balance

Nodes: 10^4, keys: 5*10^5

Page 14: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Virtual servers

10^4 nodes and 10^6 keys

Page 15: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Resilience to failed nodes

In a network of 1000 nodes

Page 16: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Latency stretch

In a network of 2^16 nodesc = Chord latencyi = IP latencystretch = c / i

Page 17: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

CFS

Wide-area cooperative storage

Page 18: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Purpose

• Distributed cooperative file system

Page 19: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

System design

Page 20: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

File system using DHash

Page 21: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Block placement

Tick mark: Block IDSquare: Server responsible for ID (in Chord)Circles: Servers holding replicasTriangle: Servers receiving a copy of the block to cache

Page 22: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Availability

• r servers holding replicas of a block

• The server responsible for ID is responsible for detecting failed replica servers

• If the server responsible for ID fails the new server in charge will be the first replica server

• Replica server detects this when Chord stabilizes

• Replica nodes are found in the successor list

Page 23: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Persistence

• Each server promises to keep a copy of a block available for at least an agreed-on interval

• Publishers can ask for extensions

• This does not apply to cached copies, but to replicas

• The server responsible for the ID is also responsible for relaying extension requests to servers holding replicas

Page 24: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Load balancing

• Consistent hashing

• Virtual servers

• Caching

Page 25: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Preventing flooding

• Each CFS server limits any one IP address to using a certain percentage of its storage

• Percentage might be lowered as more nodes enter the network

• Can be circumvented by clients with dynamic IP addresses

Page 26: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Efficiency

• Efficient lookups using Chord

• Prefetching

• Server selection

Page 27: Chord and CFS Philip Skov Knudsen (skov@diku.dk) Niels Teglsbo Jensen (teglsbo@diku.dk) Mads Lundemann (thenox@diku.dk)

Conclusion

• Efficient

• Scalable

• Available

• Load-balanced

• Decentralized

• Persistent

• Prevents flooding