The Extensibility Tax: Decisions, Principles, & Lessons in Teaching MySQL New Tricks

Share
Two men arguing
Credit to CMU's Database Research Group for the image

On April 20, 2026, VillageSQL’s CTO Steve Schirripa gave a talk to Carnegie Mellon's (CMU) Database Research Group as part of Andy Pavlo’s Spring 2026 Seminar Series. You can watch the full recording here.

The full title of the session is "The Extensibility Tax: Decisions, Principles, and Lessons from a Year of Teaching MySQL New Tricks." Steve provides a technical post-mortem of what we have built so far with the VillageSQL Extension Framework (VEF) - what worked, what didn't, and what surprised us.

Why "tax"?

MySQL's codebase was written with a fixed view of the world and has evolved over the last 30 years. It knows exactly which types “exist.” That assumption is baked in everywhere, and adding extensibility on top of it means paying for it at every layer you touch. Steve covers how we have navigated that complexity, including the following topics:

  • Metadata Injection: Extending through MySQL's type system itself turned out to be a dead end. The approach that worked was injecting metadata directly into existing classes — not wrapping them, and not subclassing them.
  • The Comparison Problem: Eight separate comparison code paths all needed interception. Not one entry point, eight!
  • Codebase Inconsistencies: CREATE TABLE and ALTER TABLE are essentially separate codebases. LOAD DATA and default value handling often bypass the layers you'd expect to hook into.
  • Debugging Hurdles: Non-deterministic query plans can expose latent bugs on the second execution rather than the first — a particular kind of unpleasant to debug.

VillageSQL’s Core Principles

Through all this, Steve and team landed on the following principles: follow existing patterns precisely; treat backward compatibility as a first-class constraint; and protect the Data Dictionary. These aren't the obvious starting points; they are the hard-won conclusions.

About Steve

Steve is a CMU MSE alum and VillageSQL’s technical co-founder. He spent 21 years in engineering leadership at Google. There, he served as the Tech Lead for Bigtable and Colossus, leading fleet-wide distributed file systems and databases before co-founding VillageSQL. Steve has seen enough large systems to know what failure modes look like before they fully materialize.

Watch the full talk at https://www.youtube.com/watch?v=xGbNoXUovJ0

Get started with VillageSQL at villagesql.com