Pikko Server. Scalability when using Erlang on the server side for massive multiplayer game servers. David Almroth CTO, PikkoTekk



Similar documents
HORIZONTAL SCALABILITY

Cisco Integrated Services Routers Performance Overview

Foundation for High-Performance, Open and Flexible Software and Services in the Carrier Network. Sandeep Shah Director, Systems Architecture EZchip

Content. Massively Multiplayer Online Games Previous Work. Cluster-based Approach. Evaluation Conclusions. P2P-based Infrastructure

Optimizing Data Center Networks for Cloud Computing

SQL Server 2005 Features Comparison

Cache Database: Introduction to a New Generation Database

Virtualized Security: The Next Generation of Consolidation

Resource Utilization of Middleware Components in Embedded Systems

Load-balancing and scalability enabled by middleware

Why you ll love ulink over Unity Network

Analytics: The Future of Security

SCALABILITY AND AVAILABILITY

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

SDN/Virtualization and Cloud Computing

Network management tools: Torrus, Gerty, Mooxu

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Mobile Edge Computing: Unleashing the value chain

Unity New Networking System (UNet) Unite Asia 2015

Internet Service Overview

Proposal for a Vehicle Tracking System (VTS)

Java Monitoring. Stuff You Can Get For Free (And Stuff You Can t) Paul Jasek Sales Engineer

Big Data Analytics Nokia

Cisco UCS and Fusion- io take Big Data workloads to extreme performance in a small footprint: A case study with Oracle NoSQL database

The Software Defined Hybrid Packet Optical Datacenter Network SDN AT LIGHT SPEED TM CALIENT Technologies

Delivering Quality in Software Performance and Scalability Testing

Virtual Routing: What s The Goal? And What s Beyond? Peter Christy, NetsEdge Research Group, August 2001

AdvOSS Session Border Controller

TIME TO RETHINK SDN AND NFV

Modern IT Operations Management. Why a New Approach is Required, and How Boundary Delivers

How Router Technology Shapes Inter-Cloud Computing Service Architecture for The Future Internet

Sun CoolThreads Servers and Zeus Technology Next-generation load balancing and application traffic management

SAP HANA SAP s In-Memory Database. Dr. Martin Kittel, SAP HANA Development January 16, 2013

Improving Information Flow for Equities OMS & Trading Platforms

WSO2 Message Broker. Scalable persistent Messaging System

Cloud3DView: Gamifying Data Center Management

APPLICATION NOTE. Elastic Scalability. for HetNet Deployment, Management & Optimization

Build and run online Unity 3D games for FREE!

DB2 Application Development and Migration Tools

An Efficient Hybrid P2P MMOG Cloud Architecture for Dynamic Load Management. Ginhung Wang, Kuochen Wang

Making Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association

Winning the J2EE Performance Game Presented to: JAVA User Group-Minnesota

IBM Cognos 10: Enhancing query processing performance for IBM Netezza appliances

Informatica Ultra Messaging SMX Shared-Memory Transport

Unified Messaging Infrastructure for Global FX Trading Platforms

Introduction to Cloud Computing

Tutorial: Traffic of Online Games

The Big Data Paradigm Shift. Insight Through Automation

VoIP Fraud and Misuse

An Esri White Paper June 2010 Tracking Server 10

EAGLE EYE IP TAP. 1. Introduction

Enabling the Use of Data

Quick. Spec. Expand. SeaChange Adrenalin. Entertain. Engage. Multiscreen Television Platform

Firewall Defaults, Public Server Rule, and Secondary WAN IP Address

5 Performance Management for Web Services. Rolf Stadler School of Electrical Engineering KTH Royal Institute of Technology.

Cloud Computing. With MySQL and Pentaho Data Integration. Matt Casters Chief Data Integration at Pentaho Kettle project founder

ANALYSIS OF GRID COMPUTING AS IT APPLIES TO HIGH VOLUME DOCUMENT PROCESSING AND OCR

This presentation describes the IBM Tivoli Monitoring 6.1 Firewall Implementation: KDE Gateway Component.

Infrastructure for active and passive measurements at 10Gbps and beyond

QoS Issues for Multiplayer Gaming

50. DFN Betriebstagung

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

Erlang in E-Commerce and Banking

High Speed I/O Server Computing with InfiniBand

NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist

Technical Report. Implementation and Performance Testing of Business Rules Evaluation Systems in a Computing Grid. Brian Fletcher x

Minimal network traffic is the result of SiteAudit s design. The information below explains why network traffic is minimized.

How To Write A Composition Engine In A Microsoft Ip System

Inside the Erlang VM

Achieving Low-Latency Security

Network Monitoring Fabrics Are Key to Scaling IT

Hybrid Cloud Architectures for Operational Performance Management

Architectures for Big Data Analytics A database perspective

Integrating Web Messaging into the Enterprise Middleware Layer

S y s t e m A r c h i t e c t u r e

OpManager MSP Edition

Oracle Solaris: Aktueller Stand und Ausblick

Scaling Analysis Services in the Cloud

Unified Computing Systems

Low-Overhead Hard Real-time Aware Interconnect Network Router

F5 Intelligent DNS Scale. Philippe Bogaerts Senior Field Systems Engineer mailto: Mob.:

Top 10 Tips for z/os Network Performance Monitoring with OMEGAMON Session 11899

How To Build A Cloud Computer

White Paper. How Streaming Data Analytics Enables Real-Time Decisions

Data and Control Plane Interconnect solutions for SDN & NFV Networks Raghu Kondapalli August 2014

Artificial intelligence (AI) specialists in Games design and programming

NETWORK FUNCTIONS VIRTUALIZATION. Segmenting Virtual Network with Virtual Routers

Transcription:

Pikko Server Scalability when using Erlang on the server side for massive multiplayer game servers. David Almroth CTO, PikkoTekk

Agenda 1. David & PikkoTekk 2. Normal game servers 3. The scalability problem 4. A more scalable solution Pikko Server 5. World record attempt for game servers 6. Questions & Answers

David Almroth & PikkoTekk Did 10 years of Enterprise Java (Banking & Finance) Now Erlang architect Started PikkoTekk 2009 together with Reep, a group of talented game programmers in Uppsala PikkoTekk is a company producing scalable software for multiplayer computer games

Normal Zoned MMO Game Servers (For example: World of Warcraft, Eve Online) Blade Server Clients Game server 1 (forest area) Game server 2 Game (city Game area) server Game 3 server Game 4 server Game 5 server 16 server 16 DB (SQL) MMO = Massive Multiplayer Online

Scalability Problems for Normal Game Server Can not utilize the power of modern multicore processors Game servers usually have one single thread = not scalable The result is: No big crowds can be handled (not without challenges) No big battlefields can be handled Database gets overloaded is another problem (not the focus today)

Normal Solutions to the Server Overload Problem 1. Limit the number of players per server (World of Warcraft) > they make instances 2. Allow many players, but server will get slower and slower (Eve Online) 3. Turn off fighting and other realtime activites in crowded areas. (Cities in WoW) THIS IS BORING! Gamers want higher player density!

Normal Multiplayer Game Development The game developer usually works in a single editor (called a Game Engine ) Client and server is often programmed with the same language The developer uses a lot of middleware that demands C++ (currently the game industry standard). Their focus is fun games, not scalable servers

The Unity Game Engine (GUI screenshot)

How should they build more scalable game servers that can use multicore? Use multicore power with a bunch of C++ threads? - Scary! Multicore with Java? - Scary too! Make a complete game server in Erlang?

Why not make a complete game server in Erlang? Can not use C++ middleware on the server Have to use different platforms for client and server How do you make game logic scripting easy? Erlang is a new programming paradigm for game developers It can be done, yes, but there are big challenges!

A more scalable solution: Pikko Server Keep the game servers the way they are and limit the number of players per game server to around 50-100. Put an intelligent router = an Application Level Gateway (ALG) based on Erlang in front of them. Move players dynamically between game servers to avoid overload.

1000 + Clients = players The Pikko Server Solution multi-core server multi-core server Game server 1 Pikko Server = ALG (Erlang) Can route network traffic based on player s position in the virtual world. Game Game server Game 2 server Game 3 server Game 4 server Game 5 server 16 server 16

How can Pikko Server dynamically route the traffic to the correct game server?

Pikko Server divides the virtual world like a cell phone network! Every player is a cell phone. Every game server is a mobile network antenna (we call them masts ) Cell phones (players) can be handed over between masts (game servers) The masts can move (!)

The PikkoServer view of a virtual world Mast1 Mast2 players Mast3 Mast4 Mast5

Client view Players can see all opponents (in their line of sight)

Live Demo Game Servers hosted by Game-Hosting GH AB in Uppsala.

Game server view - The view of one game server Mast3 zxdfg Note: It is not overloaded!

Every game server (mast) has loaded the complete map of the virtual world Game server view - The view of another game server Mast1

One Player Moves: This movement will trigger a handover Mast1 Mast2 players Mast3 Mast4 Mast5

Handovers The Mast algorithm in Pikko Server decides when a player object needs to be transferred from one game server to another. Player state is serialized and transferred from one game servers to another (via Pikko Server). The game server has to implement our API to be able to participate in handovers.

Massive movements affect positions of masts Mast1 Mast2 Mast3 Mast4 Mast5

Mast Algorithm - Demo

Pikko Server Now Available We have a solution for scaling game servers based on Elrang Game developers do not have to learn Erlang, instead they can use Pikko Server to get scalable many-core power now. Pikko Server can be used in any game engine. (Our current demo game is based on the Unity Game Engine) Marketing and sales starts today.

Current Performance We can handle at least 1000 players when game servers send 15 updates (for all moving objets) every second. We can multicast 500,000 game actions per second per core. Close to linear scalability up to 8 cores. We have not tested more yet. 1000 active UDP sockets sending 1 Megabit/s each = 1 Gb/s totalt server bandwidth downstream from Pikko Server. Test lab hosted by Game-Hosting GH AB in Uppsala.

World record attempt soon PikkoTekk will soon make a world record attempt with 1000 real players with a fast paced action demo game. Please send me an email now if you want to be part of this event. david.almroth@pikkotekk.com Subject: World record

Questions & Answers David Almroth www.pikkotekk.com