SlideShare uma empresa Scribd logo
1 de 109
Baixar para ler offline
Performance and Security
신승민
CTO
㈜윈디소프트
Online Game Server Architecture
Case Study
Performance
Security
Server
Architecture Case Study
Publishing
Platform
論語 『 雍也 』 6-28
己欲立而立人
己欲達而達人
On game,
what is my role
as system engineer?
“TCP vs. UDP 속도는 뭐가 빠를까?”
“ODBC vs. ADO 뭐가 좋을까?”
“분산 시스템 어떻게 구축해야 하는가?”
“HDD vs. SSD 뭘 선택해야 할까?”
“데이터베이스 접속을 위하여 DBC를 따로 두는 것이 좋을까?”
“개발자와 엔지니어 어떤 역할을 수행해야 할까?”
“게임 서버도 가상화를 도입할 수 있을까?”
“암호와 압축은 어떤 순서로 동작하는가?”
“IP 주소 vs. DNS 기반 어떤 것이 효율적일까?”
Questionnaire●
“Scale-out vs. Scale-up 선택은?”
“DB 분산 솔루션 좋은 것 없을까?”
“가상화는 어떤 이점이 있는 거지?”
“Memcached 서버를 게임 서버에도 적용할 수 있을까?”
“클라이언트 패치 효율적인 방안은?”
“그럼 서버 패치 효율적인 방안은?”
“서버에 안티바이러스 제품 설치해야 하는 건가?”
“RAID 10 또는 RAID5 어느 것을 선택해야 하지?”
“SSD에서 RAID 구성은?”
Questionnaire●
Books – 2004年●
Lobby
Gateway
PvP
World
NAT
Database
DBC
Validation
Login
GameDungeon
Terms
Chat Management
Relay
Sample of Server Configuration●
N모사의 C모 게임○
Rookie Level
CPSvr CPSvr CPSvr
RoomSvr
GameDB
AuthSvr
Client Client
UserDB
PatchSvr NATSvr
DBGW
UDP
Game
Data
DBGW
“Room Server: 게임 룰과 방 관리를 담당하는 서버”
“CP Server: 병렬적으로 수가 증가할 수 있는 구조”
Sample of Server Configuration●
“CP Server: 연결 접속점 서버”
Function of Servers○
“Patch Server: 사용자가 게임을 시작했을 때 현재
설치된 클라이언트 버전이 최근 버전과 동일한지 확인”
“NAT Server: UDP Hole Punch를 담당하는 서버”
“Auth Server: 로그인하는 작업 처리”
Sample of Server Configuration●
“CP Server와 GameDB 통신 중간에 데이터베이스
미들웨어를 두어 데이터베이스 때문에 CP Server의
성능이 떨어지는 것을 최대한 방지”
Function of Servers○
Rookie Level
CPSvr CPSvr CPSvr
RoomSvr
GameDB
AuthSvr
Client Client
UserDB
PatchSvr NATSvr
DBGW
UDP
Game
Data
DBGW
Sample of Server Configuration●
How can a client connect among CP Servers?○
“사용자 접속 이전에 어느 CP Server로 접속할지를
관리해 주는 서버를 따로 만드는 것”
“L4 스위치를 이용하는 방법”
“클라이언트에서 CP Server 주소 테이블을 가지고
랜덤하게 접속을 시키는 방법”
“가장 간단하지만 접속량을 고르게 분포하지 못함”
“접속 위치 관리 서버도 병렬로 구성하는 등의 작업이
많이 필요하다”
“대부분 웹 서비스를 서비스할 때 사용자를 분산시켜주기
위해서 사용하는 방법이지만 비싸다”
Rookie Level
Sample of Server Configuration●
Single point of failure○
CPSvr CPSvr CPSvr
RoomSvr
GameDB
AuthSvr
Client Client
UserDB
PatchSvr NATSvr
DBGW
UDP
Game
Data
DBGW
?
?
?
? ? ?
?
Books – 2011~2012年●
High Availability
Virtualization
Scale-out vs. Scale-up
Cloud
Distribute system
Open Source
CompilerScalability
Terms
Synchronous vs.
Non-synchronous system
KVS
Books – 2001~2010年●
Cryptography
Stream
Cipher
Kerckhoff
Protocol
Block
CipherSSL CAPTCHA
Key: Private, Public, Session, Symmetric
Algorithm
Security
Hash
Terms
RSA
Online Game Server Platform
Network Program
DB
Chat
LobbyLogin
Business Logic
Cryptography
The three key functions for game server●
Online Game Server Platform
Game
+ Dungeon
+ NPC
+ PvP
World
+ Channel
+ Lobby
Authentication
+ Login
Chat
+ Messenger
+ Mail
+ Friends
Management
+ Duplicate login
+ OP Tools
Logical Architecture●
Module
Online game server
Architecture
Build a new game server architecture●
Client and Server○
Lobby
Client
① Web Launcher
② Game Client
Build a new game server architecture●
Authentication Servers○
Lobby1
Client
Web
① What is the IP address
or Hosts name of Authentication Server?
② Auth1
Auth1
UserDB
Build a new game server architecture●
Patch Servers○
Lobby1
Client
Web
① What is the IP address
or Hosts name of Authentication Server?
② Auth1
Auth1
UserDB
Patch1
Game Server Farm
Build a new game server architecture●
Lobby & Game Servers○
Lobby1
Client
Web
① What is the IP address
or Hosts name of Lobby Server?
Lobby2 Lobby3
③ Lobby1
Game1 Game2 Game3
④ Game1
Game Server Farm
Build a new game server architecture●
Web Server Farm○
Lobby1
Client
① What is the IP address
or Hosts name of Lobby Server?
Lobby2 Lobby3
③ Lobby1
Game1 Game2 Game3
④ Game1
Web Server Farm
Web1 Web2 Web3
L4
Virtualization
Build a new game server architecture●
Authentication system○
Client
① ID & Password for authentication?
Web Server Farm
Web1 Web2 Web3
L4
Virtualization
② Authentication Cookie
Build a new game server architecture●
Authentication system○
Client
① ID & Password for authentication?
Web Server Farm
Web1 Web2 Web3
L4
Virtualization
② Authentication Cookie
③ Authentication Cookie = ? Auth1
GameUserDB
Authentication Cookie●
• 7aec312v1285345f31073df1e745caf6aeb0d3
cc0c9690b100b6c3011898a5b0d3fa22a98f52
cb6xf4c53e0344a1fe20c75670b01c310daab9
5a31b75f426a48722c7fbc16f8ec05e7988d36
8b94735b017048d77cffeb060cb20a602f8be3
e8f3ed6f8f43fffddc7bb7cdc6606df9df7a33b6
o42
javascript: document.cookie○
Game Server Farm
Build a new game server architecture●
Game Database Server○
Lobby1
Client
WebLobby2 Lobby3
Game1 Game2 Game3
Auth1
UserDB
Patch1
GameDB
K Online
Architecture
C/S MMORPG
●
Online game system○
Client Internet Game Server Game DB
① Client display
& Business logic
process
② Client side internet
bandwidth
③ Business logic process
④ Database performance
Bottleneck points
“화면에 보여주는 데이터를 어떻게 효과적으로 처리할지”
●
“이미지 데이터를 어떻게 작게 만들지”
Client display & Business logic process○
“Video RAM을 어떻게 효율적으로 올려둘지”
“맵 사이즈 & 구조에 따라 어떻게 유저를 효과적으로
배치할지”
Bottleneck points
●
Client Display○
Bottleneck points
② 인스턴스법(인스턴스 던전)
●
① 공간 분할법(공간의 지리적 분할)
Game Server & Database Performance○
③ 패러렐 월드 방식
“게임의 세계를 지리적 구조에 근거하여 분할하여 다른
서버 프로세스, 혹은 서버 머신에 처리를 할당한다”
“부하가 높고 유저가 집중하는 부분만에 전용 서버를 할당
한다. 그 부분은 반드시 던전일 필요는 없지만, 일반적으로
던전에서 사용되므로 인스턴스 던전이라고 불린다.”
“보틀넥 발생이 쉬운 백엔드 DB 자체를 여러 개로
병렬화하여 보틀넥을 나눈다.”
Bottleneck points resolve
●
One game server○
 Game DB
 Game Server
