How NoSQL saved Draw Something

Draw Something’s success aided by Couchbase – chat with CEO, Bob Wiederhold

Chris Mayer
draw-something

We’ve all witnessed the app phenomenon that is Draw Something but you may not know how Couchbase helped it maintain its popularity. We talk to CEO, Bob Wiederhold

It can’t have escaped your attention that the most popular game
currently on any iOS or Android device is OMGPOP’s Draw Something –
bringing a Pictionary-style game to the smartphone age. The app’s
journey to 50 million users in as little as six weeks is certainly
impressive, but how did they manage to maintain performance with
such rapid growth?

This is where Couchbase
stepped in, providing the Draw Something team with the latest NoSQL
database solution to keep things relatively scare-free. We talked
to Couchbase CEO Bob Wiederhold about how they helped maintain the
viral game and played a part in Draw Something’s success. The
infographic below details just how big Draw Something became in a
short period of time…

 
 

JAX: So, Draw Something is a bit of phenomenon – why is
Couchbase Server a good solution for when an app goes
viral?

Wiederhold: When an app goes viral, you have to be able to scale
your database very, very fast.  Draw Something is an extreme
example of this. In 5 weeks, Draw Something grew from virtually
nothing to 50M users, 15M DAU (daily active users), 400M games
created, over 3B pictures stored at peak rates of over 5K/sec, and
generated over 5T of data. Couchbase was able to keep up with this
growth without a second of downtime and maintain high performance
throughout. We think this is an incredible success story for NoSQL
and Couchbase.

To see what can happen when your database doesn’t scale just
check out the EA Simpsons Tapped Out story.  They had a mobile
game start to go viral at almost the same time that Draw Something
was going viral but it collapsed because their (MySQL) database
couldn’t scale.  They had to pull the game off the market,
which never to returned, because of scaling issues.

How often were you in contact with OMGPop when their app
boomed? Did they look to you for advice and if so, what was
it?

Like many Couchbase users, OMGPOP started using our free
Community Edition for a few of their games and we didn’t have any
direct interaction with them until recently.  Draw Something
was released in early February and grew slowly at first. 
OMGPOP didn’t contact us until March 1 when their game started to
go viral.

At the time they had 6 servers in their database cluster. 
They could see all the numbers starting to grow quickly, downloads,
DAUs, pictures being drawn per second, amount of data being stored
and so on. They wanted to be sure their database was properly
configured and set up for rapid growth. The operations people at
OMGPOP had never rapidly scaled a database before and they wanted
expert help.

Over the next 3 weeks we worked very closely with OMGPOP and
interacted with them on a very regular basis. We worked with OMGPOP
to understand how their database workload was growing so things
like peak simultaneous users, peak drawings/sec, amount of data
needed to be kept in memory, total amount of data stored, to
understand how to accurately monitor this growth using our
monitoring tools, and how to make sure the size and configuration
of their database cluster was keeping up with this
growth. 

OMGPOP had a hit on their hands so they wanted to be 100%
confident the game was not going to have a problem with its growth
so we worked with them very closely through this 3-week
period.  Once the dynamics of Draw Something’s database
workload was well understood and its growth was more predictable
there was much less interaction with OMGPOP.  The database is
now well over 100 servers and growing.

Did you envisage this happening with Draw Something – it
becoming the fast growing mobile game with 50m
downloads?

I’m not sure anyone can predict these things, we certainly
couldn’t.  Once OMGPOP contacted us we, of course, were very
curious about the game.  I think just about everyone at
Couchbase downloaded it and started playing it.  I know I was
playing more than 10 games at one point with various people at
Couchbase and my family.  It certainly was a lot of fun and
somewhat addicting so from that perspective I’m not surprised in
went viral.

  

How does a developer cope with the pressures of scaling
that much? Not to mention the pressure from the
developer/user?

The social gaming business is a “hits” business. Every developer
dreams of having a game that goes viral and gets into the “top 10”.
Developers naturally focus most of their attention on the creative
aspects of their game.  But if they don’t also focus on its
scalability all their hard work could be wasted if the game begins
to go viral and falls over under heavy load. If app performance
goes down due to scaling problems or the game just crashes, users
quickly get frustrated and move on to other games – and your
opportunity at hit game vanishes overnight. This nightmare is
exactly what happened to EA’s Simpsons Tapped Out.

At the time the game goes viral though, the pressure to keep the
game up and running generally falls on the operations people or
Devops. There is enormous pressure to make sure
the game stays up with high performance 24×7 without a second of
downtime. There is no room for error so
every precaution is taken to make sure there isn’t
a problem. During critical periods of growth when you are trying to
characterize the database workload of the game, the database is
monitored 24 hours a day.

As you suggest there is huge pressure and very little sleep for
the first few weeks after a game goes viral.  After that
things settle in, the database workload is well characterized, the
ongoing growth of the game becomes more predictable, the pressure
subsides, and a good night’s sleep returns.

What sort of issues occurred with Draw Something?
Anything particularly rare?

There was nothing rare.  We worked through a few database
configuration issues early on and we helped OMGPOP move to much
beefier servers.  In the first couple of weeks, there were an
unusual number of servers that failed and had to failed over, there
were backup strategies that needed to be changed due to the rapid
growth of data, etc.

For a slow growing app you have plenty of time to deal with all
these issues and it’s not a problem.  For a game that goes
viral you are forced to deal with these issues in a
very compressed period of time and the stakes are
so high associated with getting things right.

How many Couchbases were they employing? And how many
were killed in the process?

The infographic shows how OMGPOP’s database cluster grew over
time. When they contacted us they had 6 servers in their cluster.
It’s now well over 100 servers. I don’t know how many servers had
to be failed over but I believe it was over a dozen.

Can you give some specifics in how Couchbase’s NoSQL
server works?

Couchbase is a horizontally scalable database. It runs on
standard commodity servers. As the amount of data or database
operations/sec increase, you simple add more commodity servers to
your database cluster to support the added load. 

When you add more servers, the database automatically
redistributes the data across the larger cluster completely
transparent to the app. With a larger cluster the database can now
support more operations/sec, store more data in memory, store more
on-disk data, etc. Theoretically, you can infinitely grow your
database in this way. And, while your database is growing there is
no need to make any changes to the application, everything is
completely transparent to the app. 

Couchbase is also very fault-tolerant.  When servers fail,
replicas of data that have been stored on other servers are
promoted to “active status” and the failed server is failed out of
the cluster.  Very high performance reads and writes with low
and predictable latency are provided through the memcached caching
layer that is embedded in Couchbase.

Does every budding mobile app developer need up-front
scalability planning in place for a situation like
this?

If your dream is to develop an app that will go viral and be a
big success you better develop your app to scale.  Draw
Something shows you what can happen if you have developed your app
to scale.  EA’s Simpsons Tapped Out shows you what can happen
when you don’t.

Finally how proud are you that they chose Couchbase and
do you play the game yourself?

We are incredibly proud to be part of this success.  As I
said earlier, I play Draw Something all the time. I’m addicted
enough to it that I even found myself reading tips on-line about
how to draw better pictures.  I’m horrible at drawing
pictures, but I’m getting better.

Author
Comments
comments powered by Disqus