- B-tree table storage
- Vitess
- Undo log based MVCC
- SHOW TABLES
- Vitess
- Buffer that doesn't rely on OS page cache
- SHOW CREATE DATABASE
But mostly, Vitess.
- B-tree table storage
- Vitess
- Undo log based MVCC
- SHOW TABLES
- Vitess
- Buffer that doesn't rely on OS page cache
- SHOW CREATE DATABASE
But mostly, Vitess.
When databases, message queues, connection poolers, or other systems get overloaded, how do they deal with the pressure?
When databases, message queues, connection poolers, or other systems get overloaded, how do they deal with the pressure?
Still figuring out how to top this in 2026.
Taking ideas.
Still figuring out how to top this in 2026.
Taking ideas.
These sit between the app and database. They maintain a pool of connections and dynamically map incoming requests to to them. PgBouncer is the most popular tool for this job!
These sit between the app and database. They maintain a pool of connections and dynamically map incoming requests to to them. PgBouncer is the most popular tool for this job!
They recently moved many of these from a "traditional" primary-replica model to Paxos-based group replication.
Great benchmarks included on their blog too.
www.uber.com/blog/improvi...
They recently moved many of these from a "traditional" primary-replica model to Paxos-based group replication.
Great benchmarks included on their blog too.
www.uber.com/blog/improvi...
We're growing the team that educates and supports our engineering community. If you love databases and seeing customers succeed, these roles are for you.
Specifically, we're hiring a Community Engineer and Developer Events Lead.
planetscale.com/careers
We're growing the team that educates and supports our engineering community. If you love databases and seeing customers succeed, these roles are for you.
Specifically, we're hiring a Community Engineer and Developer Events Lead.
planetscale.com/careers
Running an app at scale demands a deeper understanding of indexing, joins, and data access patterns.
Running an app at scale demands a deeper understanding of indexing, joins, and data access patterns.
Indexing → data structures + algorithms
AI → RAG + learned indexes
MVCC → concurrent programming
Sharding → distributed systems
Query parsing → formal languages
Query planning → stats + optimization
Databases encompass tons of interesting software engineering problems.
Indexing → data structures + algorithms
AI → RAG + learned indexes
MVCC → concurrent programming
Sharding → distributed systems
Query parsing → formal languages
Query planning → stats + optimization
Databases encompass tons of interesting software engineering problems.
An example: "Measuring Latencies Between AWS Availability Zones" (link below). An incredible resource for anyone building on AWS.
What are your favorite, lesser-known blogs?
www.bitsand.cloud/posts/cross-...
An example: "Measuring Latencies Between AWS Availability Zones" (link below). An incredible resource for anyone building on AWS.
What are your favorite, lesser-known blogs?
www.bitsand.cloud/posts/cross-...
There's tons of hard-to-predict issues. Intermittent AWS network lag. PG + MySQL edge cases. etc.
PlanetScale continually hardens our systems against these problems, and all customers win.
There's tons of hard-to-predict issues. Intermittent AWS network lag. PG + MySQL edge cases. etc.
PlanetScale continually hardens our systems against these problems, and all customers win.
This works via a combination of backup-restores and WAL replay.
This works via a combination of backup-restores and WAL replay.
Depot uses one of my favorite tools, PlanetScale Insights, to drill in on query performance issues and address them via schema change DRs.
Depot uses one of my favorite tools, PlanetScale Insights, to drill in on query performance issues and address them via schema change DRs.
The key contribution: Decoupling the size of on-disk pages from the size of memory cache entries.
I'm curious if/when MySQL and Postgres will adopt modern versions of classic indexes.
The key contribution: Decoupling the size of on-disk pages from the size of memory cache entries.
I'm curious if/when MySQL and Postgres will adopt modern versions of classic indexes.
Indexes are crucial for database performance, and these recommendations help ensure your queries are executing optimally.
Read about how we built this:
planetscale.com/blog/postgre...
Indexes are crucial for database performance, and these recommendations help ensure your queries are executing optimally.
Read about how we built this:
planetscale.com/blog/postgre...
Amazing talk by Eugene Kenny at SF Ruby conf.
Amazing talk by Eugene Kenny at SF Ruby conf.
I want to do some livestreams going over papers as a group.
Much like my grad-school days of sitting in a classroom and discussing design tradeoffs of popular tech literature.
I want to do some livestreams going over papers as a group.
Much like my grad-school days of sitting in a classroom and discussing design tradeoffs of popular tech literature.
Using it impacts performance, so you gotta know the tradeoffs.
Using it impacts performance, so you gotta know the tradeoffs.
Everything is lock-in
rcrowley.org/2025/everyth...
Everything is lock-in
rcrowley.org/2025/everyth...
This Andy Warfield article is a fascinating look under the covers one of the largest storage systems on earth.
I particularly enjoyed the discussion of scaling both the technology and ones self as an engineer.
www.allthingsdistributed.com/2023/07/buil...
This Andy Warfield article is a fascinating look under the covers one of the largest storage systems on earth.
I particularly enjoyed the discussion of scaling both the technology and ones self as an engineer.
www.allthingsdistributed.com/2023/07/buil...
We're building the solution for scaling and managing huge Postgres databases.
More to come, but in the meantime: neki.dev
We're building the solution for scaling and managing huge Postgres databases.
More to come, but in the meantime: neki.dev
Correlating schema/config changes and performance has never been easier.
The perfect tool for squeezing every ounce of performance out of your database resources.
Correlating schema/config changes and performance has never been easier.
The perfect tool for squeezing every ounce of performance out of your database resources.
Every row (tuple) you insert into a Postgres table includes xmin and xmax metadata. xmin is the transaction that created the row, and xmax the one that updates or deleted it.
Every row (tuple) you insert into a Postgres table includes xmin and xmax metadata. xmin is the transaction that created the row, and xmax the one that updates or deleted it.
This latency graph shows a r6id → i7i upgrade. Same vCPU count. Same amount of RAM. Both using local SSDs.
Upgrading to a newer instance makes a big difference.
This latency graph shows a r6id → i7i upgrade. Same vCPU count. Same amount of RAM. Both using local SSDs.
Upgrading to a newer instance makes a big difference.