88
DHT-based P2P Architecture 1

DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

DHT-based P2P Architecture

1

Page 2: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

No server to store game states

2

Page 3: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

A client can store its own player’s state but what about

states of NPC, objects etc. ?

3

Page 4: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Not scalable if we replicate states of every object in the

game in every client

4

Page 5: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Idea: split responsibility of storing the states among the

clients

5

Page 6: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Who store what?

6

Page 7: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Object Client1 X2 Y3 Z: :: :: :

To find out who store what, each client can maintain a table ..

7

Page 8: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Need to update table at every node frequently. Still not scalable.

8

Page 9: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Idea: split responsibility of storing the table among the

clients

9

Page 10: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

DHT: Distributed Hash Table

10

Page 11: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Hash Table

insert (key, object)delete (key)

obj = lookup (key)

11

Page 12: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Distributed Hash Table

insert (key, object)delete (key)

obj = lookup (key)

12

Page 13: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

DHT: Objects can be stored

in any node in the network.

13

Page 14: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Example:Given a torrent file, find the list of peers seeding or downloading the file.

14

Page 15: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

How to do this in a fully distributed manner?

15

Page 16: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Idea: Have a set of established rules to decide which key (object) is stored in which node.

16

Page 17: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Rule: Assign IDs to nodes and objects. An object is stored in the node with closest ID.

17

Page 18: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

How to assign ID?

Given a object, how to find the closest node?

18

Page 19: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

PastryA Distributed Hash Table

19

Page 20: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

How to assign ID?

20

Page 21: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

To assign ID, we can use a hash (e.g. into a 128 bit string).

e.g., hash IP address, URL, name etc.

21

Page 22: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

An ID is of the form

d1 d2 d3 ... dm

with digit di = {0, 1, 2, ... n-1}

22

Page 23: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Example IDs (n = 10, m = 4)

051427364090

23

Page 24: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Example IDs (n = 3, m = 4)

121011022011

24

Page 25: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

00002222

25

Page 26: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

00002222

26

Page 27: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

00002222

Any object whose IDs that falls within the blue region is stored in node A.

A

27

Page 28: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Given an object ID, how to find the closest node?

28

Page 29: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Each node only knows a small, constant number of nodes, in a routing table.

29

Page 30: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0121 137.12.1.0

2001 22.31.90.9

1021 45.24.8.233

1121 :

1210 :

1222 :

1200 :

- -

Routing Table for Node 1201

30

Page 31: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

A node knows (m)x(n-1) neighbors -- m groups, each group with n-1 entries.

31

Page 32: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Each node i keeps a table

next(k,d) = address of node j such that

1. i and j share prefix of length k2. (k+1)-th digit of j is d3. node j is the “physically closest” match

32

Page 33: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0121 137.12.1.0

2001 22.31.90.9

1021 45.24.8.233

1121 :

1210 :

1222 :

1200 :

- -

next(0,0)

next(0,2)

next(1,0)

next(1,1)

next(2,1)

next(2,2)

next(3,0)

next(3,2)

33

Page 34: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

In addition, each node knows L other nodes with closest ID. (L/2 above, L/2 below)

34

Page 35: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Leaf Sets

35

Page 36: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Example Routing Table

1201

0121

2101

10211121

36

Page 37: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Recall that we want to find the node with ID closest to the ID of a given object.

node = route(object_id)

37

Page 38: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

route(0212) issued at node 1211.1211 forwards the request to next(0,0).

1211

0100

38

Page 39: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

route(0212) received at 0100. 0100 forwards the request to next(1,2).

1211

01000201

39

Page 40: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

1211

01000201

0210

route(0212) received at 0201. 0201 forward the request to next(2,1).

40

Page 41: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

1211

01000201

0210

0211

0201 found that it is within the range of itsleaf set, and forward it to the closest node.

41

Page 42: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

After 4 lookups, we found the node closest to 0212 is 0211.

42

Page 43: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Results of route() can be cached to avoid frequent lookup

43

Page 44: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

We can now implement the following using route()

insert (key, object)delete (key)

obj = lookup (key)

44

Page 45: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Joining Procedure

45

Page 46: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

1211

01000201

0210

0211

