Skip to content
Vinicius Grippa

Vinicius Grippa

Articles by Vinicius Grippa (4)

Database Caching

Readyset Internals: The left-right pattern: lock-free cache

How does Readyset serve cached reads without ever taking a lock? Explore the mechanics and real-world benchmarks of the left-right pattern and its 1.2-nanosecond atomic pointer swap.

Vinicius Grippa
2026-07-018 min read
Database Caching

Caching real GitLab queries on Azure Postgres with Readyset

GitLab on Azure Postgres is expensive once a few teams start hammering the REST API. The bill grows because Postgres has to serve the same project list, issue count, and dashboard rollup over and over again, on top of the real work (writes, search, CI metadata). The standard answer is to scale up: For example, D4ds_v5 to D8ds_v5 to D16ds_v5, same shape, double the price (check the pricing calculator). This post walks through a different answer. We put Readyset between GitLab and an Azure Databa

Vinicius Grippa
2026-05-118 min read
MySQL

Readyset Is Ready for MySQL 9.7 - Three Commands With rdst

MySQL 9.7.0 LTS landed today, and we had the pleasure of watching the announcement live — and we were the first ones to download. If you've already pulled the binaries and you're poking at it in a lab, here's the news: Readyset already supports it. The point isn't that Readyset happens to work with 9.7. The point is that we were prepared for the launch. Our compatibility matrix has been running 9.7 pre-release builds, so the same readysettech/readyset:latest image you can docker pull right now

Vinicius Grippa
2026-04-227 min read
Database Caching

Best of Both Worlds: Introducing Readyset Shallow Cache

Readyset has always been defined by our incremental dataflow engine. It compiles your SQL into a dataflow graph where base table nodes ingest the replication stream (binlog/WAL) from tables being replicated to Readyset. Internal nodes apply joins, filters, and aggregates, while reader nodes hold the materialized result. Because writes flow through the graph and only affected nodes are updated via incremental view maintenance, the cache stays updated in real-time. Reads are simple lookups on the

Vinicius Grippa
2026-03-057 min read