Introducing Database Traffic Control™: resource budgets for your Postgres query traffic.Learn more
Navigation

Blog


Simeon Griggs [@simeonGriggs] |

There are many ways to slice a Postgres database for multi-tenant applications. Let's look at the three most common approaches and the trade-offs.


Simeon Griggs [@simeonGriggs] |

Dead tuples from high-churn job queues can silently degrade your Postgres database when vacuum falls behind—especially alongside competing workloads. Traffic Control keeps cleanup on track.


Josh Brown [@0ximjosh] |

Practical patterns for leveraging Database traffic Control


Ben Dicken [@BenjDicken] |

Not all traffic is created equal.When a database is overwhelmed, you want the important queries to keep executing, even if that means shedding lower-priority work.This is a much better outcome than the alternative: a total database outage.


Simeon Griggs [@simeonGriggs] |

A high memory percentage in PlanetScale Postgres is not necessarily a problem. Let's compare how memory and CPU usage are different, how not all memory usage is created equal, and which signals actually require attention.


Rafer Hazen |

Introducing query tagging improvements in Postgres Query Insights


Patrick Reynolds |

Learn how Traffic Control enforces real-time limits on Postgres queries.


Ben Dicken [@BenjDicken] |

PgBouncer is the perfect pairing for Postgres's biggest weakness: connection management. Tuning it just right is important to make this work well, and here we cover everything you need to know


Ben Dicken [@BenjDicken] |

What are database transactions and how do SQL databases isolate one transaction from another?


Mike Coutermarsh |

How PlanetScale uses Cursor commands to automate our changelog entries


Rafer Hazen |

Introducing AI-powered index suggestions for PostgreSQL


Richard Crowley |

On 2025-10-20, there was an incident that affected PlanetScale, initially caused by DNS misconfiguration in one of PlanetScale’s service providers, followed by several hours of capacity constraints and network instability.


Ben Dicken [@BenjDicken] |

Postgres 18 brings a significant improvement to read performance via async I/O and I/O worker threads. Here we compare its performance to Postgres 17.


Vicent Martí |

A new hybrid design for scalable vector indexes and a reference implementation in MySQL


Ben Dicken [@BenjDicken] |

Processes and threads are fundamental abstrations for operating systems. Learn how they work and how they impact database performance in this interactive article.


Sam Lambert [@samlambert] |

Why a lagging client can stall or break failover, and how MySQL’s GTID model avoids it.


Ben Dicken [@BenjDicken] |

Every time you use a computer, the cache is working to ensure your experience is fast.


Max Englander |

The principles and processes we follow for fault tolerance.


Ben Dicken [@BenjDicken] |

Benchmarking Postgres in a transparent, standardized and fair way is challenging. Here, we look at the process of how we did it in-depth


Vicent Martí |

A novel technique for implementing dynamic language interpreters in Go, applied to the Vitess SQL evaluation engine


Nick Van Wiggeren |

Our experience running AWS EBS at scale for critical workloads


Ben Dicken [@BenjDicken] |

Take an interactive journey through the history of IO devices, and learn how IO device latency affects performance.


Rafer Hazen |

Our experience upgrading the Query Insights database to PlanetScale Metal


Richard Crowley |

Learn how PlanetScale Metal was built and how we ensured it is safe.


Manan Gupta |

Learn how PlanetScale keeps its private fork of Vitess up-to-date with OSS

← Previous