SlideShare a Scribd company logo
1 of 30
Download to read offline
The 7 Lessons for Highly Effective Real-time Server
G re a t Te c h n o l o g y F o r G re a t G a m e s
D K M o o n
dkmoon@ifunfactory.com
1
✓ Worked on six MMORPG game servers at Nexon from 1999 thru 2005.
✓ Left it for a better opportunity in the States.
✓ Returned to it for no better place. (unfortunately…)
✓ Worked on mobile game server framework from 2011 thru 2013.
✓ Left again to start a business in the game server software industry.
Personal Relationship with Nexon
Great Technology For Great Games
2
✓ Case studies on server-related issues and lessons from them.
✓ Reference game #1: PC MMORPG
• Peak CCU: 140K
• Peak CCU/Server: 15K
✓ Reference game #2: Mobile real-time MO game
• Being developed by Nexon/IFF and published by Tencent
• Passed 3 beta tests (CCU confidential)
About This Talk
Great Technology For Great Games
3
Game ServiceArchitecture (Data Plane)
Great Technology For Great Games
4
Game Client
Game Server
DB Server
Cache
Load balancer
/ Switch
Game ServiceArchitecture (Data Plane)
Great Technology For Great Games
5
Game Client
Game Server
DB Server
Cache
Presentation
Layer
Access
Layer
Logic/Application
Layer
Cache
Layer
Persistence
Layer
Load balancer
/ Switch
✓ Case: saturated NIC & oversubscribed network
• In the past, network interface card (NIC) could be saturated.
• This does not happen any more, but core switch can be choked.
✓ Observation
• Real-time MMO: 200-300 Bps
• REST-based mobile: 700-800 Bps w/ spikes
✓ Suggestion
• Meter your traffic
Lesson #1
Know Your Traffic Pattern
Great Technology For Great Games
6
… …
…
Core switch
✓ Case: saturated NIC & oversubscribed network
• In the past, network interface card (NIC) could be saturated.
• This does not happen any more, but core switch can be choked.
✓ Observation
• Real-time MMO: 200-300 Bps.
• REST-based mobile: 700-800 Bps w/ spikes.
✓ Suggestion
• Meter your traffic
Lesson #1
Know Your Traffic Pattern
Great Technology For Great Games
7
… …
…
Core switch
✓ Case: saturated NIC & oversubscribed network
• In the past, network interface card (NIC) could be saturated.
• This does not happen any more, but core switch can be choked.
✓ Observation
• Real-time MMO: 200-300 Bps.
• REST-based mobile: 700-800 Bps w/ spikes.
✓ Suggestion
• Meter your traffic.
• Prefer binary message format.
• Also, correlate traffic to CPU usage.
Lesson #1
Know Your Traffic Pattern
Great Technology For Great Games
8
… …
…
Core switch
✓ Case: Memory copy functions always at the top of profiling results.
✓ Reference CPU usage: 50-70%
• Too low figures: inefficient program concurrency.
• Too high figures: unnecessary memory copying, looping.
✓ Suggestion
• Pass around packets by pointer.
• Minimizing packet sizes also helps here, too.
Lesson #2
Avoid Copying Packets
Great Technology For Great Games
9
✓ Case: Memory copy functions always at the top of profiling results.
✓ Target CPU usage: 50-70%
• Too low figures: inefficient program concurrency.
• Too high figures: unnecessary memory copying, looping.
✓ Suggestion
• Pass around packets by pointer.
• Minimizing packet sizes also helps here, too.
Lesson #2
Avoid Copying Packets
Great Technology For Great Games
10
✓ Case: Memory copy functions always at the top of profiling results.
✓ Target CPU usage: 50-70%
• Too low figures: inefficient program concurrency.
• Too high figures: unnecessary memory copying, looping.
✓ Suggestion
• Pass around packets by pointer.
• Minimizing packet sizes also helps here, too.
Lesson #2
Avoid Copying Packets
Great Technology For Great Games
11
✓ Case: Adopted lightweight byte-by-byte XOR encryption.

Never being hacked into encryption algorithm.

Instead, lots of packet replay attacks and client hack attempts.
✓ Observation
• Hackers do not bother reverse-engineering encryption algorithm.
• Instead, they hack into the client and let it do the encryption job.
✓ Suggestion
• Pick a lightweight encryption algorithm as long as it can prevent
packet forgery. (Complex algorithm uses up too much CPU.)
• More focus on preventing game client manipulation.
• Also, prepare for packet replay attacks.
Lesson #3
Focus on Client Obfuscation
Great Technology For Great Games
12
✓ Case: Adopted lightweight byte-by-byte XOR encryption.

