By Paul Campaniello, Vice President of Global Marketing, ScaleBase
Designing scalability, availability and fault-tolerance into applications and databases from the very start is the new imperative.
Cloud computing has enabled a technology boom. However, many companies still struggle to keep their heads above water when it comes to database scalability.
Why and When Does Scalability Become an Issue?
Let’s look at an example. Imagine a successful mobile app or game. Growing from 10,000 users to 1 million users or even 10 million users is a very real possibility. If you didn’t start with a scalable application and database design, it can be very hard to retrofit.
As the number of users and concurrent transactions grows, the volume of data also grows, and this creates multiple stresses on a single database. New and older data alike is stored in databases. For example, Facebook pictures can be seen from as far back as 2006.
And as you add features and capabilities, this often creates even more data that needs to be captured and managed.
If users become frustrated by slow or inconsistent app response times, they can abandon you and switch to competitor. So, if your application can’t keep up, the very success you have worked so hard to achieve in the market can actually harm your business before it even gets off the ground.
Question: Do you know how many users, how many transactions and how much data your current app and database can handle comfortably?
To guarantee stability, eliminate performance risks and prevent loosing revenue and users, database scalability should be addressed before an application’s general availability (GA) launch. What can you do?
A Distributed Database – Right from the Beginning
Distributed databases are quickly becoming the new normal because they give you the power to predictably stay ahead of ever increasing database workloads in today’s unpredictable web scale environment.
Using smaller, commodity hardware in the Cloud and leveraging database parallelism allows data reads and writes to be quicker and more efficiently executed than if all data is hosted on a mega-server. If distributed properly, databases can easily scale out to handle growth from 100,000 users to hundreds of millions of users.
What about MySQL?
MySQL is the world’s most popular open source database. For years it has proven itself to manage data safely and predictably. It forms the backbone of websites and applications around the world. However, as a single instance database, it has (arguably) limited scalability. When you hit scalability limits, your choices are limited.
A Word About MySQL Sharding and Data Distribution
“Sharding” is a technique that divides a single instance MySQL database into a cluster. Typically, sharding a database involves adding special code into an application to stipulate where data is to be placed and found. This “data distribution” logic can seem easy to create, but complications quickly pile up. Sharding code requires ongoing testing, maintenance and support. Over time, ensuring the consistency of this code and confirming its results are correct can become challenging. Time spent on sharding code to address database deficiencies takes developers away from adding innovative new features and application capabilities.
Well known applications such as Facebook, LinkedIn and Tumblr use MySQL and have built sharding into their code base, because, until recently, adding this custom code into the application has been the only way to scale out MySQL. But now, there’s a better alternative.
Distributed MySQL/InnoDB the Right Way – Enter ScaleBase and Rackspace
ScaleBase software converts the world’s most popular open source database, MySQL, into a distributed relational cloud database. Rackspace provides rock-solid cloud infrastructure, service and expertise. Together, they take care of the database scalability, availability, fault-tolerance and uptime required for today’s web scale apps, so developers can concentrate on delighting customers with new app functionality.
ScaleBase’s built-in transparent data distribution turns a single instance MySQL database into a distributed MySQL database that retains MySQL’s relational and SQL models for a 100 percent ACID-compliant system.