Data Architectures in social gaming
I was going through a research publications on Data management in gaming/virtual worlds and came across this interesting comment left by one of Zynga's analytical leads (Ken Rudin) on their data architecture.
To clear up the confusion about whether we use MySQL/membase or Vertica, the answer is pretty simple: One is used for transactional purposes, and one is used for analytical purposes. The games write transactional data to MySQL/membase, and the architecture is described here:http://code.zynga.com/2011/07/building-a-scalable-game-server/ By transactional data, I mean data regarding a player’s state in the game, such as what their game board looks like, how many coins they have left, etc. It’s all the info that the game needs when the player logs in so they can continue playing where they left off previously. The games also separately write analytical data to our analytics platform, and the architecture is described here:http://code.zynga.com/2011/06/deciding-how-to-store-billions-of-rows-per-day/ This analytical data is primarily event data related to player behaviors. Did the player just send a horse to their friend in Farmville? Log that to the analytics system. Did they visit a neighbor’s city in Cityville? Log that to the analytics system. Etc. Hope that clears things up.


