Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
databases II
MapReduce
Dynamo
Peer-to-peer
MapReduce
MapReduce
Two phases
MapReduce
X
X
Map
Reduce
Example
apple
banana
apple
grape
apple
apple
grape
apple
apple
banana
apple
grape
apple
apple
grape
apple
Map
apple,1
banana,1
apple,1
apple,1
apple,1
apple,1
apple,1
apple,5
apple,1
grape,1
apple,1
apple,1
grape,1
grape,1
grape,1
apple,1
banana,1
Reduce
grape,5
banana,5
Grep
Sort
Analyze web graph
Build inverted indexes
Analyze access logs
Document clustering
Machine learning
Dynamo
Eventual consistency
Eventual consistency
Storage
unit
Storage
unit
Master storage
unit
(Joe, 22, Arizona)
22 32
Arizona
Montana
Arizona
Montana
22 32
Joe Bob
(Bob, 22, Montana)
22 32
Commit order
(Joe, 32, Montana)
Inconsistent
copies visible
Joe Bob
Mechanisms
Epidemics/rumor mongering
Anti-entropy
Primary copy
Epidemic replication
Update
Anti-entropy
Pairwise sync
Brian=BadProfessor
How to detect?
How to detect?
Brian=BadProfessor
How to detect?
Peer-to-peer
Great technology
Shady business model
Focus on the technology for now
Peer-to-peer origins
Q?
Web interface
Napster
Q?
Q?
Q?
Gnutella
Q?
Characteristics
Massively parallel
Distributed
Data-centric
Gnutella
ping
ping
ping
pong
ping
ping
pong
pong
pong
pong
ping
ping
pong
ping
ping
ping
ping
pong
ping
pong
ping
ping
ping
pong
ping
Search
Q?
TTL = 4
Download
Failures
Scalability!
Replicate information
Iterative deepening
Q?
Random walk
Q?
Adamic et al 2001
Supernodes
Q?
Some interesting
observations
Structured networks
Basic operation
Examples of DHTs
Chord
CAN
Tapestry
Pastry
Koorde
Kelips
Kademlia
Viceroy
Freenet
Chord
Node ID = Hash(IP)
2m-1 0
Object ID = Hash(Key)
Stoica et al 2001
Searching
K?
O(N)
Better searching
ger table: ith entry is node that succeeds me by at least 2i-1, m entries to
K?
O(log N)
Joining
Joining
O(log2 N)
Joining
Inserting
Objects
Good properties
Limited state
Bounded hops
Bounded maintenance
O(log2 n)
Robust
K?
Issues
Partitions
Malicious nodes
Network awareness