Never being hacked into encryption algorithm.

Instead, lots of packet replay attacks and client hack attempts.
✓ Observation
• Hackers do not bother reverse-engineering encryption algorithm.
• Instead, they hack into the client and let it do the encryption job.
✓ Suggestion
• Pick a lightweight encryption algorithm as long as it can prevent
packet forgery. (Complex algorithm uses up too much CPU.)
• More focus on preventing game client manipulation.
• Also, prepare for packet replay attacks.
Lesson #3
Focus on Client Obfuscation
Great Technology For Great Games
13
✓ Case: Adopted lightweight byte-by-byte XOR encryption.

Never being hacked into encryption algorithm.

Instead, lots of packet replay attacks and client hack attempts.
✓ Observation
• Hackers do not bother reverse-engineering encryption algorithm.
• Instead, they hack into the client and let it do the encryption job.
✓ Suggestion
• Pick a lightweight encryption algorithm as long as it can prevent
packet forgery. (Complex algorithm uses up too much CPU.)
• More focus on preventing game client manipulation.
• Also, prepare for packet replay attacks.
Lesson #3
Focus on Client Obfuscation
Great Technology For Great Games
14
✓ Case: Broadcasting hinders scalability in both CPU and network BW.

Refactored multiple times for visibility-based multicasting.
✓ Observation
• Along the memory copy, loop for broadcasting is the key reason for
high CPU usage.
• Such broadcasting triggers packet copies, too. (because different
players use different encryption seeds.)
✓ Suggestion
• Avoid broadcasting.
• Manage players list in a way of easy multicasting.
Lesson #4
Use Multicasting with Limited Scope
Great Technology For Great Games
15
✓ Case: Broadcasting hinders scalability in both CPU and network BW.

Refactored multiple times for visibility-based multicasting.
✓ Observation
• Along the memory copy, loop for broadcasting is the key reason for
high CPU usage.
• Such broadcasting triggers packet copies, too. (because different
players use different encryption seeds.)
✓ Suggestion
• Avoid broadcasting.
• Manage players list in a way of easy multicasting.
Lesson #4
Use Multicasting with Limited Scope
Great Technology For Great Games
16
✓ Case: Broadcasting hinders scalability in both CPU and network BW.

Refactored multiple times for visibility-based multicasting.
✓ Observation
• Along the memory copy, loop for broadcasting is the key reason for
high CPU usage.
• Such broadcasting triggers packet copies, too. (because different
players use different encryption seeds.)
✓ Suggestion
• Avoid broadcasting.
• Manage players list in a way of easy multicasting.
Lesson #4
Use Multicasting with Limited Scope
Great Technology For Great Games
17
✓ Case: Heavily relied on DB transaction for inter-server synchronization

DB gets overloaded.

Servers gets serialized for DB I/O waiting.
✓ Observation
• Many programmers overuse DB xaction for synchronization.
• DB is heavyweight to guarantee properties like ACID, which means
they pay extremely high costs for synchronization.
✓ Suggestion
• Use inter-server RPC or memory cache for synchronization.
Lesson #5
Don’t Use DB as Synchronization Point
Great Technology For Great Games
18
✓ Case: Heavily relied on DB transaction for inter-server synchronization

DB gets overloaded.

Servers gets serialized for DB I/O waiting.
✓ Observation
• Many programmers overuse DB xaction for synchronization.
• DB is heavyweight to guarantee properties like ACID, which means
they pay extremely high costs for synchronization.
✓ Suggestion
• Use inter-server RPC or memory cache for synchronization.
Lesson #5
Don’t Use DB as Synchronization Point
Great Technology For Great Games
19
✓ Case: Heavily relied on DB transaction for inter-server synchronization

DB gets overloaded.

Servers gets serialized for DB I/O waiting.
✓ Observation
• Many programmers overuse DB xaction for synchronization.
• DB is heavyweight to guarantee properties like ACID, which means
they pay extremely high costs for synchronization.
✓ Suggestion
• Use inter-server RPC or memory cache for synchronization.
Lesson #5
Don’t Use DB as Synchronization Point
Great Technology For Great Games
20
✓ Case: Intensive use of REDIS for data sharing among the servers.

REDIS quickly becomes a bottleneck.
✓ Observation
• Caching like REDIS is much lighter than DB for sure.
• But it also runs jobs to maintain persistency/consistency/
availability.
• Direct server-to-server RPC may be a better solution in some cases.
✓ Suggestion
• Mind the persistency/consistency/availability setting of cache prog.
• Consider server-to-server RPC unless caching is unavoidable.
Lesson #6
Caching is Not For Free
Great Technology For Great Games
21
✓ Case: Intensive use of REDIS for data sharing among the servers.