Bottleneck points resolve
●
Space Partition Method○
Game DB
 Game Server  Game Server
 Game Server  Game Server
Bottleneck points resolve
●
Space Copy Method○
Game DB
 Game Server  Game Server  Game Server  Game Server
“②랜덤으로 선택하게 한다”
“①명시적으로 선택하게 한다”
“③비어 있는 곳을 자동적으로 선택한다”
Bottleneck points resolve
●
Instance Dungeon Method○
 Game DB
 Game Server
ID#1
ID#2
ID#3
Bottleneck points resolve
●
Parallel World Method○
Game
DB#1
Game Server
Game
DB#2
Game Server
Game
DB#3
Game Server
Game
DB#4
Game Server
Bottleneck points resolve
●
Use in combination with Parallel World and Space Copy Method○
Game
DB#1
Game Server Game Server
Game Server Game Server
Game
DB#3
Game Server Game Server
Game Server Game Server
Game
DB#2
Game Server Game Server
Game Server Game Server
Game
DB#4
Game Server Game Server
Game Server Game Server
Bottleneck points resolve
●
All in One○
Game
DB#1
Game Server Game Server
Game Server Game Server
1
2
3
Game
DB#3
Game Server Game Server
Game Server Game Server
1
2
3
Game
DB#2
Game Server Game Server
Game Server Game Server
1
2
3
Game
DB#4
Game Server Game Server
Game Server Game Server
1
2
3
Bottleneck points resolve
●
Character Database○
Bottleneck points resolve
Game
DB#1
Server Server
Server Server
1
2
3
Game
DB#2
Server Server
Server Server
1
2
3
Game
DB#3
Server Server
Server Server
1
2
3
Game
DB#4
Server Server
Server Server
1
2
3
Billing DB
Character DB
Web: 10% < 90%
Game: 90% > 10%
“SSD: Solid State Drive”
Write : Read○
“KVS: Key-Value Store”
How to resolve○
“Database Table Compress”
Compare between Web and Game DB●
Scale Out vs.
Scale Up
Scale horizontally (scale out)●
Database scalability: http://en.wikipedia.org/wiki/Scalability○
“One technique supported by most of the major
database management system (DBMS) products is
the partitioning of large tables, based on
ranges of values in a key field. In this manner, the
database can be scaled out across a cluster of
separate database servers”
Scale vertically (scale up)●
○
“With the advent of 64-bit microprocessors,
multi-core CPUs, and large SMP
multiprocessors, DBMS vendors have been at the
forefront of supporting multi-threaded
implementations that substantially scale up
transaction processing capacity”
Database scalability: http://en.wikipedia.org/wiki/Scalability
“Storage Area Network”
Scale up●
“HDD vs. SSD”
Database: Hardware spec○
“RAID Configuration”
Scale up●
“RPM(Revolutions Per Minute)”
Hardware○
“BUS Interface”
“RPM”
Scale up●
High speed disk○
HDD Spindle [rpm] Average rotational latency [ms]
4,200 7.14
5,400 5.56
7,200 4.17
10,000 3.00
15,000 2.00
Game
Database
Scale up●
“RAID Configuration”
http://en.wikipedia.org/wiki/RAID○
Level
Minimum #
of drives
Read
Benefit
Write
Benefit
Image
RAID 0 2 nX nX
RAID 1 2 nX 1X
RAID 4 3 (n-1)X (n-1)X
RAID 5 3 (n-1)X (n-1)X
Nested (hybrid) RAID●
• RAID 0+1: striped sets in a mirrored set (minimum four
drives; even number of drives) provides fault tolerance and
improved performance but increases complexity.
– The key difference from RAID 1+0 is that RAID 0+1 creates a second
striped set to mirror a primary striped set. The array continues to
operate with one or more drives failed in the same mirror set, but if
drives fail on both sides of the mirror the data on the RAID system is
lost.
• RAID 1+0: (a.k.a. RAID 10) mirrored sets in a striped set
(minimum four drives; even number of drives) provides fault
tolerance and improved performance but increases complexity.
– The key difference from RAID 0+1 is that RAID 1+0 creates a striped set
from a series of mirrored drives. The array can sustain multiple drive
losses so long as no mirror loses all its drives.
From Wikipedia○
RAID 10 versus RAID 5●
• A common opinion (and one which serves to illustrate the
dynamics of proper RAID deployment) is that RAID 10 is inherently
better for relational databases than RAID 5, because RAID 5 requires
the recalculation and redistribution of parity data on a per-write
basis.
• While this may have been a hurdle in past RAID 5 implementations,
the task of parity recalculation and redistribution within modern
storage area network (SAN) appliances is performed as a back-end
process transparent to the host, not as an in-line process which
competes with existing I/O. (i.e. the RAID controller handles this as a
housekeeping task to be performed during a particular spindle's idle
timeslices, so as not to disrupt any pending I/O from the host.) The
"write penalty" inherent to RAID 5 has been effectively masked since
the late 1990s by a combination of improved controller design,
larger amounts of cache, and faster drives. The effect of a write
penalty when using RAID 5 is mostly a concern when the workload
cannot be de-staged efficiently from the SAN controller's write cache.
From Wikipedia○
RAID 10 versus RAID 5●
• The choice between RAID 10 and RAID 5 for the purpose of
housing a relational database depends upon a number of factors
(spindle availability, cost, business risk, etc.) but, from a performance
standpoint, it depends mostly on the type of I/O expected for a
particular database application. For databases that are expected to
be exclusively or strongly read-biased, RAID 10 is often chosen
because it offers a slight speed improvement over RAID 5 on
sustained reads and sustained randomized writes. If a database
is expected to be strongly write-biased, RAID 5 becomes the more
attractive option, since RAID 5 does not suffer from the same write
handicap inherent in RAID 10; all spindles in a RAID 5 can be utilized
to write simultaneously, whereas only half the members of a RAID 10
can be used. However, for reasons similar to what has eliminated the
"read penalty" in RAID 5, the 'write penalty' of RAID 10 has been
largely masked by improvements in controller cache efficiency and
drive throughput.
From Wikipedia○
Scale up●
http://en.wikipedia.org/wiki/SATA○
Name Raw bandwidth(Mbit/s) Transfer speed(MB/s)
eSATA 3,000 300
SATA revision 3.0 6,000 600
SATA revision 2.0 3,000 300
SATA revision 1.0 1,500 150
USB 3.0 5,000 400
USB 2.0 480 60
Fibre Channel
over optic fibre
10,520 1,000
Fibre Channel
over copper cable
4,000 400
Thunderbolt 10,000 1,250
“Bus Interface”
Performance Charts HDD vs. SSD●
HDD: Write Access Times: score (in ms)○
[SRC] http://www.tomshardware.com/charts/hard-drives-and-ssds,3.html
Performance Charts HDD vs. SSD●
HDD: Read Access Times: score (in ms)○
Performance Charts HDD vs. SSD●
SSD: Write Access Times: score (in ms)○
x80
Performance Charts HDD vs. SSD●
SSD: Read Access Times: score (in ms)○
Performance Charts HDD vs. SSD●
SSD: Sequential Write: score (in MB/s)○
Performance Charts HDD vs. SSD●
SSD: Sequential Read: score (in MB/s)○
Angelbird
Crest 6 Master
Samsung
MZ-7PC256N
Samsung
MCCOE64G5MPP
IOMeter Web Server Benchmark 6537.10 6876.00 1241.85
IOMeter 4K Random Reads
Benchmark
37298.00 58946.00 6166.33
IOMeter Database Benchmark 9883.00 8910.00 319.63
CrystalDiskMark Random Read,
4KB(QD =32) [MB/s]
212.00 319.00 25.22
CrystalDiskMark Random Write,
4KB(QD =32) [MB/s]
19.00 154.00 0.76
CrystalDiskMark Sequential Read,
[MB/s]
184.00 403.00 100.54
CrystalDiskMark Sequential Write,
[MB/s]
262.00 537.00 78.96
CrystalDiskMark Random Read,
4KB(QD =1) [MB/s]
33.00 26.00 24.27
CrystalDiskMark Random Write,
4KB(QD =1) [MB/s]
512.00 121.00 0.74
Performance Charts HDD vs. SSD●
SSD: Compare with Angelbird and Samsung○
x5
x6
x30
x8
x25
x1.8
x3.3
x1.3
x691
x5
x9
x27
x12
x202
x4
x6
x1
x163
Performance Charts HDD vs. SSD●
ORCA Disk Run Percent○
HDD
SSD
RAID configuration for SSD●
Papers○
Flash SSD상의 RAID 구성의 고찰●
Papers○
 Intel’s iOmeter를 이용하여 테스트
