Building a Linearizable Log on READ COMMITTED Isolation

October 13, 2026

Materialize's storage layer (persist) requires a metadata store where a small amount of state is maintained for each durable object. In June, a self-managed deployment with many such objects experienced a metastable failure where metadata operation latencies rose from a few milliseconds to thirty seconds, leading to an incident.

Self-managed deployments of Materialize use a PostgreSQL database as the metadata store, which during the incident had most of its connections in a waiting state. The number of SIRead locks had grown to hundreds of thousands, an indication that the cost of running queries under SERIALIZABLE isolation was the bottleneck.