Suppose node 0212 wants to join. It finds a node(e.g., 1211) to run route(0212)

46

Page 47: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

1211

01000201

0210

0211

Routing tables entries are copied from nodes encountered a long the way.

47

Page 48: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

1211

01000201

0210

0211

Leaf sets are initialized using the leaf sets of route(0212)

48

Page 49: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Leaf Sets

49

Page 50: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

ScribeApplication-Level Multicast over Pastry

50

Page 51: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Recall: We use multicast to implement interest management

51

Page 52: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

In application-level multicast, nodes forward messages to each other

52

Page 53: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

who should forward to who?

53

Page 54: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Idea: Use Pastry’s routing table to construct the tree.

54

Page 55: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0210

A group is assigned an ID, e.g., 0212

0200

02210110

21010001

55

Page 56: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0210

Node with ID closest to the group becomesthe rendezvous point

0200

02210110

21010001

56

Page 57: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0210

1200 join the group by routing a join message to group ID.

0200

02210110

21010001

1200

57

Page 58: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0210

The message stops once it reaches a node already on the multicast tree for group 0211

0200

02210110

21010001

1200

join 0211

58

Page 59: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0210

The path traversed by this join message becomespart of the multicast tree.

0200

02210110

21010001

1200

59

Page 60: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

0210

To multicast a message, send to rendezvous point, which is then disseminated along the tree.

0200

02210110

21010001

1200

60

Page 61: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Who store what?

61

Page 62: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

:

mana=9, life=3

mana=5, life=1

Knutsson’s Idea: divide game world into regions and assign a region coordinator to keep the states in each region.

62

Page 63: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

When a player needs to read/write the state of an object, it contacts the coordinator.

player X’s mana=10

63

Page 64: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Game Map DHT ID space

Hash regions and nodes into the same ID space. The node whose ID is closest to the ID of a region becomes the coordinator.

64

Page 65: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Game Map DHT ID space

The coordinator is likely to be not from the same region it is coordinating, reducing the possibility of cheating.

65

Page 66: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

nodes interestedin region

edges in multicasttree

Once the update message reaches the coordinator, the coordinator informs all subscribers to the region through a multicast tree using Scribe.

66

Page 67: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

What if coordinator fails?

67

Page 68: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Route to Region 1111

1201

2101

11101121

68

Page 69: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

If the coordinator fails, Pastry would route the messages to the next closest node.

1201

2101

11121121

x

69

Page 70: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Game Map DHT ID space

Use the next closest node to the region as the backup coordinator.

backupfor

70

Page 71: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

The primary coordinator knows the backup from its leaf set and replicates the states to the backup coordinator.

71

Page 72: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

If the backup receives messages for a region, it knows that the primary has failed and takes over the responsibility.

72

Page 73: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Issues with Knutsson’s scheme

73

Page 74: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

1. No defense against cheating

74

Page 75: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

2. Large latency when (i) look for objects in a region (ii) creating new objects (iii) update state of objects

75

Page 76: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

3. Extra load on coordinators

76

Page 77: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

4. Frequent changes of coordinators for fast moving players.

77

Page 78: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Knutsson’s design is for MMORPG game

(slow pace, tolerate latency)

78

Page 79: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Can similar architecture be used for FPS games?

79

Page 80: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Can we reduce the latency?

80

Page 81: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

1. Caching to prevent frequent lookup

81

Page 82: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

2. Prefetching objects that is near AoI to reduce delay

82

Page 83: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

3. Don’t use Scribe. Use direct connection as in VON

83

Page 84: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Recap

84

Page 85: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Without a trusted central server:1. how to order events?2. how to prevent cheat?3. how to do interest management?4. who should store the states?

85

Page 86: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Many interesting proposals, but no perfect solution.

1. Increase message overhead2. Increase latency3. No conflict resolution4. Cheating5. Robustness is hard

86

Page 87: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Many tricks we learnt from pure P2P architecture is useful if we have a cluster of servers for games

“P2P among servers”

87

Page 88: DHT-based P2P Architectureooiwt/cs4344/4344-lec7-dht.pdf · 2008-09-29 · Each node i keeps a table next(k,d) = address of node j such that 1. i and j share prefix of length k 2

Part III of CS4344Hybrid Architecture

88