Flash SSD상의 RAID 구성의 고찰●
Papers○
Flash SSD상의 RAID 구성의 고찰●
Papers○
Flash SSD상의 RAID 구성의 고찰●
Papers○
Flash SSD상의 RAID 구성의 고찰●
Papers○
Scale out●
“a-1, b-2, … , z-26”
Distribute Game Database System by Partitioning○
RDBMS
.
.
.
Game DB(1)
Game DB(26)
Login Server Lobby ServerUser
.
.
.
.
.
.
.
.
.
Scale out●
“Hash(user id) = n”
Distribute Game Database System by Partitioning○
Hash(user_id) = n
RDBMS
.
.
.
Game DB(1)
Game DB(26)
Login Server Lobby ServerUser
.
.
.
.
.
.
.
.
.
Game Server Farm
Build a new game server architecture●
View of high availability○
Lobby1
Client
Web
Lobby2 Lobby3
Game1 Game2 Game3
Patch1Auth
Database Server Farm
GameDB UserDB
M M
S S
Replication
Scale Out●
“KVS(Key-Value Store)”
Database: Middleware○
User RDBMS
Game DB
Login Server Lobby Server
.
.
.
.
.
.
.
.
.
.
.
.
KVS Server
Cache●
Write-through vs. Writer-back○
“Write-back(Write-behind)”
Write is done synchronously both to the cache and
to the backing store.
“Write-through”
Writing is done only to the cache. A modified cache
block is written back to the store, just before it is
replaced.
Write-through vs. Write-back●
• Write-back cache is more complex to implement,
since it needs to track which of its locations have
been written over, and mark them as dirty for later
writing to the backing store. The data in these
locations are written back to the backing store only
when they are evicted from the cache, an effect
referred to as a lazy write. For this reason, a read
miss in a write-back cache (which requires a block
to be replaced by another) will often require two
memory accesses to service: one to write the
replaced data from the cache back to the store,
and then one to retrieve the needed datum.
http://en.wikipedia.org/wiki/Cache_(computing)#Writing_policies○
Write-through vs. Write-back●
http://ihchoi.tistory.com/11○
Compress of Database Table●
* 샘플 데이터 1000만 건
Page 압축 時 48.5% 감소,
Row 압축 時 77.8% 감소
http://ihchoi.tistory.com/11○
Compress of Database Table●
CPU 118% 조금 증가,
Page 압축 時 35.6% 감소,
Row 압축 時 32.8% 감소
http://ihchoi.tistory.com/11○
Compress of Database Table●
CPU 235% 증가,
Page 압축 時 249.8% 증가,
Row 압축 時 150.8% 증가
* 100만 건 입력 시간 비교
Moor’s law
Multi-core processor
Memory
SSD
Virtualization
Scale-out vs. Scale-up●
② 5개 패러렐 월드로 분할하여 하나의 월드는 동시 접속
6,000을 허용, 합계 3만의 동시 접속을 허용한다
① 과금 인증 시스템은 공통으로 한다
시스템 기본 구조도의 작성○
③ 하나의 월드를 8개의 지역으로 분할한다(8코어)
④ 하나의 월드당 360개의 인스턴스를 준비한다(16코어)
K Online Game System●
K Online Game System●
Billing System
K Online
World2 W3 W4 W5
WEB
1
5
1
World1
2
6
2
3
7
4
8
3
6
0
Field
Instance
Game DB
CU 6,000名
K Online Game System●
결제SV
Backend
DBMS
CU 6,000名
Backup
dbsv
DBMS
Backup
logsv
worldsv
authsv
Frontend Internet
loginsv
gmsv1
msgsv
gmsv2
gmsv3
proxy
proxy
proxy
proxy
proxy
cli
cli
cli
공간 분할법을 이용했을 경우의 프로세스 관계도○
Case Study●
Game Client
Web Board
W Publishing Platform●
WAG: Authentication
WPG: Payment
WPIN: Personal Identification Number
WOTP: One Time Password
Game Security○
WPCBG: PCBang
WIRG: Item Register
Game Support○
W Publishing Platform●
WAG
CashDB
WPG
WPCBG
PC Bang
DB
Game
Server
XML-RPC
JSON
AVRO
Channel
Game
Client
AuthDB
JDBC
JDBC
x
XML-RPC is a remote procedure call (RPC) protocol which uses XML
to encode its calls and HTTP as a transport mechanism
JSON-RPC is a remote procedure call protocol encoded in JSON. It is
a very simple protocol (and very similar to XML-RPC), defining only a
handful of data types and commands.
http://en.wikipedia.org/wiki/XML-RPC○
http://en.wikipedia.org/wiki/JSON-RPC○
Remote procedure call (RPC) protocol●
Avro is a remote procedure call and serialization framework
developed within Apache's Hadoop project. It uses JSON for defining
data types and protocols, and serializes data in a compact binary
format.
http://en.wikipedia.org/wiki/Thrift_(protocol)○
W Personal Identification Number●
W One Time Password●
How to hack Diablo 3,
I’ve OTP?
2channel Authentication system●
Case by Dream Security○
2channel Authentication system●
Compare○
2channel + 2factor 1channel + 2 factor 2channel + 2factor
ARS
SHA-3●
http://csrc.nist.gov/groups/ST/hash/sha-3/Round3/index.html○
SHA-3●
• The NIST hash function competition is an open competition
held by the US National Institute of Standards and
Technology for a new SHA-3 function to replace the older
SHA-1 and SHA-2, which was formally announced in the
Federal Register on November 2, 2007.
• NIST has selected five SHA-3 candidate algorithms to advance
to the third (and final) round:
 BLAKE
 Grøstl (Knudsen et al.)
 JH
 Keccak (Keccak team, Daemen et al.)
 Skein (Schneier et al.)
http://csrc.nist.gov/groups/ST/hash/sha-3/Round3/index.html○
SHA-3●
• NIST noted some factors that figured into its selection as it
announced the finalists:
 Performance: "A couple of algorithms were wounded or eliminated by
very large [hardware gate] area requirement – it seemed that the area
they required precluded their use in too much of the potential
application space."
 Security: "We preferred to be conservative about security, and in some
