惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
Google DeepMind News
Google DeepMind News
Hugging Face - Blog
Hugging Face - Blog
D
Docker
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
Project Zero
Project Zero
Engineering at Meta
Engineering at Meta
J
Java Code Geeks
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Simon Willison's Weblog
Simon Willison's Weblog
S
Security Affairs
NISL@THU
NISL@THU
T
Tor Project blog
A
About on SuperTechFans
宝玉的分享
宝玉的分享
腾讯CDC
S
Schneier on Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Privacy & Cybersecurity Law Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
P
Privacy International News Feed
雷峰网
雷峰网
C
Cyber Attacks, Cyber Crime and Cyber Security
Vercel News
Vercel News
Cisco Talos Blog
Cisco Talos Blog
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Google Online Security Blog
Google Online Security Blog
Recorded Future
Recorded Future
L
LINUX DO - 热门话题
Microsoft Security Blog
Microsoft Security Blog
Latest news
Latest news
C
Check Point Blog
有赞技术团队
有赞技术团队
T
The Exploit Database - CXSecurity.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
云风的 BLOG
云风的 BLOG
SecWiki News
SecWiki News
Application and Cybersecurity Blog
Application and Cybersecurity Blog
爱范儿
爱范儿
月光博客
月光博客
V
Vulnerabilities – Threatpost
T
Threat Research - Cisco Blogs
P
Palo Alto Networks Blog
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
Webroot Blog
Webroot Blog
S
Security @ Cisco Blogs

Blog — PlanetScale

Keeping a Postgres queue healthy — PlanetScale Patterns for Postgres Traffic Control — PlanetScale Graceful degradation in Postgres — PlanetScale High memory usage in Postgres is good, actually — PlanetScale Stripe Projects partnership: Provision PlanetScale Postgres and MySQL databases from the Stripe CLI — PlanetScale Enhanced tagging in Postgres Query Insights — PlanetScale Behind the scenes: How Database Traffic Control works — PlanetScale Introducing Database Traffic Control — PlanetScale Scaling Postgres connections with PgBouncer — PlanetScale Drizzle joins PlanetScale — PlanetScale Video Conferencing with Postgres — PlanetScale Faster PlanetScale Postgres connections with Cloudflare Hyperdrive — PlanetScale Introducing the PlanetScale MCP server — PlanetScale Database Transactions — PlanetScale Automating our changelog with Cursor commands — PlanetScale Postgres 18 is now available — PlanetScale Using MotherDuck with PlanetScale — PlanetScale $50 PlanetScale Metal is GA for Postgres — PlanetScale AI-Powered Postgres index suggestions — PlanetScale $5 PlanetScale is live — PlanetScale Announcing Vitess 23 — PlanetScale $50 PlanetScale Metal — PlanetScale Report on our investigation of the 2025-10-20 incident in AWS us-east-1 — PlanetScale $5 PlanetScale — PlanetScale Benchmarking Postgres 17 vs 18 — PlanetScale Larger than RAM Vector Indexes for Relational Databases — PlanetScale Partnering with Cloudflare to bring you the fastest globally distributed applications — PlanetScale Processes and Threads — PlanetScale PlanetScale for Postgres is now GA — PlanetScale Postgres High Availability with CDC — PlanetScale Announcing Neki — PlanetScale Caching — PlanetScale The principles of extreme fault tolerance — PlanetScale Announcing PlanetScale for Postgres — PlanetScale Benchmarking Postgres — PlanetScale Announcing Vitess 22 — PlanetScale The Real Failure Rate of EBS — PlanetScale IO devices and latency — PlanetScale Announcing PlanetScale Metal — PlanetScale PlanetScale Metal: There’s no replacement for displacement — PlanetScale Upgrading Query Insights to Metal — PlanetScale Automating cherry-picks between OSS and private forks — PlanetScale Database Sharding — PlanetScale Anatomy of a Throttler, part 3 — PlanetScale Introducing sharding on PlanetScale with workflows — PlanetScale Announcing Vitess 21 — PlanetScale Announcing the PlanetScale vectors public beta — PlanetScale Anatomy of a Throttler, part 2 — PlanetScale Instant deploy requests — PlanetScale Anatomy of a Throttler, part 1 — PlanetScale Increase IOPS and throughput with sharding — PlanetScale Tracking index usage with Insights — PlanetScale Faster backups with sharding — PlanetScale Building data pipelines with Vitess — PlanetScale The State of Online Schema Migrations in MySQL — PlanetScale Optimizing aggregation in the Vitess query planner — PlanetScale Dealing with large tables — PlanetScale Announcing Vitess 20 — PlanetScale Self-managed Vitess vs Managed Vitess with PlanetScale — PlanetScale Achieving data consistency with the consistent lookup Vindex — PlanetScale The MySQL adaptive hash index — PlanetScale Introducing global replica credentials — PlanetScale Profiling memory usage in MySQL — PlanetScale Summer 2023: Fuzzing Vitess at PlanetScale — PlanetScale How PlanetScale makes schema changes — PlanetScale Identifying and profiling problematic MySQL queries — PlanetScale The Problem with Using a UUID Primary Key in MySQL — PlanetScale Announcing Vitess 19 — PlanetScale PlanetScale forever — PlanetScale Introducing schema recommendations — PlanetScale Amazon Aurora Pricing: The many surprising costs of running an Aurora database — PlanetScale Three common MySQL database design mistakes — PlanetScale OAuth applications are now available to everyone — PlanetScale Deprecating the Scaler plan — PlanetScale PlanetScale branching vs. Amazon Aurora blue/green deployments — PlanetScale Databases at scale — PlanetScale Considerations for building a database disaster recovery plan — PlanetScale Working with Geospatial Features in MySQL — PlanetScale PlanetScale vs Amazon Aurora replication — PlanetScale Introducing the Vantage and PlanetScale integration — PlanetScale MySQL isolation levels and how they work — PlanetScale Introducing the schemadiff command line tool — PlanetScale $ pscale ping — PlanetScale Announcing foreign key constraints support — PlanetScale The challenges of supporting foreign key constraints — PlanetScale What is HTAP? — PlanetScale Introducing Insights Anomalies — PlanetScale Webhook security: a hands-on guide — PlanetScale Announcing the Fivetran integration — PlanetScale Introducing webhooks — PlanetScale What is MySQL replication and when should you use it? — PlanetScale Sync user data between Clerk and a PlanetScale MySQL database — PlanetScale Introducing database reports — PlanetScale Distributed caching systems and MySQL — PlanetScale What is MySQL partitioning? — PlanetScale MySQL High Availability: Connection handling and concurrency — PlanetScale Personalizing your onboarding with Markdoc — PlanetScale PlanetScale vs. Amazon Aurora — PlanetScale PlanetScale vs. Amazon RDS — PlanetScale PlanetScale is bringing vector search and storage to MySQL — PlanetScale
PlanetScale on Vitess — PlanetScale
Deepthi Sigireddi · 2021-07-21 · via Blog — PlanetScale

