hybrid architecture for networked gamesooiwt/cs4344/archives/0708s...by bart de vleeschauwer et al...
TRANSCRIPT
![Page 1: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/1.jpg)
Hybrid Architecturefor Networked Games
1
![Page 2: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/2.jpg)
singlecentralized
server
completelydecentralized
2
![Page 3: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/3.jpg)
Mirrored ServersArchitecture
3
![Page 4: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/4.jpg)
Multiple servers, each replicating the complete game states, serve clients from different geographical regions.Each client connects to one server.
4
![Page 5: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/5.jpg)
Servers may be connected with high speed, provisioned networked, reducing synchronization latency among the servers.
5
![Page 6: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/6.jpg)
Updates from a client are sent to its server, which then forwards it to other servers. The servers then forward the updates to all relevant clients.
6
![Page 7: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/7.jpg)
P2P-style state synchronization among servers is easier, since 1. servers can be trusted2. clocks can be synchronized3. IP multicast may be used4. higher availability
7
![Page 8: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/8.jpg)
Pros and Cons of Mirrored Servers?
8
![Page 9: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/9.jpg)
Advantage: No more single point of failures -- client can use another replicated servers if their nearest server fails.
9
![Page 10: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/10.jpg)
Advantage: Each server can handle more clients (if networking bandwidth is the bottleneck)
10
![Page 11: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/11.jpg)
Advantage: Lower latency from client to its server
11
![Page 12: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/12.jpg)
Cons: Latency to update other players increases due to one additional forwarding.
12
![Page 13: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/13.jpg)
Cons: Scalability is still limited since every server maintains states of the whole game world (if computation is the bottleneck).
13
![Page 14: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/14.jpg)
Zoned ServersArchitecture
14
![Page 15: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/15.jpg)
Divide the game world into independent regions. One server is in-charged of one region.
15
![Page 16: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/16.jpg)
A client connects to the server serving its current region, and is handed-off to another server when it moves to another region.
16
![Page 17: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/17.jpg)
Servers seldom communicate with each other.
17
![Page 18: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/18.jpg)
Updates from a client are sent to its server, which then forwards it to all relevant clients in the same region.
18
![Page 19: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/19.jpg)
19
![Page 20: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/20.jpg)
Pros and Cons of Zoned Servers?
20
![Page 21: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/21.jpg)
Advantage: Each server can handle more clients (if computation is a bottleneck)
21
![Page 22: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/22.jpg)
Cons: Single point of failure for each region.
(But we can have replicated servers for each region)
22
![Page 23: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/23.jpg)
Cons: Severely constraints the design of games.
23
![Page 24: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/24.jpg)
Supporting Seamless Game Worlds
24
![Page 25: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/25.jpg)
Divide the game world into regions. One server is in-charged of one region.
25
![Page 26: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/26.jpg)
Player may move around the world seamlessly
26
![Page 27: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/27.jpg)
A client may see events and objects from neighboring regions.
27
![Page 28: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/28.jpg)
Events occurring in one region may affectobjects in another region.
28
![Page 29: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/29.jpg)
Advantage: Partitioning is transparent to the players. No artificial constraints in game design.
29
![Page 30: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/30.jpg)
Advantage: We can now resize the regions to load-balance among the servers, improving server utilization.
30
![Page 31: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/31.jpg)
A client connects to the server serving its current region, and is handed-off to another server when it moves to another region.
31
![Page 32: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/32.jpg)
Server communicates with each other to transfer states, update states etc.
32
![Page 33: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/33.jpg)
Updates from a client are sent to its server, which then forwards it to all relevant clients in the same region or neighboring regions.
33
![Page 34: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/34.jpg)
or
34
![Page 35: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/35.jpg)
A client connects to the servers serving its current region and regions it subscribes to. Updates from neighboring server are sent directly.
35
![Page 36: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/36.jpg)
Q: How to partition the game world?
36
![Page 37: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/37.jpg)
Ideally: each server should handle the same
number of players
37
![Page 38: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/38.jpg)
Ideally: minimize communications between servers
38
![Page 39: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/39.jpg)
Idea: divide the game world into small cells and assign group of
cells to servers.
39
![Page 40: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/40.jpg)
40
![Page 41: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/41.jpg)
2 0 3
3 1 4
011
I will simplify the representation to a grid of cells with number indicating the number of players (or loadincurred on server) in this cell.
41
![Page 42: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/42.jpg)
Centralized approach to partitioning
42
![Page 43: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/43.jpg)
Balanced Deployment Algorithm
by Bart De Vleeschauwer et al
43
![Page 44: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/44.jpg)
Idea: sort the cells and assign them one-by-one, highest load first, to the servers to minimize
the maximum server load
44
![Page 45: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/45.jpg)
2 0 3
3 1 4
011
Suppose we have only two servers (blue and red).
45
![Page 46: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/46.jpg)
2 0 3
3 1 4
011
Blue’s load = 4 Red’s load = 0
46
![Page 47: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/47.jpg)
2 0 3
3 1 4
011
Blue’s load = 4 Red’s load = 3
47
![Page 48: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/48.jpg)
2 0 3
3 1 4
011
Blue’s load = 4 Red’s load = 6
48
![Page 49: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/49.jpg)
2 0 3
3 1 4
011
Blue’s load = 6 Red’s load = 6
49
![Page 50: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/50.jpg)
2 0 3
3 1 4
011
Blue’s load = 8 Red’s load = 7
50
![Page 51: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/51.jpg)
2 0 3
3 1 4
011
Problem: neighboring cells are not adjacent. There are 8 “borders” in this solution. Communication
overhead is not considered.
51
![Page 52: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/52.jpg)
Let’s define a cost function for assigning a cell c to a server S:
cost(c,S) = computation load increase in S + communication load increase in S
52
![Page 53: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/53.jpg)
For simplicity, CPU load = players,
newtork load = borders
53
![Page 54: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/54.jpg)
Clustered Deployment Algorithm
by Bart De Vleeschauwer et al
54
![Page 55: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/55.jpg)
Start with each cell as one cluster
55
![Page 56: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/56.jpg)
Repeatedly merge two adjacent clusters with least overhead until
number of clusters equals to number of servers.
56
![Page 57: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/57.jpg)
2 0 3
3 1 4
011
57
![Page 58: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/58.jpg)
2 0 3
3 1 4
011
Least cost = 1 + 3 = 4
58
![Page 59: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/59.jpg)
2 0 3
3 1 4
011
Least cost = 2 + 3 = 5
59
![Page 60: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/60.jpg)
2 0 3
3 1 4
011
Least cost = 1 + 5 = 6
60
![Page 61: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/61.jpg)
2 0 3
3 1 4
011
Least cost = 3 + 5 = 8
61
![Page 62: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/62.jpg)
2 0 3
3 1 4
011
62
![Page 63: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/63.jpg)
Problem: Just a heuristic -- not optimal (the optimization problem is NP-complete)
63
![Page 64: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/64.jpg)
Problem: Last few steps involve heavily loaded cells and can create uneven deployment.
64
![Page 65: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/65.jpg)
We can tweak this heuristic in many ways to improve it, but it’s
still a heuristic.
65
![Page 66: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/66.jpg)
Simulated Annealing by Bart De Vleeschauwer et al
66
![Page 67: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/67.jpg)
A general method for finding good solution in an optimization
problem (meta-heuristic)
67
![Page 68: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/68.jpg)
At every step, move towards a nearby, better configuration probabilistically (allowing a move towards worse solution, prevent stuck at local minimum)
68
![Page 69: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/69.jpg)
cost
config
69
![Page 70: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/70.jpg)
Start with a solution from a heuristic.
70
![Page 71: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/71.jpg)
Move to a nearby config:swap cells with an adjacent
server, or move cell from one server to another
71
![Page 72: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/72.jpg)
Is it a better solution?If so, keep it as current solution
with some probability.
72
![Page 73: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/73.jpg)
2 0 3
3 1 4
011
73
![Page 74: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/74.jpg)
Experimental results show that Simulated Annealing works best
among the methods.
74
![Page 75: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/75.jpg)
Disadvantages of centralized approach
75
![Page 76: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/76.jpg)
Expensive to compute a good solution
76
![Page 77: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/77.jpg)
How frequent should the world be repartitioned?
77
![Page 78: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/78.jpg)
Localized World Partitioning
78
![Page 79: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/79.jpg)
Idea: Only repartition locally if a server is overloaded. Look for a
lightly loaded server to shed some load to.
79
![Page 80: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/80.jpg)
overload
safe
light
80
![Page 81: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/81.jpg)
overload
safe
light
Overloaded server sheds load until it’s load is below a safe level. The new load of a previously lightly loaded should remain below safe level.
81
![Page 82: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/82.jpg)
l + o - s < sl < 2s - o
82
![Page 83: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/83.jpg)
Who to shed to?
83
![Page 84: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/84.jpg)
Minimize overhead: try to shed to as few neighboring server as
possible
84
![Page 85: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/85.jpg)
Migrate cells to neighboring servers that are not overloaded
85
![Page 86: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/86.jpg)
If still not enough, look at the list of lightly loaded servers maintained. Pick the least load and shed to it.
86
![Page 87: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/87.jpg)
Shed remaining load to remote servers
87
![Page 88: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/88.jpg)
2 0 3
1 1 4
035
0 1 1
Overload = 10, Safe = 7, Light = 4
88
![Page 89: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/89.jpg)
2 0 3
1 1 4
035
0 1 1
Shed load to neighbor first
89
![Page 90: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/90.jpg)
2 0 3
1 1 4
035
0 1 1
Shed load to non-neighboring server
90
![Page 91: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/91.jpg)
2 0 3
1 1 4
035
0 1 1
But this could lead to high communication overhead
91
![Page 92: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/92.jpg)
2 0 3
1 1 0
031
0 1 1
When communication overhead is too high, isolated cells can be migrated to a nearby server, “merging” with neighboring regions to form contiguous regions, as long as the load remains below the safe threshold.
92
![Page 93: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/93.jpg)
Evaluation
93
![Page 94: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/94.jpg)
Compare 5 schemes using a simulated games
94
![Page 95: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/95.jpg)
1. spread - “balanced deployment”2. always shed to lightest server3. static 4. locality with merging5. locality without merging
95
![Page 96: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/96.jpg)
locality with merge
locality without merge
96
![Page 97: Hybrid Architecture for Networked Gamesooiwt/cs4344/archives/0708s...by Bart De Vleeschauwer et al 43 Idea: sort the cells and assign them one-by-one, highest load first, to the servers](https://reader033.vdocument.in/reader033/viewer/2022061001/60b0901c018e265a9a798817/html5/thumbnails/97.jpg)
You Are Here
• CS4344
• Client/Server Architecture
• Peer-to-Peer Architecture
• Hybrid
• Mirrored servers
• Zoned servers
97