cases did not select algorithms with exceptional performance, largely
because something about them made us 'nervous,' even though we
knew of no clear attack against the full algorithm."
 Analysis: "NIST eliminated several algorithms because of the extent of
their second-round tweaks or because of a relative lack of reported
cryptanalysis – either tended to create the suspicion that the design
might not yet be fully tested and mature."
 Diversity: The finalists included hashes based on different
constructions, including the HAIFA and sponge hash constructions, and
hashes with different sources of nonlinearity, including S-boxes and the
interaction between addition and XOR.
SHA-3●
• NIST noted some factors that figured into its selection as it
announced the finalists:
 Performance: "A couple of algorithms were wounded or eliminated by
very large [hardware gate] area requirement – it seemed that the area
they required precluded their use in too much of the potential
application space."
 Security: "We preferred to be conservative about security, and in some
cases did not select algorithms with exceptional performance, largely
because something about them made us 'nervous,' even though we
knew of no clear attack against the full algorithm."
 Analysis: "NIST eliminated several algorithms because of the extent of
their second-round tweaks or because of a relative lack of reported
cryptanalysis – either tended to create the suspicion that the design
might not yet be fully tested and mature."
 Diversity: The finalists included hashes based on different
constructions, including the HAIFA and sponge hash constructions, and
hashes with different sources of nonlinearity, including S-boxes and the
interaction between addition and XOR.
SHA-3 WINNER●
• NIST announced Keccak as the winner of the SHA-3
Cryptographic Hash Algorithm Competition and the new
SHA-3 hash algorithm in a press release issued on October
2, 2012. Keccak was designed by a team of cryptographers
from Belgium and Italy, they are:
– Guido Bertoni (Italy) of STMicroelectronics,
– Joan Daemen (Belgium) of STMicroelectronics,
– Michaël Peeters (Belgium) of NXP Semiconductors, and
– Gilles Van Assche (Belgium) of STMicroelectronics.
Books●
8F Seung Kwang Bldg., 143-8 Samsung-Dong, Gangnam-Gu, Seoul, 135-877, Korea
신 승 민 / Seungmin Shin
TEL: +82-2-2050-4307
E-MAIL: joo @ windysoft.net
감사합니다!
CONTACT ME

Mais conteúdo relacionado

Mais procurados

Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)Seungmo Koo
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들Hyunjik Bae
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3Heungsub Lee
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCPSeungmo Koo
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조Hyunjik Bae
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건강 민우
 
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들강 민우
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임흥배 최
 

Mais procurados (20)

Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들스마트폰 온라인 게임에서 고려해야 할 것들
스마트폰 온라인 게임에서 고려해야 할 것들
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP
 
게임 분산 서버 구조
게임 분산 서버 구조게임 분산 서버 구조
게임 분산 서버 구조
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건마비노기듀얼 이야기-넥슨 김동건
마비노기듀얼 이야기-넥슨 김동건
 
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
[IGC2015] 엔씨소프트 김주용-내가 사랑한 MMO들
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임ASP.NET과 C#으로 개발하는 대규모 소셜 게임
ASP.NET과 C#으로 개발하는 대규모 소셜 게임
 

Destaque

Intro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignIntro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignChristopher Mohritz
 
MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by AndrewAgate Studio
 
A Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual GameA Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual Gameaction.vn
 
Server side game_development
Server side game_developmentServer side game_development
Server side game_developmentYekmer Simsek
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)David Salz
 
A practical architecture design for mmo casual game
A practical architecture design for mmo casual gameA practical architecture design for mmo casual game
A practical architecture design for mmo casual gameSon Aris
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Evel xf
 
"How to optimize the architecture of your platform" by Julien Simon
"How to optimize the architecture of your platform" by Julien Simon"How to optimize the architecture of your platform" by Julien Simon
"How to optimize the architecture of your platform" by Julien SimonTheFamily
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf euXie ChengChao
 
Supercell Company report
Supercell Company reportSupercell Company report
Supercell Company reportBrandon Kittle
 
The Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a GameThe Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a Gamegamifyforthewin
 
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...l xf
 
SRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the InternetSRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the InternetAdam Comerford
 
Game Server by Teguh
Game Server by TeguhGame Server by Teguh
Game Server by TeguhAgate Studio
 
Make your-game-multiplayer
Make your-game-multiplayerMake your-game-multiplayer
Make your-game-multiplayerAndrew Lee
 
Online mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabaseOnline mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabaseNguyễn Bá Thành
 
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDBAmazon Web Services
 

Destaque (20)

Intro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) DesignIntro to Massively Multiplayer Online Game (MMOG) Design
Intro to Massively Multiplayer Online Game (MMOG) Design
 
MMO Design Architecture by Andrew
MMO Design Architecture by AndrewMMO Design Architecture by Andrew
MMO Design Architecture by Andrew
 
A Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual GameA Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual Game
 
Server side game_development
Server side game_developmentServer side game_development
Server side game_development
 
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)
 
A practical architecture design for mmo casual game
A practical architecture design for mmo casual gameA practical architecture design for mmo casual game
A practical architecture design for mmo casual game
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
"How to optimize the architecture of your platform" by Julien Simon
"How to optimize the architecture of your platform" by Julien Simon"How to optimize the architecture of your platform" by Julien Simon
"How to optimize the architecture of your platform" by Julien Simon
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf eu
 
Clash royale hack
Clash royale hackClash royale hack
Clash royale hack
 
Supercell Company report
Supercell Company reportSupercell Company report
Supercell Company report
 
brgames_games
brgames_gamesbrgames_games
brgames_games
 
The Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a GameThe Multiplayer Classroom:
 Designing Coursework as a Game
The Multiplayer Classroom:
 Designing Coursework as a Game
 
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
A Virtual World Distributed Server Developed In Erlang As A Tool For Analysin...
 
SRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the InternetSRECon EU 2016: Riot Games Vs the Internet
SRECon EU 2016: Riot Games Vs the Internet
 
Game Server by Teguh
Game Server by TeguhGame Server by Teguh
Game Server by Teguh
 
Make your-game-multiplayer
Make your-game-multiplayerMake your-game-multiplayer
Make your-game-multiplayer
 
Online mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabaseOnline mobile game server use Firebase realtime aatabase
Online mobile game server use Firebase realtime aatabase
 
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
(GAM401) Build a Serverless Mobile Game w/ Cognito, Lambda & DynamoDB
 
Cedec2013 photon network engine
Cedec2013 photon network engineCedec2013 photon network engine
Cedec2013 photon network engine
 

Semelhante a [KGC 2012] Online Game Server Architecture Case Study Performance and Security

Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDBFoundationDB
 
Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Dave Nielsen
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud DevelopmentNick Pruehs
 
44spotkaniePLSSUGWRO_CoNowegowKrainieChmur
44spotkaniePLSSUGWRO_CoNowegowKrainieChmur44spotkaniePLSSUGWRO_CoNowegowKrainieChmur
44spotkaniePLSSUGWRO_CoNowegowKrainieChmurTobias Koprowski
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svenssonrajivmordani
 
AquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks PresentationAquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks PresentationAquaQ Analytics
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructurexKinAnx
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructuresolarisyourep
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksDatabricks
 
Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010Jongwon Kim
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureMarco Parenzan
 
Scaling With Sun Systems For MySQL Jan09
Scaling With Sun Systems For MySQL Jan09Scaling With Sun Systems For MySQL Jan09
Scaling With Sun Systems For MySQL Jan09Steve Staso
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Intel® Software
 