REDIS quickly becomes a bottleneck.
✓ Observation
• Caching like REDIS is much lighter than DB for sure.
• But it also runs jobs to maintain persistency/consistency/
availability.
• Direct server-to-server RPC may be a better solution in some cases.
✓ Suggestion
• Mind the persistency/consistency/availability setting of cache prog.
• Consider server-to-server RPC unless caching is unavoidable.
Lesson #6
Caching is Not For Free
Great Technology For Great Games
22
✓ Case: Intensive use of REDIS for data sharing among the servers.

REDIS quickly becomes a bottleneck.
✓ Observation
• Caching like REDIS is much lighter than DB for sure.
• But it also runs jobs to maintain persistency/consistency/
availability.
• Direct server-to-server RPC may be a better solution in some cases.
✓ Suggestion
• Mind the persistency/consistency/availability setting of cache prog.
• Consider server-to-server RPC unless caching is unavoidable.
Lesson #6
Caching is Not For Free
Great Technology For Great Games
23
✓ Case: Opens a service without any monitoring / operation tools.
✓ Observation
• The day of service open is the most hectic
• Also, the service on the day is the most buggy.
• Tools to understand what’s happening inside server is a must have.
• operation tools are mandatory unless you don’t want to sleep.
✓ Suggestion
• Spend enough time developing tools.
Lesson #7
Start with Tools for Server Visibility
Great Technology For Great Games
24
✓ Case: Opens a service without any monitoring / operation tools.
✓ Observation
• The day of service open is the most hectic.
• Also, the service on the day is the most buggy.
• Tools to understand what’s happening inside server is a must have.
• Operation tools are mandatory unless you don’t want to sleep.
✓ Suggestion
• Spend enough time developing tools.
Lesson #7
Start with Tools for Server Visibility
Great Technology For Great Games
25
✓ Case: Opens a service without any monitoring / operation tools.
✓ Observation
• The day of service open is the most hectic.
• Also, the service on the day is the most buggy.
• Tools to understand what’s happening inside server is a must have.
• Operation tools are mandatory unless you don’t want to sleep.
✓ Suggestion
• Spend enough time developing tools.
Lesson #7
Start with Tools for Server Visibility
Great Technology For Great Games
26
✓ Understand your traffic pattern and try to minimize it.
✓ Avoid packet copies inside server.
✓ Focus on client obfuscation instead of complex network encryption.
✓ Prefer multicasting to broadcasting. Especially, consider visibility.
✓ Avoid using DB as a synchronization point. It will collapse.
✓ Caching is not for free. Do not rely on it too much.
✓ Develop a proper tools for server visibility before opening a service.
Recap
Great Technology For Great Games
27
Survey Result for Fun
Great Technology For Great Games
28
✓ What OS for game server?
Count RateChoice
NA
No answer
Survey Result for Fun
Great Technology For Great Games
29
✓ What language for game server?
Choice Count Rate
DK Moon
dkmoon@ifunfactory.com
www.ifunfactory.com
THANKS!
G r e a t Te c h n o l o g y F o r G r e a t G a m e s , i F u n Fa c t o r y
30

More Related Content

What's hot

CMS Tools for Developers- Owen Harris
CMS Tools for Developers- Owen HarrisCMS Tools for Developers- Owen Harris
CMS Tools for Developers- Owen HarrisWordCamp New Zealand
 
