Menu ☰

FAQ

We answer some of the most-asked questions here. Contact us if you have more.

  • What is PlanetScale?

    PlanetScale is a company founded by the co-creators of Vitess in early 2018.

    While working to help companies like Square, Slack, HubSpot and JD.com use Vitess to meet their scaling needs, we decided to build a company that would expand upon the work we had spent the past decade doing: a company that would build upon Vitess and that would help companies scale, scale and scale their data across clouds and across continents.

  • What does PlanetScale offer?

    At PlanetScale, we are building the operational scaffolding that makes it easy to deploy and operate Vitess clusters at scale. We offer the following paid products and services:

    • Database-as-a-Service: a Multi-cloud Database-as-a-service based on Vitess
    • Cluster Manager Software Licenses: (we use PlanetScale Cluster Manager to run our DBaaS)
    • Open Source Vitess Support
    • Professional Services & Training

    Take a closer look here at what we do.

  • What is Vitess?

    Vitess is an open-source, industry standard MySQL sharding solution that was first adopted by YouTube. The scale at which YouTube needed to serve its videos was the perfect environment for Vitess to grow into one of the world's foremost open-source database projects.

    Now, companies like Square, Slack, HubSpot, GitHub, JD.com, and many of the world’s largest technology companies use and trust Vitess.

  • What’s PlanetScale’s relationship with Vitess?

    PlanetScale’s mission is to help companies scale their relational data using Vitess, and its co-founders are the original creators of Vitess.

    PlanetScale is committed to Vitess as an Open Source Project. Our CTO, Sugu, is the chief developer and community leader for Vitess and he will continue in this role. PlanetScale engineers do and will continue to contribute to the Vitess Project.

    At PlanetScale, we are building the operational scaffolding that makes it easy to deploy and operate Vitess clusters at scale. We offer our customers the tools and support they need to build horizontally-scalable data systems on premise and in the cloud.

    We are committed to keeping the query serving path (based on Vitess and MySQL) open-source so that our customers will never have to fear vendor lock-in.

  • Why should I use PlanetScale Database-as-a-Service?

    PlanetScale is a relational database platform that helps companies horizontally scale data in the cloud.

    PlanetScale is the perfect solution for companies that:

    • Want to store transactional data without having to worry about scaling.
    • Want to move to Kubernetes on premise or on public cloud.
    • No longer want the pain of managing database clusters.

    Let the co-creators and maintainers of Vitess help you get the most out of Vitess.

  • What are the advantages of a relational database and a key-value database? How does PlanetScale Database-as-a-Service compare?

    Traditionally, key-value databases are heralded for having greater scalability than relational databases. In services and applications where data explodes exponentially with popularity (i.e. Facebook, LinkedIn), this scalability is essential.

    However, what key-value stores have in scalability they lack in a number of other important features, including SQL protocol compatibility, secondary indexes, joins, and transactions.

    PlanetScale’s novel offering, built on Vitess, uses a relational database and offers even greater scalability than key-value stores. At the same time, because of its relational backbone, PlanetScale does not sacrifice the key features that would normally be lost when working with a key-value store.

    Essentially, PlanetScale allows you to scale your relational data like a NoSQL database. PlanetScale is a functional superset of a key-value store and also scales horizontally like a key-value store. The PlanetScale solution supports out-of-the-box globally scalable, multi-datacenter deployments.

  • How does PlanetScale scale, if it uses a relational database?

    PlanetScale uses horizontal sharding for scaling write operations. A key feature of Vitess is the vtgate proxy, which allows the application to perceive the horizontally sharded database cluster as if it were just one monolithic database. So while your application continues to run as if you were using just one database, the data can be spread across numerous database clusters.

  • What is sharding? Why does it matter?

    Sharding is a type of database partitioning that separates very large databases into smaller, faster, more manageable parts called data shards.

    There are numerous advantages to this approach:

    • Since database tables are divided and distributed into multiple servers, index size is smaller, which improves search performance.
    • Sharding enables distribution of write load over a large number of machines, greatly improving performance.
    • Because the size of each shard is smaller, replication lag reduces and replication across multiple servers is much easier.
    • These properties are also useful for worldwide distribution of databases, where communications links between data centers would otherwise create a bottleneck.
  • How easy is it to use PlanetScale Database-as-a-Service?

    If you are writing a new application, you can start using PlanetScale Database-as-a-Service right away, as though you are writing to a MySQL database. If you want to migrate from an existing database, we can help through our professional services offering.

    PlanetScale uses MySQL as the storage engine and provides MySQL protocol compatibility, so migration can happen quickly and easily without changes to your application.

    While each NewSQL vendor has their own API, which makes migration difficult, migration into the PlanetScale platform from MySQL is easy. Your application code remains simple, unaware of sharding complexities, and you can still operate at scale.

    If you are migrating from a key-value store or another relational database, you will need to make application changes to support MySQL protocol.

  • How is data stored in PlanetScale?

    For PlanetScale DBaaS, PlanetScale uses MySQL Community Edition 5.7 with the InnoDB Engine as underlying storage for each shard.

    If you are licensing the PlanetScale Cluster Manager Software, you can run it on top of MySQL (Communty/Enterprise/Percona), MariaDB, RDS on AWS, or CloudSQL on GCP.

  • How does PlanetScale survive failures?

    We configure MySQL to use semi-sync replication. We use anti-affinity to schedule replicas in multiple availability zones. Slack has been running their Vitess cluster in this configuration and is happy with the results.

  • Does PlanetScale support ACID transactions?

    PlanetScale supports full ACID within a shard. Across shards we support Atomicity and Durability. For cross-shard transactions we allow users to choose between two consistency models: best effort and 2PC. We do not support cross-shard Isolation. Most of our customers, including those in financial industries, find these tradeoffs acceptable.

  • How does PlanetScale ensure high availability?

    PlanetScale ensures high availability by quickly promoting a replica to a master, if a master goes down. The replica is guaranteed to have all the data from old master because we run all replicas in the semi-sync mode.

  • How does PlanetScale compare to MySQL or PostgreSQL?

    MySQL and PostgreSQL do not scale beyond a single node. The PlanetScale platform, however, can scale indefinitely using horizontal sharding. The platform is built on top of Vitess.io, which is a sharding middleware layer that sits on top of MySQL.

    We do not support Postgres protocol or the Postgres database as the underlying storage at the moment, but it is on the medium-term roadmap.

  • What languages can I use to work with PlanetScale?

    PlanetScale supports the MySQL protocol. As far as your application is concerned, the PlanetScale DBaaS, based on Vitess, acts like a monolithic MySQL database. You can continue to use the tools or libraries that you currently use to access your MySQL databases.

  • Didn't find what you were looking for?

    Well, get in touch then.