TechNet Live spor 1 sesjon 6 - more vdi
TechNet Live spor 1   sesjon 6 - more vdiTechNet Live spor 1   sesjon 6 - more vdi
TechNet Live spor 1 sesjon 6 - more vdiAnders Borchsenius
 

Semelhante a [KGC 2012] Online Game Server Architecture Case Study Performance and Security (20)

Server 2016 sneak peek
Server 2016 sneak peekServer 2016 sneak peek
Server 2016 sneak peek
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
Martin Simecek, Microsoft
Martin Simecek, Microsoft	Martin Simecek, Microsoft
Martin Simecek, Microsoft
 
Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!Add Redis to Postgres to Make Your Microservices Go Boom!
Add Redis to Postgres to Make Your Microservices Go Boom!
 
Game Programming - Cloud Development
Game Programming - Cloud DevelopmentGame Programming - Cloud Development
Game Programming - Cloud Development
 
44spotkaniePLSSUGWRO_CoNowegowKrainieChmur
44spotkaniePLSSUGWRO_CoNowegowKrainieChmur44spotkaniePLSSUGWRO_CoNowegowKrainieChmur
44spotkaniePLSSUGWRO_CoNowegowKrainieChmur
 
Practical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter SvenssonPractical Thin Server Architecture With Dojo Peter Svensson
Practical Thin Server Architecture With Dojo Peter Svensson
 
AquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks PresentationAquaQ Analytics Kx Event - Data Direct Networks Presentation
AquaQ Analytics Kx Event - Data Direct Networks Presentation
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
線上遊戲與雲端運算
線上遊戲與雲端運算線上遊戲與雲端運算
線上遊戲與雲端運算
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
 
Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010Next mmorpg architecture-siggraph_asia2010
Next mmorpg architecture-siggraph_asia2010
 
Write retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with AzureWrite retrogames in the web and add something more with Azure
Write retrogames in the web and add something more with Azure
 
Scaling With Sun Systems For MySQL Jan09
Scaling With Sun Systems For MySQL Jan09Scaling With Sun Systems For MySQL Jan09
Scaling With Sun Systems For MySQL Jan09
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)
 
AWS User Group October
AWS User Group OctoberAWS User Group October
AWS User Group October
 
Accelerated SDN in Azure
Accelerated SDN in AzureAccelerated SDN in Azure
Accelerated SDN in Azure
 
TechNet Live spor 1 sesjon 6 - more vdi
TechNet Live spor 1   sesjon 6 - more vdiTechNet Live spor 1   sesjon 6 - more vdi
TechNet Live spor 1 sesjon 6 - more vdi
 

Mais de Seungmin Shin

[201702]Qubit Security Pitch deck
[201702]Qubit Security Pitch deck[201702]Qubit Security Pitch deck
[201702]Qubit Security Pitch deckSeungmin Shin
 
Kgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fKgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fSeungmin Shin
 
[Gstar 2013] Unity Security
[Gstar 2013] Unity Security[Gstar 2013] Unity Security
[Gstar 2013] Unity SecuritySeungmin Shin
 
TrinityCore server install guide
TrinityCore server install guideTrinityCore server install guide
TrinityCore server install guideSeungmin Shin
 