[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진NAVER D2
 
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with DockerThe Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with DockerElton Stoneman
 
Automated Deployment with Capistrano
Automated Deployment with CapistranoAutomated Deployment with Capistrano
Automated Deployment with CapistranoSumit Chhetri
 
Liz Quilty – Security, Scaling & High End Hosting for WordPress sites
Liz Quilty – Security, Scaling & High End Hosting for WordPress sitesLiz Quilty – Security, Scaling & High End Hosting for WordPress sites
Liz Quilty – Security, Scaling & High End Hosting for WordPress sitesWordCamp New Zealand
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
 
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...Ontico
 
Windows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should CareWindows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should CareElton Stoneman
 
Delivering a production Cloud Foundry Environment with Bosh | anynines
Delivering a production Cloud Foundry Environment with Bosh | anyninesDelivering a production Cloud Foundry Environment with Bosh | anynines
Delivering a production Cloud Foundry Environment with Bosh | anyninesanynines GmbH
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationSuresh Kumar
 
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
Introduction to Packer and Suitcase: A Packer-based OS Image Build SystemIntroduction to Packer and Suitcase: A Packer-based OS Image Build System
Introduction to Packer and Suitcase: A Packer-based OS Image Build SystemHubSpot Product Team
 
Cloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anyninesCloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anyninesanynines GmbH
 
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Stephane Manciot
 
Taking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWSTaking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWSJessie Yi Wei
 
Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...
Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...
Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...Takaya Saeki
 
WindowsAzureIAAS
WindowsAzureIAASWindowsAzureIAAS
WindowsAzureIAASSaravanan G
 
NSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves GoelevenNSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves GoelevenParticular Software
 
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and AnsibleService Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and AnsibleIsaac Christoffersen
 

What's hot (20)

CMS Tools for Developers- Owen Harris
CMS Tools for Developers- Owen HarrisCMS Tools for Developers- Owen Harris
CMS Tools for Developers- Owen Harris
 
[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진
 
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with DockerThe Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
The Velvet Revolution: Modernizing Traditional ASP.NET Apps with Docker
 
Automated Deployment with Capistrano
Automated Deployment with CapistranoAutomated Deployment with Capistrano
Automated Deployment with Capistrano
 
Liz Quilty – Security, Scaling & High End Hosting for WordPress sites
Liz Quilty – Security, Scaling & High End Hosting for WordPress sitesLiz Quilty – Security, Scaling & High End Hosting for WordPress sites
Liz Quilty – Security, Scaling & High End Hosting for WordPress sites
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
Высокопроизводительный инференс глубоких сетей на GPU с помощью TensorRT / Ма...
 
Windows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should CareWindows Containers and Docker: Why You Should Care
Windows Containers and Docker: Why You Should Care
 
Delivering a production Cloud Foundry Environment with Bosh | anynines
Delivering a production Cloud Foundry Environment with Bosh | anyninesDelivering a production Cloud Foundry Environment with Bosh | anynines
Delivering a production Cloud Foundry Environment with Bosh | anynines
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
Introduction to Packer and Suitcase: A Packer-based OS Image Build SystemIntroduction to Packer and Suitcase: A Packer-based OS Image Build System
Introduction to Packer and Suitcase: A Packer-based OS Image Build System
 
Cloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anyninesCloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anynines
 
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
Packaging et déploiement d'une application avec Docker et Ansible @DevoxxFR 2015
 
Taking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWSTaking Docker to Dance: Continuous Delivery on AWS
Taking Docker to Dance: Continuous Delivery on AWS
 
Docker Birtday #5
Docker Birtday #5Docker Birtday #5
Docker Birtday #5
 
Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...
Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...
Noah - Robust and Flexible Operating System Compatibility Architecture - Cont...
 
WindowsAzureIAAS
WindowsAzureIAASWindowsAzureIAAS
WindowsAzureIAAS
 
NSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves GoelevenNSBCon UK nservicebus on Azure by Yves Goeleven
NSBCon UK nservicebus on Azure by Yves Goeleven
 
Vespa - Tokyo Meetup #yjmu
Vespa - Tokyo Meetup #yjmuVespa - Tokyo Meetup #yjmu
Vespa - Tokyo Meetup #yjmu
 
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and AnsibleService Delivery Assembly Line with Vagrant, Packer, and Ansible
Service Delivery Assembly Line with Vagrant, Packer, and Ansible
 

Similar to [아이펀팩토리] 2017 NDCP

Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Masahiko Sawada
 
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
 
Application Caching: The Hidden Microservice
Application Caching: The Hidden MicroserviceApplication Caching: The Hidden Microservice
Application Caching: The Hidden MicroserviceScott Mansfield
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2aspyker
 
Backup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix BarbeiraBackup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix BarbeiraCeph Community
 
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...David Geurts
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community
 
Implementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch governmentImplementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch governmentDoKC
 
Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance
Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance
Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance Ceph Community
 
EVCache: Lowering Costs for a Low Latency Cache with RocksDB
EVCache: Lowering Costs for a Low Latency Cache with RocksDBEVCache: Lowering Costs for a Low Latency Cache with RocksDB
EVCache: Lowering Costs for a Low Latency Cache with RocksDBScott Mansfield
 
Ambedded - how to build a true no single point of failure ceph cluster
Ambedded - how to build a true no single point of failure ceph cluster Ambedded - how to build a true no single point of failure ceph cluster
Ambedded - how to build a true no single point of failure ceph cluster inwin stack
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInLinkedIn
 
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...Databricks
 
[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce ArchitecturePerforce
 
2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on Ceph2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on CephCeph Community
 
VMworld 2014: Databases in a Virtualized World
VMworld 2014:  Databases in a Virtualized WorldVMworld 2014:  Databases in a Virtualized World
VMworld 2014: Databases in a Virtualized WorldViolin Memory
 
Design for Scale / Surge 2010
Design for Scale / Surge 2010Design for Scale / Surge 2010
Design for Scale / Surge 2010Christopher Brown
 

Similar to [아이펀팩토리] 2017 NDCP (20)

Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
 
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
 
Application Caching: The Hidden Microservice
Application Caching: The Hidden MicroserviceApplication Caching: The Hidden Microservice
Application Caching: The Hidden Microservice
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
Backup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix BarbeiraBackup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
 
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
Unite2014 Bunny Necropsy - Servers, Syncing Game State, Security and Optimiza...
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
 
Implementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch governmentImplementing data and databases on K8s within the Dutch government
Implementing data and databases on K8s within the Dutch government
 
Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance
Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance
Ceph Day Shanghai - SSD/NVM Technology Boosting Ceph Performance
 
EVCache: Lowering Costs for a Low Latency Cache with RocksDB
EVCache: Lowering Costs for a Low Latency Cache with RocksDBEVCache: Lowering Costs for a Low Latency Cache with RocksDB
EVCache: Lowering Costs for a Low Latency Cache with RocksDB
 
Ambedded - how to build a true no single point of failure ceph cluster
Ambedded - how to build a true no single point of failure ceph cluster Ambedded - how to build a true no single point of failure ceph cluster
Ambedded - how to build a true no single point of failure ceph cluster
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
 
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
 
[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture[NetherRealm Studios] Game Studio Perforce Architecture
[NetherRealm Studios] Game Studio Perforce Architecture
 
2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on Ceph2016-JAN-28 -- High Performance Production Databases on Ceph
2016-JAN-28 -- High Performance Production Databases on Ceph
 
Good virtual machines
Good virtual machinesGood virtual machines
Good virtual machines
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
VMworld 2014: Databases in a Virtualized World
VMworld 2014:  Databases in a Virtualized WorldVMworld 2014:  Databases in a Virtualized World
VMworld 2014: Databases in a Virtualized World
 
Design for Scale / Surge 2010
Design for Scale / Surge 2010Design for Scale / Surge 2010
Design for Scale / Surge 2010
 

More from iFunFactory Inc.

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱iFunFactory Inc.
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표iFunFactory Inc.
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTOiFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유iFunFactory Inc.
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석iFunFactory Inc.
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 iFunFactory Inc.
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hostingiFunFactory Inc.
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성iFunFactory Inc.
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기iFunFactory Inc.
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버iFunFactory Inc.
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기iFunFactory Inc.
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교iFunFactory Inc.
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기iFunFactory Inc.
 

More from iFunFactory Inc. (20)

2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
2019 아이펀팩토리 Dev Day 세션6 아이펀엔진 운영툴 연동하기 - 장수원
 
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
2019 아이펀팩토리 Dev Day 세션5 아이펀엔진으로 만든 게임 성능 분석 및 디버깅 - 남승현
 
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
2019 아이펀팩토리 Dev Day 세션4 아이펀엔진에 MO 게임 콘텐츠 채워 넣기 - 남승현
 
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
2019 아이펀팩토리 Dev Day 세션3 아이펀엔진 개발 환경 설정하기 (Windows+ VS) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
2019 아이펀팩토리 Dev Day 세션2 아이펀엔진 개발 환경 설정하기 (Linux + VS Code) - 김진욱
 
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
2019 아이펀팩토리 Dev Day 세션1 네트워크 프로그래밍 개론 - 문대경 대표
 
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
[MGDC] 리눅스 게임 서버 성능 분석하기 - 아이펀팩토리 김진욱 CTO
 
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _03 Scalable 한 게임 서버 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
[아이펀팩토리] 2018 데브데이 서버위더스 _01 HTML5/WebSocket으로 Pong 게임 만들기
 
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
[아이펀팩토리] 2018 데브데이 서버위더스 _02 분산 환경을 위한 ORM 개발 경험 공유
 
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
[아이펀팩토리] 2018 데브데이 서버위더스 _04 리눅스 게임 서버 성능 분석
 
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기 [아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
[아이펀팩토리] 클라이언트 개발자, 서버 개발 시작하기
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting게임서버 구축 방법비교 : GBaaS vs. Self-hosting
게임서버 구축 방법비교 : GBaaS vs. Self-hosting
 
유니티 쉐이더 단기속성
유니티 쉐이더 단기속성유니티 쉐이더 단기속성
유니티 쉐이더 단기속성
 
게임 서버 성능 분석하기
게임 서버 성능 분석하기게임 서버 성능 분석하기
게임 서버 성능 분석하기
 
혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버혼자서 만드는 MMO게임 서버
혼자서 만드는 MMO게임 서버
 
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기Python과 AWS를 이용하여 게임 테스트 환경 구축하기
Python과 AWS를 이용하여 게임 테스트 환경 구축하기
 
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
PC 와 모바일에서의 P2P 게임 구현에서의 차이점 비교
 
Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기Docker 로 Linux 없이 Linux 환경에서 개발하기
Docker 로 Linux 없이 Linux 환경에서 개발하기
 

Recently uploaded

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSCAESB
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxhumanexperienceaaa
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130Suhani Kapoor
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )Tsuyoshi Horigome
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 

Recently uploaded (20)

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
GDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentationGDSC ASEB Gen AI study jams presentation
GDSC ASEB Gen AI study jams presentation
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
VIP Call Girls Service Kondapur Hyderabad Call +91-8250192130
 
SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )SPICE PARK APR2024 ( 6,793 SPICE Models )
SPICE PARK APR2024 ( 6,793 SPICE Models )
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 

[아이펀팩토리] 2017 NDCP

  • 1. The 7 Lessons for Highly Effective Real-time Server G re a t Te c h n o l o g y F o r G re a t G a m e s D K M o o n dkmoon@ifunfactory.com 1
  • 2. ✓ Worked on six MMORPG game servers at Nexon from 1999 thru 2005. ✓ Left it for a better opportunity in the States. ✓ Returned to it for no better place. (unfortunately…) ✓ Worked on mobile game server framework from 2011 thru 2013. ✓ Left again to start a business in the game server software industry. Personal Relationship with Nexon Great Technology For Great Games 2
  • 3. ✓ Case studies on server-related issues and lessons from them. ✓ Reference game #1: PC MMORPG • Peak CCU: 140K • Peak CCU/Server: 15K ✓ Reference game #2: Mobile real-time MO game • Being developed by Nexon/IFF and published by Tencent • Passed 3 beta tests (CCU confidential) About This Talk Great Technology For Great Games 3
  • 4. Game ServiceArchitecture (Data Plane) Great Technology For Great Games 4 Game Client Game Server DB Server Cache Load balancer / Switch
  • 5. Game ServiceArchitecture (Data Plane) Great Technology For Great Games 5 Game Client Game Server DB Server Cache Presentation Layer Access Layer Logic/Application Layer Cache Layer Persistence Layer Load balancer / Switch
  • 6. ✓ Case: saturated NIC & oversubscribed network • In the past, network interface card (NIC) could be saturated. • This does not happen any more, but core switch can be choked. ✓ Observation • Real-time MMO: 200-300 Bps • REST-based mobile: 700-800 Bps w/ spikes ✓ Suggestion • Meter your traffic Lesson #1 Know Your Traffic Pattern Great Technology For Great Games 6 … … … Core switch
  • 7. ✓ Case: saturated NIC & oversubscribed network • In the past, network interface card (NIC) could be saturated. • This does not happen any more, but core switch can be choked. ✓ Observation • Real-time MMO: 200-300 Bps. • REST-based mobile: 700-800 Bps w/ spikes. ✓ Suggestion • Meter your traffic Lesson #1 Know Your Traffic Pattern Great Technology For Great Games 7 … … … Core switch
  • 8. ✓ Case: saturated NIC & oversubscribed network • In the past, network interface card (NIC) could be saturated. • This does not happen any more, but core switch can be choked. ✓ Observation • Real-time MMO: 200-300 Bps. • REST-based mobile: 700-800 Bps w/ spikes. ✓ Suggestion • Meter your traffic. • Prefer binary message format. • Also, correlate traffic to CPU usage. Lesson #1 Know Your Traffic Pattern Great Technology For Great Games 8 … … … Core switch
  • 9. ✓ Case: Memory copy functions always at the top of profiling results. ✓ Reference CPU usage: 50-70% • Too low figures: inefficient program concurrency. • Too high figures: unnecessary memory copying, looping. ✓ Suggestion • Pass around packets by pointer. • Minimizing packet sizes also helps here, too. Lesson #2 Avoid Copying Packets Great Technology For Great Games 9
  • 10. ✓ Case: Memory copy functions always at the top of profiling results. ✓ Target CPU usage: 50-70% • Too low figures: inefficient program concurrency. • Too high figures: unnecessary memory copying, looping. ✓ Suggestion • Pass around packets by pointer. • Minimizing packet sizes also helps here, too. Lesson #2 Avoid Copying Packets Great Technology For Great Games 10
  • 11. ✓ Case: Memory copy functions always at the top of profiling results. ✓ Target CPU usage: 50-70% • Too low figures: inefficient program concurrency. • Too high figures: unnecessary memory copying, looping. ✓ Suggestion • Pass around packets by pointer. • Minimizing packet sizes also helps here, too. Lesson #2 Avoid Copying Packets Great Technology For Great Games 11
  • 12. ✓ Case: Adopted lightweight byte-by-byte XOR encryption.
 Never being hacked into encryption algorithm.
 Instead, lots of packet replay attacks and client hack attempts. ✓ Observation • Hackers do not bother reverse-engineering encryption algorithm. • Instead, they hack into the client and let it do the encryption job. ✓ Suggestion • Pick a lightweight encryption algorithm as long as it can prevent packet forgery. (Complex algorithm uses up too much CPU.) • More focus on preventing game client manipulation. • Also, prepare for packet replay attacks. Lesson #3 Focus on Client Obfuscation Great Technology For Great Games 12
  • 13. ✓ Case: Adopted lightweight byte-by-byte XOR encryption.
 Never being hacked into encryption algorithm.
 Instead, lots of packet replay attacks and client hack attempts. ✓ Observation • Hackers do not bother reverse-engineering encryption algorithm. • Instead, they hack into the client and let it do the encryption job. ✓ Suggestion • Pick a lightweight encryption algorithm as long as it can prevent packet forgery. (Complex algorithm uses up too much CPU.) • More focus on preventing game client manipulation. • Also, prepare for packet replay attacks. Lesson #3 Focus on Client Obfuscation Great Technology For Great Games 13
  • 14. ✓ Case: Adopted lightweight byte-by-byte XOR encryption.
 Never being hacked into encryption algorithm.
 Instead, lots of packet replay attacks and client hack attempts. ✓ Observation • Hackers do not bother reverse-engineering encryption algorithm. • Instead, they hack into the client and let it do the encryption job. ✓ Suggestion • Pick a lightweight encryption algorithm as long as it can prevent packet forgery. (Complex algorithm uses up too much CPU.) • More focus on preventing game client manipulation. • Also, prepare for packet replay attacks. Lesson #3 Focus on Client Obfuscation Great Technology For Great Games 14
  • 15. ✓ Case: Broadcasting hinders scalability in both CPU and network BW.
 Refactored multiple times for visibility-based multicasting. ✓ Observation • Along the memory copy, loop for broadcasting is the key reason for high CPU usage. • Such broadcasting triggers packet copies, too. (because different players use different encryption seeds.) ✓ Suggestion • Avoid broadcasting. • Manage players list in a way of easy multicasting. Lesson #4 Use Multicasting with Limited Scope Great Technology For Great Games 15
  • 16. ✓ Case: Broadcasting hinders scalability in both CPU and network BW.
 Refactored multiple times for visibility-based multicasting. ✓ Observation • Along the memory copy, loop for broadcasting is the key reason for high CPU usage. • Such broadcasting triggers packet copies, too. (because different players use different encryption seeds.) ✓ Suggestion • Avoid broadcasting. • Manage players list in a way of easy multicasting. Lesson #4 Use Multicasting with Limited Scope Great Technology For Great Games 16
  • 17. ✓ Case: Broadcasting hinders scalability in both CPU and network BW.
 Refactored multiple times for visibility-based multicasting. ✓ Observation • Along the memory copy, loop for broadcasting is the key reason for high CPU usage. • Such broadcasting triggers packet copies, too. (because different players use different encryption seeds.) ✓ Suggestion • Avoid broadcasting. • Manage players list in a way of easy multicasting. Lesson #4 Use Multicasting with Limited Scope Great Technology For Great Games 17
  • 18. ✓ Case: Heavily relied on DB transaction for inter-server synchronization
 DB gets overloaded.
 Servers gets serialized for DB I/O waiting. ✓ Observation • Many programmers overuse DB xaction for synchronization. • DB is heavyweight to guarantee properties like ACID, which means they pay extremely high costs for synchronization. ✓ Suggestion • Use inter-server RPC or memory cache for synchronization. Lesson #5 Don’t Use DB as Synchronization Point Great Technology For Great Games 18
  • 19. ✓ Case: Heavily relied on DB transaction for inter-server synchronization
 DB gets overloaded.
 Servers gets serialized for DB I/O waiting. ✓ Observation • Many programmers overuse DB xaction for synchronization. • DB is heavyweight to guarantee properties like ACID, which means they pay extremely high costs for synchronization. ✓ Suggestion • Use inter-server RPC or memory cache for synchronization. Lesson #5 Don’t Use DB as Synchronization Point Great Technology For Great Games 19
  • 20. ✓ Case: Heavily relied on DB transaction for inter-server synchronization
 DB gets overloaded.
 Servers gets serialized for DB I/O waiting. ✓ Observation • Many programmers overuse DB xaction for synchronization. • DB is heavyweight to guarantee properties like ACID, which means they pay extremely high costs for synchronization. ✓ Suggestion • Use inter-server RPC or memory cache for synchronization. Lesson #5 Don’t Use DB as Synchronization Point Great Technology For Great Games 20
  • 21. ✓ Case: Intensive use of REDIS for data sharing among the servers.
 REDIS quickly becomes a bottleneck. ✓ Observation • Caching like REDIS is much lighter than DB for sure. • But it also runs jobs to maintain persistency/consistency/ availability. • Direct server-to-server RPC may be a better solution in some cases. ✓ Suggestion • Mind the persistency/consistency/availability setting of cache prog. • Consider server-to-server RPC unless caching is unavoidable. Lesson #6 Caching is Not For Free Great Technology For Great Games 21
  • 22. ✓ Case: Intensive use of REDIS for data sharing among the servers.
 REDIS quickly becomes a bottleneck. ✓ Observation • Caching like REDIS is much lighter than DB for sure. • But it also runs jobs to maintain persistency/consistency/ availability. • Direct server-to-server RPC may be a better solution in some cases. ✓ Suggestion • Mind the persistency/consistency/availability setting of cache prog. • Consider server-to-server RPC unless caching is unavoidable. Lesson #6 Caching is Not For Free Great Technology For Great Games 22
  • 23. ✓ Case: Intensive use of REDIS for data sharing among the servers.
 REDIS quickly becomes a bottleneck. ✓ Observation • Caching like REDIS is much lighter than DB for sure. • But it also runs jobs to maintain persistency/consistency/ availability. • Direct server-to-server RPC may be a better solution in some cases. ✓ Suggestion • Mind the persistency/consistency/availability setting of cache prog. • Consider server-to-server RPC unless caching is unavoidable. Lesson #6 Caching is Not For Free Great Technology For Great Games 23
  • 24. ✓ Case: Opens a service without any monitoring / operation tools. ✓ Observation • The day of service open is the most hectic • Also, the service on the day is the most buggy. • Tools to understand what’s happening inside server is a must have. • operation tools are mandatory unless you don’t want to sleep. ✓ Suggestion • Spend enough time developing tools. Lesson #7 Start with Tools for Server Visibility Great Technology For Great Games 24
  • 25. ✓ Case: Opens a service without any monitoring / operation tools. ✓ Observation • The day of service open is the most hectic. • Also, the service on the day is the most buggy. • Tools to understand what’s happening inside server is a must have. • Operation tools are mandatory unless you don’t want to sleep. ✓ Suggestion • Spend enough time developing tools. Lesson #7 Start with Tools for Server Visibility Great Technology For Great Games 25
  • 26. ✓ Case: Opens a service without any monitoring / operation tools. ✓ Observation • The day of service open is the most hectic. • Also, the service on the day is the most buggy. • Tools to understand what’s happening inside server is a must have. • Operation tools are mandatory unless you don’t want to sleep. ✓ Suggestion • Spend enough time developing tools. Lesson #7 Start with Tools for Server Visibility Great Technology For Great Games 26
  • 27. ✓ Understand your traffic pattern and try to minimize it. ✓ Avoid packet copies inside server. ✓ Focus on client obfuscation instead of complex network encryption. ✓ Prefer multicasting to broadcasting. Especially, consider visibility. ✓ Avoid using DB as a synchronization point. It will collapse. ✓ Caching is not for free. Do not rely on it too much. ✓ Develop a proper tools for server visibility before opening a service. Recap Great Technology For Great Games 27
  • 28. Survey Result for Fun Great Technology For Great Games 28 ✓ What OS for game server? Count RateChoice NA No answer
  • 29. Survey Result for Fun Great Technology For Great Games 29 ✓ What language for game server? Choice Count Rate
  • 30. DK Moon dkmoon@ifunfactory.com www.ifunfactory.com THANKS! G r e a t Te c h n o l o g y F o r G r e a t G a m e s , i F u n Fa c t o r y 30