Peer To Peer Mobility
Required Readings
Summary
- Communication Support Assumed So Far
- Interconnect Support
- Peer to Peer Systems
- Connectivity in P2P
- Distributed Hash Table
- Chord
- Hierarchical Systems
- Heterogeneous Systems A Mobile Network Example
- Alternative Algorithms
Communication Support Assumed So Far
We typically have used application/service-level namespace
- Process names
- File names
- Object keys
We need to map these to network level
- IP Addresses
- Network paths through switches and routers
Introduce intermediary metadata service, called Overlay Network
Created and updated on control plane
Need to make sure things
- Scale
- Geo-replicate
- Handle failures
- Span multiple administrative domains
This may introduce overhead on extremely dynamic systems
Interconnect Support
Hardware and drivers
Assume network has support for:
- Broadcast/multicast
- Gather/all-reduce
- Barrier
- Atomics (e.g. CompareAndSwap (CAS))
- Timing
- Remote Direct Memory Access (RDMA)
- Direct Cache Injection (DDIO)
Peer to Peer Systems
P2P systems only assume that systems can communicate over IP. No other assumptions are made for things like scale, structure, topology, etc.
Connectivity in P2P
How to find right peer?
- Centralized Registry
- Single RTT to find correct peer IP
- Centralized trust
- Examples:
- Napster
- Flood/Gossip based protocols
- Remove centralized coordinator
- No bound on lookup time
- Examples:
- Gnutella
- Bitcoin
- Provide Structured Routing Trees
- Distributed Hash Table (DHT)
- Decentralized index
- Probabilistic lookup time
- Examples:
- Chord
- Kademlia
- DynamoDB
Distributed Hash Table
Each client in distributed system uses same hash function
DHT is like a normal HT, except keys are sharded between nodes
Chord
DHT is represented as a ring of all numbers from 0 - N-1
ID = SHA(IP)
N must be sufficiently large to avoid collision
N is max number of nodes
NodeValue = SHA(KEY)
If node exists at NodeValue, update. Else, go to next node that does exist
Lookups needs to be need for immediate node and successors
Each node contains Finger Table
:
- at each node n, ith finger entry starts at (n + 2i) for a range of 2i elements
- Lookup goes from O(N) to O(log(N))
Nodes joining, departing
- Redistribute data
- Update finger tables
- Improve performance with additional metadata
Probabilistic guarantees about performance
Hierarchical Systems
Cost of communication vs cost of maintaining overlay
Nodes with different properties:
- Point to Point communication
- Stability, failure probability, Mobility
- Number and types of nodes
- Communication patters, locality
Consider hybrid approaches and hierarchical designs
Heterogeneous Systems A Mobile Network Example
Two types of nodes:
- Mobile Support Stations (MSS)
- Stationary
- High speed wired network
- Power availability is not a concern
- Mobile Host (MH)
- Belong to a cell associated with an MSS
- Mobile
- Low(er) speed mobile network
- Battery considerations
Goals:
- Fast lookup of MH
- Low overhead updates of overlay state
- Communication overhead
- Batter/energy/compute overhead
Alternative Algorithms
Metrics:
- SEARCH(lookup) cost
- INSERT(add/remove node)
- Impact of update required to support mobility
Time = Number (and type) of connections that need to be traversed