Deepthi Sigireddi |

We have all experienced the limitations of the relational model and the operational burden of running a large fleet of databases. At PlanetScale, our vision is to build a database developers love without compromising on any of the database features required to run an application that can scale up as needed. To achieve this, we knew we needed a database engine with a track record of powering companies that deal with humongous amounts of data and traffic. That’s why we chose Vitess.

The Power (and Promise) of Vitess

Vitess was created at YouTube over 10 years ago to solve the massive scalability problem that YouTube was facing. Over time, other companies with similar scalability needs adopted Vitess because its power, flexibility and scale outpaced other solutions. This means that Vitess has been powering multiple large-scale production systems for several years now.

Enterprise-grade scalability that can support companies like YouTube and Slack is a key benefit of Vitess. However, there are valuable advantages that Vitess provides to early stage companies. Building on a solid foundation means that you no longer have to worry about needing to migrate to a different data platform once hypergrowth materializes.

Vitess provides an abstraction over MySQL that adds missing functionality while retaining the benefits of a relational database and allows you to automate failure detection and recovery. In addition to this, Vitess provides safety features like automatic row limits, hot row protection, query consolidation and non-blocking schema changes which reduce the likelihood of high load bringing down the database. These are all features that vanilla MySQL cannot and does not provide.

The combination of high-availability and safety means that even a small-scale database deployment can benefit hugely from deploying Vitess over MySQL.

Adopters of Vitess like Slack and JD.com have seen the benefits of a highly-available relational database system. While exact numbers from JD.com are not available, Slack runs 100% on Vitess and their uptime numbers speak for themselves.

Tip

Want to learn more about how to run Vitess? Get a crash course in setting up, deploying, and managing Vitess in our free Vitess course.

A word about Sharding

Sharding is one of the superpowers that comes with Vitess. Vitess allows you to split out the data into multiple shards and have a unified view across them. In addition to this core capability, the maintainer team at PlanetScale has built out the underlying infrastructure in a way that facilitates many more workflows, including but not limited to:

  • Materialization of data while redacting sensitive information
  • Moving tables around to balance database size
  • Migration (copying) of data from one system to another
  • Re-sharding with a different sharding key if the initial choice turns out to be sub-optimal

While sharding is not something we expect early adopters of PlanetScale to need right away, it will be available to use as these systems grow.

All this sounds great, but..

While Vitess reduces the operational burden of managing a large fleet of MySQL instances, it comes with its own operational complexity. There are the typical issues associated with managing any large software deployment ranging from version upgrades and incompatibilities to managing the hardware (or cloud provisioning) required to run Vitess in production.

In addition to these, there is a shortage of Vitess experts who can run such a system in production. There is a steep learning curve associated with acquiring proficiency in Vitess and it is quite likely that many of the people who try it out never end up going into production for this reason.

Enter PlanetScale

At PlanetScale, we have set our minds to solving the problem of providing the easiest-to-use database possible that is designed around developer needs. There are two main strands to this theme.

Ease of adoption

Creating a new database for development purposes should be dead simple and take no more than 10 seconds. The PlanetScale onboarding experience is focused on making this as seamless as possible. This also means that we need to be able to deploy a functional Vitess cluster in that short time period and that is just what we did. Vitess’ pre-existing compatibility with Kubernetes facilitated this greatly with the addition of some secret sauce from PlanetScale.

Ease of use

We need to be solving real problems that real developers have. A particular pain point that comes up repeatedly is the difficulty of making schema changes to a running system. The fear of hurting the production environment while pushing these updates has led to schema change processes that can take up to hours, days, or weeks. This slows down the pace of innovation and creates frustrating hurdles for developers.

PlanetScale’s database branching and Deploy Requests make schema changes fast and easy. Developers can ship product updates without having to worry about locking or causing downtime. The non-blocking schema change functionality is a core feature of Vitess and we have built on top of that to automatically check for potential conflicts before a schema change is deployed.

Building on PlanetScale

The combination of PlanetScale and Vitess allows developers to quickly provision a database to use with an application. Once the application is in production, schema changes can still be made in a safe, asynchronous manner without affecting system availability. The database is highly available and any failures are handled by the service. As the application scale grows, Vitess’ sharding capabilities can be leveraged to maintain performance without downtime. All of this functionality provides you with the foundation to start building and scale indefinitely.