Skip to content
← All issues

Readyset Weekly: Issue 17

Reducing Write Hotspots Before They’re Problematic

In Postgres and MySQL, write hotspots can turn into choke points fast: concurrent updates serialize, transactions pile up, and tail latency climbs.

To stay ahead of the pile-up:

  • For MySQL and Postgres:
    • Batch updates instead of row-by-row increments to cut lock churn and boost throughput.
    • Offload hot updates to a background queue so they run in order without blocking front-end requests.
    • Revisit schema design: splitting frequently updated fields into their own table can be a simple fix.
  • For Postgres:
    • Use advisory locks to coordinate updates explicitly, especially when multiple code paths touch the same row.
    • Partial indexes on hot subsets: if contention is concentrated on a small set of rows, partial indexes reduce index size and improve lookup performance.
  • For MySQL:
    • Use secondary indexes carefully: covering indexes can reduce base table access on frequently updated rows.
    • Tune AUTO_INCREMENT locks: adjust innodb_autoinc_lock_mode to avoid table-level locks during high-frequency inserts.

The bottom line: if you know where traffic converges, you can neutralize contention before it becomes an incident. A bit of foresight in design saves you from costly firefighting later.

🔍 What We're Watching in the Database Ecosystem

Vector Search Is Reaching Its Limit. Here's What Comes Next

Vector databases power today's RAG systems, but they struggle with basics like full-text queries, structured filters, real-time updates, and custom ranking. Bonnie Chase (Vespa.ai) claims we're reaching the ceiling of what embeddings alone can do and explores what comes next.

How would you design a database on Object Storage?

In this podcast, the team from Turbopuffer talk about the complexities of building a database on top of object storage. Discover the key challenges, the nuances of various storage formats, and the critical trade-offs involved.

Next-Level PG Observability

pg_exporter v1.0.0 delivers next-level PostgreSQL observability with 600+ metrics, 50+ prebuilt collectors, and full YAML-based customization; covering core PG, popular extensions, and pgBouncer from a single exporter. It's battle-tested at massive scale and already supports PostgreSQL 18.

In Case You Missed It

New on our Blog and YouTube

Optimizing Straddled Joins in Readyset: From Hash Joins to Index Condition Pushdown

Straddled joins were our cold-path troublemaker, forcing excessive data scans on cache misses. In this blog, Marcelo explains how our new Index Condition Pushdown flips the execution model, pushing filters down to the storage engine and fetching only what's needed. The benchmarks speak for themselves.

Get Readyset Weekly in your inbox

One email a week — what shipped, what we learned, and what is worth reading.