Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Riak: Distributed Storage for Games You Don't Have to Worry About

Riak: Distributed Storage for Games You Don't Have to Worry About

Presented at Gamelab 2013 in Barcelona

Tom Santero

June 27, 2013
Tweet

More Decks by Tom Santero

Other Decks in Technology

Transcript

  1. Distributed storage for games you don’t have to worry about

    Press Start (c) 2013 Basho Technologies All rights reserved. Riak
  2. Thousands  of  players  across  the  world  are  playing  and  

    having  a  good  experience  –  in  fact,  more  than  700,000   cities  have  been  built  by  our  players  in  just  24  hours.   But  many  are  experiencing  server  instability  and   consequently,  the  rollout  in  North  America  has  been   challenging.  It's  also  now  evident  that  players  across   Europe  and  Asia  are  experiencing  the  same  frustration.   Our  priority  now  is  to  quickly  and  dramatically  increase   the  number  and  stability  of  our  servers  and,  with  that,   the  number  of  players  who  can  simultaneously  access  the   game.  We  added  servers  today,  and  there  will  be  several   more  added  over  the  weekend.  We're  working  as  hard  as   possible  to  make  sure  everyone  gets  to  experience  the   amazing  game  we  built  in  SimCity.
  3. Authentication and profiles key value oauth JSON/XML/enc uuid JSON/XML/enc email

    JSON/XML/enc } device_id last_session other_pointers
  4. Authentication and profiles key value oauth JSON/XML/enc uuid JSON/XML/enc email

    JSON/XML/enc } device_id last_session other_pointers Cross Platform!
  5. Session and game state key value user riak sessionid JSON/XML/enc

    uuid JSON/XML/enc PUT sessions/sessionID GET sessions/sessionID
  6. Session and game state key value user riak connection sessionid

    JSON/XML/enc uuid JSON/XML/enc session created PUT sessions/sessionID GET sessions/sessionID
  7. Session and game state key value user riak connection save

    progress sessionid JSON/XML/enc uuid JSON/XML/enc session created PUT sessions/sessionID GET sessions/sessionID
  8. Session and game state key value user riak connection save

    progress sessionid JSON/XML/enc uuid JSON/XML/enc X terminate conn session created PUT sessions/sessionID GET sessions/sessionID
  9. Session and game state key value user riak connection save

    progress sessionid JSON/XML/enc uuid JSON/XML/enc X terminate conn reconnect session created session created ... PUT sessions/sessionID GET sessions/sessionID
  10. In-Game purchases game inventory P a y m e n

    t transaction log player’s inventory game
  11. Social Graphs Player 1 is friends with Player 2 Player

    3 Player 2 is friends with Player 3 player 4 player 6 via secondary index CRDT
  12. Notification Systems event based messages grab via 2i or m/r

    asynchronous delivery via: urbanairship kafka / Rabbitmq apple/android servers