Auto-completion, syntax highlighting, and just generally much better usability.
If you're connecting to your DB from the terminal, get these asap.
Auto-completion, syntax highlighting, and just generally much better usability.
If you're connecting to your DB from the terminal, get these asap.
We've all used software that's slow and becomes a huge turnoff. Fast software makes for happy users. Or at least, avoids making them mad!
We've all used software that's slow and becomes a huge turnoff. Fast software makes for happy users. Or at least, avoids making them mad!
That's 20 years of database performance!
I haven't started beyond "planning with Claude," but I expect the hardest part to be building old versions from source. Much has changed in compilers + unix since 2005.
Who's done this? Suggestions?
That's 20 years of database performance!
I haven't started beyond "planning with Claude," but I expect the hardest part to be building old versions from source. Much has changed in compilers + unix since 2005.
Who's done this? Suggestions?
Incredible article on when and why to use PgBouncer.
Includes a great explanation of how increasing direct connections leads to more contention → degraded performance. (+ benchmarks too!)
Incredible article on when and why to use PgBouncer.
Includes a great explanation of how increasing direct connections leads to more contention → degraded performance. (+ benchmarks too!)
This week I re-read the iconic LFS paper by Rosenblum / Ousterhout.
The differences between I/O demands on a database vs a general-purpose FS are neat to study.
This week I re-read the iconic LFS paper by Rosenblum / Ousterhout.
The differences between I/O demands on a database vs a general-purpose FS are neat to study.
Who needs ACID, relational schema, foreign keys, B-tree indexes, log-based commits, MVCC, replication, and failovers?
We've been overthinking the database. Keep it simple.
Who needs ACID, relational schema, foreign keys, B-tree indexes, log-based commits, MVCC, replication, and failovers?
We've been overthinking the database. Keep it simple.
They’re great for inverting the typical use case.
Instead of mapping “the row with ID 2 contains ‘become a database expert’” you flip it to say “The word ‘database’ maps to the rows with IDs 1, 2, and 3 and ‘expert’ maps to the row with ID 2.”
They’re great for inverting the typical use case.
Instead of mapping “the row with ID 2 contains ‘become a database expert’” you flip it to say “The word ‘database’ maps to the rows with IDs 1, 2, and 3 and ‘expert’ maps to the row with ID 2.”
- Smaller compute sizes at a lower price point
- More local-NVMe storage size options
Today we've delivered both. Happy databasing.
- Smaller compute sizes at a lower price point
- More local-NVMe storage size options
Today we've delivered both. Happy databasing.
If we had to throw these databases away and begin from scratch in 2025, what would change and what would remain?
If we had to throw these databases away and begin from scratch in 2025, what would change and what would remain?
Parting thoughts (in thread)
Parting thoughts (in thread)
- 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.