NoSQL Games_NoSQL Roadshow Berlin
Upcoming SlideShare
Loading in...5
×
 

NoSQL Games_NoSQL Roadshow Berlin

on

  • 1,768 views

Learn how we use NoSQL and SQL databases to build games at Wooga. From prototypes to production systems that deal with the data of millions of players, this talk covers hands on use cases and ...

Learn how we use NoSQL and SQL databases to build games at Wooga. From prototypes to production systems that deal with the data of millions of players, this talk covers hands on use cases and learnings.

Statistics

Views

Total Views
1,768
Views on SlideShare
1,192
Embed Views
576

Actions

Likes
7
Downloads
29
Comments
0

6 Embeds 576

http://www.huesler-informatik.ch 246
http://hyperdev.de 242
https://twitter.com 32
http://localhost 29
http://huesler-informatik.ch 22
http://dschool.co 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

NoSQL Games_NoSQL Roadshow Berlin NoSQL Games_NoSQL Roadshow Berlin Presentation Transcript

  • gamesNoSQL
  • Patrick Hueslertwitter: @phueslergithub: phuesler
  • GamesHow to build
  • Game backendiOSFlashFacebookAndroid
  • scale
  • for Diamond Dash~28,000,000monthly active users15/04/2013
  • for Diamond Dash~4,600,000daily active users15/04/2013
  • engineering
  • DEVOPSYou can call it
  • You Build itYOU RUN IT
  • Developerfriendly
  • Operationsfriendly
  • of architectureEVOLUTIONWooga’s
  • PrototypeIt starts with a
  • AdmininterfaceAdd an
  • SimpleBackendServices
  • GamesPast
  • learning1st
  • Game backendReportingiOSFlashFacebookAndroid
  • Game backendiOSFlashFacebookAndroidReporting
  • GAme 1Game 2ReportingGAme 3Game 4
  • Kafkahttps://kafka.apache.org/index.html
  • TIME
  • LAMPBuilt with
  • ... well, nginx instead ofapacheLAMPBuilt with
  • learned?what have we
  • FAST ENOUGHmysql is often
  • TIME
  • cloudTo the
  • load balancermaster shard 1 master shard 2slave shard 1 slave shard 2app server app server app server
  • load balancerDBappapp app app app appappapp app app app appappapp app app app appDB DB DB DB DBDB DB DB DB DB DB
  • learned?what have we
  • use casedifferent
  • Are NOTarcade gamesfarming games
  • slow partsMove
  • repeatRinse and
  • learned?what have we
  • helps, but only to a certainextentmachinesAdding more
  • AutomatedServer Provisioning
  • RedisPros and cons of
  • facilitate databasechangesAbstractionsGood code
  • Testsgive confidence
  • are easier to reason aboutChangesIncremental
  • are easier to reason aboutRolloutsIncremental
  • crucialmonitoring is
  • TIME
  • dedicatedBack to
  • MachinesFaster
  • networkFaster
  • load balancerREdis master Redis Slaveapp server app server app server
  • u1_rooms_R1u1_Pets_P2u1_Pets_P3u1_Pets_P4u1_Pets_P5u2_Pets_P1u2_Pets_P2
  • u1_rooms_R1u1_Pets_P2u1_Pets_P3u1_Pets_P4u1_Pets_P5u2_Pets_P1u2_Pets_P2
  • REDISHASH
  • u1U2U3XPRoomsPatientsXPRoomsPatientsXPRoomsPatientsU4
  • learned?What have we
  • placeMagicalShowers are a
  • a relational databaseNOTRedis is
  • to move aroundIs easierCompound user data
  • MemoryLeaks?
  • work again?BGSAVEHow does
  • workingno longerDumps are
  • learned?What have we
  • AssumptionsValidate your
  • Restore onDemandFix it with
  • DiskArchive user to
  • RedisRestore to
  • (never really supported)Disk StoreRedis
  • learned?What have we
  • less complexityMachinesLess
  • Archivingkeeps the working setsmall
  • compounduser data is easier tomove around
  • Trade offUsing Redis as yourmain data store
  • TIME
  • StatefulLet’s go
  • is faster than no databasedatabaseNO
  • s3Amazon
  • http://www.slideshare.net/wooga/from-0-to-1000000-daily-users-with-erlang
  • http://www.slideshare.net/wooga/from-0-to-1000000-daily-users-with-erlang
  • learned?What have we
  • Erlangis a great environmentto build distributedsystems
  • choice of databasetrumpsArchitecture
  • Statefulis more complex
  • lockingDistributed
  • lockerhttps://github.com/wooga/locker
  • warlockhttps://github.com/wooga/warlockhttp://uu.diva-portal.org/smash/record.jsf?pid=diva2:615805
  • TIME
  • EventMAchine
  • load balancerRiak Riak Riak Riak Riakappapp app appappapp app app
  • learned?What have we
  • RiakLife with
  • Single Pointof FailureNO!!!!!
  • DataModellingand Access
  • RedisRiak ClusterUser DataLevelXPBuildingsScenesMeta DaTaFriend IndexHighScoreS
  • clusterRiak
  • App ServerRiak?
  • BackupRiak
  • Amazon S3Archive to
  • questions?http://www.wooga.com/jobspatrick.huesler@wooga.com
  • Referenced Presentationshttp://www.slideshare.net/woogahttp://www.slideshare.net/wooga/how-to-handle-1000000-daily-users-without-using-a-cache-railswaycon-2012http://www.slideshare.net/wooga/event-stream-processing-with-kafka-berlin-buzzwords-2012http://www.slideshare.net/wooga/from-0-to-1000000-daily-users-with-erlang
  • CreditsPolar bear: http://www.flickr.com/photos/bestrated1/167630455/sizes/o/Family: http://www.flickr.com/photos/adwriter/212098009/sizes/o/cart: http://www.flickr.com/photos/41304880@N05/6187541490/cow closeup: http://www.flickr.com/photos/sovietuk/227465632/sizes/o/sparta: http://www.flickr.com/photos/legofenris/5008721616/sizes/l/tank: http://www.flickr.com/photos/markkelley/1581559810/sizes/l/bomb: http://www.flickr.com/photos/7969902@N07/511234695/scale: http://www.flickr.com/photos/31818720@N00/3273587681/engineering: http://www.flickr.com/photos/31704690@N05/8253753576/duck: http://www.flickr.com/photos/12836528@N00/2785398344/gear: http://www.flickr.com/photos/neurolysis/3335080917/cat: http://www.flickr.com/photos/55753993@N00/2898378081/
  • Creditschronos: http://www.flickr.com/photos/seeminglee/8581497525clouds: http://www.flickr.com/photos/nirak/644335254dead end: http://www.flickr.com/photos/ableman/298520443sloth: http://www.flickr.com/photos/matthijs/461893969stairs: http://www.flickr.com/photos/the_pale_side_of_insomnia/3010459970server rack: http://www.flickr.com/photos/jamisonjudd/2433102356gauge: http://www.flickr.com/photos/thatguyfromcchs08/2300190277pipe: http://www.flickr.com/photos/autowitch/102513226shower: http://www.flickr.com/photos/pagedooley/2047183582archive: http://www.flickr.com/photos/kasaa/2693784352water tap: http://www.flickr.com/photos/nachett/7852629550
  • Creditswrenches: http://www.flickr.com/photos/batega/1596898776bike locks: http://www.flickr.com/photos/ibcbulk/256435870lock master: http://www.flickr.com/photos/darwinbelllock : http://www.flickr.com/photos/dzarro72water wheel: http://www.flickr.com/photos/30649191@N00/8686135236starwars family: http://www.flickr.com/photos/kalexanderson/6312014327playdo: http://www.flickr.com/photos/manueb/1674681674microphone: http://www.flickr.com/photos/auralasia/4381121155cluster: http://www.flickr.com/photos/rogersmith/280267119backup: http://www.flickr.com/photos/dippy_duck/4562866718architecture: http://www.flickr.com/photos/bzyla/1331648993library: http://www.flickr.com/photos/fahdad/1718853829