[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜
[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜
[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜Seungmin Shin
 
[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in ChinaSeungmin Shin
 

Mais de Seungmin Shin (6)

[201702]Qubit Security Pitch deck
[201702]Qubit Security Pitch deck[201702]Qubit Security Pitch deck
[201702]Qubit Security Pitch deck
 
Kgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fKgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-f
 
[Gstar 2013] Unity Security
[Gstar 2013] Unity Security[Gstar 2013] Unity Security
[Gstar 2013] Unity Security
 
TrinityCore server install guide
TrinityCore server install guideTrinityCore server install guide
TrinityCore server install guide
 
[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜
[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜
[KGC 2010] 게임과 보안, 암호 알고리즘과 프로토콜
 
[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China
 

Último

Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...ritikasharma
 
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...rajveermohali2022
 
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...ritikasharma
 
Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...ritikasharma
 
Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...
Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...
Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...Riya Pathan
 
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...rahim quresi
 
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...SUHANI PANDEY
 
(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With...(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With... Shivani Pandey
 
Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...
Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...
Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...ritikasharma
 
Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser...Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser... Shivani Pandey
 
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...ritikasharma
 
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment BookingKanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment BookingNitya salvi
 
Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...
Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...
Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...mriyagarg453
 
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...Riya Pathan
 
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...ritikasharma
 
𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...rahim quresi
 
Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...
Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...
Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...aamir
 

Último (20)

Russian ℂall gIRLS In Goa 9316020077 ℂall gIRLS Service In Goa
Russian ℂall gIRLS In Goa 9316020077  ℂall gIRLS Service  In GoaRussian ℂall gIRLS In Goa 9316020077  ℂall gIRLS Service  In Goa
Russian ℂall gIRLS In Goa 9316020077 ℂall gIRLS Service In Goa
 
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
Top Rated Kolkata Call Girls Dum Dum ⟟ 6297143586 ⟟ Call Me For Genuine Sex S...
 
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
Zirakpur Call Girls👧 Book Now📱8146719683 📞👉Mohali Call Girl Service No Advanc...
 
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Sonagachi ✔ 6297143586 ✔C...
 
Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...
Hotel And Home Service Available Kolkata Call Girls Lake Town ✔ 6297143586 ✔C...
 
Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...
Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...
Independent Diamond Harbour Escorts ✔ 9332606886✔ Full Night With Room Online...
 
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
 
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
VIP Model Call Girls Koregaon Park ( Pune ) Call ON 8005736733 Starting From ...
 
(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With...(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With...
(TOP CLASS) Call Girls In Nungambakkam Phone 7427069034 Call Girls Model With...
 
Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...
Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...
Hotel And Home Service Available Kolkata Call Girls South End Park ✔ 62971435...
 
Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser...Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser...
Model Call Girls In Pazhavanthangal WhatsApp Booking 7427069034 call girl ser...
 
Desi Bhabhi Call Girls In Goa 💃 730 02 72 001💃desi Bhabhi Escort Goa
Desi Bhabhi Call Girls  In Goa  💃 730 02 72 001💃desi Bhabhi Escort GoaDesi Bhabhi Call Girls  In Goa  💃 730 02 72 001💃desi Bhabhi Escort Goa
Desi Bhabhi Call Girls In Goa 💃 730 02 72 001💃desi Bhabhi Escort Goa
 
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
Hotel And Home Service Available Kolkata Call Girls Diamond Harbour ✔ 6297143...
 
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment BookingKanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
Kanpur call girls 📞 8617697112 At Low Cost Cash Payment Booking
 
Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...
Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...
Navsari Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girl...
 
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
 
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
Hotel And Home Service Available Kolkata Call Girls Howrah ✔ 6297143586 ✔Call...
 
𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Sonagachi Call Girls In All Kolkata 24/7 Provide Call W...
 
Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...
Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...
Nayabad Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Sex At ...
 
Chat 9316020077💋 Call Girls Agency In Goa By Goa Call Girls Agency 💋
Chat 9316020077💋 Call Girls  Agency In Goa  By Goa  Call Girls  Agency 💋Chat 9316020077💋 Call Girls  Agency In Goa  By Goa  Call Girls  Agency 💋
Chat 9316020077💋 Call Girls Agency In Goa By Goa Call Girls Agency 💋
 

[KGC 2012] Online Game Server Architecture Case Study Performance and Security

  • 3. 論語 『 雍也 』 6-28 己欲立而立人 己欲達而達人
  • 4. On game, what is my role as system engineer?
  • 5. “TCP vs. UDP 속도는 뭐가 빠를까?” “ODBC vs. ADO 뭐가 좋을까?” “분산 시스템 어떻게 구축해야 하는가?” “HDD vs. SSD 뭘 선택해야 할까?” “데이터베이스 접속을 위하여 DBC를 따로 두는 것이 좋을까?” “개발자와 엔지니어 어떤 역할을 수행해야 할까?” “게임 서버도 가상화를 도입할 수 있을까?” “암호와 압축은 어떤 순서로 동작하는가?” “IP 주소 vs. DNS 기반 어떤 것이 효율적일까?” Questionnaire●
  • 6. “Scale-out vs. Scale-up 선택은?” “DB 분산 솔루션 좋은 것 없을까?” “가상화는 어떤 이점이 있는 거지?” “Memcached 서버를 게임 서버에도 적용할 수 있을까?” “클라이언트 패치 효율적인 방안은?” “그럼 서버 패치 효율적인 방안은?” “서버에 안티바이러스 제품 설치해야 하는 건가?” “RAID 10 또는 RAID5 어느 것을 선택해야 하지?” “SSD에서 RAID 구성은?” Questionnaire●
  • 7.
  • 10. Sample of Server Configuration● N모사의 C모 게임○ Rookie Level CPSvr CPSvr CPSvr RoomSvr GameDB AuthSvr Client Client UserDB PatchSvr NATSvr DBGW UDP Game Data DBGW
  • 11. “Room Server: 게임 룰과 방 관리를 담당하는 서버” “CP Server: 병렬적으로 수가 증가할 수 있는 구조” Sample of Server Configuration● “CP Server: 연결 접속점 서버” Function of Servers○ “Patch Server: 사용자가 게임을 시작했을 때 현재 설치된 클라이언트 버전이 최근 버전과 동일한지 확인” “NAT Server: UDP Hole Punch를 담당하는 서버” “Auth Server: 로그인하는 작업 처리”
  • 12. Sample of Server Configuration● “CP Server와 GameDB 통신 중간에 데이터베이스 미들웨어를 두어 데이터베이스 때문에 CP Server의 성능이 떨어지는 것을 최대한 방지” Function of Servers○ Rookie Level CPSvr CPSvr CPSvr RoomSvr GameDB AuthSvr Client Client UserDB PatchSvr NATSvr DBGW UDP Game Data DBGW
  • 13. Sample of Server Configuration● How can a client connect among CP Servers?○ “사용자 접속 이전에 어느 CP Server로 접속할지를 관리해 주는 서버를 따로 만드는 것” “L4 스위치를 이용하는 방법” “클라이언트에서 CP Server 주소 테이블을 가지고 랜덤하게 접속을 시키는 방법” “가장 간단하지만 접속량을 고르게 분포하지 못함” “접속 위치 관리 서버도 병렬로 구성하는 등의 작업이 많이 필요하다” “대부분 웹 서비스를 서비스할 때 사용자를 분산시켜주기 위해서 사용하는 방법이지만 비싸다”
  • 14. Rookie Level Sample of Server Configuration● Single point of failure○ CPSvr CPSvr CPSvr RoomSvr GameDB AuthSvr Client Client UserDB PatchSvr NATSvr DBGW UDP Game Data DBGW ? ? ? ? ? ? ?
  • 16. High Availability Virtualization Scale-out vs. Scale-up Cloud Distribute system Open Source CompilerScalability Terms Synchronous vs. Non-synchronous system KVS
  • 18. Cryptography Stream Cipher Kerckhoff Protocol Block CipherSSL CAPTCHA Key: Private, Public, Session, Symmetric Algorithm Security Hash Terms RSA
  • 19.
  • 20. Online Game Server Platform Network Program DB Chat LobbyLogin Business Logic Cryptography The three key functions for game server●
  • 21. Online Game Server Platform Game + Dungeon + NPC + PvP World + Channel + Lobby Authentication + Login Chat + Messenger + Mail + Friends Management + Duplicate login + OP Tools Logical Architecture● Module
  • 23. Build a new game server architecture● Client and Server○ Lobby Client ① Web Launcher ② Game Client
  • 24. Build a new game server architecture● Authentication Servers○ Lobby1 Client Web ① What is the IP address or Hosts name of Authentication Server? ② Auth1 Auth1 UserDB
  • 25. Build a new game server architecture● Patch Servers○ Lobby1 Client Web ① What is the IP address or Hosts name of Authentication Server? ② Auth1 Auth1 UserDB Patch1
  • 26. Game Server Farm Build a new game server architecture● Lobby & Game Servers○ Lobby1 Client Web ① What is the IP address or Hosts name of Lobby Server? Lobby2 Lobby3 ③ Lobby1 Game1 Game2 Game3 ④ Game1
  • 27. Game Server Farm Build a new game server architecture● Web Server Farm○ Lobby1 Client ① What is the IP address or Hosts name of Lobby Server? Lobby2 Lobby3 ③ Lobby1 Game1 Game2 Game3 ④ Game1 Web Server Farm Web1 Web2 Web3 L4 Virtualization
  • 28. Build a new game server architecture● Authentication system○ Client ① ID & Password for authentication? Web Server Farm Web1 Web2 Web3 L4 Virtualization ② Authentication Cookie
  • 29. Build a new game server architecture● Authentication system○ Client ① ID & Password for authentication? Web Server Farm Web1 Web2 Web3 L4 Virtualization ② Authentication Cookie ③ Authentication Cookie = ? Auth1 GameUserDB
  • 31. Game Server Farm Build a new game server architecture● Game Database Server○ Lobby1 Client WebLobby2 Lobby3 Game1 Game2 Game3 Auth1 UserDB Patch1 GameDB
  • 33. ● Online game system○ Client Internet Game Server Game DB ① Client display & Business logic process ② Client side internet bandwidth ③ Business logic process ④ Database performance Bottleneck points
  • 34. “화면에 보여주는 데이터를 어떻게 효과적으로 처리할지” ● “이미지 데이터를 어떻게 작게 만들지” Client display & Business logic process○ “Video RAM을 어떻게 효율적으로 올려둘지” “맵 사이즈 & 구조에 따라 어떻게 유저를 효과적으로 배치할지” Bottleneck points
  • 36. ② 인스턴스법(인스턴스 던전) ● ① 공간 분할법(공간의 지리적 분할) Game Server & Database Performance○ ③ 패러렐 월드 방식 “게임의 세계를 지리적 구조에 근거하여 분할하여 다른 서버 프로세스, 혹은 서버 머신에 처리를 할당한다” “부하가 높고 유저가 집중하는 부분만에 전용 서버를 할당 한다. 그 부분은 반드시 던전일 필요는 없지만, 일반적으로 던전에서 사용되므로 인스턴스 던전이라고 불린다.” “보틀넥 발생이 쉬운 백엔드 DB 자체를 여러 개로 병렬화하여 보틀넥을 나눈다.” Bottleneck points resolve
  • 37. ● One game server○  Game DB  Game Server Bottleneck points resolve
  • 38. ● Space Partition Method○ Game DB  Game Server  Game Server  Game Server  Game Server Bottleneck points resolve
  • 39. ● Space Copy Method○ Game DB  Game Server  Game Server  Game Server  Game Server “②랜덤으로 선택하게 한다” “①명시적으로 선택하게 한다” “③비어 있는 곳을 자동적으로 선택한다” Bottleneck points resolve
  • 40. ● Instance Dungeon Method○  Game DB  Game Server ID#1 ID#2 ID#3 Bottleneck points resolve
  • 41. ● Parallel World Method○ Game DB#1 Game Server Game DB#2 Game Server Game DB#3 Game Server Game DB#4 Game Server Bottleneck points resolve
  • 42. ● Use in combination with Parallel World and Space Copy Method○ Game DB#1 Game Server Game Server Game Server Game Server Game DB#3 Game Server Game Server Game Server Game Server Game DB#2 Game Server Game Server Game Server Game Server Game DB#4 Game Server Game Server Game Server Game Server Bottleneck points resolve
  • 43. ● All in One○ Game DB#1 Game Server Game Server Game Server Game Server 1 2 3 Game DB#3 Game Server Game Server Game Server Game Server 1 2 3 Game DB#2 Game Server Game Server Game Server Game Server 1 2 3 Game DB#4 Game Server Game Server Game Server Game Server 1 2 3 Bottleneck points resolve
  • 44. ● Character Database○ Bottleneck points resolve Game DB#1 Server Server Server Server 1 2 3 Game DB#2 Server Server Server Server 1 2 3 Game DB#3 Server Server Server Server 1 2 3 Game DB#4 Server Server Server Server 1 2 3 Billing DB Character DB
  • 45. Web: 10% < 90% Game: 90% > 10% “SSD: Solid State Drive” Write : Read○ “KVS: Key-Value Store” How to resolve○ “Database Table Compress” Compare between Web and Game DB●
  • 47. Scale horizontally (scale out)● Database scalability: http://en.wikipedia.org/wiki/Scalability○ “One technique supported by most of the major database management system (DBMS) products is the partitioning of large tables, based on ranges of values in a key field. In this manner, the database can be scaled out across a cluster of separate database servers”
  • 48. Scale vertically (scale up)● ○ “With the advent of 64-bit microprocessors, multi-core CPUs, and large SMP multiprocessors, DBMS vendors have been at the forefront of supporting multi-threaded implementations that substantially scale up transaction processing capacity” Database scalability: http://en.wikipedia.org/wiki/Scalability
  • 49. “Storage Area Network” Scale up● “HDD vs. SSD” Database: Hardware spec○
  • 50. “RAID Configuration” Scale up● “RPM(Revolutions Per Minute)” Hardware○ “BUS Interface”
  • 51. “RPM” Scale up● High speed disk○ HDD Spindle [rpm] Average rotational latency [ms] 4,200 7.14 5,400 5.56 7,200 4.17 10,000 3.00 15,000 2.00 Game Database
  • 53. Level Minimum # of drives Read Benefit Write Benefit Image RAID 0 2 nX nX RAID 1 2 nX 1X RAID 4 3 (n-1)X (n-1)X RAID 5 3 (n-1)X (n-1)X
  • 54. Nested (hybrid) RAID● • RAID 0+1: striped sets in a mirrored set (minimum four drives; even number of drives) provides fault tolerance and improved performance but increases complexity. – The key difference from RAID 1+0 is that RAID 0+1 creates a second striped set to mirror a primary striped set. The array continues to operate with one or more drives failed in the same mirror set, but if drives fail on both sides of the mirror the data on the RAID system is lost. • RAID 1+0: (a.k.a. RAID 10) mirrored sets in a striped set (minimum four drives; even number of drives) provides fault tolerance and improved performance but increases complexity. – The key difference from RAID 0+1 is that RAID 1+0 creates a striped set from a series of mirrored drives. The array can sustain multiple drive losses so long as no mirror loses all its drives. From Wikipedia○
  • 55. RAID 10 versus RAID 5● • A common opinion (and one which serves to illustrate the dynamics of proper RAID deployment) is that RAID 10 is inherently better for relational databases than RAID 5, because RAID 5 requires the recalculation and redistribution of parity data on a per-write basis. • While this may have been a hurdle in past RAID 5 implementations, the task of parity recalculation and redistribution within modern storage area network (SAN) appliances is performed as a back-end process transparent to the host, not as an in-line process which competes with existing I/O. (i.e. the RAID controller handles this as a housekeeping task to be performed during a particular spindle's idle timeslices, so as not to disrupt any pending I/O from the host.) The "write penalty" inherent to RAID 5 has been effectively masked since the late 1990s by a combination of improved controller design, larger amounts of cache, and faster drives. The effect of a write penalty when using RAID 5 is mostly a concern when the workload cannot be de-staged efficiently from the SAN controller's write cache. From Wikipedia○
  • 56. RAID 10 versus RAID 5● • The choice between RAID 10 and RAID 5 for the purpose of housing a relational database depends upon a number of factors (spindle availability, cost, business risk, etc.) but, from a performance standpoint, it depends mostly on the type of I/O expected for a particular database application. For databases that are expected to be exclusively or strongly read-biased, RAID 10 is often chosen because it offers a slight speed improvement over RAID 5 on sustained reads and sustained randomized writes. If a database is expected to be strongly write-biased, RAID 5 becomes the more attractive option, since RAID 5 does not suffer from the same write handicap inherent in RAID 10; all spindles in a RAID 5 can be utilized to write simultaneously, whereas only half the members of a RAID 10 can be used. However, for reasons similar to what has eliminated the "read penalty" in RAID 5, the 'write penalty' of RAID 10 has been largely masked by improvements in controller cache efficiency and drive throughput. From Wikipedia○
  • 57. Scale up● http://en.wikipedia.org/wiki/SATA○ Name Raw bandwidth(Mbit/s) Transfer speed(MB/s) eSATA 3,000 300 SATA revision 3.0 6,000 600 SATA revision 2.0 3,000 300 SATA revision 1.0 1,500 150 USB 3.0 5,000 400 USB 2.0 480 60 Fibre Channel over optic fibre 10,520 1,000 Fibre Channel over copper cable 4,000 400 Thunderbolt 10,000 1,250 “Bus Interface”
  • 58. Performance Charts HDD vs. SSD● HDD: Write Access Times: score (in ms)○ [SRC] http://www.tomshardware.com/charts/hard-drives-and-ssds,3.html
  • 59. Performance Charts HDD vs. SSD● HDD: Read Access Times: score (in ms)○
  • 60. Performance Charts HDD vs. SSD● SSD: Write Access Times: score (in ms)○ x80
  • 61. Performance Charts HDD vs. SSD● SSD: Read Access Times: score (in ms)○
  • 62. Performance Charts HDD vs. SSD● SSD: Sequential Write: score (in MB/s)○
  • 63. Performance Charts HDD vs. SSD● SSD: Sequential Read: score (in MB/s)○
  • 64. Angelbird Crest 6 Master Samsung MZ-7PC256N Samsung MCCOE64G5MPP IOMeter Web Server Benchmark 6537.10 6876.00 1241.85 IOMeter 4K Random Reads Benchmark 37298.00 58946.00 6166.33 IOMeter Database Benchmark 9883.00 8910.00 319.63 CrystalDiskMark Random Read, 4KB(QD =32) [MB/s] 212.00 319.00 25.22 CrystalDiskMark Random Write, 4KB(QD =32) [MB/s] 19.00 154.00 0.76 CrystalDiskMark Sequential Read, [MB/s] 184.00 403.00 100.54 CrystalDiskMark Sequential Write, [MB/s] 262.00 537.00 78.96 CrystalDiskMark Random Read, 4KB(QD =1) [MB/s] 33.00 26.00 24.27 CrystalDiskMark Random Write, 4KB(QD =1) [MB/s] 512.00 121.00 0.74 Performance Charts HDD vs. SSD● SSD: Compare with Angelbird and Samsung○ x5 x6 x30 x8 x25 x1.8 x3.3 x1.3 x691 x5 x9 x27 x12 x202 x4 x6 x1 x163
  • 65. Performance Charts HDD vs. SSD● ORCA Disk Run Percent○ HDD SSD
  • 66. RAID configuration for SSD● Papers○
  • 67. Flash SSD상의 RAID 구성의 고찰● Papers○  Intel’s iOmeter를 이용하여 테스트
  • 68. Flash SSD상의 RAID 구성의 고찰● Papers○
  • 69. Flash SSD상의 RAID 구성의 고찰● Papers○
  • 70. Flash SSD상의 RAID 구성의 고찰● Papers○
  • 71. Flash SSD상의 RAID 구성의 고찰● Papers○
  • 72. Scale out● “a-1, b-2, … , z-26” Distribute Game Database System by Partitioning○ RDBMS . . . Game DB(1) Game DB(26) Login Server Lobby ServerUser . . . . . . . . .
  • 73. Scale out● “Hash(user id) = n” Distribute Game Database System by Partitioning○ Hash(user_id) = n RDBMS . . . Game DB(1) Game DB(26) Login Server Lobby ServerUser . . . . . . . . .
  • 74. Game Server Farm Build a new game server architecture● View of high availability○ Lobby1 Client Web Lobby2 Lobby3 Game1 Game2 Game3 Patch1Auth Database Server Farm GameDB UserDB M M S S Replication
  • 75. Scale Out● “KVS(Key-Value Store)” Database: Middleware○ User RDBMS Game DB Login Server Lobby Server . . . . . . . . . . . . KVS Server
  • 76. Cache● Write-through vs. Writer-back○ “Write-back(Write-behind)” Write is done synchronously both to the cache and to the backing store. “Write-through” Writing is done only to the cache. A modified cache block is written back to the store, just before it is replaced.
  • 77. Write-through vs. Write-back● • Write-back cache is more complex to implement, since it needs to track which of its locations have been written over, and mark them as dirty for later writing to the backing store. The data in these locations are written back to the backing store only when they are evicted from the cache, an effect referred to as a lazy write. For this reason, a read miss in a write-back cache (which requires a block to be replaced by another) will often require two memory accesses to service: one to write the replaced data from the cache back to the store, and then one to retrieve the needed datum. http://en.wikipedia.org/wiki/Cache_(computing)#Writing_policies○
  • 79. http://ihchoi.tistory.com/11○ Compress of Database Table● * 샘플 데이터 1000만 건 Page 압축 時 48.5% 감소, Row 압축 時 77.8% 감소
  • 80. http://ihchoi.tistory.com/11○ Compress of Database Table● CPU 118% 조금 증가, Page 압축 時 35.6% 감소, Row 압축 時 32.8% 감소
  • 81. http://ihchoi.tistory.com/11○ Compress of Database Table● CPU 235% 증가, Page 압축 時 249.8% 증가, Row 압축 時 150.8% 증가 * 100만 건 입력 시간 비교
  • 83.
  • 84. ② 5개 패러렐 월드로 분할하여 하나의 월드는 동시 접속 6,000을 허용, 합계 3만의 동시 접속을 허용한다 ① 과금 인증 시스템은 공통으로 한다 시스템 기본 구조도의 작성○ ③ 하나의 월드를 8개의 지역으로 분할한다(8코어) ④ 하나의 월드당 360개의 인스턴스를 준비한다(16코어) K Online Game System●
  • 85. K Online Game System● Billing System K Online World2 W3 W4 W5 WEB 1 5 1 World1 2 6 2 3 7 4 8 3 6 0 Field Instance Game DB CU 6,000名
  • 86. K Online Game System● 결제SV Backend DBMS CU 6,000名 Backup dbsv DBMS Backup logsv worldsv authsv Frontend Internet loginsv gmsv1 msgsv gmsv2 gmsv3 proxy proxy proxy proxy proxy cli cli cli 공간 분할법을 이용했을 경우의 프로세스 관계도○
  • 87.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95. W Publishing Platform● WAG: Authentication WPG: Payment WPIN: Personal Identification Number WOTP: One Time Password Game Security○ WPCBG: PCBang WIRG: Item Register Game Support○
  • 96. W Publishing Platform● WAG CashDB WPG WPCBG PC Bang DB Game Server XML-RPC JSON AVRO Channel Game Client AuthDB JDBC JDBC x
  • 97. XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism JSON-RPC is a remote procedure call protocol encoded in JSON. It is a very simple protocol (and very similar to XML-RPC), defining only a handful of data types and commands. http://en.wikipedia.org/wiki/XML-RPC○ http://en.wikipedia.org/wiki/JSON-RPC○ Remote procedure call (RPC) protocol● Avro is a remote procedure call and serialization framework developed within Apache's Hadoop project. It uses JSON for defining data types and protocols, and serializes data in a compact binary format. http://en.wikipedia.org/wiki/Thrift_(protocol)○
  • 99. W One Time Password●
  • 100. How to hack Diablo 3, I’ve OTP?
  • 101. 2channel Authentication system● Case by Dream Security○
  • 102. 2channel Authentication system● Compare○ 2channel + 2factor 1channel + 2 factor 2channel + 2factor ARS
  • 104. SHA-3● • The NIST hash function competition is an open competition held by the US National Institute of Standards and Technology for a new SHA-3 function to replace the older SHA-1 and SHA-2, which was formally announced in the Federal Register on November 2, 2007. • NIST has selected five SHA-3 candidate algorithms to advance to the third (and final) round:  BLAKE  Grøstl (Knudsen et al.)  JH  Keccak (Keccak team, Daemen et al.)  Skein (Schneier et al.) http://csrc.nist.gov/groups/ST/hash/sha-3/Round3/index.html○
  • 105. SHA-3● • NIST noted some factors that figured into its selection as it announced the finalists:  Performance: "A couple of algorithms were wounded or eliminated by very large [hardware gate] area requirement – it seemed that the area they required precluded their use in too much of the potential application space."  Security: "We preferred to be conservative about security, and in some cases did not select algorithms with exceptional performance, largely because something about them made us 'nervous,' even though we knew of no clear attack against the full algorithm."  Analysis: "NIST eliminated several algorithms because of the extent of their second-round tweaks or because of a relative lack of reported cryptanalysis – either tended to create the suspicion that the design might not yet be fully tested and mature."  Diversity: The finalists included hashes based on different constructions, including the HAIFA and sponge hash constructions, and hashes with different sources of nonlinearity, including S-boxes and the interaction between addition and XOR.
  • 106. SHA-3● • NIST noted some factors that figured into its selection as it announced the finalists:  Performance: "A couple of algorithms were wounded or eliminated by very large [hardware gate] area requirement – it seemed that the area they required precluded their use in too much of the potential application space."  Security: "We preferred to be conservative about security, and in some cases did not select algorithms with exceptional performance, largely because something about them made us 'nervous,' even though we knew of no clear attack against the full algorithm."  Analysis: "NIST eliminated several algorithms because of the extent of their second-round tweaks or because of a relative lack of reported cryptanalysis – either tended to create the suspicion that the design might not yet be fully tested and mature."  Diversity: The finalists included hashes based on different constructions, including the HAIFA and sponge hash constructions, and hashes with different sources of nonlinearity, including S-boxes and the interaction between addition and XOR.
  • 107. SHA-3 WINNER● • NIST announced Keccak as the winner of the SHA-3 Cryptographic Hash Algorithm Competition and the new SHA-3 hash algorithm in a press release issued on October 2, 2012. Keccak was designed by a team of cryptographers from Belgium and Italy, they are: – Guido Bertoni (Italy) of STMicroelectronics, – Joan Daemen (Belgium) of STMicroelectronics, – Michaël Peeters (Belgium) of NXP Semiconductors, and – Gilles Van Assche (Belgium) of STMicroelectronics.
  • 109. 8F Seung Kwang Bldg., 143-8 Samsung-Dong, Gangnam-Gu, Seoul, 135-877, Korea 신 승 민 / Seungmin Shin TEL: +82-2-2050-4307 E-MAIL: joo @ windysoft.net 감사합니다! CONTACT ME