PlanetScale Unveils Distributed MySQL Database Service Based on Vitess
PlanetScale today took the wraps off its new database as a service based on Vitess, the horizontally distributed branch of MySQL that was developed at YouTube. Folks who have struggled with eventual consistency and schemas-less nature of NoSQL databases are among the potential recruits that PlanetScale Chief Product Officer Sam Lambert is targeting with the database service.
Vitess is a horizontal database clustering system for MySQL that was created by YouTube back in 2010 to track data associated with videos, such as the number of views for given video, and other pieces of metadata. By design, MySQL runs on a single server, but demand for the Google subsidiary’s videos was exceeding the capability of what a single scale-up server could provide, so the company engineered a way to shard MySQL data across multiple servers in a cluster.
Over time, other large web-scale companies adopted Vitess, including Slack and GitHub. Deployments grew, including one that reached 70,000 nodes in a cluster, according to Lambert. In 2018, the original co-creators of Vitess, Jiten Vaidya and Sugu Sougoumarane, co-founded PlanetScale with the goal of building a company around the open source Vitess project. The same year, Vitess was accepted as an incubation project at the Cloud Native Computing Foundation.
The company reached a major milestone today when it opened the Vitess database-as-a-service offering to new customers. The offering gives customers the ability to spin up a distributed database in the cloud to power any application that’s expecting to talk to a MySQL backend, Lambert says. Customers get all the scalability benefits of Vitess, but without the hassle of managing a distributed database.
The experience of using the new database-as-a-service will be ridiculously simple, at least as far as the setup and management of traditional distributed databases in the cloud goes, the former vice president of engineering at GitHub says.
“We don’t ask you to provision nodes or replicas or any of that stuff. No provisioning a cluster–we do that under the hood,” Lambert tells Datanami. “We fundamentally believe that there is absolutely no need to ask these things from the customer. The customer just wants to store data and get things done.”
That mantra of “less is more” extends to the particular cloud provider that your PlanetScale data will run on. While the Mountain View, California company uses cloud services like AWS and Google Cloud to run its database-as-a-service offering, it actually doesn’t give customers to option to specify which cloud upon its data will reside (although enterprises with those demands can work with PlanetScale on data placement if necessary, the company says).
“We make sure we get close to where the user is,” Lambert says. “If we provision our resources in Amazon and Google, that’s an implementation detail on our end to deliver you the best experience.”
MySQL has a 25-year history of robustly powering transactional applications on-prem and in the cloud, and PlanetScale is aiming to bring that robustness to users who need a solution to their scale-out dilemmas. The offering passes the ACID test, Lambert says, and chooses data consistency as its primary goal.
While Vitess’ core goals are to ensure the integrity of data and transactions, that doesn’t mean it’s compromising in other departments, such as speed. MySQL has proven itself to be faster than Redis for key-value lookups, according to Lambert, who says MySQL is “blisteringly fast.”
So why aren’t more organizations using MySQL or its distributed cousin for large-scale data deployments and applications? The answer, according to Lambert, comes down to developer friendliness.
“A fair criticism of MySQL is it’s hard to use as a developer,” he says. “There’s a lot of orchestration and things that you have to do.”
Just as it has simplified configuration details when running Vitess in the cloud, PlanetScale has worked to make MySQL easier to use for developers, Lambert says. Specifically, it’s developed a method to push schema changes out to all of the nodes in a Vitess cluster in a manner that makes it easier to use, he says.
The fact that Vitess uses a schema to organize data is a core advantage of the relational database, not something that’s to be discarded, as many NoSQL databases do, Lambert said.
Specifically, Lambert highlighted MongoDB, the NoSQL database that became extremely popular with Web and mobile application developers because of its ease of use. Lambert used MongoDB at other companies, and says he learned that ditching the schema was a mistake.
MongoDB architects got around the difficulty of enforcing data schemas “by doing something fundamentally unscalable under the hood and it notoriously bit so many companies with data loss,” he says. “I think in the database world. there’s a lot of databases that are evaluated incorrectly and the wrong tradeoffs are made.”
With millions of deployments over the decades, MySQL is a known quantity. By taking it horizontal via the Vitess project, and then addressing the schema management challenges and radically simplifying the configuration of the database in the cloud, the folks at PlanetScale think they have hit upon a winning combination for Web and mobile applications going forward.
“It’s the ‘get sh%& done’ stack,” Lambert says. “You can mess around with new technology, or you can just pick stable ones and innovate where your customers expect, which is on the product. Nobody cares that you’re using new fancy database that has all these bells and whistles. Who cares?”
PlanetScale’s database service is in beta. You can sign up at the company’s website at www.